Sunteți pe pagina 1din 104

1.

INTRODUCERE

1.1. Definiţii

În prezent, nu există o definiţie precisă a robotului dar, în accepţiunea generală a


specialiştilor în domeniu, acesta este o maşină programabilă, care imită acţiunile sau
aspectul unei creaturi inteligente – de obicei omul. Pentru a fi considerată robot,
maşina respectivă trebuie să fie capabilă să facă două lucruri:
1. să culeagă informaţii din mediul înconjurător şi
2. să efectueze o activitate fizică, ca de exemplu, să se deplaseze sau să manipuleze
un obiect.

În general, roboţii sunt utilizaţi atât pentru a înlocui omul în medii periculoase pentru
acesta, cât şi pentru efectuarea unor operaţii grele, repetitive, plictisitoare.

1.2. Aplicaţii ale roboţilor

1.2.1. Aplicaţii industriale

Din punct de vedere comercial, aplicaţiile industriale ale roboţilor sunt încă
predominante. Principalele aplicaţii industriale ale roboţilor sunt:

Fig.1.1. Manipulare piese Fig.1.2. Alimentarea mașinilor-unelte

Fig.1.3. Manipulare și paletizare Fig.1.4. Sudare în puncte caroserie auto

Page 1
Fig.1.5. Montaj autoturisme Fig.1.6. Vopsire caroserie auto

Fig.1.7. Prelucrare/finisare piese Fig.1.8. Decupare cu laser

Fig.1.9. Sudare cu arc electric

1.2.2. Aplicaţii neindustriale ale roboţilor

În ultimii ani a avut loc o dezvoltare în continuă creştere a roboţilor pentru servicii.
Aceştia reprezintă, de fapt, roboţii ce nu sunt utilizaţi în aplicaţii industriale, făcându-
se astfel o distincţie între sectoarele industriale şi cele de servicii ale economiei. În
consecinţă, roboţii pentru servicii sunt foarte diversificaţi şi pot fi date exemple în acest
sens.

Page 2
Fig.1.11. Robot educațional Fig.1.12. Robot pentru agricultura

Fig.1.13. Robot forestier Fig.1.14. Robot pentru alimentare


cu combustibil

Fig.1.15. Robot pentru construcţii Fig.1.16. Robot pentru curățenie

Page 3
Fig.1.17 Robot de companie Fig.1.18. Robot insoțitor al jucatorului de golf

Fig.1.19. Robot de servire Fig.1.20. Robot pentru gătit

Fig.1.19. Robot pentru stingere incendii Fig.1.20. Robot pentru pază

Page 4
Fig.1.21. Robot pentru operații chirurgicale

Fig.1.22. Robot pentru reabilitare Fig.1.23. Robot pentru eliberarea


medicamentelor pentru clienți

1.2.3 Aplicaţii ale roboţilor comandaţi de la distanţă

Fig.1.24.Robot pentru amenințări cu bombe Fig.1.25. Robot pentru deminaj umanitar

Page 5
Fig.1.26. Robot cu aplicaţii în medii nucleare Fig.1.27. Robot militar folosit la
aprovizionarea cu medicamente

Fig.1.28.Robot mobil folosit la inspecţii Fig.1.29. Robot subacvatic


în urma dezastrelor nucleare

Fig.1.30. Roboți cu aplicaţii spațiale


Page 6
1.3. Arhitectura unui robot industrial de tip manipulator

Fig.1.31. Arhitectura unui robot industrial


Componentele de bază ale unui sistem robotizat (Fig.1.31.) pot fi grupate în patru sisteme
distincte. Aceste sisteme sunt:

1. Sistemul mecanic este format din baza robotului, brațul robotului numit și
dispozitiv de ghidare, efectorul final EF și flanșa port EF. Brațul robotului este un
lanț cinematic deschis format din elemente mecanice și cuple cinematice.

2. Sistemul de acţionare (format din: sursă de energie şi circuite electronice de


putere, motoare, transmisii mecanice și frâne) contribuie la punerea în mişcare a
robotului. Transmisiile mecanice fac legătura dintre motor şi elementele mecanice
ale dispozitivului de ghidare.

Tot din sistemul de acționare fac parte traductoarele de poziţie şi de viteză, cu care
se măsoară poziţia și viteza de deplasare a elementelor mecanice.

3. Sistemul de comandă, citeşte informaţiile de la senzori şi transmite semnale de


control către motoare, pentru realizarea obiectivelor specificate în program.
Sistemul de comandă este format dintr-un “calculator” sau din mai multe
“calculatoare” interconectate şi are rolul principal de elaborare comenzi către - şi
culegere de informaţii de la - sistemul de acţionare. Prin intermediul acestor
comenzi asigură coordonarea mişcărilor de la nivelul întregului robot. De asemenea
”dialoghează” cu operatorul uman, foloseşte informaţiile de la senzori pentru a-şi
forma o imagine despre "lumea reală".

4. Sistemul de percepție (sau sistem senzorial) există atunci când robotul este dotat
în plus cu senzori care furnizează informații despre obiecte din ”mediu” (adică din
jurul robotului). De exemplu senzori tactili montați pe degetele de apucare, etc.

Page 7
1.4. Schema bloc a unui robot industrial

Conform paragrafului 1.3., părţile componente ale unui robot industrial sunt:
• sistemul de comandă;
• sistemul de acţionare;
• sistemul mecanic;
• sistemul de percepţie.

Fig.1.32. Schema bloc a unui robot industrial


În fig.1.32. s-a prezentat schema bloc a unui robot industrial. În această figură se poate
observa că sistemul de comandă şi cel de acţionare constituie sistemul de conducere,
care ca rol principal, punerea în mişcare şi controlul mişcării elementelor cinematice
din cadrul sistemului mecanic.

Observaţii:
1. blocurile componente ale unui robot se află într-o legătură informațională
bidirecţională şi se comportă împreună tot ca un sistem, denumit sistem robot.
2. unii autori includ în sistemul de conducere şi sistemul de percepţie.

Page 8
2. SISTEM
MUL MEC
CANIC AL
L UNUI ROBOT
R IN
NDUSTR
RIAL
2.1. Structurra generallă a sistem
mului mecanic al un
nui robot ””serial”

Sistemul mecanic al
a unui rob botul are rolul să asigure realizarea mișșcării şi tra
ansmitereaa
energiei mecanice
m n
necesare interacţiunii cu mediuul. Sistemu
ul mecanicc al unui roobot poate
e
avea form
me extrem de
d diverse, dar în ge eneral pot fi
f evidenţiiate 4 părţţi constitutive:
 Efectorul Final (EF);
 Flanșa po ort – Efecto
or Final (EFF).
 Dispozitivvul de Ghiddare (DG);
 Baza robo otului.

F
Fig.2.1.Com
mponentele
e fundame
entale ale sistemului
s mecanic

Structura - bloc prezzentată în Fig.2.1 es


ste una funndamenta nd și diferitte configu--
ală, existân
raţii particculare:
 cu mai multe e dispozittive de ghiidare;
 cu un singurr dispozitiiv de ghid dare, dar cu
c mai mullte efectoaare finale;
 cu baza robo otului mon ntată pe o platformă ă mobilă (în
( cazul rooboților moobili) etc.

Fig.2.2
2. Compone
entele fund
damentale în cazul ro
obotului IR
RB 1400

Page 9
Baza robotului
 Este o componentă mecanică masivă (cu o masă de regulă între 1Kg și 100Kg).
 Asigură stabilitatea robotului pentru orice regim dinamic atins în timpul funcţio-
nării.
 Baza se montează suplimentar pe o fundaţie solidă (de regula din beton de care
este prinsă rigid).
 Este elementul fix al sistemului mecanic, față de care are loc prima mișcare a
dispozitivului de ghidare.

Observație:
 Pentru clasa particulară a roboţilor mobili, baza este o platformă mobilă și
asigură funcţia de motricitate, ceea ce permite deplasarea întregului sistem
robot în scena de operare.

Efectorul Final (EF)

Reprezintă elementul prin care robotul realizează funcția tehnologică în aplicație,


interacţionând direct cu mediul înconjurător. Este un dispozitiv care poate să aibă forme
şi structuri extrem de diverse, în strânsă legătură cu aplicaţia pe care o realizează
robotul. Dependenţa strictă de aplicaţie face ca proiectarea şi realizarea efectorilor finali
să revină de regulă celui care dezvoltă aplicaţia robotizată şi nu producătorului robotului.

În practică există următoarele soluții:


 Firme specializate pentru astfel de dispozitive (ex. SCHUNK).
 Producători de roboţi care pun la dispoziţia dezvoltatorilor de aplicaţii robotizate,
efectoare finale pentru diferite clase de operaţii; acestea pot fi uşor adaptate la
cerinţele specifice aplicației.
 Producătorul robotului oferă propria competenţă și experientă pentru executarea
la comandă a efectorului final solicitat de beneficiar.

Din punctul de vedere al acțiunii robotului asupra mediului, care poate fi ori una de
manipulare a unor obiecte ori una de prelucrare a acestora, existe două categorii mari a
efectorilor finali:
 Efectorul final al robotului care manipulează obiecte se numeşte dispozitiv de
prehensiune (numit și gripper). Funcţia lui este aceea de a solidariza obiectul
cu partea sa de bază, asigurând obiectului faţă de aceasta o situare relativă
bine determinată, menţinută în timp (deobicei prin strângere).
 Efectorul final al robotului care prelucrează obiecte este o sculă (tool). Energia
necesară pentru prelucrare poate fi comunicată sculei exclusiv prin intermediul
robotului sau prin intermediul robotului şi a unei surse suplimentare de energie.
În acest ultim caz efectorul final este un ”cap de forţă cu sculă”. Dacă capul de
forţă este utilizat pentru ”prelucrarea unui obiect” (de exemplu prin găurire,
frezare, polizare, debavurare etc.) atunci de regulă conţine un motor şi eventual
o transmisie mecanică.
Manipularea „obiectului” sau a ”sculei” (sau a ”capului de forță”) se realizează prin
modificarea situării bazei efectorului final, cu care obiectul sau scula este solidarizată. În
acest scop, baza efectorului final este solidarizată cu ultimul element al dispozitivului
de ghidare.
Page 10
Exemple tipice de efector final:
1. Dispozitiv de prehensiune (gripper) (pentru aplicaţii de manipulare, paletizare,
depaletizare).
2. Sculă sau cap de forță cu Sculă:
 Pistol de vopsire (pentru aplicaţii de vopsire).
 Cleşte de sudură (pentru aplicaţii de sudură în puncte).
 Pistol de sudură continuă (pentru aplicații de sudură cu cordon de sudură).
 Senzor de contact 3D (pentru aplicaţii de măsurare/control dimensional 3D)
 Dispozitiv de tăiere (pentru aplicaţii de tăiere în chirurgie).
 Dispozitiv de polizare (pentru aplicaţii de finisare/debavurare).
 Dispozitiv de găurire/frezare (pentru aplicaţii de găurire/frezare).
 Pistol cu jet de apă (pentru aplicaţii de decupare în diferite materiale).
 Pistol cu laser (pentru aplicaţii de decupare în materiale metalice).
 Pistol de adezivi (pentru aplicaţii de depunere a adezivilor) etc.

Dispozitivul de prehensiune (gripper)

În aplicațiile pick and place (manipulare, paletizare, depaletizare), cele mai răspândite
aplicaţii ale roboților, efectorul final al robotului trebuie să asigure funcţia de prindere -
eliberare a diferitelor obiecte, el este denumit gripper sau dispozitiv de prehensiune.
Observații:
• Manipulare: prinderea unui obiect într-un PI (punct inițial) unic, deplasarea și
eliberarea sa într-un PF (punct final) unic.
• Paletizare: prinderea unui obiect existent într-un PI unic și deplasarea sa într-un
PF diferit (dintr-o structură ordonată).
• Depaletizare (operația inversă paletizării): prinderea unui obiect existent într-un PI
diferit (dintr-o structură ordonată) și deplasarea sa într-un PF unic.

Există mai multe tipuri de grippere:


• Gripper cu 2, 3 sau 4 degete/bacuri;
• Gripper cu mai multe puncte de prindere (multi-fingered grippers);
• Gripper cu vacuum (pentru obiecte fragile sau prinderi unilaterale);
• Gripper cu prindere neconvențională (soft-grippers).

Fig.2.3. Construcția unui gripper cu 2 degete


Page 11
Fig.2.4.E
Exemple dee gripper cu 2 respectivv 3 degete

Fig.2.5.E
Exemple dee gripper cu 3 respectivv 4 degete

Fig.2.5.Exxemplu de gripper
g cu mai
m multe pu
uncte de prinndere (multti-fingered)

Page 12
Fig.2.66.Exemplu de
d gripper cu
c vacum (vventuze) pen
ntru obiectee fragile și pprinderi unillaterale

F
Fig.2.7.Grip
pper cu prinddere neconv
vențională (soft-grippe
( r)

Exemple de Sculă sau cap de


d forță cu
u Sculă:

F
Fig.2.8. Pisstol de vop
psire (pentrru aplicații de vopsire
e)

Page 13
Fig.2.9. Clește de
d sudură (pentru ap
plicații de sudură în puncte)

F
Fig.2.10. P
Pistol de su ă cu cordon
udură continuă (pentrru aplicații de sudură n)

Fig.2.11. Senzor de contacct 3D (pentru aplicații de măsurare/control dimensional 3D)

Page 14
Fig.2.12
2. Dispozitiiv de tăiere
e (pentru aplicații
a de tăiere în chirurgie)

Fig.2.13. Dispozitiv
D de polizare
e (pentru aplicații
a de finisare/de
ebavurare))

F
Fig.2.14. D
Dispozitiv d găurire/ffrezare (pe
de entru aplica
ații de găurrire/frezare
e)

Page 15
Fig.2.15. Pistol
P cu je
et de apă (pentru apliicații de de
ecupare în materiale))

Fiig.2.16. Pisstol cu lase


er (pentru aplicaţii de
e decupare
e în materia
ale metalic
ce)

Fig
g.2.17. Pisstol de adezivi (pentru
u depunere
ea adezivillor)

Page 16
Flanșa po
ort - Efecttor Final (EEF)
 Este de reg gulă capăttul ultimulu
ui segmen nt (elementt) mecanicc, din vârfful braţului
ro
obot, în strructura liv
vrată de prroducătorr.
 Este o flanşşă prevăzu ută cu maii multe preelucrări mecanice
m d
de tip găuuri simple e
saau filetate
e.
 Înn funcţie dee aplicaţia pe care o va realiza
a robotul, flanşa
f perrmite ataşarea unui
effector final (EF) adecvat,
a p
printr-o îm
mbinare demontabi
d ilă de tip şurub –
piuliţă.

Fig.2.18. Exemple
E de
e flanșă po
ort – efecto
or final (EF
F)

Dispozitiv
vul de ghiidare (DG))
 Aree funcţia dee a deplassa efectoru ul final EF, împreună cu obiectu ul (sau scu
ula) care a
fosst solidariza
at cu acestta, într-o anumită poz ziţie dată față de bazza robotulu
ui.
 Are
e o configuraţie geo ometrică variabilă,
v obţinută
o prrin legarea în serie (c
cascadă) a
maai multor segmente
s (elementte) rigide, intercone ectate reciproc prin articulaţiii
meecanice (ccuple cine ematice). Segmentel
S le și articu
ulațiile resp
pective forrmează unn
lan
nț cinematicc ”deschis””. Un astfel de robot se numeștte robot se erial.

Fig.2.20. Re
eprezentare
ea schema
atică a sistemului me
ecanic la un
n robot serrial
Page 17
 estte format din
d două mecanisme
m e: mecanis smul gene e (MGT) șii
erator de ttraiectorie
me ecanismul de orien ntare (MO)). Primul realizează modificare ea poziţiei obiectuluii
ma anipulat şi conţine
c ematice ,  și  (n
în general prrimele trei cuple cine numerotate
e
înccepând de la baza ro obotului). Al
A doilea coonține ultim
mele 3 cup
ple cinemattice (, 
și )
 și realizzează mişccarea de orientare a obiectului.
În fig.2.2
20. efectorrul final este
e fixat rigid de flanșa poort – EF, care este capătull
ultimului segment (elementt) al DG. Acest
A segm
ment are nr.6, în ca azul unui robot
r cu 6
grade de mobilitatee, fig.2.20. Segmentul nr.0 estte segmenntul ”fix”, ffață de care are locc
prima mișșcare a DG
D (mișcarrea segme entului 1 față
f de se
egmentul 0 cu ajuto orul cupleii
cinematice ). Segmmentul nr..0 este numit ”baza robotuluii”.

2.1.1. Structtura cuple


elor cinematice

Din considerente practice, cu uplele cinematice din d componența DG sunt cu un u singurr


grad de libertate, adică
a fieca
are separatt admite cââte o singu
ură mişcare e (din cele
e 6 teoreticc
posibile în
n spaţiu). Mişcarea
M p
permisă pooate fi de rotaţie (R
R) sau de ttranslaţie (T). Astfell
deosebimm cuple cine ematice de e şi cuple cinematice
e translaţie c de rotaţie..

Fig.2.21. Mişcarea
M permisă poa
ate fi de ro
otaţie (R) sau
s de tran
nslaţie (T)).
Cuplele cinematice
c sunt cuplle cinema atice cond ducătoare (adică sunt prevăzu ute fiecare
e
cu câte un motor dee acționaree). Mişcările cuplelorr cinematicce sunt inddependente e. În cazull
eneral, un dispozitiv de ghidare
cel mai ge e are 6 gra
rade de mo obilitate. Acest lucru înseamnă ă
că putem impune 6 mişcări disstincte disp
pozitivului de
d ghidaree cu 6 moto oare de accționare.

F
Fig.2.22. S
Structura ge
enerală a unei
u cuple cinematice
Page 18
În fig.2.22. s-a reprezentat schematic structura generală a unei cuple cinematice ”i”,
care leagă segmentul (elementul) rigid ”i” de segmentul (elementul) rigid ”i-1”. Cu ajutorul
unui motor de acționare, cupla cinematică ”i” pune în mișcare de rotație sau de
translație segmentul ”i” față de segmentul ”i-1”. Într-un caz general o cuplă cinematică
de rotație conține:
 Un motor de acționare;
 Un traductor sau mai multe traductoare (de poziție, de viteză, de forță, de moment);
 O frână (utilizată doar pentru menținerea în poziție a segmentului ”i” când robotul nu
este alimentat cu energie);
 Transmisie (de exemplu: curea dințată);
 Reductor de turație (de exemplu cu roți dințate, sau reductor armonic etc.).

Fig.2.23. Transformarea mișcării de rotație în mișcare de translație


cu un mecanism pinion-cremalieră
În cazul unei cuple de translație (T), dacă se utilizează de asemenea un motor rotativ,
atunci mai apare în plus un mecanism care transformă mișcarea de rotație în
mișcare de translație (de exemplu cu mecanism ”șurub-piuliță” sau cu mecanism ”pinion
– cremalieră”, fig.2.23.).

Page 19
2.1.2. Structura bloc a sistemului mecanic

Fig.2.24.Exemplu de robot serial montat pe o platformă mobilă


În fig.2.24. s-au prezentat componentele principale ale sistemului mecanic, în cazul unui
robot industrial serial, cu baza robotului montată pe o platformă mobilă. Dispozitivul de
ghidare DG este indicat prin cele două componente ale sale și anume: mecanismul
generator de traiectorie MGT și mecanismul de orientare MO. Efectorul final EF este de
tip dispozitiv de prehensiune (gripper) și este montat/fixat rigid pe flanșa port – EF.

Fig.2.25.Structura bloc a sistemului mecanic


În fig.2.25. s-a reprezentat structura bloc a sistemului mecanic, în cazul unui robot
industrial serial. Într-un caz general, sistemul mecanic este format din dispozitivul de
ghidare (DG), efectorul final (EF) respectiv platforma mobilă.

Platforma mobilă este acea parte componentă a sistemului mecanic care asigură
modificarea situării întregului ansamblu în mediu. În cazul în care robotul nu este înzestrat
cu platformă mobilă, el este robot staţionar, pe când cel al cărui sistem mecanic conţine
o asemenea platformă, poartă numele de robot mobil.
Exemplu de robot montat pe platformă mobilă: https://www.youtube.com/watch?v=p6NwH3G0V6Y

Page 20
2.1.3. Structura mecanismului generator de traiectorie (MGT)

Modificarea poziţiei obiectului manipulat se


realizează cu ajutorul unei părţi a dispo-
zitivului de ghidare, care poartă numele de
mecanism generator de traiectorie (MGT).
El joacă, în operaţia de manipulare, acelaşi rol
pe care îl joacă umărul, braţul şi antebraţul o-
peratorului uman, fig.3.1. Din acest motiv a-
cestei părţi a dispozitivului de ghidare i se mai
spune şi "braţ".
Fig.3.1.
În principiu mecanismul generator de traiectorie trebuie să aibă gradul de mobilitate
trei, deoarece el realizează modificarea celor trei coordonate carteziene (X, Y, Z) ale
obiectului manipulat. În cazul unui robot industrial
TTT TTR RRT
cu 6 grade de mobilitate, mecanismul generator
de traiectorie este constituit din primele trei cuple RTT TRR RRR
cinematice (notate cu ,  şi ). TRT RTR
Tab.3.1.
Structurile posibile de mecanisme generatoare de traiectorie, care generează spaţii
de lucru tridimensionale, sunt cele din tabelul 3.1. Cu T s-a notat o cuplă cinematică de
translaţie iar cu R o cuplă cinematică de rotaţie. De exemplu, la mecanismul generator de
traiectorie RTT (Rotație – Translație – Translație), prima cuplă cinematică (începând de la
baza robotului), este de rotație (R), a doua este de translație (T) și a treia este de
translație (T). În practică din cele 8 structuri posibile sunt utilizate doar 4: TTT, RTT, RRT
și RRR.

