skip to main content
10.1145/3167132.3167334acmconferencesArticle/Chapter ViewAbstractPublication PagessacConference Proceedingsconference-collections
research-article

Cycle-bounded model checking of PLC software via dynamic large-block encoding

Published:09 April 2018Publication History

ABSTRACT

Bounded model checking is a formal verification technique for checking reachability of unwanted behaviour within a bounded number of steps. In the context of PLC software, specifications treat the whole program as a single step, only considering the controller's observable state at the end of an execution-cycle. For a program containing loops, standard approaches will characterise shorter steps, losing the relation to the original bound, or try to unroll the loops statically.

We propose a combination of symbolic execution and adjustable-block encoding to achieve an efficient, incremental, monotonic logical characterisation which lifts the step-size to whole cycles. Evaluation of our prototypical implementation on examples from the PLC Safety library shows its applicability to such specifications, compared to leading BMC approaches.

References

  1. Christel Baier and Joost-Pieter Katoen. 2008. Principles of model checking. MIT Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Michael Barnett and K. Rustan M. Leino. 2005. Weakest-precondition of unstructured programs. In Proceedings of the 2005 ACM SIGPLAN-SIGSOFT Workshop on Program Analysis For Software Tools and Engineering, PASTE'05, Lisbon, Portugal, September 5-6, 2005. 82--87. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Dirk Beyer. 2017. Software Verification with Validation of Results - (Report on SV-COMP 2017). In Tools and Algorithms for the Construction and Analysis of Systems - 23rd International Conference, TACAS 2017, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2017, Uppsala, Sweden, April 22-29, 2017, Proceedings, Part II. 331--349. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Dirk Beyer, Alessandro Cimatti, Alberto Griggio, M. Erkan Keremoglu, and Roberto Sebastiani. 2009. Software model checking via large-block encoding. In Proceedings of 9th International Conference on Formal Methods in Computer-Aided Design, FMCAD 2009, 15-18 November 2009, Austin, Texas, USA. 25--32. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Dirk Beyer and M. Erkan Keremoglu. 2011. CPAchecker: A Tool for Configurable Software Verification. In Computer Aided Verification - 23rd International Conference, CAV 2011, Snowbird, UT, USA, July 14-20, 2011. Proceedings. 184--190. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Dirk Beyer, M. Erkan Keremoglu, and Philipp Wendler. 2010. Predicate abstraction with adjustable-block encoding. In Proceedings of 10th International Conference on Formal Methods in Computer-Aided Design, FMCAD 2010, Lugano, Switzerland, October 20-23. 189--197. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Sebastian Biallas, Jörg Brauer, and Stefan Kowalewski. 2012. Arcade.PLC: a verification platform for programmable logic controllers. In IEEE/ACM International Conference on Automated Software Engineering, ASE'12, Essen, Germany, September 3-7, 2012. 338--341. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Armin Biere, Alessandro Cimatti, Edmund M. Clarke, and Yunshan Zhu. 1999. Symbolic Model Checking without BDDs. In Tools and Algorithms for Construction and Analysis of Systems, 5th International Conference, TACAS '99, Held as Part of the European Joint Conferences on the Theory and Practice of Software, ETAPS'99, Amsterdam, The Netherlands, March 22-28, 1999, Proceedings. 193--207. Google ScholarGoogle ScholarCross RefCross Ref
  9. Alessandro Cimatti, Edmund M. Clarke, Enrico Giunchiglia, Fausto Giunchiglia, Marco Pistore, Marco Roveri, Roberto Sebastiani, and Armando Tacchella. 2002. NuSMV 2: An OpenSource Tool for Symbolic Model Checking. In Computer Aided Verification, 14th International Conference, CAV 2002, Copenhagen, Denmark, July 27-31, 2002, Proceedings. 359--364. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Edmund M. Clarke, Daniel Kroening, and Flavio Lerda. 2004. A Tool for Checking ANSI-C Programs. In Tools and Algorithms for the Construction and Analysis of Systems, 10th International Conference, TACAS 2004, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2004, Barcelona, Spain, March 29 - April 2, 2004, Proceedings. 168--176.Google ScholarGoogle ScholarCross RefCross Ref
  11. Lucas C. Cordeiro, Bernd Fischer, and João Marques-Silva. 2012. SMT-Based Bounded Model Checking for Embedded ANSI-C Software. IEEE Trans. Software Eng. 38, 4 (2012), 957--974. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Dániel Darvas, István Majzik, and Enrique Blanco Viñuela. 2016. Formal Verification of Safety PLC Based Control Software. In Integrated Formal Methods - 12th International Conference, IFM 2016, Reykjavik, Iceland, June 1-5, 2016, Proceedings. 508--522. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Leonardo Mendonça de Moura and Nikolaj Bjørner. 2008. Z3: An Efficient SMT Solver. In Tools and Algorithms for the Construction and Analysis of Systems, 14th International Conference, TACAS 2008, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2008, Budapest, Hungary, March 29-April 6, 2008. Proceedings. 337--340. Google ScholarGoogle ScholarCross RefCross Ref
  14. Niklas Eén and Niklas Sörensson. 2003. Temporal induction by incremental SAT solving. Electr. Notes Theor. Comput. Sci. 89, 4 (2003), 543--560.Google ScholarGoogle ScholarCross RefCross Ref
  15. Cormac Flanagan and James B. Saxe. 2001. Avoiding exponential explosion: generating compact verification conditions. In Conference Record of POPL 2001: The 28th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, London, UK, January 17-19, 2001. 193--205. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Gordon Fraser, Franz Wotawa, and Paul Ammann. 2009. Testing with model checkers: a survey. Softw. Test., Verif. Reliab. 19, 3 (2009), 215--261. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. James C. King. 1976. Symbolic Execution and Program Testing. Commun. ACM 19, 7 (1976),385--394. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Tim Lange, Martin R. Neuhäußer, and Thomas Noll. 2013. Speeding Up the Safety Verification of Programmable Logic Controller Code. In Hardware and Software: Verification and Testing - 9th International Haifa Verification Conference, HVC 2013, Haifa, Israel, November 5-7, 2013, Proceedings. 44--60.Google ScholarGoogle Scholar
  19. K. Loeis, Mohammed Bani Younis, and Georg Frey. 2005. Application of symbolic and bounded model checking to the verification of logic control systems. In Proceedings of 10th IEEE International Conference on Emerging Technologies and Factory Automation, ETFA 2005, September 19-22, 2005, Catania, Italy.Google ScholarGoogle ScholarCross RefCross Ref
  20. Tolga Ovatman, Atakan Aral, Davut Polat, and Ali Osman Ünver. 2016. An overview of model checking practices on verification of PLC software. Software and System Modeling 15, 4 (2016), 937--960. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. PLCopen TC5. 2006. Safety Software Technical Specification, Version 1.0, Part 1: Concepts and Function Blocks. PLCopen, Germany.Google ScholarGoogle Scholar
  22. PLCopen TC5. 2008. Safety Software Technical Specification, Version 1.01, Part 2: User Examples. PLCopen, Germany.Google ScholarGoogle Scholar
  23. Peter Schrammel, Daniel Kroening, Martin Brain, Ruben Martins, Tino Teige, and Tom Bienmüller. 2015. Successful Use of Incremental BMC in the Automotive Industry. In Formal Methods for Industrial Critical Systems - 20th International Workshop, FMICS 2015, Oslo, Norway, June 22-23, 2015 Proceedings. 62--77.Google ScholarGoogle Scholar
  24. Koushik Sen, Darko Marinov, and Gul Agha. 2005. CUTE: a concolic unit testing engine for C. In Proceedings of the 10th European Software Engineering Conference held jointly with 13th ACM SIGSOFT International Symposium on Foundations of Software Engineering, 2005, Lisbon, Portugal, September 5-9, 2005. 263--272. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Cycle-bounded model checking of PLC software via dynamic large-block encoding

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in
          • Published in

            cover image ACM Conferences
            SAC '18: Proceedings of the 33rd Annual ACM Symposium on Applied Computing
            April 2018
            2327 pages
            ISBN:9781450351911
            DOI:10.1145/3167132

            Copyright © 2018 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 9 April 2018

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article

            Acceptance Rates

            Overall Acceptance Rate1,650of6,669submissions,25%

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader