ESBMC-PLC: Formal Verification of IEC 61131-3 Ladder Diagram Programs Using SMT-Based Model Checking
Dieses Paper stellt ESBMC-PLC vor, den ersten Open-Source-Formal-Verifier, der IEC 61131-3 Ladder Diagram-Programme nativ unterstützt, indem er diese in eine Zwischenrepräsentation für das SMT-basierte Model Checking übersetzt, wodurch Sicherheitsreigenschaften erfolgreich verifiziert und Bugs in diversen industriellen Benchmarks erkannt werden, während gleichzeitig zentrale Forschungslücken auf diesem Gebiet adressiert werden.
Originalarbeit lizenziert unter CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen
Stellen Sie sich eine Fabrikhalle vor, in der riesige Maschinen, chemische Mischer und Bahnsignale von einem winzigen, unermüdlichen Gehirn namens PLC (Speicherprogrammierbare Steuerung) gesteuert werden. Diese Maschinen laufen nach einer speziellen Art von Bedienungsanleitung, dem Kettenschema (Ladder Diagram). Stellen Sie sich das wie die Zeichnung einer Leiter vor, bei der jede „Stufe“ eine Regel ist: „Wenn das rote Licht leuchtet UND der Knopf gedrückt wird, dann schalte den Motor ein.“
Seit Jahrzehnten schreiben Ingenieure diese Regeln durch Zeichnen statt durch Tippen von Code. Dies machte es für moderne „Sicherheitsinspektoren“ (formale Verifikationswerkzeuge) sehr schwierig, die Regeln auf Perfektion zu prüfen, da diese Inspektoren nur gedruckten Code verstanden, aber keine Zeichnungen.
Dieses Paper stellt ESBMC-PLC vor, ein neues Werkzeug, das wie ein universeller Übersetzer und ein superstrenger Sicherheitsinspektor zugleich fungiert.
So funktioniert es, erklärt anhand einfacher Analogien:
1. Der Übersetzer (Der „Stein der Rosetta“)
Vor diesem Werkzeug konnten Sie einen Computer nicht bitten, eine Zeichnung zu prüfen. ESBMC-PLC nimmt das grafische „Kettenschema“ (die Zeichnung) und übersetzt es sofort in eine Sprache, die der Computer versteht (einen textbasierten Zwischencode).
- Die Analogie: Stellen Sie sich vor, Sie haben ein Rezept, das in einem Skizzenbuch mit Bildern von Zutaten geschrieben ist. ESBC-PLC ist der Koch, der auf die Bilder schaut und sofort die exakten Textanweisungen aufschreibt: „Füge 2 Tassen Mehl hinzu, dann rühre um.“ Nun kann der Computer das Rezept lesen.
2. Der Simulator (Die „Zeitreise-Schleife“)
Eine SPS läuft nicht nur einmal ab; sie läuft in einer Schleife, prüft Sensoren und ändert Ausgänge tausende Male pro Sekunde.
- Die Analogie: Die meisten Sicherheitsprüfungen betrachten einen einzelnen Moment in der Zeit. ESBC-PLC ist wie ein zeitreisender Simulator, der den „Tag“ der Fabrik immer und immer wieder durchläuft. Aber anstatt nur einen spezifischen Tag abzuspielen, simuliert er jeden möglichen Tag gleichzeitig. Er fragt: „Was, wenn der Sensor defekt ist? Was, wenn der Knopf zweimal gedrückt wird? Was, wenn der Strom flackert?“ Er prüft jede einzelne Kombination von Ereignissen, um zu sehen, ob ein Desaster passieren kann.
3. Der „unbeschränkte“ Beweis (Die „Ewigkeitsgarantie“)
Alte Werkzeuge konnten nur eine begrenzte Anzahl von Schritten prüfen (wie etwa die ersten 100 Tage im Leben einer Fabrik). Wenn ein Fehler am 101. Tag auftrat, übersehen sie ihn.
- Die Analogie: ESBC-PLC nutzt einen speziellen mathematischen Trick namens k-Induktion. Anstatt Tage einzeln zu zählen, beweist es eine Regel, die besagt: „Wenn die Fabrik heute sicher ist und die Regeln befolgt werden, wird sie auch morgen sicher sein, und am Tag danach, und für immer.“ Es gibt eine Ewigkeitsgarantie, dass die Maschine niemals abstürzt, sofern die Regeln eingehalten werden.
4. Die „Logikfreie“ Sprache (Die „Plain English“-Checkliste)
Normalerweise mussten Sie komplexe mathematische Logik (Temporale Logik) beherrschen, um einen Computer bitten zu können, die Sicherheit zu prüfen.
- Die Analogie: ESBC-PLC erlaubt es Ingenieuren, Sicherheitsregeln in einer einfachen YAML-Checkliste (wie einer To-do-Liste) zu schreiben.
- Anstatt: „Für alle Zeiten t gilt, wenn A wahr ist, muss B falsch sein.“
- Schreiben Sie: „Der Motor und der Rückwärtsschalter dürfen niemals gleichzeitig eingeschaltet sein.“
Das Werkzeug versteht dieses einfache Englisch und prüft es automatisch.
Was wurde herausgefunden?
Die Autoren testeten dieses Werkzeug an 13 verschiedenen Fabrikprogrammen, die von einfachen Motorsteuerungen bis hin zu komplexen Ampelanlagen oder Wasserpumpen reichten. Sie verwendeten Programme von echten Herstellern (wie CONTROLLINO und MathWorks), die nicht für Testzwecke konzipiert waren, nur um zu sehen, ob das Werkzeug damit umgehen kann.
- Die Ergebnisse:
- 100 % Genauigkeit: Es identifizierte korrekt jedes sichere Programm und jedes unsichere Programm.
- Verborgene Bugs gefunden: Es fand 8 spezifische Fehler, die Standardtests entgangen waren. Zum Beispiel fand es ein Szenario, in dem ein Not-Aus-Knopf zwar die Maschine ausschaltete, aber nicht den Timer zurücksetzte, was dazu führte, dass die Maschine sofort wieder anlief, sobald der Knopf losgelassen wurde.
- Geschwindigkeit: Es prüfte all diese Programme in weniger als 60 Millisekunden (schneller als ein menschliches Blinzeln).
Das Fazit
Dieses Paper präsentiert das erste Open-Source-Werkzeug, das ein Standard-Industriedesign (Kettenschema) nehmen, übersetzen und mathematisch beweisen kann, dass es für immer sicher ist. Es schließt die Lücke zwischen der altmodischen grafischen Art, wie Ingenieure Maschinen entwerfen, und der hochtechnologischen mathematischen Art, wie Computer Sicherheit verifizieren.
Wichtiger Hinweis: Das Paper behauptet, dass dies für die spezifischen „Kernteile“ der industriellen Programmierung (Boolesche Logik, Timer, Zähler) funktioniert. Es behandelt jedoch noch nicht komplexe Funktionen wie Gleitkommazahlen oder fortgeschrittene Daten-Arrays, aber für die überwiegende Mehrheit der sicherheitskritischen Logik funktioniert es perfekt und ist bereits heute einsatzbereit.
Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?
Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.