Automatiserad PLC-testning

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

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

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

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

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.

Testa din PLC-kod som programvara

Automatiserad testning, regressionsdetektering och TDD — allt som programvarutekniker tar för givet, nu för TIA Portal PLC-program.