Sunteți pe pagina 1din 37

Capitolul 11

CONDUCEREA ROBOŢILOR PRIN


CONTROLERE LOGICE PROGRAMABILE

Capitolul de faţă este destinat metodelor de conducere ale unor echipamente


speciale cunoscute frecvent sub denumirea de controlere logice programabile
(CLP). Derivând direct din automatele programabile discutate anterior, CLP-urile
reprezintă ultima realizare în domeniul atât de diversificat al echipamentelor de
conducere pentru procese secvenţiale. Proiectate iniţial ca simple simulatoare ale
schemelor cu contacte şi relee, aceste sisteme s-au impus în ultimii ani prin
facilităţile deosebite pe care le oferă atît proiectantului cât şi utilizatorului.

11.1. Controlere logice programabile

Controlerele programabile sunt sisteme specializate destinate acoperirii


următoarelor funcţii: procesarea datelor, memorare, transfer intrare-ieşire. Deşi
indicativul "logică-programabilă" desemnează clar existenţa unor procesoare ce
operează scalar, în prezent aceste echipamente pot prelucra de asemenea mărimi
numerice, deci pot interveni direct în structuri de conducere numerică modelând
sau simulând bucle de reglare complexă. Un avantaj caracteristic acestor sisteme îl
reprezintă posibilitatea vizualizării programului de conducere printr-o schemă tip
"contacte şi relee", reprezentare “ladder". Această reprezentare oferă
programatorului un afişaj electronic extrem de familiar, capabil să permită atât
facilităţi de programare cât şi de urmărire a evoluţiei procesului condus. Aceste
controlere realizează deci fuziunea între o tehnică "arhaică" a schemelor cu
contacte şi metodele moderne de procesare ale calculatoarelor numerice.
Schema generală a unui CLP este prezentată în figura 11.1.[121]
Capitolul 11. Conducerea robţilor prin controlere logice programabile 407

Magistrala de adrese

Magistrala de control

REPROM RAM UC ROM ROM Unitate


(memorie – (program () (data) I/O
program) utilizator)
Magistrala Date

Magistrala I/O

Lateh Buffer

Filtre
Interfaţă
Optocuploare

Figura 11.1.

UC controlează şi supervizează toate operaţiile din interiorul CLP, transferul


instrucţiunilor, procesarea lor şi conexiunile cu exteriorul. UC este alimentată de la
un generator cu cuarţ cu frecvenţă între 1 şi 8 MHz (în funcţie de tipul
microprocesorului utilizat).
Pentru memorarea programului toate CLP-urile moderne utilizează memorii
RAM sau EPROM. Primele se folosesc pentru dezvoltările iniţiale ale programului
care, după testarea completă, este înscris în EPROM. Celelalte memorii sunt
utilizate pentru stocarea unor variabile intermediare pentru realizarea imaginilor
variabilelor de intrare/ieşire şi pentru memorarea unor funcţii interne: numărare,
temporizare, marcare etc.
Unităţile intrare-ieşire formează interfaţa între structura internă a CLP şi
procesul condus sau acestea vor asigura, pe de o parte izolarea CLP-ului de exterior
şi compatibilitatea electrică cu exteriorul a semnalelor ce intră sau sunt generate.
Operaţiile interne şi procesarea datelor în CLP sunt aceleaşi cu ale oricărui
microprocesor sau al automatelor programabile.
La faza fetch instrucţiunea este citită din memorie şi plasată într-un registru
de instrucţiuni pentru decodificarea ei în operaţii interne (microinstrucţiuni) cerute
408 Roboţi industriali

de fiecare instrucţiune particulară. Urmează faza de execuţie a instrucţiunii care


implică, de obicei, o prelucrare logică asupra unei variabile interne sau externe şi
stocarea rezultatului într-o locaţie corespunzătoare. Este evident că un loc
important în aceste operaţii îl joacă achiziţionarea variabilelor externe.
În general există două modalităţi de captare a variabilelor de intrare. Prima
procedură implică transferul datelor de la canalul de intrare specificat în
instrucţiune, prelucrarea lor şi înscrierea rezultatului în canalul de ieşire dorit,
(figura 11.2a.). În al doilea caz, utilizat pentru sistemele cu un număr mare de
intrări/ieşiri, într-o primă fază se achiziţionează într-un RAM toate variabilele de
intrare cuplate, se execută apoi întreg programul memorându-se toate rezultatele în
altă secţiune RAM şi în final noile valori ale variabilelor de ieşire se trimit pentru
actualizare, în toate canalele de ieşire cuplate la CLP (figura 11.2.b.).[121]

Fetch.decodificar Achiziţionarea Fetch.decodificare Achiziţionarea


e variabilei de execuţie variabilei de
execuţie intrare instrucţiune intrare
instrucţiune
 5s  3s  5s  3s
<==========> <==========> <==========> <==========>
a)

Copiază toate Fetch.decodificare Transfer toate ieşirile


intrările în RAM execuţie pentru întregul din RAM în canalele
program corespunzătoare

 5s  5s pentru 1 k programe  5s


<==========> <==================> <==================>
b)
Figura 11.2.

11.2. Instrucţiuni şi programarea grafică a CLP

Instrucţiunile utilizate în programarea CLP se înscriu în gama uzuală a


instrucţiunilor logice având în plus caracteristici specifice rezultate din
reprezentarea grafică proprie schemelor ladder.[121,122]
Diagramele ladder au fost utilizate iniţial pentru reprezentarea circuitelor
electrice. Ulterior, introducerea controlerelor programabile şi dorinţa de a asigura
Capitolul 11. Conducerea robţilor prin controlere logice programabile 409

utilizatorului aceleaşi facilităţi în urmărirea funcţionării sau în testarea circuitelor


au impus adaptarea simbolurilor circuitelor electrice în logica programabilă.
O diagramă ladder, în schemele electrice, este formată din două bare
verticale ce asigură potenţialul electric necesar şi o reţea de contacte şi bobine
(figura 11.3.a).
În figura 11.3.b este prezentată o reprezentare cu o logică similară cu cea
oferită de schema electrică dar utilizând simboluri specifice din CLP. Deşi
simbolurile folosite de diverse firme nu au o standardizare riguroasă acestea
încearcă să păstreze caracterul oferit de simbolurile şi conexiunile electrice din care
derivă.

