{"id":21951,"date":"2025-01-07T14:54:25","date_gmt":"2025-01-07T13:54:25","guid":{"rendered":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/?p=21951"},"modified":"2025-03-11T18:57:49","modified_gmt":"2025-03-11T17:57:49","slug":"odbieranie-zmiennej-tekstowej-za-posrednictwem-standardowego-protokolu-komunikacyjnego-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-9","status":"publish","type":"post","link":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/odbieranie-zmiennej-tekstowej-za-posrednictwem-standardowego-protokolu-komunikacyjnego-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-9\/","title":{"rendered":"Odbieranie zmiennej tekstowej za po\u015brednictwem standardowego protoko\u0142u komunikacyjnego | Wymiana danych pomi\u0119dzy robotem Kawasaki a sterownikiem PLC, odc. 9"},"content":{"rendered":"\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>W tej cz\u0119\u015bci dowiesz si\u0119, jak odebra\u0107 zmienn\u0105 tekstow\u0105 od sterownika PLC, z kt\u00f3rym robot komunikuje si\u0119 standardowym protoko\u0142em komunikacyjnym, np. Ethernet\/IP lub Profinet.<\/p>\n\n\n\n<div class=\"dowiesz-sie\" style=\"margin-top:40px; margin-bottom:40px\">\n<h3>Wymiana danych pomi\u0119dzy robotem Kawasaki Robotics a sterownikiem PLC<\/h3>\n<p>Zagadnienia podstawowe:<\/p>\n<a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/integracja-robota-przemyslowego-ze-sterownikiem-plc-i-panelem-hmi-dlaczego-warto\/\">Wst\u0119p: Integracja robota przemys\u0142owego ze sterownikiem PLC i panelem HMI \u2013 dlaczego warto?<\/a><br\/>\n<a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/przesylanie-statusu-polaczenia-i-kodu-bledow-w-czasie-rzeczywistym-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-1\/\">1. Przesy\u0142anie statusu po\u0142\u0105czenia i kodu b\u0142\u0119d\u00f3w w czasie rzeczywistym.<\/a><br\/>\n<a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/przesylanie-danych-robota-typ-numer-seryjny-godziny-pracy-i-zuzyta-energia-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-2\/\">2. Przesy\u0142anie danych robota (typ, numer seryjny, godziny pracy i zu\u017cyta energia).<\/a><br\/>\n<a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/przesylanie-dedykowanych-sygnalow-wejsciowych-i-wyjsciowych-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-3\/\">3. Przesy\u0142anie dedykowanych sygna\u0142\u00f3w wej\u015bciowych i wyj\u015bciowych.<\/a><br\/>\n<a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/przesylanie-parametrow-ruchu-w-czasie-rzeczywistym-i-informacji-o-wykonanym-programie-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-4\/\">4. Przesy\u0142anie parametr\u00f3w ruchu w czasie rzeczywistym i informacji o wykonanym programie.<\/a><br\/>\n<a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/przesylanie-aktualnej-pozycji-i-dystansu-do-kolejnego-punktu-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-5\/\">5. Przesy\u0142anie aktualnej pozycji i dystansu do kolejnego punktu.<\/a><br\/><br\/>\n<p>Zagadnienia zaawansowane:<\/p>\n<a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/ogolna-modyfikacja-komunikacji-i-zmiana-typu-danych-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-6\/\">6. Og\u00f3lna modyfikacja komunikacji i zmiana typu danych.<\/a><br\/>\n<a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/przesylanie-duzych-ilosci-danych-przy-uzyciu-ograniczonej-liczby-zajetych-bitow-zwielokrotnianie-danych-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-7\/\">7. Przesy\u0142anie du\u017cych ilo\u015bci danych przy u\u017cyciu ograniczonej liczby zaj\u0119tych bit\u00f3w \u2013 zwielokrotnianie danych.<\/a><br\/>\n<a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wysylanie-zmiennej-tekstowej-za-posrednictwem-standardowego-protokolu-komunikacyjnego-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-8\/\">8. Wysy\u0142anie zmiennej tekstowej za po\u015brednictwem standardowego protoko\u0142u komunikacyjnego.<\/a><br\/>\n<a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/odbieranie-zmiennej-tekstowej-za-posrednictwem-standardowego-protokolu-komunikacyjnego-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-9\/\">9. Odbieranie zmiennej tekstowej za po\u015brednictwem standardowego protoko\u0142u komunikacyjnego.<\/a><br\/>\n<a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/przesylanie-do-sterownika-plc-historii-ostatnich-bledow-z-robota-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-10\/\">10. Przesy\u0142anie do sterownika PLC historii ostatnich b\u0142\u0119d\u00f3w z robota.<\/a><br\/>\n<a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/przesylanie-ze-sterownika-plc-do-robota-pelnej-nazwy-programu-do-wykonania-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-11\/\">11. Przesy\u0142anie ze sterownika PLC do robota pe\u0142nej nazwy programu do wykonania.<\/a><br\/>\n<\/div>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Wst\u0119p<\/h2>\n\n\n\n<p>Jest to kontynuacja poprzedniej cz\u0119\u015bci poradnika, w kt\u00f3rej ci\u0105g znak\u00f3w przesy\u0142any by\u0142 z robota do PLC. W tej cz\u0119\u015bci dodamy do poprzedniego programu wysy\u0142anie ci\u0105gu znak\u00f3w w odwrotn\u0105 stron\u0119, czyli ze sterownika PLC do robota. Proces przesy\u0142ania b\u0119dzie zorganizowany analogicznie jak poprzednio, tylko role urz\u0105dze\u0144 zostan\u0105 zamienione. PLC b\u0119dzie przygotowywa\u0142 zmienne i zarz\u0105dza\u0142 komunikacj\u0105, a robot b\u0119dzie dzia\u0142a\u0142 reaktywnie, jedynie odczytuj\u0105c dane i przypisywa\u0142 do w\u0142a\u015bciwych zmiennych.<\/p>\n\n\n\n<p>Proces przygotowania zmiennych b\u0119dzie wygl\u0105da\u0142 jak w poprzedniej cz\u0119\u015bci, podzielony na dwa etapy: dzielenie i przygotowanie danych, a nast\u0119pnie wys\u0142anie znak po znaku. Po dok\u0142adny opis warto si\u0119gn\u0105\u0107 do cz\u0119\u015bci 8 tego poradnika.<\/p>\n\n\n\n<p>Ten typ komunikacji mo\u017ce by\u0107 wykorzystywany do wybierania programu wykonywanego przez robota lub wybierania konkretnej funkcjonalno\u015bci w robocie.<\/p>\n\n\n\n<div class=\"link-box d-flex align-items-center\">\r\n\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/themes\/poradnik\/public\/images\/icons\/icon-link.svg\" alt=\"arrow\" class=\"ml-3\">\r\n\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<div><p><a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/01\/kawasaki-plc-09.zip\">\u015aci\u0105gnij gotowe pliki z przyk\u0142adami u\u017cytymi w tym artykule<\/a>.<\/p>\n<\/div>\r\n\t\t\t\t\t<\/div>\r\n\t\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Modyfikacja programu robota &nbsp;<\/h2>\n\n\n\n<p>Program w kontrolerze robota zosta\u0142 przygotowany zgodnie z opisem powy\u017cej i analogicznie do poprzedniej cz\u0119\u015bci dla sterownika PLC. Robot w momencie pojawienia si\u0119 sygna\u0142u nadawania wiadomo\u015bci zaczyna czyta\u0107 ka\u017cdy znak, dekoduj\u0105c go w kodzie ASCII, a po odczytaniu ca\u0142o\u015bci przypisuje do odpowiedniej zmiennej na podstawie ID przesy\u0142anych danych. Do odbioru danych wystarczy tylko kr\u00f3tki kawa\u0142ek kodu w programie PC, kt\u00f3ry zosta\u0142 przedstawiony poni\u017cej. &nbsp;<\/p>\n\n\n\n<p>W tej cz\u0119\u015bci zostanie dodana funkcja $CHR(), kt\u00f3ra jako parametr przyjmuje warto\u015b\u0107 dziesi\u0119tn\u0105 litery w kodzie ASCII i zwraca odpowiadaj\u0105cy jej znak. Np. $CHR(75) zwraca \u201ek\u201d.<\/p>\n\n\n\n<p>Na pocz\u0105tku nale\u017cy przypisa\u0107 nowe zmienne, kt\u00f3re b\u0119d\u0105 wykorzystywane do komunikacji:<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>;Output signals\n  To_PLC_read_string = First_bit_Out + 8 * 21 + 3\n; Input signals\n  Data_string_8 = First_bit_In + 8 * 4 ; all 16 byte variable with each letter (byte 4-19)\n  ID_data_str_8 = First_bit_In + 8 * 2\n  Num_seq_8 = First_bit_In + 8 * 3\n  PLC_data_ready= First_bit_In + 5\n;Additional variables\n  $Recieve_string = \"\" ; Add empty string\n  String_num_seqence = 0 ; initialize variable<\/code><\/pre>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>G\u0142\u00f3wna cz\u0119\u015b\u0107 programu odczytuj\u0105ca dane z PLC b\u0119dzie dzia\u0142a\u0107 w w\u0105tku r\u00f3wnoleg\u0142ym (<strong>PC Program<\/strong>) poprzednio modyfikowanym. Je\u017celi dane przez PLC zostan\u0105 przygotowane, procedura odczytania wykona si\u0119, przypisuj\u0105c odpowiednie zmienne. Ca\u0142a procedura znajduje si\u0119 poni\u017cej:<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>IF SIG(PLC_data_ready) == TRUE AND SIG(To_PLC_read_string) == FALSE AND BITS(Num_seq_8,8) &gt; 0 THEN ; start reading each sign\n      FOR c = 1 TO 16\n        IF BITS(Data_string_8+(c-1)*8,8) == 255 THEN\n          $Recieve_string=$Recieve_string + $CHR(32)\n          GOTO Exit_for\n        ELSE\n         $Reinvesting = $Recieve_string + $CHR (BITS (Data_string_8 + (c-1) * 8, 8))\n        END\n      END\nExit_for:\n      String_num_seqence= String_num_seqence + 1;\n      SIGNAL To_PLC_read_string ; Finish reading \n      IF String_num_seqence == BITS(Num_seq_8,8) THEN\n        String_num_seqence = 0\n        ;Assign string to correct variable of string \n        CASE BITS(ID_data_str_8,8) OF\n          VALUE 1:   ; Text 1\n            $Info_from_PLC1= $Recieve_string\n            PRINT $Info_from_PLC1\n            $Recieve_string =\"\"\n          VALUE 2:   ; empty\n            ;second\n            $Recieve_string = \"\"\n        END\n      END\n    ELSE\n      IF  SIG(PLC_data_ready)== FALSE AND SIG(To_PLC_read_string) == TRUE THEN\n        SIGNAL -To_PLC_read_string \n      END\n    END<\/code><\/pre>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Program jest podzielony na dwie cz\u0119\u015bci, w pierwszej odczytywane s\u0105 wszystkie znaki w sekwencji i przypisywane do tymczasowej zmiennej <strong>Recieve string<\/strong>. Nast\u0119pnie sprawdzany jest numer sekwencji, je\u017celi jest ich wi\u0119cej, cykl si\u0119 powtarza, je\u017celi to koniec, druga cz\u0119\u015b\u0107 przypisuje odczytany ci\u0105g znak\u00f3w do odpowiedniej zmiennej. Na ko\u0144cu czyszczona jest zmienna tekstowa i zmienne statusowe, a robot gotowy jest na przyj\u0119cie kolejnych informacji. &nbsp;<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Modyfikacja programu sterownika PLC<\/h2>\n\n\n\n<p>Program w sterowniku PLC b\u0119dzie podzielony na dwie cz\u0119\u015bci, analogicznie do programu robota w poprzednim kroku. Pierwszy podprogram b\u0119dzie odpowiedzialny za przygotowanie danych do wys\u0142ania, a druga cz\u0119\u015b\u0107 to modyfikacja poprzednio stworzonego programu do zarz\u0105dzania przesy\u0142anymi tekstami, aby przesy\u0142a\u0142 kolejne sekwencje tekstu do robota.<\/p>\n\n\n\n<p>1) Aby w \u0142atwy spos\u00f3b zarz\u0105dza\u0107 przesy\u0142anymi zmiennymi ze znakami, stworzony zostanie dodatkowy podprogram, kt\u00f3ry b\u0119dzie wywo\u0142ywany w celu przygotowania do wysy\u0142ki ci\u0105gu znak\u00f3w. Aby stworzy\u0107 nowy podprogram nale\u017cy wybra\u0107 prawym przyciskiem myszy <strong>Application-&gt;Add Object-&gt; POU<\/strong><\/p>\n\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-full\"><img loading=\"lazy\" decoding=\"async\" width=\"726\" height=\"761\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/01\/image2-1.png\" alt=\"\" class=\"wp-image-21958\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/01\/image2-1.png 726w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/01\/image2-1-700x734.png 700w\" sizes=\"auto, (max-width: 726px) 100vw, 726px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Nast\u0119pnie nale\u017cy zdefiniowa\u0107 nazw\u0119, typ programu wybra\u0107 jako funkcja, kt\u00f3ra zwraca warto\u015b\u0107 BOOL i klikn\u0105\u0107 <strong>Add<\/strong>.<\/p>\n\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-full\"><img loading=\"lazy\" decoding=\"async\" width=\"432\" height=\"719\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/01\/image3.png\" alt=\"\" class=\"wp-image-21959\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>W tej funkcji mo\u017cliwe jest dodanie parametr\u00f3w wej\u015bciowych, w tym celu zdefiniujemy zmienne dw\u00f3ch typ\u00f3w, przyjmowanych do funkcji:<\/p>\n\n\n\n<p><strong>Send_to_rob_string<\/strong> \u2013 przyjmuj\u0105ca ci\u0105g znaku, kt\u00f3ry ma by\u0107 przygotowany do wys\u0142ania,<\/p>\n\n\n\n<p><strong>ID_message<\/strong> \u2013 zmienna definiuj\u0105ca identyfikator zmiennych, dzi\u0119ki czemu jedn\u0105 funkcj\u0105 u\u017cytkownik mo\u017ce przes\u0142a\u0107 r\u00f3\u017cne typy danych.<\/p>\n\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-full\"><img loading=\"lazy\" decoding=\"async\" width=\"616\" height=\"326\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/01\/image4-2.png\" alt=\"\" class=\"wp-image-21960\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Dodatkowo potrzebne b\u0119d\u0105 zmienne globalne, w kt\u00f3rych b\u0119d\u0105 przechowywane warto\u015bci bezpo\u015brednio przypisane do ramki komunikacyjnej oraz wymieniane mi\u0119dzy podprogramami. Lista zmiennych, kt\u00f3re nale\u017cy doda\u0107 do <strong>Global Variable List GVL<\/strong>, znajduje si\u0119 poni\u017cej:<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/Part 9\nSend_string_ArryData:ARRAY&#091;1..6] OF STRING; \/\/16 byte part of string\nID_string:BYTE; \/\/id for program to split \nNum_seqence:BYTE; \/\/number of seqence for program to split\nStat_sending_string:BOOL; \/\/general status of sending string \nTemp_index:BYTE; \/\/temporary indext, just to start send sequence\nTo_Rob_Ready_string:BOOL; \/\/status bit \nRobot_get_string:BOOL; \t\/\/status bit \n\nTo_Rob_ID_string:BYTE; \t\/\/id of sending string data\nTo_Rob_Num_seq_string:BYTE; \/\/number of sequence to send\nTo_Rob_string_Array:ARRAY&#091;1..16]OF BYTE;  \/\/data to send - each byte<\/code><\/pre>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>2) Po utworzeniu zmiennych kolejnym krokiem jest napisanie podprogramu do przygotowania danych do wys\u0142ania. W tym celu musimy podzieli\u0107 przes\u0142any ci\u0105g znak\u00f3w na 16-znakowe odcinki, poniewa\u017c tyle bajt\u00f3w mo\u017cna przes\u0142a\u0107 jednocze\u015bnie. Podczas dzielenia dodatkowo definiowana jest liczba sekwencji wymagana, by przes\u0142a\u0107 ca\u0142y ci\u0105g znak\u00f3w, a tak\u017ce identyfikator (ID) wiadomo\u015bci. Po przygotowaniu danych, ustawiany jest sygna\u0142 <strong>Stat_sending_string<\/strong> na wysoki i wysy\u0142anie zostanie rozpocz\u0119te w programie dedykowanym do zarz\u0105dzeniem przesy\u0142ania zmiennych typu string <strong>string_manage<\/strong>. Procedura znajduje si\u0119 poni\u017cej:<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>IF (LEN(Send_to_rob_string) MOD 16) &gt;0 THEN \n\tGVL.Num_seqence:=TO_BYTE(LEN(Send_to_rob_string)\/16)+1;\nELSE \n\tGVL.Num_seqence:=TO_BYTE(LEN(Send_to_rob_string)\/16);\nEND_IF\nFOR i:=1 TO GVL.Num_seqence DO\n\tGVL.Send_string_ArryData&#091;i]:=MID(Send_to_rob_string,16,(i-1)*16+1);\nEND_FOR\ngvl.ID_string:=ID_message; \ngvl.Stat_sending_string:=TRUE;\ngvl.Temp_index:=1;\nSend_String:=TRUE; \nRETURN;<\/code><\/pre>\n\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-full\"><img loading=\"lazy\" decoding=\"async\" width=\"730\" height=\"499\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/01\/image5-2.png\" alt=\"\" class=\"wp-image-21961\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Wynikiem dzia\u0142ania tego podprogramu jest obliczona liczba sekwencji, zapisana do zmiennej <strong>num_sequence<\/strong>, wektor ci\u0105g\u00f3w 16 znak\u00f3w podzielonych na sekwencji <strong>Send_string_ArrayData[]<\/strong>, a tak\u017ce indeks przesy\u0142anej wiadomo\u015bci <strong>ID_string<\/strong>. &nbsp;<\/p>\n\n\n\n<p>3) Po przygotowaniu danych nale\u017cy przygotowa\u0107 program do wysy\u0142ania. Zmodyfikowany zostanie program <strong>string_manage<\/strong>, w kt\u00f3rym zostanie dodana procedura odbioru danych od robota. Dok\u0142adnie jak poprzednio w robocie, algorytm w momencie wysy\u0142ki przypisze ka\u017cdemu bajtowi warto\u015b\u0107 ASCII litery i wystawi sygna\u0142 gotowo\u015bci. Gdy robot odbierze dane, przesy\u0142any jest kolejny pakiet znak\u00f3w i tak a\u017c do momentu, gdy wszystkie sekwencje zostan\u0105 przes\u0142ane.<\/p>\n\n\n\n<p>Dodatkowo do programu zosta\u0142y dodane dwie zmienne lokalne <strong>b<\/strong> do zliczania ilo\u015bci wykonania p\u0119tli FOR, oraz <strong>string_temp<\/strong>, aby przechowywa\u0107 aktualnie przesy\u0142any fragment ci\u0105gu znak\u00f3w. Znacznie u\u0142atwia to odczytanie kolejnych liter ca\u0142ego ci\u0105gu znak\u00f3w.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/\/ PART 9 - sending string to robot \nIF GVL.Stat_sending_string=TRUE AND gvl.Num_seqence&gt;0 AND gvl.To_Rob_Ready_string=FALSE AND gvl.Robot_get_string=FALSE THEN \n\tIF gvl.Temp_index=1 THEN \n\t\tgvl.To_Rob_ID_string:=gvl.ID_string;\n\t\tgvl.To_Rob_Num_seq_string:=gvl.Num_seqence;\n\tEND_IF\n\tVariable_temp:=gvl.Send_string_ArryData&#091;gvl.Temp_index];\n\tFOR b:=1 TO 16 DO \n\t\tgvl.To_Rob_string_Array&#091;b]:=Variable_temp&#091;b-1];\n\tEND_FOR\n\tgvl.To_Rob_Ready_string:=TRUE; \n\tgvl.Temp_index:=gvl.Temp_index+1;\nELSIF gvl.To_Rob_Ready_string=TRUE AND gvl.Robot_get_string=TRUE THEN \n\tgvl.To_Rob_Ready_string:=FALSE; \n\tIF gvl.Temp_index=gvl.Num_seqence+1 THEN \n\t\tGVL.Stat_sending_string:=FALSE; \n\t\tgvl.Temp_index:=0;\n\t\tgvl.Num_seqence:=0;\n\tEND_IF\nEND_IF<\/code><\/pre>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>4) Ostatnim krokiem jest przypisanie zmiennych do ramki komunikacyjnej. Do robota b\u0119dzie przesy\u0142any: numer ID, liczba sekwencji, numer w kodzie ASCII 16 kolejnych znak\u00f3w. Dodatkowo bit statusowy, \u017ce dane s\u0105 gotowe i jeden wej\u015bciowy od robota z potwierdzeniem odczytania. W tym celu zarezerwowane zostan\u0105 bajty wyj\u015bciowe od numeru 3 do 20. Dodatkowo w bajcie pierwszym przypisany zostanie sygna\u0142 przekazywany do robota o gotowo\u015bci danych.<\/p>\n\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-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1358\" height=\"810\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/01\/image6.jpg\" alt=\"\" class=\"wp-image-21962\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/01\/image6.jpg 1358w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/01\/image6-840x501.jpg 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/01\/image6-768x458.jpg 768w\" sizes=\"auto, (max-width: 1358px) 100vw, 1358px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Sygna\u0142 od robota w momencie doczytania informacji zostanie przypisany do 18 bajtu wej\u015bciowego, jak na obrazie poni\u017cej:<\/p>\n\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-full\"><img loading=\"lazy\" decoding=\"async\" width=\"863\" height=\"513\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/01\/image7-2.png\" alt=\"\" class=\"wp-image-21963\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/01\/image7-2.png 863w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/01\/image7-2-840x499.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/01\/image7-2-768x457.png 768w\" sizes=\"auto, (max-width: 863px) 100vw, 863px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Po powy\u017cszych zmianach aplikacja gotowa jest, aby wysy\u0142a\u0107 dane tekstowe ze sterownika PLC do kontrolera robota Kawasaki Robotics. Wystarczy wywo\u0142a\u0107 w PLC funkcj\u0119 <strong>Send_String(\u201etekst do wys\u0142ania\u201d,1)<\/strong>.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Dzia\u0142aj\u0105ca aplikacja<\/h2>\n\n\n\n<p>Aby przetestowa\u0107 aplikacj\u0119, dodane zostan\u0105 dwa obiekty na wizualizacji, jeden aby wpisa\u0107 tekst, kt\u00f3ry powinien by\u0107 wys\u0142any do robota, oraz przycisk aktywuj\u0105cy wys\u0142anie danych.<\/p>\n\n\n\n<p>Najpierw nale\u017cy doda\u0107 trzy nowe zmienne do globalnej listy, aby m\u00f3c obs\u0142u\u017cy\u0107 dane na ekranie sterownika:<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>Text_to_robot_visu:STRING; \/\/ variable to write text on main screen\nSend_visu_stat:BOOL; \/\/ bit to call send string function<\/code><\/pre>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Na ekranie g\u0142\u00f3wnym nale\u017cy doda\u0107 dwa nowe elementy, pole tekstowe (1) oraz przycisk (2).<\/p>\n\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-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1577\" height=\"708\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/01\/image8-2.png\" alt=\"\" class=\"wp-image-21964\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/01\/image8-2.png 1577w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/01\/image8-2-840x377.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/01\/image8-2-768x345.png 768w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/01\/image8-2-1536x690.png 1536w\" sizes=\"auto, (max-width: 1577px) 100vw, 1577px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>W polu tekstowym nale\u017cy ustawi\u0107 wybrany opis, w tym przypadku b\u0119dzie to \u201eText to Robot: %s\u201d, gdzie <strong>%s<\/strong> b\u0119dzie to wy\u015bwietlany ci\u0105g znak\u00f3w przygotowany przez u\u017cytkownika do wysy\u0142ania. Nast\u0119pnie jako <strong>Input<\/strong> w zak\u0142adce <strong>OnMouseClick<\/strong> nale\u017cy wybra\u0107 wpisanie zmiennej i wybranie klawiatury ekranowej. Pozwoli to na wpisanie przez u\u017cytkownika na ekranie tekstu kt\u00f3ry ma by\u0107 przes\u0142any do robota. W tym celu w polu <strong>Text variable<\/strong> zostanie r\u00f3wnie\u017c przypisana zmienna, kt\u00f3ra zosta\u0142a wcze\u015bniej utworzona: <strong>GVL.Text_to_robot_visu<\/strong>.<\/p>\n\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-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1874\" height=\"680\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/01\/image9.jpg\" alt=\"\" class=\"wp-image-21965\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/01\/image9.jpg 1874w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/01\/image9-840x305.jpg 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/01\/image9-768x279.jpg 768w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/01\/image9-1536x557.jpg 1536w\" sizes=\"auto, (max-width: 1874px) 100vw, 1874px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Przycisk b\u0119dzie s\u0142u\u017cy\u0142 do wyzwalania procesu wysy\u0142ania, nazwa przycisku zosta\u0142a zdefiniowana jako \u201eSend text\u201d. Jako <strong>Input -&gt; OnMouseClick<\/strong> przypisana zosta\u0142a funkcja:<\/p>\n\n\n\n<p><strong>gvl.Send_visu_stat:=Send_String(gvl.Text_to_robot_visu,1);<\/strong><\/p>\n\n\n\n<p>kt\u00f3ra pobiera ci\u0105g znak\u00f3w z okna, w kt\u00f3rym u\u017cytkownik go wpisa\u0142, a nast\u0119pnie przesy\u0142a do funkcji, kt\u00f3r\u0105 stworzyli\u015bmy w tej cz\u0119\u015bci poradnika z identyfikatorem. Dodatkowo zosta\u0142a zdefinowana zmiana koloru przycisku w czasie wysy\u0142ania znaku, <strong>ToggleColor: GVL.Stat_sending_string<\/strong>.<\/p>\n\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-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1808\" height=\"654\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/01\/image10-2.png\" alt=\"\" class=\"wp-image-21966\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/01\/image10-2.png 1808w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/01\/image10-2-840x304.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/01\/image10-2-768x278.png 768w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/01\/image10-2-1536x556.png 1536w\" sizes=\"auto, (max-width: 1808px) 100vw, 1808px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>W momencie pobrania ca\u0142ego ci\u0105gu znak\u00f3w, robot wy\u015bwietli ten tekst w terminalu na teach pendancie, wysy\u0142anie nie wp\u0142ywa znacz\u0105co na cz\u0119stotliwo\u015b\u0107 od\u015bwie\u017cania danych lub przesy\u0142ania innych informacji.<\/p>\n\n\n\n<p>W rezultacie mo\u017cna zdefiniowa\u0107 ci\u0105g znak\u00f3w i \u0142atwo przes\u0142a\u0107 go do robota:<\/p>\n\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-full\"><img loading=\"lazy\" decoding=\"async\" width=\"902\" height=\"541\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/01\/image11-1.png\" alt=\"\" class=\"wp-image-21967\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/01\/image11-1.png 902w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/01\/image11-1-840x504.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/01\/image11-1-768x461.png 768w\" sizes=\"auto, (max-width: 902px) 100vw, 902px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"link-box d-flex align-items-center\">\r\n\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/themes\/poradnik\/public\/images\/icons\/icon-link.svg\" alt=\"arrow\" class=\"ml-3\">\r\n\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<div><p><a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/01\/kawasaki-plc-09.zip\">\u015aci\u0105gnij gotowe pliki z przyk\u0142adami u\u017cytymi w tym artykule<\/a>.<\/p>\n<\/div>\r\n\t\t\t\t\t<\/div>\r\n\t\n\n\n\n<p><a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/przesylanie-do-sterownika-plc-historii-ostatnich-bledow-z-robota-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-10\/\">W kolejnej cz\u0119\u015bci<\/a> dowiesz si\u0119, jak po\u0142\u0105czy\u0107 poprzednie cz\u0119\u015bci poradnika dotycz\u0105ce obs\u0142ugi tekst\u00f3w i pobra\u0107 z robota ca\u0142\u0105 list\u0119 opis\u00f3w b\u0142\u0119du, nie tylko kod b\u0142\u0119du.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n            <div id=\"mailerlite-form_9\" data-temp-id=\"69d97db6ca022\">\n                <div class=\"mailerlite-form\">\n                    <form action=\"\" method=\"post\" novalidate>\n                                                    <div class=\"mailerlite-form-title\"><h3>Newsletter Poradnika Automatyka<\/h3><\/div>\n                                                <div class=\"mailerlite-form-description\"><p>Czytaj trendy i inspiracje, podstawy automatyki, automatyk\u0119 w praktyce<\/p>\n<\/div>\n                        <div class=\"mailerlite-form-inputs\">\n                                                                                            <div class=\"mailerlite-form-field\">\n                                    <label for=\"mailerlite-9-field-email\">Email<\/label>\n                                    <input id=\"mailerlite-9-field-email\"\n                                           type=\"email\" required=\"required\"                                            name=\"form_fields[email]\"\n                                           placeholder=\"Email\"\/>\n                                <\/div>\n                                                        <div class=\"mailerlite-form-loader\">Please wait...<\/div>\n                            <div class=\"mailerlite-subscribe-button-container\">\n                                <button class=\"mailerlite-subscribe-submit\" type=\"submit\">\n                                    Zapisz si\u0119                                <\/button>\n                            <\/div>\n                            <input type=\"hidden\" name=\"form_id\" value=\"9\"\/>\n                            <input type=\"hidden\" name=\"action\" value=\"mailerlite_subscribe_form\"\/>\n                            <input type=\"hidden\" name=\"ml_nonce\" value=\"5ae05e8786\"\/>\n                        <\/div>\n                        <div class=\"mailerlite-form-response\">\n                                                            <h4><p>Dzi\u0119kujemy za zapis do newslettera!<\/p>\n<\/h4>\n                                                    <\/div>\n                    <\/form>\n                <\/div>\n            <\/div>\n        <script type=\"text\/javascript\" src='https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/plugins\/official-mailerlite-sign-up-forms\/assets\/js\/localization\/validation-messages.js'><\/script>\n         <script type=\"text\/javascript\"> var selectedLanguage = \"pl\"; var validationMessages = messages[\"en\"]; if(selectedLanguage) { validationMessages = messages[selectedLanguage]; } window.addEventListener(\"load\", function () { var form_container = document.querySelector(`#mailerlite-form_9[data-temp-id=\"69d97db6ca022\"] form`); let submitButton = form_container.querySelector('.mailerlite-subscribe-submit'); submitButton.disabled = true; fetch('https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-admin\/admin-ajax.php', { method: 'POST', headers:{ 'Content-Type': 'application\/x-www-form-urlencoded', }, body: new URLSearchParams({ \"action\" : \"ml_create_nonce\", \"ml_nonce\" : form_container.querySelector(\"input[name='ml_nonce']\").value }) }) .then((response) => response.json()) .then((json) => { if(json.success) { form_container.querySelector(\"input[name='ml_nonce']\").value = json.data.ml_nonce; submitButton.disabled = false; } }) .catch((error) => { console.error('Error:', error); }); form_container.addEventListener('submit', (e) => { e.preventDefault(); let data = new URLSearchParams(new FormData(form_container)).toString(); let validationError = false; document.querySelectorAll('.mailerlite-form-error').forEach(el => el.remove()); Array.from(form_container.elements).forEach((input) => { if(input.type !== 'hidden') { if(input.required) { if(input.value == '') { validationError = true; let error = document.createElement(\"span\"); error.className = 'mailerlite-form-error'; error.textContent = validationMessages.required; input.after(error); return false; } } if((input.type == \"email\") && (!validateEmail(input.value))) { validationError = true; let error = document.createElement(\"span\"); error.className = 'mailerlite-form-error'; error.textContent = validationMessages.email; input.after(error); return false; } } }); if(validationError) { return false; } fade.out(form_container.querySelector('.mailerlite-subscribe-button-container'), () => { fade.in(form_container.querySelector('.mailerlite-form-loader')); }); fetch('https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-admin\/admin-ajax.php', { method: 'POST', headers:{ 'Content-Type': 'application\/x-www-form-urlencoded', }, body: data }) .then((response) => { fade.out(form_container.querySelector('.mailerlite-form-inputs'), () => { fade.in(form_container.querySelector('.mailerlite-form-response')); }); }) .catch((error) => { console.error('Error:', error); }); }); }, false); var fade = { out: function(el, fn = false) { var fadeOutEffect = setInterval(function () { if (!el.style.opacity) { el.style.opacity = 1; } if (el.style.opacity > 0) { el.style.opacity -= 0.1; } else { el.style.display = 'none'; clearInterval(fadeOutEffect); } }, 50); if( typeof (fn) == 'function') { fn(); } }, in: function(el) { var fadeInEffect = setInterval(function () { if (!el.style.opacity) { el.style.opacity = 0; } if (el.style.opacity < 1) { el.style.opacity = Number(el.style.opacity) + 0.1; } else { el.style.display = 'block'; clearInterval(fadeInEffect); } }, 50); } }; function validateEmail(email){ if(email.match( \/^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$\/ )) { return true; } return false; } <\/script> \n","protected":false},"excerpt":{"rendered":"<p>W tej cz\u0119\u015bci poradnika poka\u017cemy, jak odebra\u0107 zmienn\u0105 tekstow\u0105 od sterownika PLC, z kt\u00f3rym robot komunikuje si\u0119 standardowym protoko\u0142em komunikacyjnym, np. Ethernet\/IP lub Profinet.<\/p>\n","protected":false},"author":45,"featured_media":15549,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[234],"tags":[139,22,59,56],"class_list":["post-21951","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-automatyka-w-praktyce","tag-astraada-one","tag-kawasaki","tag-kontrolery-kawasaki","tag-roboty-kawasaki"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\r\n<title>Odbieranie zmiennej tekstowej za po\u015brednictwem standardowego protoko\u0142u komunikacyjnego | Wymiana danych pomi\u0119dzy robotem Kawasaki a sterownikiem PLC, odc. 9 | Poradnik Automatyka<\/title>\r\n<meta name=\"description\" content=\"Dowiedz si\u0119, jak odebra\u0107 zmienn\u0105 tekstow\u0105 od sterownika PLC, za po\u015brednictwem protoko\u0142u Ethernet\/IP lub Profinet.\" \/>\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\/odbieranie-zmiennej-tekstowej-za-posrednictwem-standardowego-protokolu-komunikacyjnego-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-9\/\" \/>\r\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\r\n<meta property=\"og:type\" content=\"article\" \/>\r\n<meta property=\"og:title\" content=\"Odbieranie zmiennej tekstowej za po\u015brednictwem standardowego protoko\u0142u komunikacyjnego | Wymiana danych pomi\u0119dzy robotem Kawasaki a sterownikiem PLC, odc. 9 | Poradnik Automatyka\" \/>\r\n<meta property=\"og:description\" content=\"Dowiedz si\u0119, jak odebra\u0107 zmienn\u0105 tekstow\u0105 od sterownika PLC, za po\u015brednictwem protoko\u0142u Ethernet\/IP lub Profinet.\" \/>\r\n<meta property=\"og:url\" content=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/odbieranie-zmiennej-tekstowej-za-posrednictwem-standardowego-protokolu-komunikacyjnego-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-9\/\" \/>\r\n<meta property=\"og:site_name\" content=\"Poradnik Automatyka\" \/>\r\n<meta property=\"article:published_time\" content=\"2025-01-07T13:54:25+00:00\" \/>\r\n<meta property=\"article:modified_time\" content=\"2025-03-11T17:57:49+00:00\" \/>\r\n<meta property=\"og:image\" content=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/02\/image1.jpg\" \/>\r\n\t<meta property=\"og:image:width\" content=\"1386\" \/>\r\n\t<meta property=\"og:image:height\" content=\"738\" \/>\r\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\r\n<meta name=\"author\" content=\"Konrad Sendrowicz\" \/>\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=\"Konrad Sendrowicz\" \/>\n\t<meta name=\"twitter:label2\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minut\" \/>\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\/odbieranie-zmiennej-tekstowej-za-posrednictwem-standardowego-protokolu-komunikacyjnego-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-9\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/odbieranie-zmiennej-tekstowej-za-posrednictwem-standardowego-protokolu-komunikacyjnego-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-9\/\"},\"author\":{\"name\":\"Konrad Sendrowicz\",\"@id\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#\/schema\/person\/e7fc017b5877f0cb38f4b41449057c81\"},\"headline\":\"Odbieranie zmiennej tekstowej za po\u015brednictwem standardowego protoko\u0142u komunikacyjnego | Wymiana danych pomi\u0119dzy robotem Kawasaki a sterownikiem PLC, odc. 9\",\"datePublished\":\"2025-01-07T13:54:25+00:00\",\"dateModified\":\"2025-03-11T17:57:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/odbieranie-zmiennej-tekstowej-za-posrednictwem-standardowego-protokolu-komunikacyjnego-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-9\/\"},\"wordCount\":1369,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/odbieranie-zmiennej-tekstowej-za-posrednictwem-standardowego-protokolu-komunikacyjnego-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-9\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/02\/image1.jpg\",\"keywords\":[\"Astraada One\",\"Kawasaki\",\"Kontrolery Kawasaki\",\"Roboty Kawasaki\"],\"articleSection\":[\"Automatyka w praktyce\"],\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/odbieranie-zmiennej-tekstowej-za-posrednictwem-standardowego-protokolu-komunikacyjnego-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-9\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/odbieranie-zmiennej-tekstowej-za-posrednictwem-standardowego-protokolu-komunikacyjnego-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-9\/\",\"url\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/odbieranie-zmiennej-tekstowej-za-posrednictwem-standardowego-protokolu-komunikacyjnego-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-9\/\",\"name\":\"Odbieranie zmiennej tekstowej za po\u015brednictwem standardowego protoko\u0142u komunikacyjnego | Wymiana danych pomi\u0119dzy robotem Kawasaki a sterownikiem PLC, odc. 9 | Poradnik Automatyka\",\"isPartOf\":{\"@id\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/odbieranie-zmiennej-tekstowej-za-posrednictwem-standardowego-protokolu-komunikacyjnego-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-9\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/odbieranie-zmiennej-tekstowej-za-posrednictwem-standardowego-protokolu-komunikacyjnego-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-9\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/02\/image1.jpg\",\"datePublished\":\"2025-01-07T13:54:25+00:00\",\"dateModified\":\"2025-03-11T17:57:49+00:00\",\"description\":\"Dowiedz si\u0119, jak odebra\u0107 zmienn\u0105 tekstow\u0105 od sterownika PLC, za po\u015brednictwem protoko\u0142u Ethernet\/IP lub Profinet.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/odbieranie-zmiennej-tekstowej-za-posrednictwem-standardowego-protokolu-komunikacyjnego-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-9\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/odbieranie-zmiennej-tekstowej-za-posrednictwem-standardowego-protokolu-komunikacyjnego-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-9\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/odbieranie-zmiennej-tekstowej-za-posrednictwem-standardowego-protokolu-komunikacyjnego-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-9\/#primaryimage\",\"url\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/02\/image1.jpg\",\"contentUrl\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/02\/image1.jpg\",\"width\":1386,\"height\":738},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/odbieranie-zmiennej-tekstowej-za-posrednictwem-standardowego-protokolu-komunikacyjnego-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-9\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Automatyka w praktyce\",\"item\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/category\/automatyka-w-praktyce\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Odbieranie zmiennej tekstowej za po\u015brednictwem standardowego protoko\u0142u komunikacyjnego | Wymiana danych pomi\u0119dzy robotem Kawasaki a sterownikiem PLC, odc. 9\"}]},{\"@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\/e7fc017b5877f0cb38f4b41449057c81\",\"name\":\"Konrad Sendrowicz\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/04\/K.-Sendrowicz.jpg\",\"contentUrl\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/04\/K.-Sendrowicz.jpg\",\"caption\":\"Konrad Sendrowicz\"},\"description\":\"Absolwent Politechniki Krakowskiej na kierunki Automatyka i Robotyka. Na co dzie\u0144 in\u017cynier wsparcia aplikacji zrobotyzowanych na obszarze Europy \u015brodkowo-wschodniej.\",\"url\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/autor\/konrads\/\"}]}<\/script>\r\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Odbieranie zmiennej tekstowej za po\u015brednictwem standardowego protoko\u0142u komunikacyjnego | Wymiana danych pomi\u0119dzy robotem Kawasaki a sterownikiem PLC, odc. 9 | Poradnik Automatyka","description":"Dowiedz si\u0119, jak odebra\u0107 zmienn\u0105 tekstow\u0105 od sterownika PLC, za po\u015brednictwem protoko\u0142u Ethernet\/IP lub Profinet.","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\/odbieranie-zmiennej-tekstowej-za-posrednictwem-standardowego-protokolu-komunikacyjnego-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-9\/","og_locale":"pl_PL","og_type":"article","og_title":"Odbieranie zmiennej tekstowej za po\u015brednictwem standardowego protoko\u0142u komunikacyjnego | Wymiana danych pomi\u0119dzy robotem Kawasaki a sterownikiem PLC, odc. 9 | Poradnik Automatyka","og_description":"Dowiedz si\u0119, jak odebra\u0107 zmienn\u0105 tekstow\u0105 od sterownika PLC, za po\u015brednictwem protoko\u0142u Ethernet\/IP lub Profinet.","og_url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/odbieranie-zmiennej-tekstowej-za-posrednictwem-standardowego-protokolu-komunikacyjnego-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-9\/","og_site_name":"Poradnik Automatyka","article_published_time":"2025-01-07T13:54:25+00:00","article_modified_time":"2025-03-11T17:57:49+00:00","og_image":[{"width":1386,"height":738,"url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/02\/image1.jpg","type":"image\/jpeg"}],"author":"Konrad Sendrowicz","twitter_card":"summary_large_image","twitter_misc":{"Napisane przez":"Konrad Sendrowicz","Szacowany czas czytania":"10 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/odbieranie-zmiennej-tekstowej-za-posrednictwem-standardowego-protokolu-komunikacyjnego-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-9\/#article","isPartOf":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/odbieranie-zmiennej-tekstowej-za-posrednictwem-standardowego-protokolu-komunikacyjnego-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-9\/"},"author":{"name":"Konrad Sendrowicz","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#\/schema\/person\/e7fc017b5877f0cb38f4b41449057c81"},"headline":"Odbieranie zmiennej tekstowej za po\u015brednictwem standardowego protoko\u0142u komunikacyjnego | Wymiana danych pomi\u0119dzy robotem Kawasaki a sterownikiem PLC, odc. 9","datePublished":"2025-01-07T13:54:25+00:00","dateModified":"2025-03-11T17:57:49+00:00","mainEntityOfPage":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/odbieranie-zmiennej-tekstowej-za-posrednictwem-standardowego-protokolu-komunikacyjnego-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-9\/"},"wordCount":1369,"commentCount":0,"publisher":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#organization"},"image":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/odbieranie-zmiennej-tekstowej-za-posrednictwem-standardowego-protokolu-komunikacyjnego-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-9\/#primaryimage"},"thumbnailUrl":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/02\/image1.jpg","keywords":["Astraada One","Kawasaki","Kontrolery Kawasaki","Roboty Kawasaki"],"articleSection":["Automatyka w praktyce"],"inLanguage":"pl-PL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.astor.com.pl\/poradnikautomatyka\/odbieranie-zmiennej-tekstowej-za-posrednictwem-standardowego-protokolu-komunikacyjnego-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-9\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/odbieranie-zmiennej-tekstowej-za-posrednictwem-standardowego-protokolu-komunikacyjnego-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-9\/","url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/odbieranie-zmiennej-tekstowej-za-posrednictwem-standardowego-protokolu-komunikacyjnego-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-9\/","name":"Odbieranie zmiennej tekstowej za po\u015brednictwem standardowego protoko\u0142u komunikacyjnego | Wymiana danych pomi\u0119dzy robotem Kawasaki a sterownikiem PLC, odc. 9 | Poradnik Automatyka","isPartOf":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/odbieranie-zmiennej-tekstowej-za-posrednictwem-standardowego-protokolu-komunikacyjnego-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-9\/#primaryimage"},"image":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/odbieranie-zmiennej-tekstowej-za-posrednictwem-standardowego-protokolu-komunikacyjnego-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-9\/#primaryimage"},"thumbnailUrl":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/02\/image1.jpg","datePublished":"2025-01-07T13:54:25+00:00","dateModified":"2025-03-11T17:57:49+00:00","description":"Dowiedz si\u0119, jak odebra\u0107 zmienn\u0105 tekstow\u0105 od sterownika PLC, za po\u015brednictwem protoko\u0142u Ethernet\/IP lub Profinet.","breadcrumb":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/odbieranie-zmiennej-tekstowej-za-posrednictwem-standardowego-protokolu-komunikacyjnego-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-9\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.astor.com.pl\/poradnikautomatyka\/odbieranie-zmiennej-tekstowej-za-posrednictwem-standardowego-protokolu-komunikacyjnego-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-9\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/odbieranie-zmiennej-tekstowej-za-posrednictwem-standardowego-protokolu-komunikacyjnego-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-9\/#primaryimage","url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/02\/image1.jpg","contentUrl":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/02\/image1.jpg","width":1386,"height":738},{"@type":"BreadcrumbList","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/odbieranie-zmiennej-tekstowej-za-posrednictwem-standardowego-protokolu-komunikacyjnego-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-9\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Automatyka w praktyce","item":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/category\/automatyka-w-praktyce\/"},{"@type":"ListItem","position":2,"name":"Odbieranie zmiennej tekstowej za po\u015brednictwem standardowego protoko\u0142u komunikacyjnego | Wymiana danych pomi\u0119dzy robotem Kawasaki a sterownikiem PLC, odc. 9"}]},{"@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\/e7fc017b5877f0cb38f4b41449057c81","name":"Konrad Sendrowicz","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#\/schema\/person\/image\/","url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/04\/K.-Sendrowicz.jpg","contentUrl":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/04\/K.-Sendrowicz.jpg","caption":"Konrad Sendrowicz"},"description":"Absolwent Politechniki Krakowskiej na kierunki Automatyka i Robotyka. Na co dzie\u0144 in\u017cynier wsparcia aplikacji zrobotyzowanych na obszarze Europy \u015brodkowo-wschodniej.","url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/autor\/konrads\/"}]}},"_links":{"self":[{"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/posts\/21951","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\/45"}],"replies":[{"embeddable":true,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/comments?post=21951"}],"version-history":[{"count":2,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/posts\/21951\/revisions"}],"predecessor-version":[{"id":22412,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/posts\/21951\/revisions\/22412"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/media\/15549"}],"wp:attachment":[{"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/media?parent=21951"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/categories?post=21951"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/tags?post=21951"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}