The PLCopen certification of IEC 61131-3 compliant programming systems is explained below.
The basis for standardization of the programming languages for industrial controllers was started many years ago with the definition of IEC 61131-3. What was not included in this standard was a standardized way of implementation and certification possibilities for the different manufacturers. This was the basis for a group of suppliers of industrial controllers and software environments to create an independent user organization under the name "PLCopen“. One of the goals of PLCopen, including several committees, is to define certification and accreditation procedures and specifications. The results are well-defined and binding test specifications, with which every supplier can prove the conformity of their software products to the IEC 61131-3 standard at independent accredited test institutes. The supplier as well as PLCopen publishes the result, a PLCopen certificate of compliance.
A product can be certified at Base Level, Conformity Level or Reusability Level.
Base Level was the first PLCopen certification level. Rising costs in the programming and dependencies during integration, installation, test and maintenance, increase the needs for transparent and easy re-usable software. Not only within one system but also across platforms from different suppliers. This provided the basis for PLCopen to create a new certification level, called Conformity Level, CL, and an exchange format for re-usability, called Reusability Level, RL.
Base Level is the lowest PLCopen level which can be certified. It defines a core kernel per language of the standard. Although rather restricted, it is feasible to develop applications based on it. Base Level provides an entrance level for the suppliers, showing their commitment to the standard. For the users it provides a normalized interpretation of the standard, especially important if they have to work with systems of different vendors.
The following levels are currently certifiable at Base Level:
- Instruction List, IL
- Structured Text, ST - is superseded by Conformity Level and Re-usability Level for ST
- Sequential Function Chart, SFC
- Function Block Diagram, FBD
Ladder Diagram (LD) is specified, but the test software is not yet available.
With the broad range of application areas for IEC 61131-3 not all implementations use exactly the same data types. To accompany this, the certification according to Conformity Level, CL, implies that the supplier of a PSE selects the data types supported by his product matching his conformity statement. All supported IEC features are tested. This means that although the test is a Yes/No test (compliant or non-compliant), there can be differences between two certified products. These differences can influence the reusability of user derived function blocks.
The total number of data types as specified in the Standard amounts to 26 (table 10 and 12 of the Standard). These range from simple digital Yes/No (BOOL) to potential complex structures. Therefore, CL has 26 options: data type supported or not-supported. Only the supported data types are used for testing.
In addition Reusability Level, RL, is dedicated to making the programming units functions and function blocks reusable on a different PSE. This is done via exchange in a plain textual format of the language Structured Text, ST. For representation in other languages, a conversion tool to or from ST can be included. This is a major, but natural, contribution of PLCopen to the IEC 61131-3 standard.
The export/import format contains only common elements defined by the IEC, but no PLCopen specific elements as headers. Each RL file contains only one FUNCTION_BLOCK...END_ FUNCTION_BLOCK or TYPE...END_TYPE section.
Reusability on a different PSE is guaranteed for the matching supported set of data types and the corresponding IEC functionality. Users therefore have to check if the targeted systems include the data types intended to be used. The amount of supported data types is listed on the certificate, as issued by PLCopen, and the supplier on your request should make a full list available. The reusability is focused to the standard functionality as defined within the Standard. For supplier dependent functions and function blocks there may be no equivalent on the receiving side, meaning that it will not work on the other system.