Programowanie manipulatora na przykładzie robota IRB-1400 i języka RAPID



Podobne dokumenty
6.6 Włączanie i wyłączanie modułów WE/WY Komunikacja Podstawy programowania Komunikowanie z użyciem panelu uczącego...

Programowanie robota IRb-1400

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

R 1. Robot o równoległej strukturze kinematycznej i czterech stopniach swobody. Pracownia Nauki Programowania i Aplikacji Robotów Przemysłowych

Robot EPSON SCARA T3-401S

Ćwiczenia 2 IBM DB2 Data Studio

Instrukcja obsługi użytkownika aplikacji do wizualizacji robota przemysłowego IRB-1400

Visual Basic Debugging and Error Handling

Zmiany techniczne wprowadzone w wersji Comarch ERP Altum

Listing_ $crystal = deklaracja

Administracja i programowanie pod Microsoft SQL Server 2000

Laboratorium 10 Temat: Zaawansowane jednostki testowe. Operacje na plikach. Funkcje.

Programowanie obiektowe

Laboratorium Programowania Kart Elektronicznych

PL/SQL. Zaawansowane tematy PL/SQL

R 1. Robot o równoległej strukturze kinematycznej i czterech stopniach swobody. Pracownia Nauki Programowania i Aplikacji Robotów Przemysłowych

Testy jednostkowe - zastosowanie oprogramowania JUNIT 4.0 Zofia Kruczkiewicz

Laboratorium Programowania Kart Elektronicznych

PODSTAWY BAZ DANYCH 13. PL/SQL

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze

Laboratorium Programowanie Obrabiarek CNC. Nr H7

Hurtownia Świętego Mikołaja projekt bazy danych

PRZYRZĄDY WIRTUALNE. Część 6 Macierze, klastry, wzory. Prof. Krzysztof Jemielniak

Języki programowania wysokiego poziomu. PHP cz.2.

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

Kierunek EiT Specjalność Sieci i usługi, V rok Programowalne Układy Cyfrowe. Zaawansowany VHDL. Rajda & Kasperek 2014 Katedra Elektroniki AGH 2

Język PL/SQL Pakiety podprogramów

Wstęp. Ale po co? Implementacja

Pakiety podprogramów Dynamiczny SQL

SQL 4 Structured Query Lenguage

Język PL/SQL. Rozdział 5. Pakiety podprogramów. Dynamiczny SQL

Materiały. Technologie baz danych. Plan wykładu Kursory. Wykład 5: Kursory jawne. Podprogramy. Kursory jawne. Kursory niejawne

RS868v3 module configuration

Wprowadzenie do psql i SQL. Język komend psql. Podstawy instrukcji SELECT

Kierunek EiT Specjalność Sieci i usługi, V rok Programowalne Układy Cyfrowe. Zaawansowany VHDL. Rajda & Kasperek 2015 Katedra Elektroniki AGH 1

Język PL/SQL Procedury i funkcje składowane

Wstęp do programowania. Różne różności

1 Zasady bezpieczeństwa

Komputerowe wspomaganie eksperymentu 5

Bloki anonimowe w PL/SQL

Zaawansowane bazy danych i hurtownie danych semestr I

Piłką na platformach i przez teleporty. Andrzej P.Urbański Wydział Informatyki Politechnika Poznańska

EPI: Interfejs Graficzny 2011/2012 Laboratorium nr 2 Programowanie obiektowe

MS Visual Studio 2005 Team Suite - Performance Tool

Camspot 4.4 Camspot 4.5

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ];

Instrukcja podstawowego uruchomienia sterownika PLC LSIS serii XGB XBC-DR20SU

USB firmware changing guide. Zmiana oprogramowania za przy użyciu połączenia USB. Changelog / Lista Zmian

Architektura komunikacji

How to share data from SQL database table to the OPC Server? Jak udostępnić dane z tabeli bazy SQL do serwera OPC? samouczek ANT.

2. Kliknij Insert->Userform. Jeżeli Toolbox nie pojawi się automatycznie, kliknij View -> Toolbox. Otrzymany widok powinien być jak poniżej.

Podstawy programowania w Pythonie

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Programowanie Komputerów

15. Funkcje i procedury składowane PL/SQL

Volcano MC-GM4 OPTICAL MOUSE USER S MANUAL MODECOM

