Skip to main content

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:

O autorze

Kamil Biedulski

Author Kamil Biedulski

Automatyk i programista, CTO w ControlByte

Więcej postów tego autora Kamil Biedulski