SFC (Sequential Function Chart) to graficzny język programowania sterowników PLC, który reprezentuje sekwencje sterowania w postaci diagramu kroków i tranzycji – czytelnego zarówno dla automatyków, jak i technologów procesu. Wywodzi się z języka GRAFCET opracowanego we Francji w latach 70. XX wieku i jest jednym z pięciu języków programowania PLC znormalizowanych przez IEC 61131-3. Dzięki graficznej reprezentacji algorytmów SFC skraca czas uruchomienia, diagnostyki i modyfikacji sekwencyjnych procesów produkcyjnych.
Czym jest algorytm i jak odnosi się do automatyki przemysłowej?
Algorytm to skończona sekwencja precyzyjnie zdefiniowanych operacji prowadzących do rozwiązania określonego problemu. W automatyce przemysłowej algorytmy opisują logikę sterowania maszyną lub procesem – określają, co ma się wydarzyć, w jakiej kolejności i pod jakimi warunkami.
Sterownik PLC (Programmable Logic Controller) wykonuje algorytmy w czasie rzeczywistym, cyklicznie odczytując sygnały wejściowe (czujniki, przyciski, sygnały z innych systemów), przetwarzając je zgodnie z zaprogramowanym algorytmem i wysyłając sygnały wyjściowe do elementów wykonawczych (siłowniki, zawory, silniki).
Co to jest SFC (Sequential Function Chart)?
SFC to graficzny język programowania PLC opisujący algorytmy sterowania sekwencyjnego w postaci diagramu złożonego z trzech podstawowych elementów:
| Element SFC | Opis | Symbol graficzny |
|---|---|---|
| Krok (Step) | Stan układu – zestaw akcji wykonywanych w danej fazie | Prostokąt z numerem i nazwą |
| Tranzycja (Transition) | Warunek przejścia między krokami | Pozioma linia z warunkiem logicznym |
| Połączenie (Link) | Przepływ sekwencji między krokami i tranzycjami | Linia pionowa |
Wykonanie sekwencji przebiega następująco: aktywny krok wykonuje przypisane akcje → gdy warunek tranzycji staje się prawdziwy → następuje przejście do kolejnego kroku.
SFC jest rozwinięciem języka GRAFCET (Graphe Fonctionnel de Commande Étapes/Transitions) i wchodzi w skład normy IEC 61131-3 jako jeden z pięciu standardowych języków programowania PLC (obok LD, FBD, ST i IL).
Elementy algorytmu SFC – szczegółowy przegląd
Kroki (Steps): Każdy krok reprezentuje jeden stan układu sterowania. Krok inicjalny (oznaczony podwójną ramką) jest aktywny przy starcie programu. W każdym kroku można definiować akcje trzech typów:
- N (Non-stored) – akcja aktywna przez cały czas trwania kroku
- S (Set) – akcja ustawiana w chwili wejścia do kroku (pozostaje aktywna po jego opuszczeniu)
- R (Reset) – akcja kasowana w chwili wejścia do kroku
Tranzycje (Transitions): Warunki logiczne (sygnały z czujników, timery, zmienne) decydujące o przejściu do następnego kroku. Tranzycja może być prosta (jeden warunek) lub złożona (wyrażenie logiczne).
Sekwencje alternatywne i równoległe:
- Dywergencja alternatywna (OR) – wybór jednej z kilku możliwych gałęzi w zależności od warunków
- Dywergencja równoległa (AND) – równoczesne uruchomienie kilku gałęzi sekwencji
SFC a inne języki programowania PLC
| Cecha | SFC | Ladder Diagram (LD) | Function Block Diagram (FBD) |
|---|---|---|---|
| Reprezentacja | Diagram sekwencyjny | Schemat drabinkowy | Schemat blokowy |
| Zastosowanie | Procesy sekwencyjne | Logika kombinacyjna | Regulatory, bloki funkcyjne |
| Czytelność dla elektryka | Średnia | Wysoka | Średnia |
| Czytelność dla technologa | Wysoka | Niska | Średnia |
| Obsługa sekwencji | Natywna | Trudna | Trudna |
| Norma | IEC 61131-3 | IEC 61131-3 | IEC 61131-3 |
SFC jest językiem pierwszego wyboru dla procesów sekwencyjnych (np. linie rozlewnicze, myjnie przemysłowe, sekwencje montażowe), natomiast LD dominuje w aplikacjach z logiką przekaźnikową i sygnałami bezpieczeństwa.
Jak programować sterownik PLC w języku SFC?
Programowanie SFC w sterownikach PLC realizuje się w środowiskach takich jak:
- TIA Portal (Siemens) – GRAPH jako graficzne środowisko SFC
- Unity Pro / EcoStruxure (Schneider Electric)
- Studio 5000 (Rockwell / Allen-Bradley) – Sequential Function Chart
- CODESYS – otwarta platforma zgodna z IEC 61131-3, obsługiwana przez wielu producentów
Typowy proces tworzenia programu SFC:
- Zdefiniowanie kroków sekwencji i przypisanie im akcji
- Określenie warunków tranzycji między krokami
- Obsługa sekwencji alternatywnych i równoległych
- Konfiguracja kroku inicjalnego i warunków resetowania sekwencji
- Integracja z blokami w LD lub FBD (akcje w krokach mogą wywoływać podprogramy w innych językach)
- Symulacja w środowisku offline i uruchomienie na sterowniku
Zastosowania algorytmu SFC w przemyśle
SFC sprawdza się szczególnie wszędzie tam, gdzie proces ma ściśle określoną kolejność faz:
- Przemysł spożywczy i farmaceutyczny – sekwencje mycia CIP/SIP, dozowanie składników, pasteryzacja
- Przemysł motoryzacyjny – sekwencje montażowe, testy końcowe, lakierowanie
- Przemysł chemiczny – reaktory wsadowe (batch), sekwencje napełniania i opróżniania
- Obróbka metali – centra obróbkowe, automatyczne linie transferowe
- Pakowanie i paletyzacja – sekwencje pick & place, zawijanie, etykietowanie
Korzyści ze stosowania SFC w automatyce
- Czytelność i intuicyjność – diagram sekwencji jest zrozumiały nie tylko dla programistów, ale też dla inżynierów procesu i operatorów
- Łatwa diagnostyka – aktywny krok jest widoczny na diagramie w czasie rzeczywistym, co skraca czas lokalizacji usterki
- Modularność – sekwencje można dzielić na podsekwencje i wielokrotnie wywoływać
- Bezpieczeństwo zmian – modyfikacja jednego kroku lub tranzycji nie zaburza reszty sekwencji
- Integracja z innymi językami – akcje w krokach SFC mogą być kodowane w LD, FBD lub ST
Najczęstsze pytania o SFC w automatyce przemysłowej
Czym SFC różni się od GRAFCET?
GRAFCET to poprzednik SFC, opracowany we Francji w 1977 roku jako niezależny standard (norma IEC 60848). SFC jest implementacją tej koncepcji w ramach normy IEC 61131-3 dla języków programowania PLC. Główna różnica polega na tym, że GRAFCET jest narzędziem specyfikacji i dokumentacji procesu, natomiast SFC jest bezpośrednio wykonywalnym językiem programowania sterownika.
Czy SFC można łączyć z innymi językami PLC?
Tak – to jedna z największych zalet SFC. Akcje przypisane do kroków mogą być zaimplementowane w dowolnym innym języku IEC 61131-3 (LD, FBD, ST, IL). Pozwala to na zastosowanie SFC do opisu sekwencji nadrzędnej, przy jednoczesnym wykorzystaniu LD do logiki bezpieczeństwa i ST do obliczeń matematycznych.
Jak przeprowadzić symulację programu SFC przed uruchomieniem na maszynie?
Wszystkie główne środowiska programowania PLC (TIA Portal, CODESYS, Unity Pro) posiadają wbudowane tryby symulacji offline. Pozwalają one na wirtualne uruchomienie sekwencji SFC, wymuszanie wartości sygnałów wejściowych i obserwację aktywnych kroków bez podłączenia do rzeczywistego sterownika. Symulacja jest kluczowym krokiem przed uruchomieniem na maszynie produkcyjnej.
Jakie są ograniczenia SFC?
SFC jest optymalny dla procesów sekwencyjnych, ale słabo nadaje się do sterowania ciągłego (regulatory PID, pętle sprzężenia zwrotnego) – do tych zadań lepszy jest FBD lub ST. Ponadto złożone sekwencje z wieloma równoległymi gałęziami mogą stać się trudne do analizy. W takich przypadkach zaleca się hierarchiczną strukturę z podsekwencjami.

Od 2023 roku dostarczamy rzetelne informacje i analizy z obszaru produkcji oraz przemysłu, wspierając rozwój polskiego sektora wytwórczego. Nasz warsztat redakcyjny bazuje na bezpośredniej współpracy z liderami technologicznymi, co pozwala nam publikować unikalne dane rynkowe oraz artykuły eksperckie tworzone w modelu partnerskim. Jako partner medialny targów Glass Tech Poland 2026, aktywnie uczestniczymy w życiu branży, dbając o to, by każda publikacja wnosiła realną wartość merytoryczną i pomagała w rozwiązywaniu problemów współczesnych zakładów produkcyjnych.

