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. 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. 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. 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. 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.