← Nieuwste papers
💻 computer science

ESBMC-PLC+: A Unified IEC~61131-3 Formal Verification Framework as a PLCverif Successor

Dit artikel introduceert ESBMC-PLC+, een verenigd open-source framework dat de ESBMC-backend uitbreidt om alle belangrijke IEC 61131-3 talen (inclusen Ladder Diagram en Structured Text) en onbegrensde verificatie te ondersteunen, waardoor de beperkingen in invoerformaten en de gebonden bewijsrestricties van zijn voorganger PLCverif worden overwonnen en het nuXmv aanzienlijk wordt overtroffen bij het verifiëren van timer-zware programma's.

Oorspronkelijke auteurs: Pierre Dantas, Lucas Cordeiro, Waldir Junior

Gepubliceerd 2026-06-24
📖 5 min leestijd🧠 Diepgaand

Oorspronkelijke auteurs: Pierre Dantas, Lucas Cordeiro, Waldir Junior

Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer

Stel je een Programmable Logic Controller (PLC) voor als het brein van een machine in een fabriek. Het is een robuuste, industriële computer die robots, kleppen en lampen vertelt wanneer ze moeten bewegen, stoppen of van kleur moeten veranderen. Deze machines werken op basis van een strikte, herhalende lus genaamd een "scan cycle", waarbij sensoren worden gecontroleerd en beslissingen worden genomen duizenden keren per seconde. Omdat deze machines zaken aansturen zoals kerncentrales of treinsignalen, kan één enkele fout in de code catastrofaal zijn.

Formele verificatie is als een superintelligente, wiskundige corrector die elk mogelijk scenario controleert dat de machine ooit kan tegenkomen, om er zeker van te zijn dat deze nooit crasht of gevaarlijk handelt.

Jarenlang was de beste open-source tool voor deze taak genaamd PLCverif. Zie PLCverif als een zeer bekwame monteur die geweldig is in het repareren van auto's (tekstgebaseerde code), maar weigert onder de motorkap van motorfietsen (ladderdiagrammen) te kijken, of niet over de juiste gereedschappen beschikt om te bewijzen dat de motor eeuwig blijft draaien zonder oververhit te raken (onbegrensde bewijzen).

Dit artikel introduceert ESBMC-PLC+, een nieuwe, verbeterde "super-monteur" die ontworpen is om PLCverif te vervangen en te verbeteren. Dit is wat het doet, simpel uitgelegd:

1. Elke taal spreken (Het Universele Framework)

PLC-programmeurs spreken drie hoofdtalen:

  • Ladder Diagram (LD): Ziet eruit als een elektrische schakeling met rails en sporten (rungs). Dit is de meest populaire taal in fabrieken (zoals de "Engelse taal" van de industrie).
  • Structured Text (ST): Ziet eruit als standaard computercode (vergelijkbaar met Pascal of C).
  • Grafische LD: De visuele versie van Ladder Diagrammen.

Het Probleem: De oude tool (PLCverif) kon alleen de "Structured Text"-taal lezen. Als een ingenieur een Ladder Diagram had, moest hij dit handmatig herschrijven naar tekst, wat traag is en foutgevoelig. Bovendien kon de oude tool, als het Ladder Diagram complexe "function blocks" bevatte (zoals timers of tellers), deze helemaal niet aan.

De Oplossing: ESBMC-PLC+ is een universele vertaler. Het kan alle drie de talen inheems begrijpen.

  • Voor Structured Text gebruikt het een vertrouwde open-source compiler (MATIEC) om de code te vertalen naar een formaat dat de verificatiemotor begrijpt.
  • Voor Ladder Diagrammen heeft het een nieuwe "decoder" die nu complexe timers en tellers kan begrijpen die voorheen werden genegeerd.

2. De "Eeuwigheid" Garantie (Onbegrensde Bewijzen)

Stel je voor dat je een brug test.

  • Begrensde Controle (De Oude Manier): Je rijdt 100 keer een vrachtwagen over de brug. Als hij het houdt, zeg je: "Hij is waarschijnlijk veilig." Maar je weet niet wat er de 101ste keer gebeurt, of dat de brug instort na 1.000 jaar. Dit is wat de primaire engine van de oude tool (CBMC) deed.
  • Onbegrensde Bewijzen (De Nieuwe Manier): ESBMC-PLC+ gebruikt een techniek genaamd k-inductie. In plaats van alleen 100 keer te controleren, gebruikt het wiskunde om te bewijzen dat als de brug de eerste paar seconden houdt, deze voor oneindig zal blijven houden. Het garandeert dat de machine nooit zal falen, ongeacht hoe lang deze draait.

3. De Snelheidsduivel (SMT vs. BDD)

Het artikel vergelijkt ESBMC-PLC+ met de "onbegrensde" engine van de oude tool (nuXmv), die een methode gebruikt genaamd BDD (Binary Decision Diagrams).

  • De Analogie: Stel je voor dat je een enorme bibliotheek aan boeken hebt (alle mogelijke toestanden van de machine).
    • De Oude Tool (BDD) probeert elk boek in de bibliotheek één voor één te lezen. Als de bibliotheek enorm groot is (omdat de machine veel timers of tellers heeft), raakt de tool overweldigd en stopt het met werken (time-out).
    • ESBMC-PLC+ (SMT) gebruikt een magische index. In plaats van elk boek te lezen, vraagt het een superintelligente bibliothecaris (een SMT-solver) om de logica van de hele bibliotheek in één keer te controleren.
  • Het Resultaat: Bij programma's met timers was ESBMC-PLC+ 400 tot 2.000 keer sneller dan de oude tool. In sommige gevallen gaf de oude tool na 2 minuten op, terwijl ESBC-PLC+ het bewijs in minder dan een seconde voltooide.

4. Wat het daadwerkelijk heeft opgelost

Het artikel benadrukt twee specifieke "kloven" die het heeft gedicht:

  1. De Ontbrekende Tekst: Het voegde ondersteuning toe voor Structured Text (ST) programma's, die de oude tool slecht of helemaal niet kon verwerken voor standaard IEC-code.
  2. De "Ghost" Timers: In de visuele Ladder Diagrammen waren er "function blocks" (zoals timers die 5 seconden wachten voordat ze een lamp inschakelen). De oude tool negeerde deze blokken, waardoor het deed alsof ze niet bestonden. Dit leidde tot "vacuous" (lege) resultaten — waarbij de tool "Veilig!" zei, simpelweg omdat het niet naar de gevaarlijke onderdelen keek. ESBMC-PLC+ modelleert deze timers nu correct, zodat de veiligheidscontrole echt is en geen schijnveiligheid.

Samenvatting

ESBMC-PLC+ is een nieuwe, open-source tool die fungeert als een universele vertaler voor industriële machinecode. Het spreekt alle belangrijke talen die ingenieurs gebruiken, gaat om met complexe visuele diagrammen met timers en tellers, en gebruikt een snellere, slimmere wiskundige engine om te bewijzen dat machines voor altijd veilig zullen zijn, en niet slechts voor een korte testronde. Het is ontworpen als de directe, superieure opvolger van de vorige industriestandaard, PLCverif.

Verdrinkt u in papers in uw vakgebied?

Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.

Probeer Digest →