Dynamic Analysis of Multi-threaded Real-time PLC Applications Using Record and Replay

Christian Wirth


Abstract

Identifying defects in hard real-time Programmable Logic Controller (PLC) applications is known to be a difficult problem. Due to the strong integration with the physical devices, PLC applications usually cannot be debugged online. Dynamic scheduling of multiple tasks further complicates debugging, as sporadic bugs emerge that can hardly be reconstructed on a development system.

The goal of this work is to develop concepts and methods to allow developers to analyze and debug hard real-time PLC applications in a simple and concise way. As a first step, a deterministic replay technique is introduced. It allows recording a PLC application obeying real-time constraints in the field with minimal overhead, and replaying it afterwards in a fully deterministic way on a development system. In this replay mode, the system exhibits an identical behavior with the same user-observable effects as in the original execution and can be debugged and analyzed without the original restrictions of the field operation.

Based on a replay, analysis and debugging of PLC systems are significantly enhanced. This thesis introduces an analysis approach where the user obtains an overview of the program’s behavior, identifies recurring patterns of execution, finds similarities and differences, locates unusual, abnormal, and possibly erroneous behaviors, and finds the locations and causes of bugs. A multi-level analysis, visualization, and exploration approach is pursued in which the reactive behavior is extracted from the recorded execution traces, abstracted, and visualized in high-level views. This allows the developer to selectively examine program executions and explore them in detail. The thesis presents the concepts of the approach, shows its implementation in a prototypical tool environment, and evaluates the approach by means of several examples and a case study of the industry partner.

This work has been conducted in cooperation with KEBA AG, Austria.

Kurzfassung

Die Fehlersuche in Programmable Logic Controller (PLC) Anwendungen unter harten Echtzeitbedingungen ist bekanntermaßen ein schwieriges Unterfangen. Aufgrund der Integration in ein Hardware-System können derartige Programme normalerweise nicht zur Laufzeit analysiert werden. Durch dynamisches Prozess-Scheduling treten sporadische Fehler auf, die auf Entwicklungsrechnern nicht reproduziert werden können.

Ziel dieser Arbeit ist es, Konzepte und Methoden zu entwickeln, um den Entwicklern die Analyse und die Fehlersuche in echtzeitfähigen PLC-Anwendungen zu ermöglichen. Als erster Schritt wurde dafür eine Wiederabspiel-Technik entwickelt. Diese ermöglicht es, Programmläufe mit minimalem Aufwand und unter Einhaltung der Echtzeitbedingungen aufzuzeichnen und sie auf einem Entwicklungssystem mit exakt gleichem Verhalten wiederabzuspielen. Dabei können die Programmausführung und eventuelles Fehlverhalten ohne Einschränkungen analysiert werden.

Darauf aufbauend wurde die Analyse und Fehlersuche für solche Programme bedeutend verbessert. Diese Arbeit führt Techniken zum einfacheren Begreifen des Programmverhaltens ein und ermöglicht das Erkennen und Visualisieren wiederholender Verhaltensmuster. Die Techniken ermöglichen es, Ähnlichkeiten und Unterschiede in Ausführungssträngen aufzuzeigen, normales von ungewöhnlichem Verhalten zu unterscheiden und die Ursachen von Fehlern zu analysieren. In einem mehrphasigen Prozess wird das reaktive Verhalten der Anwendung aufgezeichnet und dem Entwickler dargestellt. Das ermöglicht detaillierte Analysen der Programmausführung. Diese Dissertation zeigt einen Lösungsvorschlag für die Unterstützung bei der Fehlersuche in PLC-Anwendungen, präsentiert eine prototypische Implementierung dieses Ansatzes und zeigt die praktische Anwendbarkeit anhand mehrerer Beispiele und einer Industrie-Anwendung auf.

Diese Arbeit wurde in Kooperation mit der KEBA AG, Linz, durchgeführt.


PhD thesis, Johannes Kepler University Linz, Juni 2013, gesperrt bis 20.6.2018