Komunikacja z robotami UR - protokół PROFINET - ProCobot

Komunikacja z robotami UR – protokół PROFINET

Dlaczego PROFINET?

W erze Industry 4.0 wyzwania stawiane urządzeniom automatyki przemysłowej oraz robotom stale rosną. Coboty muszą współpracować nie tylko z człowiekiem, ale także z innymi urządzeniami biorącymi udział w procesie technologicznym. Tak jak ludzie posługujący się wieloma językami, coboty mogą wymieniać się informacjami przy pomocy różnych protokołów komunikacyjnych. Wymagania rynku względem protokołów komunikacyjnych są ogromne. Dzisiejszy protokół musi być przede wszystkim łatwy w konfiguracji, niezawodny oraz szybki.

W dziedzinie transmisji danych w automatyce przez ponad 20 lat prym wiódł PROFIBUS. Obecnie jednak jednym z najczęściej wykorzystywanych mediów transmisyjnych jest PROFINET, który odziedziczył cechy sieci PROFIBUS oraz posiada uniwersalność i elastyczność w sposobie przesyłania danych bazujące na standardzie Ethernet.

PROFINET Rys. 1 Sieć PROFINET jest obecnie najczęściej wykorzystywanym protokołem w przemyśle

 

PROFINET spełnia szeroki zakres wymagań rynku, począwszy od szybkiej wymiany danych I/O umożliwiającej automatyzację w czasie rzeczywistym, poprzez elastyczną topologię sieci, aż do wysokiej niezawodności polegającej na redundancji połączeń między urządzeniami.

 

Universal Robots a PROFINET

Roboty Universal Robots oferują szeroki wachlarz sposobów komunikacji z urządzeniami świata automatyki. W zestawieniu dostępnych medium transmisyjnych obsługiwanych przez coboty UR nie mogło zabraknąć sieci PROFINET. Producent duńskich cobotów zapewnia bardzo łatwą oraz szybką konfigurację tego protokołu. Skrzynka sterownicza robota wyposażona jest w port Ethernet ze złączem RJ 45 umożliwiający obsługę PROFINET.

Skrzynka sterownicza Rys. 2 Skrzynka sterownicza (ang. control box) Universal Robots

 

Interfejs PROFINET w robocie działa jako IO-Device zarządzany przez zewnętrzne urządzenie typu IO-Controler np. sterownik PLC. Robot posiada dedykowany format wymiany danych – I/O Message. Format ten składa się z 10 modułów, 7 z nich służy do odczytu informacji z robota, a pozostałe 3 służą do zapisu informacji w robocie. Dane, które mogą być zawarte w ramce komunikacyjnej to m.in. aktualny stan pracy robota, położenia enkoderów przegubów, parametry systemu safety, stany wejść oraz wyjść cyfrowych, a także analogowych, dane opisujące Tool Center Point robota (TCP), a także rejestry całkowite i zmiennoprzecinkowe do swobodnego wykorzystania przez użytkownika.

 

Konfiguracja PROFINET w Universal Robots – nic prostszego!

Jak wcześniej wspomniano, Universal Robots zapewnia prostą konfigurację sieci PROFINET zarówno w robotach z serii CB, jak i e-Series.

W celu uruchomienia obsługi protokołu PROFINET w robocie współpracującym Universal Robots należy wejść w zakładkę Installation, a następnie przejść do Fieldbus i wybrać z rozwijalnej listy PROFINET. Po wybraniu tej opcji na panelu uczenia ukaże się menu protokołu PROFINET. W celu włączenia obsługi należy kliknąć Enable.

Widok zakładki interfejsu PROFINET Rys. 3 Widok zakładki interfejsu PROFINET

 

Szara dioda w lewym górnym rogu obszaru roboczego panelu uczenia oznacza, że interfejs PROFINET w robocie współpracującym nie został aktywowany.

Widok zakładki interfejsu PROFINET Rys.4 Widok zakładki interfejsu PROFINET

 

