Synthesizing Executable PLC Code for Robots from Scenario-Based GR(1) Specifications

Robots are found in most, if not all, modern production facilities and they increasingly enter other domains, e.g., health care. Robots participate in complex processes and often need to cooperate with other robots to fulfill their goals. They must react to a variety of events, both external, e.g., user inputs, and internal, i.e., actions of other components or robots in the system. Designing such a system, in particular developing the software for the robots contained in it, is a difficult and error-prone task. We developed a formal scenario-based modeling method which supports engineers in this task. Using short, intuitive scenarios engineers can express requirements, desired behavior, and assumptions made about the system’s environment. These models can be created early in the design process and enable simulation as well as an automated formal analysis of the system and its components. Scenario-based models can drive the execution at runtime or can be used to generate executable code, e.g., programmable logic controller code. In this paper we describe how to use our scenario-based approach to not only improve the quality of a system through formal methods, but also how to reduce the manual implementation effort by generating executable PLC code.

[1]  Marsha Chechik,et al.  Synthesis of Partial Behavior Models from Properties and Scenarios , 2009, IEEE Transactions on Software Engineering.

[2]  Joel Greenyer,et al.  Scenarios@run.time - Distributed Execution of Specifications on IoT-connected Robots , 2015, MoDELS@Run.time.

[3]  Sebastián Uchitel,et al.  Controller synthesis: From modelling to enactment , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[4]  David Harel,et al.  LSCs: Breathing Life into Message Sequence Charts , 1999, Formal Methods Syst. Des..

[5]  Wilhelm Schäfer,et al.  On-the-Fly Synthesis of Scarcely Synchronizing Distributed Controllers from Scenario-Based Specifications , 2015, FASE.

[6]  David Harel,et al.  Come, let's play - scenario-based programming using LSCs and the play-engine , 2003 .

[7]  Stefan Kowalewski,et al.  Arcade.PLC: a verification platform for programmable logic controllers , 2012, 2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering.

[8]  Jan Oliver Ringert,et al.  On well-separation of GR(1) specifications , 2016, SIGSOFT FSE.

[9]  Assaf Marron,et al.  Spaghetti for the main course?: observations on the naturalness of scenario-based programming , 2012, ITiCSE '12.

[10]  Lothar Litz,et al.  Formal methods in PLC programming , 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.

[11]  Ufuk Topcu,et al.  Compositional Synthesis of Reactive Controllers for Multi-agent Systems , 2016, CAV.

[12]  Guy Katz,et al.  Scenario-Based Modeling and Synthesis for Reactive Systems with Dynamic System Structure in ScenarioTools , 2016, D&P@MoDELS.

[13]  Gabriele Taentzer,et al.  Henshin: advanced concepts and tools for in-place EMF model transformations , 2010, MODELS'10.

[14]  Devinder Thapa,et al.  Transformation from Petri Nets Model to Programmable Logic Controller using One-to-One Mapping Technique , 2005, International Conference on Computational Intelligence for Modelling, Control and Automation and International Conference on Intelligent Agents, Web Technologies and Internet Commerce (CIMCA-IAWTIC'06).

[15]  Jan Oliver Ringert,et al.  Synthesizing a Lego Forklift Controller in GR(1): A Case Study , 2016, SYNT.

[16]  David Harel,et al.  Specifying and executing behavioral requirements: the play-in/play-out approach , 2003, Software & Systems Modeling.

[17]  David Harel,et al.  Synthesizing State-Based Object Systems from LSC Specifications , 2000, Int. J. Found. Comput. Sci..

[18]  Krishnendu Chatterjee,et al.  Conditionally Optimal Algorithms for Generalized Büchi Games , 2016, MFCS.

[19]  Anneke Kleppe,et al.  The Object Constraint Language: Getting Your Models Ready for MDA , 2003 .

[20]  David Harel,et al.  Come, Let’s Play , 2003, Springer Berlin Heidelberg.

[21]  Anneke Kleppe,et al.  MDA explained - the Model Driven Architecture: practice and promise , 2003, Addison Wesley object technology series.

[22]  Johann Schumann,et al.  Generating statechart designs from scenarios , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[23]  Krzysztof Sacha,et al.  Automatic Code Generation for PLC Controllers , 2005, SAFECOMP.

[24]  Jürgen Dingel,et al.  A comparative survey of scenario-based to state-based model synthesis approaches , 2006, SCESM '06.

[25]  David Harel,et al.  Scenario-based programming: reducing the cognitive load, fostering abstract thinking , 2014, ICSE Companion.

[26]  Frank Budinsky,et al.  EMF: Eclipse Modeling Framework 2.0 , 2009 .

[27]  Carlo Ghezzi,et al.  Towards Executing Dynamically Updating Finite-State Controllers on a Robot System , 2015, 2015 IEEE/ACM 7th International Workshop on Modeling in Software Engineering.

[28]  Pierre-Yves Schobbens,et al.  From live sequence charts to state machines and back: a guided tour , 2005, IEEE Transactions on Software Engineering.

[29]  Vasumathi Raman,et al.  Slugs: Extensible GR(1) Synthesis , 2016, CAV.

[30]  Fred Kröger,et al.  Temporal Logic of Programs , 1987, EATCS Monographs on Theoretical Computer Science.

[31]  Georg Frey Automatic implementation of Petri net based control algorithms on PLC , 2000, Proceedings of the 2000 American Control Conference. ACC (IEEE Cat. No.00CH36334).