Symulacja programu zapisanego w postaci logiki drabinkowej umożliwia testowanie zaawansowanych funkcji sterowania, których implementacja bez symulacji nie byłaby możliwa. Zmniejsza to potencjalne koszty implementacji i ogranicza ryzyko niebezpieczeństwa dla pracowników.
Na podstawowym kursie programowania jednostek sterowników PLC do wykonywania ćwiczeń wykorzystuje się przyciski i diody w celu symulacji sygnałów wejściowych i wyjściowych oraz przedstawienia sposobu działania poszczególnych instrukcji platformy programowej PLC. Zaawansowane kursy skupiają się bardziej na technikach programowania zaawansowanych funkcjonalnie, takich jak autosekwencje, śledzenie części oraz inne funkcje systemu.
Uzyskanie współpracy wielu elementów właściwie stworzonego programu może być żmudne. Różne rodzaje procedur odnoszą się bowiem do siebie nawzajem. Styczniki, które reprezentują stan maszyny lub sekwencje, są proste do testowania. Dane, a nawet poszczególne bity w pamięci wewnętrznej sygnalizują stany, takie jak włączenie trybu automatycznego lub manualnego, cykli automatycznych, a nawet pojawienia się błędów.
Inaczej jest w przypadku obsługi sygnałów wejść i wyjść. W większej maszynie lub systemie reprezentują one wiele różnych typów czujników lub urządzeń wyjściowych. W czasie szkolenia nie ma wystarczającej liczby przycisków, diod i przełączników, które mogłyby odwzorować rzeczywiste środowisko pracy sterownika. Co więcej, urządzenia wejściowe typu przycisk, przełącznik i potencjometr nie reagują automatycznie w czasie rzeczywistym na procedury i komendy wyjścia.
W tym przypadku pomocna jest symulacja. Z odpowiednią logiką zarówno wyjścia, jak i wejścia są symulowane przez zmienne dostępne w pamięci urządzenia.
Jeśli wyjście Z-Axis_lower_SV zostaje uruchomione w prawdziwej maszynie, czujnik położenia osi Z zostanie aktywowany w sposób automatyczny. Ponieważ w trakcie ćwiczeń siłownikiem nie porusza żaden solenoid, system szkoleniowy musi sam zasymulować pracę czujnika.

Timer i zmienne (bity) pamięci
W tym przypadku sprawdza się zegar (timer). Należy podkreślić, że bity pamięci muszą symulować wejścia. Bity pamięci wejścia mogą zostać wykorzystane do stworzenia sekwencji automatycznej, pozwalającej na przejście z jednej sekwencji do drugiej. Bit zwany EnableOut używany jest do symulacji błędów. Jeśli bit jest nieaktywny, wówczas program zachowuje się tak, jakby wyjście było aktywne, ale wejście nie zostało rozpoznane. Zegar w symulacji błędów liczy czas i załącza flagę (bit) sygnalizującą stan awarii.
Bity o nazwie Latch i Set używane są jako wejścia. Jest to szczególnie ważne w przypadku zaworów wyposażonych w solenoid, które są wyłączone, gdy sekwencja przejdzie do następnego kroku. Gdy sygnał na wyjściu wygaśnie, symulowany czujnik pozostanie aktywny.
Wszystkie operacje symulacji należy przeprowadzać w osobnej gałęzi drzewa programu drabinkowego. Jeśli program został stworzony na potrzeby zarówno ćwiczeń, jak i wykorzystania w prawdziwej maszynie, gałąź poleceń symulacji można usunąć lub dezaktywować później. Symulowane wejścia i wyjścia mogą również zostać zastąpione przez sygnały pochodzące od prawdziwych urządzeń.
Timer wykorzystuje analogowe wartości sygnału do symulacji. W tym wypadku objętość cieczy w zbiorniku zwiększy się o wartość = 5, co każde 20 ms. Zarówno zegar, jak i poziom w zbiorniku mogą zostać dostosowane do uzyskania właściwego rezultatu. Oczywiście symulacja prawdziwego zbiornika wymaga lepszego odwzorowania warunków z rzeczywistych aplikacji w ramach symulacji (na rysunku została przedstawiona jedynie główna idea). Aby opróżnić zbiornik, należy użyć instrukcji substract. Może ona zostać również wykorzystana do testowania instrukcji proporcjonalnego członu całkująco-różniczkującego (PID).
Rzeczywisty sprzęt jest często niedostępny podczas fazy projektowania czy szkolenia programistów PLC. Co więcej, w wielu przypadkach utrudniałby on prowadzenie testów czy szkoleń. Dlatego właśnie symulacja pozwala programistom na efektywne realizowanie procedur testowania najważniejszych fragmentów kodu, zanim zostaną one zaimplementowane w maszynie. Z pomocą panelu HMI programiści mogą nawet wizualizować proces dzięki animowanym obiektom na ekranie.
Frank Lamb jest założycielem Automation Consulting LLC oraz członkiem Control Engineering Advisory Board.