Pentru reprezentarea schemelor cinematice ale MGT, se utilizează de regulă,


următoarele simboluri pentru cuplă cinematică de translație (T) respectiv pentru cuplă
cinematică de rotație (R):

În figurile 3.1.-3.4. s-a reprezentat pe lângă tipul cuplelor cinematice care intră în structura
acestor mecanisme generatoare de traiectorie şi câte un sistem de coordonate fix X0Y0Z0
legat de baza robotului (segmentul 0). Elementele (segmentele) 0, 1, 2 şi 3 sunt legate
între ele prin intermediul cuplelor cinematice ,  şi .

Page 21
Fig.3.1. Mecanism de tip TTT Fig.3.2. Mecanism de tip RTT

Fig.3.3. Mecanism de tip RRT Fig.3.4. Mecanism de tip RRR


În funcţie de tipul spaţiului de lucru descris (cartezian, cilindric, sferic, articulat), de ultimul
punct al MGT, se mai utilizează şi următoarele denumiri: Robot cartezian (cu MGT de tip
TTT); Robot cilindric (cu MGT de tip RTT); Robot sferic (cu MGT de tip RRT); Robot
articulat (cu MGT de tip RRR).

Fig.3.5. Robot ”cartezian” (TTT)


Exemplu de robot cartezian: https://www.youtube.com/watch?v=QMmbeRKN2FQ

Page 22
Fig.3.6.a. Robot cartezian (TTT) de tip portal (”gantry”)
Exemplu de robot gantry: https://www.youtube.com/watch?v=nOV5tEy8Oq8

Fig.3.6.b. Roboți cartezieni (alte structuri asemănătoare)

Fig.3.7.Robot ”cilindric”(RTT)
Exemplu de robot cilindric: https://www.youtube.com/watch?v=m52XuKKCTTs

Fig.3.8.Robot ”sferic”(RRT)
Exemplu de robot sferic: https://www.youtube.com/watch?v=yQeoqHgUeww&t=2s

Page 23
Fig.3.9.Robot ”articulat”(RRR)
Exemplu de aplicație cu robot articulat: https://www.youtube.com/watch?v=mZ-L6FzX3yE

La robotul ”cartezian”, cele 3 mișcări de translație (T) (care reprezintă cele 3 ”axe” de
mișcare) sunt paralele cu axele X, Y și Z ale unui sistem cartezian, fig.3.5-3.6. Ca urmare
robotul cartezian ”lucrează în coordonate carteziene”. Spațiul de lucru (adică totalitatea
acelor puncte din spațiu care pot fi atinse de ultimul punct de la capătul brațului) al unui
robot cartezian este un paralelipiped, fig,3.10.

Fig.3.10. Forma spațiului de lucru la robotul cartezian

Fig.3.10. Forma spațiului de lucru la robotul cilindric și la robotul sferic


Robotul cilindric lucrează în coordonate cilindrice (r, θ și Z) iar spațiul de lucru seamănă cu
un cilindru incomplet. Robotul sferic lucrează în coordonate sferice (r, θ1 și θ2) iar spațiul
de lucru este o sferă incompletă. Robotul articulat are de asemenea un spațiu de lucru
sferic dar deformat, fig.3.11.
Page 24
Fig.3.11. Forma spațiului de lucru la un robot articulat
Mai există un tip specific de robot care se utilizează în industrie, și anume robotul SCARA
(Selective Compliance Articulated Robot for Assembly). D.p.d.v. structural este de fapt
un robot de tip RRT cu 2 articulații de rotație cu axele paralele și cu o articulație de
translație pe verticală. A fost dezvoltat pentru operații de asamblare, care se realizează cu
două mișcări rapide de poziționare în plan orizontal după care urmează o mișcare simplă
de coborâre pe verticală. Fig.3.13. indică forma spațiului de lucru în cazul robotului SCA-
RA.

Fig.3.12. Robot de tip SCARA

Fig.3.13. Forma spațiului de lucru la robotul SCARA


Exemplu de robot SCARA: https://www.youtube.com/watch?v=qj8B-zL64FE

Page 25
2.1.4. Structura mecanismului de orientare (MO)

Modificarea orientării obiectului manipulat se realizează cu ajutorul unei părţi a dis-


pozitivului de ghidare, care poartă denumirea de mecanism de orientare (MO). El jo-
acă acelaşi rol în operaţia de manipulare pe care îl joacă articulaţia carpiană (adică a
”pumnului”). Ca urmare, acestui mecanism i se mai spune şi mecanism carpian.

Mecanismul de orientare trebuie să aibă, în principiu trei grade de mobilitate și conține


ultimele 3 cuple cinematice: ,  și ., Cuplele cinematice conducătoare din componenţa
sa sunt numai cuple de rotaţie (R). Roboţii industriali de construcţie mai simplă au meca-
nismul de orientare cu gradul de mobilitate mai mic de trei (1 sau 2).

În soluţie completă RRR (având deci trei grade de mobilitate), mecanismul de orientare
realizează rotirea obiectului manipulat în jurul celor trei axe ale unui sistem de
coordonate atașat ultimului segment al MGT (astfel încât axa OX este în prelungirea
acestui segment), fig.3.14.

Fig.3.14. Definirea mișcărilor de orientare


Denumirile convenţionale ale celor trei mişcări de rotaţie se stabilesc prin analogie cu de-
numirile aferente din anatomie pentru mişcările articulaţiei mâinii umane şi anume:
• pronaţie-supinaţie (ROLL) pentru mişcarea în jurul axei OX;
• flexie-extensie (PITCH), mişcarea în jurul axei OY;
• aducţie-abducţie (YAW), mişcarea în jurul axei OZ.

Fig.3.15. Mișcările în cazul mâinii umane


Page 26
În cele mai multe cazuri, axele celor trei mișcări de rotație (R), generate de cuplele
cinematice ,  și , sunt concurente și ele se întâlnesc în așa-numitul punct al
încheieturii (numit și punct carpian) sau punct Wrist (Wrist Point - W). Astfel rezultă un
mecanism RRR ”sferic” de orientare, adică la care ultimul punct al MO descrie, față de
punctul Wrist, un spațiu de lucru sferic.

Avantajul unui mecanism de orientare sferic este că mișcările de orientare ale


obiectului manipulat pot fi ”decuplate” de mișcările de deplasare (efectuate de mecanismul
generator de traiectorie MGT). Cu alte cuvinte, în cazul unui robot industrial cu MO de tip
sferic, în ”conducere” se poate considera că cele două mișcări (de deplasare respectiv de
orientare), se execută simultan dar independent. Astfel rezultă un algoritm de conducere
mai simplu.

Fig.3.16. Mecanism de orientare RRR sferic (de tip PUMA) și schema cinematică
În fig.3.16. s-a repezentat schematic un mecanism de orientare RRR sferic, al unui robot
industrial de tip PUMA, respectiv shema cinematică aferentă.

Exemplu de mecanism sferic cu cele 3 mișcări de rotație: https://www.youtube.com/watch?v=z9kE4TkCGEE

Page 27
2.1.5. Puncttul caracte
eristic, dre
eapta cara
acteristică
ă și dreaptta auxiliară
ă

În condu ucere, mișșcările de deplasare e sunt preescrise pe entru un ppunct al obiectului


o i
manipula at, ales în mod convvenabil, caare se nummește pun nct caracteeristic. Miișcările de
e
orientare ale obiecttului manip
pulat sunt prescrise cu ajutoru
ul dreptei caracterisstice și cuu
ajutorul dreptei auxxiliare.

Dreapta caracteristtică este o dreaptă ă care tre ece prin punctul


p caracteristic.. În cazull
obiectelorr simetrice, dreapta caracterist
c tică este de
d obicei axa
a de sim metrie a obiectului iarr
punctul caracteristic
c c este cen ntrul de simetrie (ce entrul geo
ometric) al obiectului. Dreapta a
auxiliară este
e o dreeaptă perpe endicularăă pe dreapta caracte eristică în p
punctul caracteristic.
Punctul ca ă şi auxilia
aracteristicc este originea, iar dreptele caracteristică ară sunt axxe ale unuii
sistem dee referinţă cartezian
c X
XYZ legat de
d obiect.

Fig.4.1. Punctul cara


acteristic, dreapta
d ca ă și dreaptta auxiliară
aracteristică ă
la unn obiect ciliindric
Atunci când obiectu ul este apu
ucat de disspozitivul de
d prehensiune (DP) al robotu ului, atuncii
dreapta caracteristic
c că se suprrapune peste axa de e simetrie a DP, iar dreapta auxiliară se e
alege pe e direcția de mișccare (înch hidere/desc chidere) a degetelo or, fig.4.1. Punctull
caracterisstic M se alege,
a pe dreapta
d ă, astfel înccât să coin
carracteristică ncidă cu așșa-numitull
punct de sculă (TC CP – Tool Center Pooint).

Fig.4.2. Punctul cara


acteristic, dreapta
d ca ă și dreaptta auxiliară
aracteristică ă
la un obiecct apucat cu
c un dispo
ozitiv de prrehensiunee

Page 28
Observație:
 Atunci când dispozitivul de prehensiune se mișcă fără obiect (de exemplu către
obiect în vederea apucării), atunci în conducere, mișcarea de deplasare este
prescrisă pentru punctul de sculă. Acest punct se găsește, de regulă, la mijlocul
distanței dintre degete.

În timpul mișcării, poziția obiectului apucat, se exprimă matematic cu coordonatele


carteziene ale punctului caracteristic M, măsurate în sistemul de coordonate X0Y0Z0
legat de baza robotului. Pentru a indica în timpul mișcării, corect și orientarea obiectului,
se atașează sistemului de coordonate
 legat de obiect 3 versori:
1. versorul de apropiere a al mâinii, pe direcția axei Z, adică de-a lungul dreptei
caracteristice; 
2. versorul de orientare o pe direcția axei Y, adică de-a lungul dreptei auxiliară;

3. versorul normal n pe direcția axei X, adică perpendicular pe planul format de

versorii și .
a o

În conducere, orientarea obiectului este exprimat matematic cu proiecțiile versorilor


  
a , o și n pe axele sistemului de coordonate X0Y0Z0 legat de baza robotului.

2.1.6. Punctul de sculă (TCP)

Fig.4.3. Stabilirea punctului de sculă


În conducere, punctul de sculă (TCP – Tool Center Point) se utilizează atunci când
dispozitivul de prehensiune (DP) nu are obiectul apucat. Se alege de regulă pe axa de
simetrie a DP. De-a lungul axei de simetrie se alege versorul de apropiere a al mâini;
perpendicular pe versorul de apropiere, de-a lungul direcției de mișcare a degetelor
  se
alege versorul de orientare o iar perpendicular pe planul format de versorii a și o , se
   
alege versorul normal n . Versorii a , o și n sunt versorii atașați DP (adică efectorului final
– EF).

În conducere, în lipsa obiectului apucat, poziția DP se exprimă matematic cu coordona-


tele carteziene ale punctului de sculă TCP, iar orientarea DP cu proiecțiile versorilor
  
a , o și n pe axele sistemului de coordonate X0Y0Z0 legat de baza robotului.

Se consideră, că în momentul apucării obiectului, punctul de sculă TCP se


suprapune peste caracteristic M. Axa de simetrie a DP se suprapune peste dreapta
caracteristică, direcția de mișcare a degetelor va fi de-a lungul dreptei auxiliare, și astfel
  
versorii a , o și n indică în continuare nu numai orientarea DP dar și a obiectului.
Page 29
În cazul în
n care robo otul este dootat cu o sculă
s (tool) sau cap de
d forță cu sculă, pun
nctul TCP
poate fi de
efinit în diferite poziții specifice. De exemplu:
 În centrul
c de simetrie all unui cleştte de sudu ură prin pun
ncte;
 În vârful
v electtrodului un
nui pistol dee sudură;
 În centrul
c duzzei unui pisstol de voppsire;
 În vârful
v sculeei aşchieto
oare la o ap plicaţie de prelucrare
e mecanicăă etc.

Fig.4.4. Poziția pu CP la clește de sudurră și la pisttolul de sudură


unctului TC
Prin consstrucţie, orice robo ot industrrial are in nițial ampplasat TCP P-ul în centrul de e
simetrie al flanşeii port - effector final (EF). După
D dotarrea/echipa
area robotuului cu un n
efector fin
nal concrett (necesar pentru aplicația robo
otizată), TC
CP-ul estee ”translata
at” într-una
a
dintre punnctele TCP
P arătate mai
m sus.

Fig.4.5. Punctul de
e sculă de pe flanșa port - EF

2.2
2. Structura
a sistemului mecan
nic al unui robot parralel

Până cân nd roboții seriali


s suntt formați numai din lanțuri cine
ematice de
eschise (fig
g.4.6.), ro--
boţii para
aleli pot fi definiţi ca
a mecanis sme cu lannţuri cinemmatice înc
chise (fig.4
4.7.).

Fig.4.6. Exemplu de
e lanț cinem
matic deschis Fiig.4.7. Exe
emplu de la
anț cinema
atic închis

Page 30
Mecanismele paralele sunt mecanisme formate din doua platforme: una considerată a
fi fixă si una considerată a fi mobilă. Cele doua platforme sunt legate intre ele prin 3-6
lanţuri cinematice independente, formând o structură paralelă. Mişcarea platformei mobile
este introdusă prin cele 3-6 lanţuri cinematice. Avantajele acestor roboţi paraleli rezultă din
poziţionarea precisă a platformei mobile (la care este atașat și efectorul final), datorită
mişcărilor foarte fine asigurate de mecanismele din componența lor.

Roboții paraleli din aplicații industriale au în general 4 grade de mobilitate, 3 pentru


deplasare/poziționare și 1 pentru orientare. Cel mare succes are robotul Delta, fig.4.8.

Fig.4.8.Schema cinematică a robotului paralel Delta


Conceptul cheie al robotului Delta este utilizarea mecanismelor de tip ”paralelogram”
care limitează mișcarea platformei inferioare la o mișcare de translație pură, adică permite
doar mișcare de translație în direcția X, Y sau Z (fără rotație).

Baza robotului (platforma superioară fixă) este montată deasupra spațiului de lucru și
toate motoarele de acționare sunt amplasate pe ea. De la bază, se extind trei brațe for-
mate din braț superior și braț inferior. Brațul inferior este format dintr-un mecanism para-
lelogram care introduce doar mișcare de translație. Capetele acestor ”brațe inferioare”
sunt conectate la o platformă triunghiulară mică (platforma inferioară mobilă).

Acționarea brațelor superioare va muta platforma inferioară triunghiulară de-a lungul


direcției X, Y sau Z. Acționarea se realizează de obicei cu 3 servomotoare care constitue 3
cuple cinematice de rotație. Efectorul final EF se mișcă împreună (în direcțiile X, Y, Z) cu
platforma inferioară. Pentru rotirea axială a efectorului final s-a mai atașat un lanț cinemat-
ic telescopic, acționat tot de un servomotor. Bara telescopică trece liber printr-o gaură a
platformei inferioare și astfel (la nevoie și în funcție de aplicație) poate realiza orientarea
unghiulară corespunzătoare a EF.

Deoarece motoarele de acționare sunt toate situate în bază, brațele pot fi realizate dintr-un
material compozit ușor. Ca urmare componentele în mișcare ale robotului Delta au numai
o mică inerție. Acest lucru permite viteze foarte mari și de asemenea accelerații mari.

Page 31
Având toaate brațele conectate ă la platform
e împreună ma inferioa
ară, crește rigiditatea
a robotului,
dar se red
duce volummul de lucru
u.

Cel mai utilizat ro obot Delta industrrial este ABB A Flex


xPicker. U
Ultima vers siune este e
FlexPickeer IRB 360 0 care este e deja a do oua generratie de roboți, dediccați aplicațțiilor de tip
p
"pick&placce" (prelua are și așeezare). Robotul IRB 360 vine în versiun ni specialee dedicate e
mediilor sterile
s și esste destinatt aplicațiilo
or din indus
stria alimen
ntara.

Fig.4.9.a. Robotul
R ABB
B IRB 340 Fig.4.9.b. Robotul A
ABB IRB 36
60
Firrma ABB are
a peste 1800
1 de rooboti delta instalați laa nivel glob
bal. Raza de acțiunee a robotu--
lui variază de
e la 800mm m până la 1130mm
1 (îîn funcție de
d model); sarcina uttilă este de
e pană la 3
kg. Repetabillitate 0,1 mm.
m Aplica ații tipice din
d industtria alimen ntară:

1. Prelua
area și așe
ezarea ord
donată a clătitelor
c
Odata gătite, clă ătitele suntt așezate pe un con nveior și ajjung în înccinta robottizată caree
cuprinde 4 zone de operarre, în fieca are zonă operând
o câ
âte un robo ot ABB „Fle ex picker”..
De aseemenea, cuprinde
c n conveior central și două convveioare sta
un andard. Clăătitele suntt
transp
portate pe conveioare
c ele standard și sunt gata
g e și stivuite
de a fi preluate e în diferite
e
formațții, pe convveiorul centtral, fig.4.5
5.

Fig.4.10.
a robotului este foarte ridicată, fiind așeza
Viteza ătite pe minut, imbun
ate 400 clă nătățind cu
u
20% timpul neccesar unui astfel de e ciclu. Co omplementtar robotului Flex Picker
P este
e
Page 32
software-ul Abb SoftMaster 3.2, cu ajutorul căruia este controlat progresul pe bandă.
Cu ajutorul acestui soft, o camera de 4 GB, poziționată în fața fiecărui robot,
localizează clătitele pe bandă. Robotul urmăreste clătitele pe bandă, pentru o
exactitate cat mai bună în ceea ce privește prinderea lor. Clătitele vor fi preluate pe
rând, așezate ordonat și apoi scoase din încinta robotizată, pe conveiorul central.
Sursa: https://www.youtube.com/watch?v=wg8YYuLLoM0

2. Preluarea și așezarea ordonată a cârnaților


In cadrul acestei operații, patru roboți cu arhitectură paralelă, de tip delta preiau cârnați de pe
două benzi transportoare și îi plasează pe o banda centrală. Cei patru roboți sunt suspendați si
utilizează efectori finali de tip gripper.

Fig.4.11.
In prima fază, cârnații sunt aduși la locul de prelucrare robotizată pe cele două benzi
transportoare. Cei patru roboți operează simultan, preluând cârnații și așezându-i pe
conveiorul central, în suporturi. Viteza de operare a roboților este foarte ridicată, la fel
și precizia de poziționare. După ce sunt așezați în suporturi, cârnații sunt transportați
pe banda centrală spre a fi ambalați.
Sursa: https://www.youtube.com/watch?v=aPTd8XDZOEk

O altă familie de roboți delta este cea a firmei Fanuc.

Fig.4.12. Robot delta Fanuc M1iA


Aplicațiile industriale tipice pot fi urmărite la adresa :
https://www.youtube.com/watch?v=NOR_rzBB_54
Page 33
3. SISTEMUL DE ACȚIONARE AL UNUI ROBOT INDUSTRIAL

3.1. Schema bloc generală a sistemului de acționare

La nivelul fiecărei cuple cinematice conducătoare este amplasat câte un motor de


acţionare. Motorul generează energia mecanică necesară punerii în mişcare a ele-
mentelor mecanice. Motorul poate fi electric, hidraulic sau pneumatic. După tipul motoa-
relor de acționare cu care este dotat, robotul primeşte denumirea de:
 robot cu acţionare electrică,
 robot cu acționare hidraulică,
 robot cu acționare pneumatică,
 sau robot cu acționare mixtă.

Indiferent de tipul motoarelor utilizate (electric, hidraulic sau pneumatic), sistemul de


acționare este alimentat din exterior totdeauna cu energie electrică. În cadrul siste-
mului de acționare, această energie electrică este transformată:
1. direct în energie mecanică în cazul motorului electric;
2. întâi în energie hidraulică (cu ajutorulul unui ”grup hidraulic”) și apoi în energie
mecanică în cazul motorului hidraulic;
3. întâi în energie pneumatică (cu ajutorulul unui ”compresor”) și apoi în energie
mecanică în cazul motorului pneumatic.
Astfel, în funcție de tipul motorului (electric, hidraulic sau pneumatic) la nivelul sistemului
de acționare există o sursă de energie electrică, hidraulică sau pneumatică, utilizată
pentru alimentarea motorului cu energie.

Scopul sistemului de acționare este punerea în mișcare a elementului mecanic (din


structura cuplei cinematice) și controlul mișcării acestuia, astfel încât parametrii cinema-
tici ai mișcării (poziția, viteza și accelerația) să aibe, în fiecare moment, valori cât mai
apropiate de valorile ”prescrise”, furnizate de sistemul de comandă.

Observație:
 Sistemul de comandă furnizează sistemului de acționare, la perioade de timp
egale, datele privind poziția, viteza și accelerația ”dorită” a elementului mecanic pus
în mișcare. Aceste date sunt ”obligatorii” pentru sistemul de acționare, ca urmare
ele se numesc mărimi prescrise sau mărimi de prescriere.

Pentru măsurarea valorilor parametrilor cinematici, realizate la nivelul cuplelor cinematice,


într-un caz general se utilizează 2 tipuri de traductoare:
 traductoare de poziție (numite și traductoare de deplasare) pentru măsurarea
poziției elementului mecanic față de o poziție de referință;
 respectiv traductoare de viteză pentru măsurarea vitezei și a sensului de mișcare.
Aceste traductoare furnizează informaţiile cu privire la mişcarea executată în realitate de
elementele mecanice. Informațiile respective se numesc mărimi de reacţie.

