ESBMC-GraphPLC: Formal Verification of Graphical PLCopen XML Ladder Diagram Programs Using SMT-Based Model Checking
Dieses Paper stellt ESBMC-GraphPLC vor, ein Werkzeug zur formalen Verifikation, das die Lücke bei der Handhabung von grafischen PLCopen XML Ladder Diagrams schließt, indem es einen DFS-basierten Resolver implementiert, um graphenbasierte Rung-Logik in eine gültige GOTO-Zwischenrepräsentation für das SMT-basierte Model Checking umzuwandeln, wodurch die korrekte Verifikation von Programmen aus Editoren wie CONTROLLINO und OpenPLC Editor ermöglicht wird, ohne die bestehende Unterstützung für Textformate zu beeinträchtigen.
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 speicherprogrammierbare Steuerung (SPS) als das Gehirn einer Fabrikmaschine vor, wie zum Beispiel einer Wasserpumpe oder einer Ampel. Um diesem Gehirn zu sagen, was es tun soll, zeichnen Ingenieure Leiterdiagramme (Ladder Diagrams). Diese sehen aus wie elektrische Leitern mit Sprossen, wobei jede Sprosse eine Regel ist: „Wenn der Wassertank voll ist, schalte die Pumpe aus.“
Lange Zeit gab es zwei Möglichkeiten, diese Leiterzeichnungen auf einem Computer zu speichern:
- Die Textliste: Eine einfache, schrittweise Liste von Anweisungen (wie ein Rezept).
- Die grafische Karte: Eine visuelle Karte, auf der Teile durch unsichtbare Drähte verbunden sind, identifiziert durch ID-Nummern (wie ein U-Bahn-Netzplan, bei dem Stationen durch Linien verbunden sind).
Das Problem: Das „Geister“-Programm
Die Forscher verfügten über ein leistungsstarkes Werkzeug namens ESBMC-PLC, mit dem sie diese Programme auf Sicherheitsfehler prüfen konnten. Es funktionierte perfekt mit dem Format der Textliste.
Als sie jedoch das Format der grafischen Karte (das, was moderne Software wie CONTROLLINO und OpenPLC tatsächlich verwendet) einspeisten, geriet das Werkzeug durcheinander. Es betrachtete die Karte, sah die ID-Nummern und Drähte, konnte aber nicht verstehen, wie diese zusammenhingen.
- Das Ergebnis: Das Werkzeug sagte: „Alles ist sicher!“
- Der Haken: Es log. Es war nicht sicher, weil die Logik fehlte; es war „sicher“, weil das Werkzeug in einen leeren Raum blickte. Dies wird als vakuumhafte Verifizierung (vacuous verification) bezeichnet – es ist, als würde man sagen, eine verschlossene Tür sei sicher, weil man vergessen hat zu prüfen, ob ein Fenster offen steht.
Die Lösung: ESBMC-GraphPLC
Die Autoren entwickelten ein neues Modul namens ESBMC-GraphPLC, um dies zu beheben. Stellen Sie sich dies als das Einstellen eines Detektivs vor, der durch die grafische Karte geht und sie zurück in eine Sprache übersetzt, die der Sicherheitsprüfer versteht.
Hier ist die Funktionsweise ihres „Detektivs“, unter Verwendung einfacher Analogien:
1. Der Detektiv mit der Taschenlampe (DFS-Algorithmus)
Das Werkzeug verwendet eine Methode namens Depth-First Search (DFS). Stellen Sie sich einen Detektiv vor, der durch ein Draht-Labyrinth geht. Er beginnt auf der linken Seite der Leiter (der Stromquelle) und folgt jedem möglichen Pfad zur rechten Seite.
- Er verfolgt jede Drahtverbindung.
- Er schreibt jeden Schalter (Kontakt), den er passiert, auf.
- Er stoppt, wenn er das Gerät (die Spule/Pumpe) erreicht.
- Durch dies rekonstruiert er die exakte Logik der Leiter-Sprosse und verwandelt die visuelle Karte zurück in eine klare „Wenn-Dann“-Regel.
2. Der Verkehrspolizist (Die Reihenfolge zählt)
In diesen Diagrammen gibt es manchmal einen „Set“-Schalter (einschalten) und einen „Reset“-Schalter (ausschalten) für dasselbe Gerät. Die Reihenfolge ist wichtig!
- Wenn der „Reset“ im selben Sekundenbruchteil nach dem „Set“ erfolgt, bleibt das Gerät aus.
- Wenn der „Set“ nach dem „Reset“ erfolgt, bleibt das Gerät an.
Das neue Werkzeug betrachtet eine spezifische Liste in der Datei (dierightPowerRail-Sequenz), um zu sehen, welcher Schalter zuerst kommt, und fungiert so wie ein Verkehrspolizist, der sicherstellt, dass das „Set“-Auto vor dem „Reset“-Auto fährt. Dies stellt sicher, dass die Logik dem entspricht, wie echte Maschinen tatsächlich reagieren.
3. Das Ratespiel (I/O-Inferenz)
Manchmal sagt die Karte nicht aus, welche Drähte „Eingänge“ (Sensoren) und welche „Ausgänge“ (Motoren) sind. Das Werkzeug nutzt ein dreistufiges Ratespiel:
- Schritt 1: Suche nach offiziellen Adressbezeichnungen (wie
%IXfür Eingänge). Wenn gefunden, ist es exakt. - Schritt 2: Wenn keine Beschriftung vorhanden ist, beobachte das Verhalten. Wenn ein Draht nur als Schalter verwendet wird, ist es wahrscheinlich ein Eingang. Wenn er nur dazu verwendet wird, etwas einzuschalten, ist es wahrscheinlich ein Ausgang.
- Schritt 3: Wenn immer noch unsicher, behandle es als eine „mysteriöse Variable“, die alles sein könnte. Dies ist eine sichere Wahl, da es alle Möglichkeiten prüft, um sicherzustellen, dass nichts übersehen wird.
Die Ergebnisse
Das Team testete diesen neuen Detektiv an drei realen Programmen (Wasserpumpen, Treppenlichter und Dimmerlichter).
- Vorher: Das Werkzeug sah einen leeren Raum und sagte „Sicher“ (fälschlicherweise).
- Nachher: Das Werkzeug sah die vollständige Logik, prüfte jede mögliche Kombination von Sensoreingaben und bestätigte, dass die Programme tatsächlich sicher sind.
- Geschwindigkeit: Es erledigte dies in weniger als 70 Millisekunden (schneller als ein menschliches Blinzeln).
- Sicherheit: Es hat das alte Werkzeug nicht beschädigt. Die 11 Programme, die bereits mit Textlisten funktionierten, funktionierten weiterhin perfekt.
Was es noch nicht kann (Die Einschränkungen)
Das Paper ist ehrlich darüber, womit der Detektiv noch zu kämpfen hat:
- Komplexe Timer: Wenn eine Sprosse einen Timer beinhaltet (z. B. „Warte 5 Sekunden, dann schalte ein“), ignoriert das Werkzeug derzeit den „Warte“-Teil und behandelt ihn als zufällige Vermutung. Es ist sicher, aber es versteht das Timing nicht.
- Verschachtelte Karten: Einige komplexe Diagramme verstecken kleinere Karten innerhalb anderer Abschnitte (wie Aktionen innerhalb eines Schritts). Der Detektiv übersieht diese verborgenen Räume manchmal.
Zusammenfassung
Kurz gesagt haben die Autoren einen Übersetzer gebaut, der es der Sicherheitsprüfungs-Software ermöglicht, die visuellen Leiterdiagramme, die in moderner Industriesoftware verwendet werden, endlich zu „lesen“. Sie haben ein Werkzeug, das blind „Alles ist in Ordnung“ sagte, in ein Werkzeug verwandelt, das tatsächlich die Logik versteht und beweisen kann, dass die Maschine nicht kaputtgeht oder jemanden verletzt.
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.