Żółta dioda oznacza, że interfejs został załączony, ale robot nie jest podłączony do żadnego urządzenia typu IO-Controller.

Widok zakładki interfejsu PROFINET Rys.5 Widok zakładki interfejsu PROFINET

 

Zielona dioda informuje o tym, że robot nawiązał połączenie z urządzeniem IO-Controller w sieci PROFINET.

 

Konfiguracja interfejsu robota w środowisku TIA Portal

Robot został połączony ze sterownikiem PLC firmy SIEMENS za pomocą przewodu PROFINET ze złączem RJ 45. Zgodnie z wymaganiami standardu PROFINET urządzenia muszą znajdować się w jednej podsieci.

Połączenie PROFINET między sterownikiem PLC, a robotem współpracującym Rys.6 Połączenie PROFINET między sterownikiem PLC, a robotem współpracującym Universal Robot

 

Pierwszym krokiem do skonfigurowania połączenia PROFINET pomiędzy robotem, a sterownikiem PLC jest instalacja pliku GSDML, który dostępny jest na stronie producenta robotów. Plik ten opisuje właściwości urządzenia zrozumiałe dla protokołu PROFINET. Jest zapisany w formacie danych XML i jest w pełni edytowalny.

W głównym oknie TIA Portal wybierz Options z górnego pasku zadań. Następnie przejdź do Manage general station desciption files i wybierz ścieżkę z lokalizacją pliku GSDML. Zaznacz docelowy plik i naciśnij Install.

Instalacja pliku GSDML Rys.7 Instalacja pliku GSDML

 

Ze strony producenta można również pobrać gotowy szablon ramki danych przygotowany w postaci pliku UDT (User-defined Data Types).

W drzewku projektowym w External source files dodaj plik z rozszerzeniem .udt z nowymi typami danych. Po dodaniu pliku kliknij prawym przyciskiem myszy i naciśnij Generate blocks from source.

Instalacja pliku z nowymi typami danych Rys.8 Instalacja pliku z nowymi typami danych

 

Po dodaniu pliku UR_datastruct.udt pojawiły się nowe typy danych do wykorzystania w programie.

Widok typów danych Universal Robots Rys.9 Widok typów danych Universal Robots

 

Przejdź do Devices and networks, a następnie w katalogu Hardware catalog wybierz urządzenie z najnowszą wersją oprogramowania i przeciągnij do okienka Devices and networks. Skonfiguruj połączenie PROFINET klikając w zielony port na robocie i przeciągnij go do portu w znajdującego się w sterowniku.

Dodawanie urządzenia UR w oknie Devices and networks Rys.10 Dodawanie urządzenia UR w oknie Devices and networks

 

Przejdź do General i naciśnij Ethernet addresses i nadaj robotowi poprawny adres IP oraz nazwę urządzenia PROFINET. Nazwa urządzenia PROFINET jest pisana wyłącznie małymi literami.

Nadawanie adresu IP oraz nazwy urządzenia PROFINET Rys.11 Nadawanie adresu IP oraz nazwy urządzenia PROFINET

 

Przechodząc do Hardware catalog dodaj do interfejsu robota moduły o formacie I/O Message. Moduły posiadają domyślną adresację, lecz mogą zostać zmienione według potrzeb użytkownika.

Dodawanie modułów o formacie I/O Message Rys.12 Dodawanie modułów o formacie I/O Message

 

Po dodaniu modułów skompiluj program klikając w Compile, pobierz go na sterownik klikając Download to device i przejdź w tryb online za pomocą przycisku Go online.

Kompilacja, pobranie programu oraz przejście w tryb online Rys.13 Kompilacja, pobranie programu oraz przejście w tryb online

 