Indiferent de tip: electric, hidraulic sau pneumatic, motorul este comandat totdeauna de
un circuit electronic. Întregul ansamblu, compus din motor, traductoare şi circuitele elec-
tronice, constituie un sistem de conducere locală (S.C.L.). Într-un robot există atâtea
S.C.L.-uri câte cuple cinematice conducătoare trebuie comandate. S.C.L.-urile sunt reali-
zate cu o structură de sistem de reglare automată (S.R.A.).
Page 34
Observaţţie:
 S.RR.A. este unu sistem în care re ă fără interrvenţie din
eglarea se face automat, adică n
extterior, spre
e scopul fin
nal urmărit..

Fig.4.13. Schema bloc generală


g a sistemulu
ui de acțion
nare
Sistemul de
d acţionare se compune din maim multe S.C.L.-uri
S î funcţie d
în de numărull de grade
de mobilittate ale sisstemului me
ecanic.

Observaţţie:
 În fig.4.13.
f s--a reprezen gur S.C.L. (S.R.A.) şi
ntat un sing ş s-a indica
at cu ”×6” faptul
f că
în sistemul
s dee acţionare
e există 6 astfel
a de S.C.L.-uri
S deoarece s--a presupuus că ro-
bottul are 6 axxe.

Un S.C.L. este con ndus de că ătre un coontroler electronic (numit


( Controler de e Ax) reali--
zat cu miccroproceso or sau micrrocontrolerr. Acesta re ealizează funcţia
f de regulator local:
1. preia mărrimile pres scrise (po za și eventtual și acce
oziţia, vitez eleraţia) de
e la blocull
Generato or de traiecctorie al Sistemului
S de coman ndă;
2. preia informaţia cu privire la mişcarea
m executată
e î realitate
în e de eleme entele me--
canice (ca are este mărimea
m de reacţie), de la trad ductoarelee aferente (de exem--
plu poziția
a ”curentă”” sau vitezaa ”curentă””);
3. calculează ă abaterea a (eroarea) dintre mă ărimile presscrise şi ce
ele de reaccţie;
4. calculează ă mărimea de comandă cu care c se corectează a abaterea; calculul
c se
e
efectueazză cu o fo ormulă numită algo oritm de reglare
r (p
proiectat de ingineriii
automatişşti) utilizând
d valoareaa curentă a abaterii;
5. transmite mărimea de comand dă ”circuitelor de putere”
p şi p
prin aceastta motoru--
lui, pentru
u a imprima a elemente elor cupleloor cinemattice conduccătoare o mişcare în n
sensul anulării abate erii.

Page 35
Motorul este ”alimentat” cu energie prin intermediul CIRCUITELOR DE PUTERE,
specifice tipului de motor utilizat. Circuitele de putere, alimentează motorul cu o ”energie”
mai mică sau mai mare, în funcție de valoarea actuală a mărimii de comandă. Dacă se
modifică valoarea mărimii de comandă (calculată de controler la perioade de timp egale),
se modifică și cantitatea de energie cu care este alimentat motorul. În consecință, se
modifică viteza motorului (sau turația în cazul motoarelor rotative) respectiv viteza de
mișcare a elementului mecanic.

Circuitele de putere modifică cantitatea de energie (electrică, hidraulică sau


pneumatică) cu care este alimentat motorul în unitate de timp, prin:
 modificarea curentului I care trece prin motorul electric în unitate de timp;
 modificarea debitului Q a lichidului care intră și/sau care iese din motorul hidraulic;
 modificarea debitului Q a aerului comprimat care intră și/sau care iese din motorului
pneumatic.

Conform fig.4.13., pe lângă motorul de acționare, o parte din transmisie şi frână respec-
tiv reductor se consideră incluse în sistemul de acţionare. Astfel, prima roată dinţată,
prima faţă a unei frâne, fulia conducătare a unei curele dințate etc. – după caz, se
consideră că fac parte din sistemul de acţionare.

Pe baza celor de mai sus, fiecare S.C.L. este coordonat de câte un controler de ax
(implementat cu microprocesor sau microcontroler). Numărul controlerelor de ax este în
funcţie de numărul de grade de libertate ale robotului (tipic 6), fig.4.14. Fiecare controler
de ax primește, la perioade de timp egale, mărimile prescrise (adică poziţia, viteza și
eventual și acceleraţia) de la blocul de generator de traiectorie al sistemului de comandă.
Astfel, deși generarea traiectoriei se realizează în mod centralizat (în cadrul sistemului de
comandă), ”conducerea” nemijlocită (adică directă) a mișcărilor se realizează în mod des-
centralizat, individual la nivelul fiecărui S.C.L.

Fig.4.14. Sistemul de conducere distribuită a axelor


Observație:
 O astfel de structură de ”conducere” se numește sistem conducere distribuită.

Există şi situaţii în care se foloseşte un singur microprocesor/ microcontroler pentru con-


ducerea nemijlocită a mai multor axe, caz în care structura ierarhică se schimbă (vezi
fig.4.15). În acest caz sunt necesare microprocesoare/ microcontrolere performante

Page 36
(scumpe) şi trebuie elaborat un software mai complicat pentru acestea (costuri suplimen-
tare de manoperă).

Fig.4.15. Conducerea mai multe axe cu un acelaşi microprocesor

Page 37
3.2. Sistemul de acționare electrică

Sistemul de acţionare electrică este cel mai răspândit în cazul roboţilor, circa 80% dintre
roboţi fiind cu acţionare electrică. Acest lucru se datorează următoarelor argumente:
1. Disponibilitatea cvasigenerală a energiei electrice în mediile industriale;
2. Robusteţea motoarelor electrice (motoarele de gabarit relativ mic permit dezvol-
tarea de cupluri relativ mari, admit supraîncărcări în limite destul de largi);
3. Posibilitatea de racordare simplă a motoarelor la sursa de energie;
4. Dinamică foarte bună(motoarele electrice au inerţi mici şi timp de răspuns
5. scurt la comenzile aplicate);
6. Manoperă de întreţinere mică;
7. Randament energetic ridicat;
8. Cost mai redus.
Observații:
 Sistemul de acţionare hidraulică este folosit mai ales în aplicaţiile cu sarcini mari.
 Sistemul de acţionare pneumatică permite numai acţionări simple (pornire, oprire,
schimbare sens de mișcare) şi se folosesc mai ales la manipulatoare simple.

Fig.5.1. Construcția unui motor de curent continuu


În cazul acţionărilor electrice cel mai frecvent se utilizează motorul de curent continuu
(DC motor), deoarece acesta prezintă avantajul modificării simple a turaţiei la modificarea
tensiunii aplicate la borne, fig.5.1. Construcția și modul de funcționare este prezentată în:
https://www.youtube.com/watch?v=LAtPHANEfQo

Alte tipuri de motoare utilizate la acționarea electrică a roboților industriali sunt:


1. Servomotor de curent continuu (DC servomotor);
2. Motor de curent continuu fără perii (DC brushless motor);
3. Servomotor de curent alternativ (AC servomotor).

În unele cazuri, în aplicații de mică putere, poate fi utilizat pentru acționarea roboților
și motorul pas cu pas (DC stepping motor). Însă, datorită faptului că au o serie de deza-
vantaje, de exemplu că nu pot fi încărcate la sarcina maximă pentru care au fost proiectate
(deoarece la încărcare mare pierd paşi), motoarele pas cu pas nu sunt recomandate pen-
tru aplicații industriale. Ca urmare, roboți echipați cu motoare pas cu pas se găsesc doar
în învățământ și în cercetare.
Page 38
În cazul utilizării motorului de curent continuu, sistemul de acționare al robotului (la nivelul
unei cuple cinematice), conține de regulă un traductor de poziție și un traductor de viteză
(de exemplu tahogenerator). Ambele sunt legate de obicei de axul transmisiei sau de axul mo-
torului. Ele furnizează informații despre mişcarea realizată în realitate. Motorul, împreună cu
traductoarele și cu controlerul de ax formează un sistem de reglare automată a poziției
și a vitezei.

3.2.1. Controlul nemijlocit al mișcărilor la nivelul unei cuple cinematice

Controlul nemijlocit (adică direct) al mișcărilor, la nivelul unei cuple cinematice (sau
articulații), se realizează prin intermediul controlerului de ax. În fig.5.2. este prezentată
schematic o parte din dispozitivul de ghidare (concret numai o cuplă cinematică), în care
un motor electric de acționare (printr-o transmisie și printr-un reductor nereprezentat în
figură) pune în mișcare segmentul (elementul) 2 față de segmentul (elementul) 1. În
urma acestei mișcări se modifică unghiul  dintre aceste două segmente.

Fig.5.2. Principiul controlului nemijlocit în buclă închisă


al mișcărilor la nivelul unei cuple cinematice
În majoritatea cazurilor, controlul nemijlocit al mișcărilor se realizează în ”buclă
închisă”, fig.5.2. În aceste cazuri mișcarea este urmărită/măsurată cu ajutorul unor tra-
ductoare. În varianta clasică se utilizează un traductor de poziție și un traductor de viteză.
Traductorul de poziție furnizează informații despre poziția ”curentă” iar traductorul de
viteză informații despre viteza ”curentă”. Mărimile respective sunt preluate, la perioade
de timp egale, de către controlerul de ax.

Controlerul de ax, tot la perioade de timp egale, primește de la ”generatorul de traiectorie”


(din cadrul sistemului de comandă), mărimile referitoare la poziția și viteza ”dorită” a
elementului 2 pus în mișcare. Aceste mărimi sunt obligatorii pentru controlerul de ax, ca

Page 39
urmare ele se numesc: ”poziția prescrisă” și ”viteza prescrisă”. Conform fig.5.2.,
controlerul de ax (pe baza unui ”algoritm de reglare”), ”compară” informația privind poziția
prescrisă cu informația privind poziția curentă și determină diferența între ele, obținând o
așa-numită ”abatere” sau ”eroare de poziție”. De asemenea, compară informația privind
viteza prescrisă cu informația privind viteza curentă și determină diferența între ele,
obținând ”eroarea de viteză”.

În final, pe baza legilor de reglare implementate la nivelul controlerului de ax, se determină


”mărimea de comandă motor”, astfel încât eroarea de poziție și eroarea de viteză să
devină cât mai mică (chiar și 0 dacă este posibil). Apoi mărimea de comandă motor este
preluată de ”circuitele electronice de putere”, numit general (în cazul sistemului electric de
acționare): ELECTRONICĂ DE PUTERE. În cazul motoarelor de curent continuu, blocul
de ”electronică de putere” poate fi de exemplu un variator de tensiune continuă (VTC).
Observații:
1. Mărimea de comandă motor se transmite, de la controlerul de ax către blocul de
electronică de putere, (în majoritatea cazurilor) fie printr-o tensiune analogică de
±0...10V, fie printr-un semnal PWM cu factorul de umplere proporțional cu valoarea
mărimii de comandă.
2. Blocul de electronică de putere realizează alimentarea motorului, cu curent electric,
în funcție de valoarea curentă a mărimii de comandă motor.

În fig.5.2. se pot identifica două trasee informaționale de măsurare si de elaborare


mărime de comandă, aferente realizării mișcărilor în poziția prescrisă, cu viteza
prescrisă. Ele se închid sub forma unor bucle de reglare. Astfel, în fig.5.2. pot fi identificate
două bucle închise de reglare:
1. bucla de reglare a poziției (care se închide prin motorul de acționare,
elementul 2 și traductorul de poziție) și o
2. bucla de reglare a vitezei (care se închide tot prin motorul de acționare,
elementul 2 și traductorul de viteză).

În cazul motoarelor de curent continuu, turația motorului depinde de tensiunea medie a


curentului electric aplicat pe bornele motorului. Astfel la creșterea/scăderea valorii mărimii
de comandă crește/scade tensiunea medie aplicat pe bornele motorului și ca urmare
crește/scade turația motorului.

Un exemplu de utilizare a unor motoare DC de dimensiuni mici, în aplicații de tip ”hobby”


cu arduino este prezentat în:
https://www.youtube.com/watch?v=I7IFsQ4tQU8

Controlul nemijlocit al mișcărilor în ”buclă deschisă” este caracterizată prin lipsa


traductoarelor (de poziție și de viteză), fig.5.3. Ca urmare controlerului de ax sunt furnizate
informaţii, numai de către generatorul de traiectorie: informații referitoare la poziţia
”prescrisă” și viteza ”prescrisă”. În lipsa traductoarelor, controlerul de ax nu primește
informații referitoare la ”poziția curentă” și nici referitoare la ”viteza curentă”. În acest caz,
controlerul de ax elaborează mărimea de comandă, tot la perioade de timp egale, dar la
elaborare ia în calcul doar valoarea prescrisă a poziției și a vitezei din perioada curentă și
din perioada anterioară. Mărimea de comandă este aplicată pe ”bornele” motorului tot prin
intermediul blocului numit ”electronică de putere” dar traseul informațional de elaborare a
mărimilor de comandă aferente realizării mișcărilor în poziția prescrisă, cu viteza prescrisă,
nu se închid sub forma unor bucle (ele rămân deschise).
Page 40
Fig.5.3.Principiul controlului nemijlocit al mișcărilor în buclă deschisă
Un astfel de sistem de control nemijlocit (direct) al mișcărilor se poate implementa doar
dacă motorul electric de acționare este unul ”special” și execută fidel ”comenzile date”
(prin valoarea mărimii de comandă), privind mișcarea în poziția ”prescrisă” cu viteza
”prescrisă”.

Fig.5.4. Construcția unui motor electric pas cu pas


Astfel de motoare sunt de ex. motoarele electrice pas cu pas (DC stepping motor). În
fig.5.4. s-a prezentat un motor pas cu pas cu rotorul constituit dintr-un magnet permanent,
cu două coroane dințate. Dinţii unei coroane constituie polii sud, iar dinţii celeilalte
coroane, polii sud. Dinţii celor două coroane sunt decalaţi spaţial, astfel încât, dacă un
dinte al unei coroane se găseşte în dreptul unui dinte statoric, dintele rotoric de pe cealaltă
coroană să se afle la jumătatea unghiului dintre doi dinţi statorici. În stator există un număr
de înfășurări, care alimentate pe rând cu curent continu, devin electromagneți. Câmpul
magnetic generat de un electromagnet, cu polaritate N (Nord) sau S (Sud) acționează
asupra câmpului magnetic al rotorului și cauzează astfel o mișcare de rotație exact cu un
pas. Mărimea ”pasului” depinde de numărul total al dinților din rotor și stator. Dacă se
Page 41
alimenteaază ”următtoarea” înffășurare attunci mișc carea contiinuă cu înncă un pas s (încă un
n
dinte). Allimentareaa pe rând d a înfășu urărilor sta
atorice esste realiza
ată de un n bloc de e
”electroniccă de pute
ere”, speciffică motoa
arelor pas cu
c pas. Exxistă circuitte integrate
e dedicate
e
comenzii motoarelo or pas cu pas. Com manda acestora se realizează prin impulsuri de e
tensiune.

La fiecaree impuls ses realizea ază o mișcare de ro otație a motorului


m e
exact cu unu pas (de e
exemplu cuc 0,9). Astfel,
A cunooscând valoarea prec crisă a pozziției în perrioada cureentă și din
n
perioada anterioară
a , se poate calcula (prin diferențță) ”unghiu
ul” de rotațție care trebuie să fie
e
realizată (de exemplu 9) și astfel rezzultă numă ărul de impulsuri (de e exemplu u 10) care e
ă fie aplica
trebuie să ate pe bornnele motorului. Din vitezele preecrise în pe erioada curentă și în n
perioada anterioară ă se poate or. Astfel, în cazul motoarelor
e stabilii frrecvența impulsurilo m r
electrice de
d tip pass cu pas, mărimea
m d comand
de dă este dee fapt un ”tren de im mpulsuri”,
care se aplică
a pe ”înfășurărrile” motorrului prin intermediu ul blocului de ”electtronică de e
putere”.

Avantajul motorulu ui electric


c pas cu pas
p rezultă ă din simplificarea Sistemului ded Condu--
cere Loca ală (S.C.L)) prin lipsa
a traductoa
arelor. Penntru comanndă se pott utiliza cirrcuite inte--
grate specifice ieftinne. Dezava antajul maajor al unuui motor electric
e pa
as cu pas este
e faptull
că uneori la sarcini mari pierd d paşi (de exemplu se emit 10 00 de impu ulsuri dar de fapt se e
realizează ă o mișcarre cu numa ai 99 de pași).
p Din acest
a motivv nu se uttilizează la roboții cuu
aplicații in
ndustriale.
Observațție:
 Pentru elimin narea dezaavantajului, cu pierdeere de pașși, se poate
e utiliza un
n traductorr
de poziție pe plete a pașilor. Astfe
entru contrrolul efectuării comp el însă creește prețull
C.L.-ului și se complică program
S.C mul/algoritm
mul de commandă.

Fig.5
5.5.Constru
ucția unui servomoto
or DC
Un alt tip de motor pentru carre se poatte impleme enta un co ontrol nemiijlocit al miișcărilor în
n
”buclă desschisă” estte servom
motorul de curent co ontinuu (D DC servom motor), fig..5.5. Acestt
motor aree la bază un motor de e curent co ontinuu fărră perii carre este com
mpletat cu un senzorr
e și cu o serie
de poziție s de cirrcuite elecctronice pentru coma andă localăă. (Uneori conține în n
plus și un reductor de
d turație, caz în care e are denuumirea de servo-mec
s canism).

Cel mai comun tip de servvomotor utilizat


u la roboți este servom
motorul de
d rotație e
poziționa
ală. Acesta ă, permite doar o miș
a, de regulă șcare cu maxim
m 180 de grade la arborele
e
Page 42
de ieșire din motor, mișcare controlată precis cu senzorul de poziție și cu circuitele elec-
tronice din interiorul motorului. Aceste circuite electronice realizează de fapt funcția de
regulator local de poziție. Din exterior, de exemplu de la controlerul de ax, se comandă,
sub forma unui semnal PWM, valoarea unghiului în care trebuie trebuie să ajungă arborele
de ieșire. Mișcarea din poziția unghiulară curentă, până în poziția ”prescrisă” este
executată automat, sub controlul circuitelor electronice. Controlerul de ax nu primește
informații despre poziția sau viteza ”curentă” și nici despre realizarea cu succes a mișcării
până în poziția ”prescrisă”. Ca urmare, asemănător cu un motor pas cu pas, controlul
mișcării este unul în buclă ”deschisă”.

Un alt tip de servomotor utilizat la roboți este servomotorul cu rotație continuă.


Poate să fie cu curent continuu (DC) sau cu curent alternativ (AC). Acesta, este dotat de
asemenea cu un senzor respectiv cu o serie de circuite electronice de control și permite
mișcarea de rotație cu turație/viteză controlată precis. Dar nu permite controlul poziției un-
ghiulare. Viteza de rotație este controlață și menținută la valoarea comandată, de circuitele
electronice din interioul motorului. Aceste circuite electronice realizează de fapt funcția de
regulator local de viteză. Din exterior, de exemplu de la controlerul de ax, se comandă va-
loarea turației/vitezei arborelui de ieșire care este executată automat. Controlerul de ax nu
primește informații despre viteza ”curentă”.

Fig.5.6. Principiul controlului nemijlocit al mișcărilor în cazul servomotorului


DC sau AC cu rotație continuă
Cu un astfel de servomotor se poate ”economisi” deci bucla de reglare ”inchisă” a vitezei
dar rămâne necesară în continuare implementarea unei bucle ”inchisă” de reglare a po-
ziției. În acest scop, se poate monta în plus un senzor de poziție (undeva pe axul transmi-
siei din cadrul cuplei cinematice) sau se poate utiliza chiar semnalul senzorului de poziție
din interiorul motorului. Astfel, la utilizarea unui servomotor cu rotație continuă, controle-
rul de ax va realiza controlul în buclă închisă doar a poziției, până când controlul vite-
zei rămâne în buclă deschisă, dar cu control local și precis de către ”servomotor”, fig.5.6.
Un exemplu de utilizare a unor servomotoare (cu rotație pozițională respectiv cu rotație
continuă), de dimensiuni mici, în aplicații de tip ”hobby” cu arduino, este prezentat în:
https://www.youtube.com/watch?v=kUHmYKWwuWs&t=2091s

Page 43
4. SISTEMUL DE COMANDĂ AL UNUI ROBOT INDUSTRIAL
Sistemul de comandă al unui robot are rolul de a controla în timp real operațiile
executate de acesta în baza unui program, în strânsă corelație cu modificările din spațiul
său de lucru. Sistemul de comandă transpune ”programele” aferente derulării aplicațiilor
robotizate (în continuare ”programe de aplicație”), în mișcări relative ale elementelor
cuplelor cinematice conducătoare.
Principalele funcții pe care trebuie să le îndeplinească sistemul de comandă sunt:
 Funcția de procesare a datelor interne (provenite de la programe de aplicație) și a
datelor externe (provenite de la senzori și traductoare) respectiv de la dispozitivele
periferice (panou de învățare, panou operator etc.).
 Funcția de planificare a mișcărilor efectorului final, în concordanță cu
instrucțiunile de comandă din cadrul programelor de aplicație.
 Funcția de elaborare a ”comenzilor” către sistemele de conducere locale, din
cadrul sistemului de acționare, în vederea punerii în mișcare a cuplelor cinematice
conducătoare.
 Funcția de sincronizare a desfășurării mișcărilor robotului cu ”stațiile” sau
mașinile deservite.
 Funcția de dialog cu operatorul uman, în vederea creării și testării programelor
de aplicație.

