Verification of PLC Properties Based on Formal Semantics in Coq
Abstract
Programmable Logic Controllers (PLC) are widely used in embedded systems for the industrial automation domain. We propose a formal semantics of two languages defined in the IEC 61131-3 standard for PLC programming. The first one is the Instruction List (IL) language, an assembly like language. The second one is the Sequential Function Charts (SFC) language, a graphical high-level language that allows to describe the main control-flow of the system. A PLC system description may comprise SFC and IL code. We formalized the semantics in the proof assistant Coq. Furthermore, we present an associated tool for automatically generating SFC representations from a graphical description - the text based IL code can be handled in Coq directly - and its usage for verification purposes. We demonstrate our approach to prove safety properties of a PLC in a real industrial demonstrator.