2008-09-16 11 views
8

Wszyscy znamy różne sposoby testowania systemów OO. Jednak wygląda na to, że zamierzam zrobić projekt, w którym będę miał do czynienia z logiką drabinkową PLC (nie pytam: /), i zastanawiałem się, czy istnieje dobry sposób na przetestowanie poprawności systemu.Testowanie logiki drabinkowej

Jedyny sposób, jaki widzę do tej pory, to po prostu skonstruowanie ogromnej tabeli ze wszystkimi znanymi stanami systemu i wygenerowanymi stanami wyjściowymi. Byłoby to proste "jeśli wejście A jest włączone, włącz wyjścia B na". Nie sądzę jednak, żeby to działało na bardziej skomplikowane konstrukcje.

Odpowiedz

4

Weryfikacja systemów "logicznych" na arenie projektowania układów scalonych nazywana jest "weryfikacją projektu", czyli procesem zapewniającym, że system zaprojektowany przez sprzęt (RTL) implementuje pożądaną funkcjonalność.

Ladder logika może być przekształcona do jednej z nowoczesnych HDL, takich jak Verilog .. przekształcić każdą drabinę

|---|R15|---+---|/R16|---------(R18)--------| 
|   | 
|---|R12|---+ 

do wyrażenia jak

always @(*) R18 = !R16 && (R15 | R12); 

lub można użyć przywiąż oświadczenie

assign R18 = R16 && (R15 | R12); 

przekaźnik blokujący

assign R18 = (set condition) || R18 && !(break condition); 

Następnie użyj darmowego symulatora Verilog, takiego jak Icarus, aby stworzyć testbench i przetestować system. Upewnij się, że jesteś testcases dać dobry zasięg kodu swojej logiki! A jeśli twoje oprogramowanie do edycji drabin zapewnia dobre funkcje nazewnictwa, użyj ich zamiast Rnn.

. (Uwaga: w Ladder Logic do konwencji PLC, RNN jest dla przekaźników wewnętrznych, natomiast Xnn jest wejście i Ynn jest wyjście, jak można szybko uzyskać z jednego z samouczków online

Verilog będzie być łatwiejszy język rozwijać swoje testy i testbenches w!

może to być pomocne do programu w pewnych opóźnień jednostkowych.

Niestety, nigdy nie spojrzał na logikę drabiny do/z verilog tłumaczy .. ale drabinie Logika w moich czasach była tylko wkładana do komputera do programowania PLC - większość systemy przekaźników, których używałem, to PRAWDZIWE Przekaźniki, podłączone do szafek !!

Powodzenia. JBD

Istnieje kilka drabiny redaktorów logicznych (z simultors) dostępne za darmo .. tutaj jest jeden, który działa na Windows podobno:

http://cq.cx/ladder.pl

+0

Bardzo ładne! Wkrótce mam zamiar przyjrzeć się temu symulatorowi. –

0

Istnieje program o nazwie LogixPro który ma symulator IO dla logiki drabinkowej, możesz spróbować.

1

Eksperymentowaliśmy z narzędziami pokrycia testowego dla kontrolerów Logix firmy Rockwell Control. Większość narzędzi do testowania językowego w procedurze językowej obejmuje zasięg oddziałów lub niektóre z nich; ponieważ Relay Ladder Logic zazwyczaj nie rozgałęzia się, to nie działa zbyt dobrze.

Co mamy prototyp jest MC/DC (zmodyfikowany/stan/zakres decyzji) dla kodu RLL kontrolerów Rockwell .. Mówi, dla każdego warunku w szczeblem, czy warunek ten został przetestowany jako PRAWDA, testowane jako FAŁSZ, a bardziej co ważne, jeśli stan kontrolował wynik decyzji w szczeblach (przynajmniej akcja kontrolowana decyzją) w pewnym prawdziwym i fałszywym kierunku w pewnym teście.

Ta praca jest wykonywana przy użyciu uniwersalnego narzędzia do analizy i transformacji programów o nazwie DMS używanego do instrumentowania kodu RLL z dodatkową logiką do zbierania niezbędnych danych.

Nadal trzeba kodować testy jednostkowe. Najłatwiej to zrobić, aby inny sterownik PLC działał jako zamiennik mechanicznego sprzętu, który zamierzasz kontrolować, i po prostu napisz kolejny program RLL, aby wykonać pierwszy program.

0

Czasami w małych programach PLC program testowy (lub podprogram lub plik drabinkowy) jest zapisywany w projekcie, który jest uruchamiany tylko podczas emulacji projektu. Plik ma pewną prostą logikę, która mówi, kiedy wyjście jest pod napięciem, włącz wejście powiązane ze sprzężeniem zwrotnym. Następnie możesz sterować swoim sterownikiem za pośrednictwem dowolnego interfejsu HMI i zobaczyć, że kod zachowuje się zgodnie z oczekiwaniami. Bardzo ważne jest wyłączenie lub usunięcie programu testowego, gdy oprogramowanie zostanie pobrane do prawdziwej strony, ponieważ może wykonywać bardzo dziwne rzeczy w świecie rzeczywistym.

W przypadku większych projektów każde urządzenie ma tryb symulacji, który robi coś nieco podobnego. http://www.batchcontrol.com/s88/01_tutorial/06-modules.shtml

To nie jest tak jak używanie ram testowych dla języków OO, ale tak naprawdę nie widziałem żadnego napędzanego testami rozwoju sterowników PLC, ani nawet zautomatyzowanych testów.

Powiązane problemy