Observație:
1. Traductoarele culeg informații care sunt legate de deplasări/mișcări ale cuplelor
cinematice.
2. Senzorii culeg informații care nu sunt legate de deplasări/mișcări ale cuplelor
cinematice (de exemplu starea închisă sau deschisă a dispozitivului de prehensiune
– gripper).

Sistemul de comandă al unui robot industrial, formează împreună cu sistemul de


acționare, sistemul de conducere. Astfel prin termenul de ”conducere” se va înțelege în
continuare: comandă + acționare.

Fig.7.1. Exemple de dulapuri cu echipamente electrice și electronice

Page 44
Sistemul de conducere este e impleme entat fizic cu echipaamente eleectrice şi electronice
e e
care, în majoritatea
m a lor, suntt introdusee într-un singur
s dulaap metalic,, denumit dulap cu u
echipame ente electrice şi ele
ectronice, fig.7.1. Nu u toate echhipamentele electrice
e se află în
n
acest dulaap:
• motoarele
m d acţionarre şi traducctoarele su
de unt amplasate pe sisttemul meca anic;
• se
enzorii sun
nt amplasaaţi în mediuul de lucru al robotulu
ui;
• pa
anoul de în
nvăţare esste exteriorr dulapului;
• pa
anoul operrator se afllă pe uşa dulapului.
d

4.1. Structura
a generală
ă a sistem
mului de co
onducere

În fig.7.2. s-a prezen


ntat schem
ma bloc gen nerală a sistemului de conduce
ere al unui robot cu 6
grade de mobilitate, cu acționaare electriccă.

Fig.7.2. Scheema bloc geenerală a sistemului


s de conduccere
dă și acțion
(comand dustrial cu acționare electrică
nare) al unui robot ind

Page 45
Sistemul de acționare, este format din 7 Sisteme de Conducere Locale (S.C.L). Fiecare
S.C.L. conține câte un Controlere de Ax, câte un modul de Electronică de putere și câte un
Motor de acționare cu traductoarele (de poziție și de viteză) aferente. În fig.7.2. s-a pre-
zentat ”varianta” în care 6 Controlere de ax și 6 module de Electronică de putere formează
”fizic” un singur Modul/Unitate de acționare (Drive Unit). Sistemul de acționare conține și
o ”axă auxiliară”, utilizată de exemplu pentru acționarea mișcării de închidere/deschidere a
dispozitivului de prehensiune. Controlerele de Ax din Modulul de acționare, primesc la pe-
rioade de timp egale, mărimile de prescriere (poziţia, viteza și acceleraţia prescrisă) de la
”blocul” Generator de traiectorie din cadrul sistemului de comandă.

”Blocul” Generator de traiectorie este o subrutină software a Controlerului de mișcare


(Motion Controller), din cadrul sistemului de comandă. Acest controller mai este numit și
Calculator de AXE. Funcția principală a acestui ”calculator” este elaborarea, din traiecto-
riile ”programate” ale punctului caracteristic (sau ale punctului de sculă), a traiectoriilor in-
dividuale de la nivelul cuplelor cinematice conducătoare. La perioade de timp egale,
transmite către controlerele de ax (din cadrul sistemului de acționare), mărimile de pre-
scriere (poziţia, viteza și acceleraţia prescrisă), rezultate din traiectoriile ”individuale” ela-
borate. Calculatorul de AXE, obținând și informațiile de ”reacție” (de la traductoarele de
poziție și eventual și de viteză), cunoaște în orice moment poziția și viteza fiecărui element
mecanic al dispozitivului de ghidare, pus în mișcare. Din aceste informații, pot fi calculate
(cu ajutorul subrutinelor software implementate în cadrul calculatorului de AXA), coordona-
tele carteziene ale situării curente, adică poziția și orientarea curentă a efectorului final.

Calculatorul de AXE (Controllerul de mișcare) este un sistem cu microprocesor sau mi-


crocontroler și are o arhitectură orientată pe comanda și controlul mișcărilor în timp real.
Există două implementări tipice pentru calculatorul de AXE:
1. Sub forma unui ”calculator” independent (de sine stătător) sau
2. Sub forma unui modul de extensie cu procesor propiu, al unui alt calculator din sis-
temul de comandă, numit Calculator PRINCIPAL.
În ambele cazuri, calculatorul de AXE este în legătură informațională și este subordonat
direct Calculatorului PRINCIPAL.

Calculatorul PRINCIPAL (Main Computer – MC) coordonează toate celelalte activități de


comandă. Calculatorul PRINCIPAL, în multe cazuri are arhitectura unui PC industrial (In-
dustrial PC) pe care este rulat un sistem de operare de tip Linux sau Windows. În afara
calculatorului de AXE, la calculatorul PRINCIPAL se conectează de regulă:
1. Un panou de învățare;
2. Un panou operator;
3. Un modul I/O (de intrări și ieșiri) digitale;
4. Un ”controller” SAFETY (de SIGURANȚĂ).

Panoul de învăţare

Specific pentru un echipament de conducere a unui robot este panoul de învăţare, pentru
care în literatura de specialitate se folosesc mai multe denumiri: panou de instruire,
modul de instruire, teaching box, teach pendant etc. Cu ajutorul panoului de învăţare
operatorul uman poate comanda ”manual” deplasările robotului către situările convena-
bile, executării operaţiilor tehnologice. După ce a deplasat manual robotul, operatorul
uman de regulă poate comanda depunerea în memoria sistemului de comandă a coordo-
natelor ţintă atinse de către elementele sistemului mecanic.

Page 46
În unele cazuri
c pano oul de învă ăţare este prevăzut numai
n cu o tastatură ă alfanume erică (litere
e
şi cifre) şi cu un afişşaj alfanummeric (fig.7
7.3.) În altee cazuri, la roboți maai evaluați, panoul de e
învățare este
e dotat și
ș cu displaay grafic (ffig.7.4.), respectiv cu un joystick (fig.7.5.) sau cu un n
mouse sp pecial 6D (fig.7.6.
( și 7.7.), cu care
c se pott comanda a mişcările sistemului mecanic.
Un astfel de panou de învățarre este folo osit în fazaa de prograamare a ro obotului câ
ând opera--
torul uma an învaţă robotul
r ce are de făccut şi întoc cmeşte pro ogramul de aplicație e, înscriindd
instrucţiunne după innstrucţiune. Un panou u de învăța are care permite
p și îîntocmirea, respectivv
editarea programulu
p ui de aplicaație, se nummește Con nsolă de programar
p re.

a) b
b)
ou de învățare cu tas
Fig.7.3.Pano ste și afișajj alfanume
eric
a) Robot
R Mitsu
ubishi RV-M1, b) Ro obot ESHE ED

a) b)
Fig.7.4.P nvățare cu taste și affișaj grafic
Panou de în
a Robot Fa
a) anuc, b) Ro
obot Coma au

Page 47
a) b)
Fig.7.5.Pa
anou de învvățare cu taste,
t aj grafic și jjoystick
afișa
a) Robot ABBB IRC5; b) Robot ABB IRB1400 0

7.6.Panou de învățarre cu taste, afișaj gra


Fig.7 afic și mousse 6D, robo
ot KUKA KRC1
K

Cu mouse e-ul 6D poot fi comandate cele 6 mișcări de d rotație (A1, A2, A A3, A4, A5 și A6) ale
e
articulațiilo
or (fig.7.8)) sau 3 miișcări de deplasare
d (ale puncttului sculă de pe flan nșa port –
EF), paralele cu axe ele X, Y și Z ale sisttemului de coordonatte cartezia an (legat de
e baza ro--
botului), reespectiv 3 mișcări de A, B și C) în
e rotație (A n jurul acesstor axe, fiig.7.9.

Page 48
Fig.7 afic și mousse 6D, robo
7.7.Panou de învățarre cu taste, afișaj gra ot KUKA KRC4
K

Fig.7.8. Cele 6 mișșcări de ro


otație ale articulațiilorr care pot fi
f comanda
ate cu mouse-ul 6D

Fig.7..9. Cele 6 mișcări


m care pot fi co
omandate în
î sistemull de coordo
onate carte
eziene

Page 49
Consola de programare este un panou de învățare ”inteligent”, ce asigură următoarele
funcţii principale:
• calibrarea axelor robotului (comandă de mișcare până în poziția de origine
mecanică);
• oprirea de urgenţă, activarea sistemului de acţionare în modul manual numai dacă
există confirmarea că terminalul este ţinut de operatorul uman;
• învăţarepoziţii prin operaţii de poziţionare în mod manual, cu programarea
parametrilor de mișcare/deplasare: tip de deplasare, viteză, acceleraţie;
• editarea instrucţiunilor programelor de aplicație, în scopul corectării şi finisării
acestora în conformitate cuparametrii reali ai procesului de automatizare;
• realizarea operaţiilor de intrare - ieşire prin citirea intrărilor, forţareaieşirilorşiafişarea
stării acestora;
• încărcarea din şi salvarea în memoria sistemului de comandă a programelor de
”firmă” (sistemul de operare, drivere) şiaplicaţie;
• testarea programelor aplicaţie în modul automat: pas cu pas sau în ciclu continuu
cu analizarea automată a ciclului de lucru programat şi furnizarea caracteristicilor
principale ale acestuia în vederea optimizării;
• monitorizarea stării variabilelor din program pentru facilitarea operaţiilor de
depanare a programelor aplicaţie, etc.

Panoul operator

Panoul operator este amplasat pe uşa dulapului şi este compus din întrerupătorul general
de energie, din butoane pentru comenzi, selectoare regim de funcționare respectiv din
becuri de semnalizare (stare de funcționare), fig.7.10. Exemple de butoane/selectoare:
• Buton STOP de Urgență numit și ”ciupercă de avarie”;
• Selector activare panou cu cheie;
• Buton comandă alimentare sistem de acționare cu energie (Pornire/oprire acționări)
• Selector pentru stabilirea regimului de funcționare manual/automat;
• Butoane pentru pornirea (START), oprirea (STOP) sau pentru resetarea (RESET)
programului de aplicație;
• Contor pentru afișare durată totală de funcționare etc.

a) b)
Fig.7.10.Panou operator controller KRC5 ABB (a) și R-J3 FANUC (b)

Page 50
Modulul I/O

Modulul I/O (de intrări - Input și ieșiri - Output) digitale, realizează interfațarea
Calculatorului Principal cu: • senzorii plasați în spațiul de lucru al robotului;
• elemente de execuție simple, care pot fi comandate direct de către echipamentul de
comandă al robotului;
• sincronizarea derulării programului de aplicație cu stările de funcționare ale stațiilor
și/sau ale mașinilor deservite.

Modulele I/O în general au număr relativ mic de intrări și ieșiri digitale (de exemplu 16
intrări și 16 ieșiri, fig.7.11). Pentru conectarea la calculatorul principal se utilizează de
regulă legături de tip ”fieldbus”.

Fig.7.11. Exemplu de modul I/O (utilizat la controllerul IRC5 al firmei ABB)


În cazul în care este necesar un număr ”mare” de intrări și ieșiri digitale, poate fi integrat în
sistemul de comandă al robotului, în locul modulului I/O, un ”Automat Programabil” de tip
PLC (Programmable Logic Controller).

Controller-ul SAFETY

Controller-ul SAFETY monitorizează starea unor dispozitive electrice de ”intrare”, ca:


1. butoane de oprire de urgenţă, plasată pe panoul operator, pe panoul de învățare
precum și în diferite zone de lucru ale operatorului uman, în vecinetatea robotului;
2. senzori (sau microîntrerupătoare) de la ușile de acces în zona/spațiul de lucru al
robotului,
3. bariere optice de siguranţă (denumite și ”cortine luminoase”), folosite pentru a
proteja operatorul uman din vecinătatea robotului aflat în mișcare, care prezintă
riscul de a provoca vătămări operatorilor, în zone ce necesită protecție sau
monitorizare.Acest tip de elemente de securitate sunt dispozitive de protecție
electrosensibilecare sunt alcătuite dintr-un emițator (sender) și un receptor
(receiver) și au rolul de a crea o zonă controlată de limitare a accesului. In cazul în
care cel puțin una dintre razele barierelor este întreruptă, barierele transmit un
semnal de oprire necesar întreruperii imediate a mișcării robotului.

Page 51
Fig.7.12.Ilustrarea rolului Controller-ului Safety în crearea unor zone de protecție pentru
operator uman cu oprire imediată a robotului în caz de pericol
Observații:
1. Accesul operatorului uman, în timpul funcționării, în ”zone de protecție” conduce la
blocarea mișcării robotului de către Controlerul Safety.
2. La acționarea unui buton de STOP de Urgență, mișcarea robotului este oprită și prin
mijloace hardware directe, adică prin întreruperea alimentării acționărilor cu energie
electrică.

Blocul de contactoare și Modulul de comandă contactoare

Blocul de contactoare are rolul alimentării sistemului de acționare cu energie electrică.


Această alimentare se realizează, prin intermediul unor contactoare electro-mecanice, de
obicei printr-o comandă manuală a operatorului uman (prin acționarea manuală a unui
buton), fie de pe panoul de comandă, fie de pe panoul de învățare. Blocul de contactoare
este interfațat de obicei cu un ”Modul de comandă contactoare”.

Observații:
1. La punerea sub tensiune (prin întrerupătorul general), a dulapului cu echipamente
electrice și electronice, de regulă devine alimentată doar partea de comandă.
Calculatorul Principal funcționează, Panoul de învățare funcționează, dar partea de
”forță” (asociată acționării/alimentării motoarelor prin electronica de putere), de
regulă rămâne fără energie electrică deci nu este posibilă nici o mișcare, de la nici o
cuplă cinematică. Această stare de funcționare este identică cu starea de urgență
cauzată de acționarea manuală, de către operatorul uman, a butonului de STOP de
Urgență.
Page 52
2. După ”cuplarea forței” (adică după alimentarea sistemului de acționare cu energie
electrică), Calculatorul de AXE (Controlerul de mișcare) preia controlul mișcărilor de
la nivelul cuplelor cinematice și astfel realizează (în lipsa altor comenzi),
menținearea activă ”în poziție”, a elementelor mecanice.
3. Orice acționare a butonului de STOP de Urgență cauzează ”căderea forței”, adică
întreruperea alimentării sistemului de acționare cu energie electrică, prin Blocul de
contactoare.

Exemple de dulapuri cu echipamente electrice și electronice

Exemplu nr.1.Dulapul cu echipamente electrice și electronice al controllerului ABB IRC5

Fig.7.13. Vedere din față

Fig.7.14. Vedere interior stănga

Page 53
F
Fig.7.1.5. V
Vedere inte
erior dreaptta

Fig.7.16. Echipam
mentele de
e pe ușa du
ulapului

Exemplu nr.2.Dulapul cu echip


pamente electrice și electronice
e al controlller-ului Ku
uka KRC2

Fig.7.16. Co
ontroller-ul Kuka KRC
C2

Page 54
Fig.7.17. Arhitectura de principiu a Controller-ului Kuka KRC2
În cazul Controller-ului Kuka KRC2, sistemul de acționare conține 6+1 module
independente de acționare, de tip servo (KSD – KukaServo Drive). 6 module KSD pentru
cele 6 articulații ale robotului și 1 modul KSD pentru o axă auxiliară.

a) b)
Fig.7.18.Placa multifuncțională MFC (a) și Controllerul de mișcare servo DSE (b)
Calculatorul ”Principal” are la bază un hardware de PC și are integrat/conține atât
”controllerul de mișcare” (aferent calculatorului de AXE) cât și ”modulul I/O”. Integrarea

Page 55
este realizată cu o placă multifuncţională MFC (Multi-Function Card) care se introduce
pe magistrala PCI a plăcii de bază. Placa MFC este prevăzută cu un procesor de semnale
digitale DSP (Digital Signal Procesor) care transformă PC-ul într-un controler industrial
numit PC INDUSTRIAL. Pentru comanda modulelor de acționare servo KSD, este utilizată
un Controller de Mișcare de tip Servo (DSE - Digital Servo Electronics) care este cuplat la
placa MFC. În această configurație, PC-ul INDUSTRIAL formează sistemul de comandă
alrobotului.

Fig.7.19. Modul de acționare servo KSD (KukaServo Drive)


Pe calculator este rulat (în paralel cu Windows), un sistem de operare în timp real:
VxWorks, care este utilizat pentru toate task-urile de timp real cum sunt: generarea
traiectoriei; procesarea comenzilor şi procesarea informaţiilor provenite de la interfeţe
periferice (senzori).

Page 56
4.2. Metode de comandă a roboților industriali

4.2.1. Clasificarea metodelor de comandă după modul de execuţie al deplasării

După modul de execuţie al deplasării există următoarele metode de comandă:


 comandă secvenţială,
 comandă punct cu punct,
 comandă multipunct şi
 comandă pe traiectorie continuă.

4.2.1.1.Comanda secvenţială permite realizarea mişcărilor relative ale elementelor cuple-


lor cinematice conducătoare în mod succesiv, simultan existând mişcare doar într-o singu-
ră cuplă cinematică. De exemplu, e cazul unui robot TTT (adică cu 3 mișcări de translație),
la care deplasarea punctului caracteristic între punctele 1 şi 2 (fig.9.1.) se realizează
succesiv: întâi se realizează o translaţie paralelă
cu axa OX până în punctul 1' apoi o translaţie
paralelă cu OY până în punctul 1'' şi în sfârşit
ultima translaţie paralelă cu OZ până în punctul 2.
Comanda secvenţială prezintă avantajul unei
conduceri simplificate: la un moment dat este
comandată doar o singură axă. Când mișcarea de
la nivelul axei curente s-a terminat, comanda este
comutată automat la o altă axă. Dezavantajul
constă în faptul că deplasarea până la punctul
ţintă 2 durează foarte mult (în timpul deplasării u-
nei cuple celelalte stau), deci rezultă o productivi-
tate scăzută. De regulă comanda secvenţială este
utilizată la roboţi simplii şi la manipulatoare, iar
punctele ţintă sunt învăţate.
Fig.9.1.
Un exemplu de manipulator simplu, cu 2 axe (X și Z), cu comandă secvențială este
prezentat în:
https://www.youtube.com/watch?v=aOoXPOzzk0o

4.2.1.2.Comanda punct cu punct (PTP - Point To Point).

La acest mod de comandă singura condiţie


impusă este ca traiectoria să nu fie una de
coliziune. Ne interesează doar trecerea obliga-
torie a punctului caracteristic prin punctele 1 şi 2
(fig.9.2.).

Mişcările pe fiecare axă încep deodată şi se


termină deodată. Astfel, mişcarea având loc
simultan pe toate axele, se obţine o creştere a
productivităţii, dar traiectoria reală obţinută este
una oarecare, imprevizibilă, greu exprimabilă
matematic şi cu un aspect absolut oarecare
pentru operatorul uman, fig.9.3.
Fig.9.2.
Page 57
3.Traiectoriia reală (effectivă) obțținută la co
Fig.9.3 omanda PT
TP la mișccarea din P1
P în P2
Comanda a punct cu punct, de cele mai multe
m ori, este
e corelattă cu programarea prin
p învăţa--
re când se execută o dată pro ocesul tehnologic pe entru învăţaare şi se m
memorează ă direct, în
n
coordonatte ale cup plelor cinematice conducătoare e, punctele obligato art, ţintă şii
orii (de sta
via). La "redare" se e culege câte
c o ”fun
ncţie de co onducere”,, separat p pentru fiec
care cuplă ă
cinematică conduccătoare, şi se reprroduce tre ecerea ob bigatorie pprin acestte puncte e
”memoratte”. Traiecttoria rezulltată, pentru mișcare ea între do ouă puncte consecu utive, va fii
una arbitrrară. De fapt, nu ne in
nteresează ă traiectoria ”reală”, între
î două puncte co onsecutive,
ci numai trecerea
t și/sau oprirea, cu o precizie
p corespunzăto oare, prin punctele respective.
r
Această metodă
m estte cea folosită la sudarea caros seriilor de autoturism
a me.

Fig.9.4. Exemplu de utilizarre metodă de comand


dă punct ccu punct
În fig.9.4.. s-a prezzentat un exemplu
e de utiliza
are a meto odei de c comandă punct cu u
punct. În n cadrul ap plicației, un robot industrial prreia obiecttele, care sosesc pe e o bandă ă
transportooare X, le ridică
r și le așează pe e banda traansportoarre Y. Puncctul 1 este punctul de e
preluare a obiectulu ui de pa ba anda X (nu umit și punct de START), iar pu unctul 4 es ste punctull
de așezarre pe band da Y (puncttul ȚINTĂ, în care tre ebuie aduss obiectul). Punctele 2 și 3 suntt
necesare pentru ridiicarea obie ectelor la o înălțime corespunză
c ătoare (2) respectiv pentru
p a le
e
deplasa obiectele
o în
ntr-un puncct deasuprra punctulu ui de așeza are (3). Punctele 2 șii 3, numite e
și puncte ”via” (prinn care treccerea este obligatorie e), sunt asstfel stabilite încât, chiar
c dacăă
traiectoria
a nu este controlată ă între dou uă puncte consecutiive, totuși să fie evitată orice e
coliziune a obiectu ului manipu ulat cu re estul obiecctelor din spațiu. Cu u linie con ntinuă s-aa

Page 58
reprezentat traiecto
oria idealăă (cea pro ogramată), iar cu linnie puncta
ată traiecto
oria reală,
specifică metodei dee comandă ă punct cu punct.
4.2.1.3.Coomanda multipunct
m t (MTP) esste asemă ănătoare metodei
m de
e comandă ă punct cu u
punct, cu diferența că
c în cazul MTP se memoreaz
m ă, sau se determină
d prin calcul, mult maii
multe pun ă utilizate în
ncte, decâtt cele două n cadrul metodei
m de comandă p punct cu punct.

