Documente Academic
Documente Profesional
Documente Cultură
INTRODUCERE
1.1. Definiţii
Î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.
Din punct de vedere comercial, aplicaţiile industriale ale roboţilor sunt încă
predominante. Principalele aplicaţii industriale ale roboţilor sunt:
Page 1
Fig.1.5. Montaj autoturisme Fig.1.6. Vopsire caroserie auto
Î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
Page 3
Fig.1.17 Robot de companie Fig.1.18. Robot insoțitor al jucatorului de golf
Page 4
Fig.1.21. Robot pentru operații chirurgicale
Page 5
Fig.1.26. Robot cu aplicaţii în medii nucleare Fig.1.27. Robot militar folosit la
aprovizionarea cu medicamente
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.
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.
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.
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
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.
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.
Î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.
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)
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)
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))
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”.
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.).
Page 19
2.1.2. Structura bloc a sistemului mecanic
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)
Î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
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.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.
Page 25
2.1.4. Structura mecanismului de orientare (MO)
Î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.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ă.
Page 27
2.1.5. Puncttul caracte
eristic, dre
eapta cara
acteristică
ă și dreaptta auxiliară
ă
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.
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
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.
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ă).
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.
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
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
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.
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..
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.
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.
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.
Page 36
(scumpe) şi trebuie elaborat un software mai complicat pentru acestea (costuri suplimen-
tare de manoperă).
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.
Î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.
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.
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ă”.
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).
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).
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
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ă.
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
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
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”.
Controller-ul SAFETY
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ă.
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.
Page 53
F
Fig.7.1.5. V
Vedere inte
erior dreaptta
Fig.7.16. Echipam
mentele de
e pe ușa du
ulapului
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.
Page 56
4.2. Metode de comandă a roboților industriali
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ă
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 20200 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.
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 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
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
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
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:
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;
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.
Page 64
6. PROGRAMAREA ROBOȚILOR INDUSTRIALI
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
Teach-in direct
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ă.
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
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)
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 î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:
Î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).
Page 71
Fig.12.6.Mediul de programare RobotStudio
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.
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)
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.
Page 75
Strategia dezvoltării programelor pentru roboţi industriali
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.
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.
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.
Î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.
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.
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.
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.
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,
Page 82
6.4.1.2. Exemple de aplicații scrise în limbajul de programare MRL. Aplicația 1.
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.
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).
Page 85
Aplicația4. Preluarea obiectelor de pe un conveior și așezarea lor într-o paletă 4x6
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ă.
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.
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
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.
Î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.
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.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).
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.
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.
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.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ă.
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.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.
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
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:
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.
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.
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).