Figura 11.3

În tabelul 11.1 sunt prezentate câteva din simbolurile şi instrucţiunile


asociate, utilizate în CLP produse de firmele Texas Instruments şi Mitsubishi.
În anexa 3 sînt prezentate detaliat instrucţiunile firmei şi modul de utilizare.

Texas Instruments Mitsubishi Funcţie Simbolizare


Mnemonic Mnemonic grafică
STR LD Declară început
de linie. Încarcă
variabilă
AND AND Conexiune serie

OR OR Conexiune paralel

OUT OUT Ieşiri ( )


NOT ...I Negaţie

- - Funcţii speciale
410 Roboţi industriali

Tabelul 11.1

Programarea CLP se poate realiza atât pe baza instrucţiunilor logice cât şi


prin programare grafică utilizând simbolurile corespunzătoare. În acest caz se
permite utilizatorului să folosească simbolurile familiare din structura circuitelor
electrice. Modulul de programare translatează sau compilează aceste simboluri
grafice în instrucţiuni logice memorate în memoria RAM.

11.3. Organigrame de stări şi Grafcet

În capitolele anterioare, implementarea sistemelor de conducere secvenţială


se baza pe tehnicile oferite de organigramele (grafurile) de stări. Acestea permiteau
dezvoltarea unor metode puternice de implementare asociate diverselor sisteme ce
reprezentau suportul hardware.
În ultimii ani în literatura de specialitate, în special în cea de provenienţă
franceză, s-au introdus şi dezvoltat noi sisteme de reprezentare grafică a evoluţiei
secvenţiale a proceselor, cunoscute sub denumirea de Grafcet.
Deşi un Grafcet redă în esenţă aceleaşi elemente ca şi o organigramă de
stări, anumite particularităţi de reprezentare oferă facilităţi atât proiectantului cât şi
utilizatorului, ceea ce a dus la lărgirea ariei de utilizare şi penetrarea metodei într-
un mare număr de aplicaţii.
Un Grafcet este un graf orientat definit printr-un cvadruplet {S , T , E , M }
unde:
- S  {S1 , S 2 ,..., S N } este mulţimea secvenţelor (în particular a stărilor);
- T  {T1 , T2 ,..., TP } este mulţimea condiţiilor ce determină tranziţiile
dintr-o secvenţă în alta;
- E  {E1 , E2 ,..., EQ } este mulţimea ieşirilor generate în timpul evoluţiei;
- M  {M 1 , M 2 ,..., M M } reprezintă o mulţime de valori binare ce
desemnează starea de activare a fiecarei secvenţe. Pentru mi  0 se consideră că
secvenţa asociată este neactivă iar pentru mi  1 secvenţa devine activă. În mod
normal o singură secvenţă este activă dar pot exista situaţii în care
procese concurente pot determina activarea simultană a mai multor secvenţe.
Simbolizarea Grafcet-ului nu este unică. În literatură se pot întâlni diverse
moduri de reprezentare. În figura 11.4 este prezentată o metodă utilizată frecvent în
aplicaţii de conducere a proceselor industriale.
Capitolul 11. Conducerea robţilor prin controlere logice programabile 411

O secvenţă este reprezentată printr-un dreptunghi (sau un cerc) şi definită


printr-un identificator de secvenţă. Acesteia i se asociază o variabilă, de obicei o
variabilă internă, ce reprezintă suportul fizic al secvenţei.
Asociat identificatorului de secvenţă şi conectat direct la acesta este blocul
ieşirilor generate în secvenţa respectivă. Activarea secvenţei (variabilei) înseamnă
activarea tuturor ieşirilor conectate. În această reprezentare se mai poate remarca
prezenţa a două condiţii de tranziţie, prima desemnând condiţiile pentru atingerea
secvenţei iar a doua reprezentând condiţiile pentru evoluţia în secvenţa următoare.
Aceste condiţii reprezintă fie simple variabile externe, fie funcţii logice complexe
obţinute prin operatori logici specializaţi. Conexiunile între blocurile unui Grafcet
se obţin prin linii orizontale şi verticale. Liniile verticale desemnează evoluţii iar
cele orizontale indică posibilităţi de ramificare condiţionată sau nu. În figura 11.5
sunt prescurtate două diagrame, prima ca o ramificare de tip SAU, a doua cu o
ramificare ŞI.

De la secvenţa
condiţii de tranziţie
precedentă
pe intrare TIN

Identificator
Ieşire 1
Variabilă
Ieşire 2

condiţii
tranziţie Ieşire k
ieşire TOUT
Spre secvenţa
următoare

Figura 11.4

În figura 11.5.a, linia orizontală A desemnează o evoluţie fie în secvenţa


S11 , fie în S 21 prin deciziile T11 sau T21 . În figura 11.4.b, condiţia T0
desemnează evoluţia din S 0 atât în secvenţa S11 cât şi în. S 21 . Liniile orizontale
Β determină convergenţa evoluţiilor care se realizează tot pe o logică SAU
(condiţiile T13 sau , T23 figura 11.5.a) sau pe o logică ŞI (condiţia T1 , figura
11.5.b).
412 Roboţi industriali

S0 E0
Ramificaţie
U
A
T11 T21
S11 E11 S21 E21
T12
T22
S12 E12 S22 E22
T13 T23
B

S1
E1

Figura 11.5 a

Este evident că, în funcţie de complexitatea procesului condus, arborescenţa


Grafcet-ului creşte, în aceeaşi structură putând fi întîlnite atât ramificaţii de tip ŞI
cât şi SAU precum şi configuraţii ierarhizate corespunzând unor anumite grade de
subordonare. În figura 11.6 este prezentat un Grafcet cu o astfel de structură, liniile
A0 , B0 definind gradul 0 de subordonare iar liniile A1 , B1 , gradul 1.

S0 E0
T0 Ramificaţie
&
A

S11 E11 S21 E21


T12
T22
S12 E12 S22 E22

B
T1
S1
E1

Figura 11.5 b
Capitolul 11. Conducerea robţilor prin controlere logice programabile 413

Un Grafcet poate fi întotdeauna echivalat cu o organigramă (graf) de stări,


