Język LAD w PLC - jak czytać i tworzyć program drabinkowy

Robert Borkowski .

17 maja 2026

Symulacja procesu produkcyjnego w języku LAD. Program steruje manipulatorem, który przesuwa elementy.

Gdy trzeba szybko zrozumieć, dlaczego maszyna nie startuje, dobrze napisany program drabinkowy potrafi być czytelniejszy niż klasyczny kod tekstowy. Język LAD, znany też jako Ladder Diagram lub język drabinkowy, służy do programowania sterowników PLC odpowiedzialnych za logikę i sterowanie w automatyce przemysłowej. Pokażę, jak czytać jego podstawowe elementy, gdzie sprawdza się najlepiej, jak zbudować prosty układ start-stop oraz kiedy lepiej sięgnąć po FBD albo Structured Text.

Najważniejsze informacje o programowaniu LAD w sterownikach PLC

  • LAD to graficzny język programowania PLC przypominający schemat przekaźnikowy.
  • Podstawą programu są styki, cewki, bloki funkcyjne i sieci logiczne.
  • Najlepiej sprawdza się przy logice binarnej, blokadach, alarmach i układach start-stop.
  • Program sterownika jest wykonywany cyklicznie, dlatego kolejność sieci może wpływać na działanie maszyny.
  • Do rozbudowanych obliczeń i operacji na danych często lepszy jest ST lub SCL.

Schemat w języku LAD: przycisk start, przycisk stop, czujnik końca i silnik.

Czym naprawdę jest język drabinkowy LAD

LAD to graficzny sposób zapisywania programu dla sterownika PLC. Jego wygląd nawiązuje do dawnych układów przekaźnikowych, dlatego elektryk może odczytać podstawową logikę bez znajomości klasycznych języków programowania. W praktyce zamiast pisać instrukcję „jeżeli wejście ma stan 1, włącz wyjście”, układa się symbole na kolejnych szczeblach drabinki.

Po lewej stronie znajduje się umowna szyna zasilania, po prawej stronie efekt działania, najczęściej cewka sterująca wyjściem lub zmienną. Pomiędzy nimi umieszcza się warunki. Każdy szczebel opisuje konkretną zależność logiczną, na przykład zgodę na uruchomienie silnika po naciśnięciu przycisku i spełnieniu warunków bezpieczeństwa.

W dokumentacji można spotkać oznaczenia LAD i LD. Najczęściej oznaczają ten sam język, choć konkretna nazwa zależy od producenta środowiska programistycznego. Siemens używa przede wszystkim określenia LAD, natomiast norma IEC 61131-3 posługuje się nazwą Ladder Diagram, skracaną do LD.

Wydanie normy IEC 61131-3 z 2025 roku opisuje między innymi języki LD, FBD i ST oraz elementy służące do organizacji programów sterowników PLC. Norma porządkuje składnię i znaczenie konstrukcji, ale nie sprawia, że program napisany dla jednego producenta zawsze da się bez zmian przenieść do innego sterownika.

Jak czytać styki, cewki i sieci logiczne

Najłatwiej zacząć od dwóch podstawowych symboli. Styk normalnie otwarty przewodzi logicznie wtedy, gdy przypisana zmienna ma wartość 1. Styk normalnie zamknięty działa odwrotnie, czyli przepuszcza warunek, gdy zmienna ma wartość 0.

Na końcu sieci znajduje się zwykle cewka. Może sterować wyjściem fizycznym, na przykład stycznikiem silnika, albo ustawiać bit pomocniczy wykorzystywany w dalszej części programu. Trzeba pamiętać, że symbol cewki w programie nie jest fizycznym przekaźnikiem. To instrukcja, która w danym cyklu ustala stan konkretnej zmiennej.

Element Znaczenie Typowe zastosowanie
Styk NO Warunek spełniony, gdy zmienna ma stan 1 Przycisk Start, czujnik pozycji, zgoda na pracę
Styk NC Warunek spełniony, gdy zmienna ma stan 0 Przycisk Stop, alarm, blokada
Cewka Ustawia stan wyjścia lub zmiennej Silnik, zawór, lampka, bit pomocniczy
Timer TON Opóźnia włączenie sygnału o określony czas Rozruch wentylatora, zwłoka zaworu
Licznik CTU Zwiększa wartość po wykryciu impulsów Liczenie sztuk, cykli i produktów

