Każda z nich ma zwolenników, a dyskusje w stylu „PLC to przeżytek” albo „Arduino w przemyśle to amatorszczyzna” niewiele pomagają. W maszynach, które budujemy – stanowiskach montażowych, urządzeniach pomiarowych i prototypach – stosujemy wszystkie trzy rozwiązania, często w jednej szafie sterowniczej. Poniżej opisujemy, czym się różnią, kiedy mikrokontroler lub Raspberry Pi wygrywa ze sterownikiem PLC, a kiedy oszczędność na sterowaniu kończy się problemami u klienta.
Czym różni się sterownik PLC od mikrokontrolera i Raspberry Pi?
Sterownik PLC (Programmable Logic Controller – programowalny sterownik logiczny) to gotowe urządzenie przemysłowe: ma wejścia i wyjścia 24 V DC, odporność na zakłócenia elektromagnetyczne zgodną z normą IEC 61131-2, montaż na szynie DIN i środowisko programowania w językach normy IEC 61131-3 – drabinkowym (LD), blokach funkcyjnych (FBD) lub tekście strukturalnym (ST). Program wykonywany jest cyklicznie, z przewidywalnym czasem cyklu rzędu kilku milisekund. Podstawy działania PLC opisujemy szerzej w artykule Sterownik PLC: czym jest i jak działa, więc tutaj skupiamy się na porównaniu.
Mikrokontroler to pojedynczy układ scalony z procesorem, pamięcią i peryferiami (liczniki, przetworniki ADC, interfejsy UART, SPI, I2C). Popularne rodziny to AVR (np. ATmega), STM32 czy ESP32. Sam układ nie jest sterownikiem przemysłowym – żeby obsłużyć czujnik 24 V albo zawór, trzeba zaprojektować płytkę z optoizolacją wejść, wyjściami tranzystorowymi, zabezpieczeniami i zasilaniem. W zamian dostajemy pełną kontrolę nad czasem: mikrokontroler reaguje na zdarzenie w mikrosekundach i może generować impulsy o częstotliwości setek kiloherców.
Raspberry Pi to z kolei komputer jednopłytkowy z systemem Linux. Ma dużą moc obliczeniową, sieć Ethernet, USB, obsługę kamer i baz danych, ale nie jest systemem czasu rzeczywistego – system operacyjny może wstrzymać program na kilka lub kilkadziesiąt milisekund. Jego wyprowadzenia GPIO pracują na poziomie 3,3 V i nie mają żadnych zabezpieczeń.
| Kryterium | Sterownik PLC | Mikrokontroler (własna płytka) | Raspberry Pi |
| Wejścia/wyjścia 24 V | wbudowane | trzeba zaprojektować | wymaga modułów zewnętrznych |
| Deterministyczny czas reakcji | tak, cykl ms | tak, reakcja w µs | nie (Linux) |
| Szybkie impulsy (np. silnik krokowy) | wyjścia PTO, zwykle do 100 kHz | setki kHz, pełna kontrola | niezalecane |
| Obliczenia, wizja, bazy danych | ograniczone | ograniczone | bardzo dobre |
| Koszt jednostkowy sprzętu | najwyższy | najniższy | niski |
| Koszt i czas opracowania | niski | najwyższy (projekt płytki + firmware) | średni |
| Serwis przez dział utrzymania ruchu klienta | łatwy (standardowe narzędzia) | wymaga autora oprogramowania | wymaga znajomości Linuksa |
| Dostępność części przez 10+ lat | dobra, z wyraźną polityką wycofań | zależna od układu | ograniczona, zmiany wersji |
Kiedy mikrokontroler sprawdza się lepiej niż PLC?
Mikrokontroler wygrywa wszędzie tam, gdzie liczy się precyzyjne sterowanie czasem, nietypowe interfejsy albo koszt jednostkowy przy kilku lub kilkunastu identycznych urządzeniach. Typowe przykłady to urządzenia pomiarowe, osie pozycjonujące z silnikiem krokowym, czujniki z własną obróbką sygnału, sterowniki podajników czy moduły wejść/wyjść rozproszonych.
Dobrze widać to na przykładzie typowej osi pozycjonującej z silnikiem krokowym. Driver silnika sterowany jest w trybie PUL/DIR (impuls i kierunek): każdy impuls to jeden mikrokrok, a jego częstotliwość wyznacza prędkość. Przy silniku 200 kroków na obrót i podziale mikrokrokowym 1/8 potrzeba 1600 impulsów na obrót, więc przy 600 obr./min driver musi dostać 16 kHz, a rampy przyspieszania i hamowania trzeba generować z dokładnością co do impulsu, żeby silnik nie gubił kroków. Mikrokontroler robi to sprzętowym licznikiem, bez obciążania programu. Jeśli oś ma znać położenie od razu po włączeniu, bez bazowania, dokłada się enkoder absolutny, często z interfejsem SSI (Synchronous Serial Interface). Odczyt SSI to kilkadziesiąt taktów zegara w ściśle określonym czasie – w mikrokontrolerze to kilkanaście linii kodu, a w typowym PLC wymaga dodatkowego modułu.
Przy decyzji o mikrokontrolerze trzeba jednak uczciwie policzyć koszt. Projekt płytki, prototyp, testy odporności na zakłócenia i napisanie firmware’u to zwykle od kilku do kilkunastu dni pracy inżynierskiej. Przy jednej maszynie taniej wychodzi mały PLC w cenie od kilkuset złotych, przy serii 10–50 urządzeń własna elektronika zaczyna się zwracać. Drugi koszt jest ukryty: po stronie klienta nikt nie zmieni programu w C bez kodu źródłowego i narzędzi, dlatego przekazujemy repozytorium z kodem, schematy i instrukcję wgrywania firmware’u razem z dokumentacją maszyny.
Z doświadczenia wynika też kilka zasad projektowania elektroniki na mikrokontrolerze do pracy w maszynie:
- wejścia 24 V zawsze przez optoizolację lub dzielnik z filtrem, nigdy bezpośrednio do nóżki układu,
- sprzętowy watchdog i detekcja spadku napięcia (brown-out) włączone – zawieszony program nie może zostawić wyjścia w stanie aktywnym,
- stan bezpieczny wyjść po resecie zdefiniowany sprzętowo, np. rezystorami ściągającymi,
- złącza rozłączne i opisane, bo maszynę będzie serwisował ktoś, kto nie widział schematu.
Do czego w maszynie nadaje się Raspberry Pi, a do czego nie?
Raspberry Pi nie powinien bezpośrednio sterować siłownikami ani napędami. Brak czasu rzeczywistego, karta microSD wrażliwa na zanik zasilania i wyprowadzenia 3,3 V bez zabezpieczeń sprawiają, że w roli głównego sterownika maszyny jest to rozwiązanie kruche. Doskonale sprawdza się natomiast jako warstwa nad sterowaniem: tam, gdzie potrzebna jest moc obliczeniowa, sieć i system operacyjny.
Typowe zadania, które w naszych maszynach realizuje Raspberry Pi lub komputer przemysłowy:
- przetwarzanie obrazu z kamery (np. biblioteka OpenCV) i przekazanie wyniku OK/NOK do sterowania,
- zbieranie danych z maszyny, ich archiwizacja i wysyłanie do systemów nadrzędnych (np. protokołem MQTT),
- zdalny dostęp serwisowy przez VPN – opisaliśmy to w artykule o zdalnym programowaniu maszyn,
- interfejs operatora w przeglądarce, raporty, receptury.
Przykładem podziału zadań jest stanowisko kontroli orientacji złączek, nad którym obecnie pracujemy. Detale przesuwają się po obrzeżu obrotowego talerza, kamera przemysłowa obserwuje kilka z nich jednocześnie, a program w Pythonie z OpenCV rozpoznaje, czy detal leży we właściwej pozycji. Wynik trafia do przemysłowego modułu wejść/wyjść z interfejsem Modbus, z którym komputer komunikuje się bezpośrednio protokołem Modbus RTU – bez pośredniego sterownika. Przy detalu NOK moduł ustawia wyjście, które uruchamia dalszą reakcję maszyny. Komputer odpowiada za rozpoznawanie obrazu, moduł wejść/wyjść za styk ze światem 24 V.
Jeśli Raspberry Pi ma pracować w szafie sterowniczej, warto sięgnąć po wersje przemysłowe: moduły Compute Module z pamięcią eMMC zamiast karty SD, obudowy na szynę DIN z zasilaniem 24 V i izolowanymi wejściami, a także gotowe sterowniki oparte na Raspberry Pi lub Arduino, które mają deklarowaną zgodność z normami dla sterowników. System plików najlepiej ustawić w trybie tylko do odczytu, a dane zapisywać na osobnej partycji lub przez sieć – wtedy nagłe wyłączenie zasilania nie uszkodzi systemu.
Kiedy PLC jest jedynym rozsądnym wyborem i jak łączyć te rozwiązania?
Sterownik PLC wybieramy zawsze, gdy maszyna trafia do zakładu produkcyjnego z własnym działem utrzymania ruchu, ma kilkadziesiąt lub więcej wejść i wyjść, współpracuje z innymi maszynami linii albo ma pracować kilkanaście lat. Elektryk klienta podłączy się do PLC standardowym oprogramowaniem, zobaczy stany wejść na żywo i znajdzie uszkodzony czujnik bez telefonu do nas. Tego samego nie da się powiedzieć o firmware’ze w C. PLC ułatwia też integrację z panelami HMI (Human-Machine Interface – panel operatorski), napędami i systemami nadrzędnymi przez PROFINET, EtherNet/IP czy Modbus TCP. Więcej o tym, dlaczego program PLC warto pisać z myślą o przyszłym serwisie, piszemy w tekście o programowaniu sterowników maszyn.
Jedna zasada nie zależy od wybranej platformy: funkcje bezpieczeństwa nie mogą być realizowane w zwykłym oprogramowaniu. Zatrzymanie awaryjne, kurtyny świetlne czy blokady osłon obsługuje przekaźnik bezpieczeństwa albo sterownik bezpieczeństwa z odpowiednim poziomem zapewnienia bezpieczeństwa PL (Performance Level) według normy PN-EN ISO 13849-1. Ani PLC standardowy, ani mikrokontroler, ani Raspberry Pi nie są do tego przeznaczone – mogą jedynie odczytywać stan układu bezpieczeństwa i wyświetlać komunikat.
W praktyce najlepiej sprawdza się architektura mieszana, w której każde urządzenie robi to, w czym jest najlepsze:
- PLC prowadzi sekwencję maszyny i komunikuje się z operatorem,
- mikrokontroler lub dedykowany driver realizuje szybkie zadania: generowanie impulsów, odczyt enkodera, akwizycję pomiaru,
- Raspberry Pi lub komputer przemysłowy odpowiada za wizję, dane i zdalny dostęp,
- przekaźnik lub sterownik bezpieczeństwa odpowiada za funkcje bezpieczeństwa.
Łącznikiem jest protokół komunikacyjny – najczęściej Modbus RTU po RS-485 między mikrokontrolerem a nadrzędnym sterownikiem oraz Modbus TCP lub MQTT po Ethernecie między PLC a komputerem. Przy takim podziale awaria komputera nie zatrzymuje maszyny, a moduł z mikrokontrolerem można wymienić bez zmian w programie PLC, o ile zachowa tę samą mapę rejestrów.
Przy budowie maszyn prototypowych częściej zaczynamy od mikrokontrolera lub Raspberry Pi, bo pozwalają szybko sprawdzić koncepcję i zmieniać ją z dnia na dzień. Gdy prototyp przechodzi w maszynę produkcyjną, część logiki zwykle przenosimy do PLC, a mikrokontroler zostaje tam, gdzie daje przewagę. Ten etap opisujemy na stronie o budowie maszyn prototypowych.
Najczęściej zadawane pytania
Czy Arduino lub Raspberry Pi można stosować w maszynach przemysłowych?
Można, ale nie w wersji hobbystycznej podłączonej bezpośrednio do czujników 24 V. Potrzebne są moduły z izolowanymi wejściami, odpowiednie zasilanie, obudowa na szynę DIN i zabezpieczenie przed zakłóceniami. Dostępne są też gotowe sterowniki przemysłowe oparte na tych platformach. Funkcji bezpieczeństwa w żadnym wypadku nie realizuje się na tych urządzeniach.
Czy maszyna sterowana mikrokontrolerem może mieć oznakowanie CE?
Tak. Rozporządzenie maszynowe i dyrektywy nie wymagają stosowania PLC. Trzeba natomiast wykazać zgodność elektroniki z wymaganiami kompatybilności elektromagnetycznej i bezpieczeństwa elektrycznego, a funkcje bezpieczeństwa zrealizować na certyfikowanych komponentach, zgodnie z oceną ryzyka.
Jak serwisować maszynę z własnym firmware’em, jeśli producent przestanie działać?
Klient powinien otrzymać kod źródłowy, schematy elektroniki, listę elementów i instrukcję wgrywania oprogramowania. Przy takiej dokumentacji każdy programista systemów wbudowanych jest w stanie wprowadzić zmiany. Warto to zapisać w umowie na budowę maszyny.
Od ilu sztuk opłaca się własna elektronika zamiast PLC?
Nie ma jednej granicy, ale przy jednej maszynie PLC prawie zawsze wychodzi taniej, bo koszt opracowania płytki i firmware’u przewyższa różnicę w cenie sprzętu. Własna elektronika zaczyna się opłacać przy seriach od kilkunastu sztuk albo wtedy, gdy wymagania czasowe, rozmiar lub nietypowe interfejsy wykluczają standardowy sterownik.






