Do Projektu iAutomatyka dołączyli:

https://iautomatyka.pl/wp-content/uploads/2020/01/iPLC.013.jpeg

AKADEMIA PLC #23 – Protokół MQTT w środowisku UniLogic


Protokół MQTT to ultralekki rodzaj transmisji danych, który możemy wykorzystać w środowisku UniLogic.

MQTT (Message Queueing Telemetry Transport) jest przeznaczone do transmisji o niewielkiej przepustowości. Ograniczenie prędkości pozwala na zwiększenie niezawodności. Obecnie wyżej wymieniony protokół znajduje zastosowanie w aplikacjach typu maszyna-maszyna i IoT. Takie rozwiązanie pozwala na utrzymanie komunikacji bez dużego zużycia energii, która jest istotne w przypadku małych urządzeń bezprzewodowych (tak jak w IoT oraz IIoT).

Zasada działania MQTT

MQTT działa w oparciu o trzy podmioty: Publisher, Broker, Subscriber. Unilogic wspiera wszystkie te funkcje, w związku z tym, sterowniki UniStream mogą w pełni wykorzystać ten protokół.

  • Publisher (publicysta) – wysyła wiadomości z przypisanym tematem do odpowiedniego brokera.
  • Broker (pośrednik) – akceptuje i odbiera wiadomość, przypisuje do tematu, a następnie wysyła do Subscribera.
  • Subscriber (odbiorca) – „śledzi” dany temat, w rezultacie otrzymuje wszystkie wiadomości z nim związane.

Protokół MQTT w środowisku UniLogic

Konfiguracje MQTT rozpoczynamy od wyboru zakładki MQTT z drzewa projektu (PLC Communication > Protocols > MQTT).

Drzewo Projektu

Teraz możemy skonfigurować zarówno Subscribera jak i Publishera. Gdy wybierzemy któryś z nich, UniLogic stworzy automatycznie specjalną strukturę.

MQTT General Struct

  • MQTT Process Status – (UNIT32) – wyświetla status połączenia MQTT, może przybierać jedną z trzech wartości: 0 – inicjalizacja w trakcie, 1 – MQTT w trakcie pracy, oraz 2 – MQTT w trybie pauzy.
  • Number of Brokers – (UNIT16) – wartość oznacza liczbę skonfigurowanych brokerów w sieci.
  • (…) of Subscriptions – (UNIT16) – liczba skonfigurowanych subskrybentów w sieci.
  • (…) Publications – (UNIT16) – liczba skonfigurowanych publikacji

MQTT Statics Struct

Struktura ta ma na celu monitorowanie liczby publikacji. Zapisuje liczbę wysłanych(Send Publications), znanych (Acknowledged Publications), odebranych (Received Publications) oraz porzuconych (Dropped) wiadomości. W rezultacie mamy podgląd na stan komunikacji.

Konfiguracja Połączenia Brokera

Aby umożliwić inicjacje prokotołu MQTT w programie UniLogic, musimy najpierw skonfigurować połączenie z Brokerem. Wybieramy w drzewie projektu Broker Connections i klikamy znanego nam zielonego plusa.

MQTT Broker Connection
  • Name – nazwa przypisana Brokerowi, nie istotna w zapisie protokołu
  • ID – indywidualny numer Brokera, nie ma wpływu oraz znaczenia dla protokołu, wykorzystywany tylko w LD.
  • Mode – tryb adresowania (IP lub .url).
  • Port – domyślnie 1883, jeżeli specyfika aplikacji tego wymaga, możliwa jest zmiana.
  • Clean Session – gdy 0, w przypadku utracenia połączenia z subskrybentem, Broker zapisuje na bieżąco wiadomości, które wyśle po ponownym połączeniu.
  • Client ID – możemy tutaj przypisać konkretne ID, które mogą się połączyć z brokerem
  • Hasło – 8-128 znaków

Tak wygląda podstawowa konfiguracja Brokera protokołu MQTT w środowisku UniLogic.

Struktura Podłączenia Brokera

Po dodaniu Brokera, automatycznie stworzona zostanie struktura.

  • Connection Status – (BIT) – 0 połączony, 1 niepołączony.
  • Session Present – (BIT) – 1 gdy odbywa się sesja.
  • Return Code – (UNIT8) – zwraca nam kod statusu pracy.

Konfiguracja Połączenia Subskrybenta

Konfiguracja subskrybenta pozwala na ustalenie, jakie tematy wiadomości będzie odbierał UniStream. Podobnie jak w przypadku Brokera, musimy zacząć od dodania konfiguracji subskrybenta.

MQTT konfiguracja subskrybenta 
  • Name – nazwa przypisana subskrybentowi, nie istotna w zapisie protokołu.
  • ID – indywidualny numer subskrybenta, nie ma wpływu oraz znaczenia dla protokołu, wykorzystywany tylko w LD.
  • Broker – przypisanie nazwy brokera, z którym ma się komunikować subskrybent.
  • Topic – temat, który subskrybujemy.
  • Data – tag, do którego wiadomość jest zastosowana.
  • Quality of Service – opisuje liczbę przyjmowanych retransmisji.
  • Buffered Mode – załączenie powoduje zapis kolejki otrzymywanych wiadomości
  • Subscribe at Boot Time – załączenie powoduje automatyczną subskrypcje tematu po włączeniu urządzenia

Struktura Subscription

Skład automatyczne generowanej struktury:

  • Subscribed Status – (BIT) – 0 połączony, 1 niepołączony.
  • Message Received (Received bit) – załącza się za każdym razem, gdy przychodzi nowa wiadomość.
  • Queue Full – (BIT) – załącza się gdy kolejka wiadomości jest pełna
  • Last Message in Topic – (String) – przechowuje ostatnią wiadomość
  • Last Message Received Time – zapis daty i godziny ostatniej wiadomości

Konfiguracja Połączenia Publication

Zajmiemy się teraz konfiguracją strony publikującej w protokole MQTT. Podobne do poprzednich formuł, wybieramy z podgałęzi opcje Publication Configuration.

MQTT konfiguracja Publication
  • Name – nazwa przypisana, nie istotna w zapisie protokołu.
  • ID – indywidualny numer Publication, nie ma wpływu oraz znaczenia dla protokołu, wykorzystywany tylko w LD.
  • Broker – przypisanie nazwy brokera z którym ma się komunikować publicysta.
  • Topic – temat, który publikujemy.
  • Data – tag, do którego wiadomość jest zastosowana.
  • Quality of Service – opisuje liczbę przyjmowanych retransmisji.
  • Retain Flag – jeżeli jest załączone, w wypadku gdy subskrybent jest offline, wiadomość zostanie wysłana gdy powróci do online.
  • Format – format wysyłanych danych
  • Every Period – częstotliwość wysyłania publikacji
  • Broker Received – załącza się gdy Broker otrzyma wiadomość

Publikacja nie tworzy struktury po dodaniu

Funkcje MQTT w języku LD

Obsługa protokołu MQTT odbywa się głównie za pośrednictwem języka Ladder. Poniżej przedstawiamy bloki funkcyjne związane z tym protokołem.

MQTT Ladder

Teraz przyjrzymy się najważniejszym funkcjom możliwym do implementacji w języku Ladder.

Subskrypcja Tematów (Topic Subscribe)

Bloki funkcyjne związane z subskrypcją tematów:
Subscribe to Topic

Blok służy do subskrybcji nowego tematu. W terminalu A wpisujemy ID Publikacji do której chcemy się podłączyć, B zwraca nam status subskrypcji.

Subscribe All

Blok pozawala nam na jednoczesną subskrypcje wszystkich tematów danego Brokera. Terminale złącz działają identycznie jak w wyżej wymienionym.
Unsubscribe Topic

Podobnie do bloku Subscribe Topic, do złącza A trafia ID Tematu, a zwracany jest status. Pozwala na zakończenie subskrypcji danego tematu.

Łączność z Brokerem (Broker Connection)

Bloki LD związane z łącznością z Brokerem:

Connect Broker

Blok umożliwia podłączenie Publishera/Subscribera do określonego Brokera. Terminal A służy do podłączenia ID brokera.

Disconnect Broker

W przeciwieństwie do wyżej zaprezentowanego bloku, ten pozwala na odłączenie od brokera wskazanego na wejściu A.

Wcześniej w artykule została opisana procedura konfiguracji połączenia Brokera, Subskrybenta i Publicysty. Teraz opiszemy proces wgrywania wewnętrznych konfiguracji tych podmiotów.

Get/Set Broker Configuration i MQTT Broker Configuration

Ta funkcja wymaga od nas zastosowania specjalnego typu danych: MQTT Broker Configuration. W wyniku zastosowania tej struktury, możemy pobierać i wgrywać konfiguracje brokerów.

Struktura danych MQTT Broker Configuration składa się z najstępujących elementów:

  • IP /URL – wprowadzamy tutaj adres Brokera, któremu chcemy wgrać konfiguracje (adres IP lub .url, w zależności który podaliśmy przy konfiguracji połączenia brokera)
  • Port – port do którego został podpięty Broker
  • Clean Session – zwraca dane z konfiguracji podłaczenia
  • Client ID – umożliwia wprowadzenie ID, które będzie mogło się podłączyć

Set/Set Broker Configuration
Pozwala na wgranie/pobranie stworzonej przez nas struktury do/z Brokera. Do złącza Apodpinamy adres Brokera na którym będziemy pracować, do złącza B strukturę konfiguracji (w naszym przypadku Broker42) którą chcemy wgrać (patrz zdjęcie wyżej).

Get/Set Publication Configuration i MQTT Subscription Configuration.

Podobnie jak w przypadku konfiguracji Brokera, struktura konfiguracyjna publicysty jest dedykowana: MQTT Subscription Configuration. Funkcjonalność terminali bloku jest identyczna jak w MQTT Broker Configuration, jednak struktura konfiguracji się różni:

  • Topic – temat publikacji
  • Quality of Service – zawiera informacje zawarte w pliku QoS
  • Retained Flag – zwraca BIT gdy kolejka jest pełna

Get/Set Subscription Configuration i MQTT Subscription Configuration

Konfiguracja struktury subskrypcji nie powinna nam sprawić problemów, ponieważ wszystkie elementy są analogiczne do MQTT Subscription Configuration.

Podsumowanie

Przedstawione dzisiaj funkcje nie są najprostsze do konfiguracji, ponieważ wymaga od użytkownika konfiguracji wielu parametrów. Protokół MQTT w środowisku UniLogic jest z pewnością ciekawą opcją transmisji, która nie wymaga zewnętrznych rozwiązań. Podsumowując, warto znać podstawową funkcionalność MQTT.

Cały kurs ukazał się pierwotnie na blogu Elmark Sterowniki. Kurs jest również dostępy na na portalu automatyka.pl w zakładce Programowanie PLC.

Zachęcamy do zapoznania się z pozostałymi częściami kursu Akademi PLC Elmark, dzięki którym można poznać inne istotne cechy i funkcje sterowników Unitronics:

  1. Sterowniki Unitronics serii UniStream
  2. Uruchomienie sterownika UniStream i instalacja UniLogic
  3. Konfiguracja sprzętowa sterownika Unitronics UniStream
  4. Typy danych dostępnych w sterownikach UniStream
  5. Tagi i struktury w programie UniLogic
  6. Podstawy tworzenia wizualizacji w UniLogic
  7. UniLogic prosty program przycisk + lampka
  8. Timery dostępne w UniLogic
  9. RTC w sterownikach Unistream
  10. String, czyli tekstowy typ danych
  11. DataSampling i archiwizacja danych w UniLogic
  12. I/O w sterownikach PLC UniStream
  13. Alarmy wbudowane w programie UniLogic
  14. UAC, czyli Zarządzanie uprawnieniami użytkowników
  15. Dostęp VNC do sterownika UniStream
  16. Tabele Danych w programie UniLogic
  17. Komunikacja EtherNet/IP
  18. Komunikacja ModBus RTU w UniStream
  19. Regulator PID w sterownikach UniStream
  20. Komunikacja CAN, czyli szeregowa magistrala komunikacyjna
  21. Konfiguracja Falowników w UniLogic
  22. Komunikacja za pomocą protokołu FTP
  23. Protokół MQTT w środowisku UniLogic
  24. Konfiguracja modemu 3G, wysyłanie/odbieranie SMS
  25. Bazy SQL w połączeniu z UniLogic

Wpisy wykorzystujące nabytą wiedzę w zaawansowany sposób

  1. UniStream współpracuje z bazami SQL.
  2. Sterownik PLC integruje się z systemem SCADA.
  3. UniStream działa jako serwer OPC UA.


Utworzono: / Kategoria: ,
  • Autor: Elmark Automatyka
  • Nasza Firma została założona w roku 1983. Od roku 1998 działamy jako spółka z ograniczoną odpowiedzialnością pod nazwą Elmark Automatyka. Przez kilka pierwszych lat zajmowaliśmy się projektowaniem i produkcją modułowych sterowników mikroprocesorowych "MIKROSTER", opartych na elementach rodziny Intel-8080 i Z-80. Nasze produkty wyróżniały się na rynku wysoką jakością sprzętu i dokumentacji oraz niezawodnością działania. W roku 1989 rozpoczęliśmy dystrybucję na terenie Polski sprzętu firmy Advantech, a następnie wielu innych wiodących producentów elementów i systemów automatyki przemysłowej. Od kilkunastu lat prowadzimy szkolenia dotyczące sprzętu i oprogramowania będącego w naszej ofercie. Wszystkim Klientom dokonującym u nas zakupów zapewniamy bezpłatne doradztwo przed złożeniem zamówienia i profesjonalne wsparcie techniczne po dostarczeniu sprzętu. Posiadamy własny dział serwisu wyposażony w nowoczesne urządzenia diagnostyczne oraz sprzęt do montażu SMD i BGA. Dużą część napraw gwarancyjnych i pogwarancyjnych wykonujemy w naszej Firmie, bez konieczności odsyłania sprzętu do producenta. Pracujemy w trzech lokalizacjach. W dzielnicy Wesoła na przedmieściach Warszawy znajduje się nasza siedziba główna, serwis i montownia komputerów przemysłowych. Przy ul. Bukowińskiej na Mokotowie działa Centrum Szkoleniowe, a na terenie Biznes Parku „City Point” na warszawskim Targówku, mamy nowoczesny magazyn. Łączna powierzchnia naszych biur i magazynów wynosi około 1.800 m. kw. Zatrudniamy 60 wysoko wykwalifikowanych osób. Dzięki naszym Klientom, udaje się nam stale zwiększać nasz potencjał i zakres działalności. Wartość sprzedaży produktów i usług w roku 2018 wyniosła 81 milionów zł. Zrealizowaliśmy ponad 20.000 zamówień. Pamiętamy o tym, że jedynym sposobem na osiągnięcie zysku i rozwoju Firmy jest zadowolenie naszych Klientów.
  • Profil Autora
  • https://www.elmark.com.pl

Reklama

Newsletter

Zapisz się i jako pierwszy otrzymuj nowości!



PRZECZYTAJ RÓWNIEŻ



NAJNOWSZE PUBLIKACJE OD UŻYTKOWNIKÓW I FIRM

Reklama



POLECANE FIRMY I PRODUKTY