Solving circular dependencies in industrial automation programs

Prevention of data loss in each scan cycle is of utmost importance in control system programming. For each variable to reflect the latest value, compilers compute the order of execution of control logic objects according to data flow. But this technique for ensuring data integrity fails when a circular dependency or a “code loop” is found. In this paper, we propose an approach to help solve this issue in 2 steps — by providing an interactive visual representation and providing a list of possible solutions. A tool is implemented based on this approach which can take either the control logic code or the dump created by the compiler as input. The tool has been validated for effectiveness with industrial use cases from different domains.

[1]  Joseph Naor,et al.  Approximating Minimum Feedback Sets and Multicuts in Directed Graphs , 1998, Algorithmica.

[2]  Robert E. Tarjan,et al.  Depth-First Search and Linear Graph Algorithms , 1972, SIAM J. Comput..

[3]  Dipl.-Inform. Karl-Heinz John,et al.  IEC 61131-3: Programming Industrial Automation Systems , 2001, Springer Berlin Heidelberg.

[4]  Mikio Ohki,et al.  A program visualization tool for program comprehension , 2003, IEEE Symposium on Human Centric Computing Languages and Environments, 2003. Proceedings. 2003.

[5]  Roberto Tamassia,et al.  Handbook on Graph Drawing and Visualization , 2013 .

[6]  Pierluigi Crescenzi,et al.  A compendium of NP optimization problems , 1994, WWW Spring 1994.

[7]  Benno Schwikowski,et al.  On enumerating all minimal solutions of feedback problems , 2002, Discret. Appl. Math..

[8]  Aaron Marcus,et al.  Software visualization for debugging , 1997, CACM.

[9]  Rainer Koschke,et al.  Journal of Software Maintenance and Evolution: Research and Practice Software Visualization in Software Maintenance, Reverse Engineering, and Re-engineering: a Research Survey , 2022 .

[10]  Camil Demetrescu,et al.  Combinatorial algorithms for feedback problems in directed graphs , 2003, Inf. Process. Lett..

[11]  T. Panas,et al.  Software Comprehension – Integrating Program Analysis and Software Visualization , 2002 .

[12]  M. Lanza,et al.  CodeCrawler - an information visualization tool for program comprehension , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..