Programowanie PLC w FBD - bloki, timery i dobór języka

Gabriel Jakubowski .

23 czerwca 2026

Schemat logiczny fbd plc: wejścia %I0.0, %M0.2, %I0.2, %M3.0 łączą się przez bramki logiczne, dając wyjście %Q0.0.
Gdy masz sterować pompą, przenośnikiem albo prostą maszyną, najważniejsze jest nie samo napisanie programu, lecz szybkie zrozumienie, co dzieje się z sygnałem od wejścia do wyjścia. Właśnie dlatego programowanie PLC w języku Function Block Diagram jest tak popularne: logikę buduje się z czytelnych bloków, timerów, liczników i komparatorów. Wyjaśniam, jak działa fbd plc, z czego składa się program, kiedy wybrać FBD zamiast LD lub ST oraz jak uniknąć błędów, które później trudno znaleźć na działającej maszynie.

FBD pozwala układać logikę sterownika z gotowych, łatwych do śledzenia bloków

  • FBD to graficzny język programowania PLC zgodny z rodziną norm IEC 61131-3.
  • Bloki funkcyjne obsługują logikę, opóźnienia czasowe, zliczanie, porównania i regulację.
  • Największa zaleta to czytelny przepływ sygnałów widoczny podczas diagnostyki online.
  • Dobry program ma opisane zmienne, jednoznaczne warunki startu i poprawnie zaprojektowane blokady.
  • FBD sprawdza się najlepiej w układach procesowych, napędowych, HVAC i automatyce maszyn.

Symulacja pracy manipulatora w środowisku fbd plc. Program steruje ruchem chwytaka, pozycjonowaniem i odbiorem elementów.

Czym jest FBD i jak działa w sterowniku PLC

FBD, czyli Function Block Diagram, przedstawia program jako połączone ze sobą bloki funkcjonalne. Każdy blok ma wejścia, wykonuje określone działanie i przekazuje wynik na wyjście. Zamiast pisać długie instrukcje tekstowe, projektant układa sieć zależności przypominającą schemat przepływu sygnału.

Język ten należy do zestawu języków opisanych w normie IEC 61131-3. W tej samej rodzinie znajdują się między innymi Ladder Diagram, Structured Text i Sequential Function Chart. Sama norma porządkuje sposób budowania programów, ale konkretne biblioteki bloków, nazwy instrukcji i możliwości edytora zależą już od producenta sterownika.

Cykl pracy programu

PLC pracuje cyklicznie. Sterownik odczytuje wejścia, wykonuje program, aktualizuje wyjścia i rozpoczyna kolejny cykl. W prostym układzie może to wyglądać tak: przycisk START trafia do bloku logicznego, jego wynik przechodzi przez blok podtrzymania, a na końcu steruje wyjściem silnika.

To ważne, ponieważ FBD nie jest schematem elektrycznym w dosłownym znaczeniu. Położenie bloku na ekranie pomaga czytać program, ale o działaniu decydują połączenia, typy danych i kolejność wykonania ustalana przez środowisko programistyczne.

Funkcja a blok funkcyjny

Element Jak działa Przykład zastosowania
Funkcja Dla tych samych wartości wejściowych zwraca wynik bez przechowywania własnego stanu. AND, OR, ABS, LIMIT, porównanie wartości.
Blok funkcyjny Może zapamiętywać stan pomiędzy cyklami programu. Timer TON, licznik CTU, przerzutnik SR, regulator PID.

Różnica ma praktyczne znaczenie. Timer musi pamiętać, jak długo utrzymuje się sygnał, a licznik powinien przechowywać aktualną liczbę impulsów. Dlatego korzysta się z instancji bloku, czyli jego konkretnego egzemplarza przypisanego do określonych zmiennych.

Z jakich bloków buduje się program FBD

Podstawą są bloki logiczne AND, OR i NOT. Pozwalają sprawdzić, czy kilka warunków wystąpiło jednocześnie, czy wystarczy jeden z nich albo czy sygnał ma zostać odwrócony. W praktyce prawie zawsze łączy się je z sygnałami zezwolenia, alarmu i blokady bezpieczeństwa.

Timery i liczniki

Blok TON załącza wyjście dopiero po upływie ustawionego czasu. Przykładowo wentylator może uruchamiać się 5 sekund po włączeniu ogrzewania. TOF działa odwrotnie i podtrzymuje wyjście przez określony czas po zaniku sygnału, co przydaje się przy opóźnionym wyłączeniu wentylacji.

