Unterstützung der SPS-Programmierung durch statische Analyse während der Programmeingabe

  • Assistance for PLC programming during development based on static analysis

Obster, Mathias; Kowalewski, Stefan (Thesis advisor); Frey, Georg (Thesis advisor)

Aachen : RWTH Aachen University (2020, 2021)
Book, Dissertation / PhD Thesis

In: Aachener Informatik-Berichte 2021-01
Page(s)/Article-Nr.: 1 Online-Ressource (xi, 118 Seiten) : Illustrationen

Dissertation, RWTH Aachen University, 2020


Using methods of static analysis, errors in program code can be detected fully automatically without executing it. This includes the technique of abstract interpretation and value set analysis in specific, which examines program behavior based on sets of possible variable assignments in order to find critical code areas. Programs for programmable logic controllers (PLCs) can also benefit from being analyzed this way. Error detection and avoidance is of particular interest here, since PLCs control and monitor machines and systems in industrial safety-critical environments. This dissertation is concerned with the question whether static analysis can contribute to error detection and avoidance during program input, especially during the activity of development of a PLC program. Therefore, the analysis framework ARCADE.PLC was extended in a way that it can annotate analysis results in an industry standard development environment. In addition to the constantly updated notes and warnings, this enhanced editor also allows the developer to display possible variable values which are calculated as an intermediate product in the value set analysis. Besides the integration and visualization work, a newly introduced incremental approach can reduce the computational costs that otherwise result from the frequent execution of the analysis process. It is taking advantage of the fact that during short intervals of the development, small changes in the program often have only limited impact on the overall result. The described implementation has been checked using a number of test programs and scenarios for program changes. These were reflecting usual modifications as they can occur while writing source code. Finally, a user study with participants from two industrial companies investigated whether developers can benefit from the results of static analysis while entering or modifying PLC source code.