complexitatea translatării fiind dată de gradul de dificultate prin care o secvenţă se
descompune într-una sau mai multe stări. În cele mai dese cazuri o secvenţă
corespunde unei stări şi atunci asimilarea este simplă (figura 11.7).
În cazurile mai complexe, fiecare secvenţă se înlocuieşte cu un număr de
stări astfel încât să preia toată informaţia conţinută în aceasta. Condiţiile de
tranziţie sînt bineânţeles păstrate.
În finalul acestei prezentări s-ar putea încerca aflarea răspunsului la
întrebarea "ce este de preferat, utilizarea organigramei de stări sau a Grafcet-ului?".
Este evident că nu se poate formula un răspuns tranşant, ambele soluţii
reprezentând metode adecvate de lucru. Totuşi, în cazul unor procese industriale
complexe, a căror evoluţie implică un număr mare de stări, se poate recomanda
utilizarea Grafcet-ului, numărul de secvenţe fiind în general mai mic decât cel al
stărilor şi deci suportul fizic solicitat va fi mai redus.

S0 E0
A T0

S11 S21 S31


A1
T12 T21 T31 T41
S12 S22 S32 S41

T12 T22 B1 T22 T42

S13 S23
S33

B T1
S1

Figura 11.6

Acest lucru va fi bine ilustrat în soluţiile propuse pentru comanda unor


roboţi secvenţiali destinaţi unor funcţii de manipulare la care evident există o
diferenţă mare între numărul de stări şi cel al secvenţelor implicate în generarea
traiectoriei.
414 Roboţi industriali

11.4. Implementarea unui Grafcet

Tehnica de implementare a unui Grafcet se bazează pe transpunerea în


limbajul CLP a unei funcţii logice ce defineşte:
- set pe condiţiile de tranziţie TIN (figura 11.4);
- memorarea variabilei asociate secvenţei;
- reset pe condiţiile de tranziţie TOUT .
Dacă se notează prin Si variabila internă asociată secvenţei, condiţiile de
mai sus se pot scrie sub forma:
Si  TIN  Si  TOUT (11.1)

relaţie care este identică practic cu ecuaţia unui bistabil R  S . În cele mai
multe cazuri, condiţia de set include nu numai variabilele TIN ci şi variabila ce
defineşte secvenţa anterioară Si 1 , deci
S i  TIN  S i 1  Si  TOUT (11.2)

T0

Secvenţa 1 Starea 1
Ieşire 1 (Variabila 1) Ieşire 1
Variabila 1

T1 0
T1
1

Figura 11.7

Primul termen va defini condiţia de amorsare a secvenţei Si , iar al doilea


asigură stabilitatea secvenţei şi în acelaşi timp anularea ei prin condiţiile TOUT .
Este posibil ca forma (11.2) să sufere modificări sau completări în funcţie de
anumite elemente specifice. De exemplu, dacă Si poate fi şi iniţializată printr-o
condiţie suplimentară Tinit , relaţia (11.1) devine:
Si  Tinit  TIN  Si 1  Si  TOUT (11.3)
Capitolul 11. Conducerea robţilor prin controlere logice programabile 415

Aparent, relaţia (11.3) oferă soluţia implementării. În realitate, aplicarea


acestei formule într-o succesiune de secvenţe ale unui grafcet este improprie
datorită hazardului de comutare produs de aceeaşi variabilă de condiţie la setarea şi
resetarea a două secvenţe consecutive.
Pentru concretizarea ideii, să considerăm secvenţele S1 şi S 2 din figura
11.9.a. Conform relaţiei (11.3) rezultă:
S1  T0 S 0  S1T1
S 2  T1S1  S 2 T2
Este evident că variabila T1 resetează pe S1 şi defineşte totodată condiţia
pentru activarea lui S 2 dar condiţionat de S1 (termenul T1S1 ). Pe de altă parte
aceste relaţii sunt reprezentate pe linii diferite în diagramă, explorate secvenţial. În
consecinţă, se produce întâi resetarea lui S1 prin S1T1 şi nu mai poate fi realizată
deci activarea, pe linia următoare, a lui S 2 ( termenul T 1S1  0 ).
Acest neajuns se poate remedia punând condiţia ca resetarea unei secvenţe să
fie realizată nu de variabila de tranziţie ci de starea succesoare. Astfel, relaţiile de
mai sus devin :
S1  T0 S0  S1 S 2
S1  T1S1  S 2 S3
Se poate verifica uşor că acum deficienţele semnalate au fost complet
eliminate. Relaţia (11.3) se poate rescrie sub forma :
Si  Tinit  TIN  Si 1  Si  Si 1 (11.4)
Generarea variabilelor de ieşire se obţine fără dificultate utilizând facilităţile
de alocare a ieşirilor oferite de un CLP. În figura 11.8 este reprezentată diagrama
ecuaţiei 11.4 şi instrucţiunile corespunzătoare.

Tinit
( SI )
TIN SI-1
0 LOD Tinit SI SI+1
1 LOD TIN
2 AND Si-1 SI
( Ieşire 1)
( Ieşire 2)
( Ieşire k)
416 Roboţi industriali

3 LOD Si
4 ANDNOT Si+1
5 ORLOD
6 ORLOD
7 OUT Si
8 LOD Si
9 OUT Ieşire 1
10 OUT Ieşire 2

Figura 11.8

Reprezentarea de mai sus defineşte metoda generală de implementare a unei


secvenţe. În funcţie de caracteristicile problemei de conducere abordată, această
reprezentare poate suferi modificări cantitative care să permită utilizarea unor
elemente şi proceduri speciale de implementare oferite de instrucţiunile unui CLP.
Un exemplu în acest sens îl constituie utilizarea instrucţiunilor STL asociat
cu variabilele 600-647. Acestea din urmă au proprietatea unei celule latch, deci
devin logic 1 (set) prin condiţiile ce sigură activarea variabilei, memorează
valoarea logică şi se resetează o dată cu activarea celulei următoare.
Prin aceste proprietăţi aceste variabile vor constitui suporturi ideale pentru
implementarea oricăror secvenţe. De asemenea, utilizarea instrucţiunii STL
(instrucţiune de tip master) permite formarea unor bare de conexiune suplimentară
pentru comanda unui număr mare de variabile.
Pentru exemplificare să considerăm grafcet-ul din figura 11.9.a. Diagrama
ladder asociată este prezentată în figura 11.9.b iar instrucţiunile corespunzătoare în
figura 11.9.c.
Variabila de iniţializare asigură condiţia de set a variabilei latch 600. Pe a
doua linie a diagramei, variabila 600 şi T0 determină condiţia de set a lui 601.
Activarea acesteia determină resetarea lui 600, generarea ieşirii 200 şi formarea
condiţiilor de bază pentru activarea variabilei 602 ş.a.m.d..
Capitolul 11. Conducerea robţilor prin controlere logice programabile 417

