Integracja cobota Universal Robots ze sterownikiem PLC Siemens S7-1200. Obsługa protokołu PROFINET przez UR.

10.02.2021 How to / Robotyzacja
Integracja cobota Universal Robots ze sterownikiem PLC Siemens S7-1200. Obsługa protokołu PROFINET przez UR.
Wizerunek autora
Tomasz Sokół
Producent: Universal Robots, MOXA
  • Zakłady przemysłowe

Jak działa Profinet?

PROFINET jest nowoczesnym standardem komunikacyjnym dla automatyki, opartym na sieci przemysłowej Ethernet. Został opracowany przez organizację PROFIBUS & PROFINET International (PI). Używany jest głównie do komunikacji ze sterownikami PLC czy modułami I/O (wejść/wyjść). Pozwala na szybką i cykliczną wymianę danych między jednostką główną, a jednostkami podrzędnymi. Sygnały wejściowe i wyjściowe są wymieniane między kontrolerem i urządzeniami IO jako dane cykliczne - kontroler ustala czas odświeżania, który może być indywidualny dla każdego urządzenia. Profinet bazuje na standardzie Ethernet, co umożliwia wykorzystanie topologii identycznych jak w sieciach IT.

Profinet IO oparty jest na modelu wymiany danych provider/consumer. Zdefiniowane są następujące klasy urządzeń dla sieci PROFINET IO:

  • IO Controller: zazwyczaj jest to programowalny sterownik (PLC), w którym wykonywany jest program sterowania.
  • IO Device: stacja IO device jest urządzeniem polowym I/O podłączonym do jednej lub kilku stacji IO controller poprzez sieć PROFINET IO. Stacja IO jest dostawcą danych wejściowych i odbiorcą danych wyjściowych. W naszym przypadku rolę IO Device będzie pełnił cobot UR3.
  • IO Supervisor: zazwyczaj jest to urządzenie programujące, komputer osobisty (PC) lub panel operatorski (HMI) w celu uruchomienia lub diagnostyki.

Protokoły przemysłowe na UR

Rzadko roboty przemysłowe pracują samodzielnie. Często korzystają z innych instrumentów wspomagających je w wykonywaniu bardziej skomplikowanych zadań – na przykład ze sterowników PLC. Sterowniki mogą być dostarczane przez różnych producentów, ale konieczna jest ich wzajemna komunikacja z robotem – do tego celu właśnie służą protokoły przemysłowe. Najczęściej wykorzystywanymi protokołami przemysłowymi są niewątpliwie Modbus, Profinet oraz EtherNET/IP. Każdy z nich jest wspierany przez roboty UR.

Aktywacja protokołu Profinet na robocie

Uruchomienie obsługi protokołu Profinet w robotach Universal Robots jest proste i w tym celu:

Wejdź w zakładkę Installation -> Fieldbus ->wybierz z listy PROFINET

Domyślnie protokół Profinet jest wyłączony (ta informacja jest również widoczna poprzez sygnalizację szarej diody), więc należy kliknąć przycisk Enable.

Jeżeli protokół Profinet jest aktywowany, ale robot współpracujący nie jest połączony ze sterownikiem PLC to status będzie oznaczony jako „Running” wraz z żółtą sygnalizacją diody.

W następnym kroku skonfigurujemy odpowiednio sterownik PLC i po nawiązaniu komunikacji cobota ze sterownikiem PLC status zmieni się na „Connected” co będzie sygnalizowane również zielonym statusem diody.

 

Opis urządzenia – instalacja pliku GSD

Aby umożliwić projektowanie systemu, wymagany jest do konfiguracji plik GSD (General Station Description) danego urządzenia profinetowego – w naszym przypadku robota UR. Plik GSDML w formacie XML opisuje właściwości i funkcje stacji polowej PROFINET IO. Zawiera on wszystkie dane istotne dla projektowania, jak również wymianę danych z urządzeniem. Producent urządzenia polowego musi dostarczyć plik GSD w formacie XML, zgodnie ze specyfikacją GSDML.

