Zautomatyzowane testowanie PLC

PLC Test Harness
TDD dla automatyki przemysłowej

Definiuj scenariusze testowe, wykonuj je w PLCSim Advanced i otrzymuj natychmiastowe werdykty PASS/FAIL. Testy jednostkowe dla logiki PLC — tak samo, jak inżynierowie oprogramowania testują swój kod.

Testowanie PLC jest wciąż manualne

Każda zmiana w kodzie to hazard bez zautomatyzowanych testów

Brak testów regresyjnych

Modyfikujesz blok funkcyjny i modlisz się, aby nic innego się nie zepsuło. Bez zautomatyzowanych testów każda zmiana niesie ryzyko wprowadzenia cichych błędów, które ujawnią się dopiero na hali produkcyjnej.

Weryfikacja manualna

Testowanie oznacza ręczne wymuszanie wejść w PLC lub PLCSim, obserwowanie zmian wyjść i sprawdzanie wartości ręcznie. Żmudne, podatne na błędy i niemożliwe do powtarzalnego wykonania.

Brak dokumentacji testowej

Jak udowodnisz, że Twój program działa poprawnie? Procedury testowe istnieją w dokumentach Word lub w głowie inżyniera. Brak standaryzowanych, wykonywalnych specyfikacji testowych, które podróżują wraz z projektem.

AI nie może zweryfikować własnego kodu

AI generuje kod PLC, ale skąd wiesz, że działa? Bez zautomatyzowanego testowania kod generowany przez AI trafia do produkcji nietestowany. Test Harness domyka pętlę.

Jak działa PLC Test Harness

Strukturalny framework testowy dla logiki PLC, dostępny przez MCP, Copilot i REST API

Definiuj scenariusze testowe

Każdy test to sekwencja kroków: ustaw wejścia, poczekaj na reakcję PLC, a następnie zweryfikuj, czy wyjścia są zgodne z oczekiwaniami. Testy są przechowywane jako pliki .test.json obok projektu TIA Portal.

4 typy asercji

Dokładne dopasowanie dla typów boolean i integer. Tolerancja dla wartości zmiennoprzecinkowych (±0.1). Zakres dla kontroli min/max. Not-equal aby sprawdzić, czy wartość uległa zmianie. Obsługuje każdy typ danych PLC.

Setup & Teardown

Każdy test zaczyna się od fazy setup (inicjalizacja tagów do znanego stanu) i kończy się fazą teardown (resetowanie tagów do zera), nawet jeśli test się nie powiedzie. Gwarancja czystego stanu.

Uruchom jeden lub wszystkie

Uruchom pojedynczy test po nazwie, przekaż test inline lub użyj symbolu wieloznacznego (*), aby uruchomić cały zestaw testów. Wyniki są zapisywane w last-results.json do wglądu.

Pełna ścieżka audytu

Każde uruchomienie testu generuje szczegółowy raport: które kroki przeszły, które zawiodły, wartości oczekiwane vs rzeczywiste oraz znaczniki czasu wykonania. Eksportuj lub sprawdzaj wyniki w dowolnym momencie.

Cykl TDD napędzany przez AI

Połączony LLM może pisać kod, tworzyć testy, kompilować, pobierać do PLCSim, uruchamiać testy i naprawiać błędy — wszystko autonomicznie. Red → Green → Refactor, dla PLC.

Cykl TDD dla PLC

Od definicji testu do zatwierdzonej logiki PLC

1

1. Napisz test

Zdefiniuj oczekiwane zachowanie: gdy Start_Button zostanie naciśnięty, Motor_Running powinien mieć wartość true w ciągu 500ms. Utwórz test za pomocą plc_test_create.

2

2. Uruchom w PLCSim

Uruchom test za pomocą plc_test_run. T-IA Connect zapisuje wejścia do PLCSim, czeka na określone opóźnienie, a następnie odczytuje i sprawdza wyjścia. Werdykt: PASS lub FAIL.

3

3. Napraw i iteruj