Fig.9.4.
De exemp plu, pentru cazul aless, pe lângă ă punctele 1 și 2 sun
nt date şi punctele viaa (de la 11
la 15) prin
n care se impune
i tre
ecerea obligatorie a punctului caracterist
c ic (în drum
mul său dee
la 1 la 2),, fig.9.4. Mişcarea
M în
ntre două puncte
p via
a consecuttive se rea
alizează prrin metoda a
de coman ndă punct cu punct, fără o correlare a mişcărilor
m simultane dde la niveluul cuplelorr
cinematice conducă ătoare. Cu cât este maim mare numărul punctelor
p vvia, cu atât diferența
a
(abatereaa) dintre traaiectoria ideeală şi cea
a reală este ă.
e mai mică

În fig.9.5. s-a reprezzentat depplasarea punctului ca


aracteristicc din ”poz 1” în ”poz z 2”, prin 3
respectiv 7 puncte via.
v Se ob bservă că diferența
d dintre
d traieectoria idea ală şi cea reală estee
mai mare în cazul utilizării a 3 puncte via
a decât în cazul utilizzării a 7 puncte via.

Fig.9.5.
bținute prin două metode:
Poziţiile via pot fi ob
 prin n metoda învăţării, când poziţţiile via sun nt "memora ate" cu aju
utorul echip
pamentuluii
de comandă. Cel mai re elevant estte cazul voopsirii prin pulverizare
e:

La învăţare, un
u vopsito or cu experrienţă are pistolul
p mână şi de
de vopsit în m e mâna luii
estte legat şi efectorul final
f EF all robotului,, fig.9.6.b. Dacă braţţul robotului este dee
connstrucţie masivă
m se utilizează instalaţii master-sla ave în caree master-u ul este de
e
connstrucţie miniatură
m ş se leagă
şi ă nemijlocitt de mâna a vopsitoru
ului, iar sla
ave-ul este
e
rob
botul proprriu-zis caree execută aceeaşi mişcări ca a şi masteer-ul, fig.9.6.a. Cu o

Page 59
freccvenţă cuprinsă între 20200 0 [Hz] se memorea ază puncteele atinse la nivelull
fieccărei cuple
e cinematicce conduccătoare. Ac ceste punccte sunt sa
alvate în coordonate
c e
CCCC (adică în î coordon nate ale cuplelor cinnematice conducătoa
c are) La reddare auto--
ma ată, robotull execută singur
s trece
erea prin punctele
p învăţate.
 prinn metoda de calcull, când pozziţiile via sunt s determ
minate prin
n calcul (dee exemplu u
prinn calcul dee ”interpola ă) astfel înc
are” liniară cât ele să se situezee strict pe segmentul
s l
liniar definit de
d cele do ouă puncte (poz1 și poz2).
p De regulă pun nctele via se găsescc
la distanţe
d eggale, iar nu
umărul pun nctelor via se alege în
n mod con nvenabil în funcţie dee
preecizia ceruttă. De exe emplu, în cazul robotu ului RV-M11 Mitsubishhi se poate
e stabili un
n
num măr între 2 și 99 de puncte
p via..

Fig.9.6.

4.2.1.4.Me etoda de comandă


c pe traiecttorie continuă CP (C Continuouss Path) se e utilizeazăă
la acele operaţii
o teh
hnologice în
î care pun nctul caraccteristic tre
ebuie să urrmeze rigu uros, o tra--
iectorie an
nume în sppaţiul carte
ezian: traie
ectorie linia
ară (fig.9.7.), traiectorrie circularră (fig.9.8.))
ă un anumit profil com
sau traiecctorie după mplex. De exemplu la l operația a de sudură ă continuăă
după rost, debavura area etc. Este cel ma ai complex caz de com mandă a u unui robot industrial.

Fig.9.7. Fig.9.88.
De regulăă, se înce
earcă exp primarea analitică
a a traiectorie ei cartezieene impusse şi apoii
această expresie
e se
e foloseşte
e, în cadrul generatorrului de tra
aiectorie, pe
entru gene
erarea prin
n
Page 60
calcul a punctelor
p ”iintermedia
are” de pe traiectorie. Punctele
e intermed
diare suntt generate
e
la perioadde de timpp egale, re
espectiv în
n coordon nate cartezziene.

În cazzul mișcării punctuluii


caracteristic a unui
u obiectt
manip pulat, de exemplu u
între punctul 1 și punctull
2, de e-a lungul unei tra--
iectorrii liniare continue e
(fig.9.9.), puncttele inter--
media are genera ate vor fii
strict pe dreaptta definităă
de ce ele două puncte.
p În
n
majorritatea caz zurilor, în
n
timpuul mișcării se modifi--
că nuu numai poziția dar șii
orienttarea obiectului ma--
nipulaat.

Punctele inte ermediare e


sunt ggenerate, de obiceii
cu o frecvență cuprinsă ă
între 20 și
ș 200 [Hz]]. De exem mplu, la o frrecvență de
d 100 [Hz]], în fiecaree secundă ă sunt gen--
erate prin calcul 100 0 de punctte intermediare, prin care se re ealizează șși trecerea a punctuluii
caracterisstic, în drum
mul său sppre punctull 2. Uneori aceste pu uncte intermmediare su unt atât de
e
apropiate, încât traieectoria rea
ală este foa
arte ”aproppiată” de o traiectorie liniară con
ntinuă.

În foarte multe
m cazuuri expresiia analitică
ă a traiecto
oriei cartezziene impu
use este im
mposibil de
e
obținut saau este fo oarte comp plicată. În
n aceste cazuri
c se procedea ază la aprroximarea a
traiectoriiei impuse e, pe porţiu
uni cu segmente de curbe simple: drepte e, arce de cerc, arce
e
de parabo olă, fracţiun
ni de sinussoidă.

a) b).
F
Fig.9.10.
De exemplu, traiecctoria din fig.9.10.a,
f se aproximează pe e porțiuni ccu segmen nte dreptee
(AB, CD și
ș EF) și arce de cerrc (BC și DE),
D fig.9.10.b. Ca urrmare penttru segmen ntul AB see
programeează o mișccare pe traaiectorie co
ontinuă cu ”interpolarre liniară”, apoi pentrru arcul de
e
cerc BC o mișcare e pe traiecctorie continuă cu ”interpolare
” e circulară ă”, pentru CD tot o
mișcare pe ă cu ”interp
p traiectorrie continuă polare linia
ară” etc.
Page 61
4.2
2.2. Clasifiicarea me
etodelor de
e comandă după tip
pul coordo
onatelor utilizate
u

După tipuul coordona


atelor utilizzate în con
nducere ex
xistă metoddă de com mandă în coordonate
c e
CCC (coo ordonate ale
a Cuplelo or Cinemattice Condu ucătoare), respectiv
r m
metodă dee comandăă
în coordoonate cartteziene. În n primul caz
c generaatorul de traiectorie
e genereazză puncte
e
intermediaare de pee traiectoriie în coorrdonate CC CC iar în al doilea caz în coordonate
c e
carteziene
e.

Coordona atele Cup plelor Cin nematice Conducăt


C toare (pre escutat coordonate CCC), în n
cazul unu ui robot cu 6 grade de mobilitatte, sunt de
e fapt paraametrii poziționali q1,
q q2, q3,,
q4, q5 și q6 ai cup plelor cinemmatice con
nducătoaree. Fiecare parametru u poziționa al q indică,
fie poziția u ă a elemen
a liniară, fie poziția unghiulară ntului mecanic pus îîn mișcare e în cadrull
cuplei cinnematice, față
f de o poziție de referință. În funcție
e de tipul ccuplei cine
ematice, q
poate rep prezenta un n unghi θ – în cazul cuplelor de
d Rotaţie – sau o d distanţă d – în cazull
cuplele cinematice de d Translaţie.

Fig.9.11
1. Coordon
natele CCC q q4, q5, q6 în cazu
C q1, q2, q3, ul unui robo
ot de tip RRRRRR
În cazul unui
u robot de tip RRRRRRR (fig..9.11.) fiec
care cuplă cinematică ă conducă ătoare este
e
de tip Rottație, deci parametrii
p ză cu 1, 2, 3, 4, 5 şi 6.
poziționali se noteaz

În cazul unui robot industrial de


d tip TRTR RRR:
 Prima cuplă cinematică ă este de Translație,
T , deci para
ametrul pozzițional pe
entru cupla
a
nr.1. indică o distanță, deci
d se nottează cu d1.
 A doua
d ă este de tip Rotație, deci param
cuplă metrul pozițional pentru cupla nr.2.
n ă
indică
un unghi, decci se noteaază cu θ2.
 A treia
t cuplă cinematiccă este de Translație, deci para ametrul po
ozițional peentru cupla
a
nr.3
3. indică o distanță, deci
d se nottează cu d3 etc.

Astfel în cazul
c robottului TRTR
RRR, param
metrii poziți
ționali resp
pectiv coord
donatele CCC
C sunt:
 Pentru cupla nr.1: q1= d1; pentru cupla nr.4: q4= θ4;
 Pentru cupla nr.2: q2= θ2; pentru cupla nr.5: q5= θ5;
 Pentru cupla nr.3: q3= d3; pentru cupla nr.6: q6= θ6.

SuportCurs7
7. Page 62
Observațție:
 În poziția
p de referință,
r f
fiecare coo
ordonată q are valoarrea 0. O va ă
aloare a lui q, diferită
de 0, indică cu cât s-a deplasat (în cazul cuplei
c cineematice de e Translațiee) s-au cu u
cătt s-a rotit (în cazul cuplei cin nematice de Rotație e) elemen ntul mecan nic pus în n
mișșcare, față de pozițiaa sa de refe
erință. De exemplu: dacă
d q2=θθ2=-30 îns seamnă că ă
ele
ementul 2 ala dispozitiivului de ghidare se află într-o poziție rottită cu 30 în sens –
dică în sens invers triigonometric) față de poziția sa de referințță.
(ad

Coordona atele cartteziene suunt utilizate


e pentru in
ndicarea poziției
p și a orientăriii (adică a
situării) efectorului
e final (EF), față de sistemul ded coordo onate X0Y0Z0, legatt de baza a
robotului, fig.9.12.
 Poziția EF este
e dată de
d poziția punctului
p caracteristi
c c M (sau a punctulu ui de sculăă
CP - în cazzul mișcărrii fără obiect apuca
TC at), față de
e originea O0 a sisttemului de e
coo
ordonate X0Y0Z0. Pentru
P a in
ndica poziția punctulu ui caracterristic M, este utilizatt
un vector de poziție no
otat cu P . Proiecțiile
e acestui veector, pe a
axele axele e X0,Y0 șii
Z0, se noteazză cu px, py și pz și reprezintă
ă distanțele
e X, Y și Z ale punctu ului M fațăă
de O0, măsurată de-a lungul axellor X0,Y0 și ș Z0.
 Orientarea EFE este da sorilor n , o şi a ata
ată de proiiecțiile vers așați efecto
orului finall
F), pe axele X0,Y0 șii Z0. Notăm
(EF m proiecțiile versorului n cu nx, ny și nz; proiecțiile e
c ox, oy și
verrsorului o cu ș oz, respe
ectiv proiec orului a cu ax, ay și az.
cțiile verso

Fig..9.12. Definirea coord


donatelor carteziene
c ale situăriii EF
În conduccerea unuii robot ind dustrial pozziţia şi orie
entarea (addică situarrea) efectoorului final,
față de sisstemul de coordonatte legat de e baza robotului, este e exprimattă matema atic printr-o
o
așa-numittă matrice e de situa are T, fig.9
9.12. Acea astă matricce, de orddinul 4x4, conține în n
primele 3 linii și prrimele 3 coloane
c prroiecțiile nx, ny, nz, ox, oy, oz, ax, ay și az ale e
versorilor n , o şi a , iar în ultim
ma coloană e px, py și pz ale vecctorului de poziție P .
ă proiecțiile
În ultima linie se trecce totdeun na: 0, 0, 0 și
ș 1.

Page 63
Poziția și orientarea
a EF este cunoscută
c atunci dac
că toate elementele matricii de
e situare T
au valori numerice
n c
cunoscute.. De exemp
plu:

Deci în accest caz avvem:

nx=0,473; ox=0,1
181; ax=0,862; px=553,620;
ny= -0,826; oy=0,4
431; ay=0,362; py=478,620;
nz= -0,306; oz= -0
0,884; az=0,354; pz=803,033;

Toate elementele matricii


m de situare
s T sunt
s cții pe un sistem de ccoordonate
proiec e cartezian
n
(X0Y0Z0).) Ca urmaare elemenntele nx, ny, nz, ox, oy, oz, ax, ay, az reespectiv px, py și pz
sunt de fa
apt coordo
onatele carteziene ale
a situării EF.

Observațții:
1. La metoda de coman ndă secve ențială respectiv la
a metoda de comandă PTP,
traiiectoria punctului caracterist
c ic nefiind impusă, punctele intermed
diare suntt
gennerate dire
ect în coord
donate CC
CC.
2. La metoda de d coman ndă MTP, traiectoria
t ă
punctului caracteristtic trebuie să treacă
oblligatoriu printr-un nu
umăr de puncte
p via impuse, care sunt strict pe traiectoria a
carrteziană. În
ntre două puncte via a consecutive impusse, punctele intermediare suntt
gennerate de asemenea
a a în coordo
onate CCC.
3. La metoda ded comand dă pe traieectorie coontinuă, traaiectoria punctului ca
aracteristicc
fiind impusă în
î spațiul cartezian
c (de exempllu segment de dreap ptă, arc de cerc etc.),
toaate punctele interme ediare sunt generate e în coord donate carrteziene. După
D obți--
nerrea coordo
onatelor ca arteziene ale
a unui pu mediar, se rrealizează imediat șii
unct interm
calculul coord
donatelor CCC (q1, q2, q3, q4 4, q5 și q66) aferente. Aceste coordonate
c e
CC CC devin mărimile
m de
e prescrierre pentru Sistemele
S d Conduccere Locale
de e (S.C.L.),
în vederea
v puunerii în mișcare a ellementelorr dispozitivului de ghidare.

Pentru calcu ulul coord


donatelor CCC, din coordona atele cartteziene alle situării,
afe
erente unu ui punct inntermediarr, este ne evoie de implemen ntarea în memoria a
echhipamentu ului de comandă a Modelu ului Geom metric al rrobotului industriall
res
spectiv. Modelul
M geeometric al
a robotulu ui este foormat dinttr-o serie de relațiii
maatematice, prin care e se realizzează leg gătura întrre situareaa EF, ind dicată prin n
maatricea de situare T și structurra cinemattică concre etă a robo
otului indusstrial (tipull
cupplelor cinematice con nducătoaree, dimensiuni fizice constante,
c , distanțe și
ș unghiurii
varriabile ale elementelo
e or dispozitivului de gh
hidare, etcc.).

Page 64
6. PROGRAMAREA ROBOȚILOR INDUSTRIALI

6.1. Definirea termenului de ”programare”

Pentru definirea termenului de programare, să considerăm o aplicație de proces tehno-


logic robotizat de asamblare, fig.12.1. Este cazul unui robot industrial care trebuie să
introducă nişte ”pini” (adică piese de formă cilindrice) în găurile unui obiect prismatic. Pinii
sosesc pe banda transportoare a unui conveior, care este sub controlul echipamentului de
comandă (ECR) al robotului. De altfel, se consideră că atât mișcările dispozitivului de ghi-
dare (DG), cât și întregul proces tehnologic este comandat de ECR. Detectarea unui pin,
sosit în dreptul robotului, respectiv determinarea poziției și orientării acestuia pe bandă,
este realizată de către un sistem de achiziție și de prelucrare a imaginilor, format dintr-o
cameră video și un calculator, fig.12.1.

Fig.12.1. Exemplu de aplicație de proces tehnologic robotizat de asamblare


Procesul tehnologic robotizat, pentru a avea o formă de reprezentare cât mai adecvată în
“memoria” ECR, este împărţit în etape de operaţii tehnologice succesive bine determi-
nate. În exemplul ales etapele procesului tehnologic se succed astfel:
1. conveiorul primeşte de la echipamentul de comandă a robotului industrial un
semnal de pornire şi se opreşte în momentul în care sistemul de prelucrare a
imaginilor îi semnalează că un pin a fost detectat pe banda transportoare. Sistemul
de prelucrare a imaginilor determină poziţia şi orientarea pinului pe bandă;
2. folosind informaţia furnizată de sistemul de prelucrare a imaginilor, se comandă
deplasarea dispozitivului de ghidare (DG), astfel încât dispozitivul de prehensiune
să se apropie până deasupra pinului, în situarea de apucare optimală a acestuia;
3. dispozitivul de prehensiune apucă pinul;
4. se ridică pinul de pe banda transportoare;
5. se comandă deplasarea dispozitivului de ghidare până când dispozitivul de
prehensiune, cu pinul apucat, ajunge în dreptul primei găuri a obiectului prismatic;
6. se opreşte mişcarea dispozitivului de ghidare în momentul contactului pinului
(apucat în dispozitivul de prehensiune), cu gaura;
7. se aliniază pinul după direcţia axei găurii;
8. se inserează pinul în gaură;
9. se eliberează pinul din dispozitivul de prehensiune;
10. se îndepărtează dispozitivul de ghidare de obiectul prismatic.
Page 65
În continuare se repetă aceleaşi operaţii pentru inserarea celui de-al doilea pin, cu obser-
vaţia că operaţia 1 pentru pinul 2 poate fi executată în timpul efectuării operaţiilor 2-10
pentru pinul 1.

Pentru derularea în mod automat, a procesului tehnologic robotizat, este nevoie, ca


echipamentul de comandă a robotului, în fiecare etapă, să emite o serie de
”comenzi”, care au ca destinație sistemul de acționare al robotului și/sau echipamentele
periferice conectate la robot. În cazul aplicației din fig.12.1., comenzile se referă la:
1. Punerea în mișcare și/sau oprirea mișcării dispozitivului de ghidare, în
punctele țintă și via bine determinate. Aceste comenzi au ca destinație sistemul de
acționare al dispozitivului de ghidare.
2. Închiderea (”close”) sau deschiderea (”open”) a dispozitivului de prehensi-
une, în vederea apucării respectiv eliberării pinului. Aceste comenzi au ca
destinație sistemul de acționare al dispozitivului de prehensiune.
3. Pornirea respectiv oprirea conveiorului. Conveiorul este considerat un echipa-
ment periferic, conectat la robot fie prin modulul I/O (de Intrări și Ieșiri digitale), fie
printr-o linie de comunicație adecvată. În ambele cazuri, aceste comenzi au ca
destinație echipamentul periferic conectat la robot.
4. Preluarea informațiilor referitoare la detectarea respectiv la poziția și
orientarea pinului pe banda transportoare, de la sistemul de prelucrare a
imaginilor. Sistemul de prelucrare a imaginilor, d.p.d.v. al robotului industrial, este
considerat de asemenea un echipament periferic conectat la robot, printr-o linie de
comunicație adecvată (de exemplu ethernet).

Sintaxa și formatul comenzilor sunt stabilite și fixate de producătorul robotului industrial. În


cazul unei ”aplicații” robotizate, cum este de exemplu cea din fig.12.1., comenzile
aferente sunt emise într-o succesiune bine determinată, dată de ordinea necesară de
derulare a etapelor procesul tehnologic. Totalitatea comenzilor emise într-o succesiune
corespunzătoare, constituie ”programul” de aplicație. În cadrul programului de aplicație
se prescrie atât momentul cât și modul de emitere respectiv de transmitere a comenzilor,
de la sistemul de comandă la sistemul de acţionare și la echipamentele periferice
conectate la robot.

Pe baza celor de mai sus, prin programarea unui robot industrial se înțelege
operaţia de întocmire a programului de aplicație.

Observații:
1. Programul de aplicație, de regulă nu este realizat de producătorul robotului
industrial, ci de ”integratorul de sistem”, adică de cel care realizează integrarea
robotului achiziționat de la producător, într-un proces concret de fabricație.
2. Producătorul robotului realizează, implementează și instalează ”soft”-ul de sistem,
specific hardware-ului concret al controller-ului de robot. O parte din soft-ul de
sistem, se ocupă cu comanda și controlul mișcării dispozitivului de ghidare. Această
parte se numește ”program de conducere”.
3. Programul de aplicație, prin comenzile conținute, realizează de fapt apelarea unor
”funcții” și ”subprograme” din cadrul programului de conducere. Sintaxa și formatul
comenzilor, sunt prezentate de regulă în manualul propriu de operare
/programare a robotului industrial.
Page 66
6.2. Metode de programare a roboților industriali

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 de aplicație. Dacă se utilizează robotul în
timpul programării atunci se vorbeşte de programare online. Dacă nu se utilizează atunci
robotul este programat offline. Alte detalii despre metodele de programare se pot vedea
în fig.12.2.

Fig.12.2. Metode de programare a roboţilor


Pentru programarea unei aplicaţii se pot folosi şi combinaţii dintre mai multe metode de
programare. De exemplu este un lucru obişnuit să se folosească programarea teach-in
indirect (care este o metodă de programare online) pentru corecţia poziţiilor planificate
într-un program creat prin metoda offline.

6.2.1. Metode de programare online

Metodele de programare online sunt metode de programare prin învățare (Teach-in).


Există 3 metode de programare tech-in: teach-in direct, programare teach-in master-
slave şi teach-in indirect. La toate cele 3 metode:
• Robotul este mişcat în timpul programării.
• Punctele de poziţionare sunt date de informațiile furnizate de traductoarele de
poziţie, viteză şi acceleraţie din cuplele cinematice ale robotului, care sunt în
funcţiune.
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.