Liczniki CTU i CTD służą do zliczania impulsów, elementów na przenośniku albo cykli pracy. Jeżeli czujnik wykrywa detal, licznik może zatrzymać linię po 10 sztukach. Trzeba jednak zadbać o filtrację sygnału, ponieważ drgania styku lub zakłócenia mogą spowodować wielokrotne naliczenie jednego elementu.

Przerzutniki, zbocza i komparatory

Bloki SR i RS pozwalają zapamiętać stan, na przykład informację, że operator nacisnął START. Różnica między nimi dotyczy priorytetu wejścia ustawiającego i kasującego. W układach awaryjnych wybieram rozwiązanie, w którym sygnał STOP lub alarm ma pierwszeństwo przed podtrzymaniem pracy.

Bloki wykrywania zbocza reagują tylko na zmianę sygnału, a nie na jego stały poziom. Są przydatne przy impulsowym zwiększaniu licznika lub wyzwalaniu pojedynczego cyklu. Komparatory, takie jak >, < i =, zamieniają wartości analogowe na warunki logiczne, na przykład „uruchom pompę, gdy poziom spadnie poniżej 30%”.

Operacje na wartościach analogowych

Wartości z czujników często wymagają przeskalowania. Sygnał 4-20 mA może odpowiadać zakresowi od 0 do 10 bar, dlatego program powinien przeliczyć surową wartość wejściową na jednostkę używaną przez operatora. Przydatne są tu bloki SCALE, LIMIT i konwersji typu danych.

Nie pomijam ograniczenia wartości blokiem LIMIT. Jeżeli uszkodzony czujnik zwróci wartość spoza zakresu, ograniczenie nie naprawi awarii, ale może ochronić dalszą część algorytmu przed absurdem obliczeniowym. Równolegle powinien działać alarm przekroczenia zakresu i diagnostyka przewodu.

Jak zaprojektować prosty układ krok po kroku

Dobrym ćwiczeniem jest sterowanie silnikiem przenośnika. Załóżmy, że silnik może pracować po naciśnięciu START, ale tylko wtedy, gdy aktywne jest zezwolenie technologiczne i nie wystąpił sygnał awaryjny.

  1. Zdefiniuj sygnały wejściowe: START, STOP, E-STOP, GUARD_OK oraz MOTOR_FB.
  2. Utwórz warunek zezwolenia, łącząc GUARD_OK z brakiem E-STOP i aktywnym trybem AUTO.
  3. Zastosuj przerzutnik SR lub RS do podtrzymania komendy pracy po puszczeniu przycisku START.
  4. Dodaj priorytet zatrzymania, aby STOP, E-STOP lub zadziałanie zabezpieczenia kasowały podtrzymanie.
  5. Sprawdź sprzężenie zwrotne MOTOR_FB, czyli informację, że stycznik lub napęd rzeczywiście wykonał polecenie.
  6. Dodaj timer błędu, który zgłosi alarm, jeśli potwierdzenie nie pojawi się na przykład w ciągu 2 sekund.

Tak zbudowana sieć ma wyraźny przepływ od warunków wejściowych do wyjścia. Ja staram się oddzielać w programie komendę pracy od fizycznego wyjścia. Dzięki temu łatwiej dodać tryb ręczny, automatyczny, test serwisowy albo blokadę wynikającą z innego procesu.

Element układu Rola Typowy błąd
START Żądanie rozpoczęcia pracy Bezpośrednie sterowanie wyjściem bez podtrzymania.
STOP i E-STOP Kasowanie pracy Brak priorytetu zatrzymania.
Blokada technologiczna Warunek bezpiecznego uruchomienia Sprawdzana tylko przy starcie, a nie podczas pracy.
Sprzężenie zwrotne Potwierdzenie wykonania polecenia Program zakłada, że wyjście zawsze zadziałało.
W maszynie produkcyjnej sama logika FBD nie zastępuje układu bezpieczeństwa. Obwody zatrzymania awaryjnego, kurtyny świetlne i blokady osłon muszą być zaprojektowane zgodnie z wymaganiami konkretnej maszyny. Program PLC może dostarczać diagnostykę lub dodatkową kontrolę, ale nie powinien być jedyną warstwą ochrony, jeśli analiza ryzyka wymaga certyfikowanego rozwiązania safety.

FBD, LD czy ST, który język wybrać

Nie ma jednego języka najlepszego dla każdego zadania. FBD wygrywa czytelnością bloków i wygodną diagnostyką, ale przy bardzo rozbudowanych obliczeniach może zajmować dużo miejsca. Dlatego w większych projektach często łączy się kilka języków w jednym sterowniku.