Iniţializare
Iniţializare S 600
600 T0
S0 S 601
S 600
T0 ( 200 )
STL T1
S1 S 602
E 200
S 601 601
( 201 )
STL T2
S2 E 200 S 600
S 602
END

Figura 11.9

11.5. Conducerea unui conveior într-o instalaţie


robotizată de vopsire

Ca o primă aplicaţie se va aborda problema implementării sistemului de


conducere a unui conveior utilizat pentru transportul unor subansamble (plăci) într-
o instalaţie robotizată de vopsire. Întregul sistem este prezentat în figura 11.10.
Tehnologic, conveiorul este format dintr-un lanţ transportor cu o latură
inferioară activă şi una superioară pasivă. Latura activă conţine 10 puncte de
prindere în care sunt montate panourile. Acestea sunt prinse în punctul de încărcare
şi avansează secvenţial atât prin punctele de vopsire cât şi prin cuptorul de uscare şi
coacere.
Linia este prevăzută cu doi roboţi ce asigură vopsirea pe fiecare faţă a
panourilor când acestea ajung în poziţiile c3 , respectiv c5 . Poziţiile c6 , c7 , c8
corespund deplasării în zona cuptorului iar c9 reprezintă punctul de descărcare.
418 Roboţi industriali

c0 c1 c2 c3 c4 c5 c6 c7 c8 c9

TD

Incarcare Descarcare
Zona de
ROB1 ROB2 uscare

Figura 11.10

Activarea funcţiilor de vopsire a celor doi roboţi se produce ori de câte ori
un panou ajunge în poziţiile respective. De asemenea, cuptorul este încălzit cu
becuri în infraroşu care sunt aprinse numai dacă cel puţin un panou se deplasează
în zona de uscare. Trebuie subliniat faptul că linia nu este normal încărcată la
capacitatea maximă deci se impune întotdeauna cunoaşterea exactă a stării de
încărcare a fiecărei poziţii ci .
Acţionarea conveiorului este realizată secvenţial, cu un tact de lucru
suficient de mare pentru a permite realizarea funcţiilor de vopsire în c3 şi c5 şi
tratarea termică în cuptor. Un traductor de deplasare incremental montat pe una din
roţile conveiorului furnizează semnalul necesar pentru controlul poziţiei.
Grafcet-ul asociat operaţiilor executate pe linie este prezentat în figura
11.11.
Fiecărui punct de lucru ci , i se asociază o secvenţă si , din timpul
tehnologic al liniei. Prezenţa uni panou într-un punct ci , este desemnată prin
marcarea secvenţei. Această marcare se realizează numai în prima poziţie c0
(iniţializare) o dată cu încărcarea unui panou şi se deplasează în celelalte secvenţe
si succesiv, sincron cu deplasarea panoului, prin tactul de lucru al liniei.
Capitolul 11. Conducerea robţilor prin controlere logice programabile 419

Iniţializare

S0 *
R0 Marcarea
TACT
secvenţelor
S1 *
R1
TACT
S2
R2
TACT
S3
ACTIV ROB1
R3
TACT
S4
R4
TACT
S5
ACTIV ROB1
R5
TACT
S6
ACTIV infraroşu
R6
TACT
S7
ACTIV infraroşu
R7
TACT
S8
ACTIV infraroşu
R8
TACT
S9
R9

Figura 11.11

Aceste funcţii de memorare şi de deplasare a informaţiei înmagazinate


impun alegerea unui registru de deplasare ca suport al secvenţelor de lucru, în
consecinţă s-a ales registrul definit prin variabilele R0 , R1 ,..., R9 ca registru
suport,
420 Roboţi industriali

fiecare celulă Ri adusă în starea logică 1 reprezentând marcarea secvenţei


corespunzătoare Si .

Variabilă externă Alocare în CLP


Variabilă de ştergere (reset) 1
Semnal traductor TD 2
Semnal derivat TD* 400
Iniţializare marcare 3
Activare ROB1 200
Activare ROB2 201
Activare becuri infraroşu 202
Registre R0-R9

Tabelul 11.2
Alocarea variabilelor în CLP este prezentată în tabelul 11.2 iar diagrama şi
instrucţiunile de implementare în

0 LOD 2 2
SOT ( 400 )
1 SOT 400
1
2 LOD 1
3 LOD 400 400 SFR
4 LOD 3 0
5 SFR 10 3 10
6 10
7 LOD R 3 R3
( 200 )
8 OUT 200
9 LOD R 5 R5
( 201 )
10 OUT 201 R6
11 LOD R 6 ( 202 )
12 OR R 7 R7
13 OR R 8 R8
14 OUT 202
15 END
Figura 11.12

Impulsul traductorului de deplasare TD este derivat prin instrucţiunea SOT


ceea ce permite formarea unui singur semnal cu o durată egală cu cea a timpului de
Capitolul 11. Conducerea robţilor prin controlere logice programabile 421

baleiaj al programului. Se evită în acest fel deplasarea falsă a informapei în registru


în timpul explorărilor succesive ale programului. Impulsul este memorat în
variabila internă 400 şi este utilizat ca impuls de deplasare a lui SFR 0. Iniţializarea
registrului se realizează cu variabila 3 furnizată de punctul de încărcare al liniei.
Celulele R3 şi R5 sunt citite succesiv şi generează activarea celor doi roboţi iar
celulele R6 , R7 , R8 determină activarea becurilor în infraroşu ale cuptorului.
Atât schema ladder prezentată cât şi programul asociat demonstrează clar,
faţă de complexitatea problemei abordate, eleganţa şi simplitatea soluţiei.

11.6. Conducerea unui robot în instalaţii de acoperiri


galvanice

În capitolul 7 au fost analizate sisteme de conducere în logică cablată pentru


o instalaţie robotizată de acoperiri galvanice. Se va relua acum această aplicaţie
propunând o soluţie bazată pe CLP.

Variabile externe Alocare în CLP Variabile externe Alocare în CLP


