Using Industrial Standards on PLC Programming Learning F.J. Molina * , J. Barbancho * , C. Leon * , A. Molina * , A. Gomez * * University of Seville/Department of Electronic Technology, Seville, Spain Abstract—In this paper, we review aspects relevant to industrial standards related to PLC programming: IEC 61131, IEC 61499 and a work about safety developed by the PLCOpen organization based on IEC 61508. We propose to use these standards in PLC learning to fix a common know- how that allows one to reduce the gap between industry and education, and between different professionals. We show the application scope of these standards by analyzing the IEC 61131 limits. The IEC 61499 can be introduced in distributed control systems and in complex centralized systems with multiple operating modes. In critical applications, like safety functions, where functional safety is required, the IEC 61508 is a reference model. I. I NTRODUCTION In PLC programming, there is a gap between industry and education that has been increasing, especially in the last few years. We identify two main reasons. Tradition- ally, automation control systems have been developed by engineers or technicians. Their know-how, design methodology and working procedures are compiled into standards. But usually, these standards are quite complex to be introduced in education because they are written to transmit clear information to experts, not to teach to non- experienced students. The second reason is the increasing use and the integration, of programmable electronic sys- tems (PES) and computers in all the levels of the automa- tion hierarchy: sensor/actuator level, supervisory level and the company management tools (databases, information systems, decision tools, etc). Due to the introduction of communications technologies and new programming con- cepts with PES, professionals from computer science have started working with industrial PES. Their methodology and their knowledge about industrial processes are quite different from traditional engineers and conversely. There is a mutual misunderstanding. The IEC 61131 standard was a first attempt to give a reference model for industrial PES. It was defined in 1993 and released in 2003. It unifies concepts and proposes a common standardized programming interface to allow people with different backgrounds to create different pieces of a program that can be joined to work together correctly. The standard also defines a set of programming languages and includes an easy way to apply new technologies like communication protocols and fuzzy-logic [1][2][3]. The PLCOpen association is work- ing to update and promote the IEC-61131 standard. Their working groups have developed much material to better understand and teach the standard [4] [5]. They have also been developing recommendations and solutions to many industrial problems such as safety and motion control. The study of these works offers a clear perspective of the programming methodology that the standard draws. Cur- rently, the IEC 61131 has been successfully introduced in the industry. Many commercial tools are compliant or, at least, include their main concepts. Nevertheless, several studies show that the languages and the execution model, defined in the standard, are incomplete. Because of this, frameworks usually define additional language elements or characteristic, and non-compliant program execution models [6] [7]. In section II, we analyze the main concepts of IEC 61131-3 standard. In certain applications, special relia- bility and availability are required for long periods of time (e.g. safety in process and machinery). Programming restrictions and different methodologies are necessary to achieve that [8] [9] . IEC 61508 standard introduces the main concepts on functional safety, recommendations and methods for programmable electronic devices in safety applications. In the section III, we present a work done by PLCOpen organization to adapt IEC 61131-3 to IEC 61508 recommendations. The application of the IEC 61131 also has limitations. The study of these limitations allows us to introduce the standard IEC 61499. This new standard is better suited to program decentralized control with highly-coupled applications distributed on several devices [14] [15] . It is also adequate when the process and the controller have multiple operation modes and operating states. A comparative study of both is presented in section IV. II. THE IEC 61131-3 MAIN CONCEPTS The IEC 61131 part 3 defines a software model for industrial controllers based on a clear set of definitions about what is a program, how to construct one, and how the program interacts with the host machine and with another program. The model consists of: High-level elements: Configurations, Resources and Tasks. They describe the overall architecture of a program resident in a programmable controller. Program Organization Units - POU’s. They are basic code containers. A program is structured in one or more POU’s. Variables and Data Types. The standard defines basic hardware-independent data types. The size and the arithmetic are strictly declared. Consequently, many errors, caused when a program is compiled in different platforms, can be avoided. From basic types, programmers can define derived data types, 3URFHHGLQJV RI WKH WK 0HGLWHUUDQHDQ &RQIHUHQFH RQ &RQWURO  $XWRPDWLRQ -XO\     $WKHQV  *UHHFH 7