ICA  Vol.6 No.1 , February 2015
On the Analysis of PLC Programs: Software Quality and Code Dynamics
As a result of sudden failure in the Programmable Logic Control (PLC) controlled process, the need of diagnosis arises. Diagnosis problem plays an important role to monitor failures in PLC, used to control the whole process. Nowadays and due to the lack of the needed tools availability to perform this action automatically, it is accomplished manually. Usually, the time consuming method is used by back-tracking the failure on an actuator due to the corresponding sensors. This paper analyzes the software quality metrics and their application on the PLC programs. Aiming to implement metrics that gives predictive information about diagnosability of an Instruction List (IL) PLC programs, this could minimize the needed effort to check the program in case of mistakes. Furthermore, to get a better prediction about diagnosability, new metrics are introduced which are able to give more information about the semantics of a program. But they are not yet fully developed and have to be analyzed.

Cite this paper
Younis, M. (2015) On the Analysis of PLC Programs: Software Quality and Code Dynamics. Intelligent Control and Automation, 6, 55-63. doi: 10.4236/ica.2015.61007.
[1]   Lunze, J. and Schröder, J. (2001) State Observation and Diagnosis of Discrete-Event Systems Described by Automata. Discrete Event Dynamic Systems—Theory and Applications, 11, 319-396.

[2]   Papadopoulus, Y. and McDermid, J. (2001) Automated Safety Monitoring: A Review and Classification of Methods. International Journal of Condition Monitoring and Diagnostic Engineering Management, 4, 14-32.

[3]   Sampath, M., Sengutpa, R., Lafortune, S., Sinnamohideen, K. and Tenekeztis, D. (1996) Failure Diagnosis Using Discrete Event Models. IEEE Transactions on Control Systems Technology, 4, 105-124. http://dx.doi.org/10.1109/87.486338

[4]   Bani Younis, M. (2006) Re-Engineering Approach for PLC Programs Based on Formal Methods. Dissertation, University of Kaiserslautern, Kaiserslautern.

[5]   Höcker, H., Itzfeld, W.D., Schmidt, M. and Timm, M. (1994) Comparative Descriptions of Software Quality Metrics. GMD-Studien Nr. 81, GMD, Bonn.

[6]   Kann, S.H. (2003) Metrics and Models in Software Quality Engineering. 2nd Edition, Addison Wesley Professional.

[7]   Halstead, M.H. (1977) Elements of Software Science. Elsevier, New York.

[8]   McCabe, T. (1976) A Complexity Measure. IEEE Transactions on Software Engineering, SE-2, 308-320. http://dx.doi.org/10.1109/TSE.1976.233837

[9]   Frey, G. (2002) Software Quality in Logic Controller Design. Proceedings of the IEEE SMC 2002, Tunisia, 6-9 October 2002, 515-520.

[10]   Dandachi, A., Lohmann, S. and Engell, S. (2007) Complexity of Logic Controllers. Preprints of 1st IFAC Workshop on Dependable Control of Discrete Systems, Cachan, 13-15 June 2007, 279-284.

[11]   Lucas, M. and Tilbury, D. (2002) Quantitative and Qualitative Comparisons of Plc Programs for a Small Testbed. Proceeding of the American Control Conference, Alaska, 8-10 May 2002, 4165-4171.

[12]   Wang, R., et al. (2013) Component-Based Formal Modeling of PLC Systems. Journal of Applied Mathematics, 2013, Article ID: 721624.

[13]   Bani Younis, M. and Frey, G. (2007) Software Quality Measures to Determine the Diagnosability of PLC Applications. Proceedings of the of the 12th IEEE International Conference on Emerging Technologies and Factory Automation, Patras, 25-28 September, 368-375.

[14]   Horwitz, S., Reps, T. and Binkley, D. (1990) Interprocedural Slicing Using Dependence Graphs. ACM Transactions on Programming Languages and Systems, 12, 26-60.

[15]   Weiser, M. (1979) Program Slices: Formal, Psychological, and Practical Investigations of an Automatic Program Abstraction Method. Ph.D. Thesis, University of Michigan, Ann Arbor.

[16]   Weiser, M. (1982) Programmers Use Slices When Debugging. Communications of the ACM, 25, 446-452. http://dx.doi.org/10.1145/358557.358577

[17]   Weiser, M. (1984) Program Slicing. IEEE Transactions on Software Engineering, 10, 352-357.

[18]   Zoubek, B., Roussel, J.-M. and Kwiatkowska, M. (2003) Towards Automatic Verification of Ladder Logic Programs. Proceedings of IMACS-IEEE CESA’03 Computational, Engineering in Systems Applications, Lille, 9-11 July 2003, 6 p.

[19]   Tip, F. (1994) A Survey of Program Slicing Techniques. Journal of Programming Languages—JPL, 3.

[20]   Kuck, D.J., Kuhn, R.H., Padua, D.A., Leasure, B. and Wolfe, M. (1981) Dependence Graphs and Compiler Optimizations. Conference Record of the 8th ACM Symposium on Principles of Programming Languages, New York, 207-218.

[21]   Ferrante, J., Ottenstein, K.J. and Warren, J.D. (1987) The Program Dependence Graph and Its Use in Optimization. ACM Transactions on Programming Languages and Systems, 9, 319-349.

[22]   Bani Younis, M. and Frey, G. (2005) Formalization and Visualization of Non-Binary PLC Programs. Proceedings of the 44th IEEE Conference on Decision and Control (CDC 2005) and European Control Conference (ECC 2005), Seville, 12-15 December 2005, 8367-8372.

[23]   Frey, G. and Bani Younis, M. (2004) A Re-Engineering Approach for PLC Programs using Finite Automata and UML. Proceedings of 2004 IEEE International Conference on Information Reuse and Integration, IRI-2004, Las Vegas, 8-10 November, 24-29.