Formal Synthesis of Safety Controller Code for Distributed Controllers
Modern control systems in manufacturing are characterized by rising complexity in size and functionality. They are highly decentralized and constitute a network of physically and functionally distributed controllers collaborating to perform the control tasks. That goes along with a further growing demand on safety and reliability. A distributed control architecture supporting functional decomposition of large systems as well as accommodating flexibility of modular systems is defined.
This work describes the formal synthesis of distributed control functions for the sub area of safety requirements. The formal synthesis is applied to avoid the potentially faulty influence of human work through the whole process from the formal specification to the executable control function. Starting points are a formal model of the uncontrolled plant behavior and a formal specification of forbidden behavior. The formulation of the specification and the modeling is exemplified on a manufacturing system in lab-scale.
The introduced synthesis methods produce controller models describing the correct control actions to achieve the given specification. The methods use symbolic backward search from a forbidden state to determine the last admissible state before entering an uncontrollable trajectory to a forbidden state. Hence, the determination of the reachable state space is avoided to reduce the computational complexity. The use of partial markings leads to a further reduction. The complexity is an important obstacle for the use of formal methods on real-scale applications. The monolithic synthesis approach is proven to result in maximally permissive results. The modular approach is not maximally permissive but the more efficient way to distributed control functions.
The implementation of the generated controller model as executable Function Blocks according to IEC61499 is addressed in the last part of this work. The distributed control predicates are embedded as structured text instruction into different interacting Function Block types according to the distributed control structure. This last step finalizes the sequence from a formal model and the specification to fully automatically-generated executable control code.