Abstract
Automated production systems are usually driven by Programmable Logic Controllers (PLCs). These systems are long-living – yet have to adapt to changing requirements over time. This paper presents a novel method for regression verification of PLC code, which allows one to prove that a new revision of the plant’s software does not break existing intended behavior.
Our main contribution is the design, implementation, and evaluation of a regression verification method for PLC code. We also clarify and define the notion of program equivalence for reactive PLC code. Core elements of our method are a translation of PLC code into the SMV input language for model checkers, the adaptation of the coupling invariants concept to reactive systems, and the implementation of a toolchain using a model checker supporting invariant generation.
We have successfully evaluated our approach using the Pick-and-Place Unit benchmark case study.
Keywords
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
ARC Advisory Group: PLC & PLC-based PAC worldwide outlook: Five year market analysis and technology forecast through 2016 (2011)
Barthe, G., Crespo, J.M., Kunz, C.: Relational verification using product programs. In: Butler, M., Schulte, W. (eds.) FM 2011. LNCS, vol. 6664, pp. 200–214. Springer, Heidelberg (2011)
Bauer, N., Engell, S., Huuck, R., Lohmann, S., Lukoschus, B., Remelhe, M., Stursberg, O.: Verification of PLC programs given as sequential function charts. In: Ehrig, H., Damm, W., Desel, J., Große-Rhode, M., Reif, W., Schnieder, E., Westkämper, E. (eds.) INT 2004. LNCS, vol. 3147, pp. 517–540. Springer, Heidelberg (2004)
Bauer, N., Huuck, R., Lukoschus, B., Engell, S.: A unifying semantics for sequential function charts. In: Ehrig, H., Damm, W., Desel, J., Große-Rhode, M., Reif, W., Schnieder, E., Westkämper, E. (eds.) INT 2004. LNCS, vol. 3147, pp. 400–418. Springer, Heidelberg (2004)
Behrmann, G., Larsen, K., Moller, O., David, A., Pettersson, P., Yi, W.: UPPAAL: present and future. In: CDC. IEEE (2001)
Bornot, S., Huuck, R., Lukoschus, B.: Verification of sequential function charts using SMV. In: Arabnia, H.R. (ed.) PDPTA. CSREA Press (2000)
Bradley, A.R.: SAT-based model checking without unrolling. In: Jhala, R., Schmidt, D. (eds.) VMCAI 2011. LNCS, vol. 6538, pp. 70–87. Springer, Heidelberg (2011)
Brinksma, E., Mader, A., Fehnker, A.: Verification and optimization of a PLC control schedule. STTT 4(1), 21–33 (2002)
Cavada, R., et al.: The nuXmv symbolic model checker. In: Biere, A., Bloem, R. (eds.) CAV 2014. LNCS, vol. 8559, pp. 334–342. Springer, Heidelberg (2014)
Cytron, R., Ferrante, J., Rosen, B.K., Wegman, M.N., Zadeck, F.K.: An efficient method of computing static single assignment form. In: POPL. ACM (1989)
Felsing, D., Grebing, S., Klebanov, V., Rümmer, P., Ulbrich, M.: Automating regression verification. In: ASE. ACM (2014)
Flanagan, C., Saxe, J.B.: Avoiding exponential explosion: generating compact verification conditions. In: POPL. ACM (2001)
Godlin, B., Strichman, O.: Inference rules for proving the equivalence of recursive procedures. Acta Informatica 45(6), 403–439 (2008)
Godlin, B., Strichman, O.: Regression verification. In: DAC. ACM (2009)
Godlin, B., Strichman, O.: Regression verification: proving the equivalence of similar programs. JSTVR 23(3), 241–258 (2013)
Hawblitzel, C., Kawaguchi, M., Lahiri, S.K., Rebêlo, H.: Towards modularly comparing programs using automated theorem provers. In: Bonacina, M.P. (ed.) CADE 2013. LNCS, vol. 7898, pp. 282–299. Springer, Heidelberg (2013)
Holzmann, G.J.: The model checker SPIN. IEEE Trans. Softw. Eng. 23(5), 279–295 (1997)
Huang, S.-Y., Cheng, K.-T.: Formal Equivalence Checking and Design DeBugging. Kluwer Academic Publishers, Norwell (1998)
International Electrotechnical Commission. IEC 61131–3: Programmable Logic Controllers - Part 3: Programming Languages (2009)
Kuehlmann, A., van Eijk, C.: Combinational and sequential equivalence checking. In: Hassoun, S., Sasao, T. (eds.) Logic Synthesis and Verification, pp. 343–372. Springer, New York (2002)
Lampérière-Couffin, S., Rossi, O., Roussel, J.-M., Lesage, J.-J.: Formal validation of PLC programs: a survey. In: ECC (1999)
Legat, C., Folmer, J., Vogel-Heuser, B.: Evolution in industrial plant automation: a case study. In: Industrial Electronics Society, IECON. IEEE (2013)
Lu, F., Cheng, K.-T.: A sequential equivalence checking framework based on k-th invariants. VLSI 17(6), 733–746 (2009)
McMillan, K.L.: Interpolation and SAT-based model checking. In: Hunt Jr, W.A., Somenzi, F. (eds.) CAV 2003. LNCS, vol. 2725, pp. 1–13. Springer, Heidelberg (2003)
McMillan, K.L.: Symbolic Model Checking. Kluwer, Norwell (1993)
Pnueli, A.: The temporal logic of programs. In: FOCS (1977)
Schuppan, V., Biere, A.: Efficient reduction of finite state model checking to reachability analysis. STTT 5(2–3), 185–204 (2004)
Smet, O.D., Couffin, S., Rossi, O., Canet, G., Lesage, J.-J., Schnoebelen, P., Papini, H.: Safe programming of PLC using formal verification methods. In: Int. PLCopen Conference on Industrial Control Programming (2000)
Strichman, O.: Regression verification: proving the equivalence of similar programs. In: Bouajjani, A., Maler, O. (eds.) CAV 2009. LNCS, vol. 5643, p. 63. Springer, Heidelberg (2009)
Süflow, A., Drechsler, R.: Verification of PLC programs using formal proof techniques. In: FORMS/FORMAT (2008)
Verdoolaege, S., Janssens, G., Bruynooghe, M.: Equivalence checking of static affine programs using widening to handle recurrences. TOPLAS 34(3) (2012). Article No. 11
Verdoolaege, S., Palkovic, M., Bruynooghe, M., Janssens, G., Catthoor, F.: Experience with widening based equivalence checking in realistic multimedia systems. J. Electron. Test. 26(2), 279–292 (2010)
Vogel-Heuser, B.: Usability experiments to evaluate UML/SysML-based model driven software engineering notations for logic control in manufacturing automation. JSEA 7(11), 943–973 (2014)
Vogel-Heuser, B., Diedrich, C., Fay, A., Jeschke, S., Kowalewski, S., Wollschlaeger, M., Göhner, P.: Challenges for software engineering in automation. JSEA 7(5), 440–451 (2014)
Vogel-Heuser, B., Legat, C., Folmer, J., Feldmann, S.: Researching evolution in industrial plant automation: scenarios and documentation of the pick and place unit. Technical report TUM-AIS-TR-01-14-02, TUM (2014)
Vogel-Heuser, B., Legat, C., Folmer, J., Rösch, S.: Challenges of parallel evolution in production automation focusing on requirements specification and fault handling. Automatisierungstechnik 62(11), 758–770 (2014)
Wardana, A., Folmer, J., Vogel-Heuser, B.: Automatic program verification of continuous function chart based on model checking. In: IECON (2009)
Weigl, A.: Regression verification of programmable logic controller software. Master’s thesis, Karlsruhe Institut of Technology, January 2015
Welsch, Y., Poetzsch-Heffter, A.: Verifying backwards compatibility of object-oriented libraries using Boogie. In: FTfJP. ACM (2012)
Younis, M.B., Frey, G.: Formalization of existing PLC programs: a survey. In: CESA (2003)
Acknowledgement
The authors thank Alberto Griggio for his valuable input on the effective use of nuXmv and Vladimir Klebanov for his feedback on an earlier version of this paper.
This work was supported by the DFG (German Research Foundation) in Priority Programme SPP1593: Design For Future – Managed Software Evolution.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2015 Springer International Publishing Switzerland
About this paper
Cite this paper
Beckert, B., Ulbrich, M., Vogel-Heuser, B., Weigl, A. (2015). Regression Verification for Programmable Logic Controller Software. In: Butler, M., Conchon, S., Zaïdi, F. (eds) Formal Methods and Software Engineering. ICFEM 2015. Lecture Notes in Computer Science(), vol 9407. Springer, Cham. https://doi.org/10.1007/978-3-319-25423-4_15
Download citation
DOI: https://doi.org/10.1007/978-3-319-25423-4_15
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-25422-7
Online ISBN: 978-3-319-25423-4
eBook Packages: Computer ScienceComputer Science (R0)