Programarea Robotului Industrial Abb Folosind Limbajul Rapid Pentru Manipularea Unor Piese Cilindrice
Proiect de diplomă
Programarea robotului industrial ABB folosind limbajul Rapid pentru manipularea unor piese cilindrice
Cuprins
Introducere
Capitolul I. Prezentarea robotului industrial ABB IRB 140
I.1 Prezentare generală
I.2 Panoul de operare
I.3 Consola de instruire
Capitolul II: Programarea robotului industrial ABB IRB 140
II.1 Calibrarea robotului industrial ABB IRB 140
II.2 Setările parametrilor pentru gripperul pneumatic
II.3 Utilizarea joystick-ului pentru mișcarea robotului
II.4 Construirea programului robot cu ajutorul consolei de instruire
II.4.1 Instrucțiuni de poziționare
II.4.2 Setarea/Resetarea unui semnal de ieșire digital
II.4.3 Instrucțiunea de temporizare
Concluzii
Bibliografie
Anexe
Introducere
Manipulatoarele și roboții industriali reprezintă o direcție aparte în concepția modernă a dispozitivelor de manipulare, pe linia realizării unor mecanisme capabile să realizeze o serie de mișcări variate, sub conducerera unui sistem de comandă. Manipulatoarele și roboții industriali reprezintă module ale sistemelor de manipulare flexibile adaptabile cu ușurință de la o sarcină de manipulare la alta. Aceste sisteme reprezintă elemente constructive de bază ale sistemelor flexibile de montaj, datorită în principal flexibilității funcționale a lor, a calității pe care o au de a efectua o mare varietate de mișcări printr-o reprogramare corespunzătore.
În aceste condiții se pot evidenția câteva avantaje privind folosirea manipulatoarelor și roboților industriali în sistemele de fabricație și în speță în sistemele de montaj, în comparație cu dispozitivele specializate de manipulare :
reducerea duratei de reglaj și punere în funcțiune a unor sisteme noi de manipulare, ca urmare a condițiilor ușoare de readaptare la situațiile nou create;
posibilități de reprogramare rapidă a ciclului de manipulare.
Introducerea manipulatoarelor și a roboților industriali în procesele de producție a avut loc în condițiile trecerii de la fabricația produselor în serii mari la fabricația de serie medie și mică. Operațiile de manipulare a pieselor și a dispozitivelor specializate au devenit astfel de mare importanță în procesele de fabricație.
Fabricarea și utilizarea manipulatoarelor și a roboților industriali a fost posibilă după ce au fost rezolvate următoarele probleme :
Manipularea pieselor la distanță cu ajutorul mecanismelor articulate, numite telemanipulatoare;
Automatizarea mașinilor unelte utilizând comanda numerică;
Utilizarea calculatoarelor electronice.
În generarea unui sistem nou de manipulare cu roboți sau manipulatoare reprezintă o investiție inițială mai scumpă decât a unei automatizări specializate rigide, însă datorită avantajelor precizate anterior, în timp și în special în situția schimbării frecvente a producției ele devin mult mai eficiente din punct de vedere economic.
Denumirea de robot este atribuită multor tipuri de echipamente, care pot fi încadrate în familia robotilor, dintre acestea evidențiindu-se manipulatoarele și roboții industriali, specifici în operațiile de manipulare în sistemele de montaj. Se poate da o definiție care reflectă această noțiune, astfel: robotul industrial este un dispozitiv cu un număr mare de grade de mobilitate, capabil să execute automat sccesiv operații de manipulare, fiind ușor programabil.
Lucrarea de diplomă are următoarele obiective:
Prezentarea robotului industrial ABB IRB 140.
Calibrarea și programarea robotului industrial ABB IRB 140.
Capitolul I. Prezentarea robotului industrial ABB IRB 140
I.1 Prezentare generală
Robobotul ABB IRB 140 este alcătuit din două părți principale: controler și manipulator.
Fig. 1.1 – Controlerul de mișcare și manipulatorul[3]
Dialogul între operator și robot se realizează prin intermediul consolei de instruire și a panoului de operare, situate pe controlerul de mișcare al robotului (figura 1.2).
Fig. 1.2 – Consola de operare și panoul de operare[3]
Robotul ABB IRB 140 are șase grade de libertate oferite de șase cuple cinematice de clasa a V-a, toate de rotație. Cele șase axe în jurul cărora se realizează mișcarea articulațiilor sunt prezentate în figura 1.3.
Fig. 1.3 – Brațul articulat al robotului IRB 140[3]
Principalele elemente ale controlerului S4C, de mișcare pentru roboți sunt precizate în figura 1.4.
Fig. 1.4 – Controlerul S4C[5]
I.2 Panoul de operare
Structura panoului de operare și o scurtă descriere a elementelor componente este prezentată în cele ce urmează:
Fig. 1.5 – Panoul de operare[5]
Activare motoare – starea curentă a motoarelor robotului este indicată de o lampă;
lumină continuă – motoarele sunt pregătite pentru comandă;
lumină intermitentă – robotul este decalibrat;
lumină intermitentă– a fost atinsă o poziție limită a spațiului de lucru indicată de limitatoare fizice montate pe segmentele robotului sau este selectat modul de lucru manual.
Modul de operare a robotului:
Modul de operare automat
Este selectat la execuția unor programe robot în cadrul unui proces tehnologic. În acest mod de operare nu este posibilă comanda robotului prin joystick. De asemenea, butonul de activare al motoarelor situat pe consola de operare este dezactivat și toate facilitățile de editare a programelor sunt blocate.
Modul de operare manual cu viteză redusă
Este folosit pentru programare și la comanda manuală a segmentelor robotului.
Selectarea acestui mod de operare se face și în cazul în care se dorește dezactivarea motoarelor.
Modul de operare manual cu viteză maximă
Este folosit pentru testarea programelor robot la viteza maximă, viteză atinsă la selecția modului de operare automat. În acest mod de operare butonul activare motoare este activ. La apăsarea acestuia programele încărcate vor fi executate și la eliberare, execuția programelor va fi suspendată.
Butonul de avarie
La apăsarea acestui buton, indiferent de starea sau modul de operare în care se află robotul, vor fi anulate toate comenzile către motoare. Butonul de avarie va rămâne apăsat, iar pentru activarea motoarelor va trebui readus în poziția sa inițială.
Contor pentru timpul de operare
Indică numărul de ore în care motoarele robotului au fost active.
I.3 Consola de instruire
Consola de instruire ocupă o poziție centrală în sistemul robot ABB IRB 140. Cu ajutorul său poate fi realizată majoritatea operațiilor de bază. Figura 1.6 prezintă aspectul general al consolei de programare în vedere frontală.
Fig. 1.6 – Consola de instruire[8]
Butonul oprire de urgență
Robotul se oprește instantaneu îndată ce acest buton este apăsat, indiferent de starea sa mecanică ori de modul de operare. Acest buton este cunoscut și sub denumirea de “ciupercă de avarie”.
Practic, apăsarea acestui buton are ca efect trecerea tuturor motoarelor electrice ale robotului în modul oprit . După apăsare, butonul rămâne blocat în această pozițe, iar revenirea sa în poziția inițială necesită efectuarea unei mișcări mecanice speciale din partea utilizatorului (ceea ce previne deblocarea sa nedorită și accidentală). Revenirea în starea inițială are ca efect trecerea tuturor motoarelor electrice ale robotului în modul pornit.
Dispozitivul de validare a mișcării
Are trei poziții: eliberat, apăsat până la jumătatea cursei și complet apăsat. Apăsat la jumătatea cursei, butonul va determina activarea motoarelor robotului, iar în celelalte două stări butonul va determina dezactivarea motoarelor. Butonul va activa motoarele robotului numai în cazul în care se dorește deplasarea segmentelor prin joystick sau la lansarea în execuție a unor programe, în cazul în care robotul este în unul din cele două moduri de operare manual.[8]
Dispozitivul de validare trebuie folosit de operator numai atunci când se dorește mișcarea robotului, fie sub comandă manuală prin joystick, fie pentru executarea unui program .
Joystick-ul
Acesta este un dispozitiv cu o construcție specială, care prezintă trei grade de libertate, și este folosit pentru a deplasa manual articulațiile robotului. Spre exemplu, joystick-ul este folosit de operator atunci când se construiește un nou program pentru robot.[8]
Ecranul
Ecranul de afișare este folosit pentru a afișa toate informațiile necesare în timpul programării robotului, al schimbării programului funcțional . Pe ecran pot fi afișate simultan 16 linii, fiecare linie fiind compusă din 40 de caractere.
Tastele consolei
Figura 1.7 arată numele diferitelor taste existente pe consola de programare. Cele mai multe taste generează anumite funcții predefinite de către constructor, iar câteva pot fi programate de utilizator. Toate tastele sunt de tip "bipozițional", funcția asociată fiind realizată numai prin apăsare. Fiecare tastă este marcată grafic printr-un simbol, astfel încât acesta să fie cât mai sugestiv în privința funcției asociate tastei respective.
Din punct de vedere funcțional, tastele sunt împărțite în câteva "grupe". Dispunerea lor pe suprafața consolei, în funcție de grupa de apartenență, poate fi observată de asemenea în Figura 1.7:
Fig. 1.7 – Structura consolei de operare[8]
Principalele grupe de taste existente pe consola de programare sunt următoarele:
Taste pentru operarea pe ecran cu "ferestre"
Taste pentru navigare
Taste pentru controlul mișcării
Taste pentru activarea meniurilor
Taste pentru activarea unor funcții
Taste de uz general
Taste programabile
Taste numerice
Tastele pentru operarea pe ecran cu "ferestre" permit selectarea unei “ferestre” (din cele disponibile în mod predefinit) cu care utilizatorul dorește să lucreze la un moment dat pe ecranul consolei. Aceste ferestre sunt asociate de fapt unor funcții concrete care pot fi realizate de către sistemul-robot prin intermediul consolei de programare:[8]
Controlul manual adică funcția prin care articulațiile robotului pot fi deplasate sub comanda manuală a operatorului.
Programare, adică grupul de funcții specifice proceselor de construcție, editare și testare a unui program funcțional.
Managementul intrărilor și ieșirilor digitale, adică funcția prin care se gestionează manual controlul intrărilor și ieșirilor robotului (existente pe modulul specializat I / O amplasat în interiorul controller-ului).
Managementul fișierelor, adică funcția prin care se gestionează fișierele asociate programelor funcționale.
Parametrii sistemului, adică funcția prin care se configurează sistemul-robot prin valori alocate unor parametrii cunoscuți sub denumirea de "parametrii sistem".
Service, adică funcția prin care consola oferă utilizatoru-lui informații utile asupra "problemelor funcționale" ale robotului, precum și anumite modalități sau proceduri pentru "depășirea" acestora.
Operația automată adică funcția prin care robotul efectuează "automat" un program funcțional (fără controlul direct al operatorului uman).
Tastele incluse în acest prim grup și funcțiile alocate lor sunt următoarele:
Operația manuală. Tastă folosită pentru a introduce pe ecran o fereastră specifică procesului de instruire a robotului (în privința mișcărilor efectuate din articulațiile sale).
Program. Tastă folosită pentru a introduce pe ecran o fereastră specifică procesului de programare a robotului, editare și testare a programului realizat.
Managementul intrărilor și ieșirilor digitale. Tastă folosită pentru a introduce pe ecran o fereastră care permite simulări logice ale semnalelor de intrare / ieșire din modulul specializat Inputs / Outputs al controller-ului robot.
Diverse Tastă folosită pentru a comuta pe ecran apariția altor tipuri de ferestre (spre exemplu Parametrii sistem, Service, Operația automată sau Managementul fișierelor).
Tastele pentru navigare sunt folosite de către utilizator pentru a naviga între ferestrele afișate simultan pe ecran sau pentru a muta cursorul în interiorul aceleiași pagini care ocupă ecranul la un moment dat.
Listă. Această tastă se folosește pentru a muta cursorul dintr-o fereastră în alta, atunci când două ferestre sunt afișate salelor de intrare / ieșire din modulul specializat Inputs / Outputs al controller-ului robot.
Diverse Tastă folosită pentru a comuta pe ecran apariția altor tipuri de ferestre (spre exemplu Parametrii sistem, Service, Operația automată sau Managementul fișierelor).
Tastele pentru navigare sunt folosite de către utilizator pentru a naviga între ferestrele afișate simultan pe ecran sau pentru a muta cursorul în interiorul aceleiași pagini care ocupă ecranul la un moment dat.
Listă. Această tastă se folosește pentru a muta cursorul dintr-o fereastră în alta, atunci când două ferestre sunt afișate simultan pe ecran (ferestrele sunt separate pe ecran printr-o linie dublă orizontală).
Pagina următoare. Informația afișată pe ecran se numește pagină și este limitată la 16 linii cu 40 caractere. Aceste taste permit trecerea la pagina următoare respectiv la pagina anterioară.
Jos / Sus. Aceste taste se folosesc pentru a deplasa cursorul cu o linie în jos (respectiv în sus) din poziția sa curentă în pagina afișată pe ecran.
Stânga /Dreapta . Aceste taste se folosesc pentru a deplasa cursorul cu o coloană la stânga (respectiv la dreapta) în cadrul paginii afișate pe ecran la un moment dat.
Tastele pentru controlul mișcării. Sunt folosite de către operator pentru a alege modalitățile dorite în privința mi șcării articulațiilor robotului sau ale unor "axe externe de mișcare" atașate acestuia.Cu ajutorul lor sunt posibile:
Deplasări liniare ale punctului caracteristic al terminalului robot de-a lungul axelor de coordonate ale sistemului de referință (rectangular) atașat acestui punct (așa-numitul "sistem de referință TCP"). În cazul general, aceste deplasări presupun mișcări intercorelate (interpolate) ale tuturor articulațiilor robotului, astfel încât la nivelul TCP să rezulte numai deplasări de-a lungul axelor sistemului de coordonate .
Orientări (rotații) ale "sistemului de referință TCP" în jurul originii sale, respectiv punctul TCP.
Deplasări ale TCP produse prin mișcarea unei singure articulații a robotului sau a unui grup de articulații. Acest mod de mișcare este cunoscut în literatura de specialitate sub denumirea de mișcarea axă cu axă, și se caracterizează prin faptul că deplasarea unei articulații se face total independent în raport cu celelalte .De regulă, în timpul deplasării unei articulații celelalte își mențin valoarea asociată a "coordonatei generalizate", cu excepția cazurilor în care construcția mecanică a robotului nu permite acest lucru.
Tastele pentru activarea meniurilor. Aceste taste, permit activarea unor meniuri pe ecranul consolei. Referitor la modul lor de operare se poate preciza:
Tipul meniului alocat la un moment dat unei anumite taste este automat afișat pe ecran, în partea sa superioară și sub fiecare tastă. Aceasta înseamnă faptul că o tastă poate să aibă alocate meniuri diferite, în funcție de starea curentă a consolei la un moment dat.
Conținutul unui meniu este afișat pe ecran numai după apăsarea tastei adiacente. El este prezentat într-o fereastră și este plasat în partea superioară a ecranului (sub tasta corespondentă).
Tastele pentru activarea unor funcții Aceste taste permit activarea unor funcții frecvent folosite de către operator. Referitor la modul lor de operare se poate preciza faptul că tipul funcției alocate la un moment dat unei taste este afișat pe ecran, în partea sa inferioară și deasupra tastei, deci și alocarea acestor taste este tot de tip "dinamic", ca și în cazul grupului precedent.
Tastele de uz general. Tastele incluse în acest grup permit utilizatorului diferite funcții care nu sunt legate de un anumit regim de programare. În general, ele asigură funcții de control și editare a programelor robot.
Stop. Apăsarea acestei taste determină oprirea din execuție a unui program.
Contrast. Prin apăsarea repetată a acestei taste se poate modifica contrastul ecranului, astfel încât acesta să devină cât mai lizibil.
Delete. Apăsarea acestei taste șterge o zonă de informație care a fost selectată anterior pe ecran.
Enter. Această tastă se folosește pentru a confirma introducerea oricăror date prin consolă (în mod similar tastei cu aceiași funcție de pe claviatura unui calculator).
Taste programabile. Un grup format din 3 taste pot fi programate de către utilizator pentru funcții de tip "setare/resetare" alocate unei ieșiri digitale a robotului sau pentru simularea activării unor intrări digitale ale sistemului robot. Ele sunt inscripționate cu P1, P2 și respectiv P3.
De menționat că pe fața consolei sunt disponibile și două butoane care pot fi folosite în același scop. Acesta este motivul pentru care ele sunt inscripționate cu P4 și respectiv P5.
Tastele numerice .Un grup format din 12 taste sunt plasate în partea dreaptă a ecranului consolei de programare. Dintre acestea, un număr de 10 taste sunt inscripționate numeric prin cifrele 0-9, iar celelalte două sunt inscripționate cu caracterele " – " și respectiv " * ". Ansamblul celor 12 taste din acest grup permite introducerea caracterelor alfa-numerice necesare realizării unui program funcțional.[8]
Pentru aceasta se utilizează o procedură "indirectă" și relativ ingenioasă, prin care fiecare tastă din grupul de 12 este asociată în final unui caracter alfanumeric afișat pe ecran. Întrucât numărul tastelor numerice este mai mic decât cel al caracterelor alfa-numerice, acestea sunt afișate pe ecran în grupuri de câte 12. Fiecare grup de caractere alfanumerice este de fapt o matrice cu 4 linii și 3 coloane (exact ca și dispunerea spațială a tastelor numerice) care conține în fiecare locație un caracter. În felul acesta, apăsarea unei taste numerice determină selecția caracterului plasat pe ecran în aceiași poziție (în cadrul grupului selectat anterior), așa cum se poate observa în Figura 1.8.
Figura 1.8 Utilizarea tastelor numerice pentru introducerea unui text[8]
În Figura 1.8 este prezentată atât zona tastelor numerice de pe consolă cât și o fereastră cu caractere alfanumerice care este afișată pe ecranul consolei. În partea de jos a ferestrei se observă 5 simboluri (A-a, ← , →, Cancel și OK).
Capitolul II: Programarea robotului industrial ABB IRB 140
II.1 Calibrarea robotului industrial ABB IRB 140
După punerea sub tensiune, robotul trebuie readus în poziția de origine mecanică în
vederea sincronizării axelor de rotație (în lipsa sincronizării, comenzile de deplasare la o poziție memorată, sau date prin coordonate, precum și memorarea pozițiilor nu sunt efectuate).
Primul pas este de a poziționa robotul în poziția de origine mecanică, mișcând axele astfel încât marcajele de pe fiecare axă a robotului să coincidă cu cea din figura 2.1.
Figura 2.1 Pozițiile de calibrare[6]
Această sincronizare poate fi realizată utilizând cutia de instruire a robotului astfel: “Service->Calib->Fine Calibration”(figurile 2.2, 2.3).
Figura 2.2 Fereastra principală
Figura 2.3 Fereastra “Service”
Din această fereastră vom alege fiecare axă folosind butonul “All” și vom calibra fiecare axă (figura 2.4).
Figura 2.4 Axele manipulatorului
Urmatorul pas este să actualizam contorul de rotație a fiecarei axe, utilizand meniul “Service->Calib->Rev.Counter Update” (figura 2.5)
Figura 2.5 Fereastra “Service”
Din această fereastra vom alege fiecare axă folosind butonul “All” și vom actualiza contorul de rotație pentru fiecare axă. (figura 2.6)
Figura 2.6 Controlul de rotație
Pasul următor este de a se introduce valorile coordonatelor pentru stabilirea sistemului de referință. Acestea se introduc cu ajutorul consolei de instruire astfel: “System parameters-Topics – Manipulator – irb” (figurile 2.7, 2.8, 2.9)
Figura 2.7 Fereastra principală
Figura 2.8 Fereastra “System Parameters”
Figura 2.9 Axele manipulatorului
În cadrul ferestrei Motor Calibration se accesează cele 6 axe ale robotului și la opțiunea Compensarea Calibrării se introduc valorile date de producător (figura 2.10).
Figura 2.10 Compensarea calibrării
Aceste valori sunt date de producător și se găsesc inscripționate în interiorul controlerului robotului (figurile 2.11, 2.12)
Figura 2.11 Controlerul robotului
Figura 2.12 Compensarea calibrării
II.2 Setările parametrilor pentru gripperul pneumatic
Pentru a putea utiliza gripperul pneumatic trebuie să introducem în memoria robotului o nouă unitate de comandă pentru semnalele de intrare-ieșire.
Unitatea DSQC 328 (figura 2.13) conține 16 semnale digitale de intrare, divizate în grupuri de câte 8, și 16 semnale digitale de ieșire divizate în două grupuri de câte 8. Aceasta unitate este alimentată cu 24 de volți.
Figura 2.13 Unitatea DSQC 328[6]
Putem introduce unitatea de comandă în memoria robotului astfel: “System parameters->Topics->IO Signals->Units” (figurile 2.14, 2.15, 2.16, 2.17)
Figura 2.14 Fereastra principală
Figura 2.15 Fereastra “System parameters”
Figura 2.16 Unitățile digitale de intrare-ieșire
Figura 2.17 Unitățile digitale de intrare – ieșire
Am creat o unitate nouă, numită “vac”, tipul unității este “d328” și are adresa 10 (figura 2.18).
Figura 2.18 Unitatea “vac” creată
Următorul pas este să setam semnalui digital de ieșire pentru gripperul pneumatic astfel”System parameters->Topics->IO Signals->Units->Add”(figurile 2.19,2.20,2.21,2.22)
Figura 2.19 Fereastra principală
Figura 2.20 Fereastra “System parameters”
Figura 2.21 Fereastra semnalele utilizatorului
Figura 2.22 Fereastra semnalele utilizatorului
Am creat un nou semnal digital de ieșire pe care l-am conectat la unitatea “vac”, care a fost creata anterior (figura 2.23).
Figura 2.23 Fereastra “semnalul d1”
Din fereastra “Inputs/Outputs” putem modifica manual semnalele create în semnale logice “0” sau “1” (figura 2.24).
Figura 2.24 Managementul intrărilor și ieșirilor digitale
După ce am terminat de realizat setările de calibrare și parametrii gripperului pneumatic, trebuie să salvăm acești parametrii în memoria internă a robotului. Pentru a face acest lucru trebuie să accesăm meniul “Misceellaneous – File – Save All as…” (figurile 2.25, 2.26).
Figura 2.25 Ferastra “salvare parametri”
Figura 2.26 Dosarul “Backup”
Am numit acești parametri “Sysparbackup”, salvându-i în subdirectorul “Backup” (figura 2.27).
Figura 2.27 Dosarul “Sysparbackup”
II.3 Utilizarea joystick-ului pentru mișcarea robotului
Mișcarea articulațiilor robotului se poate realiza cu ajutorul joystick-ului amplasat pe consola de instruire. În cazul general, joystick-ul este un dispozitiv specializat, folosit pentru a mișca în pozițiile dorite articulațiile unui robot. Joystick-ul existent pe consola ABB conține 3 grade de libertate, ceea ce înseamnă că se pot comanda simultan maxim 3 mișcări diferite ale robotului prin intermediul său. Viteza mișcării este direct proporțională cu deflexia joystick-ului, o deflexie mare a joystick-ului față de poziția sa de repaus însemnând și o viteză mai mare a mișcării comandate.
Joystick-ul poate fi folosit indiferent de fereastra care este deschisă în acel moment pe ecranul consolei. Chiar dacă la un moment dat una din articulațiile robotului este în afara domeniului său activ (intervalul de operare predefinit), aceasta se poate aduce înapoi în domeniul activ cu ajutorul joystick-ului. Totuși, din motive evidente, nu se poate mișca robotul cu ajutorul joystick-ului în următoarele situații:
Când robotul este în modul automat.
Când un program este în curs de execuție.
Funcțiile joystick-ului pot fi vizualizate și schimbate după dorința utilizatorului în fereastra “Jogging”(figura2.29). După realizarea selecției dorite, robotul se va mișca imediat ce este manevrat joystick-ul. Pentru aceasta trebuie luate măsuri de precauție asupra setărilor parametrilor de mișcare (limita de viteză) precum și referitoare la elementele prezente în spațiul de operare al robotului.
Deplasarea liniara a robotului se poate face astfel:
Se verifică faptul că selectorul modului de operare de pe panoul operator este trecut în regimul manual.
Folosind tastele consolei de instruire, se selectează robotul ca unitate de mișcare și respectiv mișcarea liniară ca tip de mișcare pentru robot.
Figura 2.28 Tastele consolei folosite pentru selecția tipului de mișcare
Se reamintește faptul că:
Cu ajutorul tastei “Motion unit” se poate alege între operarea robotului și operarea unei alte axe externe de mișcare. În ambele cazuri joystick-ul va fi folosit ca dispozitiv pentru comanda mișcărilor.
Cu ajutorul tastei “Motion type” se poate selecta modalitatea dorită de mișcare a robotului sub comanda manuală a operatorului exercitată pe joystick. De aici se poate selecta:
Mișcare liniară
Mișcare de reorientare a efectorului robot
Mișcare la nivel de articulație. Avem două grupuri de articulații: grupul 1 (format din articulațiile 1, 2 și 3) și grupul 2 (format din articulațiile 4, 5 și 6).
Se apasă butonul de validare al mișcării de pe consolă și se menține constant în această poziție, astfel încât să se obțină activarea acționărilor robotului.
Figura 2.29 Ferastra “Jogging”
II.4 Construirea programului robot cu ajutorul consolei de instruire
II.4.1 Instrucțiuni de poziționare
O instrucțiune de poziționare este definită prin următoarele argumente, fiecare definind o caracteristică de mișcare a robotului:
tipul traiectoriei (liniară, circular, oarecare);
poziția și orientarea țintă;
viteza în timpul deplasării;
tipul (zona) de poziționare, dat sub forma distanței la care se va apropia efectorul de poziția țintă, înainte de a începe deplasarea către următoarea poziție programată;
efectorul folosit în operația curentă.
În cazul nostru instrucțiunile de poziționare arată astfel:
“MoveAbs *, v1000, z50, tool10
“MoveL *, v1000, z50, tool10”
În care:
MoveAbs – deplasare la o poziție țintă definită în spațiul coordonatelor generalizate
MoveL – deplasare liniară
* – punctul țintă
v1000 – viteza deplasării este 1000mm/s
z50 – distanța față de punctul țintă până la care se realizează deplasarea este de 10mm
tool1 – efectorul utilizat în deplasare este tool1
Pentru programarea robotului să efectueze o deplasare se vor parcurge următorii pași:
Se va poziționa robotul în poziția țintă prin deplasarea joystick-ului în modul de operare manual
Se selectează o instrucțiune din lista de instrucțiuni: meniul “Program -Edit:Show IPL – IPL1: Motion&Process.”
Se alege instrucțiunea dorită prin apăsarea tastei numerice corespunzătoare. Instrucțiunea va fi inclusă direct în program, și argumentele ei vor fi setate automat. Dacă argumentele introduse în mod implicit în instrucțiunea selectată satisfac cerințele utilizatorului, instrucțiunea este gata pentru a fi lansată în execuție.
II.4.2 Setarea/Resetarea unui semnal de ieșire digital
O instrucțiune de adresare a unui semnal de ieșire digital este definită prin următoarele argumente:
semnalul digital adresat;
nivelul pentru starea activă a semnalului digital (low sau high);
În cazul nostru instrucțiunile de poziționare arată astfel:
“Set d1” – Semnalul d1 este setat pe 1 logic
“Reset d1” – Semnalul d1 este setat pe 0 logic
Programarea presupune parcurgerea următorilor pași:
Se selectează o instrucțiune din lista de instrucțiuni: meniul “Program -Edit:Show IPL – IPL1: IO.”
Se alege instrucțiunea dorită prin apăsarea taste numerice corespunzătoare;
Instrucțiunea va fi inclusă direct în program. Argumentul selectat va fi marcat cu caracterul “?”. Porțiunea din subsolul liniei duble conține toate semnalele digitale de ieșire disponibile.
Precizarea semnalului și a nivelului cu care va fi setat se face în modul următor:
Se va selecta argumentul ce urmează a fi modificat.
Se va selecta semnalul dorit;
Se va apăsa butonul “OK” pentru confirmare.
II.4.3 Instrucțiunea de temporizare
Execuția unei instrucțiuni de așteptare are ca efect suspendarea temporară a execuției unui program. Perioada în care execuția este suspendată poate fi dictată de un semnal digital de intrare sau poate fi precizată explicit în instrucțiune.
În cazul nostru instrucțiunile de poziționare arată astfel:
“WaitTime\InPos, 0.05”
În care:
WaitTime\InPos – instrucțiunea de temporizare
0.05 – valoarea temporizării (în cazul nostru 0.05 secunde)
Programarea presupune parcurgerea următorilor pași:
Se selectează o instrucțiune din lista de instrucțiuni: meniul “Program -Edit:Show IPL – IPL1: Common.”
Se va selecta instrucțiunea “WaitTime”;
Folosind tastele numerice, se va introduce temporizarea;
Se apasă butonul “OK” pentru confirmare
Figura 2.30 Ferastra “Program”
Imagini din timpul simulării:
Figura 2.31 Robotul ridicând piesa
Figura 2.32 Manipularea piesei cilindrice
Figura 2.33 Piesele cilindrice
Concluzii
Robotului industrial ABB IRB 140 s-a dovedit a fi foarte ușor de programat, având o interfață de utilizator prietenoasă. Ca și construcție manipulatorul ABB IRB 140, deși a fost construit în anul 2000, este conceput pentru a avea o robustețe ridicată și o flexibilitate foarte mare. De asemenea, acesta are o viteză de execuție foarte mare și o acuratețe sporită.
Pentru a calibra robotul și pentru a face setările parametrilor pentru gripperul pneumatic am fost nevoit să studiez manualele de utilizare și cărțile tehnice ale acestuia.
În cadrul lucrării de diplomă am încercat să prezint aproape toate particularitățile acestui robot industrial prin intermediul unei aplicații de manipulare a unor piese cilindrice. Programând robotul să lucreze la o viteză foarte mare am subliniat acuratețea cu care acesta a manipulat piesele cilindrice.
În încheiere trebuie menționat faptul roboții industriali sunt tot mai mult utilizați în domeniul industrial, fiind o componentă esențială în procesul de producție. Acesta poate să înlocuiască sau să asiste munca omului la o linie de producție sau în manipularea unor utilaje.
Bibliografie
[1] http://new.abb.com/products/robotics/industrial-robots/irb-140;
[2] Rapid reference manual, Rapid overview on-line;
[3] Product Manual 3HAC 7626-1 rev.1 / M2000 ABB Flexible Automation;
[4] ABB Flexible Automation User guide, 3HAC 0966-21 For BaseWare OS 3.1
[5] Product Specification S4Cplus 3HAC 9039-1/Rev. 5 M2000/BaseWare OS 4.0
[6] Product manual IRB 140 type C,IRB 140T type C,IRB 140-6/0.8 type C,IRB 140T-
6/0.8 type C,M2004
[7] RAPID reference manual – part1a, Instructions A-R,Controller software IRC5,
RobotWare 5.0
[8] RAPID reference manual, Controller software IRC5 RobotWare 5.0
Anexe
Programul robot construit cu ajutorul consolei de instruire:
MODULE Sonea2013New
PROC main()
!Rand1!
MoveAbsJ [[0,0,0,0,0,0] NoEOffs,v100,z50,tool10;
WaitTime 1\InPos,0.05;
MoveJ*,v100,z50,tool10;
MoveJ*,v100,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
!Rand2!
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
!Rand3!
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
!Rand4!
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
!Rand5!
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveAbsJ [[0,0,0,0,0,0] NoEOffs,v100,z50,tool10;
ENDPROC
ENDMODULE
Bibliografie
[1] http://new.abb.com/products/robotics/industrial-robots/irb-140;
[2] Rapid reference manual, Rapid overview on-line;
[3] Product Manual 3HAC 7626-1 rev.1 / M2000 ABB Flexible Automation;
[4] ABB Flexible Automation User guide, 3HAC 0966-21 For BaseWare OS 3.1
[5] Product Specification S4Cplus 3HAC 9039-1/Rev. 5 M2000/BaseWare OS 4.0
[6] Product manual IRB 140 type C,IRB 140T type C,IRB 140-6/0.8 type C,IRB 140T-
6/0.8 type C,M2004
[7] RAPID reference manual – part1a, Instructions A-R,Controller software IRC5,
RobotWare 5.0
[8] RAPID reference manual, Controller software IRC5 RobotWare 5.0
Anexe
Programul robot construit cu ajutorul consolei de instruire:
MODULE Sonea2013New
PROC main()
!Rand1!
MoveAbsJ [[0,0,0,0,0,0] NoEOffs,v100,z50,tool10;
WaitTime 1\InPos,0.05;
MoveJ*,v100,z50,tool10;
MoveJ*,v100,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
!Rand2!
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
!Rand3!
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
!Rand4!
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
!Rand5!
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Set D1;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
MoveJ*,v1000,z50,tool10;
WaitTime 1\InPos,0.05;
Reset D1;
MoveAbsJ [[0,0,0,0,0,0] NoEOffs,v100,z50,tool10;
ENDPROC
ENDMODULE
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Programarea Robotului Industrial Abb Folosind Limbajul Rapid Pentru Manipularea Unor Piese Cilindrice (ID: 163057)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