Jeśli krok się nie powiedzie, zobaczysz dokładnie, co poszło nie tak: oczekiwano Motor_Running = true, otrzymano false. Napraw program PLC, skompiluj ponownie, pobierz i uruchom test jeszcze raz.

4

4. Zbuduj swój zestaw testów

Gromadź testy w miarę rozwoju. Uruchamiaj pełny zestaw po każdej zmianie, aby wyłapać regresje. Testy podróżują z projektem w .tia-connect/tests/.

Typy asercji w szczegółach

Pokrycie każdego typu danych PLC z odpowiednim porównaniem

Dokładne dopasowanie

Dla typów boolean i integer. Motor_Running musi być dokładnie true. Counter musi wynosić dokładnie 5. Bez marginesu błędu.

Tolerancja (±)

Dla wartości REAL i LREAL. Speed musi wynosić 50.0 ± 0.1. Uwzględnia precyzję zmiennoprzecinkową i szumy pomiarów analogowych.

Zakres (min/max)

Wartość musi mieścić się w określonym zakresie. Temperatura między 10.0 a 100.0. Idealne dla wejść analogowych i wartości procesowych.

Nierówne (Not Equal)

Zweryfikuj, czy wartość zmieniła się w stosunku do stanu początkowego. Counter nie może być równy 0 — potwierdzenie, że logika liczenia faktycznie zadziałała.

5 narzędzi w 3 kanałach

Dostępne przez MCP, Copilot (wbudowany asystent) i REST API

plc_test_create

Zapisz definicję przypadku testowego z setup, krokami (wejścia → opóźnienie → asercje) i teardown. Przechowywane jako plik .test.json w .tia-connect/tests/.

plc_test_run

Uruchom test po nazwie, przekaż jeden inline lub użyj *, aby uruchomić wszystkie testy. Asynchronicznie przez REST (zwraca jobId). Wyniki zapisane w last-results.json.

plc_test_list

Lista wszystkich zapisanych przypadków testowych wraz z ich nazwami i opisami. Szybki przegląd pokrycia testami Twojego projektu.

plc_test_delete

Usuń przypadek testowy po nazwie. Czyść przestarzałe testy w miarę rozwoju projektu.

plc_test_get_results

Pobierz wyniki ostatniego uruchomienia testu: status PASS/FAIL dla każdego kroku, wartości oczekiwane vs rzeczywiste, czas wykonania i ogólny werdykt.

Często zadawane pytania

Czy to wymaga PLCSim Advanced?

Tak. Test Harness zapisuje wejścia i odczytuje wyjścia przez interfejs symulacji PLCSim Advanced. Nie działa z rzeczywistymi PLC (byłoby to niebezpieczne dla zautomatyzowanego testowania). PLCSim Advanced zapewnia bezpieczne, powtarzalne środowisko.

Czy AI może autonomicznie tworzyć i uruchamiać testy?

Absolutnie. Połączony LLM (przez MCP lub Copilot) może pisać kod PLC, tworzyć testy za pomocą plc_test_create, kompilować i pobierać do PLCSim, uruchamiać testy, sprawdzać wyniki i naprawiać kod w przypadku niepowodzenia. Pełny cykl TDD bez ingerencji człowieka.

Gdzie są przechowywane testy?

W folderze .tia-connect/tests/ obok projektu TIA Portal. Każdy test to plik .test.json. Wyniki znajdują się w last-results.json. Testy podróżują z projektem — zarchiwizuj projekt, zarchiwizuj testy.

Jak długo trwa uruchomienie testu?

To zależy od opóźnień zdefiniowanych w krokach testowych (czasu danego PLC na reakcję). Typowy test z 3-5 krokami i opóźnieniami 200-500ms trwa 1-3 sekundy. Uruchomienie pełnego zestawu 20 testów zajmuje zazwyczaj mniej niż minutę.

Testuj swój kod PLC jak oprogramowanie

Zautomatyzowane testowanie, wykrywanie regresji i TDD — wszystko, co inżynierowie oprogramowania uważają za oczywiste, teraz dla programów PLC w TIA Portal.