Teach-in direct

La această metodă de învățare, ”programatorul” conduce/ghidează cu mâna mișcarea


effectorui final al 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 manual
(adică numai la o comandă explicită a programatorului prin acționarea unui buton), fie
automat (când se înregistrează toate mişcările pe care operatorul le aplică effectorului
final). Al doilea caz, cel al înregistrării automate, este numit şi programare play-back şi
necesită spaţiu mare de memorare a programului.
Un exemplu, pentru teach-in direct cu înregistrare automată, este prezentat în:
https://www.youtube.com/watch?v=tub6oUeMhqk

Page 67
Această metodă, de programare teach-in direct, se poate utiliza de regulă la roboţi cu
dimensiuni și greutăți relativ mici. De asemenea, construcția sistemului mecanic trebuie să
asigure un raport mic de transmisie, pentru angrenajele mecanice de mişcare a axelor (în
special pentru transmisii cu roţi dinţate), pentru ca la o forță normală, exercitată de
operatorul uman asupra efectorului final, dispozitivul de ghidare să prezinte doar o
rezistență ușoară.

Fig.12.3. Programarea teach-in direct la o operație tehnologică de vopsire cu pulverizare


Programarea teach-in direct este utilă pentru roboţii folosiţi în aplicaţii de tratare a
suprafeţelor (vopsire, polizare, şlefuire etc.), la care un operator cu experiență (în vopsire,
polizare, șlefuire etc.), poate să conducă efectorul final al robotului, relativ ușor pe o
traiectorie optimă (care se înregistrează automat).

Un exemplu asemănător cu teach-in direct în varianta manuală (cu ghidare manuală și


memorarea unor puncte de pe traiectorie prin acționarea unui buton de pe un mouse 6D
mobil, montat pe efectorul final al unui robot Kuka), este prezentat în:
https://www.youtube.com/watch?v=8yGaMFDuFbE

Programarea Teach-in 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 propriu-zis (Slave) va urmării mişcările realizate cu robotul model
(Master). Această metodă necesită un echipament complex pentru programare și se
utilizează de obicei la roboții de construcție masivă (care nu permit acționarea manuală și
directă a dispozitivului de ghidare, de către un operatorul uman).
Exemple de configurații Master-Save cu teach-in sunt prezentate în:
https://www.youtube.com/watch?v=KrQsczjMeTw

https://www.youtube.com/watch?v=kTS3Yx75mLo

Teach-in indirect

Programarea teach-in indirect (sau simplu: programarea teach-in) este cea mai utilizată
metodă de programare a roboţilor. La această metodă, robotul este mişcat în regim ma-
nual, prin acţionarea unor taste funcţionale de pe panoul de învățare al robotului. De
aceea, motoarele robotului sunt active în timpul programării. Poziţiile respectiv orientările
dorite ale efectorului final sunt memorate, prin apăsarea unei taste funcţionale de pe
panoul de învățare.

Page 68
Fig.12.4.Exemplu de programare tech-in indirect cu robot Mitsubishi
Un exemplu pentru comanda axelor și memorarea coordonatelor aferente pozițiilor dorite
la robotul Mitsubishi din fig.12.4. este prezentat în:
https://www.youtube.com/watch?v=XuJOWQJKpA4
După memorarea pozițiilor necesare și întocmirea, cu ajutorul panoului de învațare, a unui
program de aplicație, robotul poate executa singur trecerea prin punctele învățate. Un
exemplu în acest sens este prezentat în:
https://www.youtube.com/watch?v=A9M1zX3GzX0

Panoul de învățare permite introducerea de informaţii suplimentare pentru fiecare poziţie


în parte (de exemplu: citire intrări digitale, setare/resetare ieşiri digitale etc.). Utilizatorul
poate alege şi schimba sistemul de coordonate în care doreşte să mişte robotul, de-a
lungul procesului de programare (de exemplu: în coordonate ale cuplelor cinematice
conducătoare – mod PTP, în coordonate carteziene - XYZ, în coordonate legate de sculă -
TOOL, în coordonate legate de piesă etc.).

Avantajele utilizării metodelor de programare Teach-in:


• Posibilitate de verificare imediată a mișcărilor memorate sau a punctelor învățate.
• Necesităţi reduse de memorie pentru programul de aplicație.
• Pentru programe simple se obţin cei mai mici timpi de programare.
• Programul este 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 (în care este integrat robotul), trebuie să fie construită înainte
de începerea programării.
• Deseori programul robotului, realizat cu metode teach-in, este incomplet sau are
documentaţia incompletă.
Page 69
• Nu este uşor să se folosească informaţii de la senzori (care provin de la modulul
I/O), în programul robotului (la metoda teach-in direct respectiv la teach-in master-
slave).
• Sunt puţine funcţii de programare, care pot fi utilizate pentru prelucrări de date de
tip algoritmi de calcul.
• Programele realizate nu sunt uşor de structurat (în subprograme, proceduri, funcţii).
• Este greu să se programeze traiectorii curbilinii complexe (ex. parabole)

6.2.2. Metode de programare 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.., 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.

6.2.2.1. Programarea în mod text

Programarea în mod text face apel la utilizarea unor limbaje de programare de nivel înalt,
specifice roboţilor. În funcţie de modul de descriere textuală a aplicaţiei, există două me-
tode programare:
1. Programare orientată pe mişcările care trebuie să fie efectuate de robot;
2. Programare orientată pe problemă (aplicaţie).

În cazul programării orientată pe mişcări, sunt prescrise în esenţă (prin intermediul unor
instrucţiuni specifice limbajului utilizat), traiectoriile care urmează să fie executate
respectiv starea efectorului final (CLOSE -închis sau OPEN - deschis). Astfel, considerând
o aplicaţie de asambla-
re piese (de exemplu
cea din fig.12.5.), în
care robotul industrial
trebuie să apuce o pi-
esă cilindrică aflată pe
o suprafaţă şi să intro-
ducă un capăt al aces-
teia într-o gaură a unei
piese prismatice, se
programează mişcările
efective care trebuie
să fie executate de ro-
bot.

Page 70
Programul simplificat (scris de exemplu în limbaj VAL) este următorul:

MOVE L1 - apropiere de cilindru;


MOVE L2 - mişcare deasupra cilindrului;
CLOSE - închidere gripper;
MOVE L3 - ridicare deasupra obstacolului;
MOVE L4 - mişcare deasupra găurii;
MOVE L5 - orientarea cilindrului;
MOVE L6 - atingerea găurii;
MOVE L7 - mişcare de introducere în gaură;
OPEN - deschidere gripper;
MOVE L8 - mişcare în poziţie finală.

În cazul programării orientată pe problemă (aplicaţie), în cadrul programului nu mai


sunt indicate mişcările efective ale robotului ci se prescrie efectiv aplicaţia care trebuie să
fie efectuată de către robot. De exemplu, în cazul aplicaţiei din fig.12.5., programul ar
putea să fie formulat (în mod simplificat) în felul următor:

“APUCĂ ŞI PLASEAZĂ CILINDRUL


ÎN GAURA PIESEI PRISMATICE”

În acest caz programul este prelucrat prin intermediul unui sistem de inteligenţă artificială,
care oferă, prin intermediul unui sistem de achiziție și de prelucrare a imaginilor,
posibilitatea recunoaşterii şi identificării obiectului “cilindru”, a obiectului prismatic prevăzut
cu o gaură, localizarea automată a găurii, recunoaşterea şi identificarea automată a
obstacolelor din mediul de lucru al robotului respectiv luarea deciziilor de ocolire.

Realizarea oricărui program de tip text necesită de regulă 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).

6.2.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ă.

Page 71
Fig.12.6.Mediul de programare RobotStudio

Fig.12.7. Mediul de programare ROBOGUIDE


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
Page 72
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.
Majoritatea mediilor de programare oferă și simularea funcționării celului de fabricație în
care este integrat robotul.
Principalele medii de programare în mod grafic și simulare:
1. RobotStudio pentru familia de roboți ABB.
2. KUKA.Sim pentru familia de roboți KUKA.
3. ROBOGUIDE pentru familia de roboti Fanuc.
4. Robcad, RoboDK etc. pentru mai multe familli de roboți.
5. COSIMIR pentru familia de roboți Misubishi, etc.

Fig.12.8.Mediul de programare RoboDK


Majoritatea mediilor de programare pot fi descărcate liber de pe net și pot fi încercate timp
de 30 de zile (în varianta trial). De asemenea pe youtube există o serie de tutoriale legate
de modul de utilizare a acestor medii de programare. De exemplu:
https://www.youtube.com/watch?v=ohePUt-NylU - tutorial RobotStudio

https://www.youtube.com/watch?v=2cRAwmpSKkE -tutorial KUKA.Sim

https://www.youtube.com/watch?v=neAFHplKu-Y -tutorial ROBOGUIDE

https://www.youtube.com/watch?v=Bnf5yKN0d-U&t=76s -tutorial RobCAD

https://www.youtube.com/watch?v=XQs8-QnLy6c&list=PLjiA6TvRACQc5E_3c5f3TFXEa56XNR1-m -tutorial
RoboDK

Page 73
6.2.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 (amestecuri de mai multe metode diferite)
• Programarea prin comenzi vocale (Programming by spoken commands).
• Programare prin învăţare autonomă (roboţi inteligenţi)

6.3. Caracteristicile generale ale limbajelor de programare pentru roboți

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


grame 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 mânuite de robot au diverse proprietăţi fizice (ex. masă, volum, tempera-
tură).

Fig.12.9. Ierarhia limbajelor de programare după nivelul de abstractizare.

Page 74
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 fig.12.9.

Limbajele de la nivelele Task şi Obiect sunt denumite limbaje implicite. Ele au cel mai
mare nivel de abstractizare. Limbajele explicite sunt cele care operează la nivelele Robot
şi Articulație. 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).
• Acceptă intrări de date numerice pentru definirea unor poziţii şi orientări.
Aceste date pot proveni din:
o Metode teach-in;
o Măsurare;
o Modele CAD.
• Acceptă comenzi pentru mişcări brute (ample).
De exemplu cu evitarea coliziunilor în spaţiul de lucru, prin introducerea de către
utilizator a unor puncte via.
• Acceptă comenzi pentru mişcări fine.
Mişcările fine produc deplasări mici şi orientări fine ale efectorului final, î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 legat de sculă TCP.
Mişcări provocate de senzori (ex. senzori de proximitate).
Strategii de asamblare prin programarea mai multor comenzi de mişcare.
• Componente de limbaj pentru programare paralelă şi/sau în timp real.
Controlul sculelor/uneltelor şi al perifericelor.
Cooperare cu alţi roboţi.
Aşteptare pentru şi/sau reacţie la evenimente externe.

Î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.

Page 75
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 12.10.

Fig.12.10. Cele şase faze ale dezvoltării unui program de aplicație pentru roboți 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, aşa cum se
folosesc la PLC-uri.

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:

Page 76
• 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.12.11.Fluxul informaţiei într-un program de aplicație pentru roboţi

Page 77
6.4. Exemple de limbaje de programare pentru roboți industriali

În prezent există peste 100 de limbaje de programare de tip text pentru roboți industriali.
Practic fiecare mare producător de roboți și-a dezvoltat câte un limbaj de programare pro-
priu, pentru familia de roboți din producția lor. În unele cazuri există diferențe semnifica-
tive, chiar la același producător, între limbajul de programare care a fost dezvoltat inițial
pentru primele generații de roboți și limbajul de programare existent la roboții din producția
curentă. În cazul unui robot industrial concret, limbajul de programare, cu toate
instrucțiunile aferente, este prezentat în manualul propriu de operare și/sau de programare
a robotului. De regulă, se face referire și la versiunea software-ului de sistem pentru care
se aplică instrucțiunile din limbajul prezentat în manual.

Cele mai utilizate limbaje de programare a roboților industriali, sunt:


1. Limbajul KRL (Kuka Robot Languege) al firmei Kuka.
2. Limbajul RAPID al firmei ABB.
3. Limbajul Karel al firmei Fanuc.
4. Limbajul PDL2 al firmei Comau.
5. Limbajul VAL3 al firmei Stäubli.
6. Limbajul Inform al firmei Yaskawa.
7. Limbajul AS al firmei Kawasaki.
8. Limbajul URScript al firmei Universal Robots.

În cadrul cursului, pe lângă limbajul KRL, al firmei Kuka, se prezintă și un limbaj de pro-
gramare utilizat destul de des în sisteme educaționale: limbajul MRL - Mitsubish Robot
Language.

6.4.1. Limbajul de programare MRL – Mitsubishi Robot Language

Acest limbaj de programare, numit și limbaj MOVEMASTER, a fost conceput de firma Mit-
subishi, pentru programarea roboţilor săi industriali din primele generaţii. Acest limbaj
utilizează și robotul RV-M1 Mitsubishi din laborator, fig.13.1.

Fig.13.1.Robotul industrial RV-M1 mitsubishi din laborator


Page 78
Programele realizate offline, într-un editor de texte oarecare, sunt încărcate din PC în
memoria echipamentului de comandă al robotului sub forma unor fişiere de tip text.
Punctele din programul de aplicație, pot fi memorate/salvate cu ajutorul panoului de
învățare, sau pot fi definite în program, cunoscând coordonatele lor carteziene, date față
de originea ”O” a sistemului de coordonate legat de baza robotului. La rularea programului
încărcat, echipamentul de comandă acţionează ca un interpretor de comenzi, executând
instrucţiunile linie după linie, la fel ca la maşinile CNC.

6.4.1.1. Lista principalelor comenzi

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

Fig.13.2.Sistemele de coordonate utilizate la programarea robotului RV-M1


Aceste comenzi se referă la definirea poziţiilor şi coordonatelor, la diverse tipuri de
mişcări, la viteze, accelerații, temporizări etc. Cele mai des utilizate sunt următoarele:
MP* <X, Y, Z, P, R> - Determină deplasarea punctului de sculă TCP, într-o poziție dată
prin coordonatele absolute (față de bază): X, Y, Z, P şi R.
Coordonatele X, Y, Z se dă în [mm] iar P și R în [grade], cu o
precizie de 0.1. Această comandă (*) nu se poate utiliza în
interiorul programului.
DW <∆x, ∆y, ∆z> - Deplasarea punctului TCP, față de poziția curentă, cu ∆x, ∆y
şi/sau ∆z, paralel cu axele X, Y, Z ale sistemului de coordonate
legat de baza robotului, fără modificarea orientării sculei;
HE <nr poz> - Determină memorarea/salvarea coordonatelor carteziene absolute
(X, Y, Z, P şi R) ale poziţiei curente, prin ataşarea unui număr;
PD* <nr poz, X, Y, Z, P, R> - Determină definirea şi memorarea unei poziţii diferite de poziţia
curentă. Pentru definire se indică numărul poziţiei, respectiv
coordonatele carteziene absolute X, Y, Z, P şi R. Această
comandă (*) nu se poate utiliza în interiorul programului.
MO <nr poz> [,<stare gripper>] - Determină deplasarea punctului de sculă TCP, în regim PTP,
într-o poziţie memorată sau definită cu coordonate absolute (față
de bază), indicată prin număr. Pentru starea deschisă (Open) sau
închisă (Close) a gripper-ului se utilizează caracterele O sau C.

Page 79
MS < nr poz>, < nr.puncte via> - Deplasarea punctului TCP cu interpolare liniară (comandă
[,<stare gripper>] multipunct), printr-un număr dat de puncte via, până în poziția
dată prin număr. Între două puncte via consecutive se deplasează
în regim PTP;
MC <poz (a)>, <poz (b)> - Mișcare continuă (fără oprire), în regim PTP, din poziția curentă,
prin puncte via predefinite (existente în memorie), între două
puncte date prin numerele ”a ”și ”b”. De exemplu: MC 5, 9 –
mișcare continuă din poziție curentă, între punctul 5 și 9, trecând
fără oprire prin 5, 6, 7 și 8;
MA <poz (a)>, <poz (b)> [,<stare - Deplasare punct TCP, din poziția curentă până în punctul ”b”,
gripper>] definit relativ (incremental) față de punctul ”a”. De exemplu dacă
punctul 2 este definit relativ, față de punctul 1 cu PD 2,0,0,50,0,0
(2 este ”deasupra” punctului 1 cu 50 mm, de-a lungul axei Z),
atunci comanda de mișcare până în punctul 2 este: MA 1,2;
MT < nr poz>, < ∆z> [,<stare - Deplasare punct TCP, din poziția curentă, până într-o poziție,
gripper>] care este la o distanță de ∆z, măsurată de-a lungul axei Z a sculei,
în sens + (apropiere de obiect) sau – (îndepărtare de obiect), față
de o poziție dată prin număr;
DP - Decrementare poziţie (deplasare în regim PTP, din poziţia
curentă “I” curentă în poziţia “I-1” din memorie).
IP - Incrementare poziţie (deplasare în regim PTP, din poziţia “I”
curentă în poziţia “I+1” din memorie);
MJ* <B, S, E, P, R> - Determină mişcarea fiecărei articulaţii (B, S, R, P și R),
incremental, adică faţă de poziţia curentă cu unghiul specificat în
grade. Această comandă (*) nu se poate utiliza în interiorul
programului;
NT - Determină revenirea în originea mecanică a articulațiilor în
vederea sincronizării lor.
SP <treapta de viteză> [,H sau L] - Selectarea treptei de viteze (de la 0 la 9), cu accelerație mare (H)
sau mică (L). Timpul de accelerație este 0,35s pentru H și 0,5s
pentru L, până când timpul de decelerare este 0,4s pentru H și
0,6s pentru L;
TI <durată> - Introduce o temporizare în execuția programului, în zecimi de
secunde. De exemplu pentru o durată de 1s se va programa TI 10;
PA <N, R, C> - Definirea unei palete bidimensionale prin: numărul paletei (N -
un număr de la 1 la 9), numărul rândurilor (R) și numărul
coloanelor (C);
PT <nr paletă> - Calculează coordonatele absolute ale unui locaş al paletei, indicat
anterior prin contorul rândului şi contorul coloanei. Rezultatul
calculului va fi o poziție memorată cu numărul paletei. De
exemplu: PT 7 cauzează memorarea poziției aferente locașului
indicat, ca poziția 7 din spațiu.

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.

SC <nr contor>, <valoare> - Determină setarea conţinutului contorului specificat prin “nr
contor” la o anumită valoare indicată.
IC <nr contor> - Incrementează cu 1 valoarea contorului specificat.
DC <nr contor> - Decrementează cu 1 valoarea contorului specificat.
CP <nr contor> - Încarcă valoarea contorului specificat într-un registru intern de
comparare în vederea comparării cu o valoare dorită.

Page 80
EQ <valoare>, <nr linie> - Salt la o linie din program dacă conţinutul registrului intern este
egal (EQ – Equal) cu valoarea specificată.
NE <valoare >, <nr linie> - Salt la o linie din program dacă conţinutul registrului intern
diferă (NE – Not Equal) de valoarea specificată.
LG <valoare>, <nr linie> - Salt la o linie din program dacă conţinutul registrului intern este
mai mare (LG –Larger) decât valoarea specificată.
SM <valoare>, <nr linie> - Salt la o linie din program dacă conţinutul registrului intern este
mai mic (SM –Smaller) decât valoarea specificată
GT <nr linie> - Salt necondiționat la o linie din program.
GS <nr linie > - Această instrucţiune determină un salt necondiţionat la linia de
start a unei subrutine indicat prin număr.
RT - Determină revenirea din subrutina apelată cu instrucţiunea GS.
RC <N> - Repetă următoarea bucla de N-ori.
NX - Sfârşit buclă.
EA <+ sau -> <nr.intrare - Este o instrucţiune care instalează un sistem de ”întreruperi”,
digitală>, <nr.linie> legat de starea logică 1 (notată cu semnul +) sau starea logică 0
(notată cu semnul -), a unei intrări digitale. Ca urmare,
modificarea stării logice, de la intrarea respectivă, cauzează
întreruperea mişcării robotului iar execuţia programului continuă
cu un salt la linia indicată prin număr.
DA <nr.intrare digitală> - Această comandă anulează starea de întreruperi instalată prin
instrucţiunea EA pentru intrarea digitală specificată.
ED - Sfârşit program principal.

3. Comenzi de control al gripper-ului

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).

GO - Determină deschiderea gripperului.


GC - Determină închiderea gripperului.
GF < 0 sau 1 > - Definește starea închisă=1 sau deschisă=0 a gripperului pentru
instrucțiunea de defininere a poziției PD. La punearea robotului
sub tensiune, GF are valoare egală cu 0.

4. Comenzi pentru intrări/ieşiri digitale

Aceste comenzi sunt destinate controlului perifericelor cu intrări/ieşiri digitale. Se pot


realiza citiri paralele pe 16 bit şi scriere pe un singur bit.

OB < + sau - > < nr.ieșire > - Este o instrucţiune prin care se realizează setarea stării logice (0
sau 1) a ieşirii digitale dat prin număr. “+” semnifică nivelul
logic “1” (prezența semnalului) iar “-“ semnifică nivelul logic
“0” (lipsa semnalului).
ID - Este o instrucţiune de citire paralelă a stărilor tuturor celor 16
intrări digitale. Valoarea formată din stările logice (0 sau 1)
ale celor 16 intrări, este încărcată într-un registru intern de
comparare.
TB <+ sau - > <nr.intrare - Este o instrucţiune de salt la o linie din program dacă bitul
digitală>, <nr. linie> aferent intrării digitale, dat prin număr, este de nivel logic 1
(notat “+”) sau este de nivel logic 0 (notat “-”). Dacă condiţia
nu este îndeplinită, se continuă execuţia programului cu linia
următoare.

