IEC 61131-3 standard
IEC 1131-3 is the international standard for programmable controller programming languages. The following is a list of programming languages specified by this standard:
One of the primary benefits of the standard is that it allows multiple languages to be used within the same programmable controller. This allows the program developer to select the language best suited to each particular task.
Ladder logic is the main programming method used for PLC's. As mentioned before, ladder logic has been developed to mimic relay logic. The decision to use the relay logic diagrams was a strategic one. By selecting ladder logic as the main programming method, the amount of retraining needed for engineers and trades people was greatly reduced.
The first PLC was programmed with a technique that was based on relay logic wiring schematics. This eliminated the need to teach the electricians, technicians and engineers how to program - so this programming method has stuck and it is the most common technique for programming in today's PLC.
There are other methods to program PLCs. One of the earliest techniques involved mnemonic instructions. These instructions can be derived directly from the ladder logic diagrams and entered into the PLC through a simple programming terminal.
Sequential Function Charts (SFC)
SFC have been developed to accommodate the programming of more advanced systems. These are similar to flowcharts, but much more powerful. This method is much different from flowcharts because it does not have to follow a single path through the flowchart.
Structured Text (ST)
Programming has been developed as a more modern programming language. It is quite similar to languages such as BASIC and Pascal.
Structured Text (ST) is a high level textual language that is a Pascal like language. It is very flexible and intuitive for writing control algorithms.
Function Block Diagram (FBD)
FBD is another graphical programming language. The main concept is the data flow that start from inputs and passes in block(s) and generate the output.