Przejdź do Ungrouped devices w drzewku projektowym i naciśnij Online & diagnostics, aby dokonać konfiguracji ustawień interfejsu protokołu PROFINET robota:

  • Ustaw kartę sieciową do której podłączony jest robot i sterownik PLC.
  • Naciśnij Update list w celu wyszukania robota, a następnie naciśnij Assign name, aby przypisać nazwę.

Przypisanie nazwy urządzenia PROFINET Rys.14 Przypisanie nazwy urządzenia PROFINET

 

Konfiguracja sieci PROFINET oraz implementacja interfejsu robota zostały zakończone. Jako wskaźnik poprawności można uznać zielone punkty w drzewku projektowym.

 

Pobieranie danych z robota

W programie testowym odczytujemy następujące wartości o stanie robota:

  • Wartość informująca czy:
    • robot jest aktualnie załączony.
    • na robocie jest uruchomiony program.
    • został wciśnięty wyłącznik bezpieczeństwa.
  • Wartość określająca od ilu minut robot pracuje.

Rejestry o stanie robota oraz stanie systemu bezpieczeństwa są udostępniane automatycznie i nie wymagają podejmowania żadnych akcji przez użytkownika po stronie robota.

Z przesłanych danych wynika, że robot jest załączony, posiada uruchomiony program i nie został załączony wyłącznik bezpieczeństwa.

Podgląd danych pobieranych z robota w Watch Table Rys.15 Podgląd danych pobieranych z robota w Watch Table

 

Jak wspomniano na wstępie użytkownik ma dostęp do zmiennoprzecinkowych i całkowitych rejestrów do własnego użytku, które wymagają już akcji użytkownika w środowisku programistycznym Universal Robots. Na poniższym przykładzie pokazano wysłanie całkowitego rejestru o numerze 0 z robota do sterownika PLC. Do przesłania rejestru została użyta instrukcja z języka skryptowego Universal Robots – URScript.

Przesyłanie rejestru za pomocą instrukcji URScript Rys.16 Przesyłanie rejestru za pomocą instrukcji URScript

 

Po stronie sterownika została odebrana wartość rejestru przesłanego z robota. W celu sprawdzenia aktualnej wartości, stwórz tablicę Watch table, w której istnieje możliwość monitorowania zmiennych na żywo.

Odebrana wartość przez sterownik PLC Rys.17 Odebrana wartość przez sterownik PLC

 

Jak można zauważyć program robota wysyła rejestr o wartości 1882 poprzez interfejs sieci PROFINET. Kolejne zdjęcia pokazują, że sterownik PLC odebrał wartość wysłanego rejestru poprawnie.

 

Wysyłanie danych do robota

Jako przykład zapisywania informacji w robocie współpracującym zostały wysłane następujące dane:

  • Zmienna o rozmiarze jednego bitu, znajdująca się na zerowym bicie rejestru bitowego o indeksie 0.
  • Zmienna o rozmiarze 32 bitów, znajdująca się na zerowym indeksie tablicy rejestrów liczb całkowitych.

Fragment programu przedstawia przepisanie wartości 1996 do rejestru o typie całkowitym oraz wystawienie logicznej jedynki na bicie rejestru o typie boolean.

Program w sterowniku PLC wysyłający dwa rejestry do robota Rys.18 Program w sterowniku PLC wysyłający dwa rejestry do robota

 

Dane gotowe do wysłania do robota, można również monitorować z poziomu Watch table.

Dane gotowe do wysłania Rys.19 Dane gotowe do wysłania

 

Dane odebrane przez robota Rys.20 Dane odebrane przez robota

 

Biorąc pod lupę zmienne znajdujące się w robocie łatwo stwierdzić, że transmisja danych poprzez sieć PROFINET przebiegła prawidłowo. Jak widać dzięki dedykowanym plikom GSDML oraz UDT integracja robota Universal Robots z zewnętrznym urządzeniem obsługującym sieć PROFINET jest banalnie prosta. Jeśli masz jakieś pytania lub problemy związane z robotami współpracującymi Universal Robots pisz na serwis@procobot.com.