Formal Analysis of Ladder Programs using Deductive Verification
Analyse formelle des programmes Ladder
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 behaviour is of critical importance. In this work, we consider the description of the expected behaviour under the form of a timing chart, describing scenarios of execution. Our approach consists in translating the Ladder code and the timing chart 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 conformance of the Ladder code with respect to the timing chart with a high degree of confidence. Second, when the proof is not fully completed, we obtain a counterexample, illustrating a possible execution scenario of the Ladder code which does not conform to the timing chart.
Les Programmable Logic Controllers (PLC) 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 timing chart, décrivant les scénarios d’exécution. Notre approche consiste à traduire le code Ladder et le timing chart 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 timing chart 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 possible du code Ladder qui n’est pas conforme au timing chart.
Domaines
Logique en informatique [cs.LO]Origine | Fichiers produits par l'(les) auteur(s) |
---|