Sunteți pe pagina 1din 14

M ODUL V

Programarea roboţilor

Scopul activitaţii de programare a robotului este acela de a transfera o succesiune de


mişcări complexe către controller-ul robotului, folosind instrucţiuni simple şi diverse
metode de programare, astfel încât să poată fi automatizat un proces de fabricaţie.

Metodele de programare ale robotului se pot compara cu metodele de programare


pentru alte echipamente cu control numeric, dar cerinţele tehnice sunt mai mari din cauza
posibilităţilor mai complexe de mişcare ale roboţilor. De aceea nu este rezonabilă
aplicarea aceleiaşi metode de programare de la maşinile CNC.

În plus, producătorii de roboţi oferă diferite interfeţe de programare, care nu respectă


un standard. Rezultatul este că nu există încă un singur limbaj de programare pentru
toate tipurile de roboţi. Fiecare producător mai important poate avea implementat un
limbaj de programare specific pentru roboţii pe care îi produce.

5.1. Metode de programare

Un prim criteriu de clasificare a metodelor de programare a roboţilor se referă la


utilizarea sau nu a robotului în timpul creării programului. Dacă se utilizează robotul în
timpul programării atunci se vorbeşte de programare online. Dacă nu se utilizează atunci
se programează offline. Alte detalii despre metodele de programare se pot vedea în figura
1.

Fig. 1. Metode de programare a roboţilor

 
Pentru programarea unei aplicaţii se pot folosi şi combinaţii dintre mai multe metode
de programare. Este un lucru obişnuit să se folosească programarea teach-in pentru
corecţia poziţiilor planificate într-un program creat prin metoda offline.

5.1.1. Programarea online

Metodele de programare online suportă în general numai comenzi pentru mişcări. De


obicei nu suportă comenzi care să ţină cont de senzori externi.

Metodele de programare online cuprind: programarea manuală şi programarea teach-


in. În prezent, programarea manuală se foloseşte numai pentru dispozitive de
alimentare /evacuare (feeding devices).

5.1.1.1. Programarea manuală

Programarea manuală înseamnă stabilirea de puncte de mişcare prin limitatori statici


la nivelul axelor. De aceea, în această metodă se folosesc coordonatele robot. În robotică,
sistemul de coordonate robot (sau de coordonate articulaţii) este un sistem de măsurare
diferit de cel Cartezian. Sistemul de coordonate robot foloseşte valorile poziţiilor
articulaţiilor pentru a specifica un punct din spaţiul de lucru. De exemplu, în cazul
roboţilor articulaţi cu 6 axe, pentru determinarea unică a unei poziţii se dau toate cela 6
valori dorite pentru poziţia articulaţiilor.

Avantaje:

 Timpi mai mici necesari pentru programare.


 Nu este necesar un computer pentru programare.
 Deoarece se utilizează mişcări PTP, chiar şi un simplu controller poate obţine
viteze mari de poziţionare.

Dezavantaje:

 Poziţionarea robotului se limitează la câteva puncte.


 Nu există funcţionalitate adiţională.

Programarea manuală este utilizată pentru aplicaţii foarte simple, ca de pildă


alimentarea şi evacuarea cu piese a maşinilor CNC sau a altor puncte de lucru.

5.1.1.2. Programarea Teach-In

Programarea teach-in poate fi subdivizată în trei metode: teach-in direct, programare


master-slave şi teach-in indirect.  
Obs. Dacă nu se dau alte informaţii suplimentare, atunci când se vorbeşte de
programare teach-in, de obicei, se face referire la metoda teach-in indirect.

Caracteristici comune pentru toate metodele teach-in:

 Robotul este mişcat în timpul programării.


 Punctele de poziţionare sunt definite de senzorii interni (traductoarele de
deplasare ataşate axelor).

a) Teach-in direct

Caracteristici:

 Programatorul conduce cu mâna end-effector-ul robotului în poziţiile pe care


doreşte să le obţină (robotul are inhibat sau dezactivat sistemul de frânare al
axelor).
 Poziţiile robotului sunt înregistrate fie direct (la o comandă explicită a
programatorului) fie automat (înregistrează exact toate mişcările pe care
operatorul le aplică end-effector-ului). Al doilea caz, cel al înregistrării
automate, este numit şi programare play-back şi necesită spaţiu mare de
memorare a programului.

Necesităţi:

 Roboţi cu greutate mică


 Raport de transmisie mic pentru angrenajele mecanice de mişcare a axelor (în
special pentru transmisii cu roţi dinţate)

