PLC Test Harness
TDD för industriell automation
Definiera testscenarier, kör dem mot PLCSim Advanced och få omedelbara PASS/FAIL-utfall. Enhetstestning för PLC-logik — på samma sätt som programvarutekniker testar sin kod.
PLC-testning är fortfarande manuell
Varje kodändring är en chansning utan automatiserade tester
Ingen regressionstestning
Du ändrar ett funktionsblock och hoppas att inget annat går sönder. Utan automatiserade tester riskerar varje ändring att introducera tysta buggar som först dyker upp på fabriksgolvet.
Manuell verifiering
Testning innebär att manuellt tvinga ingångar på PLC eller PLCSim, titta på utgångar som ändras och kontrollera värden för hand. Tråkigt, felbenäget och omöjligt att upprepa konsekvent.
Ingen testdokumentation
Hur bevisar du att ditt program fungerar korrekt? Testprocedurer finns i Word-dokument eller i en ingenjörs huvud. Inga standardiserade, körbara testspecifikationer som följer med projektet.
AI kan inte verifiera sin egen kod
AI genererar PLC-kod, men hur vet du att den fungerar? Utan automatiserad testning går AI-genererad kod otestad i produktion. Test Harness sluter cirkeln.
Så fungerar PLC Test Harness
Ett strukturerat testramverk för PLC-logik, tillgängligt via MCP, Copilot och REST API
Definiera testscenarier
Varje test är en sekvens av steg: ställ in ingångar, vänta på att PLC ska reagera, och verifiera sedan att utgångarna matchar förväntningarna. Tester lagras som .test.json-filer tillsammans med ditt TIA Portal-projekt.
4 Assertion-typer
Exakt matchning för booleans och heltal. Tolerans för flyttalsvärden (±0.1). Intervall för min/max-kontroller. Inte lika med för att verifiera att ett värde har ändrats. Täcker varje PLC-datatyp.
Setup & Teardown
Varje test börjar med en setup-fas (initiera taggar till ett känt tillstånd) och slutar med teardown (återställ taggar till noll), även om testet misslyckas. Rent tillstånd garanteras.
Kör ett eller kör alla
Kör ett enskilt test efter namn, skicka med ett test direkt, eller använd wildcard (*) för att köra hela testsviten. Resultaten sparas i last-results.json för granskning.
Fullständig granskningskedja
Varje testkörning skapar en detaljerad rapport: vilka steg som godkändes, vilka som misslyckades, förväntade vs faktiska värden och tidstämplar. Exportera eller sök i resultat när som helst.
AI-driven TDD-cykel
En ansluten LLM kan skriva kod, skapa tester, kompilera, ladda ner till PLCSim, köra tester och åtgärda fel — helt autonomt. Red → Green → Refactor, för PLC.
TDD-cykeln för PLC
Från testdefinition till validerad PLC-logik
1. Skriv testet
Definiera förväntat beteende: när Start_Button trycks in ska Motor_Running vara true inom 500ms. Skapa testet med plc_test_create.
2. Kör mot PLCSim
Kör testet med plc_test_run. T-IA Connect skriver ingångar till PLCSim, väntar den angivna fördröjningen, läser sedan och kontrollerar utgångar. Utfall: PASS eller FAIL.
3. Åtgärda & iterera
Om ett steg misslyckas ser du exakt vad som gick fel: förväntat Motor_Running = true, fick false. Fixa PLC-programmet, kompilera om, ladda ner och kör testet igen.
4. Bygg din testsvit
Samla tester under utvecklingens gång. Kör hela sviten efter varje ändring för att upptäcka regressioner. Tester följer med projektet i .tia-connect/tests/.
Assertion-typer i detalj
Täcker varje PLC-datatyp med rätt jämförelse
Exakt matchning
För booleans och heltal. Motor_Running måste vara exakt true. Räknaren måste vara exakt 5. Ingen felmarginal.
Tolerans (±)
För REAL- och LREAL-värden. Hastigheten måste vara 50.0 ± 0.1. Tar hänsyn till flyttalsprecision och analogt mätbrus.
Intervall (min/max)
Värdet måste ligga inom ett definierat intervall. Temperatur mellan 10.0 och 100.0. Perfekt för analoga ingångar och processvärden.
Inte lika med
Verifiera att ett värde har ändrats från sitt ursprungliga tillstånd. Räknaren får inte vara lika med 0 — vilket bekräftar att räknelogiken faktiskt kördes.
5 verktyg över 3 kanaler
Tillgängliga via MCP, Copilot (inbyggd assistent) och REST API
plc_test_create
Spara en testfallsdefinition med setup, steg (ingångar → fördröjning → assertions) och teardown. Lagras som en .test.json-fil i .tia-connect/tests/.
plc_test_run
Kör ett test efter namn, skicka ett inline, eller använd * för att köra alla tester. Asynkront via REST (returnerar ett jobId). Resultat sparas i last-results.json.
plc_test_list
Lista alla sparade testfall med deras namn och beskrivningar. Snabb överblick över ditt projekts testtäckning.
plc_test_delete
Ta bort ett testfall efter namn. Rensa bort föråldrade tester när ditt projekt utvecklas.
plc_test_get_results
Hämta resultaten från den senaste testkörningen: PASS/FAIL-status per steg, förväntade vs faktiska värden, exekveringstid och totalt utfall.
Vanliga frågor
Krävs PLCSim Advanced?
Ja. Test Harness skriver ingångar och läser utgångar via PLCSim Advanceds simuleringsgränssnitt. Det fungerar inte med riktiga PLC:er (det vore farligt för automatiserad testning). PLCSim Advanced ger en säker och repeterbar miljö.
Kan en AI skapa och köra tester autonomt?
Absolut. En ansluten LLM (via MCP eller Copilot) kan skriva PLC-kod, skapa ett test med plc_test_create, kompilera och ladda ner till PLCSim, köra testet, kontrollera resultat och fixa koden om den misslyckas. Fullständig TDD-cykel utan mänsklig inblandning.
Var lagras testerna?
I mappen .tia-connect/tests/ bredvid ditt TIA Portal-projekt. Varje test är en .test.json-fil. Resultat finns i last-results.json. Tester följer med projektet — arkivera projektet, arkivera testerna.
Hur lång tid tar en testkörning?
Det beror på de fördröjningar du definierar i dina teststeg (den tid du ger PLC:n att reagera). Ett typiskt test med 3-5 steg och 200-500ms fördröjning körs på 1-3 sekunder. Att köra en hel svit med 20 tester tar vanligtvis under en minut.