R 1. Robot o równoległej strukturze kinematycznej i czterech stopniach swobody. Pracownia Nauki Programowania i Aplikacji Robotów Przemysłowych

Komputerowe systemy na rynkach finansowych. wykład 5. MQL4 - funkcje operujące na obiektach wykresu

Materiały do laboratorium MS ACCESS BASIC

1 Wstęp. 2 Proste przykłady. 3 Podstawowe elementy leksykalne i typy danych. 6 Opis strukturalny. 7 Moduł testowy (testbench)

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,

Instrukcja konfiguracji usługi Wirtualnej Sieci Prywatnej w systemie Mac OSX

Materiały pomocnicze do ćwiczeń laboratoryjnych

Volcano MC-GMX4 OPTICAL MOUSE USER S MANUAL MODECOM

LCD (Liquid Crystal Display)

DM-ML, DM-FL. Auxiliary Equipment and Accessories. Damper Drives. Dimensions. Descritpion

do MATLABa programowanie WYKŁAD Piotr Ciskowski

Składowane procedury i funkcje

LibreOffice Calc VBA

METHOD 2 -DIAGNOSTIC OUTSIDE

Języki formalne i techniki translacji

Bazy danych 8. Procedury składowane i kursory. P. F. Góra

TTIC 31210: Advanced Natural Language Processing. Kevin Gimpel Spring Lecture 9: Inference in Structured Prediction

Machine Learning for Data Science (CS4786) Lecture11. Random Projections & Canonical Correlation Analysis

Python. Wprowadzenie. Jolanta Bachan

Wyjątki. try - except

Księgarnia PWN: Wojciech Sterna Delphi od podstaw

Systemowe aspekty baz

Pierwszy program. else1 <html> <body> <script type="text/javascript"> var d = new Date()

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Elementy języka Scheme

Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych

Pomoc do programu konfiguracyjnego RFID-CS27-Reader User Guide of setup software RFID-CS27-Reader

y = The Chain Rule Show all work. No calculator unless otherwise stated. If asked to Explain your answer, write in complete sentences.

Algorytmika i Programowanie VBA 1 - podstawy

Programowanie kontrolera RH robota S-420S Opracował: Karol Szostek

Kursory i wyjątki. (c) Instytut Informatyki Politechniki Poznańskiej 1

Programowanie RAD Delphi

Bazy danych 11. SQL Procedury składowane, kursory i wyzwalacze

Programowanie w SQL. definicja bloku instrukcji BEGIN...END, warunkowe wykonanie instrukcji IF...ELSE, wyrażenie CASE,

Procedury i funkcje składowane

Technologie baz danych WYKŁAD 7: Wyjątki

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej. Laboratorium cyfrowej techniki pomiarowej. Ćwiczenie 4

Instrukcja współpracy wagi Eco Label z programem HYDRA przy użyciu Multipleksera MUX 8xRS232/RJ

BAZA DANYCH SIECI HOTELI

Programowanie mikrokontrolerów - laboratorium

Pobieranie argumentów wiersza polecenia

USB 306/307 Modem. Quick Start Guide Pierwsze kroki.

ZAAWANSOWANE BAZY DANYCH I HURTOWNIE DANYCH MySQL, PHP

Transkrypt:

na przykładzie robota IRB-1400 i języka RAPID Janusz Jakubiak Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska

Informacja o prawach autorskich Prezentacja ta stanowi materiał pomocniczy do zajęć w Laboratorium Robotyki 010. Zamieszczone ilustracje pochodzą z materiałów firmy ABB. Prezentowane materiały są objęte prawem autorskim i mogą być wykorzystywane jedynie przez studentów w celach dydaktycznych.

Poziomy programowania Produktu: opis końcowego kształtu; planowanie kolejności operacji systemu robotycznego. Procesu: dla znanego ciągu operacji wyznaczenie ich parametrów. Narzędzia: opis ruchu narzędzia dla realizacji konretnej operacji. Ramienia: planowanie ruchu ramienia realizującego zadany ruch narzędzia. Przegubu: planowanie ruchu każdego z przegubów.

Robot IrB 1400

Robot IrB 1400 oś zakres ruchu 1 +170-170 2 +70-70 3 +70-65 4 +150-150 5 +115-115 6 +300-300

Parametry kinematyki

Robot IrB 1400