Programarea cu teach-in direct este utilă pentru roboţii folosiţi în aplicaţii de tratare a
suprafeţelor (vopsire, polizare, şlefuire etc.).

b) Programarea Master-Slave

Programarea Master-slave este comparabilă cu programarea teach-in direct. În acest


caz, operatorul nu mişcă robotul în mod direct, ci foloseşte un model miniatură (sau
simplificat) al robotului. Robotul principal (slave) va urmării mişcările realizate cu
robotul model (master). Această metodă necesită un echipament complex pentru
programare.

c) Teach-in indirect

Programarea teach-in indirect (sau simplu: programarea teach-in) este cea mai
utilizată metodă de programare a roboţilor. 

Caracteristici:
 Robotul este mişcat prin acţionarea unor taste funcţionale de pe panoul de
operare (Teach Panel) al robotului. De aceea, motoarele robotului sunt active în
timpul programării.
 Poziţia dorită a robotului este memorată prin apăsarea unei taste funcţionale de
pe panoul de operare al robotului.
 Panoul de operare permite introducerea de informaţii suplimentare pentru
fiecare poziţie (ex. citire intrări digitale, setare/resetare ieşiri digitale).
 Utilizatorul poate alege şi schimba sistemul de coordinate în care doreşte să
mişte robotul, de-a lungul procesului de programare (ex. coordonate universale,
coordonate TCP (Tool Center Point)., coordonate robot, coordonate piesă etc.).

d) Proprietăţi generale pentru metodele de programare Teach-in

Avantaje:

 Verificare imediată a modului de mişcare (programare demonstrativă)


 Necesităţi reduse de memorie pentru program
 Pentru programe simple se obţin cei mai mici timpi de programare
 Uşor de implementat

Dezavantaje:

 Pentru programe complexe este necesar un timp mare de programare


 Producţia este oprită în timpul programării robotului
 Celula de fabricaţie trebuie să fie construită înainte de începerea programării
 Deseori programul robotului este incomplet sau are documentaţia incompletă
 Nu este uşor să se folosească informaţii de la senzori în programul robotului
 Sunt puţine funcţii de programare - de tip algoritmi de calcul - suportate pentru
prelucrări de date Programele realizate nu sunt uşor de structurat (în
subprograme, proceduri, funcţii etc.)
 Este greu să se programeze traiectorii curbilinii complexe (ex. parabole)

5.1.2. Programarea offline

Programarea offline a unui robot se face, de exemplu, prin generarea de text în


programul robotului, respectând o sintaxă dată de un limbaj de programare specific
roboţilor. Programarea offline a unui robot are următoarele avantaje în comparaţie cu
metoda online:

 Nu este necesară prezenţa unui robot în timpul programării.


 Se pot dezvolta programe complexe prin utilizarea unor structuri de programare
(if.. then.., for .., while.. do..move, etc.).
 Sunt uşor de tratat semnale de la senzori şi de utilizat comenzi pentru ieşiri
digitale.
Principalele dezavantaje sunt:

 Deseori poziţiile nu se pot defini exact, din calcule matematice (este necesară şi
utilizarea metodei teach-in).
 Este dificil de realizat un test complet al programului în modul offline.

5.1.2.1. Programarea în mod text

Programarea în mod text face apel la utilizarea unor limbaje de programare de nivel
înalt, specifice roboţilor. Realizarea oricărui program necesită folosirea unui sistem de
dezvoltare al programelor (un mediu de programare). Acest sistem are următoarele
funcţii:

 Implementarea (scrierea) programelor


 Verificarea sintactică şi semantică a programelor, conform regulilor limbajului
utilizat, şi compilarea programelor
 Testarea programelor (simulare)
 Stocarea şi organizarea programelor (în directoare, cu posibilitatea de copiere,
ştergere, modificare etc.)
 Interfeţe către alte sisteme de dezvoltare programe
 Comunicaţie cu utilizatorul
 Încărcare (recuperare) a programelor în (din) controller-ul robotului (download,
upload sau backup)

5.1.2.2. Programarea în mod grafic

Pentru programarea în mod grafic se folosesc sisteme CAD în scopul de a modela


geometric obiectele aplicaţiei. Aceste informaţii geometrice se folosesc de programe
specializate pentru a genera mişcări ale robotului pe anumite traiectorii. Utilizatorul
introduce diverşi parametrii necesari în definirea caracteristicilor fiecărei traiectorii.
Sistemul calculează o traiectorie ca o secvenţă de puncte intermediare prin care robotul
trebuie să treacă.

