{"id":27227,"date":"2026-09-15T11:54:19","date_gmt":"2026-09-15T09:54:19","guid":{"rendered":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/?p=27227"},"modified":"2026-09-15T11:54:21","modified_gmt":"2026-09-15T09:54:21","slug":"conveyor-tracking-w-astorinoide-wirtualna-aplikacja-z-przenosnikiem-tasmowym","status":"publish","type":"post","link":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/conveyor-tracking-w-astorinoide-wirtualna-aplikacja-z-przenosnikiem-tasmowym\/","title":{"rendered":"Conveyor tracking w AstorinoIDE \u2013 wirtualna aplikacja z przeno\u015bnikiem ta\u015bmowym"},"content":{"rendered":"\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Conveyor tracking jest funkcj\u0105 pozwalaj\u0105c\u0105 robotowi wykonywa\u0107 operacje na detalach znajduj\u0105cych si\u0119 na poruszaj\u0105cym si\u0119 przeno\u015bniku. Pozycja elementu nie jest w takim przypadku traktowana jako sta\u0142y punkt w przestrzeni. Robot wykorzystuje informacj\u0119 o przemieszczeniu ta\u015bmy i na jej podstawie na bie\u017c\u0105co aktualizuje po\u0142o\u017cenie \u015bledzonego detalu.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">W tym artykule przygotujemy kompletn\u0105 aplikacj\u0119 conveyor tracking wy\u0142\u0105cznie z wykorzystaniem <strong>symulatora dost\u0119pnego w \u015brodowisku AstorinoIDE<\/strong>. Nie b\u0119dzie potrzebny fizyczny przeno\u015bnik, enkoder ani czujnik.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wirtualny robot b\u0119dzie pobiera\u0142 poruszaj\u0105ce si\u0119 po ta\u015bmie kostki, a nast\u0119pnie odk\u0142ada\u0142 je do dw\u00f3ch gniazd magazynu.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Z tego artyku\u0142u dowiesz si\u0119:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>jak utworzy\u0107 i skonfigurowa\u0107 wirtualny przeno\u015bnik w AstorinoIDE,<\/li>\n\n\n\n<li>czym r\u00f3\u017cni si\u0119 obiekt typu Work od Obstacle,<\/li>\n\n\n\n<li>jak uruchomi\u0107 wirtualny enkoder,<\/li>\n\n\n\n<li>jak skonfigurowa\u0107 parametry conveyor tracking,<\/li>\n\n\n\n<li>jak utworzy\u0107 wirtualny czujnik wykorzystuj\u0105c funkcj\u0119 Collision Detection,<\/li>\n\n\n\n<li>jak wykorzysta\u0107 sygna\u0142y wewn\u0119trzne do wykrywania detali,<\/li>\n\n\n\n<li>jak przygotowa\u0107 punkty pobierania i odk\u0142adania,<\/li>\n\n\n\n<li>jak dzia\u0142a zapis pozycji detalu wzgl\u0119dem enkodera,<\/li>\n\n\n\n<li>do czego s\u0142u\u017c\u0105 instrukcje CVCOOPJT, CVRESET, CVPOS, CVWAIT, CVLAPPRO, CVLMOVE, CVDELAY i CVLDEPART,<\/li>\n\n\n\n<li>jak wykona\u0107 kompletny program pobieraj\u0105cy dwa detale z poruszaj\u0105cego si\u0119 przeno\u015bnika.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Za\u0142o\u017cenia aplikacji<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Celem aplikacji jest pobranie dw\u00f3ch kostek transportowanych przez wirtualny przeno\u015bnik i umieszczenie ich w dw\u00f3ch gniazdach magazynu.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Podczas ca\u0142ego procesu przeno\u015bnik pozostaje w ruchu. Robot nie oczekuje wi\u0119c na zatrzymanie detalu, lecz wykonuje jego pobranie podczas jazdy ta\u015bmy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Schemat dzia\u0142ania aplikacji jest nast\u0119puj\u0105cy:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">1. Kostka porusza si\u0119 razem z przeno\u015bnikiem.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">2. Kostka dociera do wirtualnego czujnika.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">3. Kontakt kostki z czujnikiem powoduje aktywowanie sygna\u0142u wewn\u0119trznego.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">4. Program odczytuje aktualn\u0105 pozycj\u0119 wirtualnego enkodera.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">5. Pozycja enkodera zostaje przypisana do punktu pobierania kostki.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">6. Kostka kontynuuje ruch na przeno\u015bniku.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">7. Robot synchronizuje sw\u00f3j ruch z ta\u015bm\u0105 i pobiera poruszaj\u0105cy si\u0119 detal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">8. Detal zostaje przeniesiony do magazynu.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">9. Procedura jest powtarzana dla drugiej kostki.<\/p>\n\n\n\n<div style=\"height:40px\" 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=\"802\" height=\"618\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2026\/09\/01.png\" alt=\"\" class=\"wp-image-27272\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2026\/09\/01.png 802w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2026\/09\/01-768x592.png 768w\" sizes=\"auto, (max-width: 802px) 100vw, 802px\" \/><figcaption class=\"wp-element-caption\"><em>Gotowe stanowisko w oknie Visualization: robot Astorino, przeno\u015bnik, czujnik, kostki oraz magazyn<\/em><\/figcaption><\/figure>\n<\/div>\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Przygotowanie wizualizacji<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Do utworzenia stanowiska wykorzystujemy okno <strong>Visualization<\/strong> programu AstorinoIDE.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wizualizacja pozwala na dodawanie modeli STL oraz podstawowych bry\u0142 i przypisywanie im jednej z trzech klas:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Obstacle<\/strong> \u2013 nieruchomy element stanowiska,<\/li>\n\n\n\n<li><strong>Work<\/strong> \u2013 element, kt\u00f3ry mo\u017ce by\u0107 przemieszczany przez robota,<\/li>\n\n\n\n<li><strong>Tool<\/strong> \u2013 element zwi\u0105zany z ki\u015bci\u0105 robota.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">W przypadku naszej aplikacji kostki musz\u0105 by\u0107 obiektami klasy <strong>Work<\/strong>, poniewa\u017c tylko obiekty tego typu mog\u0105 by\u0107 przemieszczane przez wirtualny przeno\u015bnik oraz pobierane przez robota.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aby doda\u0107 transportowane kostki do wizualizacji nale\u017cy skorzysta\u0107 z zak\u0142adki <strong>Shape Generator<\/strong>:<\/p>\n\n\n\n<div style=\"height:40px\" 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=\"335\" height=\"36\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2026\/09\/02.png\" alt=\"\" class=\"wp-image-27273\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Dla tej aplikacji stworzone zosta\u0142y dwie kostki o nast\u0119puj\u0105cych parametrach:<\/p>\n\n\n\n<div style=\"height:40px\" 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=\"386\" height=\"367\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2026\/09\/03.png\" alt=\"\" class=\"wp-image-27274\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">W polu <strong>Cube side size (A)<\/strong> okre\u015bla si\u0119 d\u0142ugo\u015b\u0107 boku sze\u015bcianu. Dla tej aplikacji przyj\u0119to warto\u015b\u0107 <strong>25 mm<\/strong>. Nast\u0119pnie w sekcji <strong>Location<\/strong> nale\u017cy poda\u0107 pocz\u0105tkowe wsp\u00f3\u0142rz\u0119dne obiektu w przestrzeni roboczej. W polu <strong>Add shape as<\/strong> nale\u017cy wybra\u0107 typ <strong>Work<\/strong>, poniewa\u017c tylko obiekty tej klasy mog\u0105 by\u0107 transportowane przez wirtualny przeno\u015bnik oraz chwytane przez robota. Nast\u0119pnie mo\u017cna wybra\u0107 kolor obiektu i zatwierdzi\u0107 jego utworzenie przyciskiem <strong>Add<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dla drugiej kostki nale\u017cy zastosowa\u0107 takie same ustawienia, jak dla pierwszej. Jedyn\u0105 zmian\u0105 jest warto\u015b\u0107 wsp\u00f3\u0142rz\u0119dnej <strong>Y<\/strong> w sekcji <strong>Location<\/strong>, kt\u00f3r\u0105 ustawiamy na <strong>-50 mm<\/strong>. Dzi\u0119ki temu druga kostka zostaje umieszczona na ta\u015bmoci\u0105gu w odpowiedniej odleg\u0142o\u015bci od pierwszej, co zapewnia prawid\u0142owy odst\u0119p mi\u0119dzy detalami podczas symulacji.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Po zako\u0144czeniu rozmieszczania element\u00f3w w symulacji warto skorzysta\u0107 z okna <strong>Settings<\/strong>, dost\u0119pnego z poziomu paska narz\u0119dzi okna <strong>Visualization<\/strong>. W tej zak\u0142adce szczeg\u00f3lnie przydatne s\u0105 funkcje <strong>Record<\/strong>, <strong>Restore<\/strong> oraz opcje <strong>Import<\/strong> i <strong>Export<\/strong>, kt\u00f3re u\u0142atwiaj\u0105 wielokrotne uruchamianie tej samej symulacji bez konieczno\u015bci ponownego r\u0119cznego ustawiania wszystkich element\u00f3w.<\/p>\n\n\n\n<div style=\"height:40px\" 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=\"320\" height=\"617\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2026\/09\/04.png\" alt=\"\" class=\"wp-image-27275\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Record\/Restore<\/h3>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Przyciski umo\u017cliwiaj\u0105 zapisanie bie\u017c\u0105cego rozmieszczenia element\u00f3w <strong>Work<\/strong> i <strong>Obstacle<\/strong>, a nast\u0119pnie przywr\u00f3cenie go po wykonaniu symulacji.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Jest to szczeg\u00f3lnie przydatne w naszym przyk\u0142adzie, poniewa\u017c po zako\u0144czeniu programu kostki znajduj\u0105 si\u0119 ju\u017c w magazynie. Funkcja <strong>Restore<\/strong> pozwala szybko przywr\u00f3ci\u0107 je do po\u0142o\u017cenia pocz\u0105tkowego.<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Import\/Export<\/h3>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Pozwala zapisa\u0107 przygotowan\u0105 scen\u0119 do pliku XML oraz ponownie j\u0105 zaimportowa\u0107.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dzi\u0119ki temu nie trzeba przy ka\u017cdym uruchomieniu AstorinoIDE ponownie rozmieszcza\u0107 wszystkich element\u00f3w stanowiska. AstorinoIDE nie zapisuje samych modeli STL do XML \u2014 zapisuje jedynie ich odwo\u0142ania, dlatego pliki STL trzeba przechowywa\u0107 osobno, najlepiej w tym samym folderze.<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Utworzenie wirtualnego przeno\u015bnika<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kolejnym krokiem jest dodanie wirtualnego przeno\u015bnika.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">W oknie <strong>Visualization<\/strong> wybieramy przycisk konfiguracji <strong>Conveyor Settings<\/strong>.<\/p>\n\n\n\n<div style=\"height:40px\" 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=\"385\" height=\"72\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2026\/09\/05.png\" alt=\"\" class=\"wp-image-27276\"\/><figcaption class=\"wp-element-caption\"><em>Zak\u0142adka Conveyor Settings w oknie wizualizacji<\/em><\/figcaption><\/figure>\n<\/div>\n\n\n<div style=\"height:40px\" 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=\"318\" height=\"398\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2026\/09\/06.png\" alt=\"\" class=\"wp-image-27277\"\/><figcaption class=\"wp-element-caption\"><em>Konfiguracja wirtualnego przeno\u015bnika<\/em><\/figcaption><\/figure>\n<\/div>\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Number<\/strong> przypisuje wirtualny przeno\u015bnik do jednego z dw\u00f3ch kana\u0142\u00f3w conveyor trackingu. Wyb\u00f3r <code>Conveyor 1<\/code> powoduje, \u017ce przeno\u015bnik wsp\u00f3\u0142pracuje z danymi pierwszego conveyora, odczytywanymi w programie m.in. za pomoc\u0105 <code>CVPOS<\/code> i wybieranymi przez <code>CVCOOPJT 8.<\/code><\/li>\n\n\n\n<li><strong>Internal signal conveyor ON\/OFF<\/strong> wskazuje sygna\u0142 wewn\u0119trzny odpowiedzialny za uruchamianie i zatrzymywanie ta\u015bmy. Dla warto\u015bci 2 przeno\u015bnik jest sterowany sygna\u0142em 2002, czyli np. SIGNAL 2002 uruchamia ta\u015bm\u0119, a SIGNAL -2002 j\u0105 zatrzymuje.<\/li>\n\n\n\n<li><strong>Internal signal conveyor DIR<\/strong> s\u0142u\u017cy do sterowania kierunkiem ruchu przeno\u015bnika za pomoc\u0105 sygna\u0142u wewn\u0119trznego. Je\u017celi opcja pozostaje ustawiona na OFF, kierunek nie jest prze\u0142\u0105czany programowo przez ten sygna\u0142.<\/li>\n\n\n\n<li><strong>Size [mm]<\/strong> ustala wymiary wirtualnego przeno\u015bnika.<\/li>\n\n\n\n<li><strong>Location<\/strong> s\u0142u\u017cy do ustawienia po\u0142o\u017cenia przeno\u015bnika w przestrzeni symulacji.<\/li>\n\n\n\n<li><strong>Increment<\/strong> okre\u015bla warto\u015b\u0107 pojedynczego kroku podczas zmiany po\u0142o\u017cenia przeno\u015bnik\u00f3w za pomoc\u0105 suwak\u00f3w.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Po ustawieniu odpowiednich warto\u015bci klikamy przycisk <strong>Apply<\/strong> w celu zatwierdzenia wprowadzonych zmian lub <strong>Remove<\/strong> w celu usuni\u0119cia wybranego przeno\u015bnika z wizualizacji.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wirtualny conveyor mo\u017ce transportowa\u0107 wy\u0142\u0105cznie obiekty klasy <strong>Work<\/strong>. Aby obiekt zosta\u0142 przej\u0119ty przez conveyor, musi znale\u017a\u0107 si\u0119 wewn\u0105trz obszaru reprezentuj\u0105cego jego wirtualn\u0105 bry\u0142\u0119:<\/p>\n\n\n\n<div style=\"height:40px\" 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=\"653\" height=\"455\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2026\/09\/07.png\" alt=\"\" class=\"wp-image-27278\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Konfiguracja conveyor trackingu<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Samo utworzenie poruszaj\u0105cego si\u0119 modelu ta\u015bmy nie wystarcza jeszcze do wykonania conveyor trackingu.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Robot musi wiedzie\u0107:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>z kt\u00f3rym conveyorem wsp\u00f3\u0142pracuje,<\/li>\n\n\n\n<li>jaka jest zale\u017cno\u015b\u0107 pomi\u0119dzy sygna\u0142em enkodera a przemieszczeniem ta\u015bmy,<\/li>\n\n\n\n<li>w kt\u00f3rym kierunku wzgl\u0119dem uk\u0142adu BASE porusza si\u0119 conveyor.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">W tym celu nale\u017cy przej\u015b\u0107 do <strong>Setup<\/strong> <strong>-&gt; System Configuration -&gt; Conveyor Tracking -&gt; Conveyor 1<\/strong>:<\/p>\n\n\n\n<div style=\"height:40px\" 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=\"272\" height=\"122\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2026\/09\/08.png\" alt=\"\" class=\"wp-image-27279\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:40px\" 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=\"795\" height=\"372\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2026\/09\/09.png\" alt=\"\" class=\"wp-image-27280\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2026\/09\/09.png 795w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2026\/09\/09-768x359.png 768w\" sizes=\"auto, (max-width: 795px) 100vw, 795px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Parametr <strong>Resolution [mm\/bit] <\/strong>okre\u015bla, ilu milimetrom rzeczywistego przemieszczenia ta\u015bmy odpowiada jeden impuls enkodera.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Parametr <strong>Conv Moving Direction<\/strong> okre\u015bla kierunek ruchu conveyora wzgl\u0119dem uk\u0142adu wsp\u00f3\u0142rz\u0119dnych BASE robota.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Po ustawieniu odpowiednich parametr\u00f3w w tym miejscu przechodzimy do zak\u0142adki <strong>Virtual Encoder<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">W rzeczywistym stanowisku pozycja ta\u015bmy jest okre\u015blana na podstawie impuls\u00f3w generowanych przez enkoder zamontowany przy przeno\u015bniku. Podczas pracy wy\u0142\u0105cznie w symulatorze jego rol\u0119 mo\u017ce przej\u0105\u0107 Virtual Encoder.<\/p>\n\n\n\n<div style=\"height:40px\" 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=\"792\" height=\"380\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2026\/09\/10.png\" alt=\"\" class=\"wp-image-27281\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2026\/09\/10.png 792w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2026\/09\/10-768x368.png 768w\" sizes=\"auto, (max-width: 792px) 100vw, 792px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">W tym oknie zaznaczamy <strong>Enable Virtual Encoder<\/strong> oraz wybieramy conveyor o numerze ustawionym wcze\u015bniej, w tym przypadku: <strong>CONV1<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">W przedstawionej aplikacji nie ma potrzeby u\u017cywania przycisku <strong>Start<\/strong> w zak\u0142adce <strong>Virtual Encoder<\/strong>. Ruch wirtualnego przeno\u015bnika oraz aktualizacja jego po\u0142o\u017cenia rozpoczynaj\u0105 si\u0119 po uruchomieniu conveyora w programie za pomoc\u0105 SIGNAL 2002.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>WA\u017bNE: w u\u017cywanej konfiguracji po ponownym uruchomieniu AstorinoIDE nale\u017cy sprawdzi\u0107, czy opcja Enable Virtual Encoder nadal jest aktywna.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bez pracuj\u0105cego encodera funkcje wykorzystuj\u0105ce po\u0142o\u017cenie conveyora nie b\u0119d\u0105 mia\u0142y poprawnej informacji o jego przemieszczeniu.<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Symulacja czujnika obecno\u015bci detalu<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">W rzeczywistym stanowisku do wykrywania kostki mo\u017cna wykorzysta\u0107 czujnik optyczny lub indukcyjny pod\u0142\u0105czony do wej\u015bcia sterownika. W naszej aplikacji stanowisko jest jednak ca\u0142kowicie wirtualne. Do zasymulowania czujnika wykorzystujemy funkcj\u0119 <strong>Collision Detection<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mechanizm ten wykrywa przenikanie si\u0119 granic dw\u00f3ch obiekt\u00f3w w wizualizacji i mo\u017ce w takim momencie ustawi\u0107 wskazany sygna\u0142 wewn\u0119trzny.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">AstorinoIDE umo\u017cliwia definiowanie detekcji pomi\u0119dzy:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Obstacle i Work,<\/li>\n\n\n\n<li>Obstacle i Tool.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Dzi\u0119ki temu niewielki nieruchomy obiekt typu <strong>Obstacle<\/strong> mo\u017ce pe\u0142ni\u0107 funkcj\u0119 wirtualnego czujnika, natomiast przeje\u017cd\u017caj\u0105ca kostka jest obiektem <strong>Work<\/strong>:<\/p>\n\n\n\n<div style=\"height:40px\" 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=\"577\" height=\"517\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2026\/09\/11.png\" alt=\"\" class=\"wp-image-27282\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Aby skonfigurowa\u0107 czujnik przechodzimy do zak\u0142adki <strong>Collision Detection<\/strong> w oknie symulacji.<\/p>\n\n\n\n<div style=\"height:40px\" 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=\"387\" height=\"69\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2026\/09\/12.png\" alt=\"\" class=\"wp-image-27283\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Nast\u0119pnie wskazujemy:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>jako <strong>Obstacle <\/strong>\u2013 obiekt reprezentuj\u0105cy czujnik,<\/li>\n\n\n\n<li>jako <strong>Work <\/strong>\u2013 transportowan\u0105 kostk\u0119,<\/li>\n\n\n\n<li>jako<strong> Internal Signal<\/strong> \u2013 numer 8.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Po dodaniu pary do tabeli AstorinoIDE zacznie monitorowa\u0107 kontakt tych dw\u00f3ch element\u00f3w.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"321\" height=\"380\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2026\/09\/13.png\" alt=\"\" class=\"wp-image-27284\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Obstacle object:<\/strong> wybrany obiekt otoczenia w symulacji, kt\u00f3ry b\u0119dzie odgrywa\u0142 rol\u0119 naszego czujnika. W tym przypadku jest to obiekt z <strong>Shape Generator<\/strong> typu <strong>Cylinder<\/strong>.<\/li>\n\n\n\n<li><strong>Work\/Tool object:<\/strong> wybieramy obiekt, kt\u00f3ry b\u0119dzie wchodzi\u0142 w interakcje z czujnikiem.<\/li>\n\n\n\n<li><strong>Internal Signal:<\/strong> wybieramy numer sygna\u0142u, kt\u00f3ry zostanie aktywowany po kontakcie obiektu z czujnikiem.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Sygna\u0142 wewn\u0119trzny nr 8 jest w j\u0119zyku AS odczytywany jako: 2008. Dlatego w programie mo\u017cemy zastosowa\u0107: SWAIT 2008.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Robot zatrzyma wykonywanie kolejnych instrukcji a\u017c do chwili, w kt\u00f3rej kostka znajdzie si\u0119 w obszarze czujnika.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nale\u017cy pami\u0119ta\u0107, \u017ce Collision Detection bazuje na przenikaniu si\u0119 obszar\u00f3w granicznych modeli i nie stanowi dok\u0142adnej symulacji fizycznego czujnika. Sama dokumentacja zwraca uwag\u0119, \u017ce uproszczony spos\u00f3b obliczania kolizji nie gwarantuje stuprocentowo dok\u0142adnego odwzorowania kontaktu.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Poprawno\u015b\u0107 dzia\u0142ania czujnika mo\u017cna zweryfikowa\u0107 w <strong>Tools -&gt; I\/O Monitor<\/strong>. I\/O Monitor wy\u015bwietla:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>wej\u015bcia fizyczne,<\/li>\n\n\n\n<li>wyj\u015bcia,<\/li>\n\n\n\n<li>sygna\u0142y wewn\u0119trzne,<\/li>\n\n\n\n<li>sygna\u0142y dost\u0119pne na ramieniu robota.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Stan wysoki sygna\u0142u jest sygnalizowany pod\u015bwietleniem odpowiedniego pola.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Po wjechaniu kostki w obszar wirtualnego czujnika powinien zosta\u0107 aktywowany <strong>Internal Signal 8<\/strong>.<\/p>\n\n\n\n<div style=\"height:40px\" 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=\"721\" height=\"445\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2026\/09\/14.png\" alt=\"\" class=\"wp-image-27285\"\/><figcaption class=\"wp-element-caption\"><em>Kostka przed czujnikiem, sygna\u0142 8 nieaktywny.<\/em><\/figcaption><\/figure>\n<\/div>\n\n\n<div style=\"height:40px\" 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=\"454\" height=\"413\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2026\/09\/15.png\" alt=\"\" class=\"wp-image-27286\"\/><figcaption class=\"wp-element-caption\"><em>Kostka w obszarze czujnika<\/em><\/figcaption><\/figure>\n<\/div>\n\n\n<div style=\"height:40px\" 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=\"717\" height=\"446\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2026\/09\/16.png\" alt=\"\" class=\"wp-image-27287\"\/><figcaption class=\"wp-element-caption\"><em>Kostka w obszarze czujnika, sygna\u0142 8 aktywny.<\/em><\/figcaption><\/figure>\n<\/div>\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Wyznaczenie punktu PICK<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">W conveyor trackingu punkt pobierania ma nieco inne znaczenie ni\u017c podczas klasycznego Pick &amp; Place.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Najpierw ustawiamy kostk\u0119 dok\u0142adnie w pozycji, w kt\u00f3rej aktywuje ona wirtualny czujnik. Nast\u0119pnie ustawiamy TCP robota w prawid\u0142owej pozycji chwytania i zapisujemy t\u0119 pozycj\u0119 robota jako nasz punkt pobrania.<\/p>\n\n\n\n<div style=\"height:40px\" 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=\"494\" height=\"531\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2026\/09\/17.png\" alt=\"\" class=\"wp-image-27288\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Wyznaczenie punktu odk\u0142adania<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Drugim wymaganym punktem jest punkt od\u0142o\u017cenia, kt\u00f3ry w tym przypadku znajduje si\u0119 w \u015brodku pierwszego gniazda magazynu.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Magazyn ma dwa gniazda, kt\u00f3rych \u015brodki s\u0105 oddalone o oko\u0142o 80 mm. Nie ma wi\u0119c potrzeby r\u0119cznego uczenia drugiego punktu.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Drug\u0105 pozycj\u0119 mo\u017cna wyznaczy\u0107 programowo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>POINT AKT_PLACE = SHIFT(PLACE BY -80,0,0)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">W zale\u017cno\u015bci od orientacji magazynu wzgl\u0119dem uk\u0142adu BASE przesuni\u0119cie mo\u017ce zosta\u0107 wykonane w innej osi lub ze znakiem ujemnym.<\/p>\n\n\n\n<div style=\"height:40px\" 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=\"594\" height=\"447\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2026\/09\/18.png\" alt=\"\" class=\"wp-image-27289\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Program steruj\u0105cy<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Po przygotowaniu wizualizacji, conveyora, encodera, czujnika oraz punkt\u00f3w mo\u017cna przej\u015b\u0107 do programu robota.<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>.PROGRAM CONVEYOR\n\n\n    POINT PICK = P45\n    POINT PLACE = P46\n\n    LICZNIK = 0\n\n    ; AKTYWACJA CHWYTAKA\n    SIGNAL 58\n    SIGNAL -8\n    \n    ; CONVEYOR 1\n    CVCOOPJT 8\n    CVRESET 8\n    HOME\n    ; URUCHOMIENIE TA\u015aMY\n    SIGNAL 2002\n\n    SPEED 500 MM\/S ALWAYS\n\n\n    WHILE LICZNIK &lt; 2 DO\n\n        ; =====================================\n        ; CZEKANIE NA KOSTK\u0118\n        ; =====================================\n\n        SWAIT 2008\n\n        ; ZAPAMI\u0118TANIE POZYCJI CONVEYORA\n        ENC = CVPOS\n\n        ; POWI\u0104ZANIE PICK Z POZYCJ\u0104 TA\u015aMY\n        POINT\/8 PICK = ENC\n\n\n        ; CZEKAMY A\u017b KOSTKA ODJEDZIE TROCH\u0118\n        ; OD CZUJNIKA\n        CVWAIT 30\n\n\n        ; =====================================\n        ; POBRANIE KOSTKI W RUCHU\n        ; =====================================\n\n        SPEED 300 MM\/S ALWAYS\n        CVLAPPRO PICK,20\n\n        SPEED 100 MM\/S ALWAYS\n        CVLMOVE PICK\n\n        CVDELAY 0.05\n\n        ; ZAMKNI\u0118CIE CHWYTAKA\n        SIGNAL 8\n\n        CVDELAY 0.15\n\n        SPEED 500 MM\/S ALWAYS\n        CVLDEPART 40\n\n\n        ; =====================================\n        ; WYB\u00d3R GNIAZDA MAGAZYNU\n        ; =====================================\n\n        IF LICZNIK == 0 THEN\n\n            ; LEWE GNIAZDO\n            POINT AKT_PLACE = PLACE\n\n        END\n\n        IF LICZNIK == 1 THEN\n\n            ; PRAWE GNIAZDO\n            ; \u015aRODKI ODDALONE O 80 MM\n            POINT AKT_PLACE = SHIFT(PLACE BY -80,0,0)\n\n        END\n\n\n        ; =====================================\n        ; ODK\u0141ADANIE\n        ; =====================================\n\n        SPEED 500 MM\/S ALWAYS\n        JAPPRO AKT_PLACE,40\n\n        SPEED 100 MM\/S ALWAYS\n        LMOVE AKT_PLACE\n\n        TWAIT 0.1\n\n        ; OTWARCIE CHWYTAKA\n        SIGNAL -8\n\n        TWAIT 0.1\n\n        SPEED 500 MM\/S ALWAYS\n        LDEPART 40\n\n\n        LICZNIK = LICZNIK + 1\n\n\n        ; RESET ENCODERA, GDY WARTO\u015a\u0106 JEST DU\u017bA\n        IF CVPOS &gt; 5000 THEN\n            CVRESET 8\n        END\n\n    END\n\n\n    ; =====================================\n    ; KONIEC PO 2 KOSTKACH\n    ; =====================================\n\n    SIGNAL -2002\n    SIGNAL -8\n\n    SPEED 500 MM\/S ALWAYS\n    HOME\n\n    \n.END\n<\/code><\/pre>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Wyja\u015bnienie dzia\u0142ania programu<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Najwa\u017cniejszy fragment programu znajduje si\u0119 bezpo\u015brednio po wykryciu kostki:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SWAIT 2008\n\nENC = CVPOS\n\nPOINT\/8 PICK = ENC<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Instrukcja SWAIT 2008 oczekuje na aktywowanie wirtualnego czujnika. Nast\u0119pnie:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ENC = CVPOS<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">odczytuje aktualn\u0105 pozycj\u0119 Conveyor 1. CVPOS zwraca bie\u017c\u0105ce po\u0142o\u017cenie pierwszego conveyora.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Odczytana warto\u015b\u0107 jest nast\u0119pnie przypisywana do punktu:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>POINT\/8 PICK = ENC<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Od tej chwili punkt PICK nie oznacza wy\u0142\u0105cznie sta\u0142ej pozycji zapisanej jako P45.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Robot posiada r\u00f3wnie\u017c informacj\u0119 w jakim po\u0142o\u017ceniu znajdowa\u0142 si\u0119 conveyor, kiedy detal znajdowa\u0142 si\u0119 w P45. Je\u017celi p\u00f3\u017aniej conveyor przemie\u015bci si\u0119 o 50, 80 czy 100 mm, uk\u0142ad mo\u017ce okre\u015bli\u0107 odpowiednio przesuni\u0119t\u0105 pozycj\u0119 detalu.<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Wyja\u015bnienie instrukcji zwi\u0105zanych z conveyorem<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">CVCOOPJT<\/h3>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Aktywuje wsp\u00f3\u0142prac\u0119 robota z wybranym przeno\u015bnikiem.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dost\u0119pne s\u0105 dwie warto\u015bci:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>8 \u2013 Conveyor 1,<\/li>\n\n\n\n<li>9 \u2013 Conveyor 2.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">W naszej aplikacji wykorzystujemy Conveyor 1, dlatego stosujemy:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CVCOOPJT 8<\/code><\/pre>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">CVRESET<\/h3>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Zeruje aktualn\u0105 warto\u015b\u0107 pozycji pierwszego conveyora. Na pocz\u0105tku programu pozwala rozpocz\u0105\u0107 prac\u0119 ze znan\u0105 warto\u015bci\u0105 pozycji.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">W programie zastosowano r\u00f3wnie\u017c zabezpieczenie:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>IF CVPOS &gt; 5000 THEN\n\n&nbsp;&nbsp;&nbsp;&nbsp; CVRESET 8\n\nEND<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Kt\u00f3re zapobiega niepotrzebnemu narastaniu warto\u015bci pozycji encodera podczas d\u0142u\u017cszej pracy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dla pierwszego conveyora parametrem CVRESET jest 8, natomiast dla drugiego 9.<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">CVWAIT<\/h3>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Po wykryciu kostki program wykonuje:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CVWAIT 20<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dzi\u0119ki temu robot nie rozpoczyna pobierania natychmiast przy samym czujniku. Program czeka, a\u017c conveyor osi\u0105gnie wskazane przesuni\u0119cie (20 mm), a kostka odjedzie dalej w stref\u0119 robocz\u0105 robota.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Zastosowanie tej funkcji dodatkowo bardzo dobrze obrazuje dzia\u0142anie conveyor trackingu \u2013 kostka zostaje wykryta w jednym miejscu, ale jest pobierana ju\u017c w innym.<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">CVLAPPRO<\/h3>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>CVLAPPRO PICK, 20<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">jest odpowiednikiem liniowego podej\u015bcia do punktu, ale wykonywanego z synchronizacj\u0105 wzgl\u0119dem conveyora. Robot nie zbli\u017ca si\u0119 wi\u0119c do nieruchomego punktu PICK. Punkt docelowy jest na bie\u017c\u0105co przesuwany zgodnie z ruchem ta\u015bmy.<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">CVLMOVE<\/h3>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Najwa\u017cniejsz\u0105 instrukcj\u0105 ruchow\u0105 jest:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CVLMOVE PICK<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Powoduje ona liniowy ruch TCP do punktu PICK z jednoczesn\u0105 synchronizacj\u0105 z conveyorem. Je\u017celi kostka w czasie ruchu robota nadal jedzie na ta\u015bmie, po\u0142o\u017cenie docelowe jest odpowiednio aktualizowane. W efekcie robot mo\u017ce dojecha\u0107 do poruszaj\u0105cego si\u0119 detalu, zamiast do jego starej pozycji.<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">CVDELAY<\/h3>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Po dojechaniu do kostki wykonywane jest:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CVDELAY 0.05<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">oraz p\u00f3\u017aniej:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CVDELAY 0.05<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">CVDELAY nie jest zwyk\u0142ym TWAIT. Podczas TWAIT robot pozostawa\u0142by nieruchomy wzgl\u0119dem uk\u0142adu BASE. Podczas CVDELAY robot pozostaje natomiast nieruchomy z punktu widzenia poruszaj\u0105cego si\u0119 conveyora. Oznacza to, \u017ce fizycznie TCP nadal porusza si\u0119 razem z ta\u015bm\u0105, utrzymuj\u0105c pozycj\u0119 wzgl\u0119dem chwytanej kostki. Jest to szczeg\u00f3lnie wa\u017cne podczas zamykania chwytaka.<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">CVLDEPART<\/h3>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Po zamkni\u0119ciu chwytaka wykonywane jest:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CVLDEPART 40<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Robot oddala si\u0119 liniowo od miejsca pobrania o 40 mm, zachowuj\u0105c synchronizacj\u0119 z conveyorem. Dopiero po bezpiecznym odej\u015bciu od ta\u015bmy program przechodzi do zwyk\u0142ych instrukcji ruchowych prowadz\u0105cych do magazynu. CVLDEPART jest wi\u0119c odpowiednikiem LDEPART, ale pracuj\u0105cym w uk\u0142adzie zwi\u0105zanym z poruszaj\u0105cym si\u0119 przeno\u015bnikiem.<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Uruchomienie aplikacji<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Przed uruchomieniem programu nale\u017cy sprawdzi\u0107 kolejno:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">1) czy wszystkie modele zosta\u0142y poprawnie zaimportowane,<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">2) czy kostki maj\u0105 klas\u0119 Work,<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">3) czy conveyor jest ustawiony jako Conveyor 1,<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">4) czy jego sygna\u0142em ON\/OFF jest Internal Signal 2,<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">5) czy ustawiono prawid\u0142owy kierunek i rozdzielczo\u015b\u0107 conveyor trackingu,<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">6) czy zaznaczono Enable Virtual Encoder,<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">7) czy Collision Detection aktywuje Internal Signal 8,<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">8) czy zapisano punkt PICK w miejscu detekcji kostki,<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">9) czy punkt PLACE znajduje si\u0119 w \u015brodku pierwszego gniazda magazynu,<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">10) czy sygna\u0142 58 odpowiedzialny za dzia\u0142anie chwytaka jest aktywowany przez program.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Po wykonaniu tych czynno\u015bci mo\u017cna uruchomi\u0107 program.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"dowiesz-sie\">\n<p>Autorka artyku\u0142u:<\/p>\n<h2 align=\"left\"><strong>Julia Szewczyk<\/strong><\/h2>\n<p>Praktykantka ASTOR<\/p>\n<\/div>\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=\"6aa929a0676f2\">\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=\"f8d9b30286\"\/>\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=\"6aa929a0676f2\"] 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 tym artykule przygotujemy kompletn\u0105 aplikacj\u0119 conveyor tracking wy\u0142\u0105cznie z wykorzystaniem symulatora dost\u0119pnego w \u015brodowisku AstorinoIDE. Nie b\u0119dzie potrzebny fizyczny przeno\u015bnik, enkoder ani czujnik.<\/p>\n","protected":false},"author":83,"featured_media":27299,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[234],"tags":[237,22,293],"class_list":["post-27227","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-automatyka-w-praktyce","tag-astorino","tag-kawasaki","tag-kawasaki-robotics"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\r\n<title>Conveyor tracking w AstorinoIDE \u2013 wirtualna aplikacja z przeno\u015bnikiem ta\u015bmowym | Poradnik Automatyka<\/title>\r\n<meta name=\"description\" content=\"W tym artykule przygotujemy kompletn\u0105 aplikacj\u0119 conveyor tracking wy\u0142\u0105cznie z wykorzystaniem symulatora dost\u0119pnego w \u015brodowisku AstorinoIDE.\" \/>\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\/conveyor-tracking-w-astorinoide-wirtualna-aplikacja-z-przenosnikiem-tasmowym\/\" \/>\r\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\r\n<meta property=\"og:type\" content=\"article\" \/>\r\n<meta property=\"og:title\" content=\"Conveyor tracking w AstorinoIDE \u2013 wirtualna aplikacja z przeno\u015bnikiem ta\u015bmowym | Poradnik Automatyka\" \/>\r\n<meta property=\"og:description\" content=\"W tym artykule przygotujemy kompletn\u0105 aplikacj\u0119 conveyor tracking wy\u0142\u0105cznie z wykorzystaniem symulatora dost\u0119pnego w \u015brodowisku AstorinoIDE.\" \/>\r\n<meta property=\"og:url\" content=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/conveyor-tracking-w-astorinoide-wirtualna-aplikacja-z-przenosnikiem-tasmowym\/\" \/>\r\n<meta property=\"og:site_name\" content=\"Poradnik Automatyka\" \/>\r\n<meta property=\"article:published_time\" content=\"2026-09-15T09:54:19+00:00\" \/>\r\n<meta property=\"article:modified_time\" content=\"2026-09-15T09:54:21+00:00\" \/>\r\n<meta property=\"og:image\" content=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2026\/09\/astorino-conveyor-tracking-head.jpg\" \/>\r\n\t<meta property=\"og:image:width\" content=\"594\" \/>\r\n\t<meta property=\"og:image:height\" content=\"400\" \/>\r\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\r\n<meta name=\"author\" content=\"Kamila Piechocka\" \/>\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=\"Kamila Piechocka\" \/>\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\\\/conveyor-tracking-w-astorinoide-wirtualna-aplikacja-z-przenosnikiem-tasmowym\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/conveyor-tracking-w-astorinoide-wirtualna-aplikacja-z-przenosnikiem-tasmowym\\\/\"},\"author\":{\"name\":\"Kamila Piechocka\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/#\\\/schema\\\/person\\\/bb85922f1cba91e4049649720381de0c\"},\"headline\":\"Conveyor tracking w AstorinoIDE \u2013 wirtualna aplikacja z przeno\u015bnikiem ta\u015bmowym\",\"datePublished\":\"2026-09-15T09:54:19+00:00\",\"dateModified\":\"2026-09-15T09:54:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/conveyor-tracking-w-astorinoide-wirtualna-aplikacja-z-przenosnikiem-tasmowym\\\/\"},\"wordCount\":2282,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/conveyor-tracking-w-astorinoide-wirtualna-aplikacja-z-przenosnikiem-tasmowym\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/astorino-conveyor-tracking-head.jpg\",\"keywords\":[\"Astorino\",\"Kawasaki\",\"kawasaki robotics\"],\"articleSection\":[\"Automatyka w praktyce\"],\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/conveyor-tracking-w-astorinoide-wirtualna-aplikacja-z-przenosnikiem-tasmowym\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/conveyor-tracking-w-astorinoide-wirtualna-aplikacja-z-przenosnikiem-tasmowym\\\/\",\"url\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/conveyor-tracking-w-astorinoide-wirtualna-aplikacja-z-przenosnikiem-tasmowym\\\/\",\"name\":\"Conveyor tracking w AstorinoIDE \u2013 wirtualna aplikacja z przeno\u015bnikiem ta\u015bmowym | Poradnik Automatyka\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/conveyor-tracking-w-astorinoide-wirtualna-aplikacja-z-przenosnikiem-tasmowym\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/conveyor-tracking-w-astorinoide-wirtualna-aplikacja-z-przenosnikiem-tasmowym\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/astorino-conveyor-tracking-head.jpg\",\"datePublished\":\"2026-09-15T09:54:19+00:00\",\"dateModified\":\"2026-09-15T09:54:21+00:00\",\"description\":\"W tym artykule przygotujemy kompletn\u0105 aplikacj\u0119 conveyor tracking wy\u0142\u0105cznie z wykorzystaniem symulatora dost\u0119pnego w \u015brodowisku AstorinoIDE.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/conveyor-tracking-w-astorinoide-wirtualna-aplikacja-z-przenosnikiem-tasmowym\\\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/conveyor-tracking-w-astorinoide-wirtualna-aplikacja-z-przenosnikiem-tasmowym\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/conveyor-tracking-w-astorinoide-wirtualna-aplikacja-z-przenosnikiem-tasmowym\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/astorino-conveyor-tracking-head.jpg\",\"contentUrl\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/astorino-conveyor-tracking-head.jpg\",\"width\":594,\"height\":400},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/conveyor-tracking-w-astorinoide-wirtualna-aplikacja-z-przenosnikiem-tasmowym\\\/#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\":\"Conveyor tracking w AstorinoIDE \u2013 wirtualna aplikacja z przeno\u015bnikiem ta\u015bmowym\"}]},{\"@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\\\/bb85922f1cba91e4049649720381de0c\",\"name\":\"Kamila Piechocka\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/kamila-jaworowska-n-301x301.png\",\"url\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/kamila-jaworowska-n-301x301.png\",\"contentUrl\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/kamila-jaworowska-n-301x301.png\",\"caption\":\"Kamila Piechocka\"},\"description\":\"In\u017cynier ds. system\u00f3w zrobotyzowanych w firmie ASTOR.\",\"url\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/autor\\\/kamilaj\\\/\"}]}<\/script>\r\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Conveyor tracking w AstorinoIDE \u2013 wirtualna aplikacja z przeno\u015bnikiem ta\u015bmowym | Poradnik Automatyka","description":"W tym artykule przygotujemy kompletn\u0105 aplikacj\u0119 conveyor tracking wy\u0142\u0105cznie z wykorzystaniem symulatora dost\u0119pnego w \u015brodowisku AstorinoIDE.","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\/conveyor-tracking-w-astorinoide-wirtualna-aplikacja-z-przenosnikiem-tasmowym\/","og_locale":"pl_PL","og_type":"article","og_title":"Conveyor tracking w AstorinoIDE \u2013 wirtualna aplikacja z przeno\u015bnikiem ta\u015bmowym | Poradnik Automatyka","og_description":"W tym artykule przygotujemy kompletn\u0105 aplikacj\u0119 conveyor tracking wy\u0142\u0105cznie z wykorzystaniem symulatora dost\u0119pnego w \u015brodowisku AstorinoIDE.","og_url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/conveyor-tracking-w-astorinoide-wirtualna-aplikacja-z-przenosnikiem-tasmowym\/","og_site_name":"Poradnik Automatyka","article_published_time":"2026-09-15T09:54:19+00:00","article_modified_time":"2026-09-15T09:54:21+00:00","og_image":[{"width":594,"height":400,"url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2026\/09\/astorino-conveyor-tracking-head.jpg","type":"image\/jpeg"}],"author":"Kamila Piechocka","twitter_card":"summary_large_image","twitter_misc":{"Napisane przez":"Kamila Piechocka","Szacowany czas czytania":"16 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/conveyor-tracking-w-astorinoide-wirtualna-aplikacja-z-przenosnikiem-tasmowym\/#article","isPartOf":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/conveyor-tracking-w-astorinoide-wirtualna-aplikacja-z-przenosnikiem-tasmowym\/"},"author":{"name":"Kamila Piechocka","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#\/schema\/person\/bb85922f1cba91e4049649720381de0c"},"headline":"Conveyor tracking w AstorinoIDE \u2013 wirtualna aplikacja z przeno\u015bnikiem ta\u015bmowym","datePublished":"2026-09-15T09:54:19+00:00","dateModified":"2026-09-15T09:54:21+00:00","mainEntityOfPage":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/conveyor-tracking-w-astorinoide-wirtualna-aplikacja-z-przenosnikiem-tasmowym\/"},"wordCount":2282,"commentCount":0,"publisher":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#organization"},"image":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/conveyor-tracking-w-astorinoide-wirtualna-aplikacja-z-przenosnikiem-tasmowym\/#primaryimage"},"thumbnailUrl":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2026\/09\/astorino-conveyor-tracking-head.jpg","keywords":["Astorino","Kawasaki","kawasaki robotics"],"articleSection":["Automatyka w praktyce"],"inLanguage":"pl-PL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.astor.com.pl\/poradnikautomatyka\/conveyor-tracking-w-astorinoide-wirtualna-aplikacja-z-przenosnikiem-tasmowym\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/conveyor-tracking-w-astorinoide-wirtualna-aplikacja-z-przenosnikiem-tasmowym\/","url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/conveyor-tracking-w-astorinoide-wirtualna-aplikacja-z-przenosnikiem-tasmowym\/","name":"Conveyor tracking w AstorinoIDE \u2013 wirtualna aplikacja z przeno\u015bnikiem ta\u015bmowym | Poradnik Automatyka","isPartOf":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/conveyor-tracking-w-astorinoide-wirtualna-aplikacja-z-przenosnikiem-tasmowym\/#primaryimage"},"image":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/conveyor-tracking-w-astorinoide-wirtualna-aplikacja-z-przenosnikiem-tasmowym\/#primaryimage"},"thumbnailUrl":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2026\/09\/astorino-conveyor-tracking-head.jpg","datePublished":"2026-09-15T09:54:19+00:00","dateModified":"2026-09-15T09:54:21+00:00","description":"W tym artykule przygotujemy kompletn\u0105 aplikacj\u0119 conveyor tracking wy\u0142\u0105cznie z wykorzystaniem symulatora dost\u0119pnego w \u015brodowisku AstorinoIDE.","breadcrumb":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/conveyor-tracking-w-astorinoide-wirtualna-aplikacja-z-przenosnikiem-tasmowym\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.astor.com.pl\/poradnikautomatyka\/conveyor-tracking-w-astorinoide-wirtualna-aplikacja-z-przenosnikiem-tasmowym\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/conveyor-tracking-w-astorinoide-wirtualna-aplikacja-z-przenosnikiem-tasmowym\/#primaryimage","url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2026\/09\/astorino-conveyor-tracking-head.jpg","contentUrl":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2026\/09\/astorino-conveyor-tracking-head.jpg","width":594,"height":400},{"@type":"BreadcrumbList","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/conveyor-tracking-w-astorinoide-wirtualna-aplikacja-z-przenosnikiem-tasmowym\/#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":"Conveyor tracking w AstorinoIDE \u2013 wirtualna aplikacja z przeno\u015bnikiem ta\u015bmowym"}]},{"@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\/bb85922f1cba91e4049649720381de0c","name":"Kamila Piechocka","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/kamila-jaworowska-n-301x301.png","url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/kamila-jaworowska-n-301x301.png","contentUrl":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/kamila-jaworowska-n-301x301.png","caption":"Kamila Piechocka"},"description":"In\u017cynier ds. system\u00f3w zrobotyzowanych w firmie ASTOR.","url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/autor\/kamilaj\/"}]}},"_links":{"self":[{"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/posts\/27227","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\/83"}],"replies":[{"embeddable":true,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/comments?post=27227"}],"version-history":[{"count":3,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/posts\/27227\/revisions"}],"predecessor-version":[{"id":27322,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/posts\/27227\/revisions\/27322"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/media\/27299"}],"wp:attachment":[{"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/media?parent=27227"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/categories?post=27227"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/tags?post=27227"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}