Robot IrB 1400

Elementy panelu 1

Elementy panelu 2

Ekran panelu w trybie pracy ręcznej

Ekran panelu w trybie wykonywania programu

Elementy języka RAPID Rodzaje podprogramów (routines) procedury (procedure) funkcje (function) pułapki (trap routine) Argumenty instrukcji numeryczne całkowite, lub zmiennoprzecinkowe poj. precyzji, np. 1, 2.5, 2.4E 2; logiczne, TRUE, FALSE; zmienne, np. p10, reg 1; wyrażenia, np. 5 + reg1 2; wywołania funkcji, np. Offs(p10, 10, 0, 0); napisy (do 80 znaków), np. xyz ;

Elementy języka RAPID Typy danych atomowe numeryczne (num) logiczne (bool) rekordy konfiguracja robota (robtarget) przemieszczenie (pose) wektor pozycji (pos) orientacja (orient) narzędzie (tooldata) ładunek (loaddata) obiekt (wobjdata)

Różne (Miscellaneous) := Assigns a value WaitTime Waits a given amount of time WaitUntil Waits until a condition is met comment Inserts comments into the program OpMode Reads the current operating mode RunMode Reads the current program execution mode Dim Gets the size of an array Present Tests if an optional parameter is used Load Loads a program module during execution UnLoad Deletes a program module during execution

Struktury sterujące (Program flow) ProcCall Calls a new procedure CallByVar Calls a procedure by a variable RETURN Finishes execution of a routine FOR Repeats a given number of times GOTO Goes to (jumps to) a new instruction Compact IF If a condition is met, then execute one instruction IF If a condition is met, then execute a sequence of instructions label Line name (used together with GOTO) TEST Depending on the value of an expression WHILE Repeats as long as Stop Stops execution EXIT Stops execution when a restart is not allowed Break Stops execution temporarily

Ustawienia ruchu (Motion settings) I AccSet Reduces the acceleration ConfJ Controls the robot configuration during joint movement ConfL Monitors the robot configuration during linear movement VelSet Changes the programmed velocity GripLoad Defines the payload SingArea Defines the interpolation method through singular points PDispOn Activates program displacement PDispSet Activates program displacement by specifying a value DefFrame Defines a program displacement automatically DefDFrame Defines a displacement frame

Ustawienia ruchu (Motion settings) II EOffsOn Activates an offset for an external axis EOffsSet Activates an offset for an external axis using a value ORobT Removes a program displacement from a position SoftAct Activates soft servo for a robot axis TuneServo Tunes the servo

Instrukcje ruchu (Motion) I MoveC Moves the TCP circularly MoveJ Moves the robot by joint movement MoveL Moves the TCP linearly MoveAbsJ Moves the robot to an absolute joint position MoveXDO Moves the robot and set an output in the end position SearchC Searches during circular movement SearchL Searches during linear movement ActUnit Activates an external mechanical unit DeactUnit Deactivates an external mechanical unit Offs Displaces a position RelTool Displaces a position expressed in the tool coordinate system

Instrukcje ruchu (Motion) II MirPos Mirrors a position CRobT Reads current robot position (the complete robtarget) CJointT Reads the current joint angles CPos Reads the current position (pos data) CTool Reads the current tool data CWObj Reads the current work object data StopMove Stops robot motion StartMove Restarts robot motion

Obsługa wejść/wyjść (Input and output signals) I InvertDO Inverts the value of a digital output signal PulseDO Generates a pulse on a digital output signal Reset Sets a digital output signal to 0 Set Sets a digital output signal to 1 SetAO Sets the value of an analog output signal SetDO Sets the value of a digital output signal after a defined time SetGO Sets the value of a group of digital output signals WaitDI Waits until a digital input is set WaitDO Waits until a digital output is set AInput Reads the value of an analog input signal DInput Reads the value of a digital input signal DOutput Reads the value of a digital output signal

Obsługa wejść/wyjść (Input and output signals) II GInput Reads the value of a group of digital input signals GOutput Reads the value of a group of digital output signals TestDI Tests if a digital input signal is set IODisable Disables an I/O module IOEnable Enables an I/O module

Przerwania (Interrupts) ISignalDI Orders interrupts from a digital input signal ISignalDO Orders interrupts from a digital output signal ITimer Orders a timed interrupt IDelete Cancels an interrupt ISleep Deactivates an interrupt IWatch Activates an interrupt IDisable Disables interrupts IEnable Enables interrupts CONNECT Connects an interrupt to a trap routine