Page 81
5. 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.
WH - Citește coordonatele carteziene ale poziției curente. La această
comandă echipamentul de comandă răspunde cu un șior de
caractere în care coordonatele X, Y, Z, P și R sunt separate cu
virgulă. X, Y și Z sunt date în [mm], iar P și R în [grade]. De
exemplu: 10.0, +380.0, +300.0, -70.0, -40.0
PR < nr. poz> - Citește din memorie coordonatele unei poziții memorate, indicată
prin nr.poz. Răspunsul de asemenea este un șir de caractere, ca la
WH.
LR < nr. linie> - Citește din memorie o linie de program indicat prin nr.linie.
Răspunsul de asemenea este un șir de caractere,

Exemple privind utilizarea instrucțiunilor din limbajul MRL

Exemplu nr.1.: Utilizarea instrucţiunilor de mişcare.


PD 3,0,350,250, -10,+20 -definirea poziţiei nr.3, cu X=0; Y=350; Z=250; P=-10; R=10.
PD 11,0,0,50,0,0 -definirea unei poziţii relative (cu 50 mm mai sus în sens +);
MP 10,20,30,40,50 -deplasare la coordonatele: X=10; Y=20, Z=30, P=40, R=50.
10 NT -revenirea în originea mecanică a articulațiilor.
20 MO 3,C -deplasarea în poziţia 3 cu gripper închis;
30 DW 20,0,0 -deplasare față de poziția curentăm de-a lungul axei X cu 20 [mm];
40 HE 4 -memorare coordonate poziţie curentă și salvare ca poziția 4;
50 IP -incrementare poziție. Deplasare în poziția 5. Se presupune în continuare că
poziţiile 5-10 sunt deja definite sau memorate;
60 MC 6,10 -mişcare continuă până în poziţia 10, trecând prin poziţiile 6,7,8,9 fără
oprire;
70 DP -decrementare poziție. Deplasare în poziţia 9;
80 MA 9,11,O -deplasare în poziţia 11 care a fost dat relativ faţă de poziţia 9;
90 SP 3 -selectarea treptei de viteze nr.3;
100 MS 99,5 -mişcare cu interpolare liniară (regim MTP), până în poziția 5.
110 ED -sfârșit program.

Exemplu nr.2.: Utilizarea instrucţiunilor de comparare şi buclare.


10 SC 1,2 -poziţionarea contorului 1 pe valoarea 2;
20 CP 1 -introducerea valorii contorului 1 într-un registru intern de comparare;
30 EQ 10,100 -dacă valoarea este egală cu 10 atunci salt la linia 100;
40 IC 1 -dacă nu atunci incrementează valoarea contorului 1;
50 GT 20 -salt necondiționat la linia 20 din program;
100 DC 1 -decrementarea contorul 1;
110 CP 1
120 LG 1,100 -dacă valoarea este mai mare decât 1 atunci salt la linia 100 din program;
150 GS 200 -dacă nu atunci apel subrutină care începe la lina 200;
160 ED -sfârșit program principal;
200 RC 10 -repetă următoarea buclă de 10 ori;
.
.
300 NX -următorul pas din buclă;
310 RT -sfârșit subrutină și revenire în program principal.

Page 82
6.4.1.2. Exemple de aplicații scrise în limbajul de programare MRL. Aplicația 1.

Fig.13.3. Aplicație de tip ”pick and place”


În fig.13.3., este prezentată o aplicație de tip ”pick and
place”, adică ”preluarea și așezarea” unui obiect prismatic,
cu ajutorul robotului. Se consideră că inițial obiectul se află
în poziția nr.1. și în final ajunge în poziția nr.2. Poziția 10
este poziția înainte de ridicare iar poziția 20 este poziția
înainte de așezare.

Se consideră că pozițiile 1 și 2 sunt memorate/salvate cu


ajutorul panoului de învățare iar pozițiile 10 și 20 sunt
definite în mod numeric, incremental (adică relativ) față de
pozițiile 1 și 2. (se consideră că, conform fig.13.3., coor-
donata Z a poziției 10 este cu 20 mm mai mare decât cea a
poziției 1, iar în cazul poziției 20 coordonata Z este mai mare
cu 30 mm decât cea a poziției 2).

Operația începe cu deplasarea gripperului (mișcarea nr.1.)


până în poziția de START, adică până în poziția 10, se
deschide gripperul, apoi urmează mișcarea de coborâre (2)
până la nivelul poziției 1. Obiectul este prins (apucat) prin
închiderea gripperului, după care este ridicat (3), cu grip-
perul închis, înapoi până în poziția 10. Urmează deplasarea
(4) a obiectului până în poziția 20, obiectul este așezat jos
(5) în poziția 2 și este eliberat din gripper. Fără obiect,
gripperul este ridicat (6) până în poziția 20 după care se
deplasează înapoi (7) până în poziția 10, de START. După
aceasta robotul este gata pentru reluarea ciclului. În fig.13.4.
este prezentată schema logică a programului.

Programul în limbaj MRL cu comenzile aferente:


PD 10,0,0,20,0,0 -definirea poziției 10 relativ față de poziția 1 (la o distanță de 20 mm deasupra lui 1,
adică X=0, Y=0, Z=+20, P=0, R=0);
PD 20,0,0,30,0,0 -definirea poziției 20 relativ față de poziția 2 (la o distanță de 30 mm deasupra lui 2,
adică X=0, Y=0, Z=+30, P=0, R=0);
10 SP 9,H -setare treapta de viteză 9, cu accelerație mare (High);
20 MA 1,10,O -deplasare în poziția 10, dat relativ față de poziția 1, cu gripper deschis (Open)
30 MO 1,O -deplasare în poziția 1 (memorată cu panou de învățare), cu gripper deschis (Open);
40 GC -închidere gripper (prinderea obiectului);

Page 83
50 MA 1,10,C -deplasare înapoi în poziția 10, dat relativ față de poziția 1, cu gripper închis (Close)
60 MA 2,20,C -deplasare în poziția 20, dat relativ față de poziția 2, cu gripper închis (Close);
70 MO 2,C -deplasare în poziția 2 (memorată cu panou de învățare), cu gripper închis (Close);
80 GO -deschidere gripper (eliberare obiect);
90 MA 2,20,O -deplasare înapoi în poziția 20, dat relativ față de poziția 2, cu gripper deschis;
100 GT 20 -salt necondiționat la linia 20, pentru reluare ciclu din poziția 1 de START.

Aplicația 2. Utilizarea unui semnal digital de intrare pentru întreruperi de program

În figura 13.5. s-a reprezentat un mecanism de prehensiune


(gripper) care este prevăzut cu un microîntrerupător, prin inter-
mediul căruia se poate sesiza lipsa sau prezenţa obiectului care
urmează să fie apucat.

Se consideră că pe suprafaţa A se găsesc mai multe obiecte,


având dimensiuni (înălțimi) diferite. Înainte de deplasare spre
obiect, gripper-ul este mişcat până în poziţia 1, respectiv se cu-
noaşte distanţa maximă (50 [mm]), până la obiectul cu înălțime
cea mai mică". Astfel, dacă se programează din poziția 1, o de-
plasare maximă (adică cu 50[mm]), de-a lungul axei Z, se poate apuca (prinde) şi obiectul care are
cea mai mică înălţime. La celelalte obiecte "mai înalte", în timpul mișcării de coborâre, va fi acţio-
nat microîntrerupătorul înainte de terminarea deplasării totale. Pentru aceste cazuri, se programează
o întrerupere a mişcării pe verticală (la apariția semnalului de nivel logic 1, furnizat de microîntre-
rupător atunci când este acționat, la intrarea digitală 11), după care se comandă închiderea gripper-
ului şi ridicarea obiectului. În fig 13.6. s-a prezentat schema logică a programului.
Programul în limbaj MRL cu comenzile aferente:
10 SP 5,L -setare treapta de viteză 5, cu accelerație mică (Low);
20 EA+11,60 -activare regim de mișcare cu întreruperi, pentru intrarea 11, nivel logic 1 (”+”);
30 MO 1,O -deplasare în poziția 1, cu gripper deschis (Open);
40 DW 0,0,-50 -deplasare de-alungul axei Z în sens ”–” cu 50 [mm];
50 GT 30 -NU a fost Întrerupere! Salt înapoi la linia 30, pentru reluarea mișcării din poz.1.;
60 DA 11 -A fost întrerupere! Oprire mișcare. Dezactivare regim de mișcare cu întreruperi;
70 GC -închidere gripper (prinderea obiectului);
80 MO 1,C -ridicarea obiectului până în poziția 1;
90 ED -sfârșit program.
Page 84
Aplicația4. Detectarea și ocolirea obstacolelor întâmplătoare

Fig.13.7.
Se consideră că pe dispozitivul de prehensiune al robotului RV-M1,
se găseşte un senzor prin care se poate detecta o eventuală coliziune
cu un corp ajuns în mod întâmplător pe traiectoria programată a
robotului. Conform fig.13.7. robotul se află în mişcare din poziţia
START spre poziţia ȚINTĂ, adică poziția nr.1. Pe parcursul
mişcării se constată modificarea stării logice a semnalului
recepţionat de la senzor şi în consecinţă mişcarea spre poziţia 1 este
imediat suspendată. Se realizează o "ocolire" a obstacolului spre
poziţia nr. 2 după care se comandă din nou deplasare spre poziţia
ȚINTĂ 1. În fig 13.8. s-a prezentat schema logică a programului.

Conform programului de mai jos, în prima frază (respectiv în linia 100) se instalează prin
intermediul instrucţiunii EA, regimul de mişcare condiţionată. Eventuala întrerupere a mişcării
robotului, cauzată de apariţia nivelului logic 1 al intrării numerice 11, va avea ca efect suplimentar
un salt la linia 600 din program. Linia 110 mişcă robotul spre poziţia nr 1. din spaţiu. Dacă în
timpul mişcării nu apare întrerupere (adică nu apare nici un obstacol), atunci robotul ajunge în
poziţia ȚINTĂ programată şi programul se termină la linia 120. În caz contrar, mişcarea robotului
se întrerupe, programul se continuă cu linia 600, unde se anulează efectul instrucţiunii EA. În linia
610 robotul este trimis întâi în poziţia nr 2., cu scopul ocolirii obstacolului, apoi printr-un salt
necondiţionat se ajunge iarăşi la linia 110 unde se dă din nou comandă pentru deplasare în poziţia
nr.1. (poziția ȚINTĂ). Programul se termină la linia 120 cu instrucţiunea ED (sfârşit program
principal).

Programul în limbaj MRL cu comenzile aferente:


100 EA +11,600 -activare regim de mișcare cu întreruperi, pentru intrarea 11, nivel logic 1 (”+”);
110 MO 1 -pornirea mișcării către poziția ȚINTĂ (poziția nr.1);
120 ED -dacă nu apare obstacolul, atunci mișcarea continuă până în 1. Deci sfârșit program!
600 DA 11 -s-a detectat obstacol! Mișcarea s-a oprit! Se anulează regimul de mișcare cu EA;
610 MO 2 -se programează mișcarea de ocolire prin poziția nr.2;
620 GT 110 -salt la linia 110 unde se programează din nou mișcarea până în poziția ȚINTĂ.

Page 85
Aplicația4. Preluarea obiectelor de pe un conveior și așezarea lor într-o paletă 4x6

În fig.13.9. s-a prezentat o apli-


cație în care, cu ajutorul ro-
botului sunt preluate obiecte
prismatice care sosesc pe un
conveior și sunt așezate pe o
paletă (paleta nr.7), cu locașuri
ordonate în 6 rânduri (R=6) și
4 coloane (C=4). Obiectele ca-
re ajung pe conveior în poziția
de preluare (poziția 52), sunt
detectate cu ajutorul unui sen-
zor, conectat la intrarea digita-
lă nr.3. a echipamentului de
comandă a robotului (ECR). La
apariția semnalului de nivel lo-
gic 1, furnizat de senzor la de-
tectarea obiectului, ECR emite
o comandă pentru oprirea con-
veiorului. Această comandă a-
re loc prin programarea unui
semnal de nivel logic 1 la ie-
șirea digitală nr.2. După pre-
luarea obiectului de pe con-
veior, ECR anulează comanda
de oprire conveior, prin pro-
gramarea unui semnal de nivel
logic 0 la ieșirea digitală nr.2.
Ca urmare conveiorul este
pornit automat.

Inițial robotul este mișcat până


în poziția 51 (poziția de
START), unde așteaptă sosi-
rea obiectului având gripperul
deschis). După sosirea obiec-
tului (apariția semnalului de
nivel logic 1 la intrarea digitală
3), conveiorul este oprit (prin
emiterea unui semnal de nivel
logic la ieșirea 2). Urmează
preluarea obiectului de pe
conveior și introducerea lui
într-un locaș al paletei.
În figura 13.10. este prezenta-
tă schema logică a programului. Se realizează următoarele mișcări:
1. Mișcare în poziția 52 (cu gripper deschis);
2. Prinderea obiectului (închidere gripper);
3. Ridicarea obiectului până în poziția 51 (cu gripper închis);

Page 86
4. Deplasarea obiectului până deasupra paletei (poziția 50);
5. Introducere obiect într-un locaș al paletei nr.7 (mișcare în poziția 7);
6. Eliberare obiect (deschidere gripper);
7. Mișcare înapoi în poziția 50, fără obiect (cu gripper deschis);
8. Mișcare înapoi în poziția 51 (de START).
Pentru mișcările 1-8 (de preluare obiect de pe conveior și introducere în paletă), care se
repetă la fiecare obiect sosit pe conveior, în programul de aplicație se va crea o subrutină.

Pentru așezarea ordonată a obiectelor, se utilizează paleta nr.7. La această paletă:


• poziția 70 este poziția de referință a paletei, adică este prima poziție în cadrul
rândului și prima poziție în cadrul coloanei. Deci este poziția (1,1) a paletei.
• poziția 72 este poziția finală a rândului, deci este poziția (1,4);
• poziția 71 este poziția finală a coloanei deci este poziția (6,1);
• poziția 73 este poziția colțului opus poziției de referință ca urmare este poziția (6,4).

Celelalte poziții ale paletei sunt calculate cu ajutorul instrucțiunii PT 7, unde 7 este
numărul paletei. Pentru indicarea unei poziții în cadrul paletei, se indică numărul poziției
din cadrul rândului și numărul poziției din cadrul coloanei. În acest scop se utilizează două
contoare: contorul 72 și contorul 71.

• contorul 72 este contorul rândului. Se utilizează pentru contorizarea locașurilor


din cadrul rândului. Inițial acest contor primește valoarea 1 cu ajutorul instrucțiunii
SC 72,1. Prin această valoare, contorul 72 indică poziția nr.1 din cadrul rândului.
Pentru trecerea la următoarea poziție din cadrul rândului, se incrementează cu 1
valoarea contorului 72, cu instrucțiunea IC 72. Atunci când valoarea contorului 71
ajunge la valoarea maximă (adică 4 - pentru că sunt 4 poziții în cadrul unui rând),
înseamnă că s-a ajuns la ultima poziție din cadrul rândului. După ce a fost introdus
un obiect și în locașul aferent acestei poziții, urmează resetarea contorului 72 la
valoarea 1 și trecerea la următoare poziție din cadrul coloanei.

• contorul 71 este contorul coloanei. Se utilizează pentru contorizarea locașurilor


din cadrul coloanei. Inițial și acest contor primește valoarea 1 cu ajutorul
instrucțiunii SC 71,1. Prin această valoare, contorul 71 indică poziția nr.1 din cadrul
rândului. Pentru trecerea la următoarea poziție din cadrul coloanei, se
incrementează cu 1 valoarea contorului 71, cu instrucțiunea IC 71. Atunci când
valoarea contorului 71 ajunge la valoarea maximă 6 (pentru că sunt 6 poziții în
cadrul unei coloane), înseamnă că s-a ajuns la ultima poziție din cadrul coloanei.

Dacă atât contorul rândului (72) cât și contorul coloanei (71), a ajuns la valoarea maximă
(4 respectiv 6), înseamnă că s-a ajuns la ultima poziție din cadrul paletei, adică la poziția
(6,4). După ce a fost introdus un obiect și în locașul aferent acestei poziții, gripperul se
retrage în poziția 51 și ECR emite o comandă pentru oprirea conveiorului.

Pentru indicarea unui locaș din cadrul paletei (fig.13.11.), de ex. din poziția (4,3), (cu
poziția 4 în cadrul rândului și cu poziția 3 din cadrul coloanei), se utilizează instrucțiunile:
PA 7,4,6 - definirea paletei 7 cu 4 rânduri și 6 coloane;
SC 72,4 - specificarea poziţiei din cadrul rândului, utilizând contorul rândului (72);
SC 71,3 - specificarea poziţiei din cadrul coloanei, utilizând contorul coloanei (71);
PT 7 - calculul poziţiei pentru paleta 7.
MO 7 - comandă pentru deplasare în poziţia calculată, aferentă paletei nr.7.

Page 87
Fig.13.11.
Verificare ultima poziție din cadrul rândului:
• se compară (cu instrucțiunea CP), valoarea curentă a contorului 72 (contorul
rândului), cu valoarea 4. Dacă este egală (EQ) cu 4 atunci salt de exemplu la linia
110 din program:
CP 72
EQ 4, 110
Verificare ultima poziție din cadrul coloanei:
• se compară (cu instrucțiunea CP), valoarea curentă a contorului 71 (contorul
coloanei), cu valoarea 6. Dacă este egală (EQ) cu 6 atunci salt de exemplu la linia
200 din program:
CP 71
EQ 6, 200

Programul în limbaj MRL cu comenzile aferente:


****Program principal****
10 SP 7,L -setare treapta de viteză 7, cu accelerație mică (Low);
20 MO 51, O -mișcare în poziția de START;
30 OB-2 -anulare comandă oprire mișcare conveior;
20 PA 7,4,6 -definirea paletei 7 cu 4 rânduri și 6 coloane;
40 SC 72,1 -inițializare contor rând (72), setare poziția 1 în cadrul rândului;
50 SC 71,1 -inițializare contor coloană (71), setare poziția 1 în cadrul coloanei;
60 GS 1000 -apel subrutină de așteptare și preluare obiect de pe conveior și introducere în paletă;
se realizează de fapt un salt necondiționat la linia de început (1000) a subrutinei;
70 CP 72 -verificare ultima poziție din cadrul rândului;
80 EQ 4,110 -s-a așezat obiectul în ultima (4) poziție în cadrul rândului? Dacă DA atunci salt la
linia 110;
90 IC 72 -dacă NU atunci incrementează contorul rândului (următorul obiect se trece în
poziția următoare în cadrul rândului);
100 GT 60 -salt înapoi la linia 60 pentru reluare ciclu cu o nou obiect;
110 CP 71 -a fost ultima poziție în cadrul rândului! Se verifică și ultima poziție din coloană!
120 EQ 6,200 -este cumva ultima poziție (6) și în cadrul coloanei? Dacă DA atunci înseamnă că
s-a introdus obiect și în ultima poziție a peletei. Salt la linia 200!
130 IC 71 -dacă NU atunci incrementează contorul coloanei (următorul obiect se trece în
poziția următoare din cadrul coloanei)
140 SC 72,1 -și se inițializează contorul rândului (72), la valoarea 1;
150 GT 60 -salt înapoi la linia 60 pentru reluare ciclu cu o nouă piesă!
200 OB+2 -s-a terminat încărcarea paletei! Se emite comandă pentru oprirea conveiorului;
210 ED -sfârșit program principal!

Page 88
****Subrutină pentru așteptare și preluare obiect de pe conveior și introducere în paletă****
1000 ID -citire intrări digitale;
1010 TB+3, 1030 -există semnal de nivel logic 1 la intrarea digitală 3? (adică a sosit obiectul?)
1020 GT 1000 -NU a sosit obiectul! Salt înapoi la linia 1000! (rămâne în buclă de așteptare
apariție semnal la intrarea digitală 3, citind periodic intrările cu ID);
1030 OB+2 -DA, a sosit obiectul! Emitere comandă de oprire conveior, prin punerea ieșirii
digitale 2 la nivelul logic 1;
1040 MO 52,O -coborâre cu gripper deschis până la obiect (poziția 52);
1050 GC -prinderea obiectului (închidere gripper);
1060 MO 51,C -ridicare obiect de pe conveior (ridicare până în poziția 51);
1070 OB-2 -anulare comandă oprire mișcare conveior. Ca urmare conveiorul este pornit.
1080 MO 50,C -deplasare obiect până deasupra paletei (poziția 50);
1090 PT 7 -calcul coordonate locaș curent în care se va introduce obiectul; calculul se face pe
baza valorilor curente ale contorului de rând (72) și ale contorului de coloană (71).
1100 MO 7,C -introducerea obiectului în locașul curent, memorat ca poziția 7 din spațiu;
1110 GO -eliberare obiect (deschidere gripper);
1120 MO 50,O -deplasare înapoi deasupra paletei, fără obiect;
1130 MO 51,O -deplasare înapoi în poziția 51 (de START);
1140 RT -sfârșit subrutină și revenire în programul principal!

Page 89
6.4.2. Limbajul de programare KRL al firmei Kuka

Limbajul robot Kuka (Kuka Robot Language), cunoscut și sub numele de KRL, este un lim-
baj de programare proprietar, similar cu Pascal și folosit pentru programarea roboțiilor
industriali KUKA.

6.4.2.1. Sistemele de referință utilizate la roboții Kuka

În fig.14.1. sunt prezentate sistemele