Język Najmocniejsza strona Kiedy wybrać Ograniczenie
FBD Graficzny przepływ sygnałów i gotowe bloki Procesy, napędy, regulacja, HVAC, układy z timerami. Duże algorytmy mogą stać się nieporęczne.
LD Podobieństwo do klasycznych schematów przekaźnikowych Prosta logika binarna i serwis maszyn. Rozbudowane operacje analogowe bywają mniej przejrzyste.
ST Krótki zapis obliczeń i warunków Pętle, tablice, receptury i złożone algorytmy. Diagnostyka wymaga większego obycia z kodem.
SFC Opis sekwencji etapów Maszyny pracujące według jasno określonych kroków. Nie zastępuje szczegółowej logiki wykonawczej.

Moja praktyczna zasada jest prosta: używam FBD tam, gdzie chcę widzieć zależności między blokami, a Structured Text tam, gdzie kod jest krótszy i łatwiejszy do utrzymania niż rozbudowana grafika. Największy błąd to wybór jednego języka z przyzwyczajenia, bez sprawdzenia, jak program będzie później diagnozowany przez zespół utrzymania ruchu.

Najczęstsze błędy w programowaniu FBD

Niejasne nazwy zmiennych

Zmienna o nazwie Motor_1 może oznaczać komendę, sprzężenie zwrotne albo fizyczne wyjście. Znacznie lepiej rozdzielić nazwy typu Motor_StartCmd, Motor_RunFb i Motor_Fault. Czytelne nazewnictwo skraca diagnostykę, zwłaszcza gdy program ma setki sieci.

Wielokrotne sterowanie tym samym wyjściem

Jeżeli kilka fragmentów programu zapisuje wartość do jednego wyjścia, końcowy rezultat może zależeć od kolejności wykonania. Ten błąd często pojawia się przy łączeniu trybu ręcznego i automatycznego. Rozwiązaniem jest najpierw wyliczenie jednej komendy nadrzędnej, a dopiero później przypisanie jej do fizycznego wyjścia.

Brak rozróżnienia poziomu i impulsu

Przycisk lub czujnik może utrzymywać stan przez wiele cykli PLC. Jeśli licznik reaguje na poziom TRUE zamiast na zbocze narastające, jedna sztuka może zostać policzona kilkadziesiąt razy. Przy szybkich sygnałach trzeba dodatkowo sprawdzić, czy wejście i czas cyklu sterownika są wystarczające.

Nieprawidłowe resetowanie timerów i liczników

Timer albo licznik powinien mieć jasno określony warunek resetu. Pozostawienie starego stanu po zmianie trybu pracy prowadzi do trudnych do odtworzenia problemów. Podczas testów sprawdzam nie tylko normalny cykl, lecz także restart sterownika, zanik sygnału i powrót z alarmu.

Przeczytaj również: Jaki sterownik PLC do CODESYS wybrać? Praktyczny poradnik

Brak ograniczeń dla danych analogowych

Surowa wartość z wejścia analogowego nie powinna bez kontroli sterować zaworem, falownikiem czy grzałką. Oprócz skalowania potrzebne są limity, filtracja i reakcja na błąd czujnika. Szczególnie ostrożnie traktuję wartości typu REAL, ponieważ nieprawidłowa konwersja typu może dać wynik wyglądający poprawnie, ale niezgodny z rzeczywistością.

Gdzie FBD daje najlepsze rezultaty

FBD dobrze pasuje do układów, w których operator lub automatyk musi szybko prześledzić stan procesu. Dotyczy to między innymi sterowania pompami, wentylatorami, zaworami, przenośnikami i napędami. Graficzny zapis ułatwia też pracę osobom, które lepiej czytają schematy niż kod tekstowy.

  • W instalacjach HVAC można łączyć temperaturę, harmonogram, tryb pracy i alarmy w jedną czytelną strukturę.
  • W układach pompowych FBD pozwala pokazać naprzemienną pracę pomp, czas zwłoki i reakcję na suchobieg.
  • W automatyce maszyn bloki timerów, przerzutników i komparatorów pomagają budować sekwencje oraz blokady.
  • W napędach można połączyć komendę startu, wybór kierunku, zadawanie prędkości i potwierdzenie gotowości falownika.

Nie używałbym FBD bez zastanowienia do bardzo dużych tablic danych, skomplikowanych receptur lub obliczeń wymagających wielu pętli. W takim przypadku lepszy może być ST, a FBD warto zostawić do warstwy sygnałów, alarmów i interfejsu procesu. Najpraktyczniejsze projekty nie wybierają języka według mody, tylko według tego, kto będzie utrzymywał instalację za kilka lat.