Obsługa błędów (Error Recovery) EXIT Terminates program execution RAISE Calls an error handler RETRY Restarts following an error TRYNEXT Skips the instruction that has caused the error RETURN Returns to the routine that called the current routine

Komunikacja z użytkownikiem (Communication) TPErase Erases text printed on the teach pendant TPWrite Writes on the teach pendant TPReadFK Reads function keys TPReadNum Reads a number from the teach pendant ErrWrite Stores an error message in the error log

Czas (System& Time) ClkReset Resets a clock used for timing ClkStart Starts a clock used for timing ClkStop Stops a clock used for timing ClkRead Reads a clock used for timing CDate Reads the current date as a string CTime Reads the current time as a string GetTime Gets the current time as a numeric value

Matematyczne (Mathematics) I Add Adds a numeric value Clear Clears the value Decr Decrements by 1 Incr Increments by 1 Abs Calculates the absolute value Sqrt Calculates the square root Exp Calculates the exponential value with the base e Pow Calculates the exponential value with an arbitrary base ACos Calculates the arc cosine value ASin Calculates the arc sine value ATan/ATan2 Calculates the arc tangent value Cos Calculates the cosine value

Matematyczne (Mathematics) II Sin Calculates the sine value Tan Calculates the tangent value EulerZYX Calculates Euler angles from an orientation OrientZYX Calculates the orientation from Euler angles PoseInv Inverts a pose PoseMult Multiplies a pose PoseVect Multiplies a pose and a vector Round Rounds a numeric value Trunc Truncates a numeric value

Napisy(Text strings) NumToStr Converts numeric value to string StrFind Searches for a character in a string StrLen Gets the string length StrMap Maps a string StrMatch Searches for a pattern in a string StrMemb Checks if a character is a member of a set StrOrder Checks if strings are ordered StrPart Gets a part of a string StrToVal Converts a string to a numeric value ValToStr Converts a value to a string

Ekran panelu w trybie wykonywania programu

Poziomy programowania Produktu: opis końcowego kształtu; planowanie kolejności operacji systemu robotycznego. Procesu: dla znanego ciągu operacji wyznaczenie ich parametrów. Narzędzia: opis ruchu narzędzia dla realizacji konretnej operacji. Ramienia: planowanie ruchu ramienia realizującego zadany ruch narzędzia. Przegubu: planowanie ruchu każdego z przegubów.

Przykład programu na poziomie produktu start task ; // Inicjalizacja procesu WHILE Dinput(taskstop) = 0 DO //Powtarzaj aż do wciśnięcia przycisku fetch part ; //Pobierz element z podajnika insert part ; //Umieść w maszynie process part ;//Uruchom obróbkę remove part; //Odbierz element leave part ; //Odłóż do podajnika ENDWHILE stop task ; //Zatrzymaj proces

Przykład programu na poziomie narzędzia PROC cam pick() MoveJ app point, v1500, z25, tool0 ; // Wstępne pozycjonowanie przy stole roboczym (z tolerancją 25 mm) MoveJ Offs(camera11,x,y, 30), v1500, fine, tool0 ; // Pozycjonowanie 30 mm powyżej pozycji x, y uzyskanej z kamery temp1:=crobt(); // Zapamiętanie aktualnej pozycji MoveL Offs(temp1,0,0, 38), v400, fine, tool0 ; // Ruch w kierunku obiektu z uwzględnieniem eleastyczności chwytaka (8 mm) Set DO08; // Włączenie chwytaka (pompy próżniowej) WaitTime 1.5; // Oczekiwanie 1.5 s MoveL Offs(temp1,0,0,10), v400, fine, tool0 ; // Ruch w górę 10 mm MoveJ app point, v1500, z25, tool0 ; // Ruch do pozycji początkowej z tolerancją 25 mm MoveJ place box, v1500, fine, tool0 ; // Umieszczenie obiektu w pudełku Reset DO08; // Wyłączenie chwytaka, zwolnienie obiektu Set DO07; // Włączenie dmuchawy WaitTime 0.8; // Oczekiwanie 0.8 s Reset DO07; // Wyłączenie dmuchawy ENDPROC