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.

PlatformaTypowy czas cykluOsie ruchu (koordynowane)Protokół natywnyZastosowanie
Siemens S7-12005–20 msdo 4 (PTO/PWM)PROFINET RTPojedyncze stanowiska, maszyny pomocnicze
Siemens S7-1500 / S7-1500T1–8 ms8–128PROFINET IRT, PROFIsafeLinie produkcyjne, synchronizacja krzywkowa
Beckhoff CX / TwinCAT 30,25–2 mspowyżej 100EtherCAT (DC)Motion-centric, robotyka kartezjańska, XTS
Allen-Bradley CompactLogix5–20 ms2–16EtherNet/IP CIP MotionStandard korporacyjny w zakładach USA
Mitsubishi iQ-R1–5 ms16–64CC-Link IE TSNPrzemysł 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ęzykSkrótNajlepsze zastosowanieCzego unikać
Ladder DiagramLAD / LDLogika binarna, blokady, warunki bezpieczeństwa – czytelne dla elektrykówObliczeń arytmetycznych, pętli
Function Block DiagramFBDRegulacja, przetwarzanie sygnałów analogowych, kaskady PIDRozbudowanej logiki decyzyjnej
Structured TextSCL / STAlgorytmy, obsługa tablic, komunikacja, parsowanie ramekProstych blokad – gorsza diagnostyka online
Sequential Function ChartSFC / GRAPHSekwencje cykli maszyny, kroki z warunkami przejściaZadań ciągłych i regulacji
Instruction ListILKod legacy, optymalizacje niskopoziomoweNowych 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óźnieniaWartość typowaUwagi
Filtracja wejścia cyfrowego0,1–3 msParametryzowana w konfiguracji modułu
Aktualizacja sieci (PROFINET RT)1–4 msZależna od czasu aktualizacji urządzenia
Czas cyklu programu2–10 msWejście odczytywane raz na cykl
Czas reakcji zaworu 5/28–20 msDane katalogowe producenta
Ruch mechaniczny siłownika50–300 msWg obliczeń pneumatyki
Razem (elektryka + sterowanie)11–37 msDroga 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

Pełna lista opracowań: Poradnik Techniczny MDP Engineering. Masz pytanie dotyczące własnego projektu? Skontaktuj się z nami.