CONDUCEREA ROBOŢILOR PRIN CONTROLERE LOGICE PROGRAMABILE
Capitolul de fata 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 reprezinta ultima realizare īn domeniul atāt de diversificat al echipamentelor de conducere pentru procese secventiale. Proiectate initial ca simple simulatoare ale schemelor cu contacte si relee, aceste sisteme s-au impus īn ultimii ani prin facilitatile deosebite pe care le ofera atīt proiectantului cāt si utilizatorului.
11.1. Controlere logice programabile
Controlerele programabile sunt sisteme specializate destinate acoperirii urmatoarelor functii: procesarea datelor, memorare, transfer intrare-iesire. Desi indicativul "logica-programabila" desemneaza clar existenta unor procesoare ce opereaza scalar, īn prezent aceste echipamente pot prelucra de asemenea marimi numerice, deci pot interveni direct īn structuri de conducere numerica modelānd sau simulānd bucle de reglare complexa. Un avantaj caracteristic acestor sisteme īl reprezinta posibilitatea vizualizarii programului de conducere printr-o schema tip "contacte si relee", reprezentare ladder". Aceasta reprezentare ofera programatorului un afisaj electronic extrem de familiar, capabil sa permita atāt facilitati de programare cāt si de urmarire a evolutiei procesului condus. Aceste controlere realizeaza deci fuziunea īntre o tehnica "arhaica" a schemelor cu contacte si metodele moderne de procesare ale calculatoarelor numerice.
Schema generala a unui CLP este prezentata īn figura 11.1.
Figura 11.1.
UC controleaza si supervizeaza toate operatiile din interiorul CLP, transferul instructiunilor, procesarea lor si conexiunile cu exteriorul. UC este alimentata de la un generator cu cuart cu frecventa īntre 1 si 8 MHz (īn functie de tipul microprocesorului utilizat).
Pentru memorarea programului toate CLP-urile moderne utilizeaza memorii RAM sau EPROM. Primele se folosesc pentru dezvoltarile initiale ale programului care, dupa testarea completa, este īnscris īn EPROM. Celelalte memorii sunt utilizate pentru stocarea unor variabile intermediare pentru realizarea imaginilor variabilelor de intrare/iesire si pentru memorarea unor functii interne: numarare, temporizare, marcare etc.
Unitatile intrare-iesire formeaza interfata īntre structura interna a CLP si procesul condus sau acestea vor asigura, pe de o parte izolarea CLP-ului de exterior si compatibilitatea electrica cu exteriorul a semnalelor ce intra sau sunt generate.
Operatiile interne si procesarea datelor īn CLP sunt aceleasi cu ale oricarui microprocesor sau al automatelor programabile.
La faza fetch instructiunea este citita din memorie si plasata īntr-un registru de instructiuni pentru decodificarea ei īn operatii interne (microinstructiuni) cerute de fiecare instructiune particulara. Urmeaza faza de executie a instructiunii care implica, de obicei, o prelucrare logica asupra unei variabile interne sau externe si stocarea rezultatului īntr-o locatie corespunzatoare. Este evident ca un loc important īn aceste operatii īl joaca achizitionarea variabilelor externe.
Īn general exista doua modalitati de captare a variabilelor de intrare. Prima procedura implica transferul datelor de la canalul de intrare specificat īn instructiune, prelucrarea lor si īnscrierea rezultatului īn canalul de iesire dorit, (figura 11.2a.). Īn al doilea caz, utilizat pentru sistemele cu un numar mare de intrari/iesiri, īntr-o prima faza se achizitioneaza īntr-un RAM toate variabilele de intrare cuplate, se executa apoi īntreg programul memorāndu-se toate rezultatele īn alta sectiune RAM si īn final noile valori ale variabilelor de iesire se trimit pentru actualizare, īn toate canalele de iesire cuplate la CLP (figura 11.2.b.).[121]
Fetch.decodificare executie instructiune |
Achizitionarea variabilei de intrare |
Fetch.decodificare executie instructiune |
Achizitionarea variabilei de intrare |
|
<==========> |
<==========> |
<==========> |
<==========> |
|
a)
Copiaza toate intrarile īn RAM |
Fetch.decodificare executie pentru īntregul program |
Transfer toate iesirile din RAM īn canalele corespunzatoare |
|
<==========> |
pentru 1 k programe <==================> |
<==================> |
|
b)
Figura 11.2.
11.2. Instructiuni si programarea grafica a CLP
Instructiunile utilizate īn programarea CLP se īnscriu īn gama uzuala a instructiunilor logice avānd īn plus caracteristici specifice rezultate din reprezentarea grafica proprie schemelor ladder.[
Diagramele ladder au fost utilizate initial pentru reprezentarea circuitelor electrice. Ulterior, introducerea controlerelor programabile si dorinta de a asigura utilizatorului aceleasi facilitati īn urmarirea functionarii sau īn testarea circuitelor au impus adaptarea simbolurilor circuitelor electrice īn logica programabila.
O diagrama ladder, īn schemele electrice, este formata din doua bare verticale ce asigura potentialul electric necesar si o retea de contacte si bobine (figura 11.3.a).
Īn figura 11.3.b este prezentata o reprezentare cu o logica similara cu cea oferita de schema electrica dar utilizānd simboluri specifice din CLP. De# 616b12g 1;i simbolurile folosite de diverse firme nu au o standardizare riguroasa acestea īncearca sa pastreze caracterul oferit de simbolurile si conexiunile electrice din care deriva.
Figura 11.3
Īn tabelul 11.1 sunt prezentate cāteva din simbolurile si instructiunile asociate, utilizate īn CLP produse de firmele Texas Instruments si Mitsubishi.
Īn anexa 3 sīnt prezentate detaliat instructiunile firmei si modul de utilizare.
|
Mitsubishi |
Functie |
Simbolizare grafica |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Mnemonic |
Mnemonic |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
STR |
LD |
Declara īnceput de linie. Īncarca variabila |
AND |
AND |
Conexiune serie |
OR |
OR |
Conexiune paralel |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
OUT |
OUT |
Iesiri |
Negatie |
Functii speciale |
Tabelul 11.1 Programarea CLP se poate realiza atāt pe baza instructiunilor logice cāt si prin programare grafica utilizānd simbolurile corespunzatoare. Īn acest caz se permite utilizatorului sa foloseasca simbolurile familiare din structura circuitelor electrice. Modulul de programare translateaza sau compileaza aceste simboluri grafice īn instructiuni logice memorate īn memoria RAM. Organigrame de stari si Grafcet Īn capitolele anterioare, implementarea sistemelor de conducere secventiala se baza pe tehnicile oferite de organigramele (grafurile) de stari. 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 provenienta franceza, s-au introdus si dezvoltat noi sisteme de reprezentare grafica a evolutiei secventiale a proceselor, cunoscute sub denumirea de Grafcet. Desi un Grafcet reda īn esenta aceleasi elemente ca si o organigrama de stari, anumite particularitati de reprezentare ofera facilitati atāt proiectantului cāt si utilizatorului, ceea ce a dus la largirea ariei de utilizare si penetrarea metodei īntr-un mare numar de aplicatii. Un Grafcet este un graf orientat definit printr-un cvadruplet unde: - este multimea secventelor (īn particular a starilor); - este multimea conditiilor ce determina tranzitiile dintr-o secventa īn alta; este multimea iesirilor generate īn timpul evolutiei; reprezinta o multime de valori binare ce desemneaza starea de activare a fiecarei secvente. Pentru se considera ca secventa asociata este neactiva iar pentru secventa devine activa. Īn mod normal o singura secventa este activa dar pot exista situatii īn care procese concurente pot determina activarea simultana a mai multor secvente. Simbolizarea Grafcet-ului nu este unica. Īn literatura se pot īntālni diverse moduri de reprezentare. Īn figura 11.4 este prezentata o metoda utilizata frecvent īn aplicatii de conducere a proceselor industriale. O secventa este reprezentata printr-un dreptunghi (sau un cerc) si definita printr-un identificator de secventa. Acesteia i se asociaza o variabila, de obicei o variabila interna, ce reprezinta suportul fizic al secventei. Asociat identificatorului de secventa si conectat direct la acesta este blocul iesirilor generate īn secventa respectiva. Activarea secventei (variabilei) īnseamna activarea tuturor iesirilor conectate. Īn aceasta reprezentare se mai poate remarca prezenta a doua conditii de tranzitie, prima desemnānd conditiile pentru atingerea secventei iar a doua reprezentānd conditiile pentru evolutia īn secventa urmatoare. Aceste conditii reprezinta fie simple variabile externe, fie functii logice complexe obtinute prin operatori logici specializati. Conexiunile īntre blocurile unui Grafcet se obtin prin linii orizontale si verticale. Liniile verticale desemneaza evolutii iar cele orizontale indica posibilitati de ramificare conditionata sau nu. Īn figura 11.5 sunt prescurtate doua diagrame, prima ca o ramificare de tip SAU, a doua cu o ramificare sI.
Figura 11.4 Īn figura 11.5.a, linia orizontala A desemneaza o evolutie fie īn secventa , fie īn prin deciziile sau . Īn figura 11.4.b, conditia desemneaza evolutia din atāt īn secventa cāt si īn. . Liniile orizontale determina convergenta evolutiilor care se realizeaza tot pe o logica SAU (conditiile sau , figura 11.5.a) sau pe o logica sI (conditia , figura 11.5.b).
Figura 11.5 a Este evident ca, īn functie de complexitatea procesului condus, arborescenta Grafcet-ului creste, īn aceeasi structura putānd fi īntīlnite atāt ramificatii de tip sI cāt si SAU precum si configuratii ierarhizate corespunzānd unor anumite grade de subordonare. Īn figura 11.6 este prezentat un Grafcet cu o astfel de structura, liniile , definind gradul 0 de subordonare iar liniile , , gradul 1.
Figura 11.5 b Un Grafcet poate fi īntotdeauna echivalat cu o organigrama (graf) de stari, complexitatea translatarii fiind data de gradul de dificultate prin care o secventa se descompune īntr-una sau mai multe stari. Īn cele mai dese cazuri o secventa corespunde unei stari si atunci asimilarea este simpla (figura 11.7). Īn cazurile mai complexe, fiecare secventa se īnlocuieste cu un numar de stari astfel īncāt sa preia toata informatia continuta īn aceasta. Conditiile de tranzitie sīnt bineānteles pastrate. Īn finalul acestei prezentari s-ar putea īncerca aflarea raspunsului la īntrebarea "ce este de preferat, utilizarea organigramei de stari sau a Grafcet-ului?". Este evident ca nu se poate formula un raspuns transant, ambele solutii reprezentānd metode adecvate de lucru. Totusi, īn cazul unor procese industriale complexe, a caror evolutie implica un numar mare de stari, se poate recomanda utilizarea Grafcet-ului, numarul de secvente fiind īn general mai mic decāt cel al starilor si deci suportul fizic solicitat va fi mai redus.
Figura 11.6 Acest lucru va fi bine ilustrat īn solutiile propuse pentru comanda unor roboti secventiali destinati unor functii de manipulare la care evident exista o diferenta mare īntre numarul de stari si cel al secventelor implicate īn generarea traiectoriei. 11.4. Implementarea unui Grafcet Tehnica de implementare a unui Grafcet se bazeaza pe transpunerea īn limbajul CLP a unei functii logice ce defineste: - set pe conditiile de tranzitie (figura 11.4); - memorarea variabilei asociate secventei; - reset pe conditiile de tranzitie . Daca se noteaza prin variabila interna asociata secventei, conditiile de mai sus se pot scrie sub forma: (11.1) relatie care este identica practic cu ecuatia unui bistabil . Īn cele mai multe cazuri, conditia de set include nu numai variabilele ci si variabila ce defineste secventa anterioara , deci (11.2)
Figura 11.7 Primul termen va defini conditia de amorsare a secventei , iar al doilea asigura stabilitatea secventei si īn acelasi timp anularea ei prin conditiile . Este posibil ca forma (11.2) sa sufere modificari sau completari īn functie de anumite elemente specifice. De exemplu, daca poate fi si initializata printr-o conditie suplimentara , relatia (11.1) devine: (11.3) Aparent, relatia (11.3) ofera solutia implementarii. Īn realitate, aplicarea acestei formule īntr-o succesiune de secvente ale unui grafcet este improprie datorita hazardului de comutare produs de aceeasi variabila de conditie la setarea si resetarea a doua secvente consecutive. Pentru concretizarea ideii, sa consideram secventele si din figura 11.9.a. Conform relatiei (11.3) rezulta:
Este evident ca variabila reseteaza pe si defineste totodata conditia pentru activarea lui dar conditionat de (termenul). Pe de alta parte aceste relatii sunt reprezentate pe linii diferite īn diagrama, explorate secvential. Īn consecinta, se produce īntāi resetarea lui prin si nu mai poate fi realizata deci activarea, pe linia urmatoare, a lui ( termenul ). Acest neajuns se poate remedia punānd conditia ca resetarea unei secvente sa fie realizata nu de variabila de tranzitie ci de starea succesoare. Astfel, relatiile de mai sus devin :
Se poate verifica usor ca acum deficientele semnalate au fost complet eliminate. Relatia (11.3) se poate rescrie sub forma : (11.4) Generarea variabilelor de iesire se obtine fara dificultate utilizānd facilitatile de alocare a iesirilor oferite de un CLP. Īn figura 11.8 este reprezentata diagrama ecuatiei 11.4 si instructiunile corespunzatoare. LOD Tinit LOD TIN AND Si-1 LOD Si ANDNOT Si+1 ORLOD ORLOD OUT Si LOD Si OUT Iesire 1 OUT Iesire 2 Figura 11.8 Reprezentarea de mai sus defineste metoda generala de implementare a unei secvente. Īn functie de caracteristicile problemei de conducere abordata, aceasta reprezentare poate suferi modificari cantitative care sa permita utilizarea unor elemente si proceduri speciale de implementare oferite de instructiunile unui CLP. Un exemplu īn acest sens īl constituie utilizarea instructiunilor STL asociat cu variabilele 600-647. Acestea din urma au proprietatea unei celule latch, deci devin logic 1 (set) prin conditiile ce sigura activarea variabilei, memoreaza valoarea logica si se reseteaza o data cu activarea celulei urmatoare. Prin aceste proprietati aceste variabile vor constitui suporturi ideale pentru implementarea oricaror secvente. De asemenea, utilizarea instructiunii STL (instructiune de tip master) permite formarea unor bare de conexiune suplimentara pentru comanda unui numar mare de variabile. Pentru exemplificare sa consideram grafcet-ul din figura 11.9.a. Diagrama ladder asociata este prezentata īn figura 11.9.b iar instructiunile corespunzatoare īn figura 11.9.c. Variabila de initializare asigura conditia de set a variabilei latch 600. Pe a doua linie a diagramei, variabila 600 si determina conditia de set a lui 601. Activarea acesteia determina resetarea lui 600, generarea iesirii 200 si formarea conditiilor de baza pentru activarea variabilei 602 s.a.m.d..
Figura 11.9 11.5. Conducerea unui conveior īntr-o instalatie robotizata de vopsire Ca o prima aplicatie se va aborda problema implementarii sistemului de conducere a unui conveior utilizat pentru transportul unor subansamble (placi) īntr-o instalatie robotizata de vopsire. Īntregul sistem este prezentat īn figura 11.10. Tehnologic, conveiorul este format dintr-un lant transportor cu o latura inferioara activa si una superioara pasiva. Latura activa contine 10 puncte de prindere īn care sunt montate panourile. Acestea sunt prinse īn punctul de īncarcare si avanseaza secvential atāt prin punctele de vopsire cāt si prin cuptorul de uscare si coacere. Linia este prevazuta cu doi roboti ce asigura vopsirea pe fiecare fata a panourilor cānd acestea ajung īn pozitiile , respectiv . Pozitiile corespund deplasarii īn zona cuptorului iar reprezinta punctul de descarcare.
Figura 11.10 Activarea functiilor de vopsire a celor doi roboti se produce ori de cāte ori un panou ajunge īn pozitiile respective. De asemenea, cuptorul este īncalzit cu becuri īn infrarosu care sunt aprinse numai daca cel putin un panou se deplaseaza īn zona de uscare. Trebuie subliniat faptul ca linia nu este normal īncarcata la capacitatea maxima deci se impune īntotdeauna cunoasterea exacta a starii de īncarcare a fiecarei pozitii . Actionarea conveiorului este realizata secvential, cu un tact de lucru suficient de mare pentru a permite realizarea functiilor de vopsire īn si si tratarea termica īn cuptor. Un traductor de deplasare incremental montat pe una din rotile conveiorului furnizeaza semnalul necesar pentru controlul pozitiei. Grafcet-ul asociat operatiilor executate pe linie este prezentat īn figura 11.11. Fiecarui punct de lucru , i se asociaza o secventa , din timpul tehnologic al liniei. Prezenta uni panou īntr-un punct , este desemnata prin marcarea secventei. Aceasta marcare se realizeaza numai īn prima pozitie (initializare) o data cu īncarcarea unui panou si se deplaseaza īn celelalte secvente succesiv, sincron cu deplasarea panoului, prin tactul de lucru al liniei.
Figura 11.11 Aceste functii de memorare si de deplasare a informatiei īnmagazinate impun alegerea unui registru de deplasare ca suport al secventelor de lucru, īn consecinta s-a ales registrul definit prin variabilele ca registru suport, fiecare celula adusa īn starea logica 1 reprezentānd marcarea secventei corespunzatoare .
Tabelul 11.2 Alocarea variabilelor īn CLP este prezentata īn tabelul 11.2 iar diagrama si instructiunile de implementare īn
Figura 11.12 Impulsul traductorului de deplasare TD este derivat prin instructiunea SOT ceea ce permite formarea unui singur semnal cu o durata egala cu cea a timpului de baleiaj al programului. Se evita īn acest fel deplasarea falsa a informapei īn registru īn timpul explorarilor succesive ale programului. Impulsul este memorat īn variabila interna 400 si este utilizat ca impuls de deplasare a lui SFR 0. Initializarea registrului se realizeaza cu variabila 3 furnizata de punctul de īncarcare al liniei. Celulele si sunt citite succesiv si genereaza activarea celor doi roboti iar celulele determina activarea becurilor īn infrarosu ale cuptorului. Atāt schema ladder prezentata cāt si programul asociat demonstreaza clar, fata de complexitatea problemei abordate, eleganta si simplitatea solutiei. 11.6. Conducerea unui robot īn instalatii de acoperiri galvanice Īn capitolul 7 au fost analizate sisteme de conducere īn logica cablata pentru o instalatie robotizata de acoperiri galvanice. Se va relua acum aceasta aplicatie propunānd o solutie bazata pe CLP.
Tabelul 11.3 Pentru reactualizarea datelor se va reface traiectoria robotului specificānd succesiunea secventelor functionale ce o formeaza (figura 11.13). Se remarca posibilitatea descompunerii traiectoriei generale īn segmente cu caracteristici comune. De exemplu, secventa consta īn evolutia pe jos spre dreapta urmata de un ciclu: ridicare - dreapta (un pas) - coborāre: secventa este formata dintr-o deplasare continua pe jos urmata de acelasi ciclu ridicare - dreapta - coborāre s.a.m.d.. Ultimele secvente sunt similare dar ciclul utilizat este inversat: ridicare - stānga - coborāre.
Figura 11.13 Īn figura 11.14 se poate urmari grafcet-ul traectoriei. Se poate remarca divizarea grafului īn doua parti, una pentru secventele de baza si a doua pentru secventele ce definesc ciclul de transport. Apelarea acestuia din urma poate fi realizata cu o tehnica de tip subrutina, desi controlerul nu are o instructiune specifica de apel. Apelul acestui ciclu va fi realizat prin instructiunea FUN300 ce va defini un salt la linia de adresa 200 unde este plasata subrutina. Pentru implementarea acestui grafcet s-au utilizat variabilele interne 600-623 care pot functiona īn regim de latch, functia set fiind definita de conditiile specifice de comutare impuse de evolutia procesului iar resetarea fiind realizata automat odata cu activarea variabilei urmatoare. Diagrama ladder a īntregului sistem de conducere si alocarea corespunzatoare a variabilelor se pot urmari īn figura 11.15 si tabelul 11.3. Prin variabila de initializare 1 se activeaza variabila 600 ce defineste secventa . Prin instructiunea STL se creeaza o linie master ce permite pe de o parte comanda iesirii 200 (mers dreapta) si īn acelasi timp, cīnd variabila 5 este activa (pozitia ), activarea variabilei 620 a ciclului si apelarea acesteia prin instructiunea FUN 300 la adresa 200. Saltul la aceasta linie determina realizarea ciclului ridicare - mers dreapta - coborāre prin variabilele 620,621,622,623, dupa o procedura similara. Trebuie mentionata formarea variabilei 401 ca semnal derivativ al variabilei ce realizeaza functia SAU pe variabilele de pozitie . Īn acest fel se limiteaza deplasarea la dreapta la un singur pas, īn cadrul fiecarui ciclu. Figura 11.14 Īn finalul subrutinei se utilizeaza instructiunea END ceea ce determina reluarea programului la adresa 0. Īntrucāt variabila 623 era activa, aceasta va determina practic reluarea secventelor īncepānd cu linia variabilei 601. Procedura continua īn acest fel realizānd calea principala a grafcet-ului si apelānd succesiv la subrutina ciclului. Programul detaliat de implementare se obtine transpunānd diagrama īn instructiunile CLP corespunzatoare:
Figura 11.15
11.7. Conducerea unui manipulator ce deserveste un cuptor de tratare termica 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 remarca, īn acest caz, identitatea notiunii de stare cu cea de secventa. Īn consecinta grafcetul reda destul de exact forma organigramei de stari, diferente putānd fi notate īn cazul deciziilor ierarhizate ale organigramei care īn grafcet devin linii orizontale de ramificare. Implementarea secventelor se obtine pe baza relatiei (11.4). Īn consecinta expresiile logice ale secventelor vor fi:
Aceste relatii vor constitui nucleul diagramei ladder, la acestea adaugāndu-se logica de numarare si functiile de iesire (figura 11.16).
Tabelul 11.4 Programul de conducere va fi:
Figura. 11.16. a)
Figura 11.16.b) Se remarca utilizarea unui bloc de numarare CNT 1 programat pentru numararea pīna la valoarea 5. Continutul acesteia este testat prin FUN 201 pentru valori acumulate ce depasesc 1,2,3. Prin iesirile respective 207,208,209 se determina de fapt conditiile NUM1,NUM2,NUM3. Conditia NUMO se obtine prin simpla complementare a conditiei 207. 11.8. Conducerea unui robot īn coordonate cilindice Se va analiza īn continuare posibilitatea implementarii unui sistem de conducere pentru un robot īn coordonate cilindrice ce deserveste o celula de prelucrare. Celula este alimentata cu piese neprelucrate printr-o banda transportoare, piesele fiind dispuse ordonat pe palete, cāte 8 pe fiecare paleta īn grupe de cāte 4 (figura 11.17). Robotul transfera succesiv piesele īn punctul de prelucrare (presa) urmānd o traiectorie impusa.
Figura 11.17 Initial robotul se gaseste īn punctul A. Bratul avanseaza īn punctul , prinde o piesa si se retrage īn A. Bratul se roteste īn B, avanseaza īn punctul C, depune piesa īn presa si se retrage īn A prin segmentul CBA. Operatia se repeta de 8 ori dupa care banda circulara avanseaza aducānd o noua paleta la punctul de īncarcare. Robotul, pe cele doua axe r, dispune de doua tipuri de traductoare de masura, incremental pentru axa r si absolut pentru axa . Prezenta acestor doua tipuri de traductoare ofera posibilitatea utilizarii facilitatilor de calcul numeric pe care le ofera un CLP. Grafcet-ul sistemului de conducere este prezentat īn figura 11.18. īn secventa se initializeaza coordonatele punctului de lucru . Fiecare secventa defineste un segment din traiectorie si este implementata prin variabile interne de tip latch 600-613 folosind instructiuni tip STL. Īn cadrul unei secvente se genereaza iesirea necesara dar totodata se impun prelucrari numerice corespunzatoare cerintelor impuse de fiecare secventa de miscare. Aceste prelucrari nu apar explicit īn grafcet dar ele sīnt prezentate detaliat īn diagrama ladder asociata (figura 11.19).
Se remarca prezenta unei ramificatii de tip SAU generata īn secventa s8. Conditiile de evolutie pe anumite ramuri sunt determinate de numarul de piese manipulat si identificat īn secventa s7. Astfel, dupa 4 piese sau 8 piese manipulate, evolutia se realizeaza pe ramurile doi si trei ce determina initializarea parametrilor si r pe anumite valori. Īn celelalte cazuri, evolutia se realizeaza pe prima ramura.
Figura 11.18. b)
Figura 11.19
Tabelul 11.5 Fiecare secventa din grafcet este transpusa īn diagrama printr-un numar de instructiuni logice si aritmetice. Secventa realizeaza initializarea cordonatelor punctului de prindere al pieselor. Primele instructiuni determina īncarcarea īn registrul DRO (800) a valorii r, (instructiunile FUN147/10 si FUN247/) si transferarea ulterioara a valorilor din DRO īn DR10 (810), prin instructiunile FUN147/20 si FUN147/810. Īn mod similar este īncarcata īn registrul DR11 (811), cota . Ultima instructiune a secventei determina trecerea neconditionata īn secventa urmatoare identificata prin variabila 601. Īn secventa , prima linie determina activarea iesirii 200 (deplasarea ) iar urmatoarele linii permit transferul coordonatei , din 810 īn numaratorul CNT1 aflat la adresa 901. Numaratorul poate fi resetat prin variabila 4 (prezenta panou īn punctul de īncarcare) si este incrementat prin impulsurile traductorului de deplasare al axei r (variabila 1). Cānd numaratorul atinge cota prescrisa () se comuta iesirea 210 ce determina, īn linia urmatoare, trecerea pe variabila 602 (secventa ).Secventa are numai o functie scalara comutānd iesirea 204 (īnchidere griper), ceea ce determina trecerea īn secventa (variabila 603). Īn aceasta secventa se produce revenirea bratului pe segmentul dupa o procedura similara cu cea dezvoltata mai sus. Secventarealizeaza rotatia bratului cu unghiul . Masurarea miscarii este obtinuta printr-un traductor absolut ce furnizeaza codul marimii masurate sub forma unui vector pe 16 biti, fiecare bit fiind captat prin variabile de intrare 10-17,20-27 (instructiunile FUN147/13, FUN147/10). Rezultatul masurarii este stocat īn DR1 (801). Īn linia urmatoare, īn registrul DR0(800) se īncarca coordonata . Valorile astfel stocate īn DRO si DR1 sīnt comparate (instructiunile FUN 147/3 si FUN 147/801), rezultatul comparatiei fiind concretizat īn comutarea variabilelor 710 si 711. Īntr-o maniera similara sunt implementate si celelate secvente. Trebuie remarcata realizarea functiei de contorizare a pieselor prin numarul CNTO (adresa 900), impulsul de numarare fiind obtinut din varibila 3 (griper deschis) la fiecare depunere a piesei īn punctul de prelucrare. Testarea continutului numaratorului este obtinuta prin instructiunile FUN100/4 si FUN100/8 ce identifica numarul 4 si respectiv 8 al pieselor depuse. Variabilele asociate 214, 215 permit implementarea ramificatiei de tip paralel din grafcet. Pe baza diagramei astfel stabilite se obtine programul de conducere. Un fragment din program este prezentat mai jos.
11.9. Implementarea algoritmilor de reglare Sistemele CLP echipate cu canale de intrare de tip analogic pot realiza operatii matematice asupra marimilor de intrare achizitionate si transfera rezultatul direct, prin modulele de iesire, īn sistemele de actionare ale articulatiilor mecanice ale robotilor. Nivelul si complexitatea algoritmului de control depinde de viteza si capacitatea de operare a controlerului. Īn mod uzual un CLP poate realiza algoritmi de reglare de timp proportional utilizabili īn sistemele de actionare hidraulice. Īn sistemele de actionare electrica un astfel de control este nesatisfacator, performantele realizate fiind departe de cerintele impuse. Īn capitolul 4 s-a pus īn evidenta faptul ca majoritatea aplicatiilor de conducere impune un control PID atāt asupra pozitiei cāt si al vitezei (eventual PI). Pentru implementarea unor astfel de algoritmi se utilizeaza doua proceduri. CLP-urile standard contin o subrutina rezidenta īn memorie ce se apeleaza la cerere si se actualizeaza conform parametrilor impusi. Termenii matematici necesari sunt aproximati cu o precizie rezonabila ceea ce impune un timp mare de procesare. Īn ansamblu metoda se poate aprecia ca o metoda nu prea rapida. O solutie mai aceptabila consta īn introducerea unor module inteligente PID ce contin atāt canalele de intrare - iesire necesare cāt si un microprocesor specializat pentru calculul matematic aferent. Acest procesor opereaza īn paralel cu unitatea centrala 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 procesari ale semnalului de intrare, filtrare, netezire, facāndu-1 compatibil cu calculele matematice ulterioare. Utilizarea algoritmilor PID printr-o diagrama ladder implica apelarea unui meniu care specifica: valoarea prescrisa, intrarea masurata, blocul PID apelat, valorile numerice ale coeficientilor PID precum si iesirea utilizata.
Figura 11.20 Aplicarea algoritmului PID cere definirea anterioara a marimilor implicate īn constructia sa. Astfel, valorile numerice ale marimilor de intrare si iesire se memoreaza īn registre de date pe 16 biti D000 - D100, respectiv D200 - D300. De asemenea coeficientii ,,ai unui algoritm PID,
sunt memorati īn trei registre succesive, pe diagrama indicāndu-se adresa primului registru (D300). Īn figura 11.20 este prezentat un exemplu de implementare PID. Īn registrul D142 se īnscrie valoarea numerica prescrisa, registrul D086 memoreaza valoarea numerica a intrarii, identificatorul 012 determina blocul PID apelat, registrele D300,D301,D302 stocheaza coeficientii,, iar īn registrul D200 este memorata valoarea numerica a iesirii. Pentru a fi utilizata pe iesire analogica, marimea numerica este convertita īntr-un bloc D/A. Document InfoAccesari: 2936 Apreciat: Comenteaza documentul:Nu esti inregistratTrebuie sa fii utilizator inregistrat pentru a putea comenta Creaza cont nou A fost util?Daca documentul a fost util si crezi ca meritasa adaugi un link catre el la tine in site in pagina web a site-ului tau.
Copyright © Contact (SCRIGROUP Int. 2025 ) |