De exemplu, pentru procesarea unei suprafeţe, utilizatorul va introduce distanţa dintre


sculă şi suprafaţa piesei, care trebuie să rămână constantă. De asemenea, va introduce
punctul de start şi direcţia de mişcare. Aceste date sunt suficiente pentru calculul exact al
unei traiectorii. Utilizatorul nu mai are nevoie să recurgă la metode teach-in pentru
fiecare punct.

Prin preluarea efortului de calcul al punctelor traiectoriei, acest mod de programare


uşurează mult sarcina utilizatorului şi reduce considerabil timpul de programare, în
special pentru aplicaţii cu mişcări complexe. Funcţia de simulare a sistemului poate
reprezenta grafic orice mişcare, în vederea testării.
Acest mod de programare este folosit din ce în ce mai mult pentru aplicaţii complexe
de tratare a suprafeţelor: vopsire, polizare, şlefuire, periere, debavurare, sudare etc.

5.1.2.3. Alte metode de programare

Există şi alte metode offline de programare. Câteva dintre ele sunt folosite şi în
industrie, dar majoritatea se utilizează în cercetare:

 Programarea orientată pe spaţiu (Workshop oriented programming)


 Programarea orientată pe sarcini (Task oriented programming -implicit
programming)
 Programare prin mişcare în realitate vituală (Programming by moving in virtual
reality)
 Programare vizuală cu diagrame şi simboluri (Visual programming with
diagrams and symbols)
 Metode de programare hibride (mixuri de mai multe metode diferite)
 Programarea prin comenzi vocale (Programming by spoken commands)
 Programare prin învăţare autonomă (roboţi inteligenţi)

5.2. Limbaje de programare pentru roboţi

Limbajele de programare de nivel înalt folosite pe computere pentru dezvoltarea de


programe PC au multe lucruri în comun cu limbajele de programare pentru roboţi
(structuri de control, manipulări de date etc.). Oricum, trebuie avute în vedere
următoarele aspecte adiţionale atunci când se utilizează un limbaj de programare pentru
roboţi:

 Robotul se mişcă într-un spaţiu tridimensional complex (există pericol de


coliziune).
 Interacţiunea robotului cu echipamentele periferice reprezintă o parte importantă
din numărul de comenzi ale limbajului de programare.
 Starea echipamentelor periferice ale robotului se poate modifica în mod aleator
(neprevăzut) în timpul funcţionării.
 Programul trebuie să proceseze informaţii de la senzori.
 Obiectele manipulate de robot au diverse proprietăţi fizice (ex. masă, volum,
temperatură).

5.2.1. Clasificare

Limbajele de programare pentru roboţi se pot clasifica după nivelul lor de


abstractizare. Metodele de programare offline sunt divizate în patru nivele ierarhice,
conform cu figura 2.
Fig. 2. Ierarhia limbajelor de programare după nivelul de abstractizare.

Limbajele de la nivelele task layer şi object layer sunt denumite limbaje implicite. Ele
au cel mai mare nivel de abstractizare. Limbajele explicite sunt cele care operează la
nivelele robot layer şi joint layer. Nivelul comenzilor pentru articulaţii are cel mai mic
nivel de abstractizare.

Limbaje de programare explicite

Următoarele detalii subliniază câteva aspecte principale ale limbajelor de programare


explicite.

 Acceptă descrierea obiectelor în spaţiul de lucru


Starea de pornire (poziţie şi orientare)
 Acceptă descrierea părţilor principale (gripper şi puncte de apucare)

Este uzual să se descrie poziţia şi orientarea obiectului în sistemul de coordonate al


robotului (cu originea la baza robotului) şi relativ sistemul de coordonate al
obiectului, ca o funcţie de transformare, poziţia şi orientarea părţilor principale
(gripper şi puncte de apucare). Precizarea aceleiaşi poziţii în două sisteme de
coordonate se face prin transformarea unui set de coordonate (din primul sistem) într-
un alt set de coordonate (din al doilea sistem) cu o funcţie generală (de transformare),
care ţine seama numai de datele celor două sisteme de coordonate.

 Acceptă intrări de date numerice pentru definirea unor poziţii şi orientări.


Aceste date pot proveni din:
Metode teach-in
Măsurare
Modele CAD
 Acceptă comenzi pentru mişcări brute (ample)

Cu evitarea coliziunilor în spaţiul de lucru prin introducerea de către utilizator a