(intrări) (ieşiri)
Iniţializare 1 Mers dreapta 200
Limitatori L1 2 Mers stânga 201
„ L2 3 Ridicare 202
„ L3 4 Coborâre 203
„ L4 5 Variabile interne Alocare în CLP
„ L5 6 s0  s7 600-607
„ j 7 620-623
s20  s23
„ s 8
Diferenţierea(ULi)= 9
L*

Tabelul 11.3

Pentru reactualizarea datelor se va reface traiectoria robotului specificând


succesiunea secvenţelor funcţionale ce o formează (figura 11.13). Se remarcă
posibilitatea descompunerii traiectoriei generale în segmente cu caracteristici
comune. De exemplu, secvenţa s1 constă în evoluţia pe jos spre dreapta urmată de
un ciclu: ridicare – dreapta (un pas) - coborâre: secvenţa s2 este formată dintr-o
deplasare continuă pe jos urmată de acelaşi ciclu ridicare - dreapta - coborâre
ş.a.m.d.. Ultimele secvenţe sunt similare dar ciclul utilizat este inversat: ridicare –
422 Roboţi industriali

stânga - coborâre.

L1 L2 L3 L4 L5
(a) s20 s21 s22
s23
L1 L2 L3 L5
s21 s22
s20
s1
s21 s22
s20

s2
s20 s21 s22

s3
s6
s7 s5
s4
Figura 11.13

În figura 11.14 se poate urmări grafcet-ul traectoriei. Se poate remarca


divizarea grafului în două părţi, una pentru secvenţele de bază s0 , s1 ,..., s7 şi a
doua pentru secvenţele s20 , s21 , s22 ce definesc ciclul de transport. Apelarea
acestuia din urmă poate fi realizată cu o tehnică de tip subrutină, deşi controlerul
nu are o instrucţiune specifică de apel. Apelul acestui ciclu va fi realizat prin
instrucţiunea FUN300 ce va defini un salt la linia de adresă 200 unde este plasată
subrutina.
Pentru implementarea acestui grafcet s-au utilizat variabilele interne 600-623
care pot funcţiona în regim de latch, funcţia set fiind definită de condiţiile specifice
de comutare impuse de evoluţia procesului iar resetarea fiind realizată automat
odată cu activarea variabilei următoare.
Diagrama ladder a întregului sistem de conducere şi alocarea
corespunzătoare a variabilelor se pot urmări în figura 11.15 şi tabelul 11.3.
Prin variabila de iniţializare 1 se activează variabila 600 ce defineşte
secvenţa s0 . Prin instrucţiunea STL se creează o linie master ce permite pe de o
parte comanda ieşirii 200 (mers dreapta) şi în acelaşi timp, cînd variabila 5 este
Capitolul 11. Conducerea robţilor prin controlere logice programabile 423

activă (poziţia L4 ), activarea variabilei 620 a ciclului şi apelarea acesteia prin


instrucţiunea FUN 300 la adresa 200. Saltul la această linie determină realizarea
ciclului ridicare - mers dreapta - coborâre prin variabilele 620,621,622,623, după
o procedură similară. Trebuie menţionată formarea variabilei 401 ca semnal
derivativ al variabilei ce realizează funcţia SAU pe variabilele de poziţie L2  L5 .
În acest fel se limitează deplasarea la dreapta la un singur pas, în cadrul fiecărui
ciclu.

b
Iniţializare
a
S0 Mers dreapta
L4 600
S20 Ridicare S5
L5 Ridicare
620 605
S1
Mers stânga s s
601
L3 S21
L4 Mers dreapta S6 Mers
621 606 stânga
S2
Mers stânga
L2 602
L3 S22 S7
Coborâre Coborâre
S3 622 607
Mers stânga
L1 603
S23 b
L2
623
S4
Mers dreapta
604
a

Figura 11.14

În finalul subrutinei se utilizează instrucţiunea END ceea ce determină


reluarea programului la adresa 0. Întrucât variabila 623 era activă, aceasta va
determina practic reluarea secvenţelor începând cu linia variabilei 601. Procedura
continuă în acest fel realizând calea principală a grafcet-ului şi apelând succesiv la
subrutina ciclului.
Programul detaliat de implementare se obţine transpunând diagrama în
instrucţiunile CLP corespunzătoare:
424 Roboţi industriali

1 623 3
S 600
S 604
600 604 ( 200 )
( 200 )
STL 5 S 620 STL 6 S 605
605
( 202 )
FUN300
STL 8 S 606
200
623 6
606
S 601 ( 201 )
601 STL 2 S 607
( 201 )
STL 4
S 620 607 ( 203 )
STL 7
S 600
FUN300
200
623 5 620
( 202 )
S 602
602 S 621
( 201 ) 621
3 ( 200 )
STL S 620 6
( 400 )
5
FUN300
200 4
623 4 3
S 603 ( 400 )
SPT ( 401 )
603
( 201 )
S 622
2 S 620
STL 622
( 203 )
S 623
FUN300
200 END

Figura 11.15
Capitolul 11. Conducerea robţilor prin controlere logice programabile 425

0 LOD 1
1 SET 600
2 STL 600
3 OUT 200
4 LOD 5
6 SET 620
7 FUN 300
8 200
9 RET
10 LOD 623
11 AND 6
12 SET 601
13 STL 601
14 OUT 201
15 LOD 4
16 SET 620
17 FUN 300
18 200
19 RET
20 LOD 623
21 AND 5
22 SET 602
23 STL 602
24 OUT 201
25 LOD 3
26 SET 620
27 FUN 300
28 200
29 RET
30 LOD 623
31 AND 4
32 SET 603
33 STL 603
34 OUT 201
35 LOD 2
36 SET 620
37 FUN 300
38 200
39 RET
40 LOD 623
41 AND 3
42 SET 604
426 Roboţi industriali

43 STL 604
44 OUT 200
45 LOD 6
46 SET 605
47 STL 605
48 OUT 202
49 LOD 8
50 SET 606
51 STL 606
52 OUT 201
53 LOD 2
54 SET 607
55 STL 607
56 OUT 203
57 LOD 7
58 SET 600
59 END
.
.
.
200 STL 620
201 OUT 202
202 LOD 8
203 SET 621
204 STL 621
205 OUT 200
206 LOD 6
207 OR 5
208 OR 4
209 OR 3
210 OUT 400
211 LOD 400
212 SOT 1
213 OUT 400
214 LOD 401
215 SET 622
216 STL 622
217 OUT 203
218 LOD 7
219 SET 623
220 END
Capitolul 11. Conducerea robţilor prin controlere logice programabile 427