Jak uporządkować projekt przed uruchomieniem maszyny

Przed wgraniem programu przygotowuję listę wejść, wyjść, alarmów i stanów pracy. Każdy sygnał powinien mieć opis, jednostkę, zakres oraz informację, czy jest aktywny stanem wysokim, czy niskim. Taki prosty dokument często oszczędza więcej czasu niż późniejsze szukanie błędu online.

Testuję najpierw pojedyncze bloki, później całe sieci, a na końcu zachowanie procesu. Sprawdzam również sytuacje nietypowe: uruchomienie po zaniku zasilania, utratę komunikacji, uszkodzenie czujnika i ręczne przełączenie trybu. Dopiero gdy te przypadki są opisane i przewidywalne, program jest gotowy do bezpiecznego uruchomienia.

Na ekranach HMI pokazuję operatorowi nie tylko „silnik nie działa”, lecz także przyczynę: brak zezwolenia, aktywny STOP, przeciążenie albo brak sprzężenia. FBD jest wtedy nie tylko sposobem programowania, ale również mapą diagnostyczną całego procesu.

Od czytelnego bloku do stabilnego sterowania

Największa wartość FBD nie polega na tym, że program wygląda jak schemat. Chodzi o to, aby każdy warunek był widoczny, nazwany i możliwy do sprawdzenia podczas pracy sterownika. Dobrze opisane bloki, poprawne priorytety resetu, kontrola sygnałów analogowych i jedno miejsce zapisu wyjścia robią większą różnicę niż liczba użytych funkcji.

Na początek wystarczy zbudować kilka małych ćwiczeń: podtrzymanie START-STOP, timer TON, licznik detali i sterowanie pompą z blokadą. Gdy te elementy działają poprawnie także po błędzie i restarcie PLC, można bezpiecznie przejść do większych układów automatyki.

FAQ - Najczęstsze pytania

Funkcja dla tych samych danych wejściowych zwraca wynik bez zapamiętywania własnego stanu, jak AND, OR czy porównanie. Blok funkcyjny może przechowywać stan między cyklami PLC, dlatego stosuje się go między innymi w timerach TON, licznikach CTU i przerzutnikach SR.
Najpierw definiuje się sygnały START, STOP, E-STOP, GUARD_OK i MOTOR_FB. Następnie tworzy się warunek zezwolenia, dodaje przerzutnik SR lub RS z priorytetem zatrzymania, sprawdza sprzężenie MOTOR_FB i ustawia timer błędu, który może zgłosić alarm po braku potwierdzenia na przykład przez 2 sekundy.
FBD sprawdza się przy procesach, napędach, regulacji, HVAC oraz układach wykorzystujących timery i komparatory, ponieważ ułatwia śledzenie przepływu sygnałów. LD pasuje do prostej logiki binarnej i serwisu maszyn, a ST lepiej obsługuje pętle, tablice, receptury i złożone obliczenia.
Licznik powinien reagować na zbocze narastające, a nie na stały poziom TRUE utrzymujący się przez wiele cykli PLC. Warto również filtrować drgania styków i zakłócenia oraz sprawdzić, czy czas cyklu sterownika jest wystarczający dla szybkości sygnału.
Oceń artykuł

Średnia: 0.0 / 5 · 0 ocen

Tagi

fbd timery liczniki napędy komparatory
Autor Gabriel Jakubowski
Gabriel Jakubowski
Nazywam się Gabriel Jakubowski i mam 8-letnie doświadczenie w dziedzinie techniki warsztatowej, elektryki oraz automatyki. Moja fascynacja tymi obszarami zaczęła się już w młodości, kiedy to z ciekawością obserwowałem, jak działają różne urządzenia i systemy. Z czasem postanowiłem zgłębić tę wiedzę, co pozwoliło mi nie tylko zrozumieć złożoność technologii, ale także podzielić się nią z innymi. Piszę na temat najnowszych trendów w technice warsztatowej oraz elektryce, starając się uprościć skomplikowane zagadnienia i dostarczyć czytelnikom zrozumiałe oraz rzetelne informacje. Dokładam wszelkich starań, aby moje artykuły były aktualne i oparte na sprawdzonych źródłach, co pozwala mi skutecznie pomagać w rozwiązywaniu problemów, z którymi borykają się zarówno amatorzy, jak i profesjonaliści w tej dziedzinie.
Komentarze (0)
Dodaj komentarz