On Industrial Automation Software Components
This thesis deals with Programmable Logic Controller (PLC) programs in the manufacturing industry, that is to say programs that coordinate robots and machines. The last years there has been increased competition and shorter life-cycles of many mass-produced products. This places new requirements also on the PLC programs, which must be easily modifiable and quickly made fully operational.
One way to make fast and correct modifications of the PLC programs is to reuse as much code as possible. Composing the PLC program from reusable components is a way to accomplish this reuse. Efficient component reuse requires that it is known how the components should be used and what the components guarantee. Hence, these requirements and guarantees must be unambiguously specified. It should also be verified that the implementation of the component indeed fulfils the specification.
Testing and simulating the component may be helpful in verifying that the specification is fulfilled. However, in many practical situations it is timeconsuming or even impossible to test or simulate all different cases in which the component can be used. An alternative is to use formal verification. Formal verification of the component means to automatically explore all behaviour of the component, to check whether or not the specification is fulfilled.
This thesis investigates how PLC program components can be, and currently are, used in industry. The main result is the definition of Reusable Automation Components (RACs). A component's requirements and properties can be formally specified in the RAC. The specification structure is inspired by a concept called Design by Contract. The specification can be expressed using Ladder Diagrams, a common PLC programming language, augmented with syntax for temporal logic. The augmentation is used to describe the order in time in which the states of the component changes, for instance when outputs should change related to certain inputs. The RAC, including the specification, can be translated into input to a tool for formal verification. Examples show that the RACs may help the users to find errors and inconsistencies within the components, making it easier to do modifications of the code.
Programmable Logic Controller (PLC)
Manufacturing automation software
Reusable Automation Component (RAC)