Conformity of Ladder Programs against State Transition Diagrams
Analyse automatique de conformité de codes Ladder vis-à-vis de diagrammes états-transitions
Résumé
Programmable logic controllers (PLC) are industrial digital computers used as automation controllers of manufacturing processes, such as assembly lines or robotic devices. The Ladder language, also known as Ladder Logic, is a programming language used to develop PLC software. Because of their widespread usage in industry, verifying that Ladder programs conform to their expected behavior is of critical importance. In this work, we consider the description of the expected behavior under the form of a state transition diagram, describing scenarios of execution. Our approach consists in translating the Ladder code and the diagram into a program for the Why3 environment dedicated to deductive program verification. The verification proceeds by generating formal verification conditions, which are mathematical statements to be proved valid using automated theorem provers. The ultimate goal is two-fold: first, by obtaining a complete proof, we can verify the conformity of the Ladder code with respect to the state transition diagram with a high degree of confidence. Second, when the proof is not fully completed, we obtain a counterexample, illustrating an execution scenario of the Ladder code which does not conform to the diagram.
Les automates industriels programmables (Programmable Logic Controllers, PLC en abrégé) sont des dispositifs numériques industriels utilisés pour contrôler les processus de fabrication automatisés, tels que les lignes d'assemblage ou les robots de toute sorte. Le langage Ladder, également connu sous le nom de Ladder Logic, est un langage de programmation utilisé pour développer des logiciels pour PLC. Du fait de leur utilisation très répandue dans l'industrie, vérifier que les programmes Ladder sont conformes à leur comportement attendu est d'une importance cruciale. Dans ce travail, nous considérons une description du comportement attendu sous la forme d'un diagramme états-transitions (State Transition Diagram, en abrégé STD), décrivant l'ensemble des scénarios d'exécution. Notre approche consiste à traduire le code Ladder et le diagramme en un programme pour l'environnement Why3 dédié à la vérification déductive des programmes. La vérification se déroule en générant des conditions formelles de vérification, qui sont des énoncés mathématiques destinés à être prouvés valides à l'aide de prouveurs automatiques de théorèmes. Le but ultime est double : premièrement, en obtenant une preuve complète, nous pouvons vérifier la conformité du code Ladder par rapport au STD avec un degré élevé de confiance. Deuxièmement, lorsque la preuve n'est pas entièrement complétée, nous obtenons un contre-exemple, illustrant un scénario d’exécution du code Ladder qui n'est pas conforme au diagramme.
Mots clés
Domaines
| Origine | Fichiers produits par l'(les) auteur(s) |
|---|---|
| Licence |