Strona główna ASTOR
Automatyka w praktyce

Komunikacja robota Astorino ze sterownikiem PLC w protokole Modbus TCP. Wizualizacja na panelu HMI zintegrowanym ze sterownikiem

Kontakt w sprawie artykułu: Kamila Jaworowska - 2025-09-02

Ten artykuł kończy cykl poświęcony komunikacji robota Astorino. Tym razem będziemy komunikowali się z kompaktowym sterownikiem posiadającym wbudowany panel HMI – i na tym panelu wizualizowali komunikację.

Wykorzystamy tutaj projekt CODESYS z poprzedniej części. Program z części drugiej również zadziała.

Urządzenia wykorzystane w tej części to robot Astorino oraz sterownik Astraada One PLC DC2007W z wbudowanym HMI.

Ustawienie adresu IP sterownika

Aby ustawić IP sterownika należy włączyć jego zasilanie, następnie z prawej strony sterownika odnaleźć przycisk resetu:

… i nacisnąć go.

Ekran sterownika po wciśnięciu przycisku reset wygląda, jak poniżej. Należy kliknąć zębatkę.

Następnie  wciskamy przycisk Next.

Pojawia się ekran zmiany adresu IP i maski podsieci. Zmienić je można klikając przycisk Edit.

Adres należy wpisać, używając klawiatury numerycznej, a następnie zatwierdzić przyciskiem OK.

Po ustawieniu parametrów sieci należy wcisnąć Next.

Na kolejnym ekranie ponownie kliknamy Next.

Jeżeli dokonano zmiany któregokolwiek z parametrów, wyświetli się okno zatwierdzenia zmian. Należy kliknąć SAVE.

Po zapisaniu sterownik zresetuje się w ciągu 10 sekund. Przyciskiem Restart System można przyspieszyć ten proces.

Jeżeli nie dokonano żadnych zmian, na HMI ukaże się komunikat o braku zmian w konfiguracji.

Po naciśnięciu przycisku OKAY wrócimy do głównego widoku trybu Maintenance. Aby włączyć sterownik, należy wcisnąć ikonę Play.

Wgranie programu na sterownik

Uruchamiamy środowisko CODESYS i wczytujemy projekt z poprzedniego artykułu.

Z widoku drzewa projektu należy wybrać Device i kliknąć dwukrotnie, następnie Scan Network – i wybrać sterownik.

Po połączeniu ze sterownikiem należy wgrać program na sterownik przyciskiem Login.

Pozytywne zakończenie tej akcji gwarantuje, że program będzie działać również na tym sterowniku. Należy wcisnąć przycisk Logout.

Tworzenie wizualizacji

Z drzewa projektu należy wybrać Application i kliknąć prawym przyciskiem myszy, następnie rozwinąć opcję Add Object i wybrać Visualization Manager.

W otwartym oknie należy wybrać używane biblioteki. Zatwierdzamy przyciskiem Add.

W drzewie projektu klikamy teraz na Visualization Manager prawym przyciskiem myszy, rozwijamy listę Add Object i wybieramy TargetVisu.

Wyskakujące okienko zapyta nas o nazwę wizualizacji. Zatwierdzamy przyciskiem Add.

Utworzony obiekt jest wizualizacją, która będzie wyświetlała się na ekranie HMI. Pozostałe opcje z poniższej listy służą, odpowiednio, do stworzenia wizualizacji na urządzenie zewnętrzne, wyświetlenia wizualizacji na ekranie zintegrowanym i wyświetlenia wizualizacji na serwerze PLC.

Dodajmy więc też WebVisu, aby mieć dostęp do wizualizacji z poziomu komputera.

Klikając dwukrotnie na TargetVisu wyświetli się strona z parametrami wizualizacji.

Najistotniejszym ustawieniem dla nas jest Start visualization – pole to wskazuje, który ekran wizualizacji będzie wyświetlany jako startowy. W tym momencie nie został jednak jeszcze utworzony żaden ekran wizualizacji.

Klikając dwukrotnie na WebVisu wyświetlą się ustawienia wizualizacji webowej.

