Model Checking Industrial Robot Systems

Modern production plants are highly automated complex systems consisting of several robots and other working machines. Errors leading to damage and stop of production are extremely expensive and must be avoided by all means. Hence, the state of practice is to test control programs in advance which implies high effort and comes with high costs. To increase the confidence into the control systems and to reduce the necessary effort, this paper proposes to use model checking to verify certain properties. It presents a compiler that can transform industrial robot programs into PROMELA models. Since the statements of the robot programming language can not be mapped directly into PROMELA statements, we apply compiler optimization techniques to close the semantic gap. In case of a specification violation the trace is mapped to the original context so that the robot programmer can reconstruct the problem. As a case study we applied the tool to verify the absence of collisions and deadlocks. We were able to detect one deadlock in a car-body welding station with 9 robots, correct the program and verify the correctness of the resulting system.

[1]  Patrick Cousot,et al.  Verification of Embedded Software: Problems and Perspectives , 2001, EMSOFT.

[2]  Martin Große-Rhode Integration of Software Specification Techniques for Applications in Engineering , 2004, Lecture Notes in Computer Science.

[3]  Perdita Stevens,et al.  Modelling Recursive Calls with UML State Diagrams , 2003, FASE.

[4]  Emanuele Carpanzano,et al.  Model-Checking based Verification approach for advanced Industrial Automation solutions , 2010, 2010 IEEE 15th Conference on Emerging Technologies & Factory Automation (ETFA 2010).

[5]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[6]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[7]  María-del-Mar Gallardo,et al.  Model Extraction for ARINC 653 Based Avionics Software , 2007, SPIN.

[8]  Philippe Schnoebelen,et al.  Towards the automatic verification of PLC programs written in Instruction List , 2000, Smc 2000 conference proceedings. 2000 ieee international conference on systems, man and cybernetics. 'cybernetics evolving to systems, humans, organizations, and their complex interactions' (cat. no.0.

[9]  허윤정,et al.  Holzmann의 ˝The Model Checker SPIN˝에 대하여 , 1998 .

[10]  C. R. Ramakrishnan,et al.  An Optimizing Compiler for Efficient Model Checking , 1999, FORTE.

[11]  Sebastián Uchitel,et al.  Towards Faithful Model Extraction Based on Contexts , 2008, FASE.

[12]  Thomas A. Henzinger,et al.  The software model checker B last : Applications to software engineering , 2007 .

[13]  Paola Inverardi,et al.  Proceedings of the Theory and practice of software, 11th international conference on Fundamental approaches to software engineering , 2008 .

[14]  Helmut Seidl,et al.  Region Analysis for Race Detection , 2009, SAS.

[15]  Klaus Havelund,et al.  Java PathFinder, A Translator from Java to Promela , 1999, SPIN.

[16]  Stefan Kowalewski,et al.  Direct Model Checking of {PLC} Programs in {IL} , 2009 .

[17]  Thomas A. Henzinger,et al.  The software model checker Blast , 2007, International Journal on Software Tools for Technology Transfer.

[18]  Mieke Massink,et al.  Theoretical and Practical Aspects of SPIN Model Checking , 1999, Lecture Notes in Computer Science.

[19]  Gerard J. Holzmann,et al.  An Automated Verification Method for Distributed Systems Software Based on Model Extraction , 2002, IEEE Trans. Software Eng..

[20]  Hai Wan,et al.  Formalization and Verification of PLC Timers in Coq , 2009, 2009 33rd Annual IEEE International Computer Software and Applications Conference.

[21]  Dragan Bošnački,et al.  Proceedings of the 14th international SPIN conference on Model checking software , 2007 .

[22]  James C. Corbett,et al.  Bandera: extracting finite-state models from Java source code , 2000, ICSE.

[23]  Olaf Stursberg,et al.  Verification of PLC Programs Given as Sequential Function Charts , 2004, SoftSpez Final Report.

[24]  Andreas Podelski,et al.  ACSAR: Software Model Checking with Transfinite Refinement , 2007, SPIN.

[25]  Ralf Pinger,et al.  Automation of Formal Verification of PLC Programs Written in IL , 2007, VERIFY.

[26]  Georg Frey,et al.  Formalization of existing PLC Programs: A Survey , 2003 .