Strona główna ASTOR

Jak wykorzystać protokół MQTT w systemach telemetrii opartych o aplikacje SCADA?

Kontakt w sprawie artykułu: Marcin Woźniczka - 2019-06-26

Z tego artykułu dowiesz się:

  • Jak skonfigurować połączenie do programu komunikacyjnego w InTouch
  • Jak odczytywać publikowane dane w Wonderware InTouch
  • Jak wykorzystać IIoT do odczytania danych z rozproszonego systemu

Jesteś projektantem lub wykonawcą systemu telemetrii? Borykasz się z doborem dedykowanych rozwiązań do transmisji danych? Każde nowe urządzenie w systemie wymaga osobnych protokołów – przez to mnoży się liczba i różnorodność programów komunikacyjnych, za pomocą których uzyskujesz dane do systemu SCADA. Można to zmienić.

Wykorzystaj protokół MQTT, aby skomunikować system wizualizacji z rozproszonym systemem sterowania lub monitoringu.

W poniższym artykule dowiesz się, w jaki sposób wykorzystać protokół MQTT w systemach telemetrii opartych o aplikacje SCADA na przykładzie oprogramowania Wonderware InTouch (do gromadzenia danych) oraz programów komunikacyjnych Wonderware OI Server (do udostępniania danych z systemu sterowania).

Co będzie potrzebne, aby uzyskać lub udostępnić dane w protokole MQTT:

Dostęp do Internetu :

Komunikacja opiera się na infrastrukturze sieci Internet. Końcówki rozproszonego systemu – czyli nadawca udostępniający dane oraz ich odbiorca – muszą mieć dostęp do sieci Internet, ale niekoniecznie wykorzystując publiczne adresy IP. Oznacza to, że zarówno nadawca, jak i odbiorca mogą być zlokalizowani za routerami np. w sieciach typu NAT, które udostępniają Internet większej ilości urządzeń, komputerom i użytkownikom oraz chronią ich przed potencjalnymi zagrożeniami od strony Internetu.

Komunikacja z wykorzystaniem protokołu MQTT wykorzystuje jeszcze element pośredniczący w komunikacji, a mianowicie broker MQTT (o jego funkcji można przeczytać we wspomnianym wcześniej poradniku). Broker MQTT musi być dostępny pod publicznym adresem w Internecie, widzianym i rozpoznawanym po adresie IP lub nazwie przez nadawcę, jak i odbiorcę danych protokołu MQTT.

Programy komunikacyjne pozwalające na wysyłanie i odbieranie danych po protokole MQTT:

