{"id":22344,"date":"2025-03-07T11:00:00","date_gmt":"2025-03-07T10:00:00","guid":{"rendered":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/?p=22344"},"modified":"2025-03-11T20:52:28","modified_gmt":"2025-03-11T19:52:28","slug":"przesylanie-do-sterownika-plc-historii-ostatnich-bledow-z-robota-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-10","status":"publish","type":"post","link":"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\/","title":{"rendered":"Przesy\u0142anie do sterownika PLC historii ostatnich b\u0142\u0119d\u00f3w z robota | Wymiana danych pomi\u0119dzy robotem Kawasaki a sterownikiem PLC, odc. 10"},"content":{"rendered":"\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Ostatnie odcinki poradnika b\u0119d\u0105 uzupe\u0142nieniem poprzednich artyku\u0142\u00f3w, dotycz\u0105cych przesy\u0142ania znak\u00f3w. W tej cz\u0119\u015bci przygotowana zostanie procedura przes\u0142ania 50 ostatnich b\u0142\u0119d\u00f3w z robota oraz dodatkowo gdy wyst\u0105pi b\u0142\u0105d, zostanie wy\u015bwietlony jego kod oraz opis.<\/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>W tej cz\u0119\u015bci poradnika zostanie przedstawiona mo\u017cliwo\u015b\u0107 przesy\u0142ania pe\u0142nej informacji o b\u0142\u0119dach, a tak\u017ce historii b\u0142\u0119d\u00f3w z robota do sterownika PLC. Ca\u0142o\u015b\u0107 zostanie podzielona na dwie cz\u0119\u015bci. W pierwszej opisz\u0119 przesy\u0142anie dok\u0142adnych opis\u00f3w b\u0142\u0119d\u00f3w, a w drugiej \u2013 przes\u0142anie historii b\u0142\u0119d\u00f3w z kontrolera robota, w tym przypadku b\u0119dzie to ostatnie 50 b\u0142\u0119d\u00f3w, kt\u00f3re wyst\u0105pi\u0142y od czasu wyzwolenia pobierania b\u0142\u0119d\u00f3w.<\/p>\n\n\n\n<p>Do przesy\u0142ania informacji wykorzystamy funkcje, kt\u00f3re zosta\u0142y przygotowane w poprzednich cz\u0119\u015bciach tego poradnika. Rozszerzone natomiast zostan\u0105 funkcje przygotowania danych oraz liczba identyfikator\u00f3w informacji.<\/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\/03\/kawasaki-plc-10.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\">Konfiguracja PLC \u2013 obs\u0142uga bie\u017c\u0105cych b\u0142\u0119d\u00f3w &nbsp;<\/h2>\n\n\n\n<p>Do przes\u0142ania opisu aktualnych b\u0142\u0119d\u00f3w dodany zostanie nowy identyfikator (ID \u2013 nr 4) przesy\u0142anych ci\u0105g\u00f3w znak\u00f3w, z aktualnym opisem b\u0142\u0119du z robota. Nale\u017cy doda\u0107 now\u0105 zmienn\u0105 w globalnej li\u015bcie zmiennych(GVL) <strong>Error_description<\/strong>, do niej zostanie przypisany aktualny b\u0142\u0105d. W programie <strong>String_manage<\/strong> w sterowniku PLC, nale\u017cy doda\u0107 nowy indeks 4 w kt\u00f3rym odczytana wiadomo\u015b\u0107 zostanie przypisana do nowej zmiennej.<\/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=\"957\" height=\"609\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image3-1.png\" alt=\"\" class=\"wp-image-22375\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image3-1.png 957w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image3-1-840x535.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image3-1-768x489.png 768w\" sizes=\"auto, (max-width: 957px) 100vw, 957px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Nast\u0119pnym krokiem jest przypisanie tego opisu do tabeli z b\u0142\u0119dami, rozpoczynamy od rozszerzenia tablicy i dodania dodatkowej kolumny z opisem \u2013 nale\u017cy rozszerzy\u0107 w pierwszym wymiarze z dw\u00f3ch na trzy kolumny. Dodatkowo poniewa\u017c przekroczy ona dost\u0119pn\u0105 pami\u0119\u0107 zmiennych nieulotnych, nale\u017cy zmieni\u0107 typ zmiennej na <strong>VAR<\/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=\"853\" height=\"318\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image4-1.png\" alt=\"\" class=\"wp-image-22376\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image4-1.png 853w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image4-1-840x313.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image4-1-768x286.png 768w\" sizes=\"auto, (max-width: 853px) 100vw, 853px\" \/><\/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 przypisa\u0107 w dodatkowej kolumnie nr 3 opis b\u0142\u0119du przys\u0142any od robota. W tym etapie nale\u017cy doda\u0107 dodatkowy opis do akcji gdy nie ma b\u0142\u0119d\u00f3w i kod jest b\u0142\u0119du jest r\u00f3wny zero (1). W drugiej cz\u0119\u015bci, gdzie aktualny b\u0142\u0105d przesuwany jest do g\u00f3ry listy, dodany zosta\u0142 warunek sprawdzania opisu b\u0142\u0119du (2) aby w momencie op\u00f3\u017anienia wys\u0142ania opisu b\u0142\u0119du, ta cz\u0119\u015b\u0107 kodu poczeka\u0142a na przes\u0142anie pe\u0142nego opisu. W p\u0119tli dodany zosta\u0142 dodatkowy parametr trzeciej kolumny, aby warto\u015b\u0107 by\u0142a przesuwana w momencie wyst\u0105pienia nowego b\u0142\u0119du i do nowej warto\u015bci przypisywany by\u0142 nowy opis (3). &nbsp;<\/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=\"1069\" height=\"489\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image5-1.png\" alt=\"\" class=\"wp-image-22377\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image5-1.png 1069w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image5-1-840x384.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image5-1-768x351.png 768w\" sizes=\"auto, (max-width: 1069px) 100vw, 1069px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Ostatni\u0105 modyfikacj\u0105 jest rozszerzenie wy\u015bwietlanej tabeli w oknie cz\u0119\u015bci pierwszej. Nale\u017cy od\u015bwie\u017cy\u0107 zmienn\u0105, aby pojawi\u0142a si\u0119 trzecia kolumna, kt\u00f3r\u0105 nale\u017cy zmodyfikowa\u0107 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\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1577\" height=\"705\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image6-2.png\" alt=\"\" class=\"wp-image-22380\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image6-2.png 1577w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image6-2-840x376.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image6-2-768x343.png 768w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image6-2-1536x687.png 1536w\" sizes=\"auto, (max-width: 1577px) 100vw, 1577px\" \/><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Dodatkowym nowym elementem jest wy\u015bwietlenie na ekranie sterownika aktualnego b\u0142\u0119du zawsze na wierzchu i mo\u017cliwo\u015b\u0107 szybkiego resetu. W tym celu dodane zostanie nowe okno z powiadomieniem, kt\u00f3re b\u0119dzie si\u0119 wy\u015bwietla\u0107, gdy pojawi si\u0119 b\u0142\u0105d. Aby stworzy\u0107 nowe okno, klikamy prawym przyciskiem myszy na <strong>Application<\/strong>, a nast\u0119pnie wybieramy <strong>Add object -&gt; Visualisation<\/strong>. Nale\u017cy nada\u0107 nazw\u0119, w przyk\u0142adzie okno to zostanie nazwane \u201eCurrent_err_view\u201d.<\/p>\n\n\n\n<p>Nast\u0119pnie klikaj\u0105c prawym przyciskiem myszy wybieramy <strong>Properties<\/strong> i w zak\u0142adce <strong>Visualisation<\/strong> zmieniamy typ wizualizacji na <strong>Dialog<\/strong>, 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=\"959\" height=\"697\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image7-1.png\" alt=\"\" class=\"wp-image-22381\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image7-1.png 959w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image7-1-840x611.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image7-1-768x558.png 768w\" sizes=\"auto, (max-width: 959px) 100vw, 959px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>W stworzonym oknie nale\u017cy doda\u0107 ramk\u0119, w kt\u00f3rej zostan\u0105 umieszczone 4 elementy:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tytu\u0142 okna \u2013 sta\u0142a informacja o oknie, w tym przypadku b\u0119dzie to po prostu pole tekstowe z opisem \u201eError in robot controller!\u201d<\/li>\n\n\n\n<li>Opis b\u0142\u0119du z robota \u2013 pole testowe ze zmienn\u0105, kt\u00f3ra przechowuje aktualny b\u0142\u0105d robota.<\/li>\n\n\n\n<li>Przycisk zamkni\u0119cia okna bez \u017cadnej akcji.<\/li>\n\n\n\n<li>Przycisk zamkni\u0119cia okna wraz z resetem wszystkich aktualnych b\u0142\u0119d\u00f3w.<\/li>\n<\/ul>\n\n\n\n<p>Tak wygl\u0105d przyk\u0142adowe okno:<\/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=\"715\" height=\"365\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image8-2.png\" alt=\"\" class=\"wp-image-22382\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Do pola tekstowego, w kt\u00f3rym b\u0119dzie wy\u015bwietlany opis b\u0142\u0119du \u201e%s\u201d, zostanie przypisana zmienna <strong>GVL.Error_description<\/strong>, dzi\u0119ki czemu zawsze najnowszy b\u0142\u0105d b\u0119dzie wy\u015bwietlany na ekranie.<\/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=\"456\" height=\"74\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image9-1.png\" alt=\"\" class=\"wp-image-22383\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Do przycisku \u201eClose\u201d nale\u017cy przypisa\u0107 akcj\u0119 zamykania aktualnie wy\u015bwietlanego okna, jest do tego dedykowana funkcja:<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1792\" height=\"644\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image10-1.png\" alt=\"\" class=\"wp-image-22384\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image10-1.png 1792w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image10-1-840x302.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image10-1-768x276.png 768w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image10-1-1536x552.png 1536w\" sizes=\"auto, (max-width: 1792px) 100vw, 1792px\" \/><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Do przycisku &#8222;Reset and close\u201d nale\u017cy przypisa\u0107 dwie akcje \u2013 jak poprzednio <strong>Close Dialog<\/strong>, oraz do funkcji <strong>Toggle<\/strong> przypisa\u0107 sygna\u0142 resetowania b\u0142\u0119du. Dzi\u0119ki temu w momencie naci\u015bni\u0119cia b\u0142\u0105d zostanie zresetowany i jednocze\u015bnie okno zamkni\u0119te, bez konieczno\u015bci przechodzenia do dodatkowych zak\u0142adek ekranu.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1477\" height=\"472\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image11.png\" alt=\"\" class=\"wp-image-22385\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image11.png 1477w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image11-840x268.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image11-768x245.png 768w\" sizes=\"auto, (max-width: 1477px) 100vw, 1477px\" \/><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Ostatnim elementem jest dodanie funkcji, kt\u00f3ra w odpowiednim momencie otworzy okno z b\u0142\u0119dem i wy\u015bwietli na \u015brodku ekranu sterownika, nad aktualnie wy\u015bwietlanym elementem wizualizacji. Korzystaj\u0105c z biblioteki <strong>Visu Utils<\/strong> &nbsp;mo\u017cna wykorzysta\u0107 znajduj\u0105c\u0105 si\u0119 w niej gotow\u0105 funkcj\u0119 <strong>FbOpenDialog<\/strong>, kt\u00f3ra pozwala w \u0142atwy spos\u00f3b zarz\u0105dza\u0107 oknami. Bibliotek\u0119 mo\u017cna doda\u0107 wchodz\u0105c do menagera bibliotek, a nast\u0119pnie klikaj\u0105c <strong>Add Library<\/strong>.<\/p>\n\n\n\n<p>Nast\u0119pnie tworzona jest niezb\u0119dna zmienna do zarz\u0105dzania oknem dialogowym, <strong>VU.FbOpenDialog<\/strong> \u2013 kt\u00f3ra jako parametry przyjmuje dane okna dialogowego do otwarcia oraz spos\u00f3b w jaki ma si\u0119 otworzy\u0107. Ostatni parametr <strong>xExecute<\/strong> decydowa\u0142 b\u0119dzie, czy okno ma zosta\u0107 otwarte czy zamkni\u0119te.<\/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=\"366\" height=\"119\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image12.png\" alt=\"\" class=\"wp-image-22386\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>W kodzie programu, po odebraniu ca\u0142ego b\u0142\u0119du i przypisania do tabeli, zostanie dodana akcja otworzenia okna. Aby poprawnie nast\u0105pi\u0142o otwarcie okna, do parametru <strong>xExecute<\/strong> zostanie przypisana warto\u015b\u0107 <strong>TRUE<\/strong>. Dodatkowo dodany zosta\u0142 warunek, aby okno nie by\u0142o otwierane, kiedy nast\u0105pi reset b\u0142\u0119du.<\/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=\"1037\" height=\"268\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image13.png\" alt=\"\" class=\"wp-image-22387\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image13.png 1037w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image13-840x217.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image13-768x198.png 768w\" sizes=\"auto, (max-width: 1037px) 100vw, 1037px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Dodatkowo przy zamykaniu okna dialogowego nale\u017cy doda\u0107 wykonanie funkcji z parametrem <strong>xExecute<\/strong> r\u00f3wnym <strong>FALSE<\/strong>, aby zwolni\u0107 funkcj\u0119 i m\u00f3c ponownie wywo\u0142a\u0107 otwarcie okna w momencie wyst\u0105pienia b\u0142\u0119du.<\/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>gvl.fbOpenDialog(sDialogName:='Current_err_view' ,itfClientFilter:=VU.Globals.AllClients, xModal:=TRUE, xExecute:=FALSE,);<\/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=\"1459\" height=\"319\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image14.png\" alt=\"\" class=\"wp-image-22388\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image14.png 1459w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image14-840x184.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image14-768x168.png 768w\" sizes=\"auto, (max-width: 1459px) 100vw, 1459px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Konfiguracja sterownika jest gotowa, w momencie wyst\u0105pienia b\u0142\u0119du, zostanie mu przes\u0142any opis z kontrolera robota, dodatkowo wy\u015bwietli si\u0119 okno na ekranie sterownika, umo\u017cliwiaj\u0105c szybkie zareagowanie i zresetowanie b\u0142\u0119du.<\/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\">Konfiguracja robota&nbsp;<\/h2>\n\n\n\n<p>Aby opis by\u0142 przesy\u0142any do sterownika PLC za ka\u017cdym razem, gdy wyst\u0105pi jaki\u015b b\u0142\u0105d, nale\u017cy zmodyfikowa\u0107 kod programu <strong>autostart<\/strong> na robocie. Gdy wyst\u0105pi b\u0142\u0105d, nale\u017cy przygotowa\u0107 ci\u0105g znak\u00f3w wed\u0142ug wcze\u015bniej przygotowanej procedury i wys\u0142a\u0107 do sterownika. Poniewa\u017c coraz wi\u0119cej informacji przesy\u0142ane jest w w\u0105tku r\u00f3wnoleg\u0142ym (<strong>PC program<\/strong>), stworzony zostanie nowy program, w zak\u0142adce <strong>TASK<\/strong>, kt\u00f3ry b\u0119dzie wykonywa\u0142 dok\u0142adnie tak\u0105 sam\u0105 procedur\u0119, jak program <strong>Send_string<\/strong> w zak\u0142adce <strong>Programs<\/strong>. W tym celu nale\u017cy doda\u0107 nowy program:<\/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=\"643\" height=\"846\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image15.png\" alt=\"\" class=\"wp-image-22389\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image15.png 643w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image15-558x734.png 558w\" sizes=\"auto, (max-width: 643px) 100vw, 643px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Aby \u0142atwo by\u0142o rozpozna\u0107, \u017ce jest to program z obs\u0142ugi proces\u00f3w, na ko\u0144cu zosta\u0142 dodany tekst \u201eTASK\u201d. Zmienne wchodz\u0105ce do funkcji powinny nazywa\u0107 si\u0119 dok\u0142adnie jak samo, jak te w programie <strong>Send_string<\/strong> stworzonym w 8 cz\u0119\u015bci kursu.<\/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=\"750\" height=\"571\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image16.png\" alt=\"\" class=\"wp-image-22390\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Do tego programu nale\u017cy skopiowa\u0107 ca\u0142\u0105 zawarto\u015b\u0107 programu <strong>Send_string<\/strong>. Otrzymany zosta\u0142 gotowy program do przygotowania danych typu <strong>string<\/strong> w programie r\u00f3wnoleg\u0142ym:<\/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=\"1090\" height=\"611\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image17.png\" alt=\"\" class=\"wp-image-22391\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image17.png 1090w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image17-840x471.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image17-768x431.png 768w\" sizes=\"auto, (max-width: 1090px) 100vw, 1090px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Teraz aby wys\u0142a\u0107 opis b\u0142\u0119du wy\u015bwietlany na teach pendancie, nale\u017cy doda\u0107 jedynie lini\u0119 z wywo\u0142aniem przygotowanej procedury. Do odczytania opisu zostanie wykorzystana funkcja <strong>$ERROR<\/strong>, kt\u00f3ra jako parametr przyjmuje numer b\u0142\u0119du, a zwraca opis b\u0142\u0119du w postaci ci\u0105gu znak\u00f3w. Funkcja <strong>$ERROR<\/strong> zosta\u0142a u\u017cyta w pierwszej cz\u0119\u015bci tego poradnika i zwraca aktualny numer b\u0142\u0119du. Przyk\u0142ad u\u017cycia wszystkich funkcji:<\/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>CALL Send_str_TAS.pc($ERROR(ERROR),4)<\/code><\/pre>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>A wi\u0119c ca\u0142o\u015b\u0107 procedury b\u0119dzie wygl\u0105da\u0107 nast\u0119puj\u0105co:<\/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=\"1131\" height=\"363\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image18.png\" alt=\"\" class=\"wp-image-22392\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image18.png 1131w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image18-840x270.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image18-768x246.png 768w\" sizes=\"auto, (max-width: 1131px) 100vw, 1131px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">CZE\u015a\u0106 DRUGA \u2013 Przesy\u0142anie historii b\u0142\u0119d\u00f3w z robota<\/h2>\n\n\n\n<h2 class=\"wp-block-heading\">Konfiguracja robota&nbsp;<\/h2>\n\n\n\n<p>W tej cz\u0119\u015bci zaczniemy od konfiguracji robota, teraz to sterownik PLC b\u0119dzie wystawia\u0142 sygna\u0142 do robota, kt\u00f3ry rozpocznie proces wysy\u0142ania listy b\u0142\u0119d\u00f3w. Domy\u015blnie w programie robota ustawiony zostanie limit 50 ostatnich b\u0142\u0119d\u00f3w, ale liczba ta mo\u017ce by\u0107 \u0142atwo modyfikowana.<\/p>\n\n\n\n<p>W programie <strong>autostart<\/strong> robota, na pocz\u0105tku zostan\u0105 zdefiniowane zmienne kt\u00f3re b\u0119d\u0105 potrzebne do tej cz\u0119\u015bci programu:<\/p>\n\n\n\n<p>&#8211; Sygna\u0142 rozpocz\u0119cia przesy\u0142ania od PLC, b\u0119dzie to przycisk wyzwalany przez operatora: <strong>send_errorlog<\/strong><\/p>\n\n\n\n<p>&#8211; Sygna\u0142 wyj\u015bciowy z robota, informacja, \u017ce przes\u0142a\u0142 ju\u017c wszystkie b\u0142\u0119dy, albo zadan\u0105 ich liczb\u0119, lub trafi\u0142 na koniec listy: <strong>all_errors_send<\/strong><\/p>\n\n\n\n<p>&#8211; Liczba rekord\u00f3w error log do wys\u0142ania, domy\u015blnie ustawiona na 50: <strong>Number_errorlog_to_send<\/strong><\/p>\n\n\n\n<p>&#8211; dodatkowa zmienna potrzebna do inkrementowania i przesy\u0142ania kolejnych rekord\u00f3w.<\/p>\n\n\n\n<p>W robocie pe\u0142na lista zmiennych b\u0119dzie wygl\u0105da\u0107 nast\u0119puj\u0105co:<\/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=\"1088\" height=\"119\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image19.png\" alt=\"\" class=\"wp-image-22393\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image19.png 1088w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image19-840x92.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image19-768x84.png 768w\" sizes=\"auto, (max-width: 1088px) 100vw, 1088px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Aby przes\u0142a\u0107 list\u0119 b\u0142\u0119d\u00f3w, kt\u00f3re wyst\u0105pi\u0142y w spos\u00f3b chronologiczny, nale\u017cy wykorzysta\u0107 funkcj\u0119 <strong>$ERRLOG<\/strong>, funkcja ta jako parametr przyjmuje warto\u015b\u0107 ca\u0142kowit\u0105, okre\u015blaj\u0105c\u0105 numer b\u0142\u0119du na li\u015bcie b\u0142\u0119d\u00f3w. Czyli <strong>$ERRLOG(1)<\/strong> zwr\u00f3ci opis pierwszego b\u0142\u0119du na li\u015bcie. B\u0142\u0119dy b\u0119d\u0105 wysy\u0142ane od najnowszych do starszych.<\/p>\n\n\n\n<p>Do wys\u0142ania opis\u00f3w b\u0142\u0119d\u00f3w, b\u0119dzie wykorzystywana wcze\u015bniej zdefiniowana funkcja <strong>Send_str_TASK.PC<\/strong> z indeksem danych 5.<\/p>\n\n\n\n<p>Poni\u017cej znajduje si\u0119 procedura przes\u0142ania ca\u0142ej listy b\u0142\u0119d\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 10 training    **********************************\n;********      send the error log to PLC - last 50    ***************************\n;\nIF SIG (send_errorlog) == TRUE AND Stat_sending_string == FALSE AND SIG (all_errors_send) == FALSE THEN\n\tIF a &lt; Number_errorlog_to_send THEN\n\t\ta = a + 1\n        $code_to_skip = \"(E0106)\"\n        IF INSTR($ERRLOG(a),$code_to_skip)&gt;0  THEN ;checking if there is next data\n\t\t\tIF INSTR($ERRLOG(a+2),$code_to_skip)&gt;0 THEN ;Checking two lines forward to confirm\n\t\t\t\t;End list of error log\n\t\t\t\tGOTO EndOfErrLog ; fininsh sending due to shorter list then number to send\n\t\t\tELSE\n\t\t\t\ta = a + 2 ;send forward skipping two\n\t\t\tEND\n        END\n        CALL Send_str_TAS.pc ($ERRLOG (a), 5)\n\tELSE ; Fininsh sending data \nEndOfErrLog:\n        a=0\n        SIGNAL all_errors_send\n\tEND \nEND \nIF SIG(send_errorlog)==FALSE AND SIG(all_errors_send)==TRUE THEN \n\tSIGNAL -all_errors_send\nEND<\/code><\/pre>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>W pierwszej cz\u0119\u015bci zosta\u0142 dodany warunek sprawdzenia czy na li\u015bcie jest kolejny kod. B\u0142\u0105d \u201e(E0106)\u201d zostaje zwr\u00f3cony, gdy zmienna przekracza limit i nie ma danych do odczytania. Mo\u017ce zdarzy\u0107 si\u0119 sytuacja, \u017ce wysy\u0142anie b\u0142\u0119d\u00f3w zostanie przerwane lub u\u017cytkownik sam zdefiniuje zmienn\u0105, kt\u00f3ra b\u0119dzie poza zakresem, dlatego sprawdzany jest jeszcze jeden b\u0142\u0105d, dwa rekordy dalej, je\u017celi nadal jest poza zakresem, ko\u0144czone jest przesy\u0142anie danych, a je\u017celi s\u0105 inne b\u0142\u0119dy, kontynuuje si\u0119 przes\u0142anie z pomini\u0119ciem tych b\u0142\u0119d\u00f3w. Ca\u0142o\u015b\u0107 kodu wygl\u0105da jak 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=\"1288\" height=\"545\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image20.png\" alt=\"\" class=\"wp-image-22394\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image20.png 1288w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image20-840x355.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image20-768x325.png 768w\" sizes=\"auto, (max-width: 1288px) 100vw, 1288px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Po przes\u0142aniu wszystkich b\u0142\u0119d\u00f3w sygna\u0142 <strong>all_errors_send<\/strong> jest ustawiany w stan wysoki i procedura przesy\u0142ania b\u0142\u0119d\u00f3w ko\u0144czy si\u0119.<\/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\">Konfiguracja PLC&nbsp;<\/h2>\n\n\n\n<p>W sterowniku PLC najpierw zostan\u0105 zdefiniowane potrzebne zmienne na globalnej li\u015bcie zmiennych (gvl):<\/p>\n\n\n\n<p>&#8211; <strong>Error_log_Array<\/strong> \u2013 jednowymiarowa tablica przechowuj\u0105ca list\u0119 pobranych b\u0142\u0119d\u00f3w,<\/p>\n\n\n\n<p>&#8211; <strong>ErrorLog_increment<\/strong> \u2013 przechowuje liczby ca\u0142kowite, inkrementowana podczas zapisywania kolejnych rekord\u00f3w listy b\u0142\u0119d\u00f3w,<\/p>\n\n\n\n<p>&#8211; <strong>Start_send_errorlog<\/strong> \u2013 zmienna statusowa, wyj\u015bcie ze sterownika PLC, wyzwala przesy\u0142anie listy b\u0142\u0119d\u00f3w,<\/p>\n\n\n\n<p>&#8211; <strong>All_errors_ware_send<\/strong> \u2013 zmienna statusowa, wej\u015bcie sterownika, robot wystawia ten status po przes\u0142aniu ca\u0142ej listy.<\/p>\n\n\n\n<p>W tej cz\u0119\u015bci lista zmiennych globalnych powinna zawiera\u0107 zmienne jak na ilustracji 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=\"446\" height=\"182\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image21.png\" alt=\"\" class=\"wp-image-22395\"\/><\/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 aby odczyta\u0107 kolejne b\u0142\u0119dy, zostanie wykorzystana wcze\u015bniej napisana funkcja odczytywania ci\u0105gu znak\u00f3w od robota, zostanie dodany nowy identyfikator \u201e5\u201d. Ca\u0142o\u015b\u0107 procedury b\u0119dzie wygl\u0105da\u0107 nast\u0119puj\u0105co:<\/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=\"1325\" height=\"105\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image22.png\" alt=\"\" class=\"wp-image-22396\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image22.png 1325w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image22-840x67.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image22-768x61.png 768w\" sizes=\"auto, (max-width: 1325px) 100vw, 1325px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Aby wy\u015bwietli\u0107 dane na ekranie, nale\u017cy doda\u0107 tabel\u0119 i przypisa\u0107 zmienn\u0105 <strong>GVL.Error_log_Array<\/strong> z jedn\u0105 kolumn\u0105. Dodatkowo mo\u017cna skonfigurowa\u0107 nazw\u0119 kolumny np. <strong>Error code and Description<\/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=\"1532\" height=\"476\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image23.png\" alt=\"\" class=\"wp-image-22397\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image23.png 1532w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image23-840x261.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image23-768x239.png 768w\" sizes=\"auto, (max-width: 1532px) 100vw, 1532px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Dodatkowo potrzebny jest przycisk, kt\u00f3ry uruchomi procedur\u0119 przesy\u0142ania log\u00f3w b\u0142\u0119d\u00f3w. Przycisk b\u0119dzie mia\u0142 jedno zadanie: wys\u0142a\u0107 do robota bit rozpocz\u0119cia. Po klikni\u0119ciu w przycisk powinien zmieni\u0107 si\u0119 stan zmiennej <strong>start_send_errorlog<\/strong> na wysoki. Dodatkowo przycisk zostanie dezaktywowany a\u017c do zako\u0144czenia przesy\u0142ania.<\/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=\"1359\" height=\"525\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image24.png\" alt=\"\" class=\"wp-image-22398\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image24.png 1359w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image24-840x325.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image24-768x297.png 768w\" sizes=\"auto, (max-width: 1359px) 100vw, 1359px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Na koniec nale\u017cy zako\u0144czy\u0107 procedur\u0119 i zmieni\u0107 stan sygna\u0142u na niski, dlatego do g\u0142\u00f3wnego programu zostan\u0105 dodane poni\u017ce linijki kodu:<\/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 gvl.Start_send_errorlog=1 AND gvl.All_errors_ware_send=1 THEN \n\tgvl.Start_send_errorlog:=0;\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>Ostatnim krokiem jest dodanie zmiennych statusowych do ramki komunikacyjnej. Jeden bit wyj\u015bciowy do rozpocz\u0119cia przesy\u0142ania:<\/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=\"881\" height=\"243\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image25.png\" alt=\"\" class=\"wp-image-22399\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image25.png 881w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image25-840x232.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image25-768x212.png 768w\" sizes=\"auto, (max-width: 881px) 100vw, 881px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Oraz jeden wej\u015bciowy ko\u0144cz\u0105cy sekwencj\u0119.<\/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=\"844\" height=\"268\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image26.png\" alt=\"\" class=\"wp-image-22400\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image26.png 844w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image26-840x268.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image26-768x244.png 768w\" sizes=\"auto, (max-width: 844px) 100vw, 844px\" \/><\/figure>\n<\/div>\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 zmodyfikowan\u0105 aplikacj\u0119, wystarczy \u017ce wyst\u0105pi b\u0142\u0105d na robocie, a od razu na ekranie pojawi si\u0119 komunikat b\u0142\u0119du z opisem oraz mo\u017cliwo\u015bci\u0105 resetu b\u0142\u0119du:<\/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=\"921\" height=\"523\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image27.png\" alt=\"\" class=\"wp-image-22401\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image27.png 921w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image27-840x477.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image27-768x436.png 768w\" sizes=\"auto, (max-width: 921px) 100vw, 921px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Dodatkowo po przej\u015bciu do okna z histori\u0105 b\u0142\u0119d\u00f3w nale\u017cy klikn\u0105\u0107 przycisk <strong>Download error log<\/strong> i lista zacznie si\u0119 od\u015bwie\u017ca\u0107. Na testowanym robocie przes\u0142anie wszystkich 50 pozycji log\u00f3w b\u0142\u0119d\u00f3w zaj\u0119\u0142o <strong>24 sekundy<\/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=\"870\" height=\"499\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image28.png\" alt=\"\" class=\"wp-image-22402\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image28.png 870w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image28-840x482.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/03\/image28-768x440.png 768w\" sizes=\"auto, (max-width: 870px) 100vw, 870px\" \/><\/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\/03\/kawasaki-plc-10.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-ze-sterownika-plc-do-robota-pelnej-nazwy-programu-do-wykonania-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-11\/\">W ostatniej cz\u0119\u015bci<\/a> przes\u0142ana b\u0119dzie ze sterownika PLC nazwa programu, kt\u00f3ra najpierw b\u0119dzie sprawdzona, a nast\u0119pnie \u2013 je\u017celi taki program b\u0119dzie w pami\u0119ci \u2013 zostanie wykonany.<\/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=\"69ece4254bc00\">\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=\"d9b23e5d02\"\/>\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=\"69ece4254bc00\"] 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 przygotowana zostanie procedura przes\u0142ania 50 ostatnich b\u0142\u0119d\u00f3w z robota oraz dodatkowo gdy wyst\u0105pi b\u0142\u0105d, zostanie wy\u015bwietlony jego kod oraz opis.<\/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-22344","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 v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\r\n<title>Przesy\u0142anie do sterownika PLC historii ostatnich b\u0142\u0119d\u00f3w z robota | Wymiana danych pomi\u0119dzy robotem Kawasaki a sterownikiem PLC, odc. 10 | Poradnik Automatyka<\/title>\r\n<meta name=\"description\" content=\"Dowiedz si\u0119, jak przes\u0142a\u0107 50 ostatnich b\u0142\u0119d\u00f3w z robota do sterownika, oraz jak po wyst\u0105pieniu b\u0142\u0119du wy\u015bwietli\u0107 jego kod oraz opis.\" \/>\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\/przesylanie-do-sterownika-plc-historii-ostatnich-bledow-z-robota-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-10\/\" \/>\r\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\r\n<meta property=\"og:type\" content=\"article\" \/>\r\n<meta property=\"og:title\" content=\"Przesy\u0142anie do sterownika PLC historii ostatnich b\u0142\u0119d\u00f3w z robota | Wymiana danych pomi\u0119dzy robotem Kawasaki a sterownikiem PLC, odc. 10 | Poradnik Automatyka\" \/>\r\n<meta property=\"og:description\" content=\"Dowiedz si\u0119, jak przes\u0142a\u0107 50 ostatnich b\u0142\u0119d\u00f3w z robota do sterownika, oraz jak po wyst\u0105pieniu b\u0142\u0119du wy\u015bwietli\u0107 jego kod oraz opis.\" \/>\r\n<meta property=\"og:url\" content=\"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\/\" \/>\r\n<meta property=\"og:site_name\" content=\"Poradnik Automatyka\" \/>\r\n<meta property=\"article:published_time\" content=\"2025-03-07T10:00:00+00:00\" \/>\r\n<meta property=\"article:modified_time\" content=\"2025-03-11T19:52:28+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=\"16 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\\\/przesylanie-do-sterownika-plc-historii-ostatnich-bledow-z-robota-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-10\\\/#article\",\"isPartOf\":{\"@id\":\"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\\\/\"},\"author\":{\"name\":\"Konrad Sendrowicz\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/#\\\/schema\\\/person\\\/e7fc017b5877f0cb38f4b41449057c81\"},\"headline\":\"Przesy\u0142anie do sterownika PLC historii ostatnich b\u0142\u0119d\u00f3w z robota | Wymiana danych pomi\u0119dzy robotem Kawasaki a sterownikiem PLC, odc. 10\",\"datePublished\":\"2025-03-07T10:00:00+00:00\",\"dateModified\":\"2025-03-11T19:52:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"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\\\/\"},\"wordCount\":1995,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/#organization\"},\"image\":{\"@id\":\"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\\\/#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\\\/przesylanie-do-sterownika-plc-historii-ostatnich-bledow-z-robota-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-10\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"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\\\/\",\"url\":\"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\\\/\",\"name\":\"Przesy\u0142anie do sterownika PLC historii ostatnich b\u0142\u0119d\u00f3w z robota | Wymiana danych pomi\u0119dzy robotem Kawasaki a sterownikiem PLC, odc. 10 | Poradnik Automatyka\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"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\\\/#primaryimage\"},\"image\":{\"@id\":\"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\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2023\\\/02\\\/image1.jpg\",\"datePublished\":\"2025-03-07T10:00:00+00:00\",\"dateModified\":\"2025-03-11T19:52:28+00:00\",\"description\":\"Dowiedz si\u0119, jak przes\u0142a\u0107 50 ostatnich b\u0142\u0119d\u00f3w z robota do sterownika, oraz jak po wyst\u0105pieniu b\u0142\u0119du wy\u015bwietli\u0107 jego kod oraz opis.\",\"breadcrumb\":{\"@id\":\"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\\\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"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\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"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\\\/#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\\\/przesylanie-do-sterownika-plc-historii-ostatnich-bledow-z-robota-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-10\\\/#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\":\"Przesy\u0142anie do sterownika PLC historii ostatnich b\u0142\u0119d\u00f3w z robota | Wymiana danych pomi\u0119dzy robotem Kawasaki a sterownikiem PLC, odc. 10\"}]},{\"@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\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/K.-Sendrowicz.jpg\",\"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":"Przesy\u0142anie do sterownika PLC historii ostatnich b\u0142\u0119d\u00f3w z robota | Wymiana danych pomi\u0119dzy robotem Kawasaki a sterownikiem PLC, odc. 10 | Poradnik Automatyka","description":"Dowiedz si\u0119, jak przes\u0142a\u0107 50 ostatnich b\u0142\u0119d\u00f3w z robota do sterownika, oraz jak po wyst\u0105pieniu b\u0142\u0119du wy\u015bwietli\u0107 jego kod oraz opis.","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\/przesylanie-do-sterownika-plc-historii-ostatnich-bledow-z-robota-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-10\/","og_locale":"pl_PL","og_type":"article","og_title":"Przesy\u0142anie do sterownika PLC historii ostatnich b\u0142\u0119d\u00f3w z robota | Wymiana danych pomi\u0119dzy robotem Kawasaki a sterownikiem PLC, odc. 10 | Poradnik Automatyka","og_description":"Dowiedz si\u0119, jak przes\u0142a\u0107 50 ostatnich b\u0142\u0119d\u00f3w z robota do sterownika, oraz jak po wyst\u0105pieniu b\u0142\u0119du wy\u015bwietli\u0107 jego kod oraz opis.","og_url":"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\/","og_site_name":"Poradnik Automatyka","article_published_time":"2025-03-07T10:00:00+00:00","article_modified_time":"2025-03-11T19:52:28+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":"16 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"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\/#article","isPartOf":{"@id":"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\/"},"author":{"name":"Konrad Sendrowicz","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#\/schema\/person\/e7fc017b5877f0cb38f4b41449057c81"},"headline":"Przesy\u0142anie do sterownika PLC historii ostatnich b\u0142\u0119d\u00f3w z robota | Wymiana danych pomi\u0119dzy robotem Kawasaki a sterownikiem PLC, odc. 10","datePublished":"2025-03-07T10:00:00+00:00","dateModified":"2025-03-11T19:52:28+00:00","mainEntityOfPage":{"@id":"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\/"},"wordCount":1995,"commentCount":0,"publisher":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#organization"},"image":{"@id":"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\/#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\/przesylanie-do-sterownika-plc-historii-ostatnich-bledow-z-robota-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-10\/#respond"]}]},{"@type":"WebPage","@id":"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\/","url":"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\/","name":"Przesy\u0142anie do sterownika PLC historii ostatnich b\u0142\u0119d\u00f3w z robota | Wymiana danych pomi\u0119dzy robotem Kawasaki a sterownikiem PLC, odc. 10 | Poradnik Automatyka","isPartOf":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#website"},"primaryImageOfPage":{"@id":"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\/#primaryimage"},"image":{"@id":"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\/#primaryimage"},"thumbnailUrl":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/02\/image1.jpg","datePublished":"2025-03-07T10:00:00+00:00","dateModified":"2025-03-11T19:52:28+00:00","description":"Dowiedz si\u0119, jak przes\u0142a\u0107 50 ostatnich b\u0142\u0119d\u00f3w z robota do sterownika, oraz jak po wyst\u0105pieniu b\u0142\u0119du wy\u015bwietli\u0107 jego kod oraz opis.","breadcrumb":{"@id":"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\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["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\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"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\/#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\/przesylanie-do-sterownika-plc-historii-ostatnich-bledow-z-robota-wymiana-danych-pomiedzy-robotem-kawasaki-a-sterownikiem-plc-odc-10\/#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":"Przesy\u0142anie do sterownika PLC historii ostatnich b\u0142\u0119d\u00f3w z robota | Wymiana danych pomi\u0119dzy robotem Kawasaki a sterownikiem PLC, odc. 10"}]},{"@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\/wp-content\/uploads\/2023\/04\/K.-Sendrowicz.jpg","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\/22344","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=22344"}],"version-history":[{"count":3,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/posts\/22344\/revisions"}],"predecessor-version":[{"id":22468,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/posts\/22344\/revisions\/22468"}],"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=22344"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/categories?post=22344"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/tags?post=22344"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}