11.7. Conducerea unui manipulator ce deserveşte un


cuptor de tratare termică

Se va relua exemplul prezentat în capitolul 9 propunându-ne implementarea


sistemului de conducere pe un CLP utilizând reprezentarea prin grafcet (figura
11.16).
Se remarcă, în acest caz, identitatea noţiunii de stare cu cea de secvenţă. În
consecinţă grafcetul redă destul de exact forma organigramei de stări, diferenţe
putând fi notate în cazul deciziilor ierarhizate ale organigramei care în grafcet
devin linii orizontale de ramificare.
Implementarea secvenţelor se obţine pe baza relaţiei (11.4). În consecinţă
expresiile logice ale secvenţelor vor fi:

401  10  411  412  9  401  402


402  401  6  402  403
403  402  4  403  404
404  403  8  404  (405  406  407)
405  404  206  405  408
406  404  207  406  408
407  404  208  407  408
408  405  1  406  2  407  3  408  409
409  408  7  409  410
410  409  5  410  (411  412)
411  410  209  411  401
412  410  209  412  401
Aceste relaţii vor constitui nucleul diagramei ladder, la acestea
adăugându-se logica de numărare şi funcţiile de ieşire (figura 11.16).

Variabile de intrare Alocare CLP


LI 1
L2 2
L3 3
L4 4
L5 5
PP 6
CLD 7
CLI 8
OC 9
428 Roboţi industriali

Iniţializare 10
Variabile de ieşire Alocare CLP
AB 200
AM 201
RM 202
ICL 203
DCL 204
RC 205
NUMO 206
NUMI 207
NUM2 208
NUM3 209
Secvenţe Alocare CLP
s1 401
s2 402

s12 412
Variabile de numărare Alocare CLP
Numărător CNT1
Reset 11
Impuls numărare 7

Tabelul 11.4
Programul de conducere va fi:

0 LOD 10
1 LOD 411
2 LOD 412
3 AND 9
4 LOD 401
5 AND NOT 402
6 OR LOD
7 OR LOD
8 OR LOD
9 OR LOD 623
10 OUT 401
11 LOD 401
12 AND 6
13 LOD 402
14 AND NOT 403
15 OR LOD
16 OUT 402
17 LOD 402
18 AND 4
Capitolul 11. Conducerea robţilor prin controlere logice programabile 429

19 LOD 403
20 AND NOT 404
21 OR LOD
22 OUT 403
23 LOD 403
24 AND 8
25 LOD 404
26 AND NOT 405
27 AND NOT 406
28 AND NOT 407
29 OR LOD
30 OUT 404
31 LOD 9
32 LOD 8
33 CNT 1
34 5
35 FUN 201
36 1
37 OUT 207
38 FUN 201
39 2
40 OUT 208
41 FUN 201
42 3
43 OUT 209
44 LOD NOT 207
45 OUT 206
46 LOD 404
47 AND 206
48 LOD 405
49 AND NOT 408
50 OR LOD
51 OUT 405
52 LOD 404
53 AND 207
54 LOD 406
55 AND NOT 408
56 OR LOD
57 OUT 406
58 LOD 404
59 AND 208
60 LOD 407
61 AND NOT 408
430 Roboţi industriali

62 OUT 407
63 LOD 405
64 AND 1
65 LOD 406
66 AND 2
67 LOD 407
68 AND 3
69 LOD 408
70 AND NOT 409
71 OR LOD
72 OR LOD
73 OR LOD
74 OUT 408
75 LOD 407
76 AND 7
77 LOD 409
78 AND NOT 410
79 OR LOD
80 OUT 409
81 LOD 409
82 AND 5
83 LOD 410
84 AND NOT 411
85 AND NOT 412
86 OR LOD
87 OUT 410
88 LOD 410
89 AND NOT 209
90 LOD 411
91 AND NOT 401
92 OR LOD
93 OUT 411
94 OUT 410
95 AND 209
96 LOD 412
97 AND NOT 401
98 OR LOD
99 OUT 412
100 LOD 401
101 OUT 200
102 LOD 402
103 OR 405
104 OR 406
Capitolul 11. Conducerea robţilor prin controlere logice programabile 431

105 OR 407
106 OUT 201
107 LOD 403
108 OUT 203
109 LOD 408
110 OUT 204
111 LOD 409
112 OUT 202
113 LOD 412
114 OUT 205
115 END
432 Roboţi industriali

Iniţializare

S1
AB
401
PP
S2
AM
402
L4
S3
ICL
403
CLI
S4
404

NUM0 NUM1 NUM2


S5 S6 S7
AM AM AM
405 406 407
L1 L2 L3

S8
408
CLD
S9
409
L5
S10
410

NUM3 NUM3
S11 S12
RC
411 412

Figura. 11.16. a)
Capitolul 11. Conducerea robţilor prin controlere logice programabile 433

10 404 208
( 401 ) ( 407 )
411 402 403
412 9
405 1
401 402 ( 408 )
406 2
401 6 407 3
( 402 )
402 403 408 409

407 7
4
( 403 ) ( 409 )
403 404 409 410

403 8 409 5
( 404 ) ( 410 )
404 405 406 407 410 411 412
410 209
9 ( 411 )
CNT 412 401
7 1
5 410 209
FUN201 ( 202 ) ( 412 )
412 401
1
401
FUN201 ( 208 ) ( 200 )
2 402
( 201 )
405
FUN201 ( 209 )
3 406
207 407
( 206 )
404 206 403
( 405 ) ( 203 )
405 408 408
( 204 )
409
404 207 ( 202 )
( 406 ) 412
406 408 ( 205 )

Figura 11.16.b)
434 Roboţi industriali

Se remarcă utilizarea unui bloc de numărare CNT 1 programat pentru


numărarea pînă la valoarea 5. Conţinutul acesteia este testat prin FUN 201 pentru
valori acumulate ce depăşesc 1,2,3. Prin ieşirile respective 207,208,209 se
determină de fapt condiţiile NUM1,NUM2,NUM3. Condiţia NUMO se obţine prin
simpla complementare a condiţiei 207.

