Przemysłowy IoT (IIoT) i Edge Computing

Industry 4.0 na PLCnext - OPC UA, MQTT, Node-RED i Python na jednym sterowniku

mgr inż. Kamil Biedulski 6 min czytania

Nowoczesny sterownik to nie tylko sterowanie - to także dane. W tym wpisie pokażę cztery scenariusze Industry 4.0 na PLCnext: jak udostępnić dane produkcyjne paletyzatora przez OPC UA i MQTT, przetworzyć je w Node-RED i wygenerować raport PDF skryptem w Pythonie - wszystko lokalnie, na jednym sterowniku PLCnext Control, bez chmury i bez dodatkowego komputera.

To czwarta i ostatnia część serii o programowaniu sterowników Phoenix Contact. Wcześniej omówiliśmy start z PLCnext, konfigurację AXC F 2152 oraz programowanie w języku LAD z Factory IO.

Całość zobaczysz na wideo z lekcji minikursu:

Po co udostępniać dane ze sterownika?

Klient nie chce już samego systemu sterowania - chce zbierać i analizować dane, przewidywać awarie i integrować maszyny od różnych dostawców. Nasz paletyzator generuje cenne dane produkcyjne: wskaźnik OEE, liczniki palet i paczek, czasy pracy. Twoim zadaniem jako automatyka jest te dane udostępnić i zapisać. Dzięki temu, że PLCnext to platforma Linux z konteneryzacją, robisz to natywnie - bez gateway'ów i warstw pośrednich.

Scenariusz 1 - OPC UA: serwer wprost na sterowniku

OPC UA to przemysłowy standard wymiany danych w Industry 4.0. PLCnext ma serwer OPC UA wbudowany - domyślnie aktywny na porcie 4840. Włączasz go w Web Based Management (System Services) lub konfigurujesz w projekcie (zakładka OPC UA), wybierając widoczność zmiennych (None / Marked / All).

Do serwera podłączysz wielu klientów jednocześnie: oprogramowanie UaExpert (do szybkiej weryfikacji danych), aplikację Node-RED oraz system SCADA z dashboardem dla operatora. Przez UaExpert łączysz się z endpointem opc.tcp i odczytujesz zmienne (np. dane ostatniej zmiany z gałęzi Arp.Plc.Eclr).

Ważne: w demonstracji łączymy się bez szyfrowania, ale w produkcji zawsze włącz Sign & Encrypt oraz wymianę certyfikatów.

Scenariusz 2 - MQTT: publisher danych paletyzatora

MQTT to lekki protokół typu publish/subscribe, idealny do telemetrii i komunikacji z chmurą. Na PLCnext wykorzystujemy bibliotekę Industrial IoT (IIoT) Library, którą pobierasz bezpłatnie z PLCnext Store.

Po dodaniu biblioteki implementujesz klienta MQTT (blok IIoT_MQTT_Client z funkcjami connect / subscribe / publish), a strukturę zmiennych z PLC zamieniasz na tekst JSON blokiem IIoT_JSON_Writer. Sterownik publikuje dane na temat (topic), a broker MQTT - np. uruchomiony w Node-RED - odbiera pięknie sformatowany JSON z danymi ostatniej zmiany pracy paletyzatora.

Scenariusz 3 - Node-RED w kontenerze na sterowniku

PLCnext Control to nie tylko PLC - to platforma Linux z silnikiem kontenerów. Node-RED uruchamiasz jako aplikację z PLCnext Store, w kontenerze, bezpośrednio na sterowniku (domyślnie port 51880). Wbudowany PLCnext Connector pobiera dane ze sterownika w czasie rzeczywistym przez REST API.

Node-RED to narzędzie low-code do integracji i automatyzacji przepływów danych. Prosty flow: trigger co sekundę → odczyt wybranych zmiennych z PLC → dalsze przetwarzanie. Dane zapiszesz w dowolnym formacie:

  • pliku CSV lub JSON,
  • bazie szeregów czasowych InfluxDB,
  • bazie SQL (MySQL / MariaDB),
  • chmurze (np. Proficloud.io).

W efekcie ze sterownika tworzysz pełnoprawny węzeł edge: pomiar, przetwarzanie, archiwizacja i przesyłanie danych w jednym urządzeniu.

Scenariusz 4 - Python: raport PDF prosto z PLC

Najbardziej zaawansowany scenariusz pokazuje, że PLCnext to pełnoprawny komputer przemysłowy z Linuksem - możesz na nim uruchomić własny kod w Pythonie. Skrypt (np. PDF_Report.py) działa natywnie na sterowniku, łączy się z runtime przez REST API i jednym wywołaniem czyta całą strukturę OEE ostatniej zmiany: wszystkie KPI, liczniki i czasy pracy.

