Towards a taxonomy of errors in PLC programming

Abstract Based on previous studies on programming errors and their causes, the presented paper investigates errors that application engineers in the area of machine and plant automation make while creating either function block diagrams, plcML [an adaption of the unified modelling language (UML)] or modAT4rMS code (a newly developed modelling language that adapts and combines aspects of UML and SysML). A laboratory-based study with 52 mechatronics apprentices and electrical engineering technicians with knowhow in manufacturing system design but comparably undeveloped programming skills has been conducted, in which the subjects’ errors and think-aloud statements during code creation were recorded. In a subsequent step, these data have been analysed by the cognitive causes of the coding errors applying the skill-rules-knowledge framework. As a result, a taxonomy of errors is presented. Results indicate that most of the errors in the subjects’ code are due to insufficient understanding of the notation’s syntax, problems with the rules of encapsulation, the creation of modules and finally with the creation of variants and aggregations, which are all located at the rule-based level. Errors at the skill-based level mainly occurred during behavioural modelling with modAT4rMS. It is argued that the provided insights can be used for improving education on programmable logic controller (PLC) languages and for the design of tools that support PLC programmers at detecting and fixing errors within their code.

[1]  M. Eisenstadt Tales of Debugging from The Front Lines , 1993 .

[2]  John R. Anderson,et al.  Novice LISP Errors: Undetected Losses of Information from Working Memory , 1985, Hum. Comput. Interact..

[3]  Elliot Soloway,et al.  Analyzing the high frequency bugs in novice programs , 1986 .

[4]  Valeriy Vyatkin,et al.  Software Engineering in Industrial Automation: State-of-the-Art Review , 2013, IEEE Transactions on Industrial Informatics.

[5]  K. A. Ericsson,et al.  Protocol Analysis: Verbal Reports as Data , 1984 .

[6]  Georg Frey,et al.  Towards a Model-Driven IEC 61131-Based Development Process in Industrial Automation , 2011, J. Softw. Eng. Appl..

[7]  N. Hoffart Basics of Qualitative Research: Techniques and Procedures for Developing Grounded Theory , 2000 .

[8]  Keng Siau,et al.  The Complexity of Unified Modeling Language: A GOMS Analysis , 2001, ICIS.

[9]  Sandeep Purao,et al.  Towards an understanding of the use of problem and design spaces during object-oriented system development , 2002, Inf. Organ..

[10]  Ted Boren,et al.  Thinking aloud: reconciling theory and practice , 2000 .

[11]  Janet Rountree,et al.  Learning and Teaching Programming: A Review and Discussion , 2003, Comput. Sci. Educ..

[12]  Ankur Saxena,et al.  Towards a taxonomy of errors in HTML and CSS , 2013, ICER.

[13]  Brad A. Myers,et al.  A framework and methodology for studying the causes of software errors in programming systems , 2005, J. Vis. Lang. Comput..

[14]  Simon P. Davies,et al.  Knowledge restructuring and the acquisition of programming expertise , 1994, Int. J. Hum. Comput. Stud..

[15]  Birgit Vogel-Heuser,et al.  Usability evaluation on teaching and applying model-driven object oriented approaches for PLC software , 2012, 2012 American Control Conference (ACC).

[16]  Edward A. Youngs Human Errors in Programming , 1974, Int. J. Man Mach. Stud..

[17]  Birgit Vogel-Heuser,et al.  PLC-Statecharts: An Approach to Integrate UML-Statecharts in Open-Loop Control Engineering – Aspects on Behavioral Semantics and Model-Checking , 2011 .

[18]  Raymond R. Panko,et al.  What we know about spreadsheet errors , 1998 .

[19]  David Perkins,et al.  Fragile knowledge and neglected strategies in novice programmers , 1985 .

[20]  Albert N. Badre,et al.  Why Can't Smart Students Solve Simple Programming Problems? , 1993, Int. J. Man Mach. Stud..

[21]  Valeriy Vyatkin,et al.  Engineering in Industrial Automation : State of the Art Review , 2013 .

[22]  A. Marie Vans,et al.  Program understanding behavior during debugging of large scale software , 1997, ESP '97.

[23]  R. Kretschmann,et al.  INTERNATIONAL ELECTROTECHNICAL COMMISSION TECHNICAL COMMITTEE No. 65B: INDUSTRIAL-PROCESS MEASUREMENT AND CONTROL WORKING GROUP 7/TASK FORCE 3: PROGRAMMING LANGUAGES FOR PROGRAMMABLE CONTROLLERS (IEC 61131-3, -8) MINUTES OF MEETING , 2007 .

[24]  Alan F. Blackwell,et al.  First steps in programming: a rationale for attention investment models , 2002, Proceedings IEEE 2002 Symposia on Human Centric Computing Languages and Environments.

[25]  Alois Zoitl,et al.  Different perspectives [Face to face; "IEC 61499 architecture for distributed automation: The `"glass half full" view] , 2009 .

[26]  Jens Rasmussen,et al.  Skills, rules, and knowledge; signals, signs, and symbols, and other distinctions in human performance models , 1983, IEEE Transactions on Systems, Man, and Cybernetics.

[27]  Ken Young,et al.  An Assessment of PLC Software Structure Suitability for the Support of Flexible Manufacturing Processes , 2008, IEEE Transactions on Automation Science and Engineering.

[28]  Keng Siau,et al.  Identifying Difficulties in Learning Uml , 2006, Inf. Syst. Manag..

[29]  Birgit Vogel-Heuser,et al.  Evaluation of a UML-Based Versus an IEC 61131-3-Based Software Engineering Approach for Teaching PLC Programming , 2013, IEEE Transactions on Education.

[30]  Ralph H. Sprague,et al.  Hitting the wall: errors in developing and code inspecting a 'simple' spreadsheet model , 1998, Decis. Support Syst..