unor puncte “de trecere”
Cu evitarea singularităţilor şi cu impunerea configuraţiilor 1 de poziţie de către
programator.

Punct de singularitate = este un punct în care robotul “pierde” un grad de libertate.


De asemenea, dacă robotul trebuie să se deplaseze liniar şi cu viteză constantă
printr-un punct de singularitate, atunci viteza într-una din articulaţiile robotului
ar trebui să tindă la infinit, ceea ce este imposibil. De aceea, trebuie evitate
mişcările liniare prin puncte de singularitate.

Robotul poate ajunge într-o anumită poziţie a TCP (Tool Center Point) în mai
multe configuraţii adică cu diferite valori ale poziţiilor articulaţiilor.
Pentru evitarea ambiguităţii se definesc diverşi parametrii de conguraţie
doriţi.
 Acceptă comenzi pentru mişcări fine

Mişcările fine produc deplasări mici şi orientări fine ale uneltei, în general pentru
operaţii de asamblare sau prelucrare suprafeţe. În general, pentru comanda acestor
mişcări se foloseşte sistemul de coordonate al uneltei TCP (Tool Center Point).

Mişcări provocate de senzori (ex. senzori de proximitate)

Strategii de asamblare prin programarea mai multor comenzi de mişcare


Luarea în consideraţie prin funcţii de program a forţelor, momentelor şi a limitelor
de flexibilitate
 Componente de limbaj pentru programare paralelă şi/sau în timp real

Controlul uneltelor şi al perifericelor


Cooperare cu alţi roboţi
Aşteptare pentru şi/sau reacţie la evenimente externe

Comparaţie

1
În contrast cu limbajele implicite, limbajele explicite au următoarele caracteristici:

Nu au un model al mediului înconjurător


Nu au posibilitatea de adăugare sau completare de programe în mod autonom
Nu detectează în mod autonom operaţii ilegale
Timpi de calcul mai mici şi necesităţi de memorie mai mici decât la sistemele
implicite
Utilizatorul trebuie să programeze fiecare mişcare şi să trateze prin program
diversele erori posibile.

Strategia dezvoltării programelor pentru roboţi industriali

Dezvoltarea riguroasă şi ordonată de programe pentru roboţi se face urmând paşii de


proiect specificaţi în figura 3.

Fig. 3.. Cele şase faze ale dezvoltării unui program pentru comanda roboţilor industriali.

Există câteva strategii de programare generale care sunt larg utilizate pentru realizarea
de programe: lucrul în echipă, folosirea experienţei acumulate, utilizarea de biblioteci de
funcţii şi proceduri despre care se ştie că sunt corecte şi testate, preluarea de modele
generale pe care programatorul le particularizează pentru aplicaţia reală etc. La acestea se
adaugă diferite tehnici de programare.

Tehnici de programare
Dacă programul este complex, se preferă împărţirea lui în mai multe mici sub-
programe cu funcţii clare şi diferite. Acest lucru permite concentrarea programatorului pe
rând, la rezolvarea unor probleme mai simple.

Pentru implementarea acestor sub-programe se pot folosi proceduri şi funcţii.


Separarea repetată a diverselor acţiuni ale programului conduce la apariţia mai multor
proceduri şi subrutine, care trebuie organizate. Divizarea codului unui program în funcţii,
proceduri şi subrutine conduce la nevoia de structurare a programelor. O structurare
bună a unui program trebuie să asigure o lizibilitate (citire şi înţelegere) uşoară a acestuia.
Acest aspect este important, mai ales atunci când un programator trebuie să modifice sau
să dezvolte un program realizat de alt programator.

În mod particular, pentru tratarea intrărilor/ieşirilor digitale, trebuiesc cunoscute


tehnicile de programare pentru automatizări cu evenimente secvenţiale şi aleatoare.

Structurarea programelor

Un program include informaţii pentru execuţia unor acţiuni. Aceste informaţii se


împart în: comenzi şi date. În mod uzual, datele necesare pentru acţiuni nu sunt cuprinse
în program, ci sunt preluate din alte surse, cum ar fi:

 Memoria de date (ex. lista de poziţii)


 Sistemele de măsurare (ex. senzori tactili sau de proximitate)
 De la utilizator (ex. panou operator – teach panel)

Comenzile din program constau în instrucţiuni de comandă şi, dacă este cazul, în alţi
parametri specifici necesari execuţiei acestor instrucţiuni.

Fig. 4. Fluxul informaţiei într-un program pentru roboţi


 

5.2.2. Limbaje de programare pentru roboţi industriali