Skrypt generuje raport PDF (wskaźniki, liczniki, czasy zmiany) i zapisuje go na karcie pamięci sterownika. Wisienka na torcie: zapisuje nazwę pliku z powrotem do zmiennej w PLC, dzięki czemu w panelu eHMI pojawia się przycisk „Open Last Shift Report” - operator klika i widzi świeży raport. Skrypt wywołasz z poziomu programu PLC (biblioteka PLCnext, blok Sys Linux Shell) lub według harmonogramu.

To otwiera nieograniczone możliwości: od raportów PDF, przez bazy danych, po uczenie maszynowe - wszystko, co da się napisać w Pythonie, działa lokalnie na sterowniku.

Który scenariusz wybrać do swojego projektu?

Każdy z czterech scenariuszy sprawdza się w innej sytuacji:

  • OPC UA - gdy łączysz sterownik ze SCADA, panelem HMI lub systemem nadrzędnym; uniwersalny most OT - IT.
  • MQTT - gdy wysyłasz telemetrię do chmury lub brokera, także po słabych i zmiennych łączach.
  • Node-RED - gdy chcesz szybko, metodą low-code, zbierać i archiwizować dane lokalnie (CSV, InfluxDB, SQL).
  • Python - gdy potrzebujesz własnej logiki: raportów, analityki czy uczenia maszynowego.

W praktyce scenariusze często łączysz - np. PLC publikuje dane przez OPC UA, Node-RED archiwizuje je w InfluxDB, a Python generuje cykliczny raport zmianowy.

A co z cyberbezpieczeństwem OT?

Udostępnianie danych nie może odbywać się kosztem bezpieczeństwa. PLCnext ma wbudowaną warstwę cyberbezpieczeństwa, a komunikację (OPC UA, MQTT) zabezpieczysz szyfrowaniem i certyfikatami. To istotne w kontekście norm IEC 62443 i dyrektywy NIS2. Gdy wyprowadzasz dane poza halę, warto dołożyć router z firewallem (np. mGuard) i segmentować sieć - zgodnie z dobrymi praktykami OT security.

Dlaczego jeden sterownik wystarczy?

Linux, runtime PLC, silnik kontenerów i warstwa cyberbezpieczeństwa są na pokładzie każdego sterownika PLCnext - out of the box. Dzięki temu jedno urządzenie zastępuje zestaw, w którym dawniej potrzebowałeś osobnego PLC, komputera edge i bramki komunikacyjnej. Wszystkie cztery scenariusze - OPC UA, MQTT, Node-RED i Python - działają lokalnie, bez chmury i bez VPN. To istota platformy PLCnext i fundament nowoczesnej automatyki Industry 4.0.

Najczęstsze pytania (FAQ)

Czy serwer OPC UA jest wbudowany w PLCnext?
Tak - jest domyślnie aktywny na porcie 4840. Wystarczy oznaczyć zmienne jako widoczne dla OPC UA.

Czy Node-RED działa na samym sterowniku?
Tak. Instalujesz go jako kontener z PLCnext Store i otwierasz w przeglądarce pod adresem sterownika, port 51880.

Czy mogę uruchomić Python na PLC?
Tak - natywnie na systemie Linux sterownika lub w kontenerze. Skrypt łączy się z runtime przez REST API.

Czy do tych scenariuszy potrzebuję chmury?
Nie. OPC UA, MQTT, Node-RED i raport PDF w Pythonie działają w całości lokalnie, na jednym sterowniku.

Podsumowanie

Industry 4.0 na PLCnext to nie teoria, lecz cztery praktyczne scenariusze realizowane na jednym urządzeniu: udostępnianie danych przez OPC UA, telemetria MQTT, przetwarzanie w Node-RED i raportowanie w Pythonie. Jeden sterownik łączy świat automatyki (OT) ze światem IT - dokładnie tego oczekuje dziś rynek od inżyniera automatyka.

To koniec naszej serii o programowaniu sterowników PLCnext. Jeśli chcesz przejść całość krok po kroku, z wideo i plikami do pobrania - zapraszam do bezpłatnego minikursu:

Autor mgr inż. Kamil Biedulski

Założyciel ControlByte, programista PLC. 12+ lat w automatyce przemysłowej. Autor kursów Siemens S7-1200/1500 (LAD/FBD, SCL, Safety), komunikacji przemysłowej, serwonapędów i schematów elektrycznych.

Kursy online

Chcesz programować PLC w praktyce?

Kursy Siemens, CODESYS, komunikacji i safety z certyfikatem i wsparciem instruktora. Zacznij od bezpłatnego minikursu.

Zobacz kursy