11.8. Conducerea unui robot în coordonate cilindice

Se va analiza în continuare posibilitatea implementării unui sistem de


conducere pentru un robot în coordonate cilindrice ce deserveşte o celulă de
prelucrare. Celula este alimentată cu piese neprelucrate printr-o bandă
transportoare, piesele fiind dispuse ordonat pe palete, câte 8 pe fiecare paletă în
grupe de câte 4 (figura 11.17). Robotul transferă succesiv piesele în punctul de
prelucrare (presă) urmând o traiectorie impusă.

Presa

Paleta

(a)
A
B
C C
O
P0
B
P4
P
P4 P5 P6 7
1 P P
P P1 2 3
O 0 2 A 0

Figura 11.17
Capitolul 11. Conducerea robţilor prin controlere logice programabile 435

Iniţial robotul se găseşte în punctul A. Braţul avansează în punctul P0 ,


prinde o piesă şi se retrage în A. Braţul se roteşte în B, avansează în punctul C,
depune piesa în presă şi se retrage în A prin segmentul CBA. Operaţia se repetă de
8 ori după care banda circulară avansează aducând o nouă paletă la punctul de
încărcare.
Robotul, pe cele două axe r, θ, dispune de două tipuri de traductoare de
măsură, incremental pentru axa r şi absolut pentru axa θ. Prezenţa acestor două
tipuri de traductoare oferă posibilitatea utilizării facilităţilor de calcul numeric pe
care le oferă un CLP.
Grafcet-ul sistemului de conducere este prezentat în figura 11.18. în secvenţa
s0 se iniţializează coordonatele punctului de lucru P0 . Fiecare secvenţă
defineşte un segment din traiectorie şi este implementată prin variabile interne de
tip latch 600-613 folosind instrucţiuni tip STL.
În cadrul unei secvenţe se generează ieşirea necesară dar totodată se impun
prelucrări numerice corespunzătoare cerinţelor impuse de fiecare secvenţă de
mişcare. Aceste prelucrări nu apar explicit în grafcet dar ele sînt prezentate detaliat
în diagrama ladder asociată (figura 11.19).

S0
Iniţializare date
600
b
S1
Acţionare r+
601
r1
S2
Închidere griper
602
GRI
S3
Acţionare r-
603
r0
S4 Acţionare r+
604

a
Figura 11.18. a)
436 Roboţi industriali

Se remarcă prezenţa unei ramificaţii de tip SAU generată în secvenţa s 8.


Condiţiile de evoluţie pe anumite ramuri sunt determinate de numărul de piese
manipulat şi identificat în secvenţa s7. Astfel, după 4 piese sau 8 piese manipulate,
evoluţia se realizează pe ramurile doi şi trei ce determină iniţializarea parametrilor
θ şi r pe anumite valori. În celelalte cazuri, evoluţia se realizează pe prima ramură.
a

S5 Acţionare r-
605
r2
S6 Deschidere
606 griper-
GRD
S7 Acţionare r+
607 Contor piese
r0
S8
608

NUM4+NUM8 NUM4 NUM8


S9 sr S10 S11 O0 r1
609 610 611

S12
AB
612
PP

S13 Acţion
613

Figura 11.18. b)
Capitolul 11. Conducerea robţilor prin controlere logice programabile 437

603
5 ( 201 )
S 600
STL
FUN147 FUN247
FUN147 FUN247 10 10
STL 10 10 FUN147 FUN147
FUN147 FUN147 20 902
20 210 4
1 CNT ( 211 )
FUN147 FUN247 2
10 10
211
FUN147 FUN147 S 604
20 20 604
( 202 )
S 601 STL
FUN147 FUN147
13 10
( 200 )
FUN147 FUN147
FUN147 FUN147 10 10
10 810
FUN147 FUN147
FUN147 FUN147 3 801
20 910 710
4 711 S 605
CNT
1 2 605
( 200 )
210 STL
S 602 FUN147 FUN247
602 10 10
( 204 )
2 FUN147 FUN147
STL S 603 20 903
4
CNT ( 212 )
1 3

212
S 606
438 Roboţi industriali

606 607
( 208 ) S 604
STL 3 STL
S 607
FUN 100 ( 213 )
607 4
( 208 )
STL
FUN 100 ( 215 )
FUN147 FUN247 8 .
10 10 .
FUN147 FUN147 606 .
20 904 FUN147 FUN147
STL 10 810
4
CNT FUN147 FUN247
1 ( 213 )
4 4 10
4 FUN147 FUN147
CNT 20 820
3 0
S 613
Figura 11.19

Variabile intrare Alocare Variabile ieşire Alocare Secvenţe Alocare


CLP CLP CLP
Traductor axă r 1 Acţionare r+ 200 s0
Griper închis GRI 2 „ r- 201 ..

Griper deschis 3 „ θ + 202 s13


GRD
Prezenţă panou PP 4 „ θ- F203 Var.int. Alocare
CLP
Iniţializare 5 Închide griper 204 Registrul r 810
Traductor absolut 10 Deschide 205 Registrul θ 811
. griper 206
17
Numărător 900
20 Avans bandă
de piese
.
27

Tabelul 11.5
Capitolul 11. Conducerea robţilor prin controlere logice programabile 439

Fiecare secvenţă din grafcet este transpusă în diagramă printr-un număr de


