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.