W przypadku oprogramowania Wonderware będzie to OI Gateway (konwerter protokołów Suitelink, OPC, OPC UA, MQTT). Do zainstalowania go potrzebne będzie jeszcze zainstalowanie OI Core (więcej o programach komunikacyjnych OI Servers znajdziesz w poradniku „Jak poprawić stabilność oraz szybkość komunikacji między systemem SCADA, a układem sterowania?”.

Oprogramowanie SCADA do wizualizacji – Wonderware InTouch:

MQTT Broker jest usługą, która może być utrzymywana w ramach własnej infrastruktury IT (oprogramowanie zainstalowane np. na systemie Linux, odpowiednio skonfigurowany ruch sieciowy na routerach, certyfikaty pozwalające szyfrować komunikację) lub zakupiony jako komercyjna usługa w chmurze. Takie usługi można wykupić np. w chmurze Microsoft Azure czy w chmurze Amazon (AWS). Stosując ten protokół na produkcji, należy zadbać szczególnie o kwestię bezpieczeństwa transmisji, korzystając z szyfrowanej komunikacji z wykorzystaniem wiarygodnych certyfikatów oraz zabezpieczeniach na dostępie do danych (odczyt i ich modyfikacja), stosując zdefiniowanych użytkowników wraz z hasłem.

Na potrzeby testów i tylko testów, w ASTOR uruchomiony został broker w wersji otwartej, nieszyfrowanej, bez uwzględnienia użytkowników. Oznacza to, ze każdy może być publisherem danych, każdy te dane może odczytać, każdy te dane może zmienić, a sama transmisja danych odbywa się w sposób jawny i nieszyfrowany.

Jak odczytywać publikowane dane w Wonderware InTouch

W celu pokazania, jak w Wonderware InTouch odczytywać dane po protokole MQTT, posłużymy się danymi z systemu BMS w siedzibie firmy ASTOR – konkretnie chodzi o moc chwilową pobieraną przez budynek ASTOR w Krakowie.

W konsoli SMC, gdzie zainstalowany jest OI Gateway, rozwiń gałąź programów komunikacyjnych OI Servers i na poziomie gałęzi OI.Gateway.2 / Configuration wybierz z menu kontekstowego Add MQTT_BROKER Connection, tworząc nowe połączenie i nadając mu nazwę (nazwa będzie potrzebna do konfiguracji połączenia w InTouch).


Definicja połączenia do brokera MQTT

Po definicji połączenia wskaż adres brokera, ewentualnie numer portu, na którym broker nasłuchuje, a następnie waliduj połączenie. W tym miejscu określ poziom szyfrowania i zaimplementuj certyfikaty bezpieczeństwa.

Na potrzeby testów możesz skorzystać z ogólnodostępnego i otwartego brokera ASTOR (wspomnianego wyżej), podając jego adres mqtt.astor.com.pl, pozostawiając domyślny numer portu 1883 bez załączonego szyfrowania, a następnie wybrać Validate Address and Port.


Konfiguracja połączenia

Następnie na utworzonym połączeniu z menu kontekstowego wybierz Add MQTTGroup Connection tworząc grupę i nadaj jej nazwę (ta nazwa też będzie potrzebna do połączenia z InTouch).


Definiowanie grupy połączeń MQTT

W oknie zdefiniowanej grupy połączeń MQTT można konfigurować kwestie dostępu do danych używając nazwy użytkownika oraz hasła, a także sposób zachowania się OI Gateway’a w przypadku konieczności buforowania danych wysyłanych do chmury.

Z punktu widzenia konfiguracji najważniejsze jest pole Device Group Name. Jest to złożona nazwa dostępowa dla InTouch’a, składająca się z nazwy połączenia oraz nazwy grupy połączeń definiowanych poprzednio. Nazwę tę użyjemy w programie InTouch.


Nazwa dostępowa dla InTouch

W ostatnim kroku uruchom program OI Gateway, klikając Activate (Auto start after reboot) w menu kontekstowym gałęzi OI.GATEWAY.2.

Jak skonfigurować połączenie do programu komunikacyjnego w InTouch

W aplikacji Wonderware InTouch zdefiniuj połączenie do programu komunikacyjnego OI Gateway – wybierz w menu Special opcję Access Name, a następnie przyciskiem Add utwórz dane połączenie na podstawie zdefiniowanych wcześniej nazw w konsoli SMC.


Definiowanie połączenia w InTouch do programu komunikacyjnego

Access Name to nazwa własna połączenia między InTouch i programem komunikacyjnym. W polu Application Name wpisz nazwę procesu programu komunikacyjnego OI Gateway – Gateway. W polu Topic Name wprowadź nazwę, która powstała z nazwy połączenia MQTT i grupy połączeń MQTT w konsoli SMC – w naszym przypadku będzie to BrokerASTOR_GrupaMQTT (zawartość pola Device Group Name z SMC).

Ostatni etap to definicja zmiennej oraz animacji prezentującej dane. Udostępniany parametr chwilowej mocy z biurowca ASTOR Technology Park to parametr zmienno-przecinkowy, potrzebujesz więc zdefiniować zmienną typu IO Real w InTouch’u, dowiązać ją do nazwy dostępowej Access Name – w naszym przypadku MQTT oraz nadać jej adres wg nomenklatury MQTT. Adres, pod jakim udostępniamy chwilową moc z budynku ASTOR Technology Park, to ASTORBMS/ActivePower.


Definiowanie zmiennej w InTouch

W ten sposób odczytujemy dane z rozproszonego systemu, korzystając z przemysłowego Internetu rzeczy (Industrial Internet of Things) i jego protokołu MQTT.


Dane MQTT prezentowane w InTouch

Obsługa protokołu MQTT jest wbudowana w program komunikacyjny OI Gateway i działa na tych samych zasadach licencyjnych, jak pozostałe programy komunikacyjne OI Servers (licencje Wonderware InTouch z IO, Wonderware Historian czy Platforma Systemowa Wonderware).

W następnym numerze przeczytasz artykuł „Jak udostępnić dane ze sterownika PLC do systemu SCADA korzystając z protokołu MQTT?”.

Czy ten artykuł był dla Ciebie przydatny?

Średnia ocena artykułu: 5 / 5. Ilość ocen: 5

Ten artykuł nie był jeszcze oceniony.

Zadaj pytanie

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *