Choose the right programming language
Which language should you choose for use with your programmable controller? Among the five languages defined in IEC 61131-3, generally ladder diagrams or ladder logic is most widely applied in North America. Other languages have practical applications and should not be overlooked. Choice depends on programmer's skill, the programming task, the level and structure of the problem and control syst...
Mark T. Hoske, editor-in-chief
Which language should you choose for use with your programmable controller? Among the five languages defined in IEC 61131-3, generally ladder diagrams or ladder logic is most widely applied in North America. Other languages have practical applications and should not be overlooked. Choice depends on programmer's skill, the programming task, the level and structure of the problem and control system, who needs to interact with the program, and, perhaps, how often it's modified.
Since inception in 1992, PLCopen has helped promote and support programming standards, which allows, the association says, for less training, more logical organization, modularization, and use of modern software techniques. "Each program is structured, increasing its reusability, reducing errors, and increasing programming and user efficiency," according to the group.
Four languages describe the same piece of code.
"Also, the standard allows two ways of developing your program: top down and bottom up. Either you specify your whole application and divide it into subparts, declare your variables, and so on. Or you start programming your application at the bottom, for instance via derived functions and function blocks. Whichever you choose, the development environment will help you through the whole process," PLCopen says.
The five elements of IEC 61131-3 are:
Sequential function charts (SFC)—Rather than a language, SFC is more of a graphical method of organizing control programs.
Ladder diagram (LD)—most used in North America, it graphically represents rungs of contacts, coils, and special instruction blocks. Its origin is relay-ladder logic.
Instruction list (IL)—a text-based language similar to assembler. This is the European counterpart to LD.
Structured text (ST)—a text-based language similar to Pascal.
Function block diagram (FBD)—a graphical language corresponding to a circuit diagram. FBD is widely used in process industries.
Several IEC standards provide more information about function blocks: IEC 61499 and IEC 61804, which focuses on the process industry. Function blocks encapsulate algorithms so they can be more easily understood and applied by those who aren't software specialists.
For more on function blocks, see www.controleng.com/issues , 2002, September, "Component Automation Enables Modeling and Control." Also, in the August 2003 issue, look for an article on multiple-platform programming software. See related items at www.controleng.com/tutorials.
IEC, at www.iec.org , publishes "Programmable controllers - Part 3: Programming languages." IEC 61131-3 "specifies syntax and semantics of programming languages for programmable controllers as defined in part 1 of IEC 61131." Price is about $205. A related IEC publication is "Programmable controllers - Part 8: Guidelines for the application and implementation of programming languages."
PLCopen, at www.PLCopen.org focuses on control programming and participates on technical committees to evolve programming standards.
Comments email MHoske@cfemedia.com
Pros and cons of IEC 61131-3
Benefits and drawbacks of IEC 61131-3 include the following, according to Wolfgang Langer, Schneider Electric software product manager:
Less retraining costs—IEC looks and feel similar among vendors;
Greater focus on problem solving and software reusability;
Fewer misunderstandings and errors in programming when switching between languages; all IEC languages work the same; and
Greater community—many tools from independent suppliers can be used. PLCopen drives IEC standard with vendors to comply with interoperability standard.
Too many optional features;
Does not define implementation limitations for the size of a page value to define a program;
Doesn't define the minimum of subsets needed to implement;
Doesn't define minimum limitations while implementing, such as how many rungs must be supported in one section; and
Doesn't define conversion among languages.
David Greenfield email@example.com