Skąd taki plik wziąć? Nic trudnego – dostarczany jest on zawsze przez producenta urządzenia i można go znaleźć pod poniższym linkiem – GSDML dla UR. Jest on uniwersalny, więc nie jest istotne czy mamy robota UR3, czy UR10 – zawsze korzystamy z tego pliku.

Mapa pamięci robota zaszyta w pliku GSD została podzielona na 10 modułów. 7 z nich dotyczy parametrów, które można odczytywać z robota m.in. aktualny stan pracy robota, położenie punktu TCP, pobierany prąd, stany wejść cyfrowych, parametry safety itp. Pozostałe 3 moduły dotyczą informacji wysyłanych do robota – na przykład zmiana wartości w rejestrach (bool, int, float), która może być wykorzystana podczas tworzenia programu w robocie. Producent UR udostępnia szczegółową mapę pamięci z opisem i adresacją każdego rejestru. Link do mapy pamięci rejestrów cobota Universal Robots.  

Po pobraniu i rozpakowaniu pliku GSDML, w kolejnym kroku należy go zainstalować w TIA Portal.

W tym celu, należy przejść do zakładki Options -> Manage general station description files (GSD)

Następnie należy wskazać ścieżkę dostępu do pobranego pliku/plików, wybrać pliki i kliknąć przycisk Install.

Dodanie robota UR do projektu w TIA Portal

Rozpoczynając pracę w TIA Portal, do dyspozycji mamy pusty projekt. Musimy oczywiście nadać mu nazwę, dodać wykorzystywany sterownik PLC oraz inne urządzenia.

Aby dodać robota współpracującego Universal Robots do projektu, najwygodniej przejść do zakładki Devices & networks, a następnie wybrać Network view. Naszym oczom powinno ukazać się poniższe okno.
Należy skorzystać z katalogu wspieranych urządzeń - Hardware catalog. Najwygodniej po prostu wpisać w wyszukiwarkę Universal Robots.


W kolejnym kroku należy przeciągnąć ikonkę w pole Network view oraz przypisać urządzenie do odpowiedniego interfejsu PN/IE  - (PN= PROFINET, IE= Industrial Ethernet).

Przechodząc do zakładki Hardware catalog trzeba dodać (przeciągnąć) moduły o formacie I/O Message. Moduły trzeba umieścić w odpowiedniej kolejności od 1 do 10. Nawet jeżeli nie wykorzystujemy/nie dodajemy do programu wszystkich modułów to najlepiej umieszczać je w kolejności  rosnącej. Nie jest pożądane umieszczenie np. moduł nr 5 przed modułem 1.

Za co odpowiada każdy z modułów można znaleźć również w mapie pamięci. Link do mapy pamięci rejestrów cobota Universal Robots.

Adresacja urządzeń

W systemie PROFINET IO każde urządzenie polowe odbiera nazwę symboliczną, która jednoznacznie identyfikuje urządzenie w obrębie systemu IO. Nazwa ta jest używana dla przyporządkowania adresu IP z adresem MAC urządzenia polowego. Do tego celu wykorzystywany jest protokół DCP (Discovery and Basic Configuration Protocol). Nazwa ta jest przypisywana do poszczególnych urządzeń, a tym samym do poszczególnego adresu MAC urządzenia IO device podczas uruchomienia (inicjalizacji) urządzenia.

Adres IP można nadać na dwa sposoby:

  • w oprogramowaniu TIA Portal. Konfigurujemy adres IP, maskę podsieci i bramę
  • w panelu operatorskim cobota

Z kolei nazwa urządzenia Profinet IO Device może być generowana automatycznie lub też możemy ją skonfigurować ręcznie.

Wymiana danych I/O

Dane cykliczne I/O przesyłane są bez potwierdzenia jako dane czasu rzeczywistego w ustawionym czasie bazowym. Czas cyklu można ustawić indywidualnie dla każdego z połączeń w danej stacji, co pozwala na adaptację wymagań do poszczególnych aplikacji.