instrucţiuni logice şi aritmetice.
Secvenţa s0 realizează iniţializarea cordonatelor punctului de prindere al
pieselor. Primele instrucţiuni determină încărcarea în registrul DRO (800) a valorii
r, (instrucţiunile FUN147/10 şi FUN247/ r1 ) şi transferarea ulterioară a valorilor
din DRO în DR10 (810), prin instrucţiunile FUN147/20 şi FUN147/810. În mod
similar este încărcată în registrul DR11 (811), cota  0 . Ultima instrucţiune a
secvenţei determină trecerea necondiţionată în secvenţa următoare identificată prin
variabila 601.
În secvenţa s1 , prima linie determină activarea ieşirii 200 (deplasarea r  )
iar următoarele linii permit transferul coordonatei r1 , din 810 în numărătorul
CNT1 aflat la adresa 901. Numărătorul poate fi resetat prin variabila 4 (prezenţă
panou în punctul de încărcare) şi este incrementat prin impulsurile traductorului de
deplasare al axei r (variabila 1). Când numărătorul atinge cota prescrisă ( r1 ) se
comută ieşirea 210 ce determină, în linia următoare, trecerea pe variabila 602
(secvenţa s2 ).Secvenţa s2 are numai o funcţie scalară comutând ieşirea 204
(închidere griper), ceea ce determină trecerea în secvenţa s3 (variabila 603). În
această secvenţă se produce revenirea braţului pe segmentul ( r0  r1 ) după o
procedură similară cu cea dezvoltată mai sus.
Secvenţa s4 realizează rotaţia braţului cu unghiul 1   0 . Măsurarea
mişcării este obţinută printr-un traductor absolut ce furnizează codul mărimii
măsurate sub forma unui vector pe 16 biţi, fiecare bit fiind captat prin variabile de
intrare 10-17,20-27 (instrucţiunile FUN147/13, FUN147/10). Rezultatul măsurării
este stocat în DR1 (801). În linia următoare, în registrul DR0(800) se încarcă
coordonata 1   0 . Valorile astfel stocate în DRO şi DR1 sînt comparate
(instrucţiunile FUN 147/3 şi FUN 147/801), rezultatul comparaţiei fiind concretizat
în comutarea variabilelor 710 şi 711.
Într-o manieră similară sunt implementate şi celelate secvenţe. Trebuie
remarcată realizarea funcţiei de contorizare a pieselor prin numărul CNTO (adresa
900), impulsul de numărare fiind obţinut din varibila 3 (griper deschis) la fiecare
depunere a piesei în punctul de prelucrare. Testarea conţinutului numărătorului este
obţinută prin instrucţiunile FUN100/4 şi FUN100/8 ce identifică numărul 4 şi
respectiv 8 al pieselor depuse. Variabilele asociate 214, 215 permit implementarea
ramificaţiei de tip paralel din grafcet.
440 Roboţi industriali

Pe baza diagramei astfel stabilite se obţine programul de conducere. Un


fragment din program este prezentat mai jos.

0 LOD 5
1 SET 600
2 STL 600
3 FUN 147
4 10
5 FUN 247
6 r1
7 FUN 147
8 20
9 FUN 147
10 810
11 FUN 147
12 10
13 FUN 247
14 0
15 FUN 147
16 20
17 FUN 147
18 811
19 SET 601
20 STL 601
21 OUT 200
22 FUN 147
23 10
24 FUN 147
25 810
26 FUN 147
27 20
28 FUN 147
29 901
30 LOD 4
31 LOD 1
32 CNT 1
33 OUT 210
34 LOD 210
35 SET 602
36 STL 602
37 OUT 204
38 LOD 2
Capitolul 11. Conducerea robţilor prin controlere logice programabile 441

39 SET 603
40 STL 603
41 OUT 201
42 FUN 147
43 10
44 FUN 247
45 r0  r1
46 FUN 147
47 20
48 FUN 147
49 902
50 LOD 4
51 LOD 1
52 CNT 2
53 OUT 211
54 LOD 211
55 SET 604
.
.
.

11.9. Implementarea algoritmilor de reglare

Sistemele CLP echipate cu canale de intrare de tip analogic pot realiza


operaţii matematice asupra mărimilor de intrare achiziţionate şi transferă rezultatul
direct, prin modulele de ieşire, în sistemele de acţionare ale articulaţiilor mecanice
ale roboţilor. Nivelul şi complexitatea algoritmului de control depinde de viteza şi
capacitatea de operare a controlerului.
În mod uzual un CLP poate realiza algoritmi de reglare de timp proporţional
utilizabili în sistemele de acţionare hidraulice. În sistemele de acţionare electrică un
astfel de control este nesatisfacător, performanţele realizate fiind departe de
cerinţele impuse. În capitolul 4 s-a pus în evidenţă faptul că majoritatea aplicaţiilor
de conducere impune un control PID atât asupra poziţiei cât şi al vitezei (eventual
PI). Pentru implementarea unor astfel de algoritmi se utilizează două proceduri.
CLP-urile standard conţin o subrutină rezidentă în memorie ce se apelează la
cerere şi se actualizează conform parametrilor impuşi. Termenii matematici
necesari sunt aproximaţi cu o precizie rezonabilă ceea ce impune un timp mare de
procesare. În ansamblu metoda se poate aprecia ca o metodă nu prea rapidă.
442 Roboţi industriali

O soluţie mai aceptabilă constă în introducerea unor module inteligente PID


ce conţin atât canalele de intrare - ieşire necesare cât şi un microprocesor
specializat pentru calculul matematic aferent. Acest procesor operează în paralel cu
unitatea centrală a CLP absolvind-o de toate calculele implicate de algoritm, acesta
având rolul numai de actualizarea a parametrilor în memoria ROM a modulului. În
plus, modulul poate realiza procesări ale semnalului de intrare, filtrare, netezire,
făcându-1 compatibil cu calculele matematice ulterioare.
Utilizarea algoritmilor PID printr-o diagramă ladder implică apelarea unui
meniu care specifică: valoarea prescrisă, intrarea măsurată, blocul PID apelat,
valorile numerice ale coeficienţilor PID precum şi ieşirea utilizată.

(D142) (D086) ( 012 ) (D300) (D220)

Figura 11.20

Aplicarea algoritmului PID cere definirea anterioară a mărimilor implicate în


construcţia sa. Astfel, valorile numerice ale mărimilor de intrare şi ieşire se
memorează în registre de date pe 16 biţi D000 - D100, respectiv D200 - D300. De
asemenea coeficienţii k1 , k 2 , k3 ai unui algoritm PID,
dx
y  k1 x  k 2  xdt  k 3
dt
sunt memoraţi în trei registre succesive, pe diagramă indicându-se adresa
primului registru (D300).
În figura 11.20 este prezentat un exemplu de implementare PID. În registrul
D142 se înscrie valoarea numerică prescrisă, registrul D086 memorează valoarea
numerică a intrării, identificatorul 012 determină blocul PID apelat, registrele
D300,D301,D302 stochează coeficienţii k1 , k 2 , k3 iar în registrul D200 este
memorată valoarea numerică a ieşirii. Pentru a fi utilizată pe ieşire analogică,
mărimea numerică este convertită într-un bloc D/A.

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