Połączenie szeregowe oznacza logiczne „i”. Wszystkie warunki muszą być spełnione, aby cewka otrzymała sygnał. Połączenie równoległe oznacza logiczne „lub”, ponieważ wystarczy spełnienie jednej z kilku gałęzi.

Ważny jest również cykl pracy PLC. Sterownik odczytuje wejścia, wykonuje program od góry do dołu, a potem aktualizuje wyjścia. Z tego powodu ta sama zmienna zapisana w kilku miejscach może prowadzić do trudnych do znalezienia błędów. Ostatnia instrukcja wykonana w cyklu może nadpisać wcześniejszy wynik.

Prosty przykład start-stop z blokadą

Klasyczny układ start-stop dobrze pokazuje sposób myślenia w LAD. Załóżmy, że silnik ma się uruchomić po naciśnięciu przycisku Start, zatrzymać po naciśnięciu Stop i nie wystartować, gdy zadziała zabezpieczenie termiczne.

|----[/ Stop ]----[/ Termik ]----+----[ Start ]----( Silnik )
|                                |
|                                +----[ Silnik ]---|

Styk Stop i styk Termik są tu pokazane jako normalnie zamknięte. Oznacza to, że w stanie prawidłowym przepuszczają sygnał, a po naciśnięciu Stop lub zadziałaniu zabezpieczenia przerywają obwód. Równoległy styk Silnik pełni funkcję podtrzymania, dzięki czemu po zwolnieniu przycisku Start silnik nadal pracuje.

W prawdziwym projekcie nazwy mogą wyglądać na przykład tak jak I_Start, I_Stop_OK, I_Termik_OK oraz Q_Silnik. Sam wybór nazw ma duże znaczenie podczas diagnostyki. Po kilku miesiącach łatwiej zrozumieć zmienną Termik_OK niż adres wejścia zapisany jako I0.3.

Nie należy jednak traktować programu PLC jako jedynego zabezpieczenia człowieka. Wyłącznik awaryjny, blokady osłon i funkcje bezpieczeństwa powinny być zaprojektowane zgodnie z wymaganiami maszyny, często z użyciem przekaźnika bezpieczeństwa albo sterownika safety. Zwykła cewka w LAD nie zastępuje obwodu bezpieczeństwa.

Przeczytaj również: Ramka Modbus - RTU, ASCII, TCP - Jak unikać błędów?

Dodanie opóźnienia czasowego

Jeżeli wentylator ma uruchomić się pięć sekund po włączeniu pompy, można wykorzystać timer TON. Warunkiem wejściowym timera jest sygnał pracy pompy, nastawa wynosi 5 sekund, a wyjście timera steruje wentylatorem.

|----[ Pompa ]----------------[ TON T_Wentylator, PT = 5 s ]

|----[ T_Wentylator.Q ]-------( Wentylator )

Timer TON zaczyna odmierzać czas, gdy jego wejście ma stan 1. Dopiero po upływie nastawy wyjście Q zostaje aktywne. Przy zaniku sygnału wejściowego odliczanie zwykle się zeruje, choć szczegóły mogą zależeć od użytego sterownika i konkretnego bloku.

Gdzie LAD sprawdza się najlepiej, a gdzie ma granice

Język drabinkowy jest mocny tam, gdzie program opisuje zależności typu „jeżeli to i to, włącz tamto”. Z tego powodu dobrze pasuje do maszyn, przenośników, układów pompowych, prostych stacji montażowych, sygnalizacji i blokad technologicznych.

Jego największą zaletą jest szybka diagnostyka online. W większości środowisk programista może obserwować, które styki są aktywne i na którym warunku zatrzymuje się przepływ logiczny. Dla utrzymania ruchu taka informacja bywa cenniejsza niż elegancki, ale trudniejszy do śledzenia kod tekstowy.

Język Najlepsze zastosowanie Mocna strona Ograniczenie
LAD lub LD Logika binarna, blokady, start-stop Czytelność dla elektryków i automatyków Duże programy mogą zajmować wiele ekranów
FBD Regulatory, funkcje analogowe, gotowe bloki Wygodne łączenie bloków funkcyjnych Mniej naturalny dla osób myślących schematem przekaźnikowym
ST lub SCL Obliczenia, tablice, receptury, operacje na danych Zwięzły zapis złożonych algorytmów Trudniejsza diagnoza dla osób bez doświadczenia programistycznego
SFC lub GRAPH Sekwencje krokowe i procesy wieloetapowe Jasne pokazanie stanów procesu Nie każdy sterownik i projekt obsługuje ten język w takim samym zakresie
Nie próbuję pisać całej aplikacji w LAD tylko dlatego, że jest popularny. Rozbudowane przeliczenia, sortowanie danych, obsługa tablic czy receptur zwykle stają się w drabince nieczytelne. Najpraktyczniejsze projekty łączą kilka języków, zostawiając LAD do logiki maszyny, a ST lub SCL do obliczeń.

Jak pisać program LAD, który da się utrzymać

Pierwsza zasada brzmi prosto, ale często jest pomijana. Jedna sieć powinna odpowiadać jednej funkcji. Jeśli w jednym szczeblu znajdują się jednocześnie warunki uruchomienia, alarmy, reset, timer i kilka wyjść, znalezienie usterki będzie niepotrzebnie trudne.

Stosuję nazwy, które opisują znaczenie sygnału, a nie tylko jego adres. Dobrze działają krótkie prefiksy, na przykład I_ dla wejść, Q_ dla wyjść, M_ dla bitów pomocniczych i DB_ dla danych. Jeszcze ważniejsze są komentarze przy timerach, licznikach i nietypowych blokadach.

  • Rozdzielaj logikę sterowania, alarmy, tryb ręczny i automatyczny.
  • Nie zapisuj jednego wyjścia w wielu odległych sieciach bez wyraźnego powodu.
  • Opisuj jednostki i zakresy wartości analogowych.
  • Testuj reakcję na brak czujnika, restart PLC i powrót zasilania.
  • Monitoruj program w trybie online, ale nie wymuszaj sygnałów na pracującej maszynie bez oceny ryzyka.

Osobno traktuję tryb ręczny i automatyczny. Operator może chcieć załączyć zawór ręcznie, ale nie powinien omijać blokady poziomu, ciśnienia czy otwartej osłony. Przejrzyste rozdzielenie tych warunków pozwala uniknąć sytuacji, w której „ręczne sterowanie” staje się przypadkowym obejściem zabezpieczeń technologicznych.

Przed uruchomieniem sprawdzam także zachowanie po zaniku zasilania. Czy silnik ma pozostać wyłączony? Czy zawór ma wrócić do pozycji bezpiecznej? Czy licznik ma zachować wartość? Odpowiedzi powinny wynikać z technologii, a nie z przypadkowego ustawienia retencji zmiennych.

Najczęstsze błędy przy nauce programowania drabinkowego

Początkujący często utożsamiają nazwę styku z fizycznym przyciskiem. Tymczasem styk w LAD może odczytywać bit z pamięci, sygnał z timera albo wynik innej funkcji. Dlatego trzeba rozróżniać adres sprzętowy, zmienną procesową i warunek logiczny użyty w programie.

Drugim problemem jest mylenie symbolu normalnie zamkniętego z fizycznym stykiem NC. W programie oznacza on negację warunku, a nie gwarancję, że urządzenie w szafie ma fizycznie zestyk normalnie zamknięty. To dwa różne poziomy opisu i ich pomieszanie potrafi odwrócić działanie blokady.

Błędy pojawiają się także przy podtrzymaniu. Gdy kilka sieci ustawia i kasuje ten sam bit, wynik zależy od kolejności wykonania. Przy bardziej złożonych procesach lepiej zaprojektować wyraźne stany maszyny niż mnożyć cewki SET i RESET w wielu miejscach.

Nie warto też testować programu wyłącznie na „idealnym” przebiegu. Sprawdzam krótkie impulsy, jednoczesne sygnały, odbicie styków, przerwany przewód, przekroczenie zakresu analogowego i restart sterownika. Program, który działa tylko w normalnych warunkach, nie jest jeszcze gotowym programem przemysłowym.

Jak podejść do nauki LAD i pierwszego projektu

Najrozsądniej zacząć od małego sterownika lub symulatora, a nie od skomplikowanej linii produkcyjnej. Pierwsze ćwiczenia powinny obejmować lampkę sterowaną przyciskiem, podtrzymanie start-stop, timer, licznik oraz prostą blokadę dwóch napędów.

Do nauki potrzebne są trzy rzeczy. Po pierwsze, znajomość podstaw logiki boolowskiej, czyli operacji „i”, „lub” oraz negacji. Po drugie, rozumienie cyklu skanowania PLC. Po trzecie, umiejętność czytania schematów elektrycznych, bo sama znajomość symboli LAD nie wystarczy do bezpiecznego uruchomienia maszyny.