Tutaj też znajduję się pole Start visualization. Poza tym istotne jest pole Name of .htm file. Jest to nazwa, która używana będzie do wejścia na stronę z wizualizacją.

Aby dodać ekran wizualizacji, należy prawym przyciskiem myszy kliknąć na Application w drzewie projektu i rozwinąć Add Object. Z wysuwanego pola należy wybrać opcję Visualization.

Należy nazwać wizualizację i zatwierdzić przyciskiem OK. Wyświetli się ekran wizualizacji.

W ustawieniach wizualizacji webowej i zintegrowanej należy teraz wybrać ten ekran jako ekran startowy.

Teraz klikając dwa razy na Visualization w drzewie projektu wrócimy do ekranu wizualizacji.

Po prawej stronie znajduje się podzielony na kategorie przybornik z obiektami wizualizacji, zatytułowany Visualization Toolbox. Z niego będziemy wybierać elementy do zaprogramowania wizualizacji. Obiekty te można wyszukiwać w odpowiednich kategoriach lub, jeżeli znamy ich nazwy, wyszukać w dolnym pasku z lupą po lewej.

Do wykonania wizualizacji komunikacji między Astorino a PLC potrzebne będą: przyciski, lampy i napisy tłumaczące tekst. Lampy i przyciski znaleźć można w kategorii Lamps/Switches/Bitmaps. Aby dodać obiekt, należy przeciągnąć go na ekran wizualizacji.

W sekcji szukania obiektów należy wpisać Label (czyli etykietę tekstową), wybrać go z przybornika i wstawić na ekran wizualizacji.

Stworzone obiekty można kopiować i wklejać przy użyciu skrótów CTRL+C i CTRL+V. Na poniższym rysunku pokazano przykładowe ułożenie elementów.

Teraz można opisać obiekty Label. Aby to zrobić, należy kliknąć na obiekt, który ma zostać zmieniony. Z prawej strony wyświetli się okno parametrów obiektu. Tekst wyświetlany przez obiekt Label zmienić można w zakładce Texts, w polu Text. Można też kliknąć dwukrotnie na tekst „Label” na obiekcie, wtedy otworzy się pole szybkiej edycji. Po zatwierdzeniu zmian za pomocą ENTER, przycisk zacznie wyświetlać wpisany tekst.

Domyślnie projekt korzysta z podstawowego kodowania znaków Latin1. Oznacza to, że na sterowniku z wgraną wizualizacją, ani na wizualizacji webowej nie wyświetlą się polskie znaki. Aby to zmienić, należy w Visualization Manager wybrać opcję Use unicodestrings.

Należy teraz odpowiednio ustawić tekst wyświetlany przez obiekty Label, aby odwzorowywały funkcje pełnione przez obiekty interaktywne. Poniżej znajduje się ilustracja z gotowymi nazwami.

Teraz można przystąpić do ustawienia trybu pracy przycisków. Po wciśnięciu obiektu lewym przyciskiem myszy z prawej strony otworzy się okno jego parametrów. Aby ustawić tryb pracy, należy w zakładce Image Settings rozwinąć pole Element behavior. Dostępne są dwie opcje: Image toggler i Image tapper. Pierwsza z nich to przycisk bistabilny, druga to przycisk monostabilny normalnie otwarty. Pierwszy wystarczy kliknąć, aby inwertował zmienną, drugi – przytrzymać.

Dla przycisku Wysył należy wybrać opcję Image tapper, dla reszty – Image toggler.

Aby przypisać adresy do obiektów, należy lewym przyciskiem myszy kliknąć obiekt i w oknie parametrów, w zakładce Position, wybrać pole Variable, kliknąć je dwa razy i wybrać symbol trzech kropek.

Po wciśnięciu ikonki trzech kropek wyświetli się okno wyboru zmiennej.

Należy rozwinąć Application i PLC_PRG.

Teraz należy przypisać odpowiednie zmienne. Jeżeli korzystamy z programu stworzonego w poprzednim artykule, można przypisać zmienne, które zostały w nim utworzone do reprezentowania bitów komunikacji.