Dintre cele mai cunoscute limbaje de programare în mod text pentru roboţi se pot
enumera:
MRL – Mitsubish Robol Language

IRL – Industrial Robot Language

SLIM – Standard Language for Industrial Manipulators

MELFA- III şi IV – Limbaje de programare, de nivel înalt, pentru roboţi industriali

Detalii privind limbajele de programare pentru roboţi industriali

MRL – Mitsubish Robol Language

Acest limbaj de programare a fost conceput şi folosit de firma Mitsubishi pentru


programarea roboţilor săi industriali din primele generaţii. Programele sunt încărcate din
PC în controller sub formă de fişiere text. Controller-ul acţionează ca un interpretor de
comenzi, executând instrucţiunile linie după linie, la fel ca la maşinile CNC.

Pentru programare este disponibil un set destul de bogat de comenzi. Comenzile sunt
împărţite în 7 clase:

1) Comenzi de poziţionare şi control al mişcării

Aceste comenzi se referă la definirea poziţiilor şi coordonatelor, la diverse tipuri de


interpolări ale mişcării, la viteze, acceleraţii, temporizări etc.

2) Comenzi pentru controlul programului

Sunt destinate structurării programului: ramuri decizionale, bucle, iteraţii, întreruperi


de semnal, porniri-opriri, operaţii cu numărătoare etc.

3) Comenzi de control al gripper-ului (uneltei)

Realizează acţiuni de închidere/deschidere gripper. Controlul forţei de strângere cu


gripper prin impunerea unui parametru de strângere (dacă este acţionat de motor).

4) Comenzi pentru intrări/ieşiri digitale (sau analogice)

Aceste comenzi sunt destinate controlului perifericelor cu intrări/ieşiri digitale (sau


analogice). Se pot realiza citiri şi scriere pe un singur bit sau pe mai mulţi biţi, în paralel.

5) Comenzi pentru operaţii matematice

Realizează principalele operaţii matemetice şi transfer al al datelor (rezultatelor) în


memorie.
6) Comenzi pentru comunicaţie (Utilizând RS232C)

Transferă informaţii între calculator (PC) şi controller-ul robotului. Informaţiile pot fi:
poziţii ale axelor sau în diverse sisteme de coordonate (robot, TCP), numărătoare, stare
intrări/ieşiri digitale, alţi parametri.

7) Alte comenzi

Ultimul set de comenzi operează pentru setarea unor parametrii generali ai controller-
ului, selecţia programelor, resetarea unor alarme, retragerea robotului în poziţia de
referinţă, şi în general cu comenzi de nivel superior necesare şi pentru controlul robotului
de la distanţă.

Aceste clase de comenzi sunt, într-o măsură mai mare sau mai mică, existente în toate
limbajele de programare pentru roboţi îndustriali.

IRL – Industrial Robot Language (DIN 66312)

Standardul DIN 66312 descrie structura de bază şi modul de realizare a programului


de nivel înalt pentru roboţi industriali IRL (Industrial Robot Language). Standardul
defineşte sintaxa şi semantica instrucţiunilor IRL. Limbajul permite utilizatorului să
programeze mişcările unui robot şi să execute organigrame logice conform unei structuri
de program definite de utilizator. Cu ajutorul unor compilatoare, un program IRL poate fi
transferat în cod ICR (Intermediate Code for Robots) sau cod IRDATA (DIN 66314).

SLIM – Standard Language for Industrial Manipulators

MELFA- III – Limbaj de programare, de nivel înalt, pentru roboţi industriali


În limbajul MELFA, un program are două părţi:
 Partea Declarativă: Unde se declară datele utilizatorului (declaraţii de
variabile, constante etc.)
 Partea de Instrucţiuni: Unde se implementează programul confor
cerinţelor aplicaţiei. În această parte se controlează mişcările robotului, se
realizează comunicaţiile cu echipamentele periferice, cu calculatorul sau
cu panoul de control.

MELFA- IV – Este ultima versiune de limbaj de programare dezvoltată de


Mitsubishi pentru controller-ele roboţilor pe care îi produce. Controller-ele
Mitsubishi pot fi utilizate şi în combinaţie cu alte tipuri de roboţi (Kuka, ABB,
FANUC, etc.)
ROBOŢII FANUC deschid drumuri noi în industria vinurilor
Îmbutelierea este complet automatizată cu ROBOŢI.
ROBOŢII execută toate operaţiile de manipulare a sticlelor, inclusiv depozitarea şi
paletizarea.

S-ar putea să vă placă și