Download File 1 [606605]
UNIVERSITATEA DIN CRAIOVA
FACULTATEA DE AUTOMATIC Ă, CALCULATOARE ȘI
ELECTRONIC Ă
DEPARTAMENTUL DE MECATRONIC Ă ȘI ROBOTIC Ă
PROIECT DE DIPLOM Ă
Dorinel-Vasilu ță Zamfirescu
COORDONATOR ȘTIIN ȚIFIC
PROF. UNIV. DR. ING. Mircea Ni țulescu
IULIE 2018
CRAIOVA
UNIVERSITATEA DIN CRAIOVA
FACULTATEA DE AUTOMATIC Ă, CALCULATOARE ȘI
ELECTRONIC Ă
DEPARTAMENTUL DE MECATRONIC Ă ȘI ROBOTIC Ă
APLICA ȚII CU ABB IRB 1400
Dorinel-Vasilu ță Zamfirescu
COORDONATOR ȘTIIN ȚIFIC
PROF. UNIV. DR. ING. Mircea Ni țulescu
IULIE 2018
CRAIOVA
„Inteligența înseamnă adaptare.”
Marin Preda
DECLARA ȚIE DE ORIGINALITATE
Subsemnatul Dorinel-Vasilu ță Zamfirescu, student: [anonimizat], Calculatoare și Electronic ă a Universit ății din Craiova, certific prin prezenta c ă am
luat la cuno știn ță de cele prezentate mai jos și c ă îmi asum, în acest context, originalitatea proiect ului
meu de licen ță :
• cu titlul Aplica ții cu ABB IRB 1400,
• coordonat ă de PROF. UNIV. DR. ING. MIRCEA NI ȚULESCU,
• prezentat ă în sesiunea IULIE 2018.
La elaborarea proiectului de licen ță , se consider ă plagiat una dintre urm ătoarele ac țiuni:
• reproducerea exact ă a cuvintelor unui alt autor, dintr-o alt ă lucrare, în limba român ă sau prin
traducere dintr-o alt ă limb ă, dac ă se omit ghilimele și referin ța precis ă,
• redarea cu alte cuvinte, reformularea prin cuvinte proprii sau rezumarea ideilor din alte
lucr ări, dac ă nu se indic ă sursa bibliografic ă,
• prezentarea unor date experimentale ob ținute sau a unor aplica ții realizate de al ți autori f ără
men ționarea corect ă a acestor surse,
• însu șirea total ă sau par țial ă a unei lucr ări în care regulile de mai sus sunt respectate, dar care
are alt autor.
Pentru evitarea acestor situa ții nepl ăcute se recomand ă:
• plasarea între ghilimele a citatelor directe și indicarea referin ței într-o list ă corespunz ătoare la
sf ărșitul lucr ării,
• indicarea în text a reformul ării unei idei, opinii sau teorii și corespunz ător în lista de referin țe
a sursei originale de la care s-a f ăcut preluarea,
• precizarea sursei de la care s-au preluat date expe rimentale, descrieri tehnice, figuri, imagini,
statistici, tabele et caetera,
• precizarea referin țelor poate fi omis ă dac ă se folosesc informa ții sau teorii arhicunoscute, a
căror paternitate este unanim cunoscut ă și acceptat ă.
Data, Semn ătura candidat: [anonimizat],
UNIVERSITATEA DIN CRAIOVA
Facultatea de Automatic ă, Calculatoare și Electronic ă
Departamentul de Mecatronic ă și Robotic ă
Aprobat la data de
…………………
Șef de departament,
Prof. dr. ing.
Dorian COJOCARU
PROIECTUL DE DIPLOM Ă
Numele și prenumele student: [anonimizat]/-ei:
Zamfirescu Dorinel-Vasilu ță
Enun țul temei:
Aplica ții cu ABB IRB 1400
Datele de pornire:
Dezvoltarea si realizarea unor aplicatii utilizand ca element
principal robotul ABB IRB 1400
Con ținutul proiectului:
1. Introducere
2.
3.
4.
5.
6.
7.
8.
9.
Material grafic obligatoriu:
Figuri
Consulta ții:
Periodice
Conduc ătorul știin țific
(titlul, nume și prenume, semn ătura): Prof. Univ. Dr. Ing. Mircea Ni țulescu
Data eliber ării temei:
01.10.2017
Termenul estimat de predare a
proiectului:
15.06.2018
Data pred ării proiectului de c ătre
student: [anonimizat]:
UNIVERSITATEA DIN CRAIOVA
Facultatea de Automatic ă, Calculatoare și Electronic ă
Departamentul de Mecatronic ă și Robotic ă
REFERATUL CONDUC ĂTORULUI ȘTIIN ȚIFIC
Numele și prenumele candidatului/-ei: Zamfirescu Dorinel-Vasilu ță
Specializarea: Robotic ă
Titlul proiectului: Aplica ții cu ABB IRB 1400
Loca ția în care s-a realizat practica de
documentare (se bifeaz ă una sau mai
multe din op țiunile din dreapta): În facultate □
În produc ție □
În cercetare □
Alt ă loca ție: [se detaliaz ă]
În urma analizei lucr ării candidatului au fost constatate urm ătoarele:
Nivelul document ării Insuficient
□ Satisf ăcător
□ Bine
□ Foarte bine
□
Tipul proiectului Cercetare
□ Proiectare
□ Realizare
practic ă □ Altul
[se detaliaz ă]
Aparatul matematic utilizat Simplu
□ Mediu
□ Complex
□ Absent
□
Utilitate Contract de
cercetare □ Cercetare
intern ă □ Utilare
□ Altul
[se detaliaz ă]
Redactarea lucr ării Insuficient
□ Satisf ăcător
□ Bine
□ Foarte bine
□
Partea grafic ă, desene Insuficient ă
□ Satisf ăcătoare
□ Bun ă
□ Foarte bun ă
□
Realizarea
practic ă Contribu ția autorului Insuficient ă
□ Satisf ăcătoare
□ Mare
□ Foarte mare
□
Complexitatea
temei Simpl ă
□ Medie
□ Mare
□ Complex ă
□
Analiza cerin țelor Insuficient
□ Satisf ăcător
□ Bine
□ Foarte bine
□
Arhitectura Simpl ă
□ Medie
□ Mare
□ Complex ă
□
Întocmirea
specifica țiilor Insuficient ă
□ Satisf ăcătoare
□ Bun ă
□ Foarte bun ă
□
func ționale
Implementarea Insuficient ă
□ Satisf ăcătoare
□ Bun ă
□ Foarte bun ă
□
Testarea Insuficient ă
□ Satisf ăcătoare
□ Bun ă
□ Foarte bun ă
□
Func ționarea Da
□ Par țial ă
□ Nu
□
Rezultate experimentale Experiment propriu
□ Preluare din bibliografie
□
Bibliografie Cărți
Reviste
Articole
Referin țe web
Comentarii
și
observa ții
În concluzie, se propune:
ADMITEREA PROIECTULUI
□ RESPINGEREA PROIECTULUI
□
Data, Semn ătura conduc ătorului științific,
I. INTRODUCERE
1.1 Scopul
Principalul scop al lucr ării îl reprezint ă realizarea și dezvolatarea unor aplica ții care utilizeaz ă
ca element principal robotul industrial ABB IRB 14 00. Fiind vorba de un robot industrial acesta
poate fi adaptat pentru a realiz ă și acoperii o gam ă larg ă de aplica ții fie ele industriale, didactice sau
demonstative.
În cadul acestei lucr ări s-a realizat dezvolatarea unui program robot ca pabil s ă realizeze
simularea unei aplica ții de asamablare a unor piese utilizând robotul AB B IRB 1400, dar și
dezvolatarea unei aplica ții demonstrative care are ca principal scop pune rea în eviden ță a mi șcărilor
pe care robotul le poate executa.
Un aspect important îl reprezint ă faptul c ă simularea aplica ției de asamblare poate fi u șor
adaptat ă pentru a realiza piese diferite, doar prin simpla modificare a unor paramentrii din cadrul
programului robot.
1.2 Motiva ția
Plecând de la ideea c ă un robot industrial poate realiza diferite aplica ții și c ă poate fi u șor
adaptat în func ție de cerin țele pe care acesta trebuie s ă le indeplineasc ă, am considerat c ă programul
robot ob ținut în urm ă realiz ării unei simul ări pentru o aplica ție de asamblare, poate fi implementat cu
ușurint ă pentru a deservi la realizarea unei aplcatii reale de asamblare. În cadrul acestei simul ări
robotul va atinge toate punctele necesare pentru a realiza asamblarea pieselor, f ără a ac ționa elementul
sau de execu ție (mai exact gripper-ul ).
În ceea ce prive ște aplica ția demonstrativ ă am considerat c ă realizarea unei astfel de aplica ții
pune în evident ă precizia robotului în ceea ce prive ște execu ția misc ărilor sale, precun și
adaptabilitatea acestuia la un alt fel de aplica ție.
În cadrul aplica ției demonstrative cu robotul ABB IRB 1400 am folosi t o plac ă de dezvoltare
ce utilizeaz ă microcontroller-ul ATmega328p. Aceast ă plac ă de dezvoltarea a fost utilizat ă pentru a
servi la comandarea unui ecran LCD și pentru a cî ți informa țiile primite de la un senzor optic
1.3 Scurt ă descriere
În ceea ce prive ște construc ția robotului, structura sa intern ă, modalitatea de comunicarea cu
elementele exterioare, precun și principalele elemente de comunica ție și panoul operator au fost
descrise în capitolul 2.
În capitolul 3 a fost descris unul dintre cele ma i importante elemente ale robotului și anume,
consola de programare. Aceasta joac ă un rol esen țial în ceea ce prive ște integrarea robotului în
mediul de lucru, fiind elementul care realizeaz ă programarea și deplasarea robotului în func ție de
indica țiile operatorului uman. Deasemenea în cadrul acestu i capitol au fost explicate principalele
elemente care se g ăsesc pe consol ă de programare, precum și principalele func ții îndeplinite de acesta.
În capitolul 4 este descris modul de lucru cu pro gramele utilizând consola de programare și
anume modificarea programelor, interpretarea eroril or, crearea programelor.
În capitolul 5 este descris a modalitatea de prog ramare și testarea a robotului prin
intermediul consolei de programare, folosind limba jul de programare RAPID care este specific
pentru IRB 1400.
În capitolul 6 este descris dezvoltarea aplica țiilor realizate cu robotul, precum și principalele
elemente exterioare care comunic ă cu acesta.
În capitolul 7 sunt descrise principalele concluzi i cu privire la dezvoltarea aplica țiilor.
1. DESCRIEREA STRUCTURII ROBOTULUI
1.1 SCURT Ă DESCRIERE A ROBOTULUI
Robotul ABB IRB 1400 este un robot industrial ce de ține performan țe foarte bune în ceea ce
prive ște opera țiile realizate și precizia acestora, fiind destinat în mod special utiliz ării în mediul
industrial. Robo ții industrialii[1] în func ție de opera țiunea realizat ă se clasific ă în:
• Roboti SCARA- destinati operatiilor de ridicare și așezare a obiectelor;
• Roboti cartezieni- destinati ridic ării și plas ării obiectelor f ăra s ă tin ă cont de orientare;
• Roboti cu 6 grade de libertate- grade ce sunt date in mod normal de num ărul de axe.
IRB 1400 este un robot industrial cu 6 axe[2], care prin construc ția sa este destinat
utiliz ării în mod special in industria manufacturier ă care utilizeaz ă automatiz ări flexibile bazate pe
robo ți. Robotul prezint ă o structur ă deschis ă care este special adaptat ă pentru a oferii flexibilitatea
dorit ă și poate comunica extensiv cu sistemele sale externe .
Fiecare aspect al robotului cum ar fi spre exemplu controlul mi șcării sau execu ția și
dezvoltarea unor proceduri de comunicare, precum și multe alte func ții se realizeaz ă cu ajutorul
sistemului de operare specific robotului și anume BaseWare OS. În cazul in care se dore ște ca robotul
să aib ă și alte func ționalit ăți adi ționale (ca de exemplu: sudur ă în arc sau alte op țiuni de comuniare),
atunci robotul poate fi echipat și cu alte soft-uri op ționale menite s ă ofere suport aplica ției.
IRB 1400[3] este disponibil in dou ă versiuni diferite și anume:
– IRB 1400 – destinat montajului pe podea;
– IRB 1400H- destinat montajului invers.
Robotul a fost proiectat astfel încât acesta s ă fie foarte sigur și să nu pericliteze via ța sau
siguran ța operatorului uman. Acesta are un sistem de sigur ant ă dedicat care este bazat pe un circuit cu
dou ă canale ce este monitorizat continuu. In cazul in c are una din componentele robotului e șueaz ă sau
are erori de func ționare, alimentarea c ătre motoare se opreste și se declan șeaz ă fr ânele. Deasemenea
robotul de ține un num ăr de intr ări electrice ce pot fi folosite pentru a conecta su plimentar și alte
echipamente de protec ție ( spre exemplu por ți de protec ție). Acest aspect ofer ă posibilitatea func țiilor
de siguran ță ale robotului s ăfie activate atât de echipamentele periferice cât și intern.
În ceea ce prive ște construc ția general ă a robotului acesta este realizat din dou ă p ărți
principale ce vor fi descrise în sec țiuniile ce vor urma:
o Manipulatorul;
o Controller- ul.
1.2 MANIPULATORUL
Manipulatorul[3] reprezint ă structura mecanic ă propriu-zis ă a robotului , deoarece acesta este
cel care execut ă opera țiile sau mi șcăriile p e care dorim să le realiz ăm. Manipulatorul are o construc ție
mecanic ă flexibil ă , fiind o construc ție cu autosustinere. În general manipulatoarele nu sunt echipate
cu elemente de execu ție(end-effector) , aspect care ofer ă posibilitatea robotului de a se adapta în
mediul industrial pentru orice fel de opera ție doar prin simpl ă schimbare a elementului de execu ție.
Manipulatorul este echipat cu motoare de curent al ternativ care sunt dotate cu frâne
electromecanice. În cazul în care robotul este inac tiv mai mult de 1000 de ore, aceste frâne blocheaz ă
motoarele. Un aspect în ceea ce prive ște acest timp maxim de inactivitate este acela c ă el poate fi
configurat de c ătre utilizator.
Structura general ă a manipulatorului, axele, mi șcările realizate precum și principalele
componente ale sale sunt prezentate în urm ătoarea figura:
Figura 1. Structura generala, axele și mi șcările manipulatorului
În ceea ce prive ște spa țiul efectiv de lucru în care manipulatorul se poate deplasa, acesta este
dat de c ătre spa țiul de operare al robotului. Acest spa țiu de operare ar trebui s ă fie cunoscut de c ătre
operatorul uman atunci când se realizeaz ă diferite aplica ții cu robotul, pentru un plus de siguran ță .
Spa țiul de operare al robotului este prezentat în figur a urm ătoare:
Figura 2. Spa țiul de lucru al manipulatorului
Sistemul global de coordonate al manipulatorului de fine ște o referita la podea , care reprezint ă
punctul de start pentru celelalte sisteme de coordo nate. Prin intermediul sistemului de coordonate
putem afl ă pozi ția relativ ă a manipulatorului fa ță de un punct fix aflat în spa țiul de lucru. În ceea ce
prive ște celelalte sisteme de coordonate avem sistemul de coordonate al bazei și sistemul de
coordonate al al terminalului care specific ă PCT-ul și orientarea. Toate aceste sisteme de coordonate
sunt prezentate în figura urm ătoare:
Figura 3. Sistemele de coordonate
1.3 Controller -ul
Controller- ul[3] este cel care con ține elementele electronice utilizate pentru a contr ola
manipulatorul și echipamentele periferice. Acesta este special con ceput pentru controlul robotului, în
consecin ță fiind cel care ofer ă o func ționalitate și o performan ță optim ă. Controller -ul folosit pentru
robotul ABB IRB 1400 varianta M2000 se nume ște S4Cplus, iar pentru variantele mai noi precum
M2004 acesta fost înlocuit de controller-ul IRC5 . Principalele componente exterioare ale
controlerului sunt prezentate în figura urm ătoare:
Figura 4. Controller -ul și componentele exterioare
1.3.1 Unitatea electronic ă
Toate unit ățiile electronice de control și supraveghere, în afara pl ăcii de m ăsurare
serial ă (SMB) care se g ăse ște în interiorul manipulatorului, sunt adunate împr eun ă în interiorul
controller -ului. Unitatea electronic ă format ă din unitatea de stocare și placa electronic ă are în
structura sa urm ătoarele elemente:
o Placa calculatorului robotului – aceasta con ține calculatoarele folosite pentru
controlul mi șcării manipulatorului șicomunica ția I/O;
o Placa de memorie – care con ține un surplus de memorie RAM de 8 și 16 MB;
o Placa calculatorului principal – care con ține o memorie RAM de 8 MB destinat ă
controlului sistemului robot;
o Pl ăci op ționale – sunt pl ăcile de comunica ție ce con țin circuite de re țea și comunica ția
cu magistrala;
o Unitatea de sus ținere – ce con ține circuite scurte și regulate ce protejeaz ă ie șirile
tensiunilor.
Locatia acestor unitati electronice este prezentat a in urmatoarea figura:
Figura 5. Loca ția pl ăcilor electronice și unit ățiile din spatele u șii din fa ță
1.3.2 Sistemul de conducere și unit ățile aflate sub carcasa
Sistemul de conducere este realizat din dou ă componente:
• Leg ătur ă continu ă: care converte ște trei faze de tensiune alternativ ă în tensiune
continu ă;
• Modulul de conducere: care realizeaz ă controlul cuplului a 2-3 motoare.
În cazul în care axele externe sunt utilizatela cap acitate maxim ă , se folose ște un al doilea
cabinet de control. Cabinetul axelor externe cuprin de conexiunea alternativ ă, comutatorul principal,
leg ătur ă continu ă, modulele de conducere și unitatea suport , dar nu și unitatea de calcul.
Unit ățiile ce se g ăsesc situate sub carcasa sunt urm ătoarele:
• Bateriile de litiu : utilizate pentru memoria de ba ck-up;
• Panoul unit ății : ce are ca rol colectarea și coordonarea tuturor semnalelor care
afecteaz ă siguran ța personal ă și opera țional ă;
• UnitateaI/O : care permite comunica ția cu echipamentele externe prin interpretarea
intr ărilor și ie șirilor digitale, analogice sau prin magistralele in terne. Unitatea I/O
poatefi amplasat ă și în exteriorul cabinei, comunica ția realizându-se în acest caz prin
magistrala CAN standard , care permite unit ății s ă fie amplasat ă în apropierea
procesului;
• Placa de măsurare serial ă (SMB) : care strânge datele și le transfer ă serial la placa
calculatorului robotului . Un aspect important este acela c ă informa ția transmis ă de
aceast ă plac ă nu se pierde în cazul unei probleme cu alimentarea la tensiune, deoarece
alimentarea pl ăcii este sus ținut ă de baterii suplimentare.
În figura urm ătoare vor fi prezentate loca țiile acestor unit ăți sub carcasa:
Figura 6. Loca ția unit ăților sub carcasa
1.3.3 Sistemul calculatorului
Acest sistem este realizat din trei calculatoare am plasate pe dou ă pl ăci de circuit și con țin
urm ătoarele elemente:
Placa principala a calculatorului : aceasta cuprin de calculatorul principal al robotului
și controleaz ă întregul sistem robot;
Placa calculatorului robot : aceasta con ține calculatorul I/O care se comport ă ca o
leg ătur ă între calculatorul principal, lumea exterioar ă robotului și axele robotului,
având c ă principal rol s ă realizeze controlul vitezei robotului.
Calculatoarele reprezint ă centrele de procesare ale robotului. Acestea de țin toate func țiile
necesare pentru a crea, stoca și executa programe robot. Deasemenea acestea con țin și func ții care au
rolul de a coordona și regla mi șcările axelor.
În urm ătoarea figur ă se poate observa cum acest sistem al calculatorulu i comunic ă cu celelalte
unit ăți func ționale:
Figura 7. Interfe țele sistemului calculator
1.3.4 Axele externe și servo sistemul
Axele externe[3] sunt controlate prin intermediul u nit ăților de conducere ce sunt montate, fie
în interiorul controller -ului, fie în exteriorul acestuia într-o unitate în chis ă separat ă. Num ărul maxim
al unit ăților de conducere ce pot fi montate în interiorul controller -ului este de una sau dou ă, acest
num ăr fiind influen țat de c ătre tipul robotului. Este posibil ă comunicarea unit ăților de conducere
specifice robotului ABB cu alte unit ăți de conducere externe, chiat dac ă acestea nu sunt specifice
robotului și provin de la al ți produc ători.
In figura urmatoare se poate observa diagrama axelo r externe:
Figura 8. Diagrama outline a axelor externe
Servo sistemul este un sistem complex ce este forma t din mai multe unit ăți diferite care
interac ționeaz ă unele cu altele și din componente de sistem fie ele de tip hardware sau software.
Func țiile servo sistemului cuprind:
• Reglarea digital ă a ridic ăriilor, vitez și tensiunea motorului axelor robotului;
• Opera țiunea alternativ ă sincron ă a motoarelor robotului.
În urm ătoarea figura este prezentat ă diagrama structurii sistemului ce realizeaz ă opera țiunea
alternativ ă sincron ă:
Figura 9. Diagrama structurii servo sistemulu
1.3.5 Canalele de comunica ție
În ceea ce prive ște canalele de comunica ție [3]ale robotului, aceasta este echipat cu dou ă
canale seriale și anume un canal RS232 și un canal Full-duplex RS422, care pot fi utilizate pentru a
comunica cu diferite echipamente periferice (termin ale, calculatoare etc…). Comunica ția este una de
tip punct la punct și poate avea o vitez ă de transmisie cuprins ă între 300 și 19200 bi ți/s . În cazul în
care se dore ște o vitez ă de comunica ție mai mare, robotul se poate echipa la cerere și cu interfa ță
Ethernet , astfel se poate atinge o rat ă de transmisie de 10 MB/s.
În figura urm ătoare este prezentat ă o re țea de comunica ție serial ă:
Figura 10. Re țea de comunica ție serial ă
2.DESCRIEREA CONSOLEI DE PROGRAMARE
2.1 Elementele principale ale consolei de programar e
Consola de programare[2] joac ă un rol esen țial în ceea ce prive ște interac țiunea operatorului
uman cu sistemul robot, deoarece prin intermediul a cesteia este posibil ă realizarea programelor
func ționale și a principalelor opera ții de baz ă. Consola comunic ă cu calculatorul robotului prin
intermediul unui cablu ce are o lungime de circa 10 metri, cablu care realizeaz ă și alimentarea
consolei cu +24 V. În cazul în care ecranul console i nu se aprinde este necesar ă verificarea
contrastului și dac ă problema persist ă, atunci se verific ă alimentarea.
Comunica ția erorilor și a informa țiilor cu privirea la starea robotului sau a altor e lemente
componente sunt prezentate pe ecranul consolei. Pos ibilitatea de a realiza toate opera țiile prin
intermediul consolei are ca principal avantaj faptu l că operatorul uman nu are nevoie de experien ță
pentru a putea opera cu robotul. În ceea ce prive ște instruirea opeatorului uman, aceasta se poate
realiza prin untilizarea unui software dedicat num it “QuickTeach”, care poate realiza toate opera țiile
pe care le poate realiza și consola.
Consola de programare și principalele elemente sunt prezentate în urm ătoarea figur ă:
Figura 11. Consola de programare
Rolul fiecarui element existent pe consola de progr amare este urm ătorul:
o Butonul pentru oprirea de urgen ță ( sau “ciuperca de avarie” ) – în urma ap ăsării
acestui buton robotul se va oprii instantaneu, indi ferent de starea sa mecanic ă, de
program sau de modul s ău de operare. Mai exact, acest buton trece toate m otoarele
robotului în starea MOTORS OFF , stare ce va r ămâne activ ă pân ă ce butonul va
reveni la pozi ția ini țial ă.
o Dispozitivul de validare – acest buton are ca principal avantaj realizarea op era țiilor
robotului într-un mod cât mai sigur. În cazul în ca re modul de operare ( selectat de pe
panoul operator) este pe unul dintre cele dou ă moduri manuale , prin apsarea acestui
buton pân ă la jum ătate motoarele robotului vor trece în starea MOTORS ON . Prin
ap ăsarea pân ă la cap ăt a acestui buton s ău eliberarea sa , motoarele robotului vor
trece în starea MOTORS OFF . Eliberarea și ap ăsare pân ă la jum ătate a butonului în
mai pu țin de o secund ă nu va realiza trecerea motoarelor în starea MOTORS ON din
considerente legate de siguran ța operatorului uman.
o Ecranul – are ca principal rol afi șarea tuturor informa țiilor primite de la robot ,
respectiv afi șarea datelor transmise c ătre robot. Permite afi șarea a 16 linii ce pot
con ține maxim 40 de caractere fiecare.
o Dispozitivul joystick – cu ajutorul acestui dispozitiv se realizeaz ă deplasarea
articula țiilor robotului. Din punct de vederea al construc ției acest element are o
construc ție special ă, care prezint ă 3 grade de libertate.
o Tastele consolei – cele mai multe dintre acestea sunt taste de tip “ bipozi țional”,
astfel func țiile predefinite de c ătre utilizator asociate acestora se realizat ă prin
ap ăsare. Fiecare tast ă este prezentat ă grafic pe consola de programare în func ție de
opera ția pe care o realizeaz ă.
Principalele grupe de taste ordonate din punct de v edere al func ției pe care o realizeaz ă sunt
urm ătoarele:
Taste pentru operarea pe ecran cu ferestre ;
Taste pentru naviga ție;
Taste pentru controlul mi șcării;
Taste pentru activarea unor func ții;
Taste de uz general;
Taste programabile;
Taste numerice.
Dispunerea acestor taste pe consola în func ție de grupa de apartenen ță este prezentat ă în
urm ătoarea figur ă:
Figura 12. Tastele prezente pe consola de programa re
Deoarece tastele sunt foarte importante în ceea c e prive ște interac țiunea operatorului cu
robotul și modul de operare al robotului, principalele func ții ale tastelor în func ție de grupa lor de
apartenen ță sunt urm ătoarele::
a. Tastele de fereastr ă [2]– grup de taste folosit pentru a lucra pe ecran cu ferestre, fiind format
din urm ătoarele taste :
1. Jogging – tast ă folosit ă pentru a deplasa articulatiile robotului;
2. Program – tast ă folosit ă pentru a dezvolta si testa programe;
3. Inputs/Outputs – tast ă folosit ă pentru a opera manual semnalele de intrare si
ie șire conectate la robot;
4. Misc. – tast ă folosit ă pentru a putea deschide și lucra cu alte ferestre pe
lâng ă cea prezent ă.
b. Tastele de naviga ție – grup de taste ce permit mi șcarea cursorului în interiorul unei ferestre
afi șate pe ecran, fiind format din urm ătoarele taste:
1. List – tast ă folosit ă pentru a muta cursorul din interiorul unei feres tre in
interiorul alte ferestre ( in mod normal separate p rintr-o linie dubl ă);
2. Previous/Next page – tast ă folosit ă pentru a vedea pagina anterioar ă
sau pagina urm ătoare;
3. Up&Down arrows – taste utilizate pentru a deplasa cursorul sus sau jos;
4. Left&Right arrows – taste utilizate pentru a deplasa cursorul în stânga
sau în dreapta.
c. Tastele de mi șcare [2]– grup de taste utilizat pentru a selecta modul în care robotul sau alte
echipamente periferice ar trebuie s ă se deplaseze în momentul utiliz ării joystick-ului în modul
de operare manual, fiind format din urm ătoarele taste:
1. Motion Unit – tast ă utilizat ă pentru deplasarea robotului sau a altor
componente mecanice;
2. Motion Type – tast ă utilizat ă pentru deplasarea robotului sau a altor
componente mecanice;
3. Motion Type – tast ă ce permite deplasarea robotului la nivel de articu la ție,
unde 1 este grupul axelor 1,2,3 și 2 este grupul axelor 4.5.6;
4. Incremental – tast ă ce pune incrementarea deplas ărilor pe on/off.
d. Taste de uz general – grup de taste ce îndeplinesc anumite func ții fa ță de celelalte taste,
fiind format din urm ătoarele taste:
1. Stop – tast ă ce opre ște execu ția unui program;
2. Contrast – tast ă utilizat ă pentru a ajusta contrastul ecranului;
3. Menu keys – taste ce permit afi șarea pe ecran a unor meniuri ce con țin diverse
comenzi;
4. Function keys – taste ce permit selectarea unor anumite comenzi in mod direct;
5. Delete – șterge datele selectate aflate pe ecran;
6. Enter – tast ă utilizat ă pentru a introduce date;
e. Taste programabile – grup de taste pe care utilizat orul le poate folosit pentru a crea anumite
func ții rapide, spre exemplu setarea sau resetarea unei ie șiri. Acest grup de taste este format
din tastele P1,P2,P3 aflate pe consol ă și tastele neinscrip ționate (P4), (P5) aflate în col țul din
dreapt ă sus al consolei.
f. Taste numerice – este un grup format din 12 taste ce con țin numerele de la 0-9 și dou ă
caractere “-“, respectiv “*”. Acest ansamblu perm ite introducerea caracterelor alfa-numerice
necesare realiz ării unui program func țional . Fiecare grup de caractere reprezint ă de fapt o
matrice cu 4 linii și 3 coloane, care con țin în fiecare loca ție câte un caracter. În figura
urm ătoare se poate observa modalitatea de utilizare a a cestor caracatere :
Figura 13. Utilizarea tastelor numerice
2.2 Pornirea robotului ABB IRB 1400
Dup ă în țelegerea notiuniilor generale în ceea ce prive ște utilizarea consolei de programarea și
a principalelor elemente alte robotului, se poate trece la pornirea sistemului în vederea execut ării sau
dezvolt ării unor programe. Înainte de pornirea sistemului d in motive de siguran ță este obligatoriu c ă
nici o persoan ă s ă nu fie prezent ă în interiorul spa țiului de operare al robotului.
Pentru a realiza pornirea sistemului robot se trec e mai întâi comutatorul general de alimentare
electric ă pe pozi ția 1. Acest comutator este amplasat pe fa ță anterioar ă a carcasei controller-ului, mai
exact el se g ăse ște pe panoul operator și are ca efect activarea hardware și software a controller -ului
robot. Odat ă cu alimentarea controller-ului se va executa o rut in ă de verificarea func țional ă a
robotului pentru a depista posibilele erori ale ace stuia.
In figura urmatoare este prezentat comutatorul prin cipal[2]:
Figura 14. Comutatorul principal
Dac ă nu vor fi depistate nici un fel de erori în proces ul de verificare , atunci pe ecranul
consolei de programare va ap ărea un mesaj ini țial standard . În ceea ce prive ște con ținutul acestui
mesaj acesta poate avea diferite varia ții, în func ție de versiunea constructiv ă a robotului.
Mesajul ini țial[2] afi șat pe consola de programare este prezentat în figur ă urm ătoare:
Figura 15. Mesajul ini țial standard al robotului
2.3 Deplasarea robotului utilizând joystick -ul
2.3.1 Scurt ă descriere
Mi șcarea articula țiilor robotului se poate realiza utilizând joystick -ul prezent pe consola de
programare. Acesta este un dispozitiv specializat c are are 3 grade de libertate, ceea ce înseamn ă c ă
poate comanda simultan 3 mi șcări diferite. Viteza de mi șcare a articula țiilor este propor țional ă cu
deflexia joystick -ului[2], o deflexie mare a acestuia fa ță de pozi ția sa de repaus va genera o vitez ă
mare a mi șcării comandate.
Acest dispozitiv poate fi folosit f ără a ține cont de ferestrele deschise pe ecranul consolei de
programare. Exist ă îns ă 3 situa ții în care nu se poate realiza mi șcarea robotului utilizând joystick -ul și
anume:
1. Robotul se afla in modul AUTOMAT;
2. Robotul se afla in starea MOTORS OFF ;
3. Cand este un program in curs de executie.
Schimbarea și vizualizarea func țiilor joystick-ului se poate realiza în func ție de dorin ța
operatorului uman fie în fereastra Jogging , fie direct prin tastele de mi șcare Motion Unit, Motion Type
sau Motion Group. În figura urm ătoare sunt prezentate func țiile joystick -ului prin intermediul tastelor
de mi șcare:
Figura 16. Tastele de mi șcare
2.3.2 Deplasarea liniara a robotului
Pentru realizarea acestui tip de deplasare trebuie urmate urm ătoarele etape:
1. Se verific ă dac ă modul de operare este trecut în regimul Manual mode at at reduced speed,
adic ă vitez ă robotului este limitat ă la <250 mm/s .
2. Cu ajutorul consolei se selecteaz ă robotul ca unitate de mi șcare ( Robot motion) și se
selecteaz ă modul de deplasare al acestuia ca fiind de tip lin iar ( Linear Motion).
3. Se selecteaz ă mi șcarea liniar ă ( Linear movement ) , caz în care robotul se va mi șca conform
urm ătoarei figuri:
Figura 17. Sistemul de coordonate robot
Punctul care se va deplasa liniar de-a lungul axelo r de coordonate ale sistemului prezentat în
figura anterioar ă, se nume ște “punct caracteristic al terminalului – 0” TCP-0 ( Tool Center
Point ) . Acest punct reprezint ă centul de simetrie al flan șei port-terminal , acest aspect fiind
prezentat în figura urm ătoare:
Figura 18. Punctul caracteristic al terminalului TC P-0
.
4. Se trece în modul MOTORS ON prin ap ăsarea pân ă la jum ătate a butonului de validare,
moment în care se pot mi șca articula țiile robotului. Dup ă aceast ă etap ă robotul se poate mi șca
liniar cu ajutorul joystick -ului . Se pot combina mai multe mi șcări ale joystick -ului, astfel se
poate mi șca robotul în mai multe direc ții simulatan. Punctul robot TCP-0 se va deplasa lin iar
în func ție de mi șcarea joystick-ului în sistemul de coordonate al ro botului .
Modul de alocare al axelor sistemului de coordonate robot pe joystick este eviden țiat în
urm ătoarea figur ă:
Figura 18. Alocarea axelor de miscare liniara
2.3.3 Pozi ționarea cu precizie
Pentru realizarea pozi țion ării cu precizie a robotului trebuie îndeplinite ur m ătoarele etape:
I. Se apas ă tasta Jogging de pe consol ă pentru a putea lucra cu fereastra Jogging [2]. Dup ă
ap ăsarea acestei taste va ap ărea o imagine care are urm ătoarea form ă:
Figura 19. Fereastra Jogging
Con ținutul unei ferestre Jogging care este afi șat pe ecran poate avea diferite varia ții care
depind de ceea ce se dorste operatorul uman s ă realizeze. Câmpul selectat pe ecran la un
anumit moment de timp se nume ște Field. În cele mai multe cazuri acest câmp indi c ă o zon ă
a datelor de intrare ( marcate de culoarea gri ), c are pot fi modificate selectând o func ție din
lista alocat ă tastelor func ționale.
II. Se mut ă cursorul utilizând tastele de naviga ție ale consolei ( mai exact se schimb ă câmpul
selectat) pe linia care con ține cuvântul “ Incremental”. Cu ajuorul câmpului Incremental se
poate selecta modalitatea de efectuare a opera ției ( Incremental Jogging ) ap ăsând pe una
dintre tastele func ționale desemnate acestui câmp. În figura urm ătoare este prezentat ă opera ția
Incremental Jogging și op țiunile tastelor func ționale aferente acestei opera ții:
Figura 20. Modul “ Incremental Jogging”
Dup ă parcurgerea acstor pa și robotul se va deplasa cu un pas incremental de fiecare dat ă
când se realizeaz ă o deflexie a joystick-ul, iar m ărimea pasului depinde de selec ția tastei
func ționale.
3. Operatii de baza cu programe
Programele sunt elemente esen țiale pentru un robot, deoarece aceste programe care nu sunt
nici mai mult nici mai pu țin decât ni ște seturi de instruc țiuni pe care robotul le în țelege și le poate
interpreta, vor determina modul în care robotul î și va executa mi șcările și cum se va adapta în mediul
industrial. În ceea ce prive ște structura tipic ă pentru un program robot este compus ă în general, din
trei elemente principale și anume:
o O rutin ă principal ă ( main routine) care este întotdeauna prezent ă indiferent de program și este
unic ă pentru fiecare program;
o Un num ăr de subrutine( con țin de obicei instruc țiuni de num ărare,întârziere,ini țializ ări etc…);
o Datele de program.
În figura urm ătoare este prezentat ă structura general ă a unui program realizat în limbajul
RAPID[2], care este specific robotulu ABB IRB 1400:
Figura 21. Structura general ă a unui program RAPID
3.1 Selectarea unui program
Acest program de antrenare este oferit de c ătre produc ător, fiind stocat pe o dischet ă și are ca
principal rol familiarizarea operatorului uman cu e xecu ția și dezvolatarea de programe. Înainte de a
executa acest program de antrenare este nevoie ca u rm ătorii pa și s ă fie executa ți:
1. Se trece modul de operare al robotului pe modul man ual și se apas ă pe consol ă tasta
Program . În cazul de fa ță pe consola de programare pot ap ărea dou ă informa ții
diferite în func ție de existen ța ununi program sau nu în memoria robotului. Mai ex act,
în cazul în care în memoria robotului a fost salvat anterior un program acesta va
ap ărea pe consola de programare, în caz contrar va ap ărea urm ătoarea imagine:
Figura 22. Mesajul din fereastra Program
2. Dup ă introducerea dischetei in unitatea de floppy-disk de la controller, se apas ă tasta
File , moment in care va ap ărea urm ătoarea imagine :
Figura 23. Meniul ferestrei File
Principalele comenzi pe care le con ține fereastra File pot fi observate în figura
anterioar ă, selec ția acestora realizându-se cu ajutorul tastelor de n aviga ție. Din cadrul
acestei ferestre se selecteaz ă comanda Open pentru a deschide programul de antrenare
ce se g ăse ște pe dischet ă.
3. Se apas ă tasta func țional ă Unit pentru a putea vizualiza și utiliza con ținutul dischetei,
care apare sub numele de flp1: în zona unitatiilor de stocare. Se verific ă dac ă acest
nume va ap ărea pe ecranul consolei în dreptul unitatiilor de s tocare și dac ă con ținutul
dischetei este afi șat. Aceste aspecte sunt prezentate în urm ătoarea figur ă:
Figura 24. Con ținutul dischetei
4. Se deplaseaz ă cursorul și se selecteaz ă op țiunea DEMO , dup ă care se ap ăsa Enter și
se selecteaz ă op țiunea EXERCISE [2]. Dup ă ce se selecteaz ă aceste optiunui pe
ecranul consolei va ap ărea programul principal al programului de antrenare . Acest
program este format din patru instruc țiuni de mi șcare, iar în ceea ce prive ște structura
subrutinelor, ele con țin diferite tipuri de instruc țiuni(de mi șcare, a șteptare etc…) și
argumente (vitez ă de mi șcare, preciziea pozi ției robotului etc…). Acestea sunt
elementele principale pentru orice program robot, d e aceea utilizarea programului de
antrenare are un impact destul de puternic în ceea ce prive ște instruirea operatorului
uman, deoarece îi ofer ă posibiliatatea de a- și forma o imagine de ansamblu, în ceea
ce prive ște programarea robotului. În figura urm ătoarea este prezentat ă structura
programului de antrenare împreun ă cu cele patru instruc țiuni de mi șcare :
Figura 25. Instruc țiunile programului de antrenare
3.2 Execu ția și oprirea unui program
Dup ă crearea oric ărui program robot acesta trebuie s ă fie executat pas cu pas la vitez ă redus ă
pentru a vedea dac ă mai are nevoie de alte modific ări, dup ă aceea se poate executa in modul
continuu. În ceea ce prive ște execu ția programului de antrenare, poziitile la care este deplasat robotul
sunt apropiate de pozi țiile de calibrare ale robotului. Aceste puncte punc te de calibrare ale robotului
sunt prezentate în figura urm ătoare:
Figura 26. Pozi țiile de calibrare ale robotului
În continuare se apas ă tasta Program , iar din cadrul acestei ferestre se apas ă tasta func ționala
Test, moment în care va p ărea pe ecranul consolei urm ătoarea figur ă:
Figura 27. Fereastra Program Test
Pointerul de program (PP) indic ă prima instruc țiune a programului, fiind deasemenea și
instruc țiunea de start pentru program, atunci când se apas ă una dintre op țiunile : Start, FWD sau
BWD . Prin intermediul op țiunii Start se realizeaz ă execu ția programului în mod continuu. Dac ă se
dore ște execu ția programului atunci se utilizeaz ă fie op țiunea FWD pentru a executa programul
instruc țiune cu instruc țiune în sens direct, fie op țiunea BWD pentru a executa programul în sens
invers. Prin selectarea op țiunii Instr . se redeschide meniul ferestrei Program . Pentru a schimba
viteza de mi șcarea a robotului se apas ă tasta List pentru a ajunge în prima fereastr ă , dup ă care se
ap ăsa tasta func ționala ” -%”, aspect ce se poate observ ă în urm ătoarea figur ă:
Figura 28. Setarea vitezei de mi șcar
Pentru ca robotul s ă se poate mi șca în modul manual este nevoie ca motoarele articul a țiilor s ă
fie în modul MOTORS ON , acest lucru realizându-se prin ac ționarea dispozitivului de validare. În
ceea ce prive ște execu ția programului, acesta se poate executa pas cu pas , ciclic sau continuu, acest
aspect depinzând de fazele de dezvolatare ale progr amului.
Oprirea unui program din execu ție se realizeaz ă prin ap ăsarea pe consola de programare a
tastei Stop. Pozi ția și simbolul aceste taste se poate observa în urm ătoarea figur ă:
Figura 29. Pozi ția și simbolul tastei Stop
3.3 Erori
Fie c ă este vorba de o eroare de programare sau o eroarea de func ționalitate, depistarea și
rezolvarea acestora ocup ă o pozi ție central ă, în ceea ce prive ște buna func ționarea a robotului și
realizarea aplica ției industriale. Erorile[2] în cazul robotului ABB IRB 1400 sunt afi șate pe ecranul
consolei de programare și sunt formate din mai multe p ărți care ne ofer ă informa ți despre acestea. În
ceea ce prive ște structura unei erori în cazul robotului ABB IRB 1400, aceasta este format ă din
urm ătoarele componente:
o Codul erorii (Error code number) – care este un num ăr unic pentru fiecare eroare;
o Categoria erorii( Category of error ) – asigneaz ă eroarea la un grup de erori predefinite
( fiecare cateogorie are o serie de numere unice);
o Motivul erorii( Reason ) – aceast ă componenta descrie motivul pentru care s-a produs
eroarea ;
o Jurnalul de mesaje( Message Log ) – descrie cea mai recent ă eroarea, indicând codul
erorii, momentul la care s-a produs eroarea și o mic ă descriere a erorii.
Modul de afi șare și pozi ționarea acestor componente poate fi observat ă în urm ătoarea figur ă:
Figura 30. Afi șarea unei erori
3.4 Modificarea unui program
De cele mai multe ori atunci când se utilizeaz ă un program robot acesta poate suferi mai
multe modific ări pentru a putea fi adaptat la aplica ția industrial ă pe care robotul trebuie s ă o realizeze.
Poate fi vorba de modific ări minore , cum ar fi modificarea unor parametrii s au majore, cum ar fi
implemenarea unor instruc țiuni noi, modificarea unor poztii sau ad ăugarea de noi pozi ții
Atunci când se dore ște s ă se modifice pozi ția unei anumite instruc țiuni, se execut ă aceast ă
instruc țiune, dup ă care cu ajutorul joystick-ului se deplaseaz ă robotul la noua pozi ție și se apas ă tasta
func țional ă ModPos[2] . Dup ă ce se apas ă aceast ă tast ă pe ecranul consolei va ap ărea un mesaj de
aten ționare, care semnalizeaz ă schimbarea pozi ției pentru instruc țiunea curent ă.
În cazul în care se dore ște modificarea unui paramentru ( sau argument) se d eplaseza cursorul
utilizând tastele de naviga ție în dreptul parametrului ce trebuie modficat. Dup ă selectarea acestui
parametru se apas ă tasta Enter, moment în care pe consola de programare vor ap ărea anumi ți
parametrii implici ți care pot fi utiliza ți pentru a înlocui parametrul nostru. Exist ă și posibilitatea de a
creea un nou parametru atunci când cei implici ți nu corespund cerin țelor impuse.
Dac ă se dore ște s ă se adauge o instrctiune nou ă pentru programul-robot se apas ă tasta
Program , dup ă care cu ajutorul tastelor de naviga ție se selecteaz ă fereastra Program Instr. Dup ă ce se
selecteaz ă Program Instr se ap ăsat tasta func țional ă Copy pentru a copia instruc țiunea ce se afl ă
aproape de pozi ția unde dorim s ă introducem noua instruc țiune , dup ă care se apas ă tasta func țional ă
Paste . Pe ecranul consolei va ap ărea un mesaj unde operatorul uman va fi întrebat un de dore ște s ă
plaseze noua instruc țiune , dup ă ce se va selecta una dintre op țiunile prezentate se va finaliza adugarea
noii instruc țiuni prin ap ăsarea tastei OK . Pentru noua instruc țiune se va schimba pozi ția la care se
doreste s ă fie deplasat robotul cu ajutorul joystick -ului , dup ă care se memoreaz ă noua pozi ție prin
ap ăsarea tastei func ționale ModPos .
În marea majoritatea a programelor robot este neces ar ă implementarea unor întreruperi,
timpul de a șteptarea al robotului depinzând de natura mi șcării pe care acesta o realizeaz ă. Aceste
întreruperi pot fi introduse înainte și dup ă orice instruc țiune dorim , utilizând tastele de naviga ție dup ă
care se apas ă tasta func țional ă Instr . Dup ă parcurgerea pa șilor anteriori se apas ă tasta IPL1:Various ,
moment în care vor fi afi șate comenziile disponibile pentru aceast ă tasta func țional ă. Din lista de
comenzi afi șate se selecteaz ă comand ă dorit ă utilizând tastele numerice, confirmarea selec ției
realizându-se prin ap ăsarea tastei Enter . Dup ă ap ăsarea tastei Enter, pe ecranul consolei va ap ărea o
fereastra în care putem introduce cu ajutorul taste lor numerice cât timp dorim c ă robotul s ă a ștepte
realizarea întreruperii. Finalizarea introducerii a cestei întreruperi se realizeaz ă prin ap ăsarea tastei OK
, moment în care putem trece la testarea noului pro gram.
3.5 Stocarea unui program
În cazul în care se dore ște stocarea unui program-robot pe un dispozitiv de memorare portabil,
care în cazul robotului ABB IRB 1400 poate fi o dis chet ă se apas ă tasta Program[2] , dup ă care se
selecteaz ă File. Dup ă ce s-a selectat File se mut ă cursorul cu ajutorul tastelor de naviga ție la
op țiunea Șave Program și se apas ă tasta Enter . Pe ecranul consolei se va afi șa fereastra de dialog
pentru op țiunea Șave Program , unde se poate selecta unitatea de stocare și se poate introduce un nume
programului-robot. În cazul în care dorim s ă salv ăm programul în memoria controller -ului, atunci se
apas ă tasta Unit , ce ne permite s ă select ăm unitatea de stocare a programelor.
Dup ă se s-a stabilit unitatea de stocare pe care progra mul-robot se va salva și numele acestui
program validarea opera ției de salvare se finalizeza prin ap ăsarea tastei Enter , atunci când va ap ărea
mesajul de alert ă în care ni se specific ă modificarea con ținutului unit ății de stocare, dup ă care se
apas ă tasta OK.
Dischetele care sunt suportate de c ătre robotul ABB IRB 1400 sunt dischetele formatate de
urm ătorul tip: 3.5’’ HD (High Density) DOS [2] . Printarea acestor programe-robot cu ajutorul unui
calculator este posibil ă, dac ă calculatorul poate citi informa țiile dup ă acest tip de dischete formatate.
.
.
4. PROGRAMAREA ȘI TESTAREA
4.1 No țiuni introductive
Dezvoltarea programelor robot pentru robotul ABB IR B 1400 se realizeaz ă cu ajutorul
limbajului de programare RAPID[2] . Un program real izat cu ajutorul acestui limbaj este compus din
date și instruc țiuni, prin intermediul c ărora se controleaz ă robotul și echipamentele periferice.Un
program robot este realizat în genereal din trei p ărți componente:
• Rutina principal ă;
• Mai multe subrutine;
• Date de program.
Memoria de prog Noțiuni introductive am a robotului cuprinde pe lâng ă cele trei componente
ale programului robot și câteva module de sistem. Rutina principal ă în cazul unu program-robot este
rutina de la care începe execu ția programului. Subrutinele sunt folosite pentru a împ ărții programul în
mai multe p ărți mai mici, împ ărțire ce are ca principal scop s ă fac ă programul robot cât mai u șor de
în țeles și de depanat. Apelarea subrutinelor poate fi f ăcut ă fie de c ătre rutina principal ă, fie de c ătre
alte rutine. Dup ă ce o subrutin ă a fost executat ă, execu ția programului se întoarce la rutina de unde a
fost apelat ă aceast ă subrutin ă , continuându-se execu ția instruc țiunilor urm ătoare.
Datele sunt utilizate pentru a definii pozi ții, valori numerice( registre, num ărătoare etc…),
sisteme de coordonate sau orice fel de date avem ne voie în aplica ția noastr ă. Aceste date pot fi
modificate atât manual , cât și prin intermediul unui program robot( de exemplu i mplementarea unei
temporiz ări sau modificarea unui num ărător).
Instruc țiunea define ște o ac țiune specific ă pe care robotul o va executa atunci când acestea
este executat ă de c ătre programul robot ( de exemplu putem aveam instru c țiuni de mi șcare, s ă stetezi
anumite ie șiri, s ă schimb ăm date etc…). În timpul execu ției unui program robot, instruc țiunile sunt
executate câte una la un anumit moment de timp, în ordinea în care acestea au fost programate.
Modulele de sistem sunt ni ște programe care sunt în permanen ță prezente în memoria de
program. Rutinele și datele legate mai mult de instalare decât de prog ramare, cum ar fi uneltele și
rutinele de depanare, sunt stocate în modulele de s istem.
Programarea robotului implic ă alegerea unor instruc țiuni dintr-o list ă alternativ ă , astfel
operatorul uman poate realiza programarea foarte u șor utilizând consola de programare. Programele ,
părțile unor programre sau orice alt ă modificare poate fi testat ă imediat cu ajutorul consolei, f ără a fi
nevoie s ă realiz ăm scrierea în memoria robotului. Programul se stoch eaz ă ca un program normal de
tip text file, ceea ce are ca avantaj posibilitatea de a edita programe utilizând un calculator.
Limbajul de programare RAPID[2] este un limbaj de nivel înalt orientat pe obiect și
cuprinde în strcutura s ă urm ătoarele particularit ăți:
a. Prezint ă o structur ă de tip ierarhic și modular;
b. Con ține diverse func ții și proceduri;
c. Permite utlizarea de date și rutine globale sau locale;
d. Permite utilizarea structurilor de date și a structurilor de tip matrice;
e. Permite definirea de c ătre utilizator pentru variabile,rutine etc…;
f. Permite definirea unor instruc țiuni de c ătre utilizator;
g. Permite tratarea erorilor și întreruperilor;
h. Se pot utiliza expresii logice și artimetice;
i. Are un control intensiv al fluxului programelor.
4.2 Fereastra Program
Atât dezvoltarea programelor, cât și testarea acestora se realizeaz ă utilizând fereastra
Program [2] . Defapt aceast ă fereastr ă este compus ă din mai multe ferestre care difer ă între ele în
func ție de opera țiunea pe care o realizeaz ă. Urm ătoarele ferestre pot fi utilizate prin selectarea
meniului View :
• Program Inst – fereastr ă utilizat ă pemtru a programa sau a schimba instruc țiunilor unui
program;
• Program Routines- fereastr ă utilizat ă pentru a creea noi rutine sau pentru a alege din r utinele
existente;
• Program Data – fereastr ă utilizat ă pentru creea sau schimba date;
• Program Data Types- fereastr ă ce permite selectarea unor date în func ție de tipul acestora;
• Program Test- fereastr ă utilizat ă pentru a realiza testarea programelor;
• Program Modules- fereastr ă utilizat ă pentru a creea noi module sau pentru a alege din
modulele existente.
Pentru a crea un program se deschide fereastra File , dup ă care se selecteaz ă cu ajutorul
tastelor de naviga ție New . În continuare se specific ă numele noului program în c ăsu ță de dialog care
va ap ărea pe ecranul consolei . Pentru finalizarea opera țiunii de creare a unui program se ap ăsa tasta
Ok , moment în care se va crea un program gol ce va con ține doar o rutina principal ă. În cazul în care
în memoria de program exist ă deja un program stocat și se dore ște utilizarea acestuia, se selecteaz ă
din fereastra File op țiunea Open . Pentru a verifica dac ă într-un program exist ă diferite erori f ără a fi
nevoie s ă test ăm fizic programul, se utilizeaz ă din fereastra File op țiunea Check Program .
4.3 Definirea uneltelor și a obiectelor de lucru
Aceasta este o etap ă esen țial ă și trebuie efectuat ă înainte de a realiza orice opera țiune de
programare. În cadrul acestei etape se definesc une ltele, obiectele de lucru și alte sisteme de
coordonate ce vor fi folosite pentru a realiz ă programarea robotului. Etapa aceasta poart ă numele de
calibrare, de ea depinzând evolu ția și buna func ționarea a robotului.
Calibrarea implic ă setarea pozi țiilor de calibrare pentru axele robotului și aceasta se
realizeaz ă implicit la livrarea robotului de c ătre produc ător. Pozi ția axelor robotului sunt determinate
de c ătre un traductor incremental care num ăra impulsurile encoder -ului. Pozi ția curent ă a axei
robotului fa ță de pozi ția de baz ă a axei respective, se realizeaz ă cu ajutorul transpunerii acestor
impulsuri în sistemul de coordonate al robotului.
Pentru a se verifica calibrarea robotului se apas ă tasta Misc. și se selecteaz ă din meniul
acesteie ferestre op țiunea Service Window . Dup ă finalizarea acestor pasi se selecteaz ă tasta
func țional ă View:Calibration . Calibrarea robotului se poate afl ă în una dintre urm ătoarele st ări:
• Synchronized-în aceast ă stare robotul este perfect sincronizat;
• Not updated Rev.Counter – în aceast ă stare toate axele sunt calibrate cu precizie, cu e xcep ția
unei axe care are num ărătorul de revolu ție aflat în starea NOT updated;
• Not calibrated – în aceast ă stare una ( sau mai multe) axe nu sunt calibrate c u precizie;
• Unsynchronized – în aceast ă stare cel pu țin una dintre axe nu are pozi ția cunoscut ă.
4.4 Crearea de noi rutine
Prin intermediul rutinelor se spore ște lizibilitatea programului robot, deoarece prin
intermediul acestora programul se poate împ ărții în mai multe p ărți func ționale. Un program robot
con ține o rutin ă principal ă, care este unic ă și mai multe subrutine.O rutin ă cuprinde patru p ărți
componente: declara ții,date,instruc țiuni și interpretor de erori. Rutinele se pot împar ți în trei tipuri
principale și anume:
1. Proceduri- pot fi descrise ca fiind un num ăr de instruc țiuni care realizeaz ă o func ție specific ă (
spre exemplu sudura sau schimbarea unei unelte);
2. Func ții – acestea returneaz ă o valoare ( de exemplu utilizate pentru a citi o i ntrare sau o
pozi ție );
3. Rutine de tip trap (“capcana”) – utilizate pentru a manipula întrerup erile.
Pentru a crea o rutin ă nou ă se deschide fereastra Program Routines prin select area op țiunii
View:Routines din fereastra Program. Dup ă parcurgerea acestor pasi se apas ă tasta func țional ă New ,
moment în care pe consola de programare va ap ărea o c ăsu ță de dialog în care este afi șat numele
rutinei. În ceea ce prive ște numele unei rutine, acesta este setat intern ca fiind routineN , unde N se
incrementeaz ă de fiecare data când o rutin ă este creat ă.
Dac ă se dore ște o rutin ă normal ă, f ără parametrii se apas ă tasta OK , în caz contrar se apas ă
tasta Decl pentru a seta caracteristicile dorite. Printre pr incipalele opera țiuni realizate cu ajutorul
rutinelor se pot enumera:
• Alegerea unei rutine – se selecteaz ă op țiunea View: Routines, dup ă care se selecteaz ă rutin ă
dorit ă și se apas ă tasta Enter ;
• Apelarea rutinei principale – se selecteaz ă op țiunea View: Main Routine;
• Dupliarea unei rutine – se selecteaz ă op țiunea View:Rotuines , se selecteaz ă rutina care trebuie
duplicat ă , dup ă care se apas ă tasta func țional ă Dupl și se finalizeaz ă opera țiunea prin
ap ăsarea tastei OK.
4.5 Crearea de noi instruc țiuni
În cazul în care se dore ște ad ăugarea unor instruc țiuni noi în programul robot. atunci când pe
ercranul consolei se afl ă fereastra Program Test sau Program Data [2] , se apas ă tasta functional ă
Instr. În caz contrar se selecteaz ă op țiunea View:Instr pentru a putea adaug ă o instruc țiune nou ă în
programul robot. O instruc țiune este compus ă din numele instruc țiunii, care specific ă tipul de ac țiune
și dintr-un num ăr de argumente, care specific ă caracteristicile instruc țiunii.
Argumentele unei instruc țiunii pot fi obligatorii, ceea ce înseamn ă că prezen ța lor este
necesar ă sau op ționale ceea ce inseamn ă c ă acestea pot fi omise. Dac ă un argument nu are o valoare
specificat ă este marcat în felul urm ător <…>. Programele care con țin instruc țiuni de acest gen pot fi
executate, dar atunci când se ajunge la aceast ă instruc țiune programul se opre ște. Argumentele unei
instruc țiuni pot fi:
• Numere;
• Șiruri de caractere ;
• Date;
• Apel ări e func ții;
• Expresii.
Pentru a ob ține mai multe informa ții despre o instruc țiune se deplaseaz ă cursorul cu ajutorul
tastelor de naviga ție la instruc țiunea respectiv ă și se apas ă tasta Enter . În acel moment va ap ărea o
căsut ă de dialog care va con ține toate informa țiile legate de instructiune și anumite func ții cu ajutorul
cărora putem modifica instruc țiunea. Dac ă se dore ște schimbarea unui parametru se apas ă tasta
functional ă Change, se face modificarea și se valideaz ă prin ap ăsarea tastei OK. În cazul în care este
necesar ă ștergerea sau ad ăugarea unui argument op țional se utilizeaz ă tasta functional ă OptArg .
4.4 Seturi speciale de instruc țiuni și opera ții cu acestea
Software-ul de programare utilizat de c ătre robotul ABB IRB 1400 dispune de o list ă special ă
de instruc țiuni care port fi utilizate și implementare foarte u șor în programele robot (IPL- instruction
pick list). Aceast ă list ă este una standard și este fixat ă de c ătre produc ător, existând și posibilitatea
operatorului uman de a seta anumite liste de instru c țiuni. Pentru robotul exist ă dou ă liste de
instruc țiuni denumite IPL1 și IPL2 [2] . Principalele instruc țiuni disponibile în cele dou ă liste de
instruc țiuni sunt urm ătoarele:
• Din lista IPL1:
o Common- aici se g ăsesc cele mai utilizate ( comune) instruc țiuni ;
o Prog,Flow- cu aceste instruc țiuni se controleaz ă fluxul programelor ;
o Various- ini țializ ări,temporiz ări etc… ( spre exemplu “:=” sau wait etc…);
o Motion Settings- aceste instruc țiuni produc efecte asupra mi șcărilor ;
o Motion & Process- acestea sunt intructiuni de mi șcare;
o I/O- instruc țiuni care produc efect asupra intr ărilor și ie șirilor ;
o Communicate- instruc țiuni de comunica ție ;
o Interrupts- acestea sunt instruc țiuni care manipuleaz ă întreruperile ;
o Error Recovery- acestea sunt intructiuni care manipuleaz ă erorile;
o System & Time- intructiuni utilizate pentru a seta data și timpul;
o Mathematics- instruc țiuni aritmetice;
• Din lista IPL2:
o Most Common 1,2,3- instruc țiuni definite de c ătre utilizator;
o Motion Set Adv.- instruc țiuni avansate de setarea a mi șcărilor ;
o Motion Adv .- instruc țiuni avansate de mi șcare;
o Ext.Computer- i nstruc țiuni de comunicare exterioar ă;
o Service- instruc țiuni de depanare.
Pentru a adaug ă o instruc țiune nou ă, care face parte din una dintre cele dou ă liste se apas ă
tasta func țional ă IPL1 sau IPL2 din meniul Program Instr . Alegerea unei instruc țiuni ce se g ăse ște
într-una dintre cele dou ă liste se poate realiza în dou ă moduri:
• Utilizând tastele numerice se apas ă num ărul care corespunde instruc țiunii și se finalizeaz ă
selectarea prin ap ăsarea tastei Enter ;
• Ap ăsând tasta 0 pentru a naviga între cele dou ă liste.
Dac ă instruc țiunea selectat ă nu are argumente sau dac ă argumentele sunt setate în mod
automat , atunci aceast ă instruc țiune se poate utiliza imediat f ără a mai avea nevoie de alte ajust ări.În
cazul în care aceast ă instruc țiune con ține argumente ce nu pot fi setate automat, pe ecran ul consolei va
ap ărea o c ăsu ță de dialog în care se pot seta argumentele instruc țiunii. Aceste argumente pot fi
definite în patru moduri diferite:
1. Introducând valori numerice în mod direct utilizând tastele numerice;
2. Selectând o func ție prin ap ăsarea tastei func ționale Func , de unde se selecteaz ă forma
alternativ ă dorit ă dintr-o list ă ce va ap ărea pe ecranul consolei sub forma unei c ăsu țe
de dialog;
3. Introducând o expresie prin ap ăsarea tastei More ;
4. Prin selectarea date din partea inferioar ă a c ăsu ței de dialog.
În unele cazuri se folosesc expresii pe post de arg umente în interiorul unor instruc țiuni,
expresii ce pot avea un num ăr arbitrar de componente. Exist ă trei tipuri de expresii:
a. Expresii logice – au valori de tipul adev ărat sau fals ( utilizate la instruc țiuni de tip IF
, de exemplu : IF reg21 = 5 OR reg2 >2 …);
b. Expresii aritmetice – au valori numerice și sunt folosite în calcule ( exemplu:
reg1=reg2+ 3*reg3);
c. Șiruri de caractere (spre exemplu :TPWrite “Producing”).
Pentru a putea programa expresii se apas ă tasta func țional ă More din c ăsu ța de dialog a
argumentelor. Expresiile se pot schimb ă sau introduce în mod direct din c ăsu ță de dialog a expresiilor,
fie prin utilizarea tastelor de naviga ție, fie prin utilizarea taste Delete ( atunci când se dore ște ștergerea
unor elemente) sau prin ad ăugarea unor numere în fa ță cursorului , utilizând tastele numerice. În
interiorul c ăsu ței de dialog utilizate pentru lucrul cu expresii se g ăsesc urm ătoarele func ții:
Text – prin selectarea acestei func ții va ap ărea pe consola de programare o c ăsu ță de dialog
care va permite introducerea unor texte;
Func – prin selectarea acestei func ții se va generea o list ă cu toate func țiile pentru un tip de
date specificat;
Data – prin selectarea acestei func ții se va generea o list ă cu toate datele definite de c ătre
utilizator pentru un tip de date specificat;
Content – prin intermediul acestei func ții datele unui nou tip de date pot fi folosite în m od
similar cu instruc țiunea IF , datele de sistem sau datele specificate de utiliz ator.
4.5 Programarea in limbajul RAPID
A. Programarea unei pozi ții
De cele mai multe ori în mediul industrial acolo un de se folosesc robo ții pentru a executa
diverse aplica ții, se realizeaz ă mi șcării ale robotului dintr-o pozi ție în alt ă. În cadrul robotului ABB
IRB 1400 structura, general ă a uneI instruc țiuni de pozi ționare are în structur ă sa urm ătoarele
elemente:
• Tipul de mi șcare – felul în care robotul execut ă mi șcarea , fiind de trei tipuri: Linear ( liniar),
Joint (la nivel de articula ție), Circular ( sub form ă de cerc);
• Destina ția – pozi ția la care robotul se deplaseaz ă;
• Vitez ă – velocitatea robotului;
• Dimensiunea zonei – cât de apropiat trebuie s ă fie robotul de destina ție, înainte de a se
deplasa la urm ătoarea pozi ție ( ține de precizia robotului).
• Unealt ă de lucru folosit ă (TCP).
În figur ă urm ătoare sunt prezentate elementele unei instruc țiuni de pozi ționare:
Figura 31. Elementele unei instruc țiuni de mi șcare
Viteza și dimensiunea zonei se refer ă la tipuri de date diferite și anume viteza se refer ă la
viteza de deplasare dorit ă m ăsurat ă în mm/s, iar dimensiunea zonei se refer ă la precizia robotului,
fiind m ăsurat ă în mm. Deoarece aplica țiile industriale difer ă unele de altele, atunci când se
programeaz ă pozi ționarea robotului în anumite puncte de lucru este n ecesar s ă se selecteze și unitatea
de lucru folosit ă ( TCP-ul spre exemplu). Pe lâng ă argumentele instruc țiunii de pozi ționare prezentat ă
în figura de mai sus, se mai pot adaug ă și alte argumente op ționale care s ă aib ă efect asupra
modalit ății de deplasare a robotului. Astfel de argumente se pot alege din listele speciale de
instruc țiuni IPL1:Motion & Procces .[2] În cazul în care se dore ște schimbarea vitezei pentru o
instruc țiune de pozi ționare se apas ă tast ă Enter pe instruc țiunea respectiv ă și se alege din c ăsu ța de
dialog care va ap ărea pe consol ă de programare viteza de lucru dorit ă, dup ă care se apas ă OK pentru
finalizare.
B. Programarea prin compens ări
Atunci când se cunoa ște cu exactitate dimensiunea obiectului de lucru, e ste de ajuns ca
robotul s ă fie mutat la o singur ă pozi ție. Restul pozi țiilor pot fi programate foarte u șor prin
compensarea pozi țiilor urm ătoare plecând de la o pozi ție dat ă ( în acest caz ar fi prima pozi ție).
În urm ătoarea figur ă este prezentat ă aceast ă modalitate de programare bazat ă pe compensarea
poztitiilor în func ție de o pozi ție dat ă.
Figura 31. Exemplu unui program prin compens ări
Dup ă cum se poate observa în figura de mai sus punctul de start este punctul p1 , deplasarea
la restul punctelor realizându-se prin determinarea compensa ției în func ție de sistemul de coordonate (
în func ție de axele x,y,z). Spre exemplu în instruc țiunea “ MoveL Offs ( p1,100,50,0),v100,… “ se
pot distinge urm ătoarele caracteristici: p1 este punctul de start, 100 reprezint ă deplasarea pe axa X,
50 reprezint ă deplasarea pe axa Y, iar 0 reprezint ă deplasarea pe axa Z.
Pentru a programa prin compens ări se selecteaz ă instruc țiunea, dup ă care se apas ă Enter
moment în care pe consola de programare va ap ărea c ăsu ța de dialog Instruction Argument [2]. În
cadrul acestei c ăsu țe de dialog se ap ăsa tast ă func țional ă Func , după care se selecteaz ă op țiunea Offs
și se apas ă Enter. Dup ă efectuarea acestor pa și pe ecranul consolei va ap ărea c ăsu ța de dialog
Function Argument de unde se seteaz ă punctul de start și se introduc compensarile pentru fiecare ax ă
de coordonate.
Pe lâng ă utilizarea în partea de realizarea a programelorro bot, acest principiu de compensare
este utilizat și la etapa de calibrare a axelor robotului. Teoreti c, se bazeaz ă pe acela și principiu și
anume se alege o pozi ție de start , restul pozi țiilor fiind calibrate în func ție de pozi ția punctului de
start.
C. Schimbarea valorii unei ie șiri
O instruc țiune de ie șire con ține în structur ă sa informa ții despre ie șirea care trebuie schimbat ă și
informa ții despre valoare dorit ă pentru respectiva ie șire. Pentru a putea lucra cu instruc țiunile de
intrare și ie șire se selecteaz ă IPL1:I/O , dup ă care se alege instruc țiunea dorit ă din c ăsu ța de dialog
ce se afi șeaz ă pe consola de programare utilizând tastele numeric e. Din c ăsu ța de dialog Instruction
Argument se selecteaz ă ie șirea care se modific ă. În figura urm ătoare este prezentat ă structura unei
instruc țiuni de ie șire:
Figura 32. Informa țiile unei instruc țiuni de ie șire
D. Temporiz ări
În cazul robotului ABB IRB 1400[2] exist ă dou ă tipuri de intructiuni de temporizare:
o Instruc țiuni de temporizare care a șteapt ă setarea unei intr ări la o valoare dorit ă (Wait until
input). O astfel de instruc țiune este format ă din dou ă elemente și anume:
Numele intr ării;
Valoarea la care trebuie setat ă intrarea pentru a declan șa temporizarea;
Aceast tip de temporizare poate fi setat s ă a ștepte fie setarea unei singure intr ări, fie
setarea mai multor intr ări. Pentru a putea lucra cu aceast ă instruc țiune de temporizare
se alege op țiunea IPL1:Various din lista special ă de instruc țiuni, dup ă care din
căsu ța de dialog care apare pe ecran se selecteaz ă op țiunea WaitDI . Dup ă ce se
parcurg ace ști pa și trebuie specificat ă condi ția care trebuie satisf ăcut ă pentru ca
temporizarea s ă înceap ă.
Din c ăsu ța de dialog Instruction Argument se selecteaz ă intrarea care va fi folosit ă
pentru implementarea acestei func ții de temporizare, dup ă selectare se apas ă Next și
se seteaz ă valoarea pe care trebuie s ă o primeasc ă intrarea pentru a putea declan șă
temporizarea utilizând tastele numerice. Finalizare a acestor set ări se realizeaz ă prin
ap ăsarea tastei OK . O astfel de instruc țiune de temporizare este prezentat ă în figura
urm ătoare:
Figura 33. Instruc țiunea WaitUntil
o Instruc țiuni de temporizare standard care a șteapt ă un anumit moment de timp, care este
setat de c ătre operatorul uman. ( exemplu WaitTime 0.5 , unde 0.5 este durat ă de
temporizae dorit ă). Pentru a implementa o astfel de instruc țiune se alege op țiunea
IPL1:Various , dup ă care se seteaz ă valoarea temporiz ării și se apas ă tasta OK.
E. Fluxul programelor
a. Apelarea unei subrutine
O instruc țiune de apelare con ține în structura sa urm ătoarele informa ții:
o Informa ții despre subrutina care este apelat ă;
o Informa ții legate de argumentele subrutinei.
Structura unei astfel de instruc țiuni de apelarea are forma urm ătoare : routine1 reg3, 23 . În
acesta form ă se poate distinge numele rutinei routine1 și argumentele rutinei reg3,23 . Atunci când se
execut ă aceast ă instruc țiune se execut ă și rutina apelat ă .
Pentru a putea utiliza un astfel de tip de instr uc țiune se selecteaz ă din lista special ă de
instruc țiuni op țiunea urm ătoare: ILP1: Prog.Flow . Din c ăsu ța de dialog care va ap ărea se selecteaz ă
instruc țiunea ProcCall cu ajutorul tastelor numerice.
Instruc țiunea este gata de execu ție în momentul în care rutina care trebuie epelata nu are
parametrii.În cazul în care rutina are parametrii , pe ecran va ap ărea o căsu ță de dialog în care se
specific ă parametrii rutinei.
b.Controlul programului f ără rutine
Pentru un mai bun control al programului, atunci când nu se utilizeaz ă rutine, se folosesc
instructiuniile de tip IF care permit executarea unor instruc țiuni diferite în func ție de realizarea sau nu
a unei condi ții. În figur ă urm ătoare este reprezentat ă o instruc țiune de tip IF :
Figura 34. Instruc țiunea IF
Pentru a implementa o astfel de instruc țiune se alege din lista special ă de instruc țiuni op țiunea
IPL1:Prog.Flow , dup ă care din c ăsu ța de dialog aferent ă acestei op țiuni se selecteaz ă instruc țiune IF
sau Compact IF cu ajutorul tastelor numerice. Dup ă terminarea acestor pa și se va seta conditia de
realizare pentru instruc țiunea de tip IF și se apas ă tasta OK pentru a valida set ările.
F.Asignarea unei valori pentru un registru
O instruc țiune de asignare are în componen ța sa urm ătoarele informa ții:
o Informa ții despre registrul care sufer ă modific ări;
o Informa ții despre valoarea dorit ă pentru registrul respectiv ( valoare ce poate
fi dat ă și de o expresie).
O astfel de instruc țiune prezint ă urm ătoarea form ă : reg1 := 1 , unde reg1 este data ce va fi
schimbat ă și 1 reprezint ă valoarea. Pentru a realiza diferite opera ții de calcul simple cu regi ștri se pot
utiliza urm ătoarele instruc țiuni
a. Clear reg1- sterge valoarea unui registru;
b. Incr reg1- incrementeaza registrul cu 1;
c. Decr reg1- decrementeaza registrul cu 1
d. Add reg1,5- adauga valoarea 5 la registrul 1
Pentru a putea implementa o astfel de instruc țiune se selecteaz ă din lista special ă de
instruc țiuni una dintre urm ătoarele op țiuni: IPL1: Various sau Mathematics ., dup ă care se alege
instruc țiunea := cu ajutorul tastelor numerice.
6. DEZVOLTAREA APLICA ȚIILOR
Dezvoltarea aplica țiilor am realizat-o utilizând o mare partea din ele mentele descrise în
capitolele III,IV și V, care se refer ă în mare parte la cum trebuie utilizat ă consola de programare
pentru a dezvolta programe robot și care sunt principalele elemente utilizate de pe c onsola de
programare.
Robotul fiind unul industrial poate fi u șor adaptat s ă realizeze o multitudine de mi șcării simultan, atât
timp când mi șcările respective nu intr ă în conflict cu limit ările mecanice ale acestuia. Robotul atunci
când este primit de la produc ător nu este echipat cu un element de execu ție, permi țând astfel
utilizatorului s ă î și proiecteze propriul element de execu ție în func ție de aplica ția pe care robotul va
trebui s ă o realizeze. În cazul robotul pe care l-am utiliza t acesta a fost echipat cu un gripper capabil
să realizeze manipularea unor piese paralelipipedice, precum și a unor știfturi. Forma gripper-ului
utilizat este prezentat ă în figura urm ătoare:
Figura 35. Forma gripper-ului
În ceea ce prive ște construc ția gripper-ului zona marcat ă cu cifra 1 în Figura 35 reprezint ă
zona utilizat ă pentru a prinde piesele paralelipipedice, iar zona marcat ă cu cifr ă 2 este cea care este
utilizat ă pentru prinderea pieselor cilindrice ( știfturi).
Pentru a putea fi utilizat acest gripper utilizeaz ă o electrovalv ă 5/2, care trebuie legat ă la
sistemul I\O al robotului. Pentru a putea realiza c onectarea altor elemente exterioare la sistemul IO al
robotului trebuie studiat ă cartea tehnic ă a robotului pentru a vedea cum trebuie conectate l a porturile
de intrare/ie șire.
Portul de intr ări/ie șiri al robotului ABB IRB 1400 se nume ște DSQ 327 și este un port
digital. Acesta de ține un num ăr de de dou ă sloturi a câte opt intr ări, precum și dou ă sloturi a câte 8
ie șiri.
6.1 Simularea aplica ției de asamblare
În cadrul acestei aplica ții am utilizat robotul pentru a dezvolta un program robot care s ă
realizeze o simulare a unei aplica ții de asamblare. Pentru a realiza aceast ă simulare a fost nevoie s ă
realizez și s ă proiectez o machet ă e lucru pentru a deservi la o aplica ție de asamblare. Rolul machetei
este acela de a ajuta robotul s ă realizeze aplica ția de asamblare cu u șurin ță și cu efort sc ăzut. În figura
urm ătoare se poate vedea cum arat ă aceast ă machet ă de lucru:
Figura 36. Macheta de lucru
În ceea ce prive ște elementele care se reg ăsesc pe machet ă de lucru în func ție de zona din care
fac parte, a șa cum se poate vedea în Figura 36:
Zona A- reprezint ă zona unde vor fi puse pisele în varianta construct iv ă
final ă;
Zona B- reprezint ă zona de unde robotul va lua piesele paralelipipedi ce;
Zon ă C- reprezint ă zona de unde robotul va lua piesele cilindrice;
Zona D- este zona unde robotul va realiza montajul pieselor
Toate elementele ce sunt dispuse pe masa de lucru a u fost realizate manual, în func ție de
construc ția gripper-ului și în func ție de dimensiunile pieselor manipulate. În ceea pri ve ște piesele
manipulate, robotul va realiz ă manipularea a patru piese paralelipipedice și a șase piese cilindrice.
Zona unde piesele finale vor fi depozitate are o c apacitate de dou ă piese, zona pieselor
paralelipipedice are o capacitate de 4 piese, iar z ona pieselor cilindrice are o capacitate de 6 piese .
În ceea ce prive ște zona în care se realizeaz ă montajul aceasta poate s ă con țin ă doar un
num ăr de dou ă piese cilindrice la un moment dat. Datorit ă construc ției pe care o are zon ă de montaj
este posibil ă realizarea mai multor tipuri de piese, în func ție de cerin țele primite. Forma pieselor
paralelipipedice poate fi observat ă în figura urm ătoare:
Figura 37. Piesele paralelipipedice
În Figura 37, elementul A reprezint ă fa ța uneia dintre cele 2 piese paralelipipedice, iar
elementul B reprezint ă aceea și pies ă , dar v ăzut ă din exterior. În ceea ce prive ște elementul C, acesta
reprezint ă piesa suport pe care se face montarea.
În ceea ce prive ște dezvoltarea programului robot , am început prin realizarea etapei de
calibrarea și sincronizarea a robotului pentru a putea folosi a xele acestuia și pentru a-l putea mi șca cu
precizie. Pentru a realiza aceast ă etap ă am ap ăsat tasta Service , dup ă care prin intermediul tastelor
func ționale am selectat op țiunea Calibration din meniul View . În cadrul ferestrei de calibrarea am
selectat op țiunea de calibrare a robotului dup ă care robotul a putut fi mi șcat f ără a avea probleme
legate de precizie. Dup ă aceast ă etapa am realizat crearea unui program robot nou, urmând pa șii
prezenta ți în capitolele IV și V.
Programul robot pe care l-am dezvoltat în prima ve rsiune a con ținut un num ăr de 389 de
instruc țiuni de mi șcare pentru a putea realiza cele 2 piese. Pe parcus ul program ării am existat și
diverse erori de programare, unele dintre ele ducân d la pierderea programului, dar am reu șit s ă le
rezolv dup ă mai multe încerc ări. Programul robot în versiunea final ă a fost optimizat și compactat,
astfel din cele 389 de instruc țiuni care existau în prima variant ă, am reu șit s ă dezvolt un program de
numai 188 de linii. Principalele instruc țiuni folosite pentru realizarea programului au fost
instruc țiunile de temporizare WaitTime , instruc țiunile de mi șcare liniar ă MoveL și instruc țiunile
MoveJ pentru a mi șca axele 4,5 și 6. Pentru a duce robotul în punctele dorite am utilizat joystick -ul
care se afl ă pe consola de programare, dup ă care am salvat punctul respectiv, precum și modalitatea
de deplasare la acel punct din meniul Program.
6.2 Aplica ția introductiv ă
Aceast ă aplica ție are ca principal scop, punerea în eviden ță a preciziei pe care robotul o
prezint ă în ceea ce prive ște execu ția mi șcărilor. În cadrul acestei aplica ții robotul va deplasa mai
multe piese paralelipipedice pentru a realiza cuvân tul “UCV” cu acestea.
Programul robot con ține în principal instruc țiuni de mi șcare liniar ă MoveL și instruc țiuni de
mi șcare la nivel de articula ție MoveJ. Pentru a realiz ă o astfel de aplica ție este nevoie de o precizie
mai ridicat ă, astfel atunci când se programeaz ă punctele în care robotul trebuie s ă ajung ă trebuie
selectat modul Incremental. Acest mod permite mi șcarea robotului cu o precizie ridicat ă și cu o vitez ă
redus ă, astfel este posibil ă plasarea cu o precizie foarte ridicat ă la nivelul piesei.
Înainte de a începe dezvoltarea programului robot a fost nevoie s ă stabilesc loca țiile
pieselelor, precum și modul în care robotul va realiza modelarea acesto r piese.
Pentru realizarea acestei aplica ții am folosit o plac ă de dezvoltarea Arduino Uno care con ține
microcontroller-ul Atmega328p și care utilizeaz ă driverul CH340 pentru a realiza programarea
acesteia. Aceast ă plac ă am utilizat-o pentru a controla un ecran LCD care a avut c ă principal scop
afi șarea cuvântului realizat de c ătre robot și pentru a cî ți informa țiile primite de la un senzor optic, pe
care l-am utilizat pentru a ști când robotul a terminat de realizat cuvântul.
Programarea pl ăcii de dezvoltarea am realizat-o în limbajul și mediul de programare
Arduino, care este un limbaj simplu de folosit și accesibil. În cazul pl ăcii de dezvoltare pe care am
folosit-o, comunica ția cu mediul de programare am realizat-o prin inter mediul driverului CH340.
În ceea ce prive ște structura oric ărui program realiazat în acest mediu de dezvoltare, acesta
va con ține o func ție void setup() unde se seteaz ă pinii și principalele variabile utilizate și o func ție
void loop() în care se va scrie codul programului ce va fi exec utat la infinit.
Înainte de putea programa sau de a înc ărca un program pe placa de dezvoltarea, trebuie
selectat în cadrul mediului de dezvoltare plac ă de dezvoltare și portul de programare. În caz contrar,
programul realizat nu va fi scris în memoria microc ontroller-ului și vor ap ărea erori la testarea
acestuia.
În ceea ce prive ște complexitatea programului realizat pentru aceast ă aplica ție aceasta nu este
foarte complex ă, deoarece în cazul acestei aplica ții se citesc informa țiile primite de la un sigur senzor
optic și se transmit comenzi doar ecranului LCD.
În figura urm ătoarea se pot observa aceste func ții, precum și cum arat ă mediul de
programare:
Figura 38. Mediul de dezvoltare Arduino
În ceea ce prive ște ecranul LCD singura utilitate a acestuia este s ă afi șeze cuvântul pe care îl
realizeza robotul din piesele paralelipipedice. Mod elul LCD pe care l-am utilizat este, LCD 1602 [8] și
are o interfa ța I2C pentru o conectare mai u șoar ă la placa de dezvoltarea, fiind nevoie de numai pat ru
pini pentru a realiza conexiunea între aceste compo nente. În ceea ce prive ște pinii pentru ecranul LCD
1602 avem: Vcc- pinul utilizat pentru alimentare;
• Gnd- pinul pentru mas ă;
• SDA( Serial Data Line)- pinul utilizat pentru transmiterea datelor;
• SCL{ Serial Clock Line)- pinul utilizat pentru sincronizare;
Constructiv acest ecran are in componenta sa urmato arele parti:
• Un ecran LCD standard HD44780 16×2 ( 16 caractere pe 2 linii)- iluminarea unui
astfel de ecran poate fi verde sau albastra;
• Un circuit integrat LCM1602 [80]- care se monteaza in partea de jos a ecranului ,
fiind cel care realizeaza comunicatia I2C, reducand toate iesirile la doar cei patru
pini descrisi anterior;
Inainte de a putea realiza programarea acestui ecra n utilizand mediul de dezvoltare a fost
nevoie sa importez mai multe librarii pentru a pute a folosii toate functiile acestui ecran.Mai exact , am
importat librariile Wire.h si LiquidCrystalI2C.h .
Modul in care am realizat conectarea ecranului LCD la placa de dezvoltarea se poate observa
în urm ătoarea figur ă::
Figura 39. Conectarea ecranului LCD
https://www.optimusdigital.ro/img/cms/Instructiuni% 20Sorin/schema%20lcd.png
Caracteristicile tehnice ale acestui ecr an LCD[6] sunt urmatoarele:
• Tensiunea de alimentare: 4.5V-5.5V;
• Intensitatea curentului: 1.5mA;
• Tensiunea de func ționare a LCD-ului: 5V;
• Iluminarea ecranului: 120mA;
• Tensiunea de iluminare: 4.1V – 4.3V;
• Temperatura de operare: 0-50 grade Celsius;
Ecranul LCD utilizat este prezentat in figura urm ătoare:
Figura 40. Ecran LCD 1602 I2C
https://cdn.shopify.com/s/files/1/1978/9859/product s/01_97_large.jpg?v=1499266855
Func țiile utilizate in cadrul programului realizat pentr u a controla ecranul cu ajutorul pl ăcii de
dezvoltare sunt urm ătoarele:
• Lcd.init()- func ție utilizat ă pentru intializa ecranul pentru a putea fi folosi t;
• Lcd.backlight()- func ție care realizeaz ă iluminarea ecranului;
• Lcd.clear()- șterge elementele afi șate pe ecran;
• Lcd.setCursor()- prin intermediul acestei func ții se seteaz ă pozi ția cursorului pe
ecran ;
• Lcd.prin ț()- cu ajutorul acestei func ții se pot afi șa mesaje pe ecran;
În ceea ce prive ște senzorul optic, principala sa func ție este aceea de a detecta atunci când
robotul termin ă de reprezentat cuvântul. Senzorul poart ă numele de TCRT5000[4] și este construit
dintr-un LED infraro șu și un fototranzistor, care are rolul de a detecta se mnalul reflectat.
Din punct de vedere al specifica țiilor tehnice ale acestui senzor optic avem urm ătoarele:
Intensitatea LED-ului- 60mA;
Căderea de tensiune a LED-ului- 1.25V;
Tensiunea C-E- 70V;
Curent C- 100mA;
Lungimea de und ă- 950nm;
Distanta de operare:0.2mm – 15mm, optim 2.5mm;
Constructiv LED-ul și fototranzistorul sunt încapsulate în aceea și capsul ă pentru a oferii o
func ționare optim ă, fiind util pentru a detecta distante sau pentru a detecta suprafe țele albe sau negre.
Senzorul utilizat este prezentat în figura urm ătoare:
Figura 41. Senzorul TCRT5000
https://magazin.unda.tech/2326-large_default/senzor -fotoelectric-reflectiv-tcrt5000.jpg
Placa de dezvoltare utilizat ă de mine pentru a realiza acest sistem de afi șare, se nume ște
Arduino Uno[7]. Aceasta se poate g ăsii în dou ă variante constructive și anume:
• Fie cu microcontroller-ul încapsulat;
• Fie cu microcontroller-ul montat la suprafa ța(SMD);
Caracteristicile tehnice ale acestei pl ăci de dezvoltare sunt urm ătoarele:
• Tensiune de func ționare: 5V;
• Tensiunea de alimentare: 7-12V;
• Un num ăr de 14 pini de intrare/ie șire, dintre care:
• 6 pini de PWM;
• 8 pini ADC;
• Canalele de comunica ție: TWI, SPI și UART;
• Frecven ța de func ționare: 16MHz;
• Memoria de program: 32 KB;
Placa de dezvoltare este prezentat ă în urm ătoarea figur ă :
Figura 42. Placa de dezvoltare
https://ardushop.ro/873-large_default/placa-de-dezv oltare-uno-r3.jpg
În ceea prive ște conexiunile celorlalte componente pe plac ă de dezvoltare, am conectat
senzorul optic la pinul digital 7 și pini ȘCL, SDL ai ecranului la pini analogici A5,A4. Alime ntarea
pl ăcii de dezvoltare am f ăcut-o cu ajutorul unei baterii de 9V, iar în ceea c e prive ște principalele
conexiuni dintre plac ă și celelalte elemente am utilizat un breadboard, pen tru o conectare cât mai
simpl ă. În ceea ce prive ște diagrama pinilor pentru placa de dezvoltarea, ac easta poate fi observat ă în
figura urm ătoare:
Figura 43. Diagrama pinilor
https://ardduino.ru/image/cache/catalog/arduino/ard uino-uno-r3-ch340-6-650×650.jpg
VII. CONCLUZII
În concluzie dezvoltarea unui program robot pentru realizarea simul ării unei aplica ții de
asamblarea este un proces destul de laborios, mai ales în primele faze de dezvoltare. Dup ă ce se
realizeaz ă o prima variant ă a programului robot, aceasta poate fi optimizate î n propor ții destul de
mari. Avantajul pe care îl aduce simularea unei apl ica ții de asamblare este acela c ă programul robot
care va rezulta în urma acesteia va putea fi adapta t cu u șurin ță la aplica ția de asamblare propriu-zis ă.
În ceea ce prive ște dezvoltarea aplica ției demonstrative, programul robot nu va necesit ă o
optimizare, deoarece principalul scop al acestei ap lica ții este acela de a arat ă cum robotul î și execut ă
miscariile în func ție de o cerin ța dat ă. Pentru astfel de aplica ții se pot utiliza și alte componente
exterioare, precum cele descrise în capitolul anter ior.
Dezvoltarea programelor robot în cazul unui robot industrial este destul de complex ă,
deoarece atunci când se realizeaz ă programarea robotului trebuie s ă se țin ă cont de mai multe
elemente cum ar fi: spa țiul de operare al robotului sau limit ările mecanice ale acestuia.
Contribu ția adus ă de mine acestei lucr ări a fost acela de a dezvolta un program robot cât mai
optimizat, în ceea ce prive ște simularea unei aplica ții de asamblare. Dezvoltarea și crearea unei
machete de lucru, utilizat ă în dezvoltarea aplica ției de asamblare.
Dezvoltarea unei aplica ții demonstrative, care s ă pun ă în eviden ță precizia robotului și
interac țiunea acestuia cu alte elemente exterioare. Pe lâng ă dezvoltarea programelor robot, am
implementat și un program func țional destinat s ă controleze senzorul optic și ecranul LCD, prin
intermediul unei pl ăci de dezvoltare
VIII. BIBLIOGRAFIE
[1] https://ro.wikipedia.org/wiki/Robot_industrial
[2] http://rab.ict.pwr.wroc.pl/irb1400/guide_31.pdf
[3] http://rab.ict.pwr.wroc.pl/irb1400/prod14.pdf
[4] https://www.arduino.cc/en/Guide/Introduction
[5] https://www.optimusdigital.ro/ro/senzori-senzori-op tici/42-senzor-fotoelectric-reflectiv-
tcrt5000.html?search_query=tcrt5000&results=3
[6] https://www.optimusdigital.ro/ro/optoelectronic e-lcd-uri/62-lcd-1602-cu-interfata-i2c-si-
backlight-galben-verde.html?search_query=lcd+1602&r esults=17
[7] https://www.optimusdigital.ro/ro/compatibile-cu-ard uino-uno/1678-placa-de-dezvoltare-
compatibila-cu-arduino-uno-atmega328p-i-ch340.html? search_query=uno&results=135
[8] https://www.meccanismocomplesso.org/en/lcd1602- utilizzare-un-display-a-cristalli-
liquidi-lcd-con-arduino-tramite-i2c/
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: Download File 1 [606605] (ID: 606605)
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.