Dane cykliczne w robotach Universal Robots wymieniane są w czasie Real Time z interwałem czasowym (8, 16, 32, 64, 128, 256 i 512ms, gdzie domyślną wartością jest 8 ms).

Odpowiednią wartość można ustawić dla każdego urządzenia oddzielnie w zakładce: Device configuration -> General -> Real time settings -> Update time:

Struktury danych

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

Pobierz plik z gotową strukturą danych

W External source files należy dodać z rozszerzeniem .udt. Po dodaniu pliku kliknij prawym przyciskiem myszy i naciśnij Generate blocks from source.

Utworzą się struktury danych, które mogą być wykorzystywane jako Tagi do monitorowania parametrów robota.
Aby to osiągnąć należy przejść do zakładki PLC Tags Add new tag table.
W tym miejscu można dodawać tagi:

  • Name – dowolna nazwa nadana przez programistę, najlepiej aby była czytelna :)
  • Data type – z rozwijanej listy wybieramy wgrane wcześniej struktury danych
  • Adres – aby poprawnie wykorzystywać struktury należy wpisać adresy odpowiadające adresom (I – input oraz O – output) modułów.

Nawiązanie komunikacji

Kliknij Online & diagnostics dla całego projektu/tylko robota UR.
Czasami, najczęściej gdy pierwszy raz łączymy się z robotem, może pojawić się poniższy błąd. Wynika on z tego, że robot nie ma jeszcze nadanej unikalnej nazwy profinetowej.

Aby to poprawić należy wejść nadać mu nazwę: Online & diagnostics -> Functions -> Assign PROFINET Device Name -> Update list -> Assign name.

PLC i robot powinny być już poprawnie połączone.

Monitorowanie parametrów robota UR w TIA Portal

Do monitorowania wykorzystujemy utworzone wcześniej tagi. Aby podejrzeć parametry robota należy w zakładce PLC tags -> wybrać odpowiednią tabelkę -> Monitor all
Na poniższym rysunku widzimy na przykład:

  • tag nr 12 – Robot current [A] – aktualnie pobierany prąd przez robota
  • tag nr 15 – TB – informujący nas czy przycisk Teach Button jest wciśnięty. Jeżeli jest to status dla tego tagu jest TRUE (stan wysoki – logiczna 1). W przeciwnym przypadku status to FALSE (stan niski – logiczne 0)

Wszystkie zmienne można komfortowo wykorzystywać w pisaniu programu oraz do wizualizacji. W przypadku zmiany stanu zmiennych, w programie sterownika PLC można zaprogramować określoną ścieżkę działań i różnych warunków.

Wysyłanie informacji ze sterownika PLC do UR

Użytkownik może również wysyłać dane do robota ze sterownika PLC. Do tego celu służą rejestry ogólnego przeznaczenia.

W ramach testów zmienimy wartość rejestru(0) w tabeli Watch Table w TIA Portal.

Na poniższym rysunku widzimy, że dana została poprawnie odebrana przez robota.

Podsumowanie

Integrując robota UR ze sterownikiem PLC robimy to z konkretnego powodu. Najczęściej potrzebujemy zaprogramować trochę bardziej zaawansowaną aplikację, w której robot jest tylko częścią całości. W naszym projekcie wykorzystywaliśmy dodatkowo switch Moxa, który również oferuje wsparcie dla protokołu Profinet. Jego parametry też mogą być w podobny sposób monitorowane – instrukcja znajduje się pod poniższym linkiem.
Na poniższym zdjęciu można zobaczyć przykład prostegro programu drabinkowego. Zasada działania jego jest prosta – w przypaku gdy Teach Button (rejestr I24.2) jest wciśnięty (status TRUE) to ustaw stan wysoki na wyjściach cyfrowych sterownika (Q0.1, Q0.2, Q0.3). Oczywiście, takie programy mogą być dużo bardziej zaawansowane.


W przypadku dodatkowych pytań technicznych można się z nami kontaktować pod adresem mailowym: roboty@elmark.com.pl