Na początku nie skupiałbym się na zapamiętywaniu wszystkich instrukcji producenta. Więcej daje zbudowanie jednego małego programu, jego symulacja i obserwowanie każdego warunku online. Dopiero później warto dodawać receptury, komunikację, diagnostykę i obsługę wartości analogowych.

Jeżeli projekt ma pracować na konkretnej maszynie, trzeba sprawdzić dokumentację sterownika, dostępne bloki oraz sposób adresowania wejść i wyjść. LAD jest standardem zapisu, ale szczegóły implementacji pozostają zależne od producenta, dlatego program dla Siemens TIA Portal, Rockwell Studio 5000, Codesys czy sterownika Mitsubishi może wyglądać podobnie, lecz nie będzie identyczny.

Drabinka działa najlepiej wtedy, gdy każdy szczebel coś wyjaśnia

Język drabinkowy nadal ma mocną pozycję w automatyce, ponieważ łączy logikę sterowania z formą zrozumiałą dla osób pracujących przy elektryce i utrzymaniu ruchu. Wybieram go przede wszystkim do blokad, sekwencji prostych operacji, alarmów i sterowania sygnałami binarnymi.

Największą różnicę robi nie liczba użytych instrukcji, lecz czytelna struktura, dobre nazwy i przewidywalne zachowanie po błędzie. Gdy program zaczyna przypominać plątaninę połączeń, warto podzielić go na funkcje albo przenieść obliczenia do ST, zamiast dokładać kolejne szczeble. Dzięki temu diagnostyka pozostaje szybka, a modyfikacja maszyny nie zamienia się w zgadywanie.

FAQ - Najczęstsze pytania

Styk NO przewodzi, gdy przypisana zmienna ma stan 1, a styk NC, gdy ma stan 0. Cewka ustawia stan wyjścia lub zmiennej, na przykład silnika, zaworu albo bitu pomocniczego. Połączenia szeregowe oznaczają logiczne „i”, natomiast równoległe logiczne „lub”.
W szeregu należy umieścić styk Stop i styk zabezpieczenia termicznego jako warunki normalnie zamknięte. Przycisk Start łączy się równolegle ze stykiem Silnik, który podtrzymuje sygnał po zwolnieniu przycisku. Naciśnięcie Stop lub zadziałanie termika przerywa obwód i wyłącza silnik.
Timer TON służy do opóźnienia włączenia sygnału. Przykładowo, gdy wentylator ma wystartować pięć sekund po pompie, sygnał pompy podaje się na wejście timera z nastawą 5 sekund, a wyjście Q steruje wentylatorem. Po zaniku sygnału wejściowego odliczanie zwykle się zeruje, zależnie od sterownika i bloku.
LAD najlepiej sprawdza się przy logice binarnej, blokadach, alarmach i układach start-stop. FBD jest wygodny przy regulatorach, funkcjach analogowych i łączeniu gotowych bloków, a ST lub SCL przy obliczeniach, tablicach, recepturach i operacjach na danych. W praktyce warto łączyć języki, pozostawiając LAD do logiki maszyny.
Nie. Zwykła cewka w LAD nie zastępuje wyłącznika awaryjnego, blokad osłon ani funkcji bezpieczeństwa. Takie zabezpieczenia powinny być zaprojektowane zgodnie z wymaganiami maszyny, często z użyciem przekaźnika bezpieczeństwa albo sterownika safety.
Oceń artykuł

Średnia: 0.0 / 5 · 0 ocen

Tagi

lad plc liczniki timery blokady
Autor Robert Borkowski
Robert Borkowski
Nazywam się Robert Borkowski i od 15 lat zajmuję się techniką warsztatową, elektryką oraz automatyką. Moje zainteresowanie tymi dziedzinami zaczęło się w młodym wieku, kiedy to pasjonowałem się budową różnych urządzeń i rozwiązywaniem problemów technicznych. Fascynuje mnie, jak technologia wpływa na nasze życie i jak możemy ją wykorzystać do poprawy codziennych procesów. W moich tekstach staram się w przystępny sposób wyjaśniać złożone zagadnienia, porównując różne źródła informacji i śledząc najnowsze trendy w branży. Zależy mi na tym, aby dostarczać rzetelne, zrozumiałe i aktualne informacje, które pomogą czytelnikom lepiej zrozumieć otaczający ich świat technologii. Wierzę, że dobrze zorganizowana wiedza jest kluczem do efektywnego rozwiązywania problemów i podejmowania świadomych decyzji.
Komentarze (0)
Dodaj komentarz