Automatisierte PLC-Tests

PLC Test Harness
TDD für die industrielle Automatisierung

Definieren Sie Test-Szenarien, führen Sie diese gegen PLCSim Advanced aus und erhalten Sie sofortige PASS/FAIL-Ergebnisse. Unit-Tests für PLC-Logik – genau so, wie Software-Entwickler ihren Code testen.

PLC-Tests sind immer noch manuell

Jede Codeänderung ist ohne automatisierte Tests ein Glücksspiel

Keine Regressionstests

Sie ändern einen Funktionsbaustein und hoffen, dass nichts anderes kaputt geht. Ohne automatisierte Tests riskieren Sie bei jeder Änderung stille Bugs, die erst in der Fertigung auftauchen.

Manuelle Verifizierung

Testen bedeutet, Eingänge an der PLC oder in PLCSim manuell zu forcen, die Ausgänge zu beobachten und Werte von Hand zu prüfen. Mühsam, fehleranfällig und unmöglich konsistent zu wiederholen.

Keine Testdokumentation

Wie beweisen Sie, dass Ihr Programm korrekt funktioniert? Testverfahren existieren in Word-Dokumenten oder im Kopf eines Ingenieurs. Keine standardisierten, ausführbaren Test-Spezifikationen, die mit dem Projekt reisen.

KI kann ihren eigenen Code nicht verifizieren

KI generiert PLC-Code, aber woher wissen Sie, dass er funktioniert? Ohne automatisierte Tests geht KI-generierter Code ungeprüft in die Produktion. Der Test Harness schließt diesen Kreis.

Wie der PLC Test Harness funktioniert

Ein strukturiertes Test-Framework für PLC-Logik, zugänglich über MCP, Copilot und REST API

Test-Szenarien definieren

Jeder Test ist eine Sequenz von Schritten: Eingänge setzen, auf die Reaktion der PLC warten, dann prüfen, ob die Ausgänge den Erwartungen entsprechen. Tests werden als .test.json Dateien neben Ihrem TIA Portal Projekt gespeichert.

4 Assertion-Typen

Exakte Übereinstimmung für Booleans und Integers. Toleranz für Gleitkommawerte (±0.1). Bereich für Min/Max-Prüfungen. Ungleich-Prüfung, um sicherzustellen, dass sich ein Wert geändert hat. Deckt jeden PLC-Datentyp ab.

Setup & Teardown

Jeder Test beginnt mit einer Setup-Phase (Initialisierung der Tags in einen bekannten Zustand) und endet mit Teardown (Zurücksetzen der Tags auf Null), selbst wenn der Test fehlschlägt. Ein sauberer Zustand ist garantiert.

Einzeln oder alle ausführen

Führen Sie einen einzelnen Test namentlich aus, übergeben Sie einen Test inline oder verwenden Sie Platzhalter (*), um die gesamte Test-Suite auszuführen. Die Ergebnisse werden in last-results.json zur Überprüfung gespeichert.

Vollständiger Audit-Trail

Jeder Testlauf erzeugt einen detaillierten Bericht: welche Schritte erfolgreich waren (PASS), welche fehlschlugen (FAIL), erwartete vs. tatsächliche Werte und Zeitstempel der Ausführung. Ergebnisse können jederzeit exportiert oder abgefragt werden.

KI-gesteuerter TDD-Zyklus

Ein verbundener LLM kann autonom Code schreiben, Tests erstellen, kompilieren, auf PLCSim laden, Tests ausführen und Fehler beheben. Red → Green → Refactor, für PLC.

Der TDD-Zyklus für PLC

Von der Testdefinition bis zur validierten PLC-Logik

1

1. Den Test schreiben

Erwartetes Verhalten definieren: Wenn Start_Button gedrückt wird, sollte Motor_Running innerhalb von 500ms true sein. Erstellen Sie den Test mit plc_test_create.

2

2. Gegen PLCSim ausführen

Führen Sie den Test mit plc_test_run aus. T-IA Connect schreibt Eingänge in PLCSim, wartet die angegebene Verzögerung ab, liest dann die Ausgänge und prüft sie. Urteil: PASS oder FAIL.

3

3. Fixen & Iterieren

