Wybór platformy sterującej i sposób organizacji kodu decydują o tym, czy maszyna będzie utrzymywalna przez kolejne 10–15 lat eksploatacji. W praktyce projektowej spotykamy dwa skrajne przypadki: program napisany w całości w jednym bloku OB1, którego nikt poza autorem nie potrafi zmodyfikować, oraz strukturę modułową opartą na normie IEC 61131-3, gdzie wymiana jednego stanowiska w linii oznacza podmianę jednej instancji bloku funkcyjnego. Poniżej omawiamy kryteria techniczne, którymi kierujemy się podczas realizacji usługi programowania sterowników PLC.
Dobór platformy sprzętowej – kryteria ilościowe
Punktem wyjścia jest zawsze bilans wejść/wyjść, wymagany czas cyklu oraz liczba osi ruchu. Dopiero na tej podstawie dobieramy rodzinę sterownika. Poniższa tabela zestawia typowe zakresy zastosowań platform, które najczęściej wykorzystujemy w projektach maszyn i linii montażowych.
| Platforma | Typowy czas cyklu | Osie ruchu (koordynowane) | Protokół natywny | Zastosowanie |
|---|---|---|---|---|
| Siemens S7-1200 | 5–20 ms | do 4 (PTO/PWM) | PROFINET RT | Pojedyncze stanowiska, maszyny pomocnicze |
| Siemens S7-1500 / S7-1500T | 1–8 ms | 8–128 | PROFINET IRT, PROFIsafe | Linie produkcyjne, synchronizacja krzywkowa |
| Beckhoff CX / TwinCAT 3 | 0,25–2 ms | powyżej 100 | EtherCAT (DC) | Motion-centric, robotyka kartezjańska, XTS |
| Allen-Bradley CompactLogix | 5–20 ms | 2–16 | EtherNet/IP CIP Motion | Standard korporacyjny w zakładach USA |
| Mitsubishi iQ-R | 1–5 ms | 16–64 | CC-Link IE TSN | Przemysł motoryzacyjny i elektroniczny (Azja) |
Kluczowy jest zapas obliczeniowy. Przyjmujemy zasadę, że średnie obciążenie CPU po uruchomieniu nie powinno przekraczać 50–60 %, a maksymalny czas cyklu – 70 % czasu watchdoga. Taki zapas pozwala na późniejsze rozszerzenia funkcji (dodatkowa diagnostyka, archiwizacja danych, integracja z MES) bez wymiany jednostki centralnej.
Struktura programu wg IEC 61131-3
Norma IEC 61131-3 definiuje pięć języków programowania oraz model jednostek organizacyjnych programu (POU): programy, bloki funkcyjne (FB) z pamięcią stanu oraz funkcje (FC) bez pamięci. Dobór języka do zadania nie jest kwestią gustu – wpływa bezpośrednio na czytelność i czas diagnostyki przez utrzymanie ruchu.
| Język | Skrót | Najlepsze zastosowanie | Czego unikać |
|---|---|---|---|
| Ladder Diagram | LAD / LD | Logika binarna, blokady, warunki bezpieczeństwa – czytelne dla elektryków | Obliczeń arytmetycznych, pętli |
| Function Block Diagram | FBD | Regulacja, przetwarzanie sygnałów analogowych, kaskady PID | Rozbudowanej logiki decyzyjnej |
| Structured Text | SCL / ST | Algorytmy, obsługa tablic, komunikacja, parsowanie ramek | Prostych blokad – gorsza diagnostyka online |
| Sequential Function Chart | SFC / GRAPH | Sekwencje cykli maszyny, kroki z warunkami przejścia | Zadań ciągłych i regulacji |
| Instruction List | IL | Kod legacy, optymalizacje niskopoziomowe | Nowych projektów – język wycofywany |
W naszych projektach warstwę sekwencji realizujemy w SFC lub jako maszynę stanów w SCL, logikę blokad i bezpieczeństwa w LAD, a algorytmy i komunikację w SCL. Każde stanowisko otrzymuje własną instancję bloku funkcyjnego z jednolitym interfejsem (struktury Command, Status, Config), co umożliwia powielanie stanowisk oraz automatyczne generowanie tagów dla panelu HMI.
Nazewnictwo i warstwy kodu
- Warstwa I/O – mapowanie sygnałów fizycznych na zmienne symboliczne, bez logiki. Ułatwia symulację i wirtualne uruchomienie linii.
- Warstwa urządzeń – bloki typu siłownik, napęd, czujnik, zawór; jeden blok = jeden typ aktuatora wraz z nadzorem czasu ruchu.
- Warstwa sekwencji – kroki cyklu, tryby Auto/Manual/Setup, obsługa zatrzymania i restartu z zachowaniem pozycji.
- Warstwa nadrzędna – komunikacja z MES/SCADA, liczniki produkcji, rejestracja przestojów i alarmów.
Czas cyklu, determinizm i budżet czasowy
Przy stanowiskach o krótkim takcie (poniżej 3 s) czas cyklu PLC przestaje być parametrem drugorzędnym. Sumaryczne opóźnienie od zdarzenia fizycznego do reakcji siłownika to suma czasu filtracji wejścia, czasu cyklu programu, czasu aktualizacji sieci oraz czasu reakcji zaworu. Poniżej typowy budżet dla detekcji przelotu detalu na taśmie o prędkości 0,5 m/s.
| Składnik opóźnienia | Wartość typowa | Uwagi |
|---|---|---|
| Filtracja wejścia cyfrowego | 0,1–3 ms | Parametryzowana w konfiguracji modułu |
| Aktualizacja sieci (PROFINET RT) | 1–4 ms | Zależna od czasu aktualizacji urządzenia |
| Czas cyklu programu | 2–10 ms | Wejście odczytywane raz na cykl |
| Czas reakcji zaworu 5/2 | 8–20 ms | Dane katalogowe producenta |
| Ruch mechaniczny siłownika | 50–300 ms | Wg obliczeń pneumatyki |
| Razem (elektryka + sterowanie) | 11–37 ms | Droga detalu: 5,5–18,5 mm |
Jeżeli tolerancja pozycji jest mniejsza niż wynikająca droga detalu, standardowy odczyt cykliczny nie wystarczy – stosujemy przerwania sprzętowe (HSC, wejścia szybkie) albo wyzwalanie w oparciu o enkoder z rejestracją pozycji. Ten sam rachunek wykonujemy dla stanowisk wizyjnych, gdzie czas ekspozycji i czas przetwarzania obrazu dochodzą jako kolejne składniki.
Diagnostyka jako element specyfikacji, nie dodatek
Program bez diagnostyki generuje koszty przez cały okres eksploatacji maszyny. Każdy nadzorowany ruch otrzymuje u nas kontrolę czasu (time-out) z komunikatem wskazującym urządzenie, krok cyklu i oczekiwany sygnał – zamiast ogólnego alarmu „błąd stanowiska”. Lista alarmów jest generowana z tej samej struktury danych, z której korzysta HMI, dzięki czemu numeracja na panelu, w programie i w dokumentacji jest spójna.
- Kontrola czasu ruchu dla każdego siłownika i napędu, z rozróżnieniem braku sygnału końcowego i sygnału przedwczesnego.
- Licznik cykli i czasu pracy elementów zużywających się (zaworów, chwytaków, narzędzi spawalniczych) jako podstawa utrzymania predykcyjnego.
- Rejestracja przestojów z klasyfikacją przyczyn – dane wejściowe do wyliczenia wskaźnika OEE.
- Bufor śladu (trace) ostatnich kilkudziesięciu cykli dla analizy zjawisk sporadycznych.
Testy FAT i SAT – weryfikacja przed wysyłką
Program uznajemy za gotowy nie w chwili kompilacji, lecz po wykonaniu testów zgodnie z listą kontrolną obejmującą wszystkie tryby pracy, awaryjne zatrzymanie z każdego kroku cyklu, restart po zaniku zasilania oraz reakcję na wyjęcie detalu w trakcie pracy. Część tych testów wykonujemy na modelu symulacyjnym, jeszcze przed dostawą maszyny – szczegóły opisujemy w artykułach o programowaniu wirtualnym oraz automatyce i uruchomieniach.
Dobrze zestrukturyzowany program PLC skraca rozruch na obiekcie zwykle o 20–40 % i radykalnie zmniejsza czas usuwania usterek w produkcji. Jeżeli planujesz nową maszynę lub modernizację sterowania istniejącego stanowiska, zapoznaj się z zakresem usług wykonania stanowisk zrobotyzowanych lub serwisu i modyfikacji istniejących maszyn.
Powiązane artykuły z Poradnika Technicznego
- Bezpieczeństwo maszyn: jak wyznaczyć Performance Level (PL) wg PN-EN ISO 13849-1
- Wirtualne uruchomienie linii (virtual commissioning) – MiL, SiL, HiL w praktyce
- Retrofit maszyny – audyt, kryteria decyzji i obowiązki po istotnej modyfikacji
Pełna lista opracowań: Poradnik Techniczny MDP Engineering. Masz pytanie dotyczące własnego projektu? Skontaktuj się z nami.






