Documente Academic
Documente Profesional
Documente Cultură
BARABÁS TIBERIU
ROBOTICĂ
ROBOŢI INDUSTRIALI
ÎNDRUMAR DE LABORATOR
2005
UNIVERSITATEA DIN ORADEA
FACULTATEA DE ELECTROTEHNICĂ ŞI INFORMATICĂ
ROBOTICĂ
ROBOŢI INDUSTRIALI
ÎNDRUMAR DE LABORATOR
2005
PREFAŢĂ
Autorul
3
CUPRINS
BIBLIOGRAFIE ................................................................................................................. 69
4
Lucrarea nr.1.
I. Scopul lucrării
Fig.1.1.
Sistemul micro-robot RV-M1 este format (fig.1.1.) din următoarele părţi componente:
un robot industrial, o Unitate de comandă (Drive Unit) prin care se realizează conducerea
nemijlocită a robotului, o cutie de instruire (Teach In Box) care se utilizează în comanda
manuală a sistemului şi pentru memorarea poziţiilor de pe traiectoria programată, respectiv un
calculator personal de tip PC utilizat numai în scopuri de programare. Programul scris pe cal-
culator este transferat şi rulat în memoria RAM a Unităţii de comandă, care este susţinută prin
intermediul unei baterii-acumulator. Pentru transfer de programe şi comenzi se utilizează
comunicaţia serială, după standardul RS232C.
Unitatea de comandă înglobează şi un inscriptor de eprom-uri. Astfel există posibilita-
tea "salvării" programului de comandă, precum şi a coordonatelor poziţiilor memorate, într-un
eprom de 32 Kocteţi. Conţinutul epromului poate fi transferat înapoi în memoria RAM, ori-
când, prin comenzile date de la cutia de instruire, sau prin macroinstrucţiunile specifice ale
5
Unităţii de comandă. După ce programul de comandă este pus la punct şi s-a realizat şi "me-
morarea" în eprom a programului, respectiv a poziţiilor utilizate, sistemul micro-robot poate fi
utilizat în regim de sistem autonom (sistem independent de calculator personal). În acest caz
lansarea, oprirea respectiv resetarea programului din memoria RAM se poate realiza prin in-
termediul butoanelor de comandă de pe panoul frontal al Unităţii de comandă (fig.1.2.).
Fig.1.2.
Pe când cu ajutorul butonului STOP se poate opri execuţia programului dar nu se poa-
te suspenda comanda care este în curs de execuţie, cu butonul EMG. STOP (Stop general) se
poate opri în ori ce moment execuţia programului (respectiv a comenzii date de la cutia de in-
struire). Ledul ERROR indică apariţia erorii în preluarea sau execuţia unei comenzi date, iar
ledul EXECUTE indică faptul că o comandă dată de la cutia de instruire (sau un program din
memorie) este în curs de execuţie.
Activarea regimului de sistem autonom se realizează cu ajutorul unui selector
(SWITCH) din interiorul carcasei Unităţii de comandă. În acest regim nu se pot da comenzi de
la calculatorul personal şi este imposibilă preluarea informaţiilor de la Unitatea de comandă
referitoare la poziţia robotului în spaţiu (poziţia punctului caracteristic). Având în vedere că
sistemul micro-robot din laborator este utilizat exclusiv în scopuri educaţionale (programarea
robotului cu ajutorul calculatorului, respectiv vizualizarea efectelor ale comenzilor date) acest
regim autonom este dezactivat. În această situaţie butonul de comandă START este inactiv,
iar lansarea programului se realizează de la calculator conform procedurii de la pct.II.5.
Schimbul de semnale între sistem şi echipamentul periferic (întrerupătoare, relee, le-
duri şi controlere programabile) sunt efectuate prin interfaţa I/O a Unităţii de comandă.
Cutia de instruire (Teach In Box) se utilizează pentru comanda manuală a robotului.
Prin ea pot fi realizate:
1. sincronizarea robotului (deplasarea axelor în originea lor mecanică);
2. memorarea poziţiilor ţintă şi via de pe traiectorie utilizând metoda "învăţării"
(teaching);
3. transferul programului (respectiv poziţiilor) din eprom în memoria RAM a Unită-
ţii de comandă;
4. înscrierea în eprom a programului existent (respectiv a poziţiilor existente) la un
anumit moment dat în memoria RAM a Unităţii de comandă;
5. rularea programului în regim pas cu pas (Step by Step).
Robotul de bază are 5 grade de mobilitate. Cuplele cinematice conducătoare (J1, J2,
J3, J4, J5 ) sunt de rotaţie (fig.1.3.), şi sunt realizate cu servomotoare de curent continuu.
Aceste servomotoare sunt echipate cu traductoare de poziţie a rotorului (encoder de poziţie).
6
Cu ajutorul acestor traductoare se realizează controlul poziţiei robotului la nivelul articulaţii-
lor.
Având informaţii despre poziţia momentană a cuplelor cinematice conducătoare şi cu-
noscând dimensiunile fizice ale articulaţiilor, se poate obţine în orice moment coordonata
punctului caracteristic (al obiectului manipulat) faţă de o poziţie de referinţă în sistemul de
coordonate carteziene. Algoritmul pentru calculul poziţiei punctului caracteristic, precum şi
funcţiile de conducere utilizate, cu ajutorul cărora se generează mişcările, sunt realizate şi fi-
xate de producător, şi constituie o parte din softul de bază al robotului.
Fig.1.3.
La acest sistem micro-robot mai este ataşată o axa suplimentară, numită Slide (ghidaj),
folosită pentru deplasarea robotului de-a lungul axei Y în sistemul de coordonate carteziene
(Vezi: lucrarea nr.2 ). "Poziţionarea" robotului pe Slide se realizează separat, cu ajutorul unui
controler de ax (KV24). Acest controler (automat programabil) primeşte comenzi, pentru po-
ziţionarea robotului într-unul din punctele învăţate (memorate) anterior, fie de la cutia de in-
struire a Slide-ului, fie de la Unitatea de comandă a robotului prin intermediul interfeţei I/O.
Antrenarea Slide-ului este realizată cu ajutorul unui servomotor de curent continuu prevăzut
cu un "encoder de poziţie". Senzorii de proximitate LS1 şi LS2 sunt utilizate pentru sincroni-
zarea iniţială a mişcării (LS1) respectiv ca limitatoare de cursă (LS1 şi LS2).
Robotului de bază i se poate ataşa diferite tipuri de mecanisme de prehensiune cu care
se realizează apucarea obiectelor (în continuare, pentru simplitate, vom numi acest mecanism
de prehensiune: SCULĂ sau GRIPPER).
Mişcarea de închidere şi deschidere a gripper-ului este realizată tot cu ajutorul unui
servomotor de curent continuu. Starea închisă sau deschisă a gripper-ului nu este confirmată,
dar se poate regla (din program) valoarea forţei de strângere (în trepte de la 0 la 9).
7
II.2. Schema cinematică a robotului de bază
Fig.1.5.
8
II.3. Caracteristicile generale ale robotului
După punerea sub tensiune, robotul trebuie readus în poziţia de origine mecanică în
vederea sincronizării axelor de rotaţie (în lipsa sincronizării, comenzile de deplasare la o po-
ziţie memorată, sau date prin coordonate, precum şi memorarea poziţiilor nu sunt efectuate).
Această sincronizare poate fi realizată fie utilizând în acest scop cutia de instruire, fie utili-
zând comenzi transmise de la calculatorul personal către Unitatea de comandă:
1. în cazul cutiei de instruire sincronizarea se realizează apăsând succesiv butoanele NST
şi ENT (Enter);
2. în cazul calculatorului personal se utilizează comanda NT (Nest) care se transferă în
memoria RAM a Unităţii de comandă unde este lansată şi executată imediat.
În ambele cazuri întâi se deplasează axele J2, J3, şi J4 spre originile lor, după care ur-
mează mişcarea axelor J1 şi J5.
Sincronizarea axelor se realizează cu ajutorul microîntrerupătoarelor (existente la nive-
lul fiecărei articulaţii) care sunt acţionate independent şi numai atunci când axa respectivă a
ajuns în originea sa mecanică. Simultan cu sincronizarea axelor are loc şi readucerea gripper-
ului în stare deschisă.
Observaţie:
În timpul execuţiei comenzii date de la cutia de instruire, ledul "EXECUTE" de pe pa-
noul frontal al Unităţii de comandă este aprins. Acesta indică faptul că comanda este în
curs de execuţie şi Unitatea de comandă nu este pregătită pentru preluarea altor co-
menzi. În consecinţă următoarea comandă se poate da numai după stingerea led-ului
amintit.
9
5. Se transferă programul de comandă din eprom în memoria RAM a Unităţii de comandă
prin apăsarea succesivă a butoanelor TRN şi ENT.
6. Lansarea programului se realizează utilizând comanda RN (Run) indicând şi numărul de
ordine al liniei de start din cadrul programului: RN 10. Pentru lansarea acestei comenzi
este necesar transferul acesteia de pe calculatorul personal în memoria RAM a Unităţii
de comandă.
Observaţii:
1. Dacă programul este executat, adică s-a realizat transferul comenzii RN 10, pe monitorul
calculatorului apare mesajul "PRESS ANY KEY TO CONTINUE" iar robotul începe
mişcările corespunzătoare programului din memoria Unităţii de comandă.
2. În cazul în care nu apare mesajul amintit şi/sau robotul nu începe mişcările programate,
se verifică corectitudinea programului scris, respectiv legătura dintre calculator şi Unita-
tea de comandă.
10
Lucrarea nr.2.
I. Scopul lucrării
PTP selectează operaţia de mişcare articulată (în sistemul de coordonate robot). Dacă s-a
apăsat acest buton, operaţia cu oricare "cheie de mişcare" (B+, B-, S+ ,S- ,E+ ,E- ,P+
,P- ,R+ ,R-) implică o mişcare de rotaţie (în jurul axelor J1, J2, J3, J4, sau J5) în sensul
specificat de semnul "+" sau "-" (fig.2.2.). Mişcarea are loc numai în timpul apăsării
cheilor şi numai până la atingerea microîntrerupătorului de capăt de cursă. Când se
activează cutia de instruire prin punerea selectorului pe ON este selectat automat acest
"regim" PTP.
11
Fig.2.2.
XYZ selectează operaţia de mişcare paralelă cu axele sistemului de coordonate cartezian şi
invalidează regimul PTP şi TOOL. Dacă s-a apăsat acest buton, vârful sculei (punctul
caracteristic) se va putea mişca paralel cu axele sistemului cartezian după direcţiile
X+, X-, Y+, Y-, Z+, Z- prin mişcarea simultană a mai multor axe (J1, J2, J3, J4, J5).
Totodată rămân active cheile P+, P-, R+, R- prin care se realizează mişcarea de rosto-
golire (P) respectiv de rotaţie (R) a obiectului manipulat.
Originea sistemului de referinţă cartezian este fixată la baza robotului. Conform figurii
2.3. axa Z corespunde cu deplasarea pe verticală a punctului caracteristic; axa Y este paralelă
iar axa X este perpendiculară pe Slide.
Fig.2.3.
12
Fig.2.4.
TOOL Selectează operaţia de mişcare în sistemul de referinţă legat de "sculă" (gripper)
şi invalidează regimurile PTP şi XYZ. În acest regim este posibilă o mişcare de
avansare şi de retragere a gripper-ului de-a lungul direcţiei momentane a axei
sculei (fig.2.4.). Sunt active cheile: Z+ şi Z-. Mişcarea are loc (în timpul apăsă-
rii cheii Z+ sau Z-) până când punctul caracteristic poate fi menţinut pe dreapta
definită de axa sculei.
Poziţia de referinţă corespunde cu poziţia "0" a robotului, faţă de care sunt calculate
coordonatele carteziene ale poziţiilor 1..629. Fixarea acestei poziţii este realizată la punerea în
funcţiune a robotului de către pro-
ducător, luând în considerare şi lungi-
mea sculei (TL=107 mm).
În figura 2.5. este exemplificat
modul de definire a poziţiei de referinţă
(axele de rotaţie J2, J3, J4, J5 se găsesc
pe o dreaptă paralelă cu baza robotului
respectiv cu axa Y a sistemului de refe-
rinţă cartezian).
13
INC+ENT Comandă pentru mişcarea robotului într-o poziţie memorată, având număr de
ordine mai mare şi totodată cel mai apropiat de cel al poziţiei curente.
DEC+ENT Comandă pentru mişcarea robotului într-o poziţie memorată, având număr de
ordine mai mic şi totodată cel mai apropiat de cel al poziţiei curente.
14
Lucrarea nr.3.
I. Scopul lucrării
15
comandă a robotului (memorie susţinută de o baterie-acumulator) până la ştergere cu tasta PC
sau până la memorarea unei alte poziţii dar cu acelaşi număr de ordine. Odată cu memorarea
poziţiei se memorează şi starea (închisă sau deschisă) a gripper-ului.
Cu ajutorul cutiei de instruire, punctul caracteristic se poate deplasa în toate poziţiile
memorate utilizând tasta MOV specificând şi numărul de ordine al poziţiei. La fel se poate
utiliza tastele INC şi DEC cu ajutorul cărora se poate deplasa robotul în poziţia memorată care
are număr de ordine mai mare (INC - incrementare) sau mai mic (DEC - decrementare) decât
cel al poziţiei actuale.
Traiectoria se stabileşte prin definirea punctelor de start, de ţintă şi a unui număr mi-
nim de puncte "via" prin care punctul caracteristic este obligat să treacă în vederea evitării co-
liziunilor cu restul "obiectelor" din mediu. Se stabilesc numerele de ordine pentru fiecare po-
ziţie de pe traiectorie, respectiv stările închise sau deschise ale gripper-ului în aceste poziţii.
Trebuie avut în vedere că în general prima mişcare a robotului după sincronizare se fa-
ce într-o poziţie de "aşteptare", care coincide cu poziţia de "start", respectiv (după parcurgerea
traiectoriei programate) cu poziţia "finală".
16
operaţiilor sunt date de succesiunea executării acestor instrucţiuni. În cadrul programului fie-
care linie este numerotată. Aceasta permite utilizarea instrucţiunilor de tip salt condiţionat şi
de tip salt necondiţionat. Dacă în program nu sunt instrucţiuni de tip salt condiţionat sau salt
necondiţionat, executarea instrucţiunilor se face în succesiunea în care apar în cadrul progra-
mului. În cazul utilizării instrucţiunilor de salt condiţionat (sau salt necondiţionat), succesiu-
nea operaţiilor depind şi de execuţia acestor instrucţiuni.
Se recomandă ca numerotarea liniilor din program să se facă din 5 în 5 sau din 10 în
10. Astfel apare posibilitatea intercalării ulterioare, între două linii consecutive, a unui număr
limitat de fraze.
Înaintea lansării în execuţie, programul se verifică în regim pas cu pas (frază cu frază),
adică se lansează şi se verifică execuţia separată a fiecărei fraze, utilizând în acest scop cutia
de instruire.
Se începe cu prima linie din program. Se apasă tasta STEP după care se tastează nu-
mărul liniei (10) şi se confirmă cu tasta ENT. După execuţia liniei tastate, pe afişorul cutiei de
instruire apare numărul de ordine al frazei (liniei) următoare din program (în cazul programu-
lui de mai sus: 15). Astfel pentru lansarea în execuţie a frazei următoare este suficient apăsa-
rea succesivă a tastelor STEP şi ENT. După ultima frază executată a programului, pe dispozi-
tivul de afişare va apărea numărul "0" (sfârşit program).
17
Astfel se verifică atât fiecare frază cât şi succesiunea corectă a instrucţiunilor şi a fra-
zelor din program. Însă nu se poate verifica temporizările existente în cadrul programului.
Această instrucţiune va fi executată numai dacă poziţia specificată a fost memorată an-
terior. În caz contrar apare eroare şi programul nu va fi executat.
Instrucţiunea va fi executată (fără să apară eroare) chiar dacă gripper-ul este deschis
înaintea lansării acestei comenzi. Deschiderea gripper-ului nu este controlată şi în consecinţă
se recomandă utilizarea acestei instrucţiuni împreună cu o instrucţiune de temporizare. Durata
minimă recomandată a temporizării este de 0.7[s].
18
Formatul instrucţiunii:
GC
Fig.3.1.
După sincronizare, gripper-ul este deplasat în poziţia 1 (de aşteptare). După aşezarea
piesei în poziţia 6, gripper-ul se întoarce în poziţia 1, trecând prin poziţiile 5 şi 7, necesare
pentru evitarea coliziunii cu suprafaţa de aşezare “B”.
1. Pentru aplicaţia de mai sus se parcurg toate etapele aferente paragrafelor II.1.1 - II.1.8..
2. Se completează următorul program de comandă:
19
'*******PROGRAM DE COMANDĂ OPERAŢIE DE MANIPULARE********
'
10 OPEN "COM1:9600,E,7,2" FOR RANDOM AS #1
20 PRINT #1, "10 " 'deplasare în poz1 cu gripper-ul închis
30 PRINT #1, "15 "
40 PRINT #1, "20 " 'deplasare în poz3 cu gripper-ul deschis
50 PRINT #1, "25 " 'închidere gripper
60 PRINT #1, "30 " 'temporizare
70 PRINT #1, "35 "
80 PRINT #1, "40 "
90 PRINT #1, "45 "
100 PRINT #1, "50 "
110 PRINT #1, "55 " 'deschidere gripper
120 PRINT #1, "60 "
130 PRINT #1, "65 "
140 PRINT #1, "70 "
150 PRINT #1, "75 " 'revenire în poziţia de start
160 PRINT #1, "80 ED" 'sfârşit program robot
170 END 'sfârşit program BASIC
20
Lucrarea nr.4.
I. Scopul aplicaţiei
Cutia de instruire din figura 4.2. permite comanda manuală a deplasărilor robotului de-
a lungul Slide-ului. Cu această cutie de instruire se pot transmite comenzi de deplasare şi de
memorare a poziţiei către controlerul Slide-ului. Activarea cutiei de instruire se realizează prin
punerea selectorului în poziţia MAN (manual). Selectarea acestui regim este indicată de ledul
din partea superioară a cutiei. Cu ajutorul butoanelor LEFT (stânga) şi RIGHT (dreapta) este
posibilă deplasarea robotului în orice poziţie dintre cele două limitatoare de cursă (LS1 şi
LS2). Limitatorul de cursă LS1 este utilizat şi pentru sincronizarea Slide-ului, poziţia de
sincronizare corespunzând poziţiei "0".
21
Memorarea unei poziţii se realizează prin
apăsarea butonului ENTER, dacă în prealabil s-a se-
lectat numărul poziţiei cu "selectorul de poziţii"
(Point Selector). Numărul maxim de poziţii memora-
te este 23=8.
Deplasarea robotului pe Slide într-una din
poziţiile memorate, se realizează prin selectarea nu-
mărului corespunzător poziţiei cu ajutorul selectoru-
lui de poziţii, după care se apasă butonul "Move to
selected point" (până când robotul ajunge în poziţia
programată). Atât deplasarea la o anumită poziţie
memorată cât şi memorarea poziţiilor este posibilă
numai după ce s-a realizat sincronizarea Slide-ului.
Această sincronizare se realizează fie prin apăsarea
butonului de comandă RIGHT până când baza robo-
tului ajunge în dreptul senzorului LS1, fie prin co-
manda de deplasare a robotului în poziţia "0" de pe
Slide.
Fig.4.3.
După specificarea poziţiei este necesară transmiterea de la Unitatea de comandă a unei
"cereri de poziţionare" care este echivalentă cu comanda: "start deplasare în poziţia specifica-
tă". Sfârşitul deplasării este confirmat de către controler-ul Slide-ului prin semnalul "Slide în
poziţie".
Observaţii:
1. Semnalul "Slide în poziţie" indică situarea robotului pe Slide în poziţia specificată prin
adresa de poziţionare.
2. Dacă se doreşte efectuarea unei noi deplasări într-o altă poziţie memorată, se specifică o
nouă adresă de poziţionare. Însă înaintea începerii mişcării, semnalul de "Slide în poziţie"
încă este activ, deoarece indică situarea robotului în poziţia curentă (în fosta poziţie pro-
gramată). Acest semnal devine 0 logic numai după ce robotul se îndepărtează fizic din
22
această poziţie (adică începe o nouă deplasare). Ca urmare atingerea poziţiei programate
este confirmată la o tranziţie a semnalului "Slide în poziţie" de la 0 logic la 1 logic.
3. La atingerea poziţiei programate se recomandă "anularea" cererii de poziţionare, întrucât
doar în această stare este posibilă specificarea unei noi adrese de poziţionare.
În tabelul următor este indicată lista intrărilor şi ieşirilor numerice (ale Unităţii de co-
mandă) utilizate la comanda deplasării robotului pe Slide:
Pentru efectuarea unei deplasări într-una din poziţiile memorate este necesară realiza-
rea unui program de comandă pentru robotul RV-M1, cu ajutorul căruia se realizează progra-
marea stării ieşirilor numerice corespunzătoare şi supravegherea intrării numerice 7.
Pentru programarea stării ieşirilor numerice şi citirea stării intrărilor numerice se pot
utiliza următoarele instrucţiuni:
ID (Input Direct) Este o instrucţiune de citire a stărilor tuturor celor 16 intrări numerice.
Valoarea formată din stările logice (0 sau 1) ale celor 16 intrări, este în-
cărcată într-un registru intern de comparare.
Formatul instrucţiunii:
ID
Conţinutul registrului intern de comparare este folosit de instrucţiunea TB (Test Bit).
TB (Test Bit) Este o instrucţiune de salt, condiţionat de starea "bitului" (starea intrării)
specificat. Dacă condiţia nu este îndeplinită, se continuă execuţia progra-
mului cu linia următoare.
Formatul instrucţiunii:
TB <+ sau - > <număr intrare numerică>, <număr linie>
unde: "+" reprezintă nivelul logic "1"
"-" reprezintă nivelul logic "0"
OB (Output Bit) Este o instrucţiune prin care se realizează setarea stării logice (0 sau 1) a
ieşirii numerice specificată. Stările celorlalte ieşiri numerice rămân
neschimbate.
Formatul instrucţiunii:
OB <+ sau - > <număr ieşire numerică>
unde: “+” semnifică nivelul logic “1”
“-“ semnifică nivelul logic “0”
0 ≤ număr ieşire numerică ≤ 15.
23
În cadrul programului, numărul poziţiei în care vrem să deplasăm robotul pe Slide se
specifică în cod binar, utilizând ieşirile numerice 8, 9 si 10. De exemplu: dacă se doreşte de-
plasarea robotului în poziţia “5” de pe Slide, poziţionăm ieşirile 8 şi 10 la nivel logic 1, iar ie-
şirea 9 la nivel logic 0. Deplasarea în poziţia specificată se lansează prin poziţionarea ieşirii
11 la nivelul logic “1” (cerere de poziţionare pe Slide). Când robotul a ajuns în poziţia specifi-
cată, controler-ul Slide-ului poziţionează la nivelul logic “1” intrarea numerică nr.7. a Unităţii
de comandă. Înaintea lansării unei noi deplasări pe Slide este nevoie de anularea cererii de po-
ziţionare (ieşirea 11 se poziţionează la nivelul logic “0”).
Fig.4.4. Fig.4.5.
Schema logică a programului este prezentată în figura 4.4. Se poate observa faptul că
conţinutul blocurilor 2, 3, 4, 5, 6, 7 nu depind de codul binar al adresei de poziţionare. Din
această cauză, dacă în cadrul unui program se doreşte efectuarea a mai multor deplasări la po-
ziţii diferite, e mai convenabilă realizarea (pe baza blocurilor amintite) a unei "subrutine de
deplasare". Această subrutină poate fi apelată ori de câte ori va fi necesară o deplasare la o
poziţie specificată printr-o adresă de poziţionare.
Apelarea subrutinei se poate realiza prin instrucţiunea: GS (Go Subrutine). Această
instrucţiune determină un salt necondiţionat la linia de start a unei subrutine. Revenirea din
subrutină se va face cu ajutorul instrucţiunii RT. Formatul instrucţiunii:
GS <număr linie>
24
În figura 4.5. s-a reprezentat schema logică a unui program în care se efectuează mai
multe deplasări pe Slide. Se poate observa faptul că blocul de definiţie a subrutinei este aşezat
la sfârşitul programului "principal" adică după instrucţiunea ED. Când în cadrul programului
s-a ajuns la linia care conţine instrucţiunea ED execuţia programului este suspendată. Astfel
se poate preîntâmpina execuţia suplimentară şi nedorită a subrutinei la terminarea programu-
lui.
25
Lucrarea nr.5.
I. Scopul lucrării
Fig.5.1.
Sincronizarea robotului cu comenzile numerice ale staţiei VISION 2000 se realizează
prin intermediul semnalelor discrete existente între interfaţa I/O a Unităţii de comandă a
robotului RV/M1 şi interfaţa I/O a staţiei deservite. Conform figurii 5.1., prin nivelul logic "1"
al semnalului "vision ready", Unitatea de comandă a robotului este înştiinţată despre faptul că
staţia de control dimensional este pregătită pentru realizarea unei noi "comparări". Controlul
piesei începe în momentul în care nivelul semnalului de "cerere de control dimensional", emis
de Unitatea de comandă, devine "1" logic. În timpul comparării, semnalele: "piesă bună" şi
"piesă rebut" sunt menţinute la nivelul logic "0".
26
ţia de oprire vagonet (2) şi sunt introduse în staţia
VISION 2000 (6), iar transportul până în dreptul
staţiei de control dimensional este realizat prin
intermediul Slide-ului (4).
După ce robotul (9) introduce piesa cilin-
drică pe suportul (8) de sub camera CCD (7) se
retrage, emite o "cerere de control dimensional"
şi aşteaptă rezultatul controlului. Dacă dimensiu-
nile verificate se încadrează în domeniul de tole-
ranţă stabilit, adică avem o "piesă bună", aceasta,
prin intermediul robotului (şi a Slide-ului) este
transportată şi pusă înapoi pe conveior. Dacă pie-
sa este "rebut", este eliminată într-un container
(5), după care robotul se întoarce în poziţia de aş-
teptare, din faţa staţiei de oprire vagonet (3).
Fig.5.3.
27
În figura 5.3. s-a reprezentat schema logică a procesului. Programul corespunzător
schemei logice începe cu deplasarea robotului în poziţia de aşteptare (1), apoi se realizează
sincronizarea Slide-ului (prin deplasarea robotului în poziţia 0) (2), şi se verifică staţia
VISION 2000. Dacă e "ready", robotul se deplasează în poziţia 1. de pe Slide (4) şi ia piesa de
pe conveior.
Prin intermediul Slide-ului robotul se deplasează (6) în poziţia 5. (adică până în faţa
staţiei VISION 2000) după care are loc (7) aşezarea piesei sub camera CCD şi se emite o
cerere de control dimensional (9). Sfârşitul operaţiei de control dimensional se "constată" prin
testarea semnalelor “piesă bună” şi “piesă rebut”. Dacă operaţia de control dimensional încă
nu sa terminat, ambele semnale sunt la nivel logic 0.
Dacă piesa cilindrică este "bună" (10), întâi se anulează cererea de control dimensional
(12), apoi se ia piesa de sub camera CCD (13), se transportă până în dreptul staţiei de oprire
vagonet (14), şi se aşează pe conveior (15) după care robotul revine în poziţie de aşteptare
(16). Dacă piesa e "rebut", şi în acest caz se anulează cererea de control dimensional (17), apoi
se ia piesa de sub camera CCD (18), se introduce intr-un container (19), după care robotul se
deplasează înapoi până în faţa staţiei de oprire vagonet (20) şi revine în poziţie de aşteptare
(16).
Prima mişcare este în poziţia de aşteptare (11), după care robotul se apropie de piesă
(13) cu gripper-ul deschis, apucă piesa (12) prin închiderea gripper-ului, se îndepărtează de
conveior cu gripper-ul închis (13), realizează o rotaţie cu 180 de grade (cu piesa spre staţia
28
VISION 2000) (5), se deplasează pe Slide până în faţa staţiei, introduce piesa sub camera
CCD (30) şi aşează pe suport (31). Robotul se îndepărtează (cu gripper-ul deschis) de piesă
(30) şi se retrage de sub camera CCD, într-o poziţie de aşteptare laterală (32).
La terminarea controlului dimensional robotul apucă (30, 31) şi ridică piesa (30). Dacă
piesa e "rebut", se apropie cu ea de container (51), aşează piesa în acesta (52), după care
revine în poziţia anterioară (51) şi se retrage (5) din staţia VISION 2000. Se deplasează pe
Slide până la staţia de oprire vagonet, şi revine în poziţia de aşteptare (11).
Dacă piesa este "bună", robotul se retrage (5) din staţia VISION 2000, se deplasează
pe Slide până la staţia de oprire vagonet, se apropie (13) şi aşează (12) piesa bună pe conveior.
În final robotul se retrage cu gripper-ul deschis în poziţia de aşteptare (11) trecând prin poziţia
(13).
29
'******** DEPLASARE PE SLIDE IN POZ. 1*******
100 PRINT #1, "50 "
110 PRINT #1, "55 "
120 PRINT #1, "60 "
130 PRINT #1, "65 GS 2000"
'******** LUAREA PIESEI DE PE CONVEIOR********
140 PRINT #1, "70 MO 13, O"
150 PRINT #1, "75 "
160 PRINT #1, "80 "
170 PRINT #1, "85 TI 7"
180 PRINT #1, "90 "
190 PRINT #1, "95 "
'******** DEPLASARE PE SLIDE LA VISION (POZ. 5)**********
200 PRINT #1, "100 "
210 PRINT #1, "105 "
220 PRINT #1, "110 "
230 PRINT #1, "115 GS 2000"
'******AŞEZAREA PIESEI SUB CAMERA CCD*********
240 PRINT #1, "120 MO 30, C"
250 PRINT #1, "125 "
260 PRINT #1, "130 "
270 PRINT #1, "135 "
280 PRINT #1, "140 "
290 PRINT #1, "145 MO 32, O"
'****INIŢIERE ŞI AŞTEPTARE REZULTAT CONTROL DIMENSIONAL*****
300 PRINT #1, "150 OB +5" 'Emitere cerere de control
310 PRINT #1, "155 " 'Citire intrări numerice
320 PRINT #1, "160 " 'Piesa e bună? Dacă da atunci salt!
330 PRINT #1, "165 " 'Piesa e rebut? Dacă da atunci salt!
340 PRINT #1, "170 GT 155" 'Dacă nu atunci citeşte din nou!
'********PRELUAREA PIESEI BUNE********
350 PRINT #1, "175 OB -5" 'Anulare semnal cerere de control
360 PRINT #1, "180 "
370 PRINT #1, "185 "
380 PRINT #1, "190 "
390 PRINT #1, "195 "
400 PRINT #1, "200 "
410 PRINT #1, "205 MO 5, C"
'******** DEPLASARE PE SLIDE IN POZ 1********
420 PRINT #1, "210 "
430 PRINT #1, "215 "
440 PRINT #1, "220 "
450 PRINT #1, "225 GS 2000"
'******** AŞEZAREA PIESEI BUNE PE CONVEIOR*******
460 PRINT #1, "230 MO 13, C"
470 PRINT #1, "235 "
480 PRINT #1, "240 "
490 PRINT #1, "245 "
500 PRINT #1, "250 "
510 PRINT #1, "260 GT 345" 'Salt la sfârşitul programului
'******** PRELUAREA SI ELIMINAREA PIESEI REBUT*********
520 PRINT #1, "265 OB -5" 'Anulare semnal de cerere control
530 PRINT #1, "270 MO 30, O"
540 PRINT #1, "275 MO 31, O"
30
550 PRINT #1, "280 GC"
560 PRINT #1, "285 TI 7"
570 PRINT #1, "290 MO 30, C"
580 PRINT #1, "295 "
590 PRINT #1, "300 "
600 PRINT #1, "305 "
610 PRINT #1, "310 "
620 PRINT #1, "315 "
630 PRINT #1, "320 MO 5, O"
'********* DEPLASARE PE SLIDE IN POZ. 1********
640 PRINT #1, "325 "
650 PRINT #1, "330 "
660 PRINT #1, "335 "
670 PRINT #1, "340 GS 2000"
'********* REVENIRE ÎN POZIŢIE DE AŞTEPTARE*******
680 PRINT #1, "345 MO 11, O"
690 PRINT #1, "350 ED" 'Sfârşit program principal
'
'********SUBRUTINA SLIDE*********
'
2000 PRINT #1, "2000 OB +11" 'cerere de poziţionare
2010 PRINT #1, "2005 TI 10" 'aşteptare început deplasare
2020 PRINT #1, "2010 ID" 'citire intrări numerice
2030 PRINT #1, "2015 TB +7, 2025" 'slide in poziţie ?
2040 PRINT #1, "2020 GT 2010" 'dacă nu atunci aşteaptă
2050 PRINT #1, "2025 OB -11" 'dacă da atunci anulare cerere
2060 PRINT #1, "2030 TI 10" 'temporizare înainte de o nouă cerere
2070 PRINT #1, "2035 RT" 'revenire din subrutină
2080 END 'sfârşit program BASIC
31
Lucrarea nr.6.
I. Scopul lucrării
Staţia NCL 2000 este o staţie de prelucrare a semifabricatelor cilindrice prin operaţia
de strunjire. Fiind echipată cu un miniechipament de comandă numerică, oferă posibilitatea
sincronizării operaţiilor de prelucrare cu comenzile numerice ale robotul RV-M1 prin existen-
ţa semnalelor discrete între interfaţa I/O a Unităţii de comandă şi interfaţa I/O a staţiei NCL
2000.
Fig.6.1.
Conform fig.6.1. comanda fixării semifabricatului introdus între vârfuri se realizează
de către Unitatea de comandă a robotului. Tot Unitatea de comandă este cea care emite
cererea de "start prelucrare" către staţia NCL 2000 şi recepţionează de la aceasta semnalul de
"sfârşit prelucrare", respectiv semnalul "strung ready".
În timpul prelucrării uşa strungului este închisă şi la terminarea prelucrării se deschide
în mod automat. Pentru a avea o protecţie suplimentară a robotului când se introduce
semifabricatul în interiorul strungului, respectiv se scoate piesa prelucrată, Unitatea de
comandă are posibilitatea verificării stării deschise sau închise a uşii strungului.
Având în vedere faptul că semifabricatele (cu destinaţie staţia NCL 2000) sosesc în
dreptul robotului RV-M1 prin intermediul conveiorului, iar fluxul pieselor de pe conveior este
controlat prin intermediul staţiei CIM-Control, devine necesară analizarea semnalelor discrete
existente între aceasta şi Unitatea de comandă. Din fig.6.2. se poate observa faptul că Unitatea
de comandă este cea care emite cererea pentru un nou semifabricat cilindric şi este înştiinţată
de faptul că în staţia de oprire vagonet a sosit un vagonet încărcat (cu semifabricat) sau a sosit
un vagonet gol (necesar la repunerea piesei prelucrate pe conveior).
32
Fig.6.2.
Unitatea de comandă emite o cerere de "reţinere vagonet în staţie". În acest mod este
împiedicată deplasarea mai departe a vagonetului în timpul descărcării sau încărcării.
Eliberarea vagonetului se realizează prin anularea cererii de reţinere vagonet.
În tabelul următor se dă lista intrărilor şi ieşirilor numerice (ale Unităţii de comandă)
utilizate în cadrul aplicaţiei:
33
Fig.6.3.
Tot prin intermediul Slide-ului este realizată mişcarea de poziţionare (11) a capătului
stâng al semifabricatului pe vârful fix (8) din universal (9). Fixarea semifabricatului între
vârfuri se realizează la comanda emisă de Unitatea de comandă, prin intermediul unui motor
pneumatic liniar care pune în mişcare vârful mobil (6).
34
Fig.6.4.
Se emite o cerere de vagonet gol (30) după care robotul se deplasează în faţa staţiei de
oprire vagonet (31) şi aşteaptă sosirea unui vagonet gol (32). La sosirea vagonetului se dă
comanda pentru reţinerea ei în staţie (33) după care are loc aşezarea piesei prelucrate pe
vagonet (34). La terminarea încărcării se dă comandă pentru eliberarea vagonetului (35) şi se
anulează cererea de vagonet gol.
35
II.3. Stabilirea traiectoriilor
Prima mişcare este în poziţia de aşteptare (11), după care robotul se apropie de piesă
(13) cu gripper-ul deschis, apucă piesa (12) prin închiderea gripper-ului, se îndepărtează de
conveior cu gripper-ul închis (13), realizează o rotaţie cu 180 de grade (cu piesa spre staţia
NCL 2000) (5), se deplasează pe Slide până în faţa staţiei (poziţia numărul 3. de pe Slide),
introduce piesa în interiorul strungului (60) şi poziţionează între vârfuri (6). Apoi are loc
deplasarea robotului pe Slide (în poziţia 4) până când capătul stâng al semifabricatului atinge
vârful fix din universalul strungului. După fixarea semifabricatului robotul se îndepărtează (cu
gripper-ul deschis) de piesă (60) şi se retrage din interiorul strungului (5). La terminarea prelu-
crării robotul introduce gripper-ul în interiorul strungului (60) şi apucă piesa prelucrată (6).
După eliberarea piesei dintre vârfuri, robotul revine în poziţia nr. 3 de pe slide, scoate piesa
dintre vârfuri (60) şi din interiorul strungului (5). Se deplasează pe Slide până la staţia de
oprire vagonet (poziţia 1 de pe Slide) şi revine în poziţia de aşteptare (11). După ce a sosit un
vagonet gol, gripper-ul se apropie (13) de conveior şi robotul aşează (12) piesa pe vagonet. În
final robotul se retrage în poziţia de aşteptare (11) trecând prin poziţia (13).
36
2. Se analizează schema logică a procesului.
3. Se analizează lista intrărilor şi ieşirilor numerice utilizate.
4. Se identifică poziţiile care vor fi utilizate la programarea traiectoriilor.
5. Se identifică poziţiile utilizate ale robotului pe Slide.
6. Se completează următorul program de comandă:
37
460 PRINT #1, "235 GS 2000"
470 PRINT #1, "240 " 'Fixare piesă între vârfuri
480 PRINT #1, "245 TI 20"
490 PRINT #1, "250 GO"
500 PRINT #1, "255 TI 7"
510 PRINT #1, "260 " 'Retragere din interiorul strungului
520 PRINT #1, "265 "
530 PRINT #1, "270 " 'Autorizare start prelucrare
540 PRINT #1, "275 TI 30"
550 PRINT #1, "280 OB -6" 'Anulare comandă de autorizare start
560 PRINT #1, "285 ID"
570 PRINT #1, "290 " 'S-a terminat prelucrarea ?
580 PRINT #1, "295 "
590 PRINT #1, "300 ID"
600 PRINT #1, "310 TB -14, 320" 'Uşa strungului s-a deschis ?
610 PRINT #1, "315 GT 300"
620 PRINT #1, "320 MO 60, O" 'Prinderea piesei
630 PRINT #1, "325 "
640 PRINT #1, "330 "
650 PRINT #1, "335 "
660 PRINT #1, "340 " 'Deschidere vârf
670 PRINT #1, "345 TI 20"
680 PRINT #1, "350 " 'Slide 3
690 PRINT #1, "355 "
700 PRINT #1, "360 "
710 PRINT #1, "365 GS 2000"
720 PRINT #1, "370 MO 60, C" 'Scoatere piesă din strung
730 PRINT #1, "375 MO 5, C"
740 PRINT #1, "380 " 'Cerere vagonet gol
750 PRINT #1, "385 OB +8" 'Slide 1
760 PRINT #1, "390 OB -9"
770 PRINT #1, "400 OB -10"
780 PRINT #1, "405 GS 2000"
790 PRINT #1, "410 MO 11,C" 'Poziţie de aşteptare (vagonet)
800 PRINT #1, "415 ID"
810 PRINT #1, "420 " 'Vagonet gol in staţie ?
820 PRINT #1, "425 "
830 PRINT #1, "430 OB +2" 'Reţinere vagonet
840 PRINT #1, "435 MO 13, C" 'Aşezare piesă pe vagonet
850 PRINT #1, "440 "
860 PRINT #1, "445 "
870 PRINT #1, "450 "
880 PRINT #1, "455 "
890 PRINT #1, "460 " 'Retragere în poziţia de aşteptare
900 PRINT #1, "465 " 'Eliberare vagonet
910 PRINT #1, "470 " 'Anulare cerere vagonet gol
920 PRINT #1, "475 ED" 'Sfârşit program principal
'
'********SUBRUTINA SLIDE*********
'
2000 PRINT #1, "2000 OB +11" 'cerere de poziţionare
2010 PRINT #1, "2005 TI 10" 'aşteptare început deplasare
2020 PRINT #1, "2010 ID" 'citire intrări numerice
2030 PRINT #1, "2015 TB +7, 2025" 'slide in poziţie ?
38
2040 PRINT #1, "2020 GT 2010" 'dacă nu atunci aşteaptă
2050 PRINT #1, "2025 OB -11" 'dacă da atunci anulare cerere
2060 PRINT #1, "2030 TI 10" 'temporizare înainte de o nouă cerere
2070 PRINT #1, "2035 RT" 'revenire din subrutină
2080 END 'sfârşit program BASIC
39
Lucrarea nr.7.
I. Scopul lucrării
40
PD (Position Define) Determină definirea şi memorarea unei poziţii diferite de poziţia
curentă. Pentru definire se indică numărul, respectiv coordonatele
carteziene absolute X, Y, Z, P şi R ale poziţiei.
Formatul instrucţiunii:
PD <număr poziţie, X, Y, Z, P, R>
Starea gripper-ului în poziţia definită va fi cea din poziţia curentă. Dacă se doreşte
definirea poziţiei şi prin indicarea stării închise sau deschise a gripper-ului se poate utiliza in-
strucţiunea GF.
GF (Grip Flag) Defineşte starea închisă sau deschisă a gripper-ului pentru poziţia
memorată cu instrucţiunea PD.
Formatul instrucţiunii:
GF <stare gripper>
Circa 90% din cazurile de montaj robotizat se referă la introducerea unui ştift într-un ale-
zaj cu sau fără joc, înşurubarea unui şurub sau introducerea unui ştift (urmată de rotaţia ştiftu-
lui); direcţia preferenţială de apropiere a ştiftului (şurubului) este cea verticală, iar sensul pre-
41
ferenţial de sus în jos. Ca urmare principala problemă mecanică de soluţionat în robotizarea
montajului este introducerea unui ştift cilindric într-un alezaj cu axă verticală. Rezultă că în
prima fază ştiftul trebuie adus deasupra alezajului, astfel încât axa ştiftului să coincidă cu cea
a alezajului. Apoi este necesară o deplasare liniară a ştiftului de-a lungul axei până când se
realizează introducerea "completă" sau o deplasare combinată cu o mişcare de rotaţie (de înşu-
rubare).
În concordanţă cu cele menţionate mai sus, se consideră o aplicaţie în care, prin in-
termediul robotului industrial RV-M1, se realizează operaţia de asamblare, a unei piese cilin-
drice (ştift) cu una prismatică, care este prevăzută cu un alezaj. Se consideră de asemenea că
piesa cilindrică a fost prelucrată astfel încât diametrul nominal al unui capăt al acesteia a de-
venit egal cu diametrul nominal al alezajului. După această prelucrare, piesa cilindrică se află
(fig.7.1.) pe un suport din staţia de control dimensional VISION 2000 (poziţia nr.1), s-a reali-
zat controlul prin intermediul camerei CCD şi s-a constatat că piesa este corespunzătoare din
punct de vedere dimensional.
Piesa prismatică, cu alezajul prelucrat, se află pe masa unei prese pneumatice (fig.7.1).
În cadrul aplicaţiei robotul preia piesa cilindrică de pe suport, poziţionează deasupra alezajului
din piesa prismatică (poziţia nr.4) şi realizează o mişcare de apropiere a cilindrului de alezaj,
până la atingerea acestuia (poziţia nr.5).
Fig.7.1.
Pentru introducerea completă a capătului cilindrului în alezaj este necesară şi o
operaţie de presare. Prin operaţia de presare se înţelege apăsarea capătului liber al piesei cilin-
drice prin intermediul unei tije a unui motor pneumatic liniar al presei pneumatice.
Comanda presei (ieşirea tijei în vederea apăsării piesei cilindrice) se realizează prin
intermediul unui semnal furnizat de Unitatea de comandă a robotului RV-M1, prin ieşirea
numerică 3. Prin dezactivarea semnalului (nivel logic 0), tija motorului pneumatic se retrage
automat, într-o poziţie confirmată (nivel logic "1") prin intermediul unui senzor de
proximitate, conectat la intrarea numerică 11 a Unităţii de comandă. Pentru introducerea
piesei cilindrice sub tijă, aceasta din urmă trebuie să fie în poziţia retrasă.
42
II.2. Stabilirea traiectoriilor
Poziţia X Y Z P R
1 -350.8 -10.6 230.2 -88.6 80
5 -453.5 0.4 183 -4.8 176.4
În afară de aceste două poziţii trebuie determinate încă câteva poziţii via, astfel încât
traiectoria rezultată să fie fără coliziuni. De asemenea se recomandă ca apropierea gripper-ului
de piesa cilindrică, respectiv ridicarea piesei după apucare să se facă printr-o mişcare
perpendiculară pe suport. La fel şi mişcarea de apropiere a cilindrului faţă de alezajul piesei
prismatice trebuie să se facă printr-o mişcare perpendiculară (paralelă cu axa Z). Considerăm
că în poziţiile via (2 şi 4) obţinute printr-o deplasare a piesei cu 50 [mm] faţă de poziţia nr.1.
respectiv cu 30 [mm] faţă de poziţia nr.5, orientarea gripper-ului rămâne neschimbată.
De asemenea se defineşte poziţia nr.3 ca fiind o poziţie intermediară între staţia de
control dimensional şi staţia de asamblare. Această poziţie se poate defini printr-o simplă
mişcare paralelă de-a lungul axei Y, cu 150 [mm], faţă de poziţia nr.3. Se poate observa din
fig.7.1. faptul că poziţiile 1 şi 2 corespund poziţiei nr.5 a robotului pe Slide. La fel poziţiile nr.
3, 4 şi 5 corespund poziţiei nr.2. a robotului pe Slide.
Se consideră că la lansarea programului robotul se află într-o poziţie de aşteptare,
respectiv în poziţia nr.5 de pe Slide.
43
• Start deplasare pe slide în poziţia nr.2.
• Deplasare în poziţia nr.3 cu gripper-ul închis (MA).
• Aşteptare sfârşit deplasare pe slide.
• Verificare tijă retrasă (presa ready?).
• Deplasare în poziţia nr.4. cu gripper închis (MA sau DW).
• Deplasare în poziţia nr.5 cu gripper închis (MO sau DW).
• Deschidere gripper.
• Revenire în poziţia nr.4. cu gripper închis (DW).
• Retragere gripper de-a lungul axei X cu 50 [mm] (DW).
• Comandă pentru realizarea operaţiei de presare.
• Aşteptare realizare operaţie de presare.
• Anulare comandă pentru realizarea operaţiei de presare.
Observaţii:
1. Se consideră că programul se termină odată cu realizarea operaţiei de presare: luarea
produsului finit de pe masa presei şi punerea pe conveior neconstituind obiectul acestei
aplicaţii.
2. Se poate observa că la realizarea programului se pot utiliza mai multe tipuri de
instrucţiuni, rămânând la latitudinea programatorului alegerea acelor instrucţiuni prin care
descrierea traiectoriei va fi cât mai simplă.
44
170 PRINT #1, "60 " 'deplasare in poz.3.
180 PRINT #1, "65 ID"
190 PRINT #1, "70 TB +7, 80" 'Slide in poziţie ?
200 PRINT #1, "75 GT 65"
210 PRINT #1, "80 OB-11"
220 PRINT #1, "85 ID"
230 PRINT #1, "90 " 'Presa ready ?
240 PRINT #1, "95 "
250 PRINT #1, "100 " 'deplasare in poz.4.
260 PRINT #1, "110 " 'deplasare in poz.5.
270 PRINT #1, "115 " 'deschidere gripper
280 PRINT #1, "120 "
290 PRINT #1, "125 " 'revenire în poz.4.
300 PRINT #1, "130 " 'retragere gripper
310 PRINT #1, "135 " 'start presă
320 PRINT #1, "140 TI 40" 'temporizare
330 PRINT #1, "145 " 'stop presă
340 PRINT #1, "150 ED"
350 END
45
Lucrarea nr.8.
I. Scopul lucrării
PA (Palett Assign) Determină "asignarea" paletei prin indicarea unui număr (care
reprezintă numele/numărul paletei) respectiv stabilirea capacităţii ei
prin indicarea numărului de coloane şi numărului de rânduri.
Formatul instrucţiunii:
46
Pentru a executa această comandă, poziţiile de definire ale paletei (adică poziţiile din
cele patru colţuri) trebuie să fie deja definite. La fel trebuie să fie exact definit şi contorul de
paletă (separat pt. coloană şi separat pt. rând) care specifică un punct (o poziţie specifică) de
pe paletă.
În tabelul următor sunt date combinaţiile poziţiilor paletelor şi contoarele cores-
punzătoare la fiecare tip (număr) de paletă:
Paleta 1 2 3 4 5 6 7 8 9
Poziţia de referinţă 10 20 30 40 50 60 70 80 90
Poziţia finală a coloanei 11 21 31 41 51 61 71 81 91
Poziţia finală a rândului 12 22 32 42 52 62 72 82 92
Poziţia colţului opus poziţiei de referinţă 13 23 33 43 53 63 73 83 93
Contorul coloanei 11 21 31 41 51 61 71 81 91
Contorul rândului 12 22 32 42 52 62 72 82 92
Poziţia PT 1 2 3 4 5 6 7 8 9
Dacă poziţiile paletei şi contoarele sunt exact definite, execuţia comenzii PT permite
punctelor (poziţiilor) din reţeaua paletei să fie definite ca număr de poziţie echivalent cu
numărul paletei.
Observaţii:
1. Comanda de definire a paletei (PA) trebuie executată înainte de execuţia comenzii PT.
2. După ce comanda PT a fost executată, datele corespunzătoare poziţiei calculate
anterior sunt şterse.
3. Apare eroare în execuţia programului dacă poziţiile paletei nu au fost definite
respectiv dacă contoarele paletelor nu au fost poziţionate sau au fost poziţionate, însă
cu valori ce depăşesc pe cele definite cu comanda PA.
4. Nu apare eroare, chiar dacă coordonatele obţinute pentru punctele din reţeaua paletei
exced spaţiul operaţional al robotului.
5. Starea închisă/deschisă a gripper-ului la punctul din reţea este aceeaşi ca şi cea în
poziţia de referinţă a paletei.
SC <număr contor>,[<valoare>]
47
DC (Decrement Counter) Decrementează valoarea contorului specificat.
Formatul instrucţiunii:
DC <număr contor>
EQ (If Equal) Salt la o linie din program dacă conţinutul registrului intern este egal cu
valoarea specificată.
Formatul instrucţiunii:
Apare eroare în execuţia programului dacă linia specificată prin număr linie nu există
(n-a fost definită).
NE (Not Equal) Salt la o linie din program dacă conţinutul registrului intern diferă de
valoarea specificată.
Formatul instrucţiunii:
Apare eroare în execuţia programului dacă linia specificată prin număr linie nu există
(n-a fost definită).
LG (If Larger) Salt la o linie din program dacă conţinutul registrului intern este mai mare
decât valoarea specificată.
Formatul instrucţiunii:
48
Apare eroare în execuţia programului dacă linia specificată prin număr linie nu există
(n-a fost definită).
SM (If Smaller) Salt la o linie din program dacă conţinutul registrului intern este mai mic
decât valoarea specificată.
Formatul instrucţiunii:
Apare eroare în execuţia programului dacă linia specificată prin număr linie nu există
(n-a fost definită).
Sensul şi direcţia rândului (respectiv a coloanei) rezultă din modul de definire a
paletei. Astfel de exemplu (fig.8.1.) pentru paleta 7, direcţia şi sensul de numărare a poziţiei
din cadrul coloanei este dată de direcţia definită de poziţia de referinţă 70 şi poziţia finală a
coloanei 71. Direcţia şi sensul de numărare a poziţiei din cadrul rândului este dată de direcţia
definită de poziţia 70 şi poziţia finală a rândului 72.
49
II.2. Specificarea procesului
În cadrul programului se va utiliza paleta nr.7. Direcţia coloanei este dată de poziţia
relativă a poziţiei 71 faţă de poziţia de referinţă (70). Pentru luarea unei piese dintr-un locaş
de pe paletă, robotul trebuie să fie în poziţia nr.2 de pe Slide, iar aşezarea piesei pe
echipamentul de testare (precum şi eliminarea rebutului) se poate realiza din poziţia nr.5 de pe
Slide.
În figura 8.3. s-a reprezentat schema logică a procesului. Prima mişcare este aducerea
robotului în poziţia de aşteptare 5. din spaţiu, respectiv în poziţia 2. de pe Slide (1,2).
După definirea paletei prin instrucţiunea PA (3) se iniţializează atât contorul rândului
(4) cât şi contorul coloanei (4) la valoarea 1. Urmează calculul, prin instrucţiunea PT, al
coordonatelor poziţiei (1,1). Se comandă deplasarea gripper-ului în poziţia calculată (7), se
prinde piesa (8), se extrage din locaşul paletei (9) şi se transportă (10) prin intermediul Slide-
ului până în faţa staţiei VISION 2000. Se realizează (11) controlul piesei conform celor arătate
la lucrarea nr.6. După terminarea controlului robotul este deplasat (12) înapoi în faţa paletei.
Dacă piesa era bună (13), atunci se realizează reintroducerea piesei (14) în poziţia din care a
fost scoasă, după care robotul revine în poziţia de aşteptare (15).
Dacă piesa controlată a fost scoasă din ultima poziţie a coloanei (16) respectiv din ul-
tima poziţie a rândului (18) înseamnă că a fost "testat" fiecare piesă din paletă. În acest caz se
termină programul. Dacă nu s-a ajuns la ultima poziţie în cadrul rândului, se incrementează
contorul rândului (19), respectiv se iniţializează la 1 contorul coloanei (5) şi se trece la testa-
rea piesei următoare. La fel se trece la testarea piesei următoare în cazul în care nu s-a ajuns la
50
ultima poziţie din cadrul coloanei. În acest ultim caz este incrementat doar contorul coloanei
(17).
51
20 PRINT #1, "20 " 'deplasare pe slide în poziţia 2
30 PRINT #1, "25 "
40 PRINT #1, "30 "
50 PRINT #1, "35 GS 2000" 'apel subrutină de deplasare
80 PRINT #1, "40 " 'poziţia 1 din cadrul rândului
85 PRINT #1, "43 " 'poziţia 1 din coloana
90 PRINT #1, "45 PT 7" 'calcului poziţiei
100 PRINT #1, "50 " 'deplasare în poziţia calculată
110 PRINT #1, "55 " 'apucarea piesei
120 PRINT #1, "60 "
130 PRINT #1, "65 MO 5,C" 'scoaterea piesei din paleta
131 PRINT #1, "66 " 'transportul piesei la staţia vision
132 PRINT #1, "67 "
133 PRINT #1, "68 "
134 PRINT #1, "69 "
135 PRINT #1, "70 GS 1000" 'apel subrutina control dimensional
422 PRINT #1, "75 " 'revenire la paletă (Slide 2)
423 PRINT #1, "80 "
424 PRINT #1, "85 "
425 PRINT #1, "90 GS 2000"
426 PRINT #1, "95 CP 30"
427 PRINT #1, "100 " 's-a memorat piesă rebut? Dacă da atunci salt!
428 PRINT #1, "247 " 'repunere piesă bună pe paletă
429 PRINT #1, "248 "
430 PRINT #1, "249 "
431 PRINT #1, "250 " 'revenire in poziţia de aşteptare 5
432 PRINT #1, "251 CP 71" 'salvare contor 71 (coloana)
435 PRINT #1, "255 " 'a fost ultima poziţie din cadrul coloanei ?
440 PRINT #1, "260 " 'daca nu atunci se ia următoarea poziţie
445 PRINT #1, "265 " 'salt la început ciclu
450 PRINT #1, "270 CP 72" 'salvare contor 72 (rând)
455 PRINT #1, "275 " 'a fost ultima poziţie din cadrul rândului ?
460 PRINT #1, "280 IC 72" 'daca nu atunci se ia următoarea poziţie
468 PRINT #1, "288 " 'salt la început ciclu
470 PRINT #1, "290 ED " 'sfârşit program principal.
'
'****Subrutina de control dimensional*****
'
1140 PRINT #1, "1000 MO30,C" 'introducerea piesei sub camera CCD
1150 PRINT #1, "1075 MO31,C" 'aşezarea piesei sub camera CCD
1160 PRINT #1, "1080 GO"
1170 PRINT #1, "1085 TI5"
1180 PRINT #1, "1090 MO30,O" 'ridicarea gripper-ului
1190 PRINT #1, "1095 MO32,O" 'retragere gripper de sub camera CCD
1200 PRINT #1, "1100 OB+5" 'cerere de control dimensional
1210 PRINT #1, "1105 TI10"
1220 PRINT #1, "1110 ID"
1230 PRINT #1, "1115 TB+12,1215" 'piesă bună?
1250 PRINT #1, "1125 TB+15,1140" 'piesă rebut?
1260 PRINT #1, "1130 GT 1110" 'controlul nu s-a terminat!
1285 PRINT #1, "1140 SC 30,0" 'memorare "rebut"
1290 PRINT #1, "1145 OB-5" 'anulare cerere de control dimensional
52
1300 PRINT #1, "1150 MO 30,O"
1310 PRINT #1, "1155 MO 31,O"
1320 PRINT #1, "1160 GC " 'apucarea piesei rebut
1330 PRINT #1, "1165 TI7"
1340 PRINT #1, "1170 MO 30,C"
1350 PRINT #1, "1175 MO 51,C"
1355 PRINT #1, "1180 MO 52,C" 'introducere în container
1360 PRINT #1, "1185 GO" 'eliminare rebut
1365 PRINT #1, "1190 TI 7"
1370 PRINT #1, "1195 MO 51,O"
1375 PRINT #1, "1200 MO 5,O" 'ieşire gripper din staţia vision
1380 PRINT #1, "1210 GT 1250" 'salt
1382 PRINT #1, "1215 SC 30,1" 'memorare "piesa bună"
1385 PRINT #1, "1217 OB-5" 'anulare cerere de control dimensional
1390 PRINT #1, "1220 MO 30,O"
1395 PRINT #1, "1225 MO 31,O"
1400 PRINT #1, "1230 GC" 'apucarea piesei bune
1410 PRINT #1, "1235 TI 7"
1420 PRINT #1, "1240 MO 30,C"
1421 PRINT #1, "1241 MO 5,C" 'scoatere piesă din staţia vision
1422 PRINT #1, "1250 RT"
'
'********SUBRUTINA SLIDE*********
'
2000 PRINT #1, "2000 OB +11"
2010 PRINT #1, "2005 TI 10"
2020 PRINT #1, "2010 ID"
2030 PRINT #1, "2015 TB +7, 2025"
2040 PRINT #1, "2020 GT 2010"
2050 PRINT #1, "2025 OB -11"
2060 PRINT #1, "2030 TI 10"
2070 PRINT #1, "2035 RT"
53
Lucrarea nr.9.
I. Scopul lucrării
În lucrările anterioare s-a studiat comanda punct cu punct (PTP) a roboţilor industriali.
La acest mod de comandă singura condiţie impusă era ca traiectoria să nu fie una de coliziune.
Avea importanţă doar trecerea obligatorie a punctului caracteristic (de exemplu) prin poziţiile
1 şi 2 (fig.9.1.).
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 obţinută este
una oarecare, imprevizibilă, greu exprimabilă matematic şi cu un aspect absolut oarecare
pentru operatorul uman.
Comanda multipunct (MTP) este asemănătoare metodei de conducere punct cu punct,
dar în cazul MTP se memorează mult mai multe puncte decât cele două puncte: 1 şi 2
(fig.9.2.). De exemplu pentru cazul ales sunt date şi punctele intermediare de la 11 la 15 prin
care se impune trecerea obligatorie a punctului caracteristic (în drumul său de la 1 la 2).
Mişcarea între două puncte intermediare vecine se realizează prin metoda punct cu
punct, fără o corelare a legilor de mişcare. Cu cât numărul punctelor intermediare este mai
mare, cu atât eroarea dintre traiectoria reală şi cea teoretică este mai mică.
În fig.9.3. s-a reprezentat deplasarea punctului caracteristic din poziţia 1 în poziţia 2
prin 3 respectiv 7 puncte intermediare. Se observă că eroarea maximă de la traiectoria
teoretică este mai mare în cazul utilizării a 3 puncte intermediare decât în cazul utilizării a 7
puncte intermediare.
54
Poziţiile intermediare pot fi determinate prin două metode:
1. prin metoda învăţării, când poziţiile intermediare sunt "memorate". Cel mai relevant
este cazul vopsirii prin pulverizare:
La învăţare, un vopsitor cu experienţă are pistolul de vopsit în mână şi de mâna lui este
legat şi efectorul final al robotului. (Dacă braţul robotului este de construcţie masivă se
utilizează instalaţii master-slave în care master-ul este de construcţie miniatură şi se
leagă nemijlocit de mâna vopsitorului, iar slave-ul este robotul propriu-zis care execu-
tă aceeaşi mişcări ca şi master-ul). Cu o frecvenţă cuprinsă între 20÷200 [Hz] se me-
morează punctele atinse la nivelul fiecărei cuple cinematice conducătoare. La redarea
automată, robotul execută singur trecerea prin punctele învăţate.
2. prin metoda de calcul, când poziţiile intermediare sunt determinate (prin calcul) astfel
încât ele să se situeze strict pe segmentul definit de cele două poziţii ţintă. De regulă
punctele intermediare se găsesc la distanţe egale, iar numărul punctelor intermediare se
alege în mod convenabil în funcţie de precizia cerută.
În cazul robotului RV-M1 numărul maxim de puncte intermediare între două poziţii
ţintă este 99. Calculul acestor puncte intermediare precum şi comanda mişcării de tip
multipunct se realizează prin intermediul instrucţiunii MS (Move Straight). Formatul instruc-
ţiunii:
55
buie să asigure ca în timpul operaţiei de vopsire, vârful pistolului, să se deplaseze pe o su-
prafaţă echidistantă cu suprafaţa care urmează să fie vopsită, iar axa pistolului să fie normală
la această suprafaţă. De asemenea suprafaţa echidistantă trebuie să fie conţinută integral în
spaţiul de lucru al robotului industrial.
56
Lucrarea nr.10.
I.Scopul lucrării
II.Consideraţii teoretice
Cu semnul "+" se indică nivelul logic "1" iar cu semnul "-" se indică nivelul logic "0"
pentru care apare întreruperea mişcării.
Observaţii:
1. Această instrucţiune se poate folosi numai la mişcări cu viteze reduse, deoarece în cazul
vitezelor mari pot apare defecţiuni mecanice la întreruperea bruscă a mişcării.
2. O mişcare poate fi condiţionată simultan prin indicarea a mai multor intrări numerice,
dar intrarea cu numărul de ordine cel mai mare preia prioritatea.
57
Formatul instrucţiunii:
DA <intrare numerică>
Observaţii:
1. După ce comanda a fost executată, nu mai apare întrerupere chiar dacă se modifică starea
logică a intrării specificate cu comanda EA.
2. Anularea întreruperii se referă numai la intrarea numerică specificată în cadrul instrucţi-
unii DA.
Se consideră că pe braţul robotului RV-M1 se găseşte un senzor prin care se poate de-
tecta o eventuală coliziune cu un corp ajuns în mod întâmplător pe traiectoria programată a
robotului. Conform fig.10.1. robotul se află în mişcare din poziţia start spre poziţia ţintă 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 ob-
stacolului spre poziţia 2 după care se comandă din nou deplasare spre poziţia ţintă 1.
100 EA +11,600
110 MO 1
120 ED
600 DA 11
610 MO 2
620 GT 110
Conform programului alăturat în prima fază (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 su-
plimentar 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 atunci robotul ajunge în poziţia ţintă şi pro-
gramul 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 tri-
mis în poziţia nr 2. cu scopul ocolirii obstacolului, apoi printr-un salt necondiţionat se ajunge
iarăşi în linia 110 unde se dă din nou comandă pentru deplasare în poziţia nr.1. Programul se
termină la linia 120 cu instrucţiunea ED (sfârşit program).
În figura 10.2. s-a reprezentat un mecanism de prehensiune (gripper) care este prevăzut
cu un microîntrerupător, prin intermediul căruia se poate sesiza lipsa sau prezenţa obiectului
care urmează să fie apucat.
58
100 EA+11,140
110 MO 1, O
120 DW 0, 0, -50
130 GT 110
140 DA 11
150 GC
160 MO 1, C
IV.Conţinutul referatului
59
Lucrarea nr.11.
I. Scopul lucrării
În cazul robotului industrial RV-M1 comanda mişcărilor continue (adică fără oprire),
printr-un număr de poziţii definite sau memorate, se poate realiza cu ajutorul instrucţiunii MC
(Move Continous). Dacă dintr-o poziţie de start (notată cu poz1) se doreşte o deplasare într-o
poziţie ţintă (notată cu poz2), cu o trecere continuă şi fără oprire prin N-2 poziţii intermediare,
atunci se poate utiliza comanda:
MC 1, N
unde 1 este numărul de ordine al poziţiei de start iar N este numărul de ordine al poziţiei ţintă.
Astfel se realizează o pornire din poziţia 1, o trecere fără oprire prin poziţiile 2,3,...,N-1 şi
oprire în poziţia N. Pentru executarea completă a instrucţiunii este nevoie ca poziţiile
2,3,...,N-1 să fie anterior calculate şi definite cu instrucţiunea PD (Position Define) sau să fie
memorate.
În continuare se prezintă o modalitate pentru calculul şi definirea acestor poziţii
”intermediare”.
Se consideră o reprezentare matriceală atât pentru poziţia de start POZ1 cât şi pentru
poziţia ţintă POZ2:
poz1 = [ X 1 Y1 Z1 P1 R1]
T
poz2 = [ X 2 Y2 Z2 P2 R2 ]
T
unde:
X1, Y1, Z1, P1, R1 sunt coordonatele carteziene ale poziţiei de start;
X2, Y2, Z2, P2, R2 sunt coordonatele carteziene ale poziţiei de ţintă.
Calculul poziţiilor intermediare POZk, între POZ1 şi POZ2, se poate realiza cu ajutorul
unei matrici de conducere D(r) astfel încât, poziţia intermediară POZk se obţine cu relaţia:
POZk=POZ1⋅D(r) k ∈ N.
unde r este o variabilă scalară din domeniul [0, 1].
60
Observaţii:
1. D(r) este o funcţie de conducere matricială şi este astfel concepută încât toate situările
succesive ocupate de punctul caracteristic între POZ1 şi POZ2 să se poate calcula pornind
de la POZ1 înmulţit cu valoarea aferentă D(r).
2. Pentru r = 0 se obţine poziţia de start (POZk = POZ1), iar pentru r =1 poziţia ţintă (POZk =
POZ2). Pentru orice altă valoare ale lui r, între 0 şi 1 se obţine o poziţie intermediară,
având ca număr de ordine k.
În cazul robotului RV-M1 matricea D(r) care satisface condiţiile de mai sus este de
dimensiune 1x5 şi este dată de următoarea relaţie:
X Y Z P R
D(r ) = 1 + r ⋅ 2 − 1 1 + r ⋅ 2 − 1 1 + r ⋅ 2 − 1 1 + r ⋅ 2 − 1 1 + r ⋅ 2 − 1
X1 Y1 Z1 P1 R1
Astfel la calculul poziţiilor intermediare se dau diferite valori lui r şi se obţin valori
succesive pentru D(r) care înmulţite cu POZ1 dau punctele intermediare POZk.
Observaţie:
Formula de mai sus pentru matricea de conducere D(r) se poate utiliza numai dacă coor-
donatele X1, Y1, Z1, P1 şi R1 diferă de 0. În caz contrar apare eroare în execuţia progra-
mului (împărţire cu 0). Pentru prevenirea acestui fenomen, în acest caz elementul "j" al
matricii D(r) (pentru care apare eroarea) poate fi calculat cu formula: D[j]:=r⋅POZ2[j], iar
elementul corespunzător lui POZk cu formula: POZk[j]:=D[j].
Prin intermediul instrucţiunii PD vor fi definite cele N (max. 99) poziţii prin care se
aproximează traiectoria continuă între poziţia start şi poziţia ţintă, astfel încât poziţia cu nu-
mărul 1 este de fapt poziţia de start iar poziţia cu numărul de ordine N este poziţia ţintă. Pen-
tru fiecare poziţie definită va fi transmis de la PC către Unitatea de comandă un şir de caracte-
re ASCII corespunzător formatului instrucţiunii.
61
II.4. Schema logică a programului de comandă
Fig.11.1.
62
Se defineşte matricea corespunzătoare poziţiei POZ1, după care se trece la calculul po-
ziţiilor pentru valorile succesive ale lui r. Pentru prima poziţie (k = 1) se ia r = 0, iar pentru
poziţiile următoare (11) se incrementează valoarea lui r (12). Coordonatele poziţiei POZk se
determină (8) numai după ce s-au calculat termenii matricii D(r) pentru valoarea curentă a lui
r (7). Pentru termenii matricii POZk se stabileşte un format cu maxim o cifră zecimală (9),
prin înmulţire cu 10, rotunjire la cel mai apropiat număr întreg şi apoi prin împărţire cu 10.
Urmează definirea poziţiei "k", prin transmiterea de la calculator PC a unei ins-
trucţiuni PD (10), în care coordonatele X, Y, Z, P şi R sunt chiar termenii matricii POZk cal-
culat anterior. După ce toate cele N poziţii au fost definite, adică dacă după ultima in-
crementare a variabilei r aceasta a devenit mai mare decât 1, se comandă pornirea mişcării
continue prin transmiterea de la calculatorul PC a instrucţiunii MC (14).
63
410 PRINT "TRANSMITEREA COMENZII DE MISCARE CONTINUA MC:"
420 COMANDA$ = "MC" + ...
430 PRINT COMANDA$
440 PRINT #1, COMANDA$
450 END
Observaţie:
• La alegerea poziţiilor de start şi de ţintă trebuie avut în vedere că atât aceste poziţii cât şi
poziţiile intermediare (care vor fi calculate respectiv definite) trebuie să fie situate strict în
spaţiul de lucru al robotului. În caz contrar apare eroare la execuţia instrucţiunii PD şi co-
manda de deplasare MC nu va fi executată.
64
Lucrarea nr.12.
I. Scopul lucrării
Întrucât un sistem de conducere pentru un robot industrial este construit în jurul unui
sistem de calcul, el este dotat cu o structură de echipament de comunicare cu omul, tipic
calculatoarelor: display, consolă cu tastatură specializată, sistem de introducere a programelor
etc.
Specific pentru echipamentul de conducere al unui robot industrial este prezenţa cutiei
de instruire (Teach In Box). Această cutie de instruire este prevăzută cu o tastatură ce permite
deplasarea manuală a robotului, memorarea diferitelor poziţii din spaţiu, cu un afişaj cu 7
segmente, pe care se poate vizualiza numărul de ordine al poziţiei programate (sau memorate),
iar uneori se pot vizualiza şi coordonate (carteziene sau c.c.c.), respectiv linii de program. În
acest ultim caz cutia de instruire permite şi introducerea (manuală) a programului de aplicaţie
în memoria echipamentului de conducere.
În cazul sistemelor de conducere care se pot interfaţa cu un calculator personal (de
obicei) introducerea programului de aplicaţie se face de la tastatura calculatorului. În acest caz
calculatorul personal se poate utiliza atât pentru editarea programului de aplicaţie cât şi pentru
obţinerea unor informaţii privind starea (poziţia) robotului industrial, sau informaţii privind
datele memorate de echipamentul de conducere (coordonatele poziţiilor memorate, linii de
program etc.).
65
rente (sau ale unei poziţii memorate indicată prin număr), linii de program, starea intrărilor
numerice, valoarea unui contor şi modul de eroare.
WH (Where - unde) este o instrucţiune prin care se realizează citirea coordonatelor carte-
ziene ale poziţiei curente, chiar dacă poziţia nu a fost memorată. Exemplu de utiliza-
re prin intermediul limbajului Qbasic:
unde primele trei valori sunt coordonatele X, Y, şi Z ale poziţiei curente exprimate în mm, iar
ultimele două valori se referă la poziţia articulaţiei de rostogolire (coordonata P), respectiv la
poziţia articulaţiei de rotire (coordonata R), exprimate în grade.
PR (Position Read) este o instrucţiune prin care se realizează citirea coordonatelor carte-
ziene ale unei poziţii specificate prin număr. Astfel se pot citi şi coordonatele poziţii-
lor memorate, care pot fi şi diferite de poziţia curentă.
În linia 20 se citeşte de la tastatură numărul poziţiei pentru care vrem să aflăm coordo-
natele carteziene. Valoarea citită se memorează prin intermediul variabilei P. În linia 30 se
transmite către Unitatea de comandă instrucţiunea PR şi valoarea variabilei P sub forma unui
şir de caractere. În linia 40 se realizează recepţionarea coordonatelor poziţiei specificate, care
se afişează la linia 50.
LR (Line read) este o instrucţiune prin care se realizează citirea unei linii de program
(existent şi indicat prin număr) din memoria Unităţii de comandă.
66
10 OPEN "COM1:9600,E,7,2" FOR RANDOM AS #1
20 INPUT "NUMARUL LINIEI=", P
30 PRINT #1, "LR" + STR$(P)
40 LINE INPUT #1, A$
50 PRINT A$
60 END
DR (Data read) este o instrucţiune prin care se realizează citirea stării intrărilor numerice.
Prin intermediul acestei instrucţiuni este returnat din memoria Unităţii de comandă un
şir de caractere, care reprezintă o valoare numerică obţinută din însumarea algebrică a stării
logice ale tuturor intrărilor numerice.
CR (Contor read) este o instrucţiune prin care se realizează citirea valorii unui contor
specificat prin număr.
10 OPEN "COM1:9600,E,7,2" AS #1
20 INPUT "NUMAR CONTOR=", P
30 PRINT #1, "CR" + STR$(P)
40 LINE INPUT #1,A$
50 PRINT "VALOARE CONTOR=",A$
60 END
ER (Error read) este o instrucţiune prin care se realizează citirea modului de eroare. Este
returnat un caracter ASCII care poate să fie 0 (nu există eroare), 1 (în cazul modului 1
de eroare) sau 2 (în cazul modului 2 de eroare).
10 OPEN "COM1:9600,E,7,2" AS #1
20 PRINT #1, "ER"
30 LINE INPUT #1, A$
40 PRINT "ERROR MODE="; A$
Prin macroinstrucţiunile prezentate în paragraful II.1. deci pot fi obţinute date din me-
moria Unităţii de comandă. Programele prezentate prin care se realizează exemplificarea mo-
67
dului de utilizare al acestor instrucţiuni, pot fi considerate (în cadrul unui program principal)
ca nişte subrutine care se apelează în momentul citirii de la tastatură a instrucţiunii corespun-
zătoare. Dacă se adaugă la aceste subrutine câteva linii de program prin care devine posibilă
transmiterea către Unitatea de comandă şi celelalte instrucţiuni (prezentate în lucrările ante-
rioare), atunci se obţine un adevărat program de dialog. Cu ajutorul unui astfel de program
pot fi transferate de la calculatorul personal "comenzi" şi pot fi recepţionate "date" de la Uni-
tatea de comandă.
Pe baza celor prezentate a fost conceput şi realizat programul DIALOG.BAS. După
lansarea acestui program prin intermediul limbajului QBASIC, se intră într-un regim de aştep-
tare comenzi. Comenzile (care sunt chiar instrucţiunile Unităţii de comandă) sunt citite de la
tastatura calculatorului (cu afişare simultană pe monitor) după care sunt transferate către Uni-
tatea de comandă, şi imediat sunt executate. În cazul în care de la tastatură s-a introdus a co-
mandă greşită (eroare de sintaxă, linie sau poziţie nedefinită, etc) apare modul de eroare nr.2
şi execuţia comenzii este suspendată. Eroarea se poate anula cu ajutorul comenzii RS (Reset
Error).
68
BIBLIOGRAFIE
[1]. Barabás, T., Vesselényi, T., Robotică – Conducerea şi programarea roboţilor industriali
– Probleme şi metode de bază, Editura Universităţii Oradea, 2004
[2]. Borangiu, T., Sisteme educaţionale în robotică, Editura Tehnică, Bucureşti, 1991
[3]. Gavriş, M., Barabás, T., Comanda roboţilor – Îndrumător de laborator, Lito
Universitatea din Oradea, 1996
[4]. Kovács, Fr., Rădulescu, C., Roboţi industriali, Universitatea Tehnică din Timişoara, 1992
[5]. * * * Industrial Micro-Robot System RV-M1-Manual de operare, Mitsubishi Electric
[6]. * * * CIM-2000 Mechatronics Training System, Degem System LTD, 1992
69