Wtedy do przycisku Motor ON należy dodać zmienną oMotor_On i analogicznie do pozostałych przycisków. Do obiektów Lamp należy w ten sam sposób przypisać zmienne zaczynające się od „i”.

Jeżeli nie utworzono zmiennych reprezentatywnych, należy wybrać zmienne znajdujące się w blokach funkcji komunikacyjnych i w odpowiedniej kolejności je przypisać do obiektów. Dla przycisku Motor ON należy wybrać pierwszy bit funkcji OX_Byte1_0, czyli Output0.

Aby dodać zmienną do bloku Lamp, należy wybrać odpowiedni bit z bloku IX_byte1_0, czyli zmienną zaczynającą się od „I”. Poniżej przykład do ustawienia lampy Cycle.

Poniżej znajduje się tabela z przypisaniem bitów komunikacji do sygnałów dedykowanych robota, które zostały ustawione wcześniej, w drugim artykule z tego cyklu (LINK).
 

Odbiór/WysyłBit funkcjiBit komunikacji MODBUSNazwa FunkcjiDziałanie
Odbiór09CycleZwraca informację, czy robot jest w cyklu.
Odbiór110RepeatZwraca informację, czy robot jest w trybie „Repeat”
Odbiór211TeachZwraca informację, czy robot jest w trybie „Teach”
Odbiór312Motor OnZwraca informację, czy silniki robota są włączone
Odbiór413ESTOPZwraca informację, czy ESTOP jest wciśnięty
Odbiór514ReadyZwraca informację, czy robot jest gotowy do pracy
Odbiór615ErrorZwraca informację, czy wystąpił błąd
Odbiór716HoldZwraca informację, czy robot jest wstrzymany
Odbiór817HomeZwraca informację, czy robot jest w pozycji domowej
Odbiór918ZeroedZwraca informację, czy robot został wyzerowany
Wysył09Motor ONWłącza silniki robota
Wysył110Cycle StartWłącza cykl w trybie pracy automatycznej
Wysył211ResetResetuje błąd
Wysył312EXT_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ł413Interrupt MotionZatrzymanie ruchu robota
Wysył514Motor OFFWyłączenie silników robota
Wysył615ZeroingZerowanie osi robota
Wysył716Cycle StopZatrzymanie wykonywania się cyklu robota
Wysył817MZHWłą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.


Po przypisaniu obiektów ustawiających i odbierających zawartość komunikacji, należy jeszcze ustawić odpowiednie zmienne pod przyciski Wysył i Odbiór. Zmienne te to kolejno Wysyl i Odbior.

Po przypisaniu wszystkich zmiennych program można teraz wgrać na sterownik przyciskiem Login.

Po wgraniu programu na HMI wyświetli się przygotowany wcześniej ekran.

Aby dostać się do wizualizacji webowej, w pasku adresu przeglądarki należy wpisać i wyszukać:

adres_IP_PLC:8080/nazwa_wizualizacji_ustawiona_w_WebVisu.htm

W moim przypadku będzie to:

192.168.0.50:8080/webvisu.htm

W webowej wizualizacji obiekty są również interaktywne.

Projekt jest gotowy. Aby wysłać komunikat do robota, należy wybrać komendę i wcisnąć Wysył. Aby odebrać komunikat, należy wcisnąć Odbiór.

Poniżej przykład wysłania Motor On. Komunikat przygotowany do wysłania:

Status wejść zmienił się po wciśnięciu przycisku Wysył – silniki włączyły się:

Rozwiązywanie problemów

Jeżeli komunikacja z robotem nie przebiega pomyślnie, tzn. elementy ethernetowe w drzewku projektu nie wyświetlają 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, komputer 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

Newsletter Poradnika Automatyka

Czytaj trendy i inspiracje, podstawy automatyki, automatykę w praktyce

Please wait...

Dziękujemy za zapis do newslettera!

Czy ten artykuł był dla Ciebie przydatny?

Średnia ocena artykułu: 0 / 5. Ilość ocen: 0

Ten artykuł nie był jeszcze oceniony.

Zadaj pytanie

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *