Przemysł 4.0 w praktyce - Modbus w chmurze

| Prezentacje firmowe

Przemysł 4.0, IIoT i rozwiązania chmurowe to obecnie bardzo popularne frazy w świecie przemysłu jak i IT. Hasła te przez wielu są interpretowane jako czysty marketing i wymyślanie koła na nowo, jednak nic bardziej mylnego. Obecnie dostępne są innowacyjne narzędzia i infrastruktura, które razem tworzą synergiczne połączenie, łatwiejsze do wdrożenie niż kiedykolwiek.

Przemysł 4.0 w praktyce - Modbus w chmurze

OPIS TOPOLOGII

 
Fot. 1. Komputer UC-8112

W przeszłości istniały podobne urządzenia i usługi, i można było tworzyć podobne aplikacje do tych dzisiejszych, jednak było to znacznie trudniejsze i bardziej kosztowne niż dziś. Obecnie tworzenie rozwiązań i usług w chmurze jest najtańsze i najprostsze w historii, co jeszcze bardziej zwiększa powszechność usług i produktów z zakresu IIoT i przemysłu 4.0.

Obecnie uruchomienie dedykowanego serwera bądź maszyny wirtualnej pod naszą aplikację u najpopularniejszych dostawców chmurowych takich jak: AWS, Azure lub Google Cloud platform wymaga od użytkownika tylko "wyklikania" konfiguracji. Ponadto, dostawcy udostępniają coraz więcej usług pracujących bez serwera (serverless), to znaczy że dostawca dostarcza jedynie wąską funkcjonalność z której korzysta użytkownik zajmując się wszystkim co dzieje się pod maską.

Oznacza to że użytkownik nie musi zajmować się konfiguracją i utrzymaniem serwerów, i może skupić się nad samą funkcjonalnością. Jedną z takich usług jest tzw. IoT Core od AWS, który jest gotowym brokerem protokołu MQTT. W artykule tym opiszę integrację oprogramowania ThingsPro na komputerze UC-8112-LX firmy Moxa, właśnie z usługą AWS IoT Core, oraz dalsze przetwarzanie danych.

Oprogramowanie ThingsPro posiada funkcje zbierania danych z urządzeń Modbus RTU/TCP, więc niskim kosztem i nakładem sił można zbudować rozwiązanie do odczytu danych z urządzeń używających protokołu Modbus, takich jaki liczniki energii, liczniki mediów, czujniki ciśnienia, dataloggery itp., i eksportować takie dane do chmury, np. w celu archiwizacji, dalszej analizy czy wizualizacji.

THINGSPRO

 
Rys. 1. Opisywana topologia ThingsPro + usługi AWS

Jest to oprogramowanie firmy Moxa które można zainstalować na komputerze UC-8112 tego samego producenta. Jego główną funkcją jest możliwość automatycznego odpytywania urządzeń Modbus RTU lub TCP Slave, oraz udostępnianie bądź wysyłanie tych danych dalej. Komputer ten może te dane udostępniać za pomocą interfejsu RESTful API znanym ze świata IT, oraz za pomocą Modbus TCP jako slave.

Jeśli chodzi o dalsze przesyłanie takich danych to oprogramowanie to posiada zaimplementowanego klienta AWS IoT, ogólnego klienta MQTT oraz klienta Sparkplug, a konfiguracja odbywa się przez przeglądarkę. Przesyłanie i udostępnianie danych Modbus nigdy nie było tak proste i intuicyjne.

Komputer UC-8112-LX można wyposażyć w moduł HSPA lub LTE dzięki czemu może wysyłać dane, np. pomiarowe i diagnostyczne z farmy wiatrowej gdzie nie ma przewodowego dostępu do sieci WAN, umożliwiając jednocześnie zdalny dostęp za pomocą szyfrowanego połączenia OpenVPN.

Sama konfiguracja jest intuicyjna, na początku należy ustawić interfejs sieciowy i dodać szablon odczytywanych rejestrów Modbus. Następnym krokiem jest dodanie adresów i portów hostów z których dane będą odczytywane (w przypadku Modbus TCP), lub skonfigurowania portów szeregowych dla Modbus RTU. Na końcu można sprawdzić czy konfiguracja jest poprawna klikając "TEST" w ustawieniach interfejsu Modbus.

