Content area
This document discusses the development of a support library for object-oriented programming (OOP) of programmable logic controllers (PLCs). However, since this programming approach is still not a well-established concept, especially in the PLC domain, object-oriented programming is introduced, discussed, and evaluated in advance.
The text starts by reporting how PLCs have evolved, especially along with the IEC 61131- 3 standard, and comparing OOP and traditional procedural programming (PP). To better understand how this paradigm shift impacts industrial software applications and how OOP usage in this context compares to information systems applications, a comparison is made between the use of OOP in information technology (IT) and operational technology (OT). A case study is also presented to compare OOP and PP paradigms in a fairly complex virtual PLCcontrolled system. Ending the dissertation, the development of a software library supporting the OOP approach for PLCs is presented, and its utilization is exemplified.
The research conducted concludes that OOP, by dividing the system into objects, allows for programming complex systems in a more organized manner, thereby making software easier to interpret, modify, and expand compared to using PP. However, this new type of PLC programming requires object-oriented supporting tools for problem-solving and software modeling, leading to the widespread adoption of UML and SysML. Consequently, going from PP to OOP in PLC applications requires proper education and training in software engineering.
Therefore, OOP is not a master key, as traditional ladder programming and GRAFCET modeling are still the best options for simple, classical, and well-established control scenarios. As such, OOP does not replace traditional PLC programming, but it is an option for complex systems, where flexibility and adaptability are fundamental.
However, this document is solely an introduction to the topic and, as such, there are many possibilities for continuing the work carried out, such as addressing OOP for human-machine interfaces (HMIs), expanding the developed library, and exploring safety and security using OOP concepts.