Wenn ein Schritt fehlschlägt, sehen Sie genau, was schiefgelaufen ist: Erwartet Motor_Running = true, erhalten false. Korrigieren Sie das PLC-Programm, kompilieren Sie neu, laden Sie es herunter und führen Sie den Test erneut aus.

4

4. Erstellen Sie Ihre Test-Suite

Sammeln Sie Tests während der Entwicklung. Führen Sie die komplette Suite nach jeder Änderung aus, um Regressionen abzufangen. Tests reisen mit dem Projekt in .tia-connect/tests/.

Assertion-Typen im Detail

Abdeckung jedes PLC-Datentyps mit dem richtigen Vergleich

Exakte Übereinstimmung

Für Booleans und Integers. Motor_Running muss exakt true sein. Der Zähler muss exakt 5 sein. Kein Spielraum für Fehler.

Toleranz (±)

Für REAL und LREAL Werte. Die Geschwindigkeit muss 50.0 ± 0.1 sein. Berücksichtigt Gleitkommapräzision und analoges Messrauschen.

Bereich (Min/Max)

Der Wert muss innerhalb eines definierten Bereichs liegen. Temperatur zwischen 10.0 und 100.0. Perfekt für Analogeingänge und Prozesswerte.

Ungleich

Verifizieren Sie, dass sich ein Wert von seinem Initialzustand geändert hat. Der Zähler darf nicht 0 sein – um zu bestätigen, dass die Zähllogik tatsächlich gelaufen ist.

5 Tools über 3 Kanäle

Verfügbar über MCP, Copilot (integrierter Assistent) und REST API

plc_test_create

Speichern Sie eine Testfall-Definition mit Setup, Schritten (Eingänge → Verzögerung → Assertions) und Teardown. Gespeichert als .test.json Datei in .tia-connect/tests/.

plc_test_run

Führen Sie einen Test namentlich aus, übergeben Sie einen inline oder nutzen Sie *, um alle Tests auszuführen. Asynchron über REST (gibt eine jobId zurück). Ergebnisse werden in last-results.json gespeichert.

plc_test_list

Listen Sie alle gespeicherten Testfälle mit Namen und Beschreibungen auf. Schneller Überblick über die Testabdeckung Ihres Projekts.

plc_test_delete

Entfernen Sie einen Testfall namentlich. Bereinigen Sie veraltete Tests, während sich Ihr Projekt weiterentwickelt.

plc_test_get_results

Rufen Sie die neuesten Testergebnisse ab: PASS/FAIL-Status pro Schritt, erwartete vs. tatsächliche Werte, Ausführungszeit und Gesamturteil.

Häufig gestellte Fragen

Erfordert dies PLCSim Advanced?

Ja. Der Test Harness schreibt Eingänge und liest Ausgänge über die Simulationsschnittstelle von PLCSim Advanced. Es funktioniert nicht mit realen PLCs (das wäre für automatisierte Tests gefährlich). PLCSim Advanced bietet eine sichere, wiederholbare Umgebung.

Kann eine KI Tests autonom erstellen und ausführen?

Absolut. Ein verbundener LLM (über MCP oder Copilot) kann PLC-Code schreiben, einen Test mit plc_test_create erstellen, kompilieren und auf PLCSim laden, den Test ausführen, die Ergebnisse prüfen und den Code bei Fehlern korrigieren. Vollständiger TDD-Zyklus ohne menschliches Eingreifen.

Wo werden die Tests gespeichert?

Im Ordner .tia-connect/tests/ direkt neben Ihrem TIA Portal Projekt. Jeder Test ist eine .test.json Datei. Die Ergebnisse befinden sich in last-results.json. Tests reisen mit dem Projekt – Archivieren Sie das Projekt, archivieren Sie die Tests.

Wie lange dauert ein Testlauf?

Das hängt von den Verzögerungen ab, die Sie in Ihren Testschritten definieren (die Zeit, die Sie der PLC zum Reagieren geben). Ein typischer Test mit 3-5 Schritten und 200-500ms Verzögerung dauert 1-3 Sekunden. Eine komplette Suite von 20 Tests dauert in der Regel unter einer Minute.

Testen Sie Ihren PLC-Code wie Software

Automatisierte Tests, Regressionserkennung und TDD – alles, was Software-Entwickler für selbstverständlich halten, jetzt für TIA Portal PLC-Programme.