Protokół MQTT w sterownikach i panelach operatorskich TP600 Control Panel
Obserwując aktualnie rozwijane projekty można zauważyć, że zagadnienia zbierania i bezpiecznego przesyłania danych z rozproszonych instalacji, bezpiecznej agregacji danych i ich późniejszej analizy w celu tworzenia wartości w oparciu o korelację informacji z wykorzystaniem technologii „chmury” w automatyce zyskuje coraz większe zainteresowanie.
W WAGO nad zagadnieniami internetu rzeczy, komunikacją obiektową, interfejsem użytkownika dla aplikacji webowych pracuje własna spółka software’owa M&M Software
(https://www.mm-software.com/en/). Komplet prac nad sprzętem i oprogramowaniem „pod jednym dachem” to zawsze sprawniejszy rozwój produktu i długofalowe, skoordynowane (software i hardware) działanie w kierunku łatwiejszej integracji i coraz lepszych funkcjonalności dostępnych dla nas, użytkowników.
Efektem prac nad zagadnieniami IoT, Industry 4.0 są dostępne „od ręki” funkcjonalności, które mogą zostać wykorzystane do wsparcia nowych zamierzeń biznesowych przedsiębiorstw i – co za tym idzie – nowych wyzwań podejmowanych przez automatyków.
Jakie więc mechanizmy IoT są dostępne w sterownikach PLC WAGO?
WAGO I/O System był i jest narzędziem do sprawnego przetwarzania danych i kontroli pracy obiektów, docenianym przez użytkowników między innymi za elastyczność. Wraz z wdrożeniem obsługi protokołu MQTT w sterownikach z rodziny PFC100 i PFC200 oraz panelach TP600 Control Panel użytkownik zyskał dodatkową możliwość – sterownik stał się bramką IoT dla „tradycyjnych” urządzeń obiektowych (czujników, elementów wykonawczych) oraz zmiennych wypracowanych przez algorytm w sterowniku.
Protokół MQTT stał się – obok Modbus i OPC UA – kolejnym natywnym protokołem w sterownikach PFC WAGO.
W praktyce z wykorzystaniem protokołu MQTT dane mogą być udostępniane do dowolnej chmury i/lub lokalnego brokera.
Konfiguracja komunikacji z wykorzystaniem MQTT – czyli jak podłączyć sterownik do chmury?
Z poziomu samego sterownika/panelu zadanie to ułatwia strona konfiguracyjna WWW sterownika (WBM). Przy jej użyciu:
- podajemy nazwę lub adres IP wybranej chmury,
- wskazujemy identyfikator urządzenia w chmurze (device ID),
- wprowadzamy klucz aktywacyjny dla danej chmury,
- włączamy szyfrowanie (TLS),
- definiujemy port, przy użyciu którego będziemy prowadzić komunikację,
- wprowadzamy certyfikat (CA file) umożlwiający utworzenie szyfrowanego połączenia,
- wprowadzamy nazwę użytkownika umożliwiającą autentykację przy korzystaniu z usług w chmurze.
Poniżej ilustracja – strona WBM sterownika z wbudowanym modemem GSM – sterownik konfigurowany do łączności z chmurą SAP:
Zagadnienie konfiguracji szczegółowo rozwija nota aplikacyjna (do pobrania tutaj https://www.wago.com/pl/d/15718). Wyjaśnia ona, jak sterowniki WAGO mogą się komunikować z usługami w chmurze, np. Microsoft Azure, Amazon AWS, IBM Blumix.
Jakie mechanizmy/biblioteki mogą zostać użyte w programie sterownika?
W poprzednim akapicie przedstawiona została w pewnym sensie konfiguracja sprzętowa sterownika do pracy w chmurze. Dalej opiszę mechanizmy wykorzystywane do tego, by nasza aplikacja na sterownik PLC dodatkowo wymieniała dane z chmurą.
Protokół MQTT oparty jest o model publish/subscribe (opublikuj/subskrybuj). W takiej architekturze każdy sterownik PFC WAGO (lub panel TP600 Control Panel) będący uczestnikiem sieci i korzystający z protokołu MQTT działa jako klient. Może zarówno publikować (nadawać) dane, jak również je subskrybować (odbierać). Dane zorganizowane są w tzw. tematy (topics). Ich wymiana następuje za pośrednictwem brokera MQTT, który jest najczęściej usługą w chmurze. Broker przekierowuje otrzymywane dane do wszystkich klientów, którzy subskrybują dany temat.
Wymianę danych ze sterowników lub paneli TP 600 Control Panel znacząco ułatwia gotowa, biblioteka WagoAppCloud (opis biblioteki: https://www.wago.com/pl/d/15957), która standardowo dostępna jest dla użytkowników oprogramowania narzędziowego e!COCKPIT.
Biblioteka pozwala zorganizować stany wejść/wyjść i zmienne procesowe w kolekcje danych, które następnie są wymieniane przy użyciu protokołu MQTT za pośrednictwem brokera w chmurze. Biblioteka umożliwia także zarządzanie tym, jak często chcemy publikować lub odczytywać dane w chmurze. Pozwala więc optymalizować wyminę danych.
Przykład bloków funkcyjnych z biblioteki WagoAppCloud:
tekst: Mariusz Pacan, WAGO.PL
Czytaj dalej:
- MQTT, WAGO Cloud – dane z obiektu na wyciągnięcie ręki cz. 2 Funkcjonalności WAGO Cloud – chmura dla aplikacji automatyki
- MQTT, WAGO Cloud – dane z obiektu na wyciągnięcie ręki cz. 3: Chmura i koszty utrzymania aplikacji
Witam! O ile publikowanie działa bez problem to nie mogę sobię poradzić z subskrypcją danego topic’a. Połączenie z brokerem MQTT jest bo publikowanei działa bez problemu jednak pomimo wielu prob nie jestem w stanie pobrać żadnej wiadomości która jest publikowana na dany topic.
Jeśli pojawiają się problemy techniczne, zapraszam serdecznie do kontaktu email: wsparcie.techniczne@wago.com, sprawa od razu trafia do wsparcia technicznego i możemy odpowiedzieć natychmiast.
Błedy w komunikacji MQTT są zapisywane w logu na sterowniku do pliku: /var/log/messages
Może Pan je podejrzeć łącząc się ze sterownikiem np przy użyciu klienta FTP (filezilla/totalcommander etc)
Jeśli komunikaty nie będą jasne, to proszę wysłać log mailem na adres wsparcia technicznego.
Innym sposobem jest sprawdzenie subskrypcji z poziomu linuksa. Wystarczy połączyć się z konsolą za pomocą programu PUTTY, a następnie wpisać komendę:
mosquitto_sub -L mqtt(s)://[username[:password]@]host[:port]/# -d
„mosquitto_sub” pozwala na połączenie się z brokerem z pomienięciem „Cloud Connectivity”, czyli połączenia konfigurowanego przez stronę WBM sterownika. Argument „-d” wyświetla dodatkowe komunikaty, co pozwala na określenie przyczyn nieprawidłowej komunikacji.