22. PLC Programming

22.1 Programming Standards

22.1.1 IEC 61131

[an error occurred while processing this directive]

• The IEC 61131 (previously IEC 1131) standard is an effort towards standardizing PLC oriented control. This is more necessary now that personal computers and software are starting to open the PLC market.

• These standards were not designed to force a rigid style, so the different PLC vendors will still have programming environments that vary, but the conceptual elements will be consistent.

• The most notable differences between implementation of PLCs will be addresses of outputs, inputs, internal memory, etc.

• There are a few components to the standard,

IEC 1131-3 Data types and programming

IEC 1131-5 Communications

IEC 1131-7 Fuzzy control

• IEC 1131-3 defines the basic programming languages,

IL (Instruction List): This is effectively mnemonic programming

ST (Structured Text): A BASIC like programming language

LD (Ladder Diagram ): Relay logic diagram based programming

FBD (Function Block Diagram): A graphical dataflow programming method

SFC (Sequential Function Charts): A graphical method for structuring programs

• Many of the functions described in this note set support the standard.

• The standard also defines data types,


22.1.2 The Future of Open Architecture Controllers

[an error occurred while processing this directive]

• a PLC is not simply a computer. It contains a computer, with special interfacing abilities. But the programming environment is like the Java Virtual Machine. The programs are interpreted within the ladder logic model. Some features are not available, while others are enhanced.

• Each PLC vendor has developed one or more different PLC models that bare some similarity at the level of basic inputs and outputs. To unite these models there has been recent work to develop a common standard so that all PLCs are similar (IEC 1131) but this is not to the point where it will free the user from a single vendor.

• At the present time inputs and outputs are becoming more flexible, but the central computation controller (PLC CPU) is still vendor specific. Consider that you can write a program in Java that will compile on dozens of java compilers.

• There are two possible directions that this might go,

some third party companies are developing products that are based on other companies models, such as SoftPLC being based on the PLC-5

a standards group may be able to develop a standard addressing and instruction set. And a common execution model may also be developed that will allow vendors to develop a common engine.


[an error occurred while processing this directive]