Jak wykonywany jest nasz program
Proste i intuicyjne programowanie to jedna z kilku głównych zalet cobotów Universal Robots. To właśnie możliwość chwycenia ramienia robota w rękę, przesunięcia go do pozycji docelowej i zapisania tej akcji jednym „kliknięciem” pozwala na tworzenie prostych programów w bardzo krótkim czasie. Dodawanie kolejnych funkcjonalności np. dla dedykowanych rozwiązań do cobota UR – otwieranie/zamykanie chwytaka, odczyt i interpretacja parametrów czujnika siły czy też współpraca z systemami wizyjnymi – sprowadza się do użycia prostych, zdefiniowanych, przez producenta, funkcji.
Program stworzony w ten sposób, podczas jego zapisania generuje 3 pliki z rozszerzeniem:
- .urp
Zawiera metadane o samym programie, jego nazwie, używanej instalacji, wersji software’u dla której program był stworzony oraz dla której obecnie jest uruchamiany, informację o punktach pracy robota, relacjach między zmiennymi itp.
- .script
Jest on interpretacyjną wersją pliku .urp wraz z dołączonymi danymi z pliku instalacyjnego, - .txt
Plik generowany w celach informacyjnych/dokumentacji. Zawiera tekstowy zapis programu.
Gdy przejrzymy plik z rozszerzeniem .script możemy odnaleźć w nim części programu odpowiadające naszym funkcją dodanym na panelu operatorskim. Analizując przykład z rys. 1. dodany ruch do punktu Waypoint_1 odpowiada skryptowemu zapisowi movej(…) a funkcja czekania 1 sekundy zapisowi sleep(1.0).
Zgodnie z rys. 2. podczas uruchomienia aplikacji skompilowany, do języka skryptowego, program wysyłany jest do modułu czasu rzeczywistego URControl (kontroler niskiego poziomu uruchomiony na płycie głównej Motherboard) odpowiedzialnego za wykonywanie programu.
Rys. 2. Konfiguracja software'owa cobota UR
W taki oto sposób stworzony przez nas program - na panelu operatorskim przy użyciu Polyscope - wykonuje się na naszym robocie.
Można zauważyć, że dla kontrolera interpretowalną wersją programu jest właśnie zapis przy użyciu funkcji z języka skryptowego. To co my widzimy na panelu operatorskim jest jedynie przyjazną i intuicyjną wersją interfejsu użytkownika. W większości aplikacji opcja użycia jedynie funkcjonalności dostępnych na ekranie Polyscope jest wystarczająca jednak, gdy chcemy poszerzyć możliwości naszego robota powinniśmy zasięgnąć do funkcji języka skryptowego.
Funkcje języka skryptowego
Możemy ich użyć na dwa sposoby:
- wprowadzając pojedyncze funkcje lub też całe pliki skryptu do listy poleceń w drzewie programu,
- definiując pojedynczą funkcję/program na zewnętrznym urządzeniu i przesyłając ją/go przez jeden z trzech interfejsów klienckich, udostępnianych przez robota, mogących przyjąć tego typu dane.
Poniżej omówimy podejście pierwsze. Druga opcja, związana z interfejsami robota, wymaga szerszego opisu i wyjaśnienia, dlatego jest to osobny temat na oddzielny artykuł.
Aby wstawić pojedynczą funkcję języka skryptowego należy z zakładki Advanced wybrać polecenie „Script” - rys.3. Następnie, zgodnie z rys. 4, w polu tekstowym wprowadzamy wyrażenie, które chcemy użyć. W naszym przypadku jest to polecenie ustawienia wyjścia cyfrowego numer 0 w stan wysoki - set_digital_out(0,True). To wyrażenie należy wpisać ręcznie (niektóre w funkcji dostępne są do wprowadzenie z listy rozwijanej po naciśnięciu opcji Function – rys. 4.).
Rys. 3. Wstawianie pojedynczej linii języka skryptowego
Ustawianie stanu na wyjściu cyfrowym jest też dostępne w funkcjach podstawowych Basic.
Rysunek 5. przedstawia program, w którym odbywa się ruch między dwoma punktami Waypoint_1, Waypoint_2. Po dojechaniu do Waypoint_1 ustawiany jest stan wysoki na wyjściu 0 a po zakończeniu dojazdu do Waypoint_2 stan niski. Stany te ustawiane są na dwa sposoby: pierwszy przy pomocy języka skryptowego, drugi poprzez dedykowaną funkcję Set. Wynikiem jest to samo działanie – ustawieni zadanego stanu na konkretnym wyjściu. Jest to prosty przykład wprowadzenia pojedynczej funkcji URScript.
Rys. 5. Użycie pojedynczej linii języka skryptowego w programie.
Cała algorytmika tego programu może być zdefiniowana w skrypcie. Zapis większej ilości lini URScript można wprowadzić wybierając opcję File w Script – rys. 6. Po edytowaniu pliku wprowadzamy funkcję który chcemy wykorzystać – rys. 7. Nasz nowy program – realizujący tą samą funkcjonalność co tworzony chwilę wcześniej – przedstawiony jest na rys. 8
Rys. 6. Wprowadzanie/definiowanie pliku zawierającego funkcję języka skryptowego
Podsumowanie
Podsumowując, w dokumentacji języka URScript mamy dostępnych ponad 200 różnych funkcji dla cobotów UR. Ich zrozumienie i poprawne używanie jest bardzo ważna kwestią przy tworzeniu bardziej zaawansowanych aplikacji. W cyklu artykułów poświęconych językowi skryptowemu będziemy przedstawiać poprawne podejście do wykorzystania jego możliwości.