de referință utilizate la programarea
roboților industriali Kuka. Ele au
următoarele semnificații:
• ROBROOT este sistemul de
referință cartezian, legat de baza
robotului. Originea lui este stabili-
tă de producător. Față de origi-
nea acestui sistem este expri-
mată: originea și orientarea siste-
mului de referință legată de flan-
șa port EF numit FLANGE res-
pectiv originea și orientarea sis-
temului de referință legat de scu-
lă: TOOL.
• WORLD este un sistem de refe-
rință, care poate fi definit de utili-
zator. În general este legat de un
punct al halei industriale, în care este instalat robotul, ales în mod convenabil. Astfel
indică poziția bazei robotului în hala industrială. De asemenea indică și originea
respectiv orientarea sistemului de referință legat de obiect: BASE. Însă atunci când
nu este definit altfel, în mod default, coincide cu sistemul de referință ROBROOT.
• BASE este sistemul de referință legat de obiectul care urmează să fie prelucrat.
Poate fi definit de utilizator. Coordonatele punctelor de pe obiect sunt date de
regulă față de originea acestui sistem.
• FLANGE este sistemul de referință legat de flanșa port EF și este stabilit de
producător. Este utilizat doar dacă nu este atașată nici o sculă la flanșa port EF.
Sistemul de referință TOOL se obține printr-o deplasare de origine a sistemului
FLANGE, în funcție de dimensiunile sculei care este atașată la flanșa port EF.
• TOOL este sistemul de referință legat de sculă. Poate fi definit de utilizator în
funcție de tipul și dimensiunile sculei care este atașată la flanșa port EF. Originea
acestui sistem de referință este numit punctul de sculă TCP (Tool Center Point).
Cunoscând poziția sistemului TOOL față de sistemul FLANGE, controller-ul
robotului calculează coordonatele punctului TCP față de originea ROBROOT
respectiv față de sistemul WORLD.

În cazul roboților Kuka, se pot comanda de la panoul de învățare în regim manual (prin
acționarea unor taste funcționale sau cu mouse-ul 6D), 2 tipuri de mișcări:
• Mişcarea axială (fig.14.2.a.), în ”coordonate specifice axelor - AXIS” (sunt practic
coordonatele CCC), la care cele 6 axe (A1, A2, A3, A4, A5 și A6), pot fi mișcate în
sens pozitiv sau negativ.

Page 90
• Mişcarea carteziană (fig.14.2.b.), la care TCP-ul poate fi mișcat în sens pozitiv sau
negativ de-a lungul sau în jurul axelor unui sistem cartezian (WORLD, BASE sau
TOOL). Pot fi realizate deci mișcările X+, X-, Y+, Z+, Z-, A+, A-, B+, B-, C+ și C-.

a) b)
Fig.14.2. Tipuri de mișcării care pot fi comandate de la panoul de învățare
Panoul de comandă al robotului (teach panel) este gândit să poată utiliza toate aceste
sisteme de coordonate. Se poate comanda robotul să realizeze mişcări în sistemul de
coordonate cartezian sau în sistemul de coordonate al articulaţiilor. La o mişcare în sistem
de coordonate cartezian sunt implicate toate articulaţiile robotului.

6.4.2.2. Lista principalelor comenzi

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

Modurile de mişcare care pot fi programate sunt următoarele:


• Mișcarea Punct cu Punct (PTP - Point-to-Point);
• Mişcarea lineară (LIN);
• Mişcarea circulară (CIRC);
• Mişcarea SPLINE.
Mişcările LIN, CIRC şi SPLINE intră în categoria "mişcărilor pe traiectorie continuă CP"
("Continuous Path"). La mod de mișcare, punctul de start al unei mişcări este identic cu
punctul ȚINTĂ (de destinaţie) al mişcării anterioare.

Modul de mişcare PTP

La acest mod de mișcare robotul


duce punctul de sculă (adică TCP-
ul), din punctul de START (de exem-
plu P1) până în punctul ȚINTĂ (de
exemplu punctul P2), pe traiectoria
cea mai rapidă, fig.14.3. Traiectoria
cea mai rapidă nu este obligatoriu şi
cea mai scurtă, nefiind deci cea
lineară. Deoarece axele robotului e-
xecută şi mişcări de rotaţie, traiecto-
riile curbe pot fi parcurse mai rapid
decât cele lineare. Traiectoria exactă

Page 91
a unei mişcări PTP nu este previzibilă. Ca urmare, la definirea/salvarea punctelor aferente
unei mișcări PTP, programatorul trebuie să aibă grijă de posibilele coliziuni cu alte obiecte
din spațiul de lucru al robotului.

La programare, pe lângă tipul mișcării (PTP) se indică doar punctul ȚINTĂ: P2, consi-
derând că punctul P1 este cunoscut din mișcarea anterioară. Viteza de mișcare se poate
programa în procente din viteza maximă, în domeniul 1-100%. Pentru mișcarea în punctul
P2, comanda generală este: PTP P2.

Fig.14.4. Profilul vitezelor la mișcarea PTP


La mișcarea PTP este utilizat un profil trapezoidal de viteză. Axa, cu cursa cea mai mare,
va atinge viteza maximă în timpul mișcării, care apoi este menținută constant, până în
apropierea punctului ȚINTĂ (P2), fig.14.4. Celelalte axe (având curse mai mici), se vor
mișca tot după un un profil trapezoidal de viteză, dar viteza atinsă la nivelul axei va fi
proporțional mai mică.

Fig.14.5. Mișcarea LIN Fig.14.6.Mișcarea CIRC

Modul de mişcare LIN

Robotul duce TCP-ul în punctul de Țintă cu o viteză predefinită şi pe o linie dreaptă,


fig.14.5. Dreapta este definită de punctul de START și de punctul ȚINTĂ, de exemplu de
punctul P1 și P2, respectiv de punctul P2 și P3. Comenzile generale, aferente parcurgerii
celor două segmente liniare, sunt: LIN P2 respectiv LIN P3. Astfel, chiar și la mișcări repe-
tate, se programează doar punctul țintă pentru noul segment de mișcare. Punctul de
START este totdeuna punctul ȚINTĂ din mișcarea anterioară.
Page 92
Modul de mișcare CIRC

Robotul duce TCP-ul în punctul de ȚINTĂ (de destinaţie) cu o viteză predefinită, pe o


traiectorie circulară, fig.14.6. Traiectoria circulară este definită cu ajutorul unui punct de
START, a unui punct auxiliar şi unui punct ȚINTĂ. Comanda aferentă parcurgerii traiecto-
riei circulare P4-P5-P6, cu plecare din punctul de START P4 este: CIRC P5 P6. Se pro-
gramează deci numai punctul auxiliar P5 și punctul țintă P6.

Fig.14.7.
Chiar și în cazul unor mișcări repetate, punctul de START, pentru noul segment de
mișcare, este de fostul punct ȚINTĂ de la programarea segmentului anterior de mișcare,
fig.14.7. Comenzile, pentru parcurgerea traiectoriei de mai sus sunt:

Atât la mișcarea LIN cât și la CIRC este utilizat un profil trapezoidal de viteză. Profilul de
viteză se referă la mișcarea punctului de sculă TCP, fig.14.8. În prima fază, viteza TCP-
ului crește rapid (faza de accelerare), atinge o valoare egală cu viteza programată (Vprog),
se menține constant viteza, la acestă valoare, iar în final, în apropierea punctului ȚINTĂ,
se realizează reducerea rapidă a vitezei până la 0 (faza de decelerare). Vitezele la nivelul
axelor, sunt astfel stabilite și reglate continuu, astfel încât la nivelul TCP-ului să rezulte o
traiectorie liniară (la mișcarea LIN) sau circulară (la mișcarea CIRC).

Fig.14.8. Profilul vitezei TCP la mișcarea LIN și CIRC

Page 93
Fig.14.9.
În cazul în care este necesară programarea unei traiectorii care conține un cerc complet,
atunci cercul trebuie împărțit în cel puțin două segmente circulare. De exemplu, în fig.14.9.
este prezentată o traiectorie formată dintr-un segment liniar (P1-P2), un cerc complet care
începe în punctul P2, trece prin punctele P3, P4 și P5 și se termină în punctul P2 și încă
un segment liniar (P2-P1). În exemplul (secvența de program) din fig.14.9. s-a considerat
că:
• în punctul P1 se ajunge printr-o mișcare de tip LIN (adică LIN P1);
• apoi urmează o mișcare tot lineară de-a lungul segmentului P1-P2 (prin LIN P2);
• o mișcare circulară de-a lungul unui semicerc dat de punctele P2 (care este punctul
de START), P3 (care este pe rol de punct auxiliar) și P4 (care este punctul ȚINTĂ).
Se programează deci: CIRC P3 P4;
• încă o mișcare circulară, de-a lungul unui alt semicerc dat de punctele P4 (care
este noul punc de START), P5 (care este pe rol de punct auxiliar) și P6 (care este
punctul ȚINTĂ). Se programează deci: CIRC P5 P2.
• și în final se ajunge înapoi în punctul P1, tot printr-o mișcare de tip LIN (LIN P1).
Astfel cercul complet a fost împărțit la două semicercuri.

Modul de mişcare SPLINE

SPLINE este o mişcare carteziană, folosită mai ales pentru traiectorii de curbe complexe.

a) b)
Fig.14.10.

Page 94
Mişcările SPLINE sunt compuse din mai multe mişcări individuale, aşanumitele segmente
Spline. În fig.14.10.b, mișcarea SPLINE este compusă din mai multe segmente SPL (cu
traiectorie în regim PTP între cele două puncte ale segmentului), segment SCIRC (de-a
lungul unui arc de cerc definit de P4, P5 și P6) și un segment SLIN (de-a lungul unei
drepte definită de P7 și P8). În cadrul programului, segmentele componente sunt grupate
într-un aşa-numit bloc Spline. Blocurile spline sunt planificate şi executate de controller-ul
robotului ca 1 instrucţiune de mişcare. De exemplu:

În secvența de program de mai sus, s-a considerat că în punctul inițial P0 se ajunge prin
mișcare PTP. După care urmează blocul SPLINE cu definirea segmentelor (cu mișcare din
P0 până în P8). Blocul SPLINE se termină cu instrucțiunea ENDSPLINE.

Observații:
1. Dacă toate punctele se află în acelaşi plan, atunci întreaga traiectore se va afla
în acest plan. La fel dacă toate punctele se află pe aceeaşi linie dreaptă, atunci
şi traiectoria va fi o linie dreaptă.
2. Viteza este programată pentru întreaga mișcare SPLINE. În timpul mişcărilor vi-
teza de mișcare a TCP-ului scade însă, în anumite cazuri, sub cea programată.
Situaţiile posibile: colţuri extreme sau reorientări ample.

Mișcare continuă –CONT (cu poziționare aproximativă)

Atunci când la trecerea TCP-ului prin anumite puncte din spațiu, nu ne interesează o
poziționare exactă (care presupune reducerea vitezei și oprirea în punctul respectiv), se
poate alege un mod de
mișcare continuă (CONT). În
cazul acestui mod de mișcare,
trecerea de la un segment la un
alt segment de mișcare, se
realizează fără oprire respectiv
fără reducerea vitezei. În a-
ceste condiții, pentru asigura-
rea unei treceri line (fără șo-
curi), de la un segment de miș-
care la altul, traiectoria TCP-
ului este modificată automat,
astfel încât să fie realizată de-a
lungul unei curbe line de racor-
dare, fig.14.11.

Page 95
De exemplu, la trecerea de la un segment liniar de mișcare P1-P2, la un alt segment linar,
de exemplu P2-P3, se introduce în mod automat o curbă de racordare, care însă nu trece
prin punctul P2. Astfel trecerea prin punctul P2 este numai una aproximativă, însă durata
totală a mișcării între punctele P1 și P3 se reduce semnificativ.
La alegerea acestui tip de mișcare (CONT), trebuie stabilită și distanța, măsurată de la
punctul ȚINTĂ, distanță de la care poate fi începută mișcarea de trecere la următorul
segment de mișcare (de-a lungul unei curbe de racordare).

Fig.14.12. Modul de mișcare continuă (CONT) la mișcarea CIRC


La mișcarea circulară CIRC, utilizarea modului CONT influențează doar trecerea prin
punctul ȚINTĂ al segmentului curent respectiv prin punctul de START al segmentului
următor. Punctele auxiliare nu sunt afectatate, fig.14.12.

Fig.14.13. Modul de mișcare continuă (CONT) la mișcarea PTP


Traiectoria urmată de TCP-ul robotului, la o mişcare continuă (CONT) de tip PTP, nu este
previzibilă, fig.14.13. Nu este previzibilă nici partea pe unde va trece traiectoria în dreptul
punctului P2.

Fig.14.14.
Page 96
În cazul în care nu este utilizată mișcarea continuă (CONT), se obține oprirea la sfârșitul
fiecărui segment de mișcare. În cazul mișcării PTP de exemplu se obține oprirea în punc-
tele P2 și P3, fig.14.14. Ca urmare în aceste puncte se obține o poziționare exactă.

Definirea INLINE a comenzilor de poziţionare şi control al mişcării

La definirea mișcărilor, mai ales la modul de programare destinat grupului ”Utilizator” –


USER, se utilizează un format fix, numit INLINE, care asigură introducerea liniilor de
program fără greșeli sintactice. Ca urmare se numește și ”mod de programare INLINE”.
Cele mai utilizate formate INLINE sunt:
• Pentru mișcare PTP și LIN:

Fig.14.15.
• Pentru mișcare CIRC:

Fig.14.16.
• Pentru oprirea mișcării, pt. o anumită durată de timp, se utilizează comanda WAIT:

Fig.14.17.
Page 97
2. Comenzi pentru intrări/ieşiri digitale

Fig.14.18.
Aceste comenzi sunt destinate controlului perifericelor cu intrări/ieşiri digitale și analogice.
Intrările și ieșirile sunt administrate cu ajutorul următoarelor variabile de sistem:

În mod tipic, sunt utilizate între 32 și 64 de intrări și ieșiri fizice digitale. Lista concretă cu
intrările și ieșirile fizice utilizate la un robot și corespondența lor cu variabilele de sistem,
rezultă din documentația robotului, întocmită de ”integratorul de sistem” (adică de cel care
a realizat punerea în funcțiune și integrarea robotului într-un sistem concret de fabricație).

Observație:
• În modul de programare avansat, destinat grupului ”EXPERT”, la programarea
intrărilor și ieșirilor se pot utiliza direct variabilele de sistem de mai sus, sau
denumirile aferente, definite de programator (de exemplu ”intrare senzor 2”).
• În modul de programare destinat grupului ”Utilizator” - USER (numit și INLINE), la
programarea intrărilor și ieșirilor se utilizează doar numărul lor. De exmeplu IN 17 în
loc de $IN[17].

Starea unei intrări digitale poate fi TRUE sau FALSE, în funcție de nivelul logic al
semnalului de la intrare. TRUE corespunde unui semnal de nivel logic 1 iar FALSE unui
semnal de nivel logic 0. În cadrul programului se poate utiliza instrucțiunea WAIT FOR,
pentru așteptarea apariției, la o anumită intrare digitală, a unei stări TRUE sau FALSE. De
exemplu:

Fig.14.19. Utilizarea instrucțiunii WAIT FOR la intrări digitale


Page 98
Dacă condiția referitoare la stare logică a intrării nu este îndeplinită, odată cu întreruperea
execuției programului, se întrerupe și mișcarea TCP-ului pe traiectoria programată. De
exemplu:

Fig.14.20.
Această oprire are loc și atunci dacă, pentru deplasare prin punctul P2, este selectată
mișcarea continuă (CONT). În acest caz din urmă, mișcarea continuă este anulată
automat și se realizează oprirea în P2 (cu poziționare exactă), până la îndeplinirea
condiției logice referitoare la intrare.

Formatul INLINE pentru comanda WAIT FOR este:

Fig.14.21.
Cu comanda WAIT FOR se poate programa și condiții logice complexe, cu combinarea
condițiilor aferente semnalelor de intrare (IN) cu cele aferente semnalelor de ieșire (OUT).
Numărul maxim al ”operanzilor” în interiorul unei expresii logice este 12:

Fig.14.22.
Page 99
Pentru emiterea unui semnal digital către echipamente periferice se poate utiliza comanda
OUT. Formatul INLINE a comenzii OUT este:

Fig.14.23.
Pentru emiterea unui semnal digital de tip ”impuls” cu durată fixă (între 0.1 și 3 secunde),
către echipamente periferice se poate utiliza comanda PULSE. Formatul INLINE a
comenzii PULSE este:

Fig.14.24.
Observații:
1. Există posibilitatea ”sincronizării” operației de emitere a unui semnal, cu momentele
traversării punctelor de START respectiv ȚINTĂ a segmentului de mișcare. În acest
scop se poate utiliza comanda SYN OUT, fig.14.25. La această comandă se poate
preciza momentul emiterii semnalului la o durata de timp (în milisecunde) după traver-
sarea punctului START sau înainte de atingerea punctului ȚINTĂ.
2. La fel există posibilitatea ”sincronizării” operației de emitere a unui semnal de tip PULS,
cu momentele traversării punctelor de START respectiv ȚINTĂ a segmentului de
mișcarei. În acest scop se poate utiliza comanda SYN PULSE. La această comandă se
poate preciza momentul emiterii semnalului PULSE la o durata de timp (în milise-
cunde) după traversarea punctului START sau înainte de atingerea punctului ȚINTĂ. În
plus față de SYN OUT se indică și durata semnalului PULSE care trebuie să fie între
0.1 și 3 secunde.

Page 100
Fig.14.25. Comanda SYN OUT

3. Comenzi pentru controlul programului

De regulă comenzile pentru controlul programului se pot utiliza numai în modul de progra-
mare EXPERT. Cele mai utilizate instrucțiuni aferente controlului programului sunt:

IF ... THEN ... ELSE ... ENDIF


Determină programul să testeze o condiţie şi în
funcţie de rezultat (TRUE sau FALSE), decidă e-
xecuţia blocului de după THEN sau a blocului
ELSE. Programul este apoi continuat după ENDIF.
Blocul ELSE poate fi omis. În acest caz, dacă con-
diția nu este îndeplinită, programul este continuat
în poziția imediat după ENDIF.

În secvența de program alăturat, dacă (IF) nivelul


logic de la intrarea 22 este 1 atunci (THEN) se
realizează o mișcare PTP până în poziția HOME.
Dacă nu este la nivelul logic 0 atunci (ELSE) întâi se emite un semnal de nivel logic
1 la ieșirea 17,se poziționează semnalul de la ieșirea 18 la nivelul logic 0 și în final
se comandă o mișcare PTP până în poziția HOME.

LOOP ... ENDLOOP


Definește o buclă de repetare infinită a instruc-
țiunilor introduse între LOOP și ENDLOOP. Pentru
ieșirea din buclă se poate utiliza instrucțiunea EXIT.

De exemplu se repetă mișcările lineare în punctele


P1, P2 și P4 până la apariția semnalului de nivel
logic 1 (TRUE) la intrarea digitală 1. Aceasta din
urmă este condiția lansării instrucțiunii EXIT pentru
ieșire din buclă.

Page 101
FOR ... TO ... ENDFOR
Definește o buclă în care un contor depășește o anumită valoare sau scade sub o
anumită valoare. În exemplul de mai jos contorul A este un număr întreg și
începând cu valoarea 1 este incrementat, la fiecare execuție a buclei cu valoatrea
2. Variabila B este incrementată cu 1 în fiecare din cele 5 execuții a buclei.

REPEAT ... UNTIL


Definește o buclă care se repetă până când este îndeplinită o anumită condiție.
Blocul de declarații este executat cel puțin o dată. Starea este verificată după
fiecare execuție a buclei. Dacă condiția este îndeplinită, execuția programului este
reluată la prima declarație după linia UNTIL.
Exemplul 1: bucla este executată până când intrarea nr.1 se menține la nivelul logic
1 (TRUE).

Exemplul 2: Bucla este executată o singură dată, chiar dacă condiția de terminare
este deja îndeplinită înainte de executarea buclei, deoarece condiția de terminare
nu este verificată până la sfârșitul buclei. După executarea buclei, R va avea
valoarea 102.

WHILE ... ENDWHILE


Definirea unei bucle care se repetă atâta timp cât este îndeplinită o anumită
condiție. Dacă condiția nu este îndeplinită, executarea programului este reluată la
prima declarație după linia ENDWHILE. Condiția este verificată înainte de fiecare
execuție a buclei, astfel în cazul în care condiția nu este deja îndeplinită în
prealabil, blocurile din interiorul buclei rămân neexecutate.

Exemplul 1. Bucla este executată de 99 de ori. După executarea buclei, W are


valoarea 100.

Exemplul 2: Bucla este executată până când intrarea 1 se menține la valoarea


logică 1 (TRUE). Condiția este verificată înainte de fiecare execuție a buclei. În
Page 102
cazul în care condiția nu este deja îndeplinită în prealabil, blocurile din interiorul
buclei rămân neexecutate.

GOTO
Salt necondiționat la o etichetă (Label:) în program. Executarea programului este
reluată în această poziție. Destinația (saltul) trebuie să fie în același
program/subprogram. Exemplu: salt necondiționat, de la o instrucțiune IF, la etiche-
ta ”ENDE:” care este la sfârșitul programului (END).

Crearea și apelarea subprogramelor


Subprogramele pot fi locale, când se găsesc scrise în același fișier împreună cu programul
principal, sau pot fi globale, când fac parte dintr-un fișier separat. Un subprogram global
poate fi apelat (cu numele) de oricare din programele salvate în memoria controllerului.

Fig.14.30. Apelarea unui subprogram din programul principal


Conform fig.14.30., fiecare program trebuie să conține la partea de început, o instrucțiune
INI pentru inițializarea variabilelor interne. Prima și ultima mișcare din programul principal
trebuie să fie o mișcare PTP până în punctul HOME.
Page 103

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