Jeśli użytkownik chce wysyłać dane do chmury AWS to wystarczy że skonfiguruje klienta AWS IoT, oraz doda "Rzecz" w konsoli AWS IoT. Po dodaniu wystarczy pobrać 2 certyfikaty, klucz, topic, adres endpoint, port i wprowadzić oraz zaimportować te dane w konsoli ThingsPro. Jeśli użytkownik nie popełnił nigdzie błędu to od teraz przy każdej zmianie wartości rejestru Modbus wartość ta będzie wysyłana do AWS IoT protokołem MQTT, oczywiście komputer musi mieć dostęp do Internetu, komórkowo lub przez Ethernet.

AWS IOT CORE

 
Rys. 2. ThingsPro o oprogramowanie instalowane na komputerach UC-8112-LX firmy Moxa.

To usługa świadczona na zasadzie SaaS czyli oprogramowanie jako usługa. Użytkownik nie martwi się o serwery na których świadczona jest ta usługa oraz o budowę i utrzymywanie świadczonego oprogramowania. Jest to tak naprawdę broker protokołu MQTT, czyli serwer z którym łączą się klienci aby wysyłać lub odbierać dane. Do założenia konta w AWS wystarczy karta kredytowa i 15 minut wolnego czasu.

Przez pierwszy rok od założenia konta można testować większość usług za darmo, w pewnych limitach. Ceny standardowe za usługi nie są też zbyt wygórowane, np. jeśli do AWS IoT 5 komputerów UC-8112-LX będzie wysyłać jedną wiadomość o wielkości 274 bajtów co 1 minutę, a każda z takich wiadomości wywoła jedną akcję, to wtedy miesięczny koszt usługi IoT core wyniesie około 1 $.

Jeśli każda taka wiadomość będzie uruchamiała akcję, np. funkcję lambda to wtedy w przypadku stosunkowo prostej funkcji trwającej 500 ms i alokującej 320 MB pamięci RAM koszt usługi Lambda wyniesie również około 1 $ miesięcznie. Jeśli na koniec użytkownik chciałby zapisywać te dane w usłudze S3 (dysk chmurowy) właśnie za pośrednictwem funkcji w usłudze Lambda to wtedy na koszt S3 składało by się: 0,0245$ za 1 GB przechowywanych danych miesięcznie oraz 1,2 $ za wszystkie akcję zapisu.

Łatwo policzyć że miesięczny całkowity koszt tych usług wyniesie około 3,3 $ w przypadku jeśli w S3 przechowywane było by maks. 4GB danych, czyli około 11,22 zł (3,4 zł/dolar). Jak widać jest to niska kwota biorąc po uwagę funkcjonalność jaką się zyskuje.

PODSUMOWANIE

 
Rys. 3. Wygląd wiadomości przesyłanych od UC-8112 do AWS IoT core we wbudowanym kliencie MQTT w konsolę AWS

UC-8112 + oprogramowanie ThingsPro + usługi Chmurowe tworzą bardzo ciekawą synergiczną mieszankę, która umożliwia tworzenie nowoczesnych aplikacji w myśl idei przemysłu 4.0 i IIoT. ThingsPro umożliwia wysyłanie danych z sieci przemysłowych do dostawców chmurowych, a tam dalszą ich obróbkę, przetwarzanie, wizualizowanie, wysyłanie powiadomień email/sms, uczenie maszynowe, przechowywanie, wizualizowanie, upublicznianie i wiele więcej.

Jeśli nawet z jakichś przyczyn użytkownik chce tylko przechowywać dane w S3 AWS, a korzystać z usług innego dostawcy, np. hostingu, to również nie ma problemu aby takie dane odczytywać za pomocą dostarczanych api i sdk Amazona. Możliwości jest wiele, dlatego ThingsPro jest bardzo elastycznym rozwiązaniem do łączenia danych z sieci przemysłowych z usługami chmurowymi i innymi aplikacjami.

Piotr Gocłowski
Elmark Automatyka