{"id":12077,"date":"2021-04-21T10:25:44","date_gmt":"2021-04-21T08:25:44","guid":{"rendered":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/?p=12077"},"modified":"2023-05-04T15:59:22","modified_gmt":"2023-05-04T13:59:22","slug":"komunikacja-mqtt-w-panelach-astraada-hmi","status":"publish","type":"post","link":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/komunikacja-mqtt-w-panelach-astraada-hmi\/","title":{"rendered":"Komunikacja MQTT w panelach Astraada HMI"},"content":{"rendered":"\n<div class=\"dowiesz-sie\">\n<h3>Z tego artyku\u0142u dowiesz si\u0119:<\/h3>\n<ul class=\"bulleted\">\n<li>czym jest MQTT i jakie ma zastosowanie,<\/li>\n<li>jak przygotowa\u0107 brokera do konfiguracji komunikacji w protokole MQTT, <\/li>\n<li>jak monitorowa\u0107 informacje pojawiaj\u0105ce si\u0119 na serwerze,<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div style=\"height:39px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>MQTT \u2013 Czym jest? Do czego s\u0142u\u017cy?<\/strong><\/p>\n\n\n\n<p>Message Queue Telemetry Transport, w skr\u00f3cie MQTT, to protok\u00f3\u0142 komunikacyjny stworzony w oparciu o wzorzec publikacja\/subskrypcja. Charakteryzuje si\u0119 on du\u017c\u0105 prostot\u0105, niewielkim obci\u0105\u017ceniem urz\u0105dze\u0144 uczestnicz\u0105cych w komunikacji, a tak\u017ce wysok\u0105 niezawodno\u015bci\u0105. Dodatkowo protok\u00f3\u0142 ten \u015bwietnie wpisuje si\u0119 w nowoczesn\u0105 technologi\u0119 IoT (Internet of Things). <\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"dowiesz-sie\"><p>Aby skorzysta\u0107 z komunikacji po MQTT w panelach Astraada HMI nale\u017cy skorzysta\u0107 z najnowszej wersji oprogramowania Astraada HMI CFG 4.0, kt\u00f3ry jest do pobrania <a href=\"https:\/\/www.astor.com.pl\/wsparcie\/dokumentacja-techniczna\/Astraada\/Oprogramowanie%20narz%C4%99dziowe\/Astraada%20HMI%20CFG\/\">pod tym linkiem<\/a>.<\/p><\/div>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Komunikacja w protokole MQTT oparta jest o broker (serwer), a tak\u017ce pod\u0142\u0105czonych do niego klient\u00f3w. Klienci mog\u0105 realizowa\u0107 w obr\u0119bie serwera dwie opcje: publikowa\u0107 wiadomo\u015b\u0107 na dany temat (<em>topic<\/em>) lub odbiera\u0107 wiadomo\u015b\u0107 z subskrybowanych temat\u00f3w. Jeden klient mo\u017ce jednocze\u015bnie realizowa\u0107 obie te opcje.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"411\" height=\"286\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/04\/1_Broker_i_podlaczone_klienty.jpg\" alt=\"\" class=\"wp-image-12081\"\/><\/figure>\n<\/div>\n\n\n<p>Ca\u0142o\u015b\u0107 komunikacji przebiega w nast\u0119puj\u0105cych krokach:<\/p>\n\n\n\n<p>1. Klienci wysy\u0142aj\u0105 na serwer list\u0119 subskrybowanych temat\u00f3w komunikacji.<br>2. Jeden z klient\u00f3w publikuje nowe dane w konkretnym temacie.<br>3. Broker MQTT rozsy\u0142a informacj\u0119 o temacie, w kt\u00f3rym pojawi\u0142y si\u0119 nowe dane, do klient\u00f3w subskrybuj\u0105cych dany temat<br>4. Klient subskrybuj\u0105cy temat pobiera now\u0105 informacj\u0119.<\/p>\n\n\n\n<p>Z powy\u017cszego schematu \u0142atwo wywnioskowa\u0107, \u017ce wi\u0119kszo\u015b\u0107 dzia\u0142a\u0144 wykonywana jest przez broker MQTT. Nie ma potrzeby sta\u0142ego odpytywania poszczeg\u00f3lnych urz\u0105dze\u0144 o konkretne warto\u015bci, przez co protok\u00f3\u0142 MQTT nie obci\u0105\u017ca znacz\u0105co mocy obliczeniowej urz\u0105dzenia. Rola klienta\/subskrybenta jest tutaj znacz\u0105co bierna, serwer sam wy\u015ble do niego informacje.<\/p>\n\n\n\n<p>Tematy publikacji mo\u017cna bardzo intuicyjne grupowa\u0107 w kategorie i podkategorie. Odbywa si\u0119 to na wz\u00f3r schematu drzewka folder\u00f3w w Microsoft Windows. Dla przyk\u0142adu:<\/p>\n\n\n\n<p class=\"has-text-align-center\"><strong>Maszyna1\/ParametryPodstawowe\/CzasPracy<\/strong><\/p>\n\n\n\n<p>W przypadku powy\u017cszej \u015bcie\u017cki sterownik b\u0119dzie otrzymywa\u0142 informacj\u0119 na temat zmian warto\u015bci czasu pracy w pierwszej maszynie.<\/p>\n\n\n\n<p>Przy definiowaniu \u015bcie\u017cki do tematu, kt\u00f3ry ma by\u0107 nas\u0142uchiwany mo\u017cna skorzysta\u0107 z dw\u00f3ch operator\u00f3w: \u201e+\u201d i \u201e#\u201d.<\/p>\n\n\n\n<ul class=\"bulleted wp-block-list\">\n<li><strong>+ <\/strong>&#8211; dopasowuje si\u0119 do dowolnej nazwy na danym poziomie. Przyk\u0142adowo, w momencie u\u017cycia \u015bcie\u017cki: <strong>Urz\u0105dzenie\/ID1\/StanAkumulatora<\/strong>, klient\/subskrybent b\u0119dzie otrzymywa\u0142 informacj\u0119 o aktualnym stan na\u0142adowania akumulatora tylko w pierwszym urz\u0105dzeniu, gdy natomiast skorzystamy z operatora \u201e+\u201d w nast\u0119puj\u0105cy spos\u00f3b: <strong>Urz\u0105dzenie\/+\/StanAkumulatora<\/strong>, klient\/subskrybent b\u0119dzie otrzymywa\u0142 informacj\u0119 o aktualnym stanie na\u0142adowania akumulatora na wszystkich urz\u0105dzeniach pod\u0142\u0105czonych do w\u0105tku.<\/li>\n\n\n\n<li><strong># <\/strong>&#8211; dopasowuje si\u0119 do wszystkich zag\u0142\u0119bie\u0144 danego poziomu. Wykorzystuj\u0105c przyk\u0142ad powy\u017cszy, u\u017cywaj\u0105c operatora \u201e#\u201d w nast\u0119puj\u0105cy spos\u00f3b: <strong>Urz\u0105dzenie\/ID1\/# <\/strong>umo\u017cliwi klientowi\/subskrybentowi otrzymywanie informacji na temat wszystkich dost\u0119pnych parametr\u00f3w urz\u0105dzenia o ID1.<\/li>\n<\/ul>\n\n\n\n<p>Komunikacja w protokole MQTT cechuje si\u0119 wysokim bezpiecze\u0144stwem. Informacje przesy\u0142ane do serwera kodowane s\u0105 w oparciu o protok\u00f3\u0142 SSL. Dodatkowo broker mo\u017ce zosta\u0107 skonfigurowany w taki spos\u00f3b, aby weryfikowa\u0142 ka\u017cdego klienta przed pod\u0142\u0105czeniem do serwera, poprzez podanie loginu i has\u0142a.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Przygotowanie brokera<\/strong><\/h2>\n\n\n\n<p>Konfigurowanie komunikacji w protokole MQTT nale\u017cy rozpocz\u0105\u0107 od przygotowania brokera.<\/p>\n\n\n\n<p>Broker mo\u017ce by\u0107:<\/p>\n\n\n\n<ul class=\"bulleted wp-block-list\">\n<li>Wewn\u0119trzny &#8211; niekt\u00f3re urz\u0105dzenia posiadaj\u0105 wbudowany serwer, kt\u00f3ry mo\u017ce pe\u0142ni\u0107 tak\u0105 funkcjonalno\u015b\u0107.<\/li>\n\n\n\n<li>Zewn\u0119trzny &#8211; specjalne modu\u0142y IoT pod\u0142\u0105czane do urz\u0105dzenia.<\/li>\n\n\n\n<li>Zdalny &#8211; us\u0142ugodawcy, kt\u00f3rzy za po\u015brednictwem stron internetowych udost\u0119pniaj\u0105 mo\u017cliwo\u015b\u0107 stworzenia w\u0142asnego brokera.<\/li>\n<\/ul>\n\n\n\n<p>Niezale\u017cnie jaki rodzaj brokera posiadamy, <strong><u>koniecznie<\/u><\/strong> nale\u017cy zna\u0107 jego adres <strong><u>IP<\/u><\/strong> (lub <strong><u>html<\/u> <\/strong>je\u017celi jest taka mo\u017cliwo\u015b\u0107), a tak\u017ce <strong><u>port, na kt\u00f3rym serwer nas\u0142uchuje informacji<\/u><\/strong>. Opcjonalnie: login i has\u0142o dost\u0119pu.<\/p>\n\n\n\n<p>Na potrzeby niniejszej instrukcji wykorzystany zostanie broker firmy ASTOR o nast\u0119puj\u0105cych parametrach:<\/p>\n\n\n\n<ul class=\"bulleted wp-block-list\">\n<li><strong><u>Adres:<\/u><\/strong> mqtt.astor.com.pl<\/li>\n\n\n\n<li><strong><u>Port:<\/u><\/strong> 1883<\/li>\n<\/ul>\n\n\n\n<p>Po aktywowaniu brokera i odczytaniu niezb\u0119dnych parametr\u00f3w mo\u017cna przyst\u0105pi\u0107 do konfiguracji panelu Astraada HMI.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Konfigurowanie po\u0142\u0105czenia z brokerem<\/h2>\n\n\n\n<p>Aby skonfigurowa\u0107 po\u0142\u0105czenie pomi\u0119dzy brokerem, a panelem Astraada HMI, nale\u017cy rozwin\u0105\u0107 opcj\u0119 <em>Links<\/em> z g\u0142\u00f3wnego drzewka projektowego i wybra\u0107 opcj\u0119 <em>MQTT Client.<\/em><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"265\" height=\"145\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/04\/2_opcja_links_glowne_drzewko_MQTT.jpg\" alt=\"\" class=\"wp-image-12082\"\/><\/figure>\n<\/div>\n\n\n<p>Po wybraniu powy\u017cszej opcji, uruchomi si\u0119 okno konfiguracji komunikacji MQTT, w kt\u00f3rej zaznaczamy opcj\u0119 <em>Enable<\/em> i uzupe\u0142niamy informacje dotycz\u0105ce brokera.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"314\" height=\"405\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/05\/3_okno_konfiguracji_komunikacji_MQTT.png\" alt=\"\" class=\"wp-image-12403\"\/><\/figure>\n<\/div>\n\n\n<p>W przypadku, gdy posiadamy jedynie adres IP brokera, a nie HTML, nale\u017cy zaznaczy\u0107 <strong><u>okienko<\/u><\/strong> przy pozycji <strong><u>IP Address<\/u><\/strong>. Konfigurator umo\u017cliwi nam wtedy wprowadzenie adresu IP.<\/p>\n\n\n\n<p>Je\u017celi broker jest zabezpieczony loginem i has\u0142em, nale\u017cy tutaj wpisa\u0107 te dane odpowiednio: Login w pole <strong><u>User Name<\/u><\/strong>, a has\u0142o w pole <strong><u>Password<\/u><\/strong>. W pole <strong><u>Client ID<\/u><\/strong> opcjonalnie, mo\u017cemy wpisa\u0107 dowolny identyfikator aktualnie programowanego urz\u0105dzenia.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Konfigurowanie trybu publikacji panelu Astraada HMI w protokole MQTT<\/h2>\n\n\n\n<p>Konfigurowanie trybu nale\u017cy rozpocz\u0105\u0107 od przygotowania tematu publikacji, a tak\u017ce jej tre\u015bci. W przypadku panelu Astraada HMI i oprogramowania Astraada HMI CFG, dokonuje si\u0119 tego w pozycji <em>Text Format Table<\/em> znajduj\u0105cej si\u0119 w g\u0142\u00f3wnym drzewku projektowym.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"169\" height=\"336\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/04\/4_przygotowanie_tematu_publikacji-1.png\" alt=\"\" class=\"wp-image-12085\"\/><\/figure>\n<\/div>\n\n\n<p>Po wybraniu powy\u017cszej opcji pojawi si\u0119 tabela z trzema kolumnami: ID, Name oraz Language 1. Je\u017celi ta ostatnia kolumna nie jest widoczna, nale\u017cy klikn\u0105\u0107 w dowolnym miejscu w obszarze tabeli, prawym przyciskiem myszy i zaznaczy\u0107 opcj\u0119 <em>Language 1<\/em>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"485\" height=\"309\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/04\/5_opcja_language.png\" alt=\"\" class=\"wp-image-12086\"\/><\/figure>\n<\/div>\n\n\n<p>Kolumna <em>ID<\/em> informuje o unikalnym identyfikatorze do przygotowanego tekstu \u2013 <strong><u>informacje z tej kolumny wykorzystywane s\u0105 przy tworzeniu funkcji w makrach<\/u><\/strong>. Kolumna <em>Name<\/em> b\u0119dzie zawiera\u0107 dowoln\u0105, zdefiniowan\u0105 przez nas nazw\u0119, dzi\u0119ki kt\u00f3rej b\u0119dziemy mogli wyszuka\u0107 odpowiedni tekst w momencie potrzeby jego wyboru. W\u0142a\u015bciwy tekst, kt\u00f3rym b\u0119dzie operowa\u0142 program Astraada HMI CFG, jak i sam panel, znajduje si\u0119 w kolumnie <em>Language 1<\/em>. <\/p>\n\n\n\n<p>Zacznijmy zatem od przygotowaniu tekstu pod temat \u2013 klikamy ikonk\u0119 <em>NEW<\/em>, a w tabeli powinien pokaza\u0107 si\u0119 pusty wiersz o ID 00001. W kolumnie <em>Name<\/em> wpisujemy dowoln\u0105 nazw\u0119 tekstu, najlepiej w taki spos\u00f3b, aby \u0142atwo mo\u017cna by\u0142o go odr\u00f3\u017cni\u0107 od innych, np.: <strong>Temat1<\/strong>. W polu <em>Language 1<\/em> wpisujemy w\u0142a\u015bciw\u0105 form\u0119 tematu, w kt\u00f3rym chcemy publikowa\u0107. W naszym przyk\u0142adzie, b\u0119dziemy publikowa\u0107 pod tematem \u201ePublish\u201d, wi\u0119c w\u0142a\u015bnie to s\u0142owo zostaje tutaj wpisane.<\/p>\n\n\n\n<p>Poprawnie uzupe\u0142niona tabela powinna wygl\u0105da\u0107 w nast\u0119puj\u0105cy spos\u00f3b:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"469\" height=\"299\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/04\/6_language_2.png\" alt=\"\" class=\"wp-image-12087\"\/><\/figure>\n<\/div>\n\n\n<p>Przygotowany tekst w chwili obecnej nie posiada \u017cadnych cech. \u015arodowisko Astraada HMI CFG wymaga, aby powy\u017cszym tekstom nada\u0107 w pierwszej kolejno\u015bci odpowiednie cechy, aby mo\u017cna by\u0142o ich u\u017cywa\u0107 do odpowiednich cel\u00f3w.<\/p>\n\n\n\n<p>W celu nadania cech danemu tekstowi, zaznaczamy \u017c\u0105dany tekst i klikamy przycisk <em>Property<\/em> ( pi\u0105ty od prawej w panelu <em>Text Format Table<\/em>).<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"542\" height=\"373\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/04\/7_przycisk_property.png\" alt=\"\" class=\"wp-image-12088\"\/><\/figure>\n<\/div>\n\n\n<p>Po klikni\u0119ciu powinno pojawi\u0107 si\u0119 powy\u017csze okno. Mo\u017cliwe cechy tekstu zawarte s\u0105 w <em>Specific Purposes<\/em>. Tekst mo\u017ce pe\u0142ni\u0107 rol\u0119: tematu publikacji (<em>Composing MQTT Publish Topic)<\/em>, tematu subskrypcji (<em>Composing Subscription Message)<\/em>, tre\u015bci wiadomo\u015bci publikacji (<em>Composing MQTT Publish Message<\/em>), a tak\u017ce wysy\u0142a\u0107 i odczytywa\u0107 zmienne (<em>Sending\/Reciving Data Values)<\/em>. W aktualnym przypadku interesuje nas opcja pierwsza, dlatego zaznaczamy j\u0105 i potwierdzamy przyciskiem <em>OK<\/em>.<\/p>\n\n\n\n<p>Nast\u0119pnie przechodzimy do przygotowania tekstu dla wiadomo\u015bci, kt\u00f3ra b\u0119dzie publikowana. Ponownie wciskamy przycisk <em>NEW<\/em>. W nowopowsta\u0142ym wierszu, w kolumnie <em>Name<\/em> wpisujemy dowoln\u0105 nazw\u0119 np.: <strong>Wiadomosc1<\/strong>. W kolumnie <em>Language 1<\/em> wpisujemy tre\u015b\u0107 wiadomo\u015bci jak\u0105 chcemy przes\u0142a\u0107. Tre\u015b\u0107 mo\u017ce by\u0107 dowolna. Protok\u00f3\u0142 MQTT nie narzuca \u017cadnej formy pisania wiadomo\u015bci, programista mo\u017ce zatem w bardzo czytelny spos\u00f3b publikowa\u0107 informacje na brokerze.<\/p>\n\n\n\n<p>Na potrzeby niniejszego przyk\u0142adu, prze\u015blemy informacje o jednej zmiennej w postaci: \u201eAktualna warto\u015b\u0107 zmiennej:\u201d. W zwi\u0105zku z tym wpisujemy podany tekst w kolumn\u0119 <em>Language 1<\/em>. Tabela powinna aktualnie posiada\u0107 nast\u0119puj\u0105c\u0105 form\u0119:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"554\" height=\"350\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/04\/8_.png\" alt=\"\" class=\"wp-image-12089\"\/><\/figure>\n<\/div>\n\n\n<p>Nast\u0119pnie, tak jak w przypadku tematu publikacji, nale\u017cy nada\u0107 nowemu tekstowi odpowiednie cechy. Dodatkowo, z racji, \u017ce tekst b\u0119dzie przesy\u0142a\u0142 zmienn\u0105, powinna zosta\u0107 ona odpowiednio zdefiniowana. Dlatego te\u017c zaznaczamy nowy tekst i klikamy przycisk <em>Property<\/em>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"524\" height=\"361\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/04\/9_.png\" alt=\"\" class=\"wp-image-12090\"\/><\/figure>\n<\/div>\n\n\n<p>W pierwszej kolejno\u015bci przyst\u0119pujemy do definicji zmiennej. Klikamy przycisk <em>NEW <\/em>znajduj\u0105cy si\u0119 w lewym g\u00f3rnym rogu. W tabeli <em>Embedded Variables<\/em> powinna pojawi\u0107 si\u0119 nowa pozycja: <em>%1<\/em>. Po utworzeniu nowej zmiennej, nale\u017cy okre\u015bli\u0107 jej parametry. Najwa\u017cniejsze z nich to:<\/p>\n\n\n\n<ul class=\"bulleted wp-block-list\">\n<li><strong><u>Data Type<\/u><\/strong> \u2013 typ zmiennej, w naszym przyk\u0142adzie b\u0119dzie to 16-Bit Unsigned Integer<\/li>\n\n\n\n<li><strong><u>Display Type<\/u><\/strong> \u2013 spos\u00f3b wy\u015bwietlania zmiennej, w naszym przyk\u0142adzie: 16-Bit Unsigned Decimal<\/li>\n\n\n\n<li><strong><u>Address<\/u><\/strong> \u2013 adres w pami\u0119ci panelu, w kt\u00f3rym b\u0119dzie przechowywana warto\u015b\u0107 zmiennej, w naszym przyk\u0142adzie: $U100.<\/li>\n\n\n\n<li><strong><u>Total Digits <\/u><\/strong>\u2013 liczba znak\u00f3w, kt\u00f3re ma przechowywa\u0107 zmienna \u2013 dowolna warto\u015b\u0107<\/li>\n\n\n\n<li><strong><u>Fractional Digits <\/u><\/strong>\u2013 liczba znak\u00f3w po przecinku, kt\u00f3re ma przechowywa\u0107 zmienna \u2013 dowolna warto\u015b\u0107<\/li>\n<\/ul>\n\n\n\n<p>Gdy cechy zmiennej zosta\u0142y zdefiniowane, nale\u017cy przydzieli\u0107 odpowiednie cechy dla ca\u0142ego tekstu. Nasz tekst ma by\u0107 wiadomo\u015bci\u0105 publikacji, a tak\u017ce przekazywa\u0107 informacje o zmiennej, dlatego te\u017c nale\u017cy zaznaczy\u0107 opcje <em>Composing MQTT Publish Message<\/em>, a tak\u017ce <em>Sending\/Receiving Data Values<\/em>. Odpowiednie wype\u0142nione okno <em>Property<\/em> powinno mie\u0107 nast\u0119puj\u0105c\u0105 posta\u0107:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"550\" height=\"378\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/04\/10_definiowanie_zmiennej_cechy.png\" alt=\"\" class=\"wp-image-12091\"\/><\/figure>\n<\/div>\n\n\n<p>Zatwierdzamy przyciskiem <em>OK<\/em>. Ostatnim krokiem w definiowaniu tekstu wiadomo\u015bci, jest wpisanie zdefiniowanej zmiennej do kolumny <em>Language 1<\/em>. Nasza zmienna zosta\u0142a oznaczona znakiem <em>%1<\/em>, dlatego te\u017c ten znak nale\u017cy wpisa\u0107 w tre\u015b\u0107 wiadomo\u015bci, kt\u00f3ra finalnie powinna mie\u0107 posta\u0107: \u201eAktualna wartosc zmiennej: %1\u201d.<\/p>\n\n\n\n<p>Powracamy nast\u0119pnie do <em>MQTT Client<\/em>. W oknie tym, nale\u017cy przeprowadzi\u0107 ostatnie elementy konfiguracji. Pierwszym z nich jest nadanie naszemu tematowi odpowiedniego ID. Zaznaczamy w <em>Publish Topics<\/em> (gdy\u017c przeprowadzamy procedur\u0119 konfiguracji publikacji) okienko przy <em>Topic ID 1<\/em>. Czynno\u015b\u0107 ta powinna odblokowa\u0107 list\u0119 wyboru, z kt\u00f3rej wybieramy nasz zdefiniowany temat \u2013 <strong>Temat1<\/strong>.<\/p>\n\n\n\n<p>Komunikacja MQTT odbywa si\u0119 za po\u015brednictwem specjalnych makr. Dlatego te\u017c w lewym dolnym roku zaznaczamy opcj\u0119 <em>MQTT Message Receiving Macro<\/em>. Co powinno odblokowa\u0107 now\u0105 zak\u0142adk\u0119 o tej samej nazwie. Poprawnie skonfigurowane okno <em>MQTT Client<\/em> powinno wygl\u0105da\u0107 nast\u0119puj\u0105co:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"604\" height=\"320\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/04\/11_makra_MQTT.png\" alt=\"\" class=\"wp-image-12092\"\/><\/figure>\n<\/div>\n\n\n<p>Ostatnim krokiem jest napisanie makra, kt\u00f3re umo\u017cliwi nam publikacje naszej wiadomo\u015bci. W zwi\u0105zku z tym przechodzimy do zak\u0142adki <em>MQTT Message Receiving Macro<\/em>. Klikamy przycisk <em>New\u2026<\/em> i nadajemy dowoln\u0105 nazw\u0119, w naszym przyk\u0142adzie, b\u0119dzie to: <strong>Macro1<\/strong>.<\/p>\n\n\n\n<p>Aby opublikowa\u0107 wiadomo\u015b\u0107, nale\u017cy skorzysta\u0107 z komendy: A = MqttP_IF(B,C,D), gdzie:<\/p>\n\n\n\n<ul class=\"bulleted wp-block-list\">\n<li>A \u2013 adres, pod kt\u00f3rym program b\u0119dzie zapisywa\u0142 kod operacji (informowa\u0142 o jej poprawno\u015bci)<\/li>\n\n\n\n<li>B \u2013 ID tematu, w kt\u00f3rym ma zosta\u0107 opublikowana wiadomo\u015b\u0107<\/li>\n\n\n\n<li>C \u2013 ID tekstu, kt\u00f3ry ma zosta\u0107 u\u017cyty do publikacji wiadomo\u015bci<\/li>\n\n\n\n<li>D \u2013 Poziom zabezpiecze\u0144. Mo\u017ce on przybra\u0107 trzy warto\u015bci: 0 \u2013 wiadomo\u015b\u0107 zostaje wys\u0142ana bez \u017cadnych potwierdze\u0144 dostarczenia. 1 \u2013 pierwsza wiadomo\u015b\u0107 zostaje wys\u0142ana z potrzeb\u0105 potwierdzenia dostarczenia, je\u017celi potwierdzenie zostanie odes\u0142ane przez serwer, komunikacja b\u0119dzie kontynuowana. 2 \u2013 wszystkie wiadomo\u015bci zostaj\u0105 wys\u0142ane z potrzeb\u0105 potwierdzenia dostarczenia.<\/li>\n<\/ul>\n\n\n\n<p>W zwi\u0105zku z powy\u017cszym Macro1, w przypadku naszego przyk\u0142adu, b\u0119dzie mie\u0107 posta\u0107:<\/p>\n\n\n\n<p class=\"has-text-align-center\"><strong>$U1= MqttP_IF(1, 2, 0)<\/strong><\/p>\n\n\n\n<p>Poniewa\u017c: nasz temat Publish zosta\u0142 zaznaczony przy Topic ID 1, wi\u0119c posiada ID 1, tekst naszej wiadomo\u015bci jest zapisany w <em>Text Format Table<\/em> z ID r\u00f3wnym 00002, a tak\u017ce nie potrzebujemy \u017cadnych potwierdze\u0144 dostarczenia.<\/p>\n\n\n\n<p>W ten spos\u00f3b przygotowana zosta\u0142a komunikacja w protokole MQTT. W zwi\u0105zku z tym, opublikujemy w najprostszy spos\u00f3b wiadomo\u015b\u0107 na serwerze. Do tego b\u0119dziemy potrzebowa\u0107 elementu Numeric Entry, kt\u00f3ry nale\u017cy przypisa\u0107 pod adres naszej zmiennej, a wi\u0119c $U100, a tak\u017ce przycisku. Bit Button, w kt\u00f3rym nale\u017cy zawrze\u0107 stworzone wcze\u015bniej makro.<\/p>\n\n\n\n<p>Ustawienie powy\u017cszych element\u00f3w:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"358\" height=\"393\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/04\/12_.png\" alt=\"\" class=\"wp-image-12093\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"365\" height=\"344\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/04\/13_.png\" alt=\"\" class=\"wp-image-12094\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:31px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"459\" height=\"442\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/04\/14_.png\" alt=\"\" class=\"wp-image-12095\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:31px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Tak przygotowany program wgrywamy na panel HMI. Na panelu nale\u017cy wprowadzi\u0107 liczb\u0119 w elemencie <em>Numeric Entry<\/em>, a nast\u0119pnie klikn\u0105\u0107 przycisk <em>Bit Button<\/em>. W momencie klikni\u0119cia przycisku wiadomo\u015b\u0107 zostanie opublikowana na serwerze.<\/p>\n\n\n\n<p class=\"has-text-align-center\"><strong><u>UWAGA!<\/u><\/strong><\/p>\n\n\n\n<p>Nale\u017cy pami\u0119ta\u0107, aby urz\u0105dzenie by\u0142o pod\u0142\u0105czone do brokera, je\u017celi korzystamy z zewn\u0119trznego, lub do sieci internetowej \u2013 je\u017celi korzystamy z brokera zdalnego (funkcja DHCP musi by\u0107 aktywna)!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Konfigurowanie trybu subskrypcji panelu Astraada HMI w protokole MQTT<\/h2>\n\n\n\n<p>W zwi\u0105zku z tym, \u017ce urz\u0105dzenie mo\u017ce jednocze\u015bnie pe\u0142ni\u0107 funkcj\u0119 publikacji, jak i subskrypcji, wykorzystamy aplikacj\u0119 trybu publikacji i zmodyfikujemy j\u0105 w taki spos\u00f3b, aby panel HMI nas\u0142uchiwa\u0142 r\u00f3wnie\u017c wybranego tematu. Naszym celem b\u0119dzie odczytanie z serwera wiadomo\u015bci opublikowanej pod tematem Publish o tre\u015bci: \u201eAktualna warto\u015b\u0107 zmiennej: %1\u201d<\/p>\n\n\n\n<p>Rozpoczniemy od modyfikacji tekst\u00f3w w <em>Text Format Table.<\/em><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"384\" height=\"246\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/04\/15_wiadomosc1.png\" alt=\"\" class=\"wp-image-12096\"\/><\/figure>\n<\/div>\n\n\n<p><strong>Temat1<\/strong> aktualnie skonfigurowany jest jedynie jako temat publikacji. Nale\u017cy zmodyfikowa\u0107 go tak, aby pe\u0142ni\u0142 r\u00f3wnie\u017c funkcjonalno\u015b\u0107 tematu subskrypcji, gdy\u017c w tym przyk\u0142adzie chcemy subskrybowa\u0107 ten sam temat, na kt\u00f3ry aktualnie publikujemy \u2013 nie ma wi\u0119c potrzeby tworzenia nowego tekstu.<\/p>\n\n\n\n<p>Wybieramy Temat1 i klikamy opcj\u0119 <em>Property<\/em><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"493\" height=\"337\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/04\/16_opcja_property.png\" alt=\"\" class=\"wp-image-12097\"\/><\/figure>\n<\/div>\n\n\n<p>Zaznaczamy opcj\u0119 <em>Composing MQTT Subscription Topic <\/em>(tak jak na powy\u017cszym rysunku), gdy\u017c chcemy, aby ten sam tekst m\u00f3g\u0142 tworzy\u0107 r\u00f3wnocze\u015bnie temat subskrypcji. Zatwierdzamy przyciskiem <em>OK<\/em>.<\/p>\n\n\n\n<p>W trybie subskrypcji nie udost\u0119pniamy \u017cadnych wiadomo\u015bci, mimo to tekst widomo\u015bci jest niezb\u0119dny, gdy\u017c u\u017cywany jest on do innych cel\u00f3w. Stanowi swego rodzaju klucz, kt\u00f3rym panel b\u0119dzie si\u0119 pos\u0142ugiwa\u0142, aby wyodr\u0119bni\u0107 odpowiednie zmienne z przesy\u0142anej na serwer informacji. Tak jak wspomniane by\u0142o w przypadku konfiguracji trybu publikacji \u2013 MQTT nie narzuca \u017cadnej formy wysy\u0142ania informacji na serwer, jednak nale\u017cy pami\u0119ta\u0107, aby urz\u0105dzenie, kt\u00f3re ma odczyta\u0107 dan\u0105 wiadomo\u015b\u0107 posiada\u0142a dok\u0142adn\u0105 informacj\u0119 jak\u0105 form\u0119 b\u0119dzie mie\u0107 przesy\u0142ana na serwer wiadomo\u015b\u0107. W zwi\u0105zku z tym klucz musi by\u0107 idealnie taki sam jak tre\u015b\u0107 publikacji. W szczeg\u00f3lno\u015bci, je\u017celi chodzi o odst\u0119py i du\u017ce litery.<\/p>\n\n\n\n<p>W niniejszym przyk\u0142adzie b\u0119dziemy odczytywa\u0107 dok\u0142adnie tak\u0105 sam\u0105 wiadomo\u015b\u0107, jak\u0105 wysy\u0142amy na serwer, dlatego te\u017c nie trzeba definiowa\u0107 nowego tekstu, dodatkowo konfiguracja tekstu publikowanego, jak i odczytywanego jest dok\u0142adnie taka sama, wi\u0119c nie ma potrzeby ingerencji w panel <em>Property<\/em>. <\/p>\n\n\n\n<p>Po zmodyfikowaniu tekst\u00f3w, przechodzimy do <em>MQTT Client<\/em>, aby nanie\u015b\u0107 tam odpowiednie modyfikacje. Przede wszystkim nale\u017cy nada\u0107 odpowiednie ID naszemu tematowi subskrypcji. Zaznaczamy w <em>Subsctiption Topics<\/em> (gdy\u017c przeprowadzamy procedur\u0119 konfiguracji subskrypcji) okienko przy <em>Topic ID 1<\/em>. Czynno\u015b\u0107 ta powinna odblokowa\u0107 list\u0119 wyboru, z kt\u00f3rej wybieramy nasz zdefiniowany temat \u2013 <strong>Temat1<\/strong>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"605\" height=\"322\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/04\/17_MQTT_client.png\" alt=\"\" class=\"wp-image-12098\"\/><\/figure>\n<\/div>\n\n\n<p>Okno konfiguracji powinno wygl\u0105da\u0107 tak jak na zdj\u0119ciu powy\u017cej.<\/p>\n\n\n\n<p>Ostatnim elementem konfiguracji trybu subskrypcji jest napisanie odpowiedniego makro. Kt\u00f3re b\u0119dzie wyczekiwa\u0107 na informacje o nowej informacji na serwerze i weryfikowa\u0107 czy informacja ta jest dla nas istotna, czy te\u017c nie.<\/p>\n\n\n\n<p>W tym celu w <em>MQTT Client<\/em> przechodzimy do zak\u0142adki <em>MQTT Message Receiving Macro <\/em>i klikamy <em>New\u2026<\/em> Nadajemy dowoln\u0105 nazw\u0119, w naszym przypadku b\u0119dzie to<strong> Macro2<\/strong> i przyst\u0119pujemy do edycji.<\/p>\n\n\n\n<p>Rozpoczynamy od funkcji, kt\u00f3ra b\u0119dzie odbiera\u0107 informacj\u0119 od serwera o najnowszej wiadomo\u015bci. Funkcja ta ma nast\u0119puj\u0105c\u0105 posta\u0107:<\/p>\n\n\n\n<p class=\"has-text-align-center\"><strong>A = MqttGet(B, C, D)<\/strong><\/p>\n\n\n\n<p>Gdzie:<\/p>\n\n\n\n<ul class=\"bulleted wp-block-list\">\n<li>A \u2013 Adres, pod kt\u00f3rym b\u0119dzie przechowywana d\u0142ugo\u015b\u0107 najnowszej na serwerze wiadomo\u015bci<\/li>\n\n\n\n<li>B \u2013 Adres, pod kt\u00f3rym b\u0119dzie przechowywany temat najnowszej na serwerze wiadomo\u015bci<\/li>\n\n\n\n<li>C \u2013 Adres, pod kt\u00f3rym b\u0119dzie przechowywana tre\u015b\u0107 wiadomo\u015bci.<\/li>\n\n\n\n<li>D &#8211;&nbsp; Adres, pod kt\u00f3rym b\u0119dzie przechowywana d\u0142ugo\u015b\u0107 tematu<\/li>\n<\/ul>\n\n\n\n<p>Przy pomocy tej funkcji odczytujemy wszelkie informacje o najnowszej wiadomo\u015bci, kt\u00f3re b\u0119d\u0105 nam potrzebne w dalszej procedurze odczytu. Przede wszystkim, trzeba zweryfikowa\u0107, czy temat wiadomo\u015bci pokrywa si\u0119 z tematem, kt\u00f3ry aktualnie subskrybujemy. Do tego celu, nale\u017cy wyszuka\u0107 czy temat znajduje si\u0119 w bazie danych panelu Astraada HMI, czyli czy ma ID i je\u017celi tak, to jakie? A tak\u017ce, przy pomocy p\u0119tli <em>if<\/em> napisa\u0107 odpowiedni\u0105 procedur\u0119.<\/p>\n\n\n\n<p>W celu weryfikacji tematu publikacji nale\u017cy u\u017cy\u0107 nast\u0119puj\u0105cej funkcji:<\/p>\n\n\n\n<p class=\"has-text-align-center\"><strong>A = MqttChkTopic(B, C, D)<\/strong><\/p>\n\n\n\n<p>Gdzie:<\/p>\n\n\n\n<ul class=\"bulleted wp-block-list\">\n<li>A \u2013 Adres, pod kt\u00f3rym b\u0119dzie przechowywany adres ID weryfikowanego tematu ( je\u017celi temat nie jest zdefiniowany w bazie danych urz\u0105dzenia warto\u015b\u0107 ta b\u0119dzie r\u00f3wna 0).<\/li>\n\n\n\n<li>B \u2013 Adres, w kt\u00f3rym aktualnie przechowywana jest informacja o temacie, kt\u00f3ry nale\u017cy zweryfikowa\u0107 ( w naszym przypadku b\u0119dzie to parametr B z funkcji <strong>MqttGet<\/strong>).<\/li>\n\n\n\n<li>C \u2013 Adres, w kt\u00f3rym aktualnie przechowywana jest informacja o d\u0142ugo\u015bci tematu, kt\u00f3ry nale\u017cy zweryfikowa\u0107 ( w naszym przypadku b\u0119dzie to parametr D z funkcji <strong>MqttGet<\/strong>)<\/li>\n\n\n\n<li>D \u2013 Wpisujemy 0 (parametr chwilowo nieobs\u0142ugiwany przez oprogramowanie).<\/li>\n<\/ul>\n\n\n\n<p>Po u\u017cyciu powy\u017cszych funkcji, nale\u017cy zapisa\u0107 procedur\u0119 przy pomocy funkcji <em>if<\/em>, kt\u00f3r\u0105 panel HMI ma przeprowadzi\u0107 z informacj\u0105 o temacie publikacji. Przede wszystkim nale\u017cy zweryfikowa\u0107, czy ID tematu jest niezerowe i czy jest r\u00f3wne 1 (gdy\u017c temat o ID 1 jest tematem, kt\u00f3ry chcemy subskrybowa\u0107). Je\u017celi ID odczytanego tematu pokrywa si\u0119 z ID subskrybowanego tematu, to nale\u017cy skorzysta\u0107 z funkcji, kt\u00f3ra rozszyfruje wiadomo\u015b\u0107 i wstawi odczytane parametry pod odpowiednie zmienne:<\/p>\n\n\n\n<p class=\"has-text-align-center\"><strong>A = MqttProcMsg(B, C, D)<\/strong><\/p>\n\n\n\n<p>Gdzie:<\/p>\n\n\n\n<ul class=\"bulleted wp-block-list\">\n<li>A \u2013 Adres, pod kt\u00f3rym b\u0119dzie przechowywana informacja o poprawno\u015bci przeprowadzenia odczytania wiadomo\u015bci. Je\u017celi odczytanie przebieg\u0142o poprawnie warto\u015b\u0107 tego adresu powinna by\u0107 r\u00f3wna 0, je\u017celi nie \u2013 r\u00f3wna 1.<\/li>\n\n\n\n<li>B \u2013 W tym miejscu nale\u017cy wprowadzi\u0107 ID tekstu z <em>Text Format Table<\/em>, kt\u00f3ry ma zosta\u0107 u\u017cyty jako klucz do odczytania wiadomo\u015bci.<\/li>\n\n\n\n<li>C \u2013 Adres, pod kt\u00f3rym przechowywana wiadomo\u015b\u0107, kt\u00f3r\u0105 chcemy odczyta\u0107 ( W naszym przypadku b\u0119dzie to parametr C z funkcji <strong>MqttGet<\/strong>).<\/li>\n\n\n\n<li>D \u2013 Adres, pod kt\u00f3rym przechowywana jest informacja o d\u0142ugo\u015bci wiadomo\u015bci, kt\u00f3r\u0105 chcemy odczyta\u0107 ( w naszym przypadku b\u0119dzie to parametr A z funkcji <strong>MqttGet<\/strong>).<\/li>\n<\/ul>\n\n\n\n<p>Bior\u0105c pod uwag\u0119 wszystkie powy\u017csze wiadomo\u015bci nasze makro powinno mie\u0107 nast\u0119puj\u0105c\u0105 posta\u0107:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"567\" height=\"288\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/04\/18_.png\" alt=\"\" class=\"wp-image-12099\"\/><\/figure>\n<\/div>\n\n\n<p>Warto zwr\u00f3ci\u0107 uwag\u0119, \u017ce adres pod kt\u00f3rym przechowywana jest tre\u015b\u0107 wiadomo\u015bci jest znacz\u0105co odsuni\u0119ty od pozosta\u0142ych ($U200). Dzieje si\u0119 to dlatego, i\u017c w tre\u015bci wiadomo\u015bci przesy\u0142any jest pe\u0142ny kod, kt\u00f3ry mo\u017ce zaj\u0105\u0107 du\u017co miejsca w pami\u0119ci. Wszystko zale\u017cy od d\u0142ugo\u015bci odebranej wiadomo\u015bci. Dlatego te\u017c wa\u017cne jest, aby mie\u0107 pewno\u015b\u0107, \u017ce rejestry nie b\u0119d\u0105 nachodzi\u0107 na siebie i nie b\u0119d\u0105 powodowa\u0107 zak\u0142\u00f3ce\u0144. Je\u017celi podczas komunikacji urz\u0105dzenie odczytuje wiadomo\u015b\u0107, jednak nie jest w stanie jej rozszyfrowa\u0107, mimo i\u017c klucz jak i tre\u015b\u0107 jest identyczna \u2013 warto przesun\u0105\u0107 rejestr o kilka pozycji dalej, gdy\u017c by\u0107 mo\u017ce wyst\u0119puje konflikt adresu.<\/p>\n\n\n\n<p>Powy\u017cszego makra nie trzeba wywo\u0142ywa\u0107. Funkcja zostanie automatycznie wywo\u0142ana w momencie przys\u0142ania przez serwer informacji o nowej zmiennej, dlatego te\u017c nie trzeba przypisywa\u0107 \u017cadnego przycisku pod makro.<\/p>\n\n\n\n<p>Aby zwizualizowa\u0107 przebieg komunikacji w najprostszy spos\u00f3b nale\u017cy wykorzysta\u0107 trzy okienka: dwa <em>Character Display<\/em> i jedno <em>Numeric Display<\/em>. Okienka <em>Character Display <\/em>b\u0119d\u0105 wy\u015bwietla\u0107 (je\u017celi temat wiadomo\u015bci zgadza si\u0119 z tematem subskrypcji): temat, na kt\u00f3ry zosta\u0142a wiadomo\u015b\u0107 nadana i tre\u015b\u0107 wiadomo\u015bci. <em>Numeric Display<\/em> wy\u015bwietli natomiast aktualn\u0105 warto\u015b\u0107 przypisanej zmiennej.<\/p>\n\n\n\n<p>Poprawna konfiguracja powy\u017cszych element\u00f3w, w przypadku niniejszego przyk\u0142adu powinna wygl\u0105da\u0107 nast\u0119puj\u0105co:<\/p>\n\n\n\n<p>W przypadku wy\u015bwietlenia tre\u015bci wiadomo\u015bci:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"449\" height=\"385\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/04\/19_wyswietlanie_tresci_wiadomosci.png\" alt=\"\" class=\"wp-image-12100\"\/><\/figure>\n<\/div>\n\n\n<p>W przypadku wy\u015bwietlenia tematu:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"453\" height=\"393\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/04\/20_wyswietlanie_tematu.png\" alt=\"\" class=\"wp-image-12101\"\/><\/figure>\n<\/div>\n\n\n<p>W przypadku wy\u015bwietlenia warto\u015bci nadpisanej zmiennej:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"265\" height=\"396\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/04\/21_wyswietlenie_wartosci_nadpisanej_zmiennej.png\" alt=\"\" class=\"wp-image-12102\"\/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Jak monitorowa\u0107 informacje pojawiaj\u0105ce si\u0119 na serwerze?<\/h2>\n\n\n\n<p>W najprostszy spos\u00f3b mo\u017cna to zrobi\u0107 przy pomocy przegl\u0105darki Google Chrome i aplikacji MQTTLens, kt\u00f3ra pe\u0142ni rol\u0119 publishera\/subskrybenta. Otwieramy przegl\u0105dark\u0119 i w wyszukiwanie Google wpisujemy has\u0142o: MQTTLens.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"605\" height=\"326\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/04\/22_MQTTLens.png\" alt=\"\" class=\"wp-image-12103\"\/><\/figure>\n<\/div>\n\n\n<p>Klikamy w powy\u017cszy wynik, a nast\u0119pnie wybieramy opcje \u201ezainstaluj aplikacj\u0119\u201d \u2013 je\u017celi jeszcze jej nie posiadamy, lub \u201euruchom aplikacj\u0119\u201d \u2013 je\u017celi znajduje si\u0119 ona ju\u017c na naszym komputerze.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"605\" height=\"192\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/04\/23_MQTTLens.png\" alt=\"\" class=\"wp-image-12104\"\/><\/figure>\n<\/div>\n\n\n<p>Po uruchomieniu aplikacji, w lewej cz\u0119\u015bci okna mo\u017cna doda\u0107 broker, do kt\u00f3rego b\u0119dzie si\u0119 \u0142\u0105czy\u0107 MQTTLens. W obszarze <em>CONNECTIONS <\/em>klikamy znak \u201e+\u201d, otwieraj\u0105c okno <em>Add a new Connection. <\/em>Dane brokera, w przypadku naszego przyk\u0142adu b\u0119dzie to:<\/p>\n\n\n\n<ul class=\"bulleted wp-block-list\">\n<li><strong>Hostname:<\/strong> mqtt.astor.com.pl<\/li>\n\n\n\n<li><strong>Port:<\/strong> 1883<\/li>\n\n\n\n<li><strong>Connection name:<\/strong> mo\u017cna wpisa\u0107 dowoln\u0105 nazw\u0119<\/li>\n\n\n\n<li><strong>Username oraz Password:<\/strong> pozostawiamy puste<\/li>\n<\/ul>\n\n\n\n<p>Po uzupe\u0142nieniu tych informacji klikamy w dolnej cz\u0119\u015bci okna <em>CREATE CONNECTION<\/em>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"462\" height=\"355\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/04\/24_okno_create_connection.png\" alt=\"\" class=\"wp-image-12105\"\/><\/figure>\n<\/div>\n\n\n<p>Po uruchomieniu brokera, nale\u017cy zasubskrybowa\u0107 temat, kt\u00f3ry zosta\u0142 wcze\u015bniej skonfigurowany (w przypadku naszego przyk\u0142adu temat nosi\u0142 nazw\u0119: \u201ePublish\u201d). Aby to zrobi\u0107, nale\u017cy w polu <em>Subscribe<\/em> wpisa\u0107 nazw\u0119 tematu i nale\u017cy klikn\u0105\u0107 przycisk <em>SUBSCRIBE<\/em>. Nast\u0119pnie na panelu nale\u017cy upubliczni\u0107 \u017c\u0105dan\u0105 wiadomo\u015b\u0107 klikaj\u0105c przycisk <em>Bit Button<\/em>. Po tej operacji, informacja zostanie przes\u0142ana do serwera, co b\u0119dzie widoczne w MQTTLens w nast\u0119puj\u0105cy spos\u00f3b:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"603\" height=\"255\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/04\/25_.png\" alt=\"\" class=\"wp-image-12106\"\/><\/figure>\n<\/div>\n\n\n<p>W przypadku, gdy chcemy wys\u0142a\u0107 wiadomo\u015b\u0107 na serwer, kt\u00f3ra ma zosta\u0107 odczytana przez panel korzystamy z segmentu <em>Publish<\/em>. W polu <em>topic<\/em> wpisujemy temat, kt\u00f3ry jest subskrybowany przez panel HMI. W przypadku naszego przyk\u0142adu temat ten to \u201dPublish\u201d. Nast\u0119pnie w polu <em>Message <\/em>wpisujemy tre\u015b\u0107 wiadomo\u015bci. Aby panel poprawnie odczyta\u0142 nasz\u0105 informacj\u0119, nale\u017cy wpisa\u0107 w tym miejscu dok\u0142adn\u0105 tre\u015b\u0107 klucza u\u017cytego podczas konfiguracji. Najlepiej przekopiowa\u0107 go z <em>Text Format Table <\/em>i zamiast warto\u015bci %1 wpisa\u0107 \u017c\u0105dan\u0105 warto\u015bci. W naszym przypadku b\u0119dzie to: \u201eAktualna wartosc zmiennej: 70\u201d. Po wype\u0142nieniu wspomnianych p\u00f3l, klikamy przycisk <em>PUBLISH<\/em>. Okno powinno wygl\u0105da\u0107 tak, jak na poni\u017cszym zdj\u0119ciu.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"604\" height=\"261\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/04\/26_okno_publish.png\" alt=\"\" class=\"wp-image-12107\"\/><\/figure>\n<\/div>\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Z tego artyku\u0142u dowiesz si\u0119 czym jest MQTT. Poznasz podstawy komunikacji MQTT w panelach Astraada HMI.<\/p>\n","protected":false},"author":43,"featured_media":12081,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[233],"tags":[96,159],"class_list":["post-12077","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dla-uzytkownikow-produktow-astor","tag-astraada-hmi-panel","tag-mqtt"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\r\n<title>Komunikacja MQTT w panelach Astraada HMI | Poradnik Automatyka<\/title>\r\n<meta name=\"description\" content=\"Z tego artyku\u0142u dowiesz si\u0119 czym jest protok\u00f3\u0142 MQTT. Poznasz podstawy komunikacji MQTT w panelach Astraada HMI.\" \/>\r\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\r\n<link rel=\"canonical\" href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/komunikacja-mqtt-w-panelach-astraada-hmi\/\" \/>\r\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\r\n<meta property=\"og:type\" content=\"article\" \/>\r\n<meta property=\"og:title\" content=\"Komunikacja MQTT w panelach Astraada HMI | Poradnik Automatyka\" \/>\r\n<meta property=\"og:description\" content=\"Z tego artyku\u0142u dowiesz si\u0119 czym jest protok\u00f3\u0142 MQTT. Poznasz podstawy komunikacji MQTT w panelach Astraada HMI.\" \/>\r\n<meta property=\"og:url\" content=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/komunikacja-mqtt-w-panelach-astraada-hmi\/\" \/>\r\n<meta property=\"og:site_name\" content=\"Poradnik Automatyka\" \/>\r\n<meta property=\"article:published_time\" content=\"2021-04-21T08:25:44+00:00\" \/>\r\n<meta property=\"article:modified_time\" content=\"2023-05-04T13:59:22+00:00\" \/>\r\n<meta property=\"og:image\" content=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/04\/1_Broker_i_podlaczone_klienty.jpg\" \/>\r\n\t<meta property=\"og:image:width\" content=\"411\" \/>\r\n\t<meta property=\"og:image:height\" content=\"286\" \/>\r\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\r\n<meta name=\"author\" content=\"Rafa\u0142 Pilch\" \/>\r\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\r\n<meta name=\"twitter:label1\" content=\"Napisane przez\" \/>\n\t<meta name=\"twitter:data1\" content=\"Rafa\u0142 Pilch\" \/>\n\t<meta name=\"twitter:label2\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data2\" content=\"23 minuty\" \/>\r\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/komunikacja-mqtt-w-panelach-astraada-hmi\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/komunikacja-mqtt-w-panelach-astraada-hmi\\\/\"},\"author\":{\"name\":\"Rafa\u0142 Pilch\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/#\\\/schema\\\/person\\\/17cb08c703a403daf1e3e789c9f40f23\"},\"headline\":\"Komunikacja MQTT w panelach Astraada HMI\",\"datePublished\":\"2021-04-21T08:25:44+00:00\",\"dateModified\":\"2023-05-04T13:59:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/komunikacja-mqtt-w-panelach-astraada-hmi\\\/\"},\"wordCount\":3470,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/komunikacja-mqtt-w-panelach-astraada-hmi\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2021\\\/04\\\/1_Broker_i_podlaczone_klienty.jpg\",\"keywords\":[\"Astraada HMI Panel\",\"MQTT\"],\"articleSection\":[\"Produkty ASTOR\"],\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/komunikacja-mqtt-w-panelach-astraada-hmi\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/komunikacja-mqtt-w-panelach-astraada-hmi\\\/\",\"url\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/komunikacja-mqtt-w-panelach-astraada-hmi\\\/\",\"name\":\"Komunikacja MQTT w panelach Astraada HMI | Poradnik Automatyka\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/komunikacja-mqtt-w-panelach-astraada-hmi\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/komunikacja-mqtt-w-panelach-astraada-hmi\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2021\\\/04\\\/1_Broker_i_podlaczone_klienty.jpg\",\"datePublished\":\"2021-04-21T08:25:44+00:00\",\"dateModified\":\"2023-05-04T13:59:22+00:00\",\"description\":\"Z tego artyku\u0142u dowiesz si\u0119 czym jest protok\u00f3\u0142 MQTT. Poznasz podstawy komunikacji MQTT w panelach Astraada HMI.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/komunikacja-mqtt-w-panelach-astraada-hmi\\\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/komunikacja-mqtt-w-panelach-astraada-hmi\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/komunikacja-mqtt-w-panelach-astraada-hmi\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2021\\\/04\\\/1_Broker_i_podlaczone_klienty.jpg\",\"contentUrl\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2021\\\/04\\\/1_Broker_i_podlaczone_klienty.jpg\",\"width\":411,\"height\":286},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/komunikacja-mqtt-w-panelach-astraada-hmi\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Produkty ASTOR\",\"item\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/category\\\/dla-uzytkownikow-produktow-astor\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Komunikacja MQTT w panelach Astraada HMI\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/#website\",\"url\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/\",\"name\":\"Poradnik Automatyka\",\"description\":\"Poradnik Automatyka to przydatne kursy, u\u017cyteczne artyku\u0142y i merytoryczne webinary dla ka\u017cdego automatyka i elektryka.\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/#organization\",\"name\":\"ASTOR\",\"url\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2018\\\/08\\\/ASTOR_zwykly_sam_logotyp.png\",\"contentUrl\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2018\\\/08\\\/ASTOR_zwykly_sam_logotyp.png\",\"width\":3322,\"height\":1078,\"caption\":\"ASTOR\"},\"image\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/#\\\/schema\\\/person\\\/17cb08c703a403daf1e3e789c9f40f23\",\"name\":\"Rafa\u0142 Pilch\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/R.-Pilch.jpg\",\"url\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/R.-Pilch.jpg\",\"contentUrl\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/R.-Pilch.jpg\",\"caption\":\"Rafa\u0142 Pilch\"},\"description\":\"Absolwent Politechniki Krakowskiej, kierunku Automatyka i Robotyka. Opiekun marki Astraada w ASTOR, szczeg\u00f3lnie zorientowany na systemy nap\u0119dowe. Prywatnie entuzjasta gier planszowych oraz MMORPG, a tak\u017ce amator grania na gitarze.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/rafa\u0142-pilch-b556b0170\"],\"url\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/autor\\\/rafalp\\\/\"}]}<\/script>\r\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Komunikacja MQTT w panelach Astraada HMI | Poradnik Automatyka","description":"Z tego artyku\u0142u dowiesz si\u0119 czym jest protok\u00f3\u0142 MQTT. Poznasz podstawy komunikacji MQTT w panelach Astraada HMI.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/komunikacja-mqtt-w-panelach-astraada-hmi\/","og_locale":"pl_PL","og_type":"article","og_title":"Komunikacja MQTT w panelach Astraada HMI | Poradnik Automatyka","og_description":"Z tego artyku\u0142u dowiesz si\u0119 czym jest protok\u00f3\u0142 MQTT. Poznasz podstawy komunikacji MQTT w panelach Astraada HMI.","og_url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/komunikacja-mqtt-w-panelach-astraada-hmi\/","og_site_name":"Poradnik Automatyka","article_published_time":"2021-04-21T08:25:44+00:00","article_modified_time":"2023-05-04T13:59:22+00:00","og_image":[{"width":411,"height":286,"url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/04\/1_Broker_i_podlaczone_klienty.jpg","type":"image\/jpeg"}],"author":"Rafa\u0142 Pilch","twitter_card":"summary_large_image","twitter_misc":{"Napisane przez":"Rafa\u0142 Pilch","Szacowany czas czytania":"23 minuty"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/komunikacja-mqtt-w-panelach-astraada-hmi\/#article","isPartOf":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/komunikacja-mqtt-w-panelach-astraada-hmi\/"},"author":{"name":"Rafa\u0142 Pilch","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#\/schema\/person\/17cb08c703a403daf1e3e789c9f40f23"},"headline":"Komunikacja MQTT w panelach Astraada HMI","datePublished":"2021-04-21T08:25:44+00:00","dateModified":"2023-05-04T13:59:22+00:00","mainEntityOfPage":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/komunikacja-mqtt-w-panelach-astraada-hmi\/"},"wordCount":3470,"commentCount":0,"publisher":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#organization"},"image":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/komunikacja-mqtt-w-panelach-astraada-hmi\/#primaryimage"},"thumbnailUrl":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/04\/1_Broker_i_podlaczone_klienty.jpg","keywords":["Astraada HMI Panel","MQTT"],"articleSection":["Produkty ASTOR"],"inLanguage":"pl-PL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.astor.com.pl\/poradnikautomatyka\/komunikacja-mqtt-w-panelach-astraada-hmi\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/komunikacja-mqtt-w-panelach-astraada-hmi\/","url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/komunikacja-mqtt-w-panelach-astraada-hmi\/","name":"Komunikacja MQTT w panelach Astraada HMI | Poradnik Automatyka","isPartOf":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/komunikacja-mqtt-w-panelach-astraada-hmi\/#primaryimage"},"image":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/komunikacja-mqtt-w-panelach-astraada-hmi\/#primaryimage"},"thumbnailUrl":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/04\/1_Broker_i_podlaczone_klienty.jpg","datePublished":"2021-04-21T08:25:44+00:00","dateModified":"2023-05-04T13:59:22+00:00","description":"Z tego artyku\u0142u dowiesz si\u0119 czym jest protok\u00f3\u0142 MQTT. Poznasz podstawy komunikacji MQTT w panelach Astraada HMI.","breadcrumb":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/komunikacja-mqtt-w-panelach-astraada-hmi\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.astor.com.pl\/poradnikautomatyka\/komunikacja-mqtt-w-panelach-astraada-hmi\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/komunikacja-mqtt-w-panelach-astraada-hmi\/#primaryimage","url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/04\/1_Broker_i_podlaczone_klienty.jpg","contentUrl":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/04\/1_Broker_i_podlaczone_klienty.jpg","width":411,"height":286},{"@type":"BreadcrumbList","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/komunikacja-mqtt-w-panelach-astraada-hmi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Produkty ASTOR","item":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/category\/dla-uzytkownikow-produktow-astor\/"},{"@type":"ListItem","position":2,"name":"Komunikacja MQTT w panelach Astraada HMI"}]},{"@type":"WebSite","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#website","url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/","name":"Poradnik Automatyka","description":"Poradnik Automatyka to przydatne kursy, u\u017cyteczne artyku\u0142y i merytoryczne webinary dla ka\u017cdego automatyka i elektryka.","publisher":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#organization","name":"ASTOR","url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#\/schema\/logo\/image\/","url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2018\/08\/ASTOR_zwykly_sam_logotyp.png","contentUrl":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2018\/08\/ASTOR_zwykly_sam_logotyp.png","width":3322,"height":1078,"caption":"ASTOR"},"image":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#\/schema\/person\/17cb08c703a403daf1e3e789c9f40f23","name":"Rafa\u0142 Pilch","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/04\/R.-Pilch.jpg","url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/04\/R.-Pilch.jpg","contentUrl":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/04\/R.-Pilch.jpg","caption":"Rafa\u0142 Pilch"},"description":"Absolwent Politechniki Krakowskiej, kierunku Automatyka i Robotyka. Opiekun marki Astraada w ASTOR, szczeg\u00f3lnie zorientowany na systemy nap\u0119dowe. Prywatnie entuzjasta gier planszowych oraz MMORPG, a tak\u017ce amator grania na gitarze.","sameAs":["https:\/\/www.linkedin.com\/in\/rafa\u0142-pilch-b556b0170"],"url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/autor\/rafalp\/"}]}},"_links":{"self":[{"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/posts\/12077","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/users\/43"}],"replies":[{"embeddable":true,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/comments?post=12077"}],"version-history":[{"count":1,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/posts\/12077\/revisions"}],"predecessor-version":[{"id":17361,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/posts\/12077\/revisions\/17361"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/media\/12081"}],"wp:attachment":[{"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/media?parent=12077"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/categories?post=12077"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/tags?post=12077"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}