Komunikacja robota Astorino ze sterownikiem PLC w protokole Modbus TCP. Zdalne sterowanie sygnałami dedykowanymi Astorino
Kontakt w sprawie artykułu: Kamila Jaworowska - 2025-08-07

Z tego artykułu dowiesz się:
- jak skonfigurować robota Astorino i sterownik PLC Astraada One do komunikacji w protokole Modbus TCP,
- jak przypisać wejścia/wyjścia dedykowane Astorino,
- jak zdalnie sterować robotem z poziomu programu w sterowniku PLC.
W tym artykule wykorzystujemy oprogramowanie CODESYS w wersji 3.5 SP18 Patch 4 z biblioteką AstorinoModbus i targetem służącym do połączenia ze sterownikiem. Komunikujące się urządzenia to robot Astorino (wersja B) i sterownik programowalny Astraada One Compact (S-01020103-0900).
Przed przystąpieniem do pracy w CODESYS należy wgrać do środowiska target umożliwiający połączenie i wgranie programu do sterownika. Target należy dopasować do wersji firmware sterownika i zainstalować go w używanym środowisku poprzez dwukrotne wciśnięcie pliku z targetem.

Następnie należy wybrać wersję środowiska CODESYS, w której chcemy zainstalować target, i kliknąć Continue.

W następnym oknie należy zaznaczyć opcję „I want to continue despite of the missing signature(s)” i kliknąć przycisk Continue.

Przy poprawnym zainstalowaniu targetu wyświetli się poniższe okno. Można je zamknąć i uruchomić środowisko CODESYS.

Tworzenie standardowego projektu w środowisku CODESYS
Aby utworzyć standardowy projekt należy wybrać opcję New Project z zakładki Basic Operations.

Następnie wybieramy opcję Standard project, nazywamy projekt i naciskamy przycisk OK.

Konfigurujemy target i ustawiamy język programowania projektu, zatwierdzając przyciskiem OK.

W następnym kroku dodajemy bibliotekę obsługującą połączenie sterownika PLC z robotem Astorino. Z górnej wstążki środowiska należy wybrać kategorię Tools -> Library Repository.

W nowo otwartym oknie klikamy Install.

Wybieramy w eksploratorze plików bibliotekę do dodania i otwieramy ją przyciskiem Otwórz.

W drzewku projektu po lewej stronie dwukrotnie klikamy pozycję Library Manager, a następnie w oknie Library Manager wybieramy Add Library.

Rozwijamy kategorię Miscellaneous, wybieramy bibliotekę Modbus I/O for Astorino i zatwierdzamy przyciskiem OK.

Sprawdzenie adresów IP robota Astorino
Domyślnym adresem IP robota Astorino jest 192.168.0.1. Jeżeli nie mamy pewności co do aktualnego adresu IP robota, należy sprawdzić go w oprogramowaniu Astorino. Po włączeniu programu należy w zakładce Control w sekcji Connection połączyć się z robotem, używając portu USB lub Ethernet (uprzednio podłączając go i włączając zasilanie robota). Wybieramy sposób połączenia i używany port, a następnie klikamy Connect. Po poprawnym połączeniu odczytać można adres IP robota.

Aby zmienić adres IP robota, należy przejść do zakładki System Settings i wybrać z listy kategorię Ethernet.
Następnie w polu IP Adress wpisujemy odpowiedni adres IP i zapisujemy go przyciskiem Save.

Dodanie i konfiguracja modułu połączenia Modbus TCP
Aby dodać moduł, należy w drzewku projektu prawym przyciskiem myszy kliknąć na urządzenie i użyć opcji Add device.

W oknie rozwijamy pozycję Fieldbuses, następnie Ethernet Adapter – i dodajemy Ethernet, klikając na niego, a następnie na przycisk Add Device. Jeżeli niewidoczna będzie pozycja Fieldbuses, należy wybrać opcję Vendor -> All Vendors.

Po dodaniu Etheretu należy w widoku drzewka kliknąć na niego prawym przyciskiem myszy i wybrać opcję Add Device.

W otwartym oknie w drzewku należy wybrać Fieldbuses -> Modbus -> Modbus TCP Master i dodać Modbus TCP Master. Jeżeli opcje te są niewidoczne, należy zaznaczyć pole Display all vendors (for experts only).

Teraz należy w drzewie projektu kliknąć prawym przyciskiem myszy na dodany moduł Modbus TCP Master i wybrać opcję Add Device.

Rozwijamy Fieldbuses -> Modbus -> Modbus TCP Slave, zaznaczamy i dodajemy przyciskiem Add Device.

Po dodaniu obiektów należy je skonfigurować: dwukrotnie kliknąć na Modbus_TCP_Server i w zakładce General wpisać wcześniej sprawdzony adres IP Astorino.

Następnie w widoku drzewka dwukrotnie klikamy na Modbus_TCP_Client i zaznaczamy opcję Auto_reconnect.

Dodanie kanałów komunikacji
Aby dodać kanały, należy kliknąć dwa razy na Modbus_TCP_Slave i wybrać zakładkę Modbus Slave Channel.

Następnie należy wybrać opcję Add Channel. W oknie dodania kanału można ustawić jego nazwę, typ dostępu oraz sposób wyzwolenia kanału. Parametry należy ustawić tak, jak poniżej – i zatwierdzić.

W ten sam sposób dodać należy drugi kanał.

Istotnym jest wybranie odpowiedniego trybu dostępu i długości kanału, tak aby w odpowiedni sposób prowadzić komunikację oraz aby zakres komunikacji obejmował wszystkie wejścia/wyjścia robota.
Mapowanie I/O komunikacji
Należy wejść w zakładkę ModbusTCPServer I/O Mapping w urządzeniu Modbus_TCP_Client i rozwinąć listy kanałów.

Należy zmienić adresy kanałów zgodnie z poniższą ilustracją.

Zmiana adresów pozwala na poprawny odczyt i zapis danych z i do robota.
Tworzenie programu
Aby wejść do pola edycji programu, należy dwukrotnie kliknąć w drzewie projektu na PLC_PRG(PRG).

Aby dodać funkcje obsługujące komunikację ,należy przeciągnąć z zakładki ToolBox do gałęzi programu element Box with EN/ENO.

Następnie należy kliknąć na znaki zapytania (???) na obiekcie i kliknąć na pojawiającą się ikonę z prawej strony pola wpisywania.

Z listy rozwijanej należy wybrać AstMod -> AstorinoModbus -> Function Blocks -> Input bytes -> Astmod.IX_byte1 i dodać go przyciskiem OK.

Następnie zatwierdzamy utworzenie zmiennej reprezentującej ten blok.

Proces należy powtórzyć dla funkcji pod ścieżką AstMod -> AstorinoModbus -> Function Blocks -> Input bytes -> Astmod.OX_byte1.


Styk NO znajdujący się przed blokiem można usunąć, klikając na niego i wciskając przycisk Delete. Znaki zapytania znajdujące się na wyjściach/wejściach bitowych funkcji można usunąć klikając na nie i usuwając je przyciskiem Backspace.
Pod elementy xEnable należy podstawić zmienną tak, jak poniżej, lub wstawić wartość TRUE. Zmienna ta informuje, kiedy wysłać/odebrać dane do/z robota.

Ustawienie adresu IP komputera i sterownika
Adres IP każdego urządzenia powinien znajdować się w tej samej podsieci. Należy również ustawić tę samą maskę podsieci.
Adres IP robota w naszym przypadku to 192.168.0.1. Maska podsieci robota to 255.255.255.0
Aby ustawić adres IP sterownika, należy włączyć go w trybie serwisu. Aby to zrobić, należy przytrzymać przycisk znajdujący się przy wejściach zasilania sterownika, włączyć zasilanie sterownika i przytrzymywać przycisk do momentu rozpoczęcia migania diody koloru pomarańczowego. W trybie serwisu możemy dostać się na stronę WWW sterownika przy użyciu jego standardowego adresu IP: 169.254.255.xx , gdzie xx to ostatnie cyfry numeru seryjnego sterownika.
Aby użyć tego adresu, najpierw należy zmienić adres IP karty sieciowej komputera tak, aby znajdował się w tej samej podsieci, co sterownik.
Wchodzimy w Ustawienia sieci Ethernet systemu Windows, a następnie wybieramy opcję Zmień opcje karty.

Teraz należy wybrać kartę sieciową obsługującą port, którym łączymy się z PLC, kliknąć w tę kartę prawym przyciskiem i wybrać Właściwości.

W otwartym oknie odznaczamy Protokół internetowy w wersji 6 (TCP/IPv6), następnie wybieramy Protokół internetowy w wersji 4 (TCP/IPv4) i wchodzimy we Właściwości.

Następnie należy wybrać opcję Użyj następującego adresu IP I wpisać wartości takie, aby adres był w tej samej sieci, co sterownik, ale miał inny identyfikator urządzenia.

Zmiany należy zatwierdzić przyciskiem OK.
UWAGA: Aby przywrócić standardowe ustawienia karty sieciowej, należy wybrać opcję Uzyskaj adres IP automatycznie.
Teraz możemy połączyć się ze sterownikiem przy użyciu przeglądarki internetowej. W tym celu należy w pasku adresu wpisać domyślny adres sterownika i wcisnąć Enter.

Zalogować należy się loginem admin i hasłem admin. Po zalogowaniu należy wejść w zakładkę Network i ustawić adres IP na taki, aby był w tej samej podsieci, co robot. Należy również zmienić maskę podsieci na identyczną, jak w robocie.

Po zresetowaniu sterownika strona sterownika będzie widoczna pod tym adresem IP. Teraz należy zmienić adres IP karty sieciowej komputera na taki, który będzie w tej samej podsieci co adres IP robota i sterownika.

Należy zresetować sterownik i spróbować wejść na jego stronę.

Po poprawnym skonfigurowaniu powinna się wyświetlić strona sterownika.
Przypisanie wejść/wyjść dedykowanych Astorino
Aby przypisać pod wejścia/wyjścia robota konkretne sygnały dedykowane, należy włączyć aplikację Astorino, włączyć zasilanie robota, połączyć się z robotem i przejść do kategorii System Settings.



W zakładce Ethernet należy ustawić tryb pracy portu ethernetowego na Modbus TCP Server. Zmianę należy zapisać przyciskiem Save i zresetować robota.

W zakładce Dedicated IO należy ustawić sygnały zgodnie z poniższym zrzutem i je aktywować. Następnie należy zapisać ustawienia.


Robot jest gotów do pracy. Należy zresetować robota. W podzakładce Modbus widoczny jest podgląd wejść/wyjść robota. Jest to przydatne podczas testowania aplikacji.

Wgranie programu na sterownik i sterowanie zdalne
Aby wgrać program na sterownik, należy w widoku drzewka projektu dwukrotnie kliknąć na pole z urządzeniem Device.

Należy teraz podłączyć sterownik do komputera i włączyć zasilanie sterownika. Następnie trzeba kliknąć na przycisk Scan Network, wybrać sterownik i zatwierdzić przyciskiem OK.

Teraz należy wgrać program. W tym celu z górnej wstążki programu należy wybrać opcję Login lub użyć skrótu klawiszowego ALT+F8.
W przypadku gdy sterownik jest zatrzymany (ikonka kwadratu obok ikonki Login jest szara, należy uruchomić go skrótem klawiszowym F5 lub kliknąć ikonę startu. Stan włączonego sterownika pokazano poniżej.

Należy teraz sprawdzić, czy komunikacja przebiega prawidłowo. Ikonki przy modułach ethernetowych powinny wyglądać, jak na poniższym obrazie.

Teraz można wejść do zakładki programu i sterować wystawianymi wyjściami oraz podglądać otrzymywane wejścia.
Aby zmieniać wartości sygnałów, należy na dany sygnał kliknąć dwukrotnie, napis FALSE zmieni się wtedy na FALSE <TRUE>. Na początku warto zmienić w ten sposób zmienne Wysył i Odbiór.

Aby zmienić te wartości jednocześnie, należy kliknąć prawym przyciskiem myszy na dowolne pole w programie i wybrać opcję Write All Values Of 'Device.Application’.

Wartości tych zmiennych są teraz równe TRUE.

W ten sam sposób można teraz manipulować wyjściami Modbus. Najpierw jednak warto zapoznać się z tabelą wyjaśniającą komendy:
Odbiór/Wysył | Bit funkcji | Bit komunikacji Modbus | Nazwa funkcji | Działanie |
Odbiór | 0 | 9 | Cycle | Zwraca informację, czy robot jest w cyklu. |
Odbiór | 1 | 10 | Repeat | Zwraca informację, czy robot jest w trybie REPEAT |
Odbiór | 2 | 11 | Teach | Zwraca informację, czy robot jest w trybie TEACH |
Odbiór | 3 | 12 | Motor On | Zwraca informację, czy silniki robota są włączone |
Odbiór | 4 | 13 | ESTOP | Zwraca informację, czy ESTOP jest wciśnięty |
Odbiór | 5 | 14 | Ready | Zwraca informację, czy robot jest gotowy do pracy |
Odbiór | 6 | 15 | Error | Zwraca informację, czy wystąpił błąd |
Odbiór | 7 | 16 | Hold | Zwraca informację, czy robot jest wstrzymany |
Odbiór | 8 | 17 | Home | Zwraca informację, czy robot jest w pozycji domowej |
Odbiór | 9 | 18 | Zeroed | Zwraca informację, czy robot został wyzerowany |
Wysył | 0 | 9 | Motor ON | Włącza silniki robota |
Wysył | 1 | 10 | Cycle Start | Włącza cykl w trybie pracy automatycznej |
Wysył | 2 | 11 | Reset | Resetuje błąd |
Wysył | 3 | 12 | EXT_IT (Hold) | Po wciśnięciu działa jako zewnętrzne przerwanie – włącza HOLD – zatrzymuje ruch robota, po odciśnięciu wyłącza HOLD |
Wysył | 4 | 13 | Interrupt Motion | Zatrzymanie ruchu robota |
Wysył | 5 | 14 | Motor OFF | Wyłączenie silników robota |
Wysył | 6 | 15 | Zeroing | Zerowanie osi robota |
Wysył | 7 | 16 | Cycle Stop | Zatrzymanie wykonywania się cyklu robota |
Wysył | 8 | 17 | MZH | Włączenie silników, zerowanie i ruch do pozycji domowej. Jeżeli silniki są już włączone, wykona zerowanie i ruch do pozycji domowej. Jeżeli jest już wyzerowany, wykona tylko ruch do pozycji domowej. |
Aby uzyskać dostęp do komend przypisanych do bitów funkcji 8 i 9, należy najpierw dodać funkcje komunikacyjne odpowiadające za drugi bajt danych i wgrać program do sterownika. Aby dodać je do programu, należy tak jak poprzednio dodać obiekt, wyszukać funkcję z dodanej biblioteki i wybrać odpowiednio OX/IX Byte 2.


Aby wysłać komendę do robota, należy wybrać bit i zmienić jego wartość. Odbierane bity będą się aktualizować automatycznie. Na poniższym przykładzie wysyłany jest sygnał włączenia silników.

Po wysłaniu polecenia włączenia się silników, robot zwrócił informację, że silniki są włączone. Input 1 funkcji IX oznacza, że robot jest w trybie REPEAT.

Rozwiązywanie problemów
Jeżeli komunikacja z robotem nie przebiega pomyślnie, tzn. elementy ethernetowe w drzewku projektu nie mają wyświetlonej obok zielonej ikony, a robot nie odbiera ani nie wysyła informacji, należy:
- upewnić się że połączenie Ethernet między robotem, sterownikiem i komputerem jest podpięte poprawnie, należy również sprawdzić, czy w porcie świecą się światła,
- upewnić się, że zasilanie robota jest włączone,
- zresetować robota,
- zresetować sterownik,
- upewnić się, że sterownik i robot są w tej samej podsieci.
Autor artykułu:
Konrad Kamiński
Praktykant ASTOR
Student III roku kierunku Automatyka i robotyka na Politechnice Poznańskiej