Vous êtes sur la page 1sur 115
Andrei Nick Ivanescu Claudia Raluca Tudorie Andrei Rosu AUTOMATE PROGRAMABILE - indrumar de laborator - Editura POLITEHNICA PRESS Bucuresti, 2009 Copyright ©, 2009, Editura Politehnica Press. Toate drepturile asupra acestei editii sunt rezervate editurii. Adresa: Calea Grivitei, nr. 132 78122, Sector 1, Bucuresti Telefon : 021.402.94.76 Referenti stiinfifici: Prof.univ.dr.ing. Theodor Borangiu Prof-uniy.dr.ing. Dan Popescu Descrierea CIP a Bibliotecii Nationale a Romaniei TVANESCU,ANDREI NICK ‘Automate programabile/Andrei Nick Ivanescu, Raluca Tudorie, Andrei Rosu. Bucuresti : Politehnica Press, 2009 Bibliogr. ISBN 978-606-515-029-4 1. Tudorie, Raluca TL. Rogu, Andrei 004,896 681,5 Coperta: Adriana BUTMALAI Bun de tipar: 09.03.2009, Coli tipo: 7,5 ISBN: 978-606-515-029-4 PREFATA Lucrarea “Automate Programabile — indrumar de laborator” reprezinta un important suport practic de concepere si proiectare a solutiilor de conducere a proceselor industriale automate programabile bazate pe medii de programare evoluate de tipul ISaGRAF sau Ladder Diagram. Lucrarea este dedicat in primul rand studentilor facultatii de Automatica si Calculatoare din Universitatea Politehnica Bucuresti, care audiaz& cursul si frecventeazi_laboratorul de Automate si Microprogramare. De asemenea, este utila studentilor din facultatile cu profil de automatic apartinand universitatilor tehnice din tara. Cartea este structurata in doua parti, prima parte prezentind mediul de programare logica ISaGRAF, utilizat de majoritatea producatorilor de automate programabile, in special din perspectiva modului de lucru cu interfafa utilizator, util in rezolvarea lucrarilor de laborator la materia “Automate si microprogramare”: De asemenea, sunt prezentate 14 aplicatii corespunzatoare celor 14 laboratoare efectuate de studentii facultatii de Automatica si Calculatoare din Universitatea Politehnica Bucuresti. Aplicatiile au fost alese astfel incAt gradul de dificultate al lor sa fie diferit, de la cele mai simple, rezolvabile printr-o unica diagrama logica, la procese industriale complexe, in care dezvoltarea unui proiect de control amplu necesita exercitiu si o foarte bund gandire logics. La unele aplicatii au fost descrise doua variante de programare, pe langa solutia in ISaGRAF fiind prezentata si rezolvarea in limbajul Ladder Diagram, in scopul intelegerii algoritmului de conversie a unei diagrame logice secventiale intr-un program ciclic de tip diagrama in trepte. Observatiile si propunerile existente la sfarsitul fiecarei aplicatii ajuta viitorul specialist in automaticl si inteleaga pe deplin solutia prezentata, avand un punct de pornire solid pentru a concepe modificari ale programelor conform noilor situatii ce pot aparea in cadrul unui proces. Metodele gsi solutiile prezentate la toate aplicafiile sunt absolut originale si au fost realizate de catre autori atat in cadrul laboratorului de “Automate si microprogramare” ct si datorité numeroaselor contracte de cercetare la care autorii au participat de-a lungul anilor, in cadrul centrului de cercetare de excelenta CIMR din cadrul Facultatii de Automatica si Calculatoare din Universitatea POLITEHNICA Bucuresti. Autorii Cuprins: 1. Mediul de programare ISaGRAF Aplicatii 1, Problema 1 —Controlul unei macarale 2. Problema 2 —Comanda migcarii oscilatorii a unui mobil 3. Problema 3 — Detectia si expulzarea automata a sticlelor fara dop 4. Problema 4 — Statie automata de spalat autovehicule 5. Problema 5 — Elevator clasificator de pachete 6. Problema 6 — Dozare si malaxare automata 7, Problema 7 — Umplerea si astuparea automata a sticlelor 8. Problema 8 — Controlul unui lift . Problema 9 — Detectarea bagajelor care contin metale 10. Problema 10 — Sortarea a patru tipuri de piese 11. Problema 11 — Umplerea automata a unor containere 12. Problema 12 — Controlul unor usi automate 13, Problema 13 — Sortarea a doua tipuri de piese 14, Problema 14 — Procesul de coacere al biscuitilor Bibliografie 25 a 42 49 aE 68 74 719 84 93 100 104 1 17 1. MEDIUL DE PROGRAMARE ISaGRAF Programul ISaGRAF a fost dezvoltat de firma CJ International gi reprezinti unul dintre cele mai structurate si prietenoase medii de programare pentru automatele programabile. Este compatibil cu standardul IEC 1131-3. Un proiect in ISaGRAF este impartit in mai multe unitati numite programe. Un program este o unitate logic care descrie operatiile intre variabilele si constantele unui proces. Acestea sunt legate impreund intr-o structura arborescenta, avand icoane diferite. Programele pot fi editate intr- unul din limbajele grafice sau literale: Flow Chart (FC) «GHA Ladder Diagram (LD) . Structured Text (ST) . Instruction List (IL) . Function Block Diagram (FBD) © EF % cequential Function Chart (SFC) Un program poate fi ciclic sau secvential. Un program ciclic se executi in intregime la fiecare ciclu, iar executia unui program secvential urmeaza regulile dinamice ale limbajului SFC sau FC. Un program nu poate confine instructiuni din mai multe limbaje, cu exceptia limbajelor LD gi EBD, care pot fi combinate in cadrul aceluiasi program. Programele sunt considerate entitati de nivel unu. Se pot scrie si subprograme, care sunt entitati de nivel doi. Entitafile de nivelul unu sunt lansate de sistemul de operare, in timp ce subprogramele, numite si programe fiu, sunt activate de programe, care se mai numese si programe parinte. Programele apar intr-una din urmiatoarele trei sectiuni: = BEGIN: se executd Ja inceputul ciclului; " SEQUENTIAL: se executé dupa cele din sectiunea BEGIN si urmeaza legile dinamice ale limbajului SFC sau FC; = END: se executa la sfarsitul ciclului. AUTOMATE PROGRAMABILE ~ INDRUMAR DE LABORATOR, 10 Programele din sectiunea BEGIN se recomanda a fi utilizate pentru realizarea unor operafii preliminare asupra variabilelor de intrare (ex.: filtrarea, citirea unei valori de la un traductor). Programele din sectiunea SEQUENTIAL descriu operatii secventiale unde variabila timp sincronizeazi operatiile primare. Trebuie si existe cel putin un program secvential, restul doar daca este nevoic. Programele din sectiunea END se recomanda a fi utilizate pentru realizarea unor operatii de protectie inainte de a trimite o variabil& catre un dispozitiv de iesire. Programele sectiunilor BEGIN si END nu pot fi descrise in SFC sau FC. Fiecare program din sectiunea SEQUENTIAL poate controla alte programe SFC, programele fiu. Un program fiu este un program paralel, care poate fi pornit, oprit, suspendat sau repornit de catre parintele sau. Important este ca ambele programe, parinte si fiu, s4 fie scrise in SFC sau FC. Atunci cand un program parinte porneste un program fiu transmite un jeton fiecdrui pas initial al programului fiu. Aceasti comand este descrisi de declaratia GSTART. fn cazul opririi unui program fiu de ctre pirintele sau, sunt eliminate toate jetoanele existente. Aceasti comanda este descrisi de declaratia GKILL. ‘Atunci cand un program parinte ingheati un program fiu, sterge toate jetoanele din el, dar memoreaza pozifia acestora pentru cazul in care programul fiu va fi repornit. Programul suspendat poate fi repornit folosind declaratia GRST. Si in cazul programelor FC ale sectiunii secventiale pot exista subprograme FC fiu, dar un parinte FC este blocat in timpul executiei unui subprogram FC. Astfel nu sunt posibile operatii simultane in programul FC parinte si programul fiu FC. Obiectele din ISaGRAF sunt utilizate in orice program scris in FC, LD, ST, IL, FBD sau SFC. Aceste obiecte sunt: tipuri de baza, expresii constante, variabile gi comentarii. Principalele tipuri de variabile disponibile pentru programe sunt: BOOLEAN: —_valori binare de tipul true/false; ANALOG: valori intregi (integer) sau reale (real); TIMER: valori de tip timer; MESSAGE: siruri de caractere. iW Mediul de programare ISaGRAF Constantele de tip ‘intreg sunt reprezentate pe 32 de biti, avand valorile cuprinse intre -2” si 2°. Pot fi exprimate in baza zecimal, in baza hexazecimal (valoarea trebuie precedat de 16), in baza octal (valoarea trebuie precedata de 8#) si in binar (valoarea trebuie precedata de 2#). Constantele analogice reale pot fi scrise fie printr-o reprezentare zecimala, fie printr-o reprezentare stiinfifica. Punctul zecimal este folosit pentru a diferenfia o constanti reali de una de tip intreg. Reprezentarea stiinificd foloseste literele ‘E’ si *F’ pentru a separa mantisa de exponent. Partea exponentiala a unei expresii stiintifice reale trebuie s& fie o valoare fntreaga cu semn intre -37 $i +37. Constantele de tip timer sunt valori cuprinse intre 0 si 23h59m59s999ms. Cea mai mici unitate permis’ este milisecunda. Valoarea trebuie precedata de caracterele TH sau time#. O constanta de tip mesaj reprezinti un sir de caractere cuprins intre caracterele apostrof. Lungimea unei variabile nu poate depasi 255 caractere. Caracterul apostrof nu poate fi utilizat intr-un string. Pentru utilizarea lui cat si pentru caracterele netiparibile se utilizeazA secvente care incep cu caracterul $. Variabilele din ISaGRAF pot fi de doua categorii: locale sau globale, Numele variabilelor trebuie sa inceap cu o litera si nu trebuie sa depaseasci 16 caractere. Variabilele locale pot fi folosite doar de un program. Variabilele globale pot fi folosite de orice program al aplicatiei curente. Variabilele pot avea unul dintre urmatoarele atribute: INTERNAL: variabile actualizate de program; INPUT: variabilé conectata la un dispozitiv de intrare; ourpur: variabilé conectati la un dispozitiv de iesire. Comentariile pot fi introduse liber in limbajele literal acceptate si sunt precedate de caracterele (* si succedate de caracterele *). 1.1. Crearea unui proiect ISaGRAF Pentru a crea un proiect se lanseazi programul ISaGRAF prin executarea unui dublu click pe iconifa lui. Se va deschide fereastra Project Management (vezi fig.1), imparfité in doud sub-ferestre. in sub-fereastra de Sus, sunt listate proiectele deja existente, iar in sub-fereastra de jos sunt scrise detalii despre proiectul selectat. AUTOMATE PROGRAMABILE ~ [NDRUMAR DE LABORATOR en Shu UMAK? sacadosals seus’ Fle Edit Project Tools Options Help BB DAO WS to + & sees wm ribars demonstrates graphic bra graphs em rfbool demonstrates SFC boalean actions : em richart Flow Chart: Sample application | em rfojfb demonstrates CM end BLINK function blocks wm rfdemo complete SFC demo a gh demonstrates use of graphic pictur o x\ Reference —: st_auto a Author : Raluca Tudorie Date of creation : 4/22/2008 Version number : 1 - First ISaGRAF 3.30 Description __: Statie de spalare auto Fig. . Fereastra ISaGRAF ~ Project Management 12 Actiunile posibile in aceasti etap sunt: deschiderea/rularea unui proiect existent, modificarea lui sau crearea unui nou proiect. Pentru crearea unui nou proiect se selecteazi File + New; se va deschide fereastra Create —» New Project (vezi fig.2). Se introduce numele dorit al proiectului. Numele nu va depasi 8 caractere si incepe cu o litera. Editarea descrierii proiectului se face prin alegerea optiunii Project > Project descriptor, dar este indicat ca aceasti operafie si se fact la sfarsit pentru a cuprinde informatii cat mai complete despre proiect. Fig.2. Fereasta Create new project Pentru editarea programelor din cadrul unui proiect, se va da dublu click in fereastra Project Management pe proiectul dorit. Apare fereastra Programs (vezi fig.3). B Mediul de programare ISaGRAF Geta en ad Fle Make Project Tools Debug Options Help 2 B80 Deo exe mH ABR Seavert: © clatire © uscare [Sequeriiat bart_sem (Sequerie/ Function Chart) Fig.3. Fereastra Programs Pentru introducerea unui nou program in proiectul existent, se alege din fereastra Programs optiunea File > New. Se deschide fereastra New Program (vezi fig.4). Trebuie ales numele programului, limbajul in care se editeazi si locul siu in ierarhia programelor (Begin, Sequential, End, Function, Function block sau Child of). | postul de prespalare ‘SFC: Sequential Function Chart = ‘Sequential: Main program > Cancel | oK Fig.4. Fereastra New Program Dupa completarea celor patru cimpuri, se apasi OK, se inchide fereastra iar programul apare in ierarhia de programe. Editarea programului se face prin dublu click pe numele acestuia. inainte de editare, este indicat sa se scrie variabilele programului. Editarea variabilelor se face pornind de la fereastra Programs, alegand optiunea File — Dictionary. Se editeazi variabilele pentru fiecare categorie. in fig.5. sunt prezentate variabilele booleene. Trebuie ales numele variabilei gi atributul. AUTOMATE PROGRAMABILE ~ [NDRUMAR DE LABORATOR 14 SW Fle Edt Tools Options Help @ 0©@ ; atribuie valoarea atasatd etapei variabilei booleene / ; atribuie valoarea negata atasata etapei variabilei booleene = actiuni memorate: actiuni de setare sau resetare. Sintaxa: (S$) seteazi variabila booleana la activarea etapei /(R) reseteazA variabila booleana la activarea etapei « actiuni de tip puls: se executa o singura data la activarea etapei, in primul ciclu automat. Sintaxa: ACTION (P) = (* Instructiuni ST *) END_ACTION ; 7 Mediul de programare ISaGRAF " actiuni de tip non-puls: se executd cat timp etapa este activa; daca este o variabilé booleand va avea forma unor impulsuri scurte, care se repeta la fiecare ciclu. Sintaxa: ACTION (N) : ee ee END_ACTION ; = actiuni SFC: pornesc sau opresc un program fiu, in functie de starea etapei. ACTION (P): GSTART (); END_ACTION ; ACTION (P): GKILL (); END_ACTION ; 1.3. Editarea in Function Block Diagram FBD este un editor grafic. El combina capacitatile grafice cu cele de editare de text. Se pot construi functii complexe, prin utilizarea blocurilor existente in biblioteca ISaGRAF si legarea acestora intre ele. FBD descrie 0 functie intre variabilele de intrare si variabilele de iesire, functia fiind descrisA de setul de blocuri elementare, care intra in componenta diagramei. Intrarile pot fi constante, variabile (interne, de intrare sau de iesire) sau iesirile altor blocuti. Iesirile pot fi variabile (interne sau de iesire), intrarile altor blocuri sau subprograme. Operatorii sunt reprezentati prin blocuri functionale dreptunghice. Intrarile functiei sunt conectate in partea stanga a blocului in timp ce iesirile sunt conectate in dreapta. Variabilele (intrarile si iesirile) sunt conectate la blocurile functionale cu legaturi logice. Reprezentarea grafic a intrarilor si iesirilor sunt dreptunghiuri cu colturile rotunjite (vezi fig.10). Etichetele si salturile sunt folosite pentru a controla executia programului. Pentru introducerea etichetelor si a simbolului de salt exist pe bara de instrumente obiecte speciale. AUTOMATE PROGRAMABILE ~ INDRUMAR DE LABORATOR 18 mane ans Fle Edt Tools Options Help B@ “OS He KOS | QRE@SSYS FF + HHH FT OVOO 4 | Fig.10. Editorul FBD 1.4. Editarea in Ladder Diagram Editorul Ladder Diagram este un editor grafic. El permite programatorului si reprezinte grafic ecuafii booleene prin combinarea contactelor (variabile de intrare) cu bobine (variabile de iesire). Modul de realizare a unui program este aseménator cu cel din FBD si nu sunt dificultafi in realizarea lui. F-RFUATRSLDRESE - Quick LO Prgra i Te Es Toor Opare he DO LOS we KOd Be Qa @ ene TO: POOKY Ho wo (Ceaseny auger ees) Fig.11. Editorul LD 19 Mediul de programare ISaGRAF 1.5, Editarea in Structured Text si Instruction List Aceste editoare sunt in mod text si sunt usor de utilizat daci este cunoscut limbajul. in cadrul fiecarui editor exist posibilitatea efectuarii unei verificari a programelor. Pentru aceasta este necesar s se aleagd optiunea Files ify. In cazul in care sunt erori acest lucru este semnalat intr-o fereastra speciala in care se indica codul erorii, coordonatele obiectului care a produs eroarea $i un text explicativ. Fereastra trebuie inchisa pentru a putea face 0 noua verificare dupa corectarea erorii. 1.6. Utilizarea editorului de conexiuni Dupa elaborarea programului pentru automat este necesar si se stabileasci o legatura logic intre variabilele de /O ale programului si canalele de pe automatul programabil. Pentru a realiza acest lucru utilizatorul trebuie s& indice gi si seteze modulele de pe automat si apoi si lege variabilele de canalele acestor module. ea cme dee eo Fie Edit Tools Options Help @ PRO To FRE __n# | (EB 9) s_ump ne (2) 9) d_ast [3] 9 Lav (2) 9 Lret (3) 9 Lios 3] 9 I_sus ® vari 7 | var2 Fig. 12, Fereastra 1/0 connection AUTOMATE PROGRAMABILE ~ iNDRUMAR DE LABORATOR 20 ‘Alegerea, plasarea modulelor si conectarea variabilelor la canalele acestora se face din fereasta Programs, prin alegerea optiunii Project — 1/0 connection. La alegerea acestei optiuni apare fereastra din fig.12, in care in partea stanga este rack-ul automatului programabil cu sloturile pentru 255 module. Un slot poate fi utilizat pentru introducerea unui modul, Numarul slotului este pozifia in care se afla faféi de CPU, Numerotoarea incepe de la zero. Adresa logic a unui modul incepe de la unu si trebuie setat’ intr-o fereastra separat. Prin realizarea unui dublu click asupra unui slot selectat al rack-ului se deschide fereastra Select board/equipment (fig.13), unde in caseta din tanga se pot alege modulele automatului din biblioteca de module. err ts | ‘civil6bo. memory board civi8a32: memory board civiBana: memory board cjviboo: memory board civimsg: keyboard read cjvol6bo: memory board cjvo8a32: memory board civoBana: memory board [cjvo8boo: memory board civomsg: memory board Library xai8: Simulate analog inputs ‘Simulate analog outputs © Boards its =a Equipments | ‘xmi8: Simulate message inputs xmo8: Simulate message outputs Fig.13. Fereastra Select board/equipment Dupi alegerea modulului corespunzitor se apas butonul OK, iar in fereastra /O Connection va apare modulul respectiv avand canalele cu care producaitorul |-a echipat. ‘Urmeazi si se conecteze variabilele programului la aceste canale. Realizdnd un dublu click pe un canal va apare fereastra Connect I/O channel #1 (fig.14), in care in caseta din stnga apar toate variabilele care pot fi conectate la canal. 21 Mediul de programare ISaGRAF Dee ee Channel: Free: Fig. 14. Fereastra Connect 1/0 channel Daca se apasa butonul Connect, variabila respectivé va fi conectata la canalul selectat si de trece la urmatorul canal. Astfel se pot conecta toate variabilele si apoi se inchide fereastra apasand butonul Close. in fereastra 1/O Connection operatiile facute sunt reflectate prin plasarea variabilelor in dreptul canalelor alese. in aceasta fereastra trebuie aleasa gi adresa logica a modulului. 1.7, Generarea codului aplicat Generarea codului aplicatiei este urmatoarea etapi care trebuie parcursa inaintea te: gi rularii in automat. Mai intdi, in functie de automatul folosit, se aleg parametrii pentru generarea codului. Acest lucru se face pornind de la fereastra Programs, prin alegerea optiunii Make — Compiler options. in fereastra care apare (fig.15) se pot alege parametrii pentru generarea codului. Se poate alege generarea de cod pentru simulare si pentru unitati centrale cu procesor Motorola sau Intel. De asemenea, se pot bifa diferite optiuni de optimizare a codului. De fiecare data cand se bifeazi mai multe opfiuni vor fi generate mai multe coduri. AUTOMATE PROGRAMABILE — INDRUMAR DE LABORATOR 22 TSABOM: THC 0 ISAQGH: TIC code to Une _| Uplod..__| Pig. 15. Fereastra Compiler options 1.8. Verificarea prin simulare a programului Pentru a realiza o verificare offline a programului elaborat se poate folosi optiunea Debug — Simulate din fereastra Programs. Evident c& trebuie ca, la generarea codului, s& fie bifaté si optiunea de generare a codului pentru simulare. Aceasté comanda deschide debuggerul in modul simulare. Se ruleaza simultan un simulator complet al automatului (fig.16). Simulatorul nu poate fi ponit daci nu a fost generat codul pentru simulare gi daca ferestrele de editare, de generare de cod si I/O connection sunt deschise. ol Fle Tools Options io jez os joa] 05 om | Fig. 16. Fereatra de rulare a programului 23 Mediut de programare ISaGRAF Aceste ferestre pot fi deschise dup pornirea simulatorului pentru a putea urmari evolutia programului. De exemplu in fereastra editorului SFC se poate urmari pozitia jetonului in graf. Utilizarea simulatorului este ugoari si intuitiva. Intrarile booleene sunt simulate prin butoane, care pot fi apasate, iar iesirile booleene sunt simulate prin leduri care devin de culoare rosie daca iegirea respectiv este true. O intrare analogica este simulata printr-un camp de text, in care se introduce valoarea intrarii in zecimal sau hexazecimal, Daca se execut& un click pe acel camp se poate introduce o valoare noua. O iesire analogic& este un cmp numeric de iesire in care valoarea variabilei este afisata. La fel sunt tratate de ctre simulator si variabilele de tip Messages. Se poate seta simulatorul s& afiseze, lang’ variabila simulata si numele acesteia. 1.9. Setarea legaturii seriale Pentru realizarea incarcdrii in automat a programului este nevoie, pe langa cablul de legatura dintre PC si automat, care trebuie achizitionat odati cu automatul gi de setarea portului serial al calculatorului pe care ruleazi ISaGRAF. Pentru realizarea acestui Iucru, din fereastra Programs se alege opfiunea Debug —+ Link setup. in fereastra care apare (fig.17) se pot seta portul de comunicatie, viteza si paritatea. Pe cg ns Target Slave Number: i OK | Communication port: <= ~ Cancel Tanne, Setup | Time out {seconds}: [2 om Retries: i Fig. 17. Fereastra PC-PLC link parameters AUTOMATE PROGRAMABILE ~ INDRUMAR DE LABORATOR 24 1.10. Utilizarea debuggerului grafic ISaGRAF include un debugger grafic si simbolic. Daca din fereastra Programs se alege optiunea Debug > Debug se lanseazi debuggerul, care controleazi incarcarea aplicatiei in automat. Debuggerul comunicd cu automatul prin intermediul legaturii seriale. Fereastra debuggerului confine toate comenzile si informatiile pentru controlul aplicatiei. fn aceasta fereastr se prezintA starea aplicatiei si informatii asupra executiei acesteia. Sunt posibile urmitoarele stiri: = Logging... - Stare in care debuggerul stabileste comunicatia cu sistemul fint& = Disconected - Stare in care debuggerul nu poate comunica cu aplicatia. in acest caz trebuie verificati parametrii legaturii seriale si cablul de legatura. = No target application — Stare in care legatura este stabilita, dar aplicatia nu este inc&rcat&. Pentru incdrcare se va folosi Files — Download. = Target application inactive — Stare in care legatura este stabilit’, aplicatia este incarcata, dar nu este activata. Pentru activare se va folosi Files — Activate PLC. = Target application active — Stare in care legiitura este stabilita, aplicatia este inc&rcata gi ea este activata. = RUN - Aplicatia este in modul Real Time. = STOP — Aplicatia este in modul Cycle to cycle. Se asteapti comenzi pentru executarea unui ciclu. = Fatal Error — Aplicatia este oprit& din cauza unei erori fatale. Cand se incarea aplicatia trebuie realizata atat incarcarea codului cat sia simbolurilor aplicatiei. O aplicatie trebuie s& se afle in modul STOP pentru a putea incdrca 0 versiune modificata sau o alta aplicatie. Problema 1: Controlul unei macarale 1. Descrierea sistemului si a procesului Sistemul este format dintr-o macara actionaté de douad motoare, fiecare cu cate doua sensuri de rotatie si prevazute cu patru limitatoare de curs’. Aplicatia consti in controlul acestei macarale care trebuie sa realizeze cele 2 cicluri de miscare reprezentate in figura 1.1. Inifial, macaraua se gaseste in pozitia de repaus 1. La apasarea butonului de pomire, macaraua porneste si realizeazi ciclul 1 de miscare, pan ajunge in pozitia de repaus 2, unde ramane pentru un anumit timp cunoscut (3s), inainte de a porni ciclul 2; cdnd ajunge in pozifia de repaus 1, macaraua se va opri. Un nou ciclu va porni dupa reapasarea butonului de pornire. Limitator 13 | Fo Limitator 14 LLLLA Ww Cichul 4 Limitator 12 [=o Cictul 2 Limitator 11 [f Pozitia de Pozitia de 7 repaus 4 repaus 2 N ¢ Elemente de executie: e doui motoare cu doua sensuri de rotatie, unul pentru migcarea orizontala si unul pentru cea vertical; Fig..1. Controlul unei macarale Elemente de mésurd: * patru limitatoare de cursa; © unbuton de pornire. AUTOMATE PROGRAMABILE ~ iNDRUMAR DE LABORATOR 26 2. Solutia de automatizare a Implementarea in mediul ISaGRAF Prima solutie pentru controlul acestei aplicafii o reprezinté un automat programabil de tip PEP Smart pentru care s-a dezvoltat un proiect ISaGRAF ce cuprinde un program principal secvential. as Cute pees ue -Ox File Make Project Tools Debug Options Help B HSM Ooo SMe OH ABs ‘Sequential: Mele Programul principal ‘Sequentiat mein (Sequertial Function Chert) Fig, 1.2, Structura proiectului ISaGRAF Dictionarul de variabile globale = Variabile de intrare booleene: © pornire: buton de pornit ciclul; o WI: limitator jos; o 12: limitator sus; o 1B: limitator stanga; o M4: limitator dreapta. = Variabile de iegire booleene: o MIS: actionare motor | stanga; ° ctionare motor | dreapta; ° actionare motor 2 sus; ° actionare motor 2 jos. yw Program main: Problema 1- Controlul unei macarale Eiapa iifala |_[ action Mavera sue 6 | action LJ M25:=TRUE; END_ACTION: END_ACTION; Pana Ta mits 6 Buton de pornire apasat BeTeUe 1 {+ J pornire= TRUE; Macara tanga 7 |faction ): Macara sus aa 2 [action ): END_ACTION: [eam a B=TRUE; Pana la limita 2 2 —iaetRve; Macara os 8 Macara dreapta 3 ACTION (P}: M2S:=FALSE: END_ACTION; MiD:=TRUE; END_ACTION; P4na fa limita: . M1=TRUE; Pana fa limita eee . I4=TRUE; 4 Macara jos 4 I ACTION (P}: MID:=FALSE; M2J:=TRUE; END_ACTION; Pana ta lta M=TRUE; L [Oprire macara jos 8 |Taction M2u:=FALSE; END_ACTION; 5 [eemporzare + GSS. Pts; AUTOMATE PROGRAMABILE ~ INDRUMAR DE LABORATOR, 28 © Implementarea in limbajul Ladder Diagram Pentru controlul acestei aplicatii s-a ales un automat programabil de tip Allen Bradley. Programul de tip Ladder Diagram este construit pe baza diagramei logice din proiectul ISaGRAF prezentat anterior. ‘Asocierea intrarilor si iesirilor fizice cu biti din registrii de intrare/iesire este prezentata in tabelul 1.1: Tabelul 1.1. Intrare fizica, Adresa interna _| Tesire fizicd Adresa interna. Pornire, EV/1 MIS 0:3/1 i E1/2 MID 0:3/2 (2, 11/3 M2S 0:3/3 3 1/4 M25 0:3/4 14 1/5 Asocierea etapelor cu biti din fisierul de bit B3 si alegerea fisierului de timer este pezentatd in tabelul 1.2: Tabelul 1.2. Etapa Adresa bit Temporizare _| Figier de timer B3/1 Temporizare 1 | T4:0 B3/2, B3/3 B3/4 B3/5, B3/6 B3/7 B3/8 ee | afar] s [eo] | — Diagrama Ladder este prezentata in continuare: Problema 1- Controlul unei macarale 29 B3 |—[osr B3 4 B3 BS B3 ae AUTOMATE PROGRAMABILE ~ {NDRUMAR DE LABORATOR B3 TIMER 14:0 TIME BASE 0.01 PRESET 300 ACCUM 0.0 ; B3 4:0 B3 E 4 : 5 DN 5 B3 L 6 B3 0:3 4 6 3 B3 aa B3 31 Problema 1- Controlul unei macarate Comentarii: ¢ in diagrama SFC se observa realizarea temporizarii folosind variabila sistem GS5.t, care contine timpul scurs de la activarea etapei asociate. Aceasté metodi de misurare a timpul poate fi folosita doar in situattia cand o etapa trebuie sa fie activa pentru o anumita perioada de timp, in alte situatii fiind necesara folosirea unor variabile globale de tip timer si gestionarea lor de c&tre functiile TSTART si TSTOP. in diagrama Ladder se observa c& ramurile de tip 1 si 2 asociate unei ctape au fost scrise una dupa alta, pentru aceasta aplicatie programul functionand corect, existi ins& situatii cfnd ordinea de scriere a ramurilor trebuie sa fie diferité (de multe ori se scriu primele ramurile de tip 1 pentru fiecare etapa, apoi ramurile de tip 2). Problema 2: Comanda miscarii oscilatorii a unui mobil 1, Deserierea procesului Un mobil aluneca pe un surub miscat de un motor actionat de dowd contactoare (MD — dreapta si MS — sténga), intre 2 limitatoare de cursa. Mobilul trebuie si realizeze o miscare oscilatorie continua din momentul in care se primeste comanda (impuls) de la butonul M. Un impuls de la butonul P trebuie si opreascé motorul, dar nu imediat, ci la finalul migcarii fncepute. Un impuls de la butonul E produce o retragere imediaté a mobilului in pozitia de origine, iar sistemul se mai poate pune in migcare doar apisand butonul R. Lo 2 MOTOR Fig. 2.1. Miscarea oscilatorie a unui mobil Element de executie: ® un motor cu doua sensuri de rotafie; Elemente de masura: e doua limitatoare de cw © 4 butoane. 2. Solufia de automatizare Pentru controlul acestei aplicafii se alege un automat programabil de tip PEP Smart PLC pentru care se dezvolta un proiect ISaGRAF. Proiectul 33 Problema 2 - Comanda miscarit oscitatorie a unui mobil contine dou programe, un program principal si un program fiu, numit Osc. Programul Osc este pornit si oprit de c&tre programul principal si este responsabil cu realizarea miscirii oscilatorii si sesizarea apsarii butoanelor, conform specificatiilor aplicatiei. ft -[o\« Cee xr oe AOR main govan pneee | rogram tr ‘Seaueriiat osc” (Soauentl Function Ghar) Fig. 2.2. Structura proiectului ISaGRAF Dictionarul de variabile globale: * Variabile de intrare digitale: o ME buton de pornire miscare oscilatorie; © P: buton de oprire motor; o E: buton de retragere in pozitia de origine; oR: buton de repornire: o LO: limitator stanga; o LI: limitator dreapta. * Variabile de iegire digitale: o MS: comanda motor sténga; o MD: comanda motor dreapta. * Variabile interne de tip boolean: © oprit: are valoarea TRUE cand miscarea oscilatorie este oprita; © v_redgeM: necesar functiei REDGE; © v_redgeR: necesar functiei REDGE. AUTOMATE PROGRAMABILE ~ [NDRUMAR DE LABORATOR 34 Program main: Tapa mae “Fpeare baton sta ces TREDGE(y redgoM) Paraive program fa 2 |-Yacrion ey {GSTART(osC) prit=FALSE ENO_ACTION; Rplsare baton , ea i _ P= ‘oprieTRUE) Opie progran te Sprie program fu 2 | facnon er 103 |_acrion GKILL(oe ‘GkILL(ose) END_ACTION; END ACTION: 103 Panis ogine ia pon 09 LOSFALSE; Baplasare cat orgie 105 MSe=FALSE: END_ACTION: "ACTION MD:=FALSE; MSi=TRUE, END_ACTION: Posie origina LO=TRUE: 205 ‘Opera tor Agtaptare baton repornie "ACTION (P) SAF ALSE: END_ACTION: FREDGEI, v rede) 206. steptare baton reporrire [REDGEIR. v redgeR): Problema 2- Comanda migcarii oscitatorie a unui mobil 35 Program ose: ‘ 4 Been] OF woe ‘ana sude asm ianouw}_(7,, es z Saas sea ‘nuit we Teams oyarn stay] 0b 'NOWLDY ONS Te 'NOUDY ONS on “ana ‘as tws=oH eva On 7 ig) NOUDY 7 ‘ginouov| [oy Somes oa vegans arava} ‘ania ‘antes amen} ani were Bape ier eB Sa wana weeey] [eee rena sseany sz ‘anuican |} ‘anus ia Sep EES. Saga aap "Nouav ana rox ‘ana SH 2573 camu=an AUTOMATE PROGRAMABILE - INDRUMAR DE LABORATOR 36 Comentarii : Funtia REDGE este folosita pentru detectarea impulsurilor produse prin apasarea butoanelor; Comunicatia intre programe este realizati prin intermediul variabilei oprit; Programul principal opreste executia programului fiu Osc atunci cand variabila oprit are valoare TRUE sau miscarea este intrerupta de apasarea butonului E; Programul putea fi realizat si faré un program fiu, dar diagrama s- ar fi complicat foarte mult, din cauza necesitatii de a testa in fiecare etapa starea butonului E. Propunere: Sa se modifice programul in conditiile in care la apisarea butonului de oprire, ciclul se incheie totdeauna cand mobilul ajunge prima data in partea dreapta. Problema 3: Detectia si expulzarea automata a sticlelor fara dop 1. Deserierea procesului Una dintre fazele de productie intr-o linie de imbuteliere consti in asezarea unui dop, ca urmare a incheierii secventici de umplere. O dati astupate, sticlele se deplaseazi pe banda 1. Scopul aplicatiei este detectarea si evacuarea sticlelor care ies din faza de inchidere fara dopul corespunzator. in plus, dac& sunt rejectate mai mult de 3 sticle consecutive, trebuie activatd o alarma. Repornirea ciclului se face prin apasarea butonului Pc. Pentru detectia sticlei_defecte se conjug& actiunile unui senzor inductiv, care detecteazi prezenta dopului si un echipament fotoelectric care semnaleazi prezenta unei sticle. Pano do contro Detector wa & transportoare A Fig.3.1. Detectia si expulzarea sticlelor fara dop AUTOMATE PROGRAMABILE — INDRUMAR DE LABORATOR 38 Procesul este initiat prin apasarea butonului M, care determina pornirea benzii transportoare 1. Atunci cand se detecteaza o sticld fari dop, este oprita banda | si este pornit banda transportoare 2 (dac era oprita). in momentul in care sticla faird dop se gaseste in zona de expulzare, este activat mecanismul de expulzare (un piston ce poate avansa si se poate retrage intre doua limite). Banda I va fi repornita in momentul in care sticla fra dop nu se mai gaseste in zona de expulzare (practic semnalul transmis de detectorul fotoelectric are valoarea logic fals). Banda 2 va fi oprité dupa 5 secunde de la inceperea expulzarii ultimei sticle. Elemente de execujie: = dowd motoare care actioneaza dou benzi transportoare; = un piston folosit la expulzarea sticlelor fara dop. Elemente de masura: «un detector inductiy pentru dopuri = un detector fotoelectric pentru sti 2. Solutia de automatizare Pentru controlul acestei aplicatii se alege un automat programabil de tip PEP Smart pentru care se dezvolta un proiect ISaGRAP, cu un singur program principal dar cu doud sectiuni programate: sectiunea secventiala i sectiunea de sfargit cain fig. 3.2. Fle Make Project Tools Debug Options Help & weet OBO Xe BH) ABS! Sequential main ee ce es [Ene ining. Gnstruction List) Fig.3.2. Structura proiectului ISaGRAF 39 Problema 3 ~ Detectia si expulzarea sticlelor fari dop Dictionarul de variabile globale: « Variabile de intrare booleene: ° buton de pornire; detector inductiv; detector fotoelectric; buton de reponire a ciclului; limita de avans; limita de retragere. ° ° ° ° ° = Variabile de iesire booleene: © banda_l: — comanda pornire/ oprire banda 1; © banda_2; — comanda pornire/ oprire banda 2; © alarm: comanda alarma; ° pay: comanda avansul pistonului; oO pret: comanda retragerea pistonului. * Variabile interne de tip intreg: o nr sticle: contorizeaza numiarul de sticle fara dop expulzate consecutiv. * Variabile interne de tip Timer: o. timp: folosit la contorizarea celor 5 secunde de activare a conveiorului 2. Programul Timing: IF (timp>t#5s) THEN banda_2:=FALSE; TSTOP (timp) ; timp:=t#0s; END_IF; AUTOMATE PROGRAMABILE — iNDRUMAR DE LABORATOR 40 Programul Main: (Eapa Tas 1 Be agioapia apasare 1 __finereve: [Retivare banda t 2 |factoner ‘banda_:=TRUE; Dacha nels ara dop 6 [Badomtalicudon 2 Jip RUE) AND (F=TRUE), (l=FALSE) AND (F=TRUEY, Se pomeste oxpulzares Se resetoned nestle 3 |_facrion ‘banda_{=FALSE: & [faction py Dbanda_2°TRUE; nr sticle:=0; begin st END_AGTION; hesticle™ a_siclert END_ACTION: 7 [Bactnamale sua Pana tia PaFALSE: 3 ave TRUE 4 me 4 |-Sacnone: ‘emp:=t0s: TTSTART(mp): p_avsFALSE: ENO_ACTION; ‘Back sunt mal pulia da 3 stele Back sant dco 4 Vir etiele <3) 8 Pr tile = 3 Se rerage patonal eS SS = s | facnon ey ‘Se rawage platonul Se parmegie sara 'p_fot=TRUE: 7 {faction 9 |_facron ey: END_ACTION: _FSE=TRUE; ‘alorma:=TRUE: [ENO_ACTION: END_ACTION: Pind a lita i a [Se agieapié apacare Pe yar: , Pane bs leapt TLreteTRUE, Pet RUE; 2 Be oprasie pistonal Sa.coreste terme. 5 10 |] action TACTION (Pp: i slarmna:sFALSE: -rot=FALSE: ares Eno_ACTION: END_AGTION: Problema 3 ~ Detectia si expulzarea sticlelor ftri dop Observafii: = sectiunea de end (care contine programe ciclice) este necesar& deoarece timpul trebuie verificat la fiecare ciclu automat astfel incat banda 2 si poata fi oprita in orice moment daca perioada ei de activare a expirat; * contorizarea timpului este facut cu ajutorul functiilor TSTART si TSTOP; = daca o sticli trebuie si fie expulzata in timp ce o alta se gaseste pe conveiorul 2, timer-ul este resetat astfel incét contorizarea timpului reporneste de la 0 pentru a asigura si evacuarea acestei ultime sticle; = dac& numarul de sticle evacuate consecutiv este 3, atunci vor incepe doua secvente de actiuni ce trebuie s4 aib’ loc simultan si anume: © retragerea pistonului © activarea — dezactivarea alarmei. Abia dupa incheierea ambelor secvente procesul poate reporni, situatie reprezentata printr-un paralelism in cadrul diagramei. Propuneri: = SA se construiascd o diagrama Ladder pentru un automat de tip Allen Bradley, care si controleze acest proces. "= S&se modifice proiectul [SaGRAF daca aplicatia se schimba astfel: © Dacd pe banda nu mai vin sticle timp de 2 minute, banda 1 va fi oprita, se activeazi alarma, repornirea procesului avand loc la apasarea butonului Pc. Problema 4: Statie automata de spalat autovehicule 1, Descrierea procesului Scopul proiect&rii acestui sistem de control il reprezinta automatizarea unei statii de spalat autovehicule. Statia are urmatoarea structur’: = banda transportoare a masinilor; = patru posturi de lucru prevazute cu senzori fotoelectrici de prezenta a unei masini si cu echipamente de actionare specifice postului respectiv (prespalare, spalare cu detergent, clatire gi uscare); = barierd actionaté de un motor cu doua sensuri de rotatie si doua limitatoare de cursa; = un semafor cu 2 culori, verde gi rosu. Post de Post de spalare cu Semafor Fig.4.1. Statie automata de spdilat autovehicule Initial banda este oprita, bariera ridicaté si semaforul verde, neexisténd masini pe banda. in momentul in care o masina apare in dreptul postului 1, banda va trebui si porneasca pentru a transporta masinile prin B Problema 4 — Statie automata de spalat autovehicule cele 4 posturi de lucru. Banda va fi oprit& cand nu mai exist masini pe banda. Bariera va fi coborata iar semaforul va deveni rosu atata timp cat postul 1 este ocupat, Cat timp o magina trece printr-un post, echipamentul postului respectiv trebuie sa fie activ. Elemente de executie: = motorul benzii transportoare; * motorul barierei cu doua sensuri de rotatie; * un semafor; * patru posturi de lucru. Elemente de masura: cinci celule fotoelectrice; * doua limitatoare de cursa ale barierei. 2. Solutia de automatizare Pentru controlul acestei aplicatii se alege un automat programabil de tip PEP Smart pentru care se dezvolt& un proiect ISaGRAF, proiect ce consti din ase programe editate in SFC care ruleaz& in paralel. Structura proiectului [SaGRAF este prezentata in fig.4.2. Fie Make Project Tools Debug Options Help B HSM Cee xe Oe ABs Sequerth semeioruia @ Start Pornvea 2 Postl Postulce prespalere & Post2 Postui ce spatsre @ Post3 Postuide ciatve © Postd postu de uscare ‘Sequential beriera (Sequential Function Chet) Fig.4.2.Structura proiectului ISaGRAF Dictionarul de variabile: = Variabile de intrare booleene: © limita_sus: __ limitator de curs sus pentru bariera; © limita_jos: _ limitator de cursa jos pentru bariera; o foto_1: fotocelula postului 1; AUTOMATE PROGRAMABILE — iNDRUMAR DE LABORATOR 44 © foto; © foto_; o foto_¢ fotocelula postului 2; fotocelula postului 3; fotocelula postului 4. " Variabile de iesire booleene © banda: comanda pomire/oprire banda; bariera_sus: comanda ridicare bariera; comanda coborare bariera; comanda activare/ dezactivare semafor; comanda activare/ dezactivare post prespalare; comanda activare/ dezactivare post spalare; comanda activare/ dezactivare post clatire; comanda activare/ dezactivare post uscare. 0000000 * Variabile interne integer o nr_masini: numarul de masini existente in stafia de spalare. 45 Problema 4 ~ Statie automaté de spalat autovehicule Program bariera: inifial bariera sus gi semaforul verde ACTION (P): bariera_sus:=FALSE; je “ALS! ‘Apare maging in post 1 Coborare bariera gi semafor rogu ACTION (P): bariera_jos:=TRUE; semafor:=TRUE; END_ACTIOI Pana se atinge limitator jos limita_jos=TRUE; Oprire coborare bariora ACTION (P): bariera_jos:=FALSE; END_ACTION; Asteptare eliberare post ‘ALSE; foto, Ridicare bariera si semator verde ‘ACTION (P): bariera_sus:=TRUE; semafor:=FALSE; END_ACTION; Pana se atinge limitator sus limita_sus=TRUE; AUTOMATE PROGRAMABILE ~ {NDRUMAR DE LABORATOR. Program start: Program Posti: Banda oprita ‘pare maging Toto 1=TRUE; Pornire banda si incrementare magini "ACTION ( banda:=TRUE; r_masini:=nr_masini#1 END_ACTION; Nu mai sunt magini pe banda nr_masini=0; ‘Agioptare vohicul postt post_1:=FALSE; END_ACTION: Daca fotocelula 1 este activa foto_1= TRUE; ACTION (P} post_1:2TRUE; END_ACTION; ‘Aglepiare eliberara post 1 foto_1=FALSE; 46 | 47 Problema 4 ~ Statie automata de spilat autovehicule Program Post2: Program Post3: | Asleplare vehicul post [Patan vores } fi ‘ACTION (i 4 “ACTION (P): | post. 2°-FALSE; post S: 45s; +4 lim_dreapta=TRUE; a lim_stanga=TRUE; Oprire pivotare 9 a ACTION (P): /_stanga:=FALSE; AUTOMATE PROGRAMABILE — INDRUMAR DE LABORATOR 2 a Implementarea in limbajul Ladder Diagram Pentru controlul acestei aplicatii s-a ales un automat programabil de tip Allen Bradley. Programul de tip Ladder Diagram este construit pe baza diagramei logice din proiectul IsaGraf prezentat anterior. Asocierea intrarilor si iesirilor fizice cu biti din registrii de intrare/iesire este prezentatd in tabelul 6.1: Tabelul 1.1. Intrare fizici | Adres intern | lesire fizica | Adresa interna START EIA Valva_A 03/1 A Valva_B 032 | B Valva_C 0:33 Z Mt 0:3/4 lim_dreapta Rotire 0:3/5 d [1/6 Pit_dreapta__| 0:3/6 lim_stanga | :1/7 Pit,_stanga 0:3/7 Asocierea etapelor cu biti din fisierul de bit B3 si alegerea fisierului de timer este pezentati in tabelul 6.2: Tabelul 1.2. Etapa Adresa bit Temporizare _| Fisier de timer B3/1 Temporizare 1 | 14:0 B3/2. B3/3 B3/4 B3/5, B3/6 B3/7 B3/8 B3/9 102 B3/10 103 B3/IL 104 B3/12 105 B3/13 eleo|afalu|a]eofro]— Diagrama Ladder este prezentat& in continuare: Problema 6 - Dozare $i malaxare automata AUTOMATE PROGRAMABILE ~ iNDRUMAR DE LABORATOR B3 B3 64 65 Problema 6 ~ Dozare si malaxare automat TIMER T4:0 TIME BASE 0.01 PRESET ACCUM AUTOMATE PROGRAMABILE ~ {NDRUMAR DE LABORATOR 3 0:3 E (t ca 6 3 i B3 EY 7 5 a B3 c 8 B3 66 61 Problema 6 — Dozare $i malaxare automata Observatii: = jin diagrama SFC se pot observa cele doud secvenje paralele, aducerea lichidelor si aducerea brichetelor in malaxor. Iesirea din paralelism se face atunci cand ambele secvente s-au incheiat. = Pentru exemplificare, temporizarea a fost realizata cu instructiunea TSTART desi in acest caz putea fi folosita variabila globala GS006.t. Nu s-a mai folosit functia TSTOP pentru c in etapa 7 variabila timer este resetata, deci incrementarea ei va reincepe de la 0 din acel moment, in alte etape sau tranzifii variabila nefiind folosita. | | Propunere: * SA se modifice programul pentru cazul in care aducerea brichetelor incepe odati cu golirea cAntarului iar numirul de brichete aduse este oarecare (egal cu n). | | | Problema 7: Umplerea si astuparea automata a sticlelor 1. Descrierea instalatiei si a procesului Scopul acestei aplicatii il constituie controlul unui sistem de umplere si astupare a unor sticle. Cilindru A — dl ho " oe tL ao 7 = oa t tab § i f = Detector pozitie sticks oe onan ; 4 al Fig,7.1. Umplerea si astuparea automata a sticlelor Componentele instalatiei sunt: =o banda transportoare pe care circula sticle, actionaté de un motor cu un singur sens de rotatie; = un rezervor cu lichid folosit la umplerea sticlelor; = un cilindru cu dublu efect (A in fig. 7.1) cu ajutorul cruia sunt umplute sticlele; = uncilindru cu dublu efect (B in fig. 7.1) care aduce dopurile pentru astuparea sticlelor; = un cilindru cu dublu efect (C in fig. 7.1) care preia dopurile din stiva de dopuri; = un mecanism rotativ care efectueazi efectiv astuparea sticlelor, a cArui miscare este limitata de catre un limitator; ca | Py Problema 7—Umplerea si astuparea automata a sticlelor * doi senzori detectori de prezenfa unei sticle in pozitiile de umplere, respectiv de astupare; = un detector al pozitiei de preluare dop de catre cilindrul B. Initial, pentru simplificarea aplicatiei, se presupune ca existé deja o sticla umpluta intre cele doua pozitii principale de pe bandi (umplere si astupare). La initializarea aplicatiei se porneste motorul benzii transportoare. Acesta se va opri cand exista sticle atat in pozitia de umplere ct si in cea de astupare. Se presupune ca sticlele vin pe banda la distante egale astfel incat umplerea si astuparea s& aiba loc simultan. Actiunea de umplere are loc prin avansul $i retragerea cilindrului A intre limitatoarele F1 si F2. Retragerea cilindrului A trebuie s& aiba loc abia cand cilindrul B a pus un dop deasupra unei sticle. Secventa de astupare este urmatoarea: Cilindrul C aduce un dop din stiva de dopuri, cilindrul B avanseaza pina in dreptul detectorului F7, cilindrul C se retrage apoi cilindrul B avanseaza pina la limita sa de avans, impingand dopul deasupra sticlei. Din acel moment incep doua secvenfe de actiuni care au loc in paralel. Prima const in ingurubarea dopului de cdtre mecanismul rotativ, urmata de retragerea cilindului B, cea de-a doua fiind retragerea cilindrului A. Cand ambele secvente s-au incheiat, banda transportoare poate fi repornita, ciclul reluandu-se cand un nou lot de sticle apar in cele doua pozifii semnificative de pe banda. Elemente de executie: * uncilindru A ce regleaza dozatorul volumetric; un cilindru de avans B cu trei pozitii; un cilindru C ce reprezinta mecanismul de transfer al capacelor; motorul benzii transportoare; un mecanism de ingurubare dopuri. Elemente de mdsura: = sase limitatoare de cursa; * un detector de pozitie; = 0 fotocelula pentru detectie sticla de umplut; = 0 fotocelula pentru detectie sticla plina. 2. Solutia de automatizare Pentru controlul acestei aplicatii s-a ales un automat programabil de tip PEP Smart pentru care s-a dezvoltat un proiect ISaGRAF ce cuprinde un program principal, numit main. AUTOMATE PROGRAMABILE — INDRUMAR DE LABORATOR 10 File Make Project. Tools Debug Options Help B Bee Oea evr oH ABS Sequetia: Programnal principal ‘Sequertiat Wain (Sequential Function Chart) Fig,7.2. Structura proiectului ISaGRAF Dictionarul de variabile globale: = Variabile de intrare booleene: F1: limitator sus cilindru A limitator jos cilindru A : limitator sus cilindru B F4: limitator jos cilindru B F5: limitator stanga cilindru C F6: limitator dreapta cilindru C F7: Detector pozitie de preluat dop senzor_rotire: limitator rotire dispozitiv de insurubare st_de_umplut: senzor detectie sticli de umplut st_plina: senzor detectie sticla plin& ° 000000000 * Variabile de iesire booleene: © banda: comanda pornire/ oprire banda insurubare: comanda de ingurubare a dopului ‘A_avans: comanda avans cilindru A ° ° o A retragere: comanda retragere cilindru A © B_avans: comanda avans cilindru B ° ° ° B_retragere: comanda retragere cilindru B C_avans : comanda avans cilindru C C_retragere: comanda retragere cilindru C r n Problema 7— Umplerea sf astuparea automata a sticlelor Programul main: Pomire banda ‘ACTION (P} banda:=TRUE; END_ACTION: ‘Sticlo in posite ‘Si_do_umplat AND st plina AND F1 AND F3 AND 8 ‘Oprire banda }—| ACTION (P): banda:=FALSE; END_ACTION; ‘Avans clindru A | 3 Ly "ACTION (): 01 | ih avans:=TRU eavans:=TRUE; No ACTION, eNo_AGTION: | | [Peni emmnayos [Pant atta stings] | 7 eee | pee eaame | 2 102 FT AcTION (P): | Sig Gad C_avans:=FALSE; as eNo_AGTION: ‘Avans B 7 [| ACTION (P): 8 _avan END_ACTION; Pana in dreptul dopulut FT; to AUTOMATE PROGRAMABILE ~ INDRUMAR DE LABORATOR ‘Oprire B gi retragere © 6 |{ ACTION (P B_avans: C_retrage END_ACTION; Pani la limita din dreapta C Fe ‘Avans B 7 ‘ACTION (P): B_avans:=TRUE; END_ACTION; Pana la limita do jos 41s 8 + ACTION (P): {| 8__eonzor_rotire: Sn =e i espessomseeeiaa 2 He ornse, | LMI Prone: END_ACTION; = 2 F3; 40 L_Jaction (Py: Problema 7—Umplerea si astuparea automata a sticlelor B Observayit = In program au fost folosite 2 paralelisme, fiecare avand céte 2 secvenfe ce se executa simultan. * A doua secvenfa paraleli implementeaz conditia cA o dati cu umplerea unei sticle, alta s& fie astupata. Propunere Sa se modifice programul in situatia in care sticlele vin aleator pe banda transportoare, iar umplerea si astuparea nu mai au loc simultan. Sa se modifice programul findndu-se cont de situatia in care nu apar sticle simulian in cele 2 pozitii semnificative. in acest caz si fie declansat o alarm care sa fie oprita gi ciclul reluat abia cand nu mai exista sticle in niciuna din cele 2 pozitii de pe banda (sticla este evacuaté manual). Problema 8: Controlul unui lift 1. Descrierea sistemului si a procesului Componentele sistemului sunt: = 10 butoane interioare; = 10 butoane exterioare; = un senzor prezenta persoand in interiorul liftului; * 10 senzori prezenfa lift la fiecare etaj; = un contact de usa inchisa a cabinei liftului; = un motor cu doua sensuri de rotatie. Functionarea dorita a liftului este urmatoarea: initial liftul se aflé la parter, gol. Daca 0 persoana se afl& in lift si apas unul din cele 10 butoane interne de comanda, liftul va porni catre nivelul destinatie, oprindu-se cénd se activeaza senzorul de prezenf lift, de la nivelul respectiv. Pornirea liftului are loc numai daca usa de interior este inchisa. Daca liftul este gol el poate fi chemat de la alt nivel, cu ajutorul butoanelor externe. Elemente de execufie: = motorul liftului Elemente de mdsura: = 10 senzori prezenté lift; = 20 butoane; = un senzor prezenf persoana; = un contact de us inchisa. 2. Solufia de automatizare Pentru controlul acestei aplicafii se alege un automat programabil de tip PEP Smart pentru care se dezvolt& un proiect ISaGRAF, ce cuprinde un program in sectiunea begin si un program in sectiunea sequential, asa cum este prezentat si in figura 8.1. 5 Problema 8 — Controtul unui lift Gece cn ee (ol! File Make Project Took Debug Options: Help b mao Lame eXe Oe 28 Beain Sequertar Sin Begin: det_etj (Structured Text) Fig.8.1. Structura proiectului ISaGRAF Dictionarul de variabile globale: " Variabile de intrare booleene: © bintl ... bintlO bextl ... bext 10 usa_cabina ctajl ... etaj 10 prez_persoana 0000 " Variabile de iesire booleene: o Msus, Mjos | = Variabile interne de tip intreg: o but_int © but_ext © etaj_curent © etaj_dorit a AUTOMATE PROGRAMABILE - INDRUMAR DE LABORATOR Program det_etj but_int:=0; but_ext:=0; etaj_curent:=0; IF bintl = TRUE THEN END_IF; IF bint3 = TRUE THEN but_int = 3; END_IF; IF bint4 = TRUE THEN but_int = 4; END_IF; IF bint5 = TRUE THEN but_int = 5 END_IF; IF bint6 = TRUE THEN but_int = 6; END_IF. IF bint7 = TRUE THEN but_int = END_IF; IF bint8 = TRUE THEN but_int = END_IF; IF bint9 = TRUE THEN but_int = 9; END_IF; IF bint10 = TRUE THEN but_int = 10; END_IF; IF bextl = TRUE THEN but_ext = 1; END_IF; IF bext2 = TRUE THEN but_ext = 2; END_IF; IF bext3 = TRUE THEN but_ext = 3; END_IF; IF bext4 = TRUE THEN but_ext = 4; END_IF; IF bextS = TRUE THEN but_ext = 5; END_IF; IF bext6 = TRUE THEN but_ext = 6; END_IF; IF bext7 = TRUE THEN but_ext = 7; END_IF; IF bext9 = TRUE THEN but_ext = 9; END_IF; IF bext10 = TRUE THEN but_ext = 10; END_IF; IF etajl = TRUE THEN etaj_curent = 1; END_IF; IF etaj2 TRUE THEN |_curent = 2; END_IF; IF etaj3 = TRUE THEN etaj_curent = 3; END_IF; IF @taj4 = TRUE THEN etaj_curent = 4; END_IF; IF etaj5 = TRUE THEN etaj_curent = 5; END_IF; IF 6taj6 = TRUE THEN etaj_curent = 6; END_IF; IF etaj7 = TRUE THEN etaj_curent = 7; END_IF; IF etaj8 = TRUE THEN etaj_curent = 8; 76 1 END_IF; IF etaj9 = TRUE THEN etaj_curent = 9; Problema 8 ~ Controtul unui lift IF etajl0 = TRUE THEN etaj_curent = 10; END_IF; END_IF; Program Principal Factions: Misus:=FALSE; Mios:=FALSE; END_ACTION: {1 (but into) AND (but_int<>eta|_curemt) AND (usa_eabina} AND (prez_persoana) 3 (hut_ext>0} AND (but exte>eta}_curent) AND (NOT((prex_persoana)} ACTION(P): L [action ‘etaj_donit:=but int; = ‘taj dorit-=but_oxt: IF {eta} dort > etaj_curent) THEN AF (etal doit > etaj_cuvent} THEN Mus: TRUE, sp Meus'=TRUE- ELSE ELSE Wios:=TRUE; | Wjoa:=TRUE} ENO_IF i ENDIF: END_ACTION; | END_ACTION: ~}% eta) dorit = eta) eurent 2 ia ta} doritsetaj_curent v4 1 Observafii: = S-a ales solufia folosirii unui program ciclic in sectiunea Begin deoarece starea butoanelor si etajul unde se afl liftul trebuie actualizate la fiecare ciclu automat pentru a putea controla corect liftul. = {ncercarea de a nu folosi un program ciclic gi de a testa starea butoanelor si a senzorilor intr-un program SFC ar duce la crearea unei diagrame foarte mari si stufoase, in mod practic nici nu ar fi posibil la un numar mare de butoane si senzori intrucat mediile de programare logic permit un numir limitat de conditii de tranzitie atasate unei etape. AUTOMATE PROGRAMABILE — f{NDRUMAR DE LABORATOR 8 Propunere: = In cazul in care ar exista un buton de urgenta in interiorul liftului, si se modifice programul astfel incat liftul s& se opreasc’ la apasarea acestuia, miscarea fiind reluata la apasarea oricarui buton de comanda migcare. Problema 9: Detectarea bagajelor care contin metale 1. Descrierea procesului Elementele sistemului de condus sunt: =o banda transportoare actionaté de un motor (M7) cu un singur sens de rotatie pe care sunt transportate bagaje intr-un aeroport; © bariera comandaté de un motor cu doua sensuri de rotatie Msus, Mjos, avand limitatoare de curs Isus si [jos; un senzor de prezenfa bagaje s, activ cat timp in dreptul siu se gaseste un bagaj; = un detector de metal d, activ dacd bagajul din dreptul senzorului s contine obiecte de metal. B © Isus S ~ senzor prezenta Msus bagaj e bariera ce e d— detector metal jos Mjos Fig. 9.1. Detectarea bagajelor care contin metale Aplicatia are ca scop detectarea automata si evacuarea manuala a bagajelor care contin metal. Initial, bariera este ridicaté. Pornirea benzii transportoare se face prin apdsarea unui buton B. Atunci cand un bagaj apare in dreptul senzorului s, bariera trebuie sa coboare. Bariera se va ridica atunci cénd bagajul dispare din dreptul senzorului s. Daca in timp ce se afl& in dreptul senzorului s, se activeaz senzorul d, banda va fi oprita gi se asteapt ca bagajul sa fie preluat de pe banda pentru a reporni banda si a ridica bariera. Daca timp de 2 minute nu apare nici un bagaj in dreptul senzorului s, banda va fi oprita iar repornirea se va face de la buton. AUTOMATE PROGRAMABILE — INDRUMAR DE LABORATOR 80 Elemente de execufie: motorul benzii transportoare © motorul barierei Elemente de masura: ¢ dowd limitatoare de cursa © un senzor de prezenta e un detector de metal 2. Solutia de automatizare Pentru controlul acestei aplicafii s-a ales un automat programabil de tip PEP Smart pentru care s-a dezvoltat un proiect ISaGRAF ce cuprinde doua programe conform figurii 9.2. Fle Make Project Tools Debug Opters Heb b BS Oo F Mie mk 28) ‘Seaueii = amar niseares barsrel ® banda comarca niscarea benct “Beateriot baer, Geasertel Funcion Ghar) Fig.9.2. Structura proiectului ISaGRAF Dictionarul de variabile globale: = Variabile de intrare booleene: os: senzor de prezenta bagaje od: senzor detectie metal o Isus: limitator de curs sus © Tjos: _ limitator de cursa jos o B buton de pornire * Variabile de iesire booleene: o MT: comanda banda transportoare © Msus: comand bariera sus © Mjos: comanda bariera jos 81 Problema 9~ Detectarea bagajelor care contin metale ® Variabild interna de tip boolean. o. vari: necesar functiei REDGE Program bariera: Etapa initial ACTION (P): Coborare bariera ACTION (P): Mjos:=TRUE; END_ACTION; Panda la limita Wos=TRUE; ‘Se opreste bariera END_ACTION; Daca nu mai e bagaj S=FALSE; ‘Se ridica bariera ACTION (P): Msus:=TRUE; END_ACTION; Pana ta limita Isus=TRUE; AUTOMATE PROGRAMABILE — INDRUMAR DE LABORATOR 82 Program banda: EJ Etapa initiala ACTION ( MT:=FALSE; END_ACTION; ‘Se ver REDGE(B,vart); Pornire banda END_ACTION; Detectare bagal S=TRUE; fica apasarea butonului & ‘Temporizare GS2.t > t#2m; Detectare metal s=FALSE; ‘Oprire banda ACTION (P): MT:=FALSE; END_ACTION; Daca nu mai e bagaj Problema 9 ~ Detectarea bagajelor care contin metale Observatii: e Se observa ca testarea impulsului de la butonul B este facuta folosind functia REDGE, deoarece trebuie depistata tranzitia starii butonului gi nu starea lui la un moment dat © S-au folosit 2 programe ce ruleaza in paralel intrucat bariera si banda transportoare functioneaza independent si nu pot fi gestionate in aceeasi diagrama Propuneri: e S& se construiascd diagrama Ladder care simuleazi acest proiect ISaGraf Problema 10: Sortarea a patru tipuri de piese 1. Descrierea sistemului si a procesului Componentele sistemului sunt: = un motor al benzii transportoare; un senzor prezen{a piesa (pentru detectie); un cititor cod bare cu iesire pe doi biti; 4 senzori de prezenta piesa in dreptul clapetelor; 4 clapete comandate digital (cu delay); un buton pornire banda. Senzor st 82 3 34 a. | 4 4 f SHEEP pies Clapetat Clapeta 2 Clapeta 3 Clapes 4 Fig. 10.1. Sortarea a patru tipuri de piese Scopul aplicatiei este de a sorta 4 tipuri de piese care vin pe o banda transportoare. Initial pe band nu se afla nici o pies iar banda este oprita. Aplicatia porneste prin apdsarea butonului. Cand o pies ajunge in dreptul senzorului de prezenté pentru detectie, tipul ei este determinat de catre cititorul de bare si transmis prin 2 biti de date. Atunci cand o piesa ajunge in dreptul clapetei corespunzatoare tipului sau (ex. piesa de tip 1 in dreptul clapetei 1), banda transportoare trebuie oprita iar piesa evacuata prin deschiderea gi inchiderea clapetei. Comanda clapetei se face printr-o singura comanda digitala, care trebuie mentinut’ o perioadi de 5 secunde pentru a asigura deschiderea respectiv inchiderea clapetei. Elemente de executie: ¢ motorul benzii transportoare e cele 4 clapete Elemente de mésuré. © un dispozitiv de identificare pies 85 Problema 10 — Sortarea a patru tipuri de piese ¢ 5 senzori de prezenta piesa © 1 buton 2. Solutia de automatizare Pentru controlul acestei aplicafii se alege un automat programabil de tip PEP Smart pentru care se dezvolti un proiect ISaGRAF, ce cuprinde 5 programe in sectiunea sequential, aga cum este prezentat si in figura 10.2. File Make Project Tools Debug Options Help B Hen Oot Sue Oe ABS ‘Sequertiat eS identiticarea tipului de piesa ® clap! comands clapete 1 & clap2 comanca clapets 2 comands clapsts 3 comancia clapeta 4 ‘Sequential: identif (Sequential Function Chart). Fig. 10.2. Structura proiectului ISaGRAF Dictionarul de variabile globale: " Variabile de intrare booleene: ° 0000 s_global: atasatd senzorului de prezenti din pozitia de identificare; dl: prima linie de la dispozitivul de identificare: d2: a doua linie de la dispozitivul de identificare; sl, s2, s3, 4: atasate senzorilor de prezenta buton: atasata butonului * Variabile de iesire booleene. ° ° MT: comanda banda transportoare: C1, C2, C3, C4: comanda deschiderea/ inchiderea clapetelor; * Variabile interne booleene: ° vint, vintl, vint2, vint3, vint4: folosite de functiile REDGE. AUTOMATE PROGRAMABILE — {NDRUMAR DE LABORATOR * Variabile timer: © const: telapeta = t#2s; = Variabile interne de tip integer. o. variabile: rez, tip], tip2, tip3, index1, index2, index3, index_citl, index_cit2, index_cit3, tip_cititl, tip_citit2, tip_citit3 © constante: sirl=1; sir2=2; sir3=3; 86 87 Problema 10~ Sortarea a patru tipuri de piese Program identif: Etapa inifiala EJ ACTION(P): rez: ARCREATE(sir1,32); rez: ARCREATE(Sir2,32); rez:=ARCREATE(Sir3,32); END_ACTION; Verificare apasare buton REDGE(buton, vint) Pornire banda [=H ACTION (P): MT:=TRUE; END_ACTION; Verificare prezenta piesa 2 | s_global=TRUE; Determinare tip pies& ACTION (P): iF NOT(d1) AND d2 THEN tipt: END_IF; IF df AND NOT(d2) THEN | tipt RWRITE(Sirt indext,tipt); indext:sindext+1; END_ACTION; Pact mal exist piesa _global=FALSE; Y 2 AUTOMATE PROGRAMABILE — INDRUMAR DE LABORATOR 88 Program Clapetal: Verificare senzor 1 REDGE(s1,vintt); Se cltegte tipul pleset ACTION (P)- Index_citt:sindext-4; tip_cititt:==ARREAD(sir1,index_citt) END_ACTION; Dacé pul plesol et [Baek tipul plosel nu ot tip_eitit=1;, ‘Decremontare indext, incrementare index 2 ria banda, deschiaerecapets ACTION oH RGTION MTSSFALSE: ARWRITE(sr1.indox2ip_eltt) Ct= TRUE; END_ACTION; Temporizare 4+ GS3.1> telapeta; lL [inchiderectapot@ id 4 ‘ACTION (P): i q END_ACTION; : = & Temporizare ‘GS4t> tclapeta, Pornire banda 5 [ACTION (PY. MTs TRUE; Indext:=indoxt-1; END_ACTION; a Problema 10 Sortarea a patru tipuri de piese Program clapeta2: ‘Verificaro senzor2 REDGE(s2,vint2); ‘Se citagie tipul plesel "ACTION (Pj Daca tipul piessie2 Back pul piosci nue? ‘tip_citit=2; ip_cititt <> 2; Decrementare index?, incrementare index 3 [Oprire banda, deschidere clapeta TACTION () « Laxton, ri : ¢2:=TRUE; END_ACTION; ‘Femporizare GS3.t> tolapeta; [inchidere clapeta ACTION (P}: ‘C2:=FALSE; 4 —[esat> tcapeta: END_ACTION; ‘Temporizare Pomire banda ‘ACTION (P: MT:=TRI UE; index3:=index3+1; index2:=index2-1; END_ACTION; AUTOMATE PROGRAMABILE — INDRUMAR DE LABORATOR Program clapeta3: Verificare senzor 3 REDGE(s3,vint3); Se citegte . ‘ACTION (P): index_cit3:=index3-1; tip _cilit3:sARREAD sir3,indox_cit3}| END_ACTION; Daci pul piesel eS Dacé Upal piesel nue 2 Seip citit=3; SP ip itis 3: [Oprire bands, doschidere clapeta 3 "ACTION (P): MT:=FALSE; C3:=TRUI END_ACTION; a Temporizare: A — 6st tclapeta; —L _[inchidere clapeta 4 |L-Saction ep C3:=FALSE; END_ACTIO} Temporizare 4 +H GS4xt> telapeta; END_ACTION; — 1 Problema 10 ~ Sortarea a patru tipuri de piese Program clapetad: Vorificare senzor 4 REDGE(s4.vint4); LL pam ae 2 |Saction ey MT:=FALSE; CaeTRUE, ENO_AGTION, ‘Temporizare GS2.t> tclapeta; inchidere clapeta [J ACTION (P): (C4:=FALSE; END ACTON: Pornire bands END_ACTION: | Observatii: ¢ Solufia adoptaté pentru a putea determina exact ce tip de piesi ajunge in dreptul senzorilor a fost de a crea 3 siruri de numere intregi, pentru primele 3 clapete (pentru a patra nu mai este necesar deoarece aici nu pot ajunge decat piese de tipul 4). Fiecare sir este modificat cand 0 piesi ajunge in dreptul senzorului de prezenta anterior. Exist cate o variabila index asociata fiecarui sir care indic& prime pozitie libera din gir. Sirurile sunt de tip FIFO, tipul piesei care se gaseste in dreptul unui senzor este citit intotdeauna de pe AUTOMATE PROGRAMABILE — INDRUMAR DE LABORATOR, 92 prima pozitie a sirului asociat. in cazul in care tipul piesei nu corespunde locatiei, valoarea este scoasa din sirul respectiv (prin shiftarea sirului) si introdusa in prima pozifie libera din sirul asociat clapetei urmatoare. Propuneri: e SA se modifice programul pentru situatia in care nu mai exista senzori de prezenta in dreptul clapetelor, cunoscdndu-se insa viteza benzii transportoare si distantele intre pozitia de identificare si cele 4 clapete. Problema 11: Umplerea automata a unor containere L.Deserierea procesului Aplicatia consti in umplerea cu lichid a 3 containere (A, B, C) si evacuarea lor pe o banda transportoare. Umplerea containerelor trebuie facuta in urmatoarea maniera: - containerul A: 5 secunde cu lichid de tip A; - containerul B: 7 secunde cu lichid de tip A si 7 secunde cu lichid de tip B; - containerul C: 3 secunde cu lichid de tip C, 5 secunde cu lichid de tip B si 8 secunde cu lichid de tip A. Lichid — Lichid BLichid A Fig.11.1. Umplerea automata a unor containere in cadrul sistemului existi o banda transportoare 1 pe care vin, unul dupa altul, cele trei containere A, B, C. Primul dintre ele care ajunge la platforma este containerul C, apoi B si ultimul cel de tip A. Cilindrul E este responsabil cu evacuarea recipientilor cu ajutorul celei de-a doua benzi transportoare. Initierea procesului se face prin pornirea benzii transportoare 1 pe care sunt aduse containerele. in momentul in care un container de tip C se giseste pe platforma, banda 1 va fi oprita iar cilindrul D va avansa o pozitie. AUTOMATE PROGRAMABILE ~ {NDRUMAR DE LABORATOR 94 Cand containerul C activeazé detectorul 2, banda | va fi din nou activata iar cilindrul D va fi oprit; banda 1 se va opri din nou cand containerul B ajunge la platforma si in consecinfa cilindrul D va avansa din nou pana cand containerul C activeaza detectorul 3 iar containerul B activeazi detectorul 2. in acest moment banda 1 este repornité pana cand containerul A atinge platforma, moment in care banda este oprita. in acel moment cele trei valve vor fi deschise simultan, fiecare fiind menfinuté deschisd un anumit timp, astfel incdt contaienrul A se va umple cu lichid A timp de 5 secunde, containerul B cu lichid de tip B timp de 7 secunde iar containerul C timp de 3 secunde cu lichid de tip C. Cand toate aceste temporizari au expirat, valvele vor fi inchise, cilindrul E va avansa pentru a evacua containerul A pana activeaza detectorul 4. In acest moment cilindrul E se retrage. Dup ce a ajuns in pozitia de retragere, cilindrul D va fi retras pana activeaz detectoarele 1 si 2. Apoi containerele B si C vor fi umplute cu lichid de tip A, respectiv B, dupa care urmeazi evacuarea containerului B. fn final containerul C va fi umplut cu lichid de tip A si va fi evacuat. Dupa evacuare cilindrul D va fi retras si un nou ciclu poate incepe. Elemente de execufie: = 3 electrovalve; = 2 cilindri cu dublu efect; = 2 motoare ale benzilor transportoare. Elemente de masurd: = 4 detectoare de pozitie. 2. Solutia de automatizare Pentru controlul acestei aplicatii s-a ales un automat programabil de tip PEP Smart pentru care s-a dezvoltat un proiect ISaGRAF ce cuprinde un program principal. Dictionarul de variabile globale: = Variabile de intrare booleene: © poz_A: detectorul de pozitie A; © poz_B: detectorul de pozitie B; © poz_C: detectorul de pozitie C; o li : limitatorul de avans al cilindrului E. "= Variabile de iesire booleene: o banda_1: activare / dezactivare banda 1; 95 0000000 ° Problema 11- Umplerea automata a unor containere banda_2: activare / dezactivare banda 2; D_avans: avans cilindru D; D_retragere: retragere cilindru D; E_avans: avans cilindru E; E_retragere: retragere cilindru E; valva_A: comanda de deschidere/inchidere valva A; valva_B: comanda de deschidere/inchidere valva B valva_C: comanda de deschidere/inchidere valva C; Constante de tip Timer: ° ° TA_container_1: perioada de timp pentru umplerea containerului 1 cu lichid de tip A TB_container_2: perioada de timp pentru umplerea containerului 2 cu lichid de tip B TC_container_3: perioada de timp pentru umplerea containerului cu lichid de tip C TA_container_2: perioada de timp pentru umplerea containerului 2 cu lichid de tip A TB_container_3: perioada de timp pentru umplerea containerului 3 cu lichid de tip B TA_container_3: perioada de timp pentru umplerea containerului 3 cu lichid de tip A AUTOMATE PROGRAMABILE — INDRUMAR DE LABORATOR Programul main: Pornire banda 1 1 ‘ACTION (P)) (Ld banda_1:=TRUE; END_ACTION; Pana in pozitia A "ACTION (P)- banda_1:=FALSE; Repornire banda 1 3 [faction D_avan banda_1 END_ACTION; -ALSE; Pind pozitia Agi poz_A AND poz_B; Ll, [(prire banda glavane cllindraD 4 LSaction(®): 14 I roz_B AND poz_C; [Repomrebandat? ———] 5 ACTION (P): D_avans:=FALSE; banda. t:=TRUE: END_ACTION; Pan poz A, Bi poz_A AND poz_B AND poz_C; Oprire banda t 6 |--{ACTION (P): banda_1:=FALSE; END_ACTION; 96 Problema 11- Umplerea automaté a unor containere BeachTdorevahk Tecan —] [pecan 7 |-Jacrion iy 107 |] ACTION 207 | acrion (Py valva_A:=TRUE: valva_B:=TRUE: valva_C:=TRUE: END_ACTION: END_ACTION;, END_ACTION: TTemporizare or [remooriare son Premooriare 1_Jos7.t> TA contain oT_Jesiore> 16 conta 207.1 > TC_eontainer 3 Eiapa do agtepiore Frapl de agtepiare Elapi de agleplare 2 action: yoo |_| action rr: vos |] action Pr. valva_AcSFALSE: vala_B:9FALSE: valva_C=FALSE; END_ACTION; END_ACTION; END_ACTION; | [ eects aera | 9 Hanon E avans:=TRUE; END_AGTION; and in poaiia # jim_A=TRUE; Pind posite «liberé 10__ Foz APFALSE: Retragere ciindruD 14 |-[action (Py: D_retragere:=TRUE; END_ACTION: Pana poaiia Agi 8 ocupate pez_A AND poz 8; 4 Oprire clinaru D "ACTION (P) D_yetragere:=FALSE; END_ACTION: AUTOMATE PROGRAMABILE ~ {NDRUMAR DE LABORATOR 42 Deachidera valva A Deschidere valva 8 ‘ACTION (P) 113 |] action ry valva_A:=TRUE; valva_ BA TRUE: END_ACTION: END_ACTION; ‘Toriparzare Temporzare 13 _Fesiae> Ta con 183_Jest1a1> 1B containor | Flap de aglepiare Etapa de agiepiare ‘ACTION 14 |_| ACTION er valva_A:sFALSE; valva_ 8:=FALSE: END_ACTION: END_ACTION: ‘Avan olindra E 5 [ACTION (P): Eavar END_ACTION: -TRUE; Pans in pozitas im_4°TRUE: Retragere E 16 “ACTION (Ph E retragere:=TRUE; Eavans:=FALSE; END_ACTION Pana poaiia Ae bers ‘poz_A=FALSE; Revagere ciinara a7 ‘ACTION (P): _retragere:=TRUE; ENO_ACTION: Band pozitia A ccupatl poz Ay 18 Oprive i arab givala A "ACTION (P) D_retragere:=FALSE; vvalve_A'=TRUE; END_ACTION: Tomporizare (GS181> TA container 3; 98 99 Problema 11- Umplerea automata a unor containere inchidere vaiva A "ACTION (P): E_avans:=TRUE; valva_A:=FALSE: END_ACTION Pana in pozifiad lim_4=TRUE; Retragere E "ACTION (PI: E_retragere:= TRUE: E_avans:=FALSE; END_ACTION; Oprire banda? 21 |Y ACTION (P): E_retragere:=FALSE; banda_2:=FALSE; END_ACTION; 24 Observafii: = in cadrul secventelor de deschidere a valvelor, temporizirile au fost implementate prin testarea permanenté a parametrului GSxxx.t asociat unei etape. Acest parametru indicd timpul de cénd o etapa este activa. O alt varianta era folosirea unor variabile de tip Timer. = Umplerea containerelor este facut’ in paralel cu ajutorul paralelismului diagramelor SFC. Problema 12: Controlul unor usi automate aflate la intrarea intr-o incinta 1, Descrierea aplicatiei Elementele sistemului de controlat sunt: = doua usi, fiecare dintre ele miscata cu ajutorul a cate doud motoare cu doua sensuri de rotatie (miscare sténga — dreapta pentru fiecare usa); = cate doi senzori de capat cursa (deschis ~ inchis) pentru fiecare usa; = un senzor de prezenta persoana in dreptul usii. prezenta Oo Hdeschis =O. O 12 deschis Hinchis OQ. © 2 inchis mt_deschidere <——— ———> m2_descl fore mt_inchidere. ———> <—— m2 inchidere Fig. 12.1. Controtul unor usi automate aflate la intrarea intr-o incinta Funcfionarea dorita a sistemului este: initial usile sunt inchise. Daca © persoand apare in dreptul usilor, usile vor incepe si se deschida. Miscarea de deschidere este mentinutd ataté timp cat, pentru fiecare us’ in parte, senzorul respectiv de deshidere este inactiv. Daca ambele usi sunt deschise si nu mai exist nicio persoana in dreptul usii timp de 2 secunde, usile incep simultan sa se inchida. inchiderea usilor se opreste cand ambele ajung la capat de curs sau apare o persoana in dreptul usilor, in timp ce acestea se inchideau. Ele isi vor opri inchiderea gi vor incepe sa se deschida. 101 Problema 12 ~Controlul unor usi automate aflate la intrarea intr-o incinta Elemente de executie: = Cele 4 motoare ale usilor. Elemente de mdasura: = 4 limitatoare de curs; = un senzor de prezentd persoana. 2, Solutia de automatizare Pentru controlul acestei aplicafii s-a ales un automat programabil de tip PEP Smart pentru care s-a dezvoltat un proiect ISaGRAF ce cuprinde un program principal in sectiunea Sequential vezi fig. 12.2. aes Sseuieancaes File Make Project Tools Debug Opti QO Hee OO FX OH AOR Sequertiat SS rogram principal ‘Sequential: main (Sequential Function Chert} Fig.12.2.Structura proiectului ISaGRAF Dictionarul de variabile globale. " Variabile de intrare booleene: © prezenta: senzorul de prezenta persoand © I1_deschis: limitatorul de us 1 deschis&; ° mitatorul de usa 1 inchisd; ° imitatorul de us& 2 deschi © 12_deschis: limitatorul de us4 2 inchisa. * Variabile de iegire booleene: © mi_deschidere: comanda de deschidere usa 1; © ml_inchidere: comanda de inchidere usa 1; © m2_deschidere: comanda de deschidere usa 2; © m2_inchidere: comanda de inchidere usa 2. AUTOMATE PROGRAMABILE - INDRUMAR DE LABORATOR Program main: Reectare coronal "ACTION rt _desehidere:=FALSE: ‘mcinchidere'=FALSE: ‘nd doschidor «FALSE: ‘2Linehiere =PALSE: END_ACTION: Back spare paso RUE, Elapa fa sepa ascrar aaa Deschiore deans 2 [Hecron 13 |_facrion Int deschidee:=TRUE: ima Gescgoe-=TRUE: eno action wo ACiION, os =a 1a_deschise TRUE: ‘pre comand severe Spree rian SSE + faciion toa | facTION ey tnt esehdere:=FALSE, tmz descidere-=FALSE ENO_ACTION: eno ACTION , [Rematepesonnn es EFALSE 5 oe Soca Tar a par parson] 5 eaepeoane sis Pose? ae preaentoeTRUE: Gat? i 2 Thetis se cere area +16 | facTion 216 | Yacnon mtinchidoe-sTRUE; ona inchideres1); Daca senzor si piesa de tip 1 ‘Ketualizare valori TT (s1® TRUE) AND (v1=1); Oprire banda gi avans piston [tt ign LL ACTION Py: - ACTION (P): index:=index-1; ae mt:=FALSE; Pt_avans:=TRUE; v2:=0; END_ACTION; END_ACTION; Daca limita de avans atinsa Nu mai e piesa in pozitia 1 11_avans=TRUE; 102 S=FALSE; Retragere piston 3 ACTION (P): 4 P1_avans:=FALSI i P1_retragere:=1 END_ACTION; Pand la limita de retragere 3 M1_retragere=TRUE; Pomire banda, actualizare valori 4 ACTION (P): i P1_retragere:=FALSE; END_ACTION; ‘Nu mai e piesd in pozifia 1 4 —++— s1=FALSE; AUTOMATE PROGRAMABILE ~ iNDRUMAR DE LABORATOR Program piston2: Oprese migcarea pistonului 2 ACTION (P): ‘Daca apare piesa de tip 1 S2=TRUE; ‘Oprire banda si avans piston ACTION (P): mt:=FALSE; P2_avans: END_ACTION; Daca limita de avans atin: 12_avans=TRUE; Retragere piston ACTION (P}: Pana la limita de retragere I2_retragere=TRUE; Pornire banda, actualizare valori ACTION (P): P2_retragere:=FALSE; mt:=TRUE; nr_piese:=nr_piese-1; END_ACTION; Nu mai e piesa in pozi S2=FALSE; 109 Problema 13 ~ Sortarea a dowd tipuri de piese pe o banda transportoare Program Identi Pornire banda [| action (P): i mt END_ACTION; Daca senzor prezenta activ REDGE (prezenta.vprez); Oprire banda 2 +4 action (Py: mt=FALSE; END_ACTION; ————— Dacd numaral de paseo 101 2 eS wr _ploser2; [Betta sat roare | 3 ACTION (P): 102 LJ eroare:=TRUE; END_ACTION; Ratept secunda 2 [02 Testoze> wis: Pana go dezactiveazA reset 3__TFeDGE (reset, vres); Tdentificarea tipulul 103 4 ACTION (P): , 1 viet, i_plose:=n END_ACTION; 103 1 Observatii: © Pentru a determina corect tipul piesei care ajunge in dreptul pistonului 1, au fost folosite 3 variabile: index, v1 si v2; AUTOMATE PROGRAMABILE ~ iNDRUMAR DE LABORATOR 110 in programul Jdentif se observa folosirea functiei FEDGE, necesara determinirii momentul cAnd variabila reset trece din TRUE in FALSE (corespunde ridic&rii butonul dupa ce a fost apasat). Propuneri: e SA se modifice programul pentru situatia in care numarul de piese permis pe banda este oarecare n; Problema 14: Procesul de coacere al biscuitilor 1. Descrierea instalatiei si a procesului Elementele care compun instalatia sunt: = un cuptor de ardere continan: © un traductor de temperatura ce transmite un semnal analogic in gama 4+20 mA, corespunziitor unei game de temperaturi intre 0+500°C; © un injector de gaz, comandat digital (porneste si opreste flacara); = banda transportoare © un senzor prezenta biscuit, activ atat timp cat prin dreptul sau trece un biscuit; = un senzor de apreciere calitate biscuit, activ doar dac& biscuitul este rebut; © un macaz care directioneaza biscuitii, comandat simplu digital (inactiv — traseu biscuit bun, activ — traseu biscuit rebut); ee Senzor Cuptor dnspectic Biscuit1 |Cinjector> so Biscuit2 C=] Banda transportoare MT Fig. 14.1. Cuptor de ardere Initial banda transportoare trebuie pomita. Pe ea vin biscuifi. in interiorul cuptorului temperatura trebuie mentinuta intre doud valori Tmin (230°C) si Tmax (290°C). In momentul in care un biscuit trece de senzorul de prezenta, trebuie testata calitatea lui. Daca este rebut, macazul va trece pe traseul rebut pentru un timp de 5 secunde. Dac& vin mai mult de 5 biscuiti rebut consecutiv, prima dat& se shifteazi domeniul de temperatura cu 10% (se creste Tmin si AUTOMATE PROGRAMABILE ~ INDRUMAR DE LABORATOR, 112 Tmax cu 10%) daca se mai intampla si dupa aceasta, banda transportoare va fi oprita si tot procesul se va relua doar la apiisarea unui buton de reporire. La fel si daca temperatura scade sub ‘Tmin_abs (180°C). 2, Solutia de automatizare Pentru controlul acestei aplicatii s-a ales un automat programabil de tip PEP Smart pentru care s-a dezvoltat un proiect ISaGRAF ce cuprinde un program parinte si doud programe fiu (biscuit si temper) in sectiunea Sequential, plus un program ciclic in sectiunea Begin ce realizeazi conversia din unitati CAN in unitafi de masura ingineresti. ee Fie Make Project Tools Debug Options Help & Hee OBO Me Oe ADS Begin: comin! | ‘Sequential: & main | & biscuit | > temper “Begin. Convers. (Function Block Diagram) Fig. 14.2. Structura proiectului ISaGRAF Dictionarul de variabile globale: * Variabile de intrare booleene: © buton: atasata butonului de repornire ciclu © sO: atasata senzorului de prezenti © inspectie: atasata senzorului de inspectie biscuiti "= Variabile de iesire booleene: o MT: comanda motorului benzii transportoare © Injector: comanda injectorului © Maeaz: comanda macazului * Variabile de intrare analogice o Tempeit: atasata traductorului de temperatura. 113 Problema 14 - Procesul de coacere al biscuitilor Variabile interne booleene o Eroare: True daca de 2 ori consecutiv vin 5 bisuciti rebut o Vint: necesara functiei FEDGE Variabile interne analogice o Temp: valoarea curenta a temperaturii, in grade © Tmin, Tmax: valorile limita ale gamei de temperatura © const Tmin_abs = 180 AUTOMATE PROGRAMABILE — INDRUMAR DE LABORATOR Program maii Porneste programe copit ACTION (P): GSTART(biscuit); GSTART (temper) END_ACTION; Temperatura mai mica decat Tmin_abs temp Tmax; Oprire injector Daca scade sub temperatura minima + temp < T_min; 1 114 ws Problema 14 - Procesul de coacere al biscuitilor Program biscuit: Pomive band ‘ACTION (P) MT:=TRUE; END_ACTION; 4 | Senzorut de prozenta FEDGE (50, vnt); 2 Este biscuit bun Este rebut 2 5 102 inspectie=FALSE; inspoctio= TRUE; Rasetare numar biscul ‘Aeiivare macaz 3 [Haction 403 |] action macazie TRUE: END_ACTION; Bglept S seconde a nse O° _Festoai> iss; + Bezactivare macaz 1 108 | action (P) i_bise:=nr_biso*4; END_AGTION; 208 PaO nv_bisc=5 AND eroare=FALSE; 15° py bise=5 AND eroare=TRUE; Shiftare domentu 205 305 4 ‘ 1 ey 305 f= 1 Program convers: temp fempcit *100/ 4096 nr_bise <5 AUTOMATE PROGRAMABILE — iNDRUMAR DE LABORATOR 116 Observatii. S-a ales solutia unui proiect cu un program parinie si doi fii deoarece programele trebuie oprite in cazul aparitiei unui anumit eveniment (aici temperatura < temeperatura minima absolut), indiferent ce etape sunt active la momentul respectiv. O alta solutie, mult mai neeleganta si care ar complica diagramele foarte mult, ar fi testarea evenimentului in toate etapele unui diagrame SFC. Testarea faptului c& o serie de 5 biscuiti rebut apare de 2 ori la rind s- facut prin gestionarea unei singure variabile booleene, eroare. S-a folosit funtia FEDGE (Falling Edge Detection) deoarece trebuie testata tranzitia starii senzorului sO din activa in inactiva. BIBLIOGRAFIE 1. Th. Borangiu, R. Dobrescu [1986], "Automate programabile”, Editura Academiei RSR, Bucuresti 2. K. Arzen [1994], Grafcet for Intelligent Supervisory Control Applications, Automatica IFAC, vol. 30, no.10 3. Grayhill Inc. [1995], “Microdac User Manual” Documentation 4, ALLEN-BRADLEY [1992], “Advanced Programming Sofware”, Catalog no.1747-PA2E Reference Manual. 5. PEP Modular Computers [1998], “SMART PLC series”, Technical Documentation 6. C.J International [1998], “Isagraf 3.3 User Manual”, Technical Documentation 7, N. Ivanescu, S. Brotac [1999], “Distributed Systems Used in Industrial Environments”, Proc. of the 12th Int. Conf. CSCS °99, Bucuresti 8. J.P. Romera, J.A. Lorite, S. Montero [1994], “Automatizacion. Problemas resueltos con automatos programables”,Editorial Paraninfo S.A., Madrid 9. Th. Borangiu, N. Ivanescu, S. Brotac [2002], “Automate programabile. Teorie si probleme rezolvate”, Editura Printech, Bucuresti 10.1. Margineanu [2005], “Automate programabile”, Editura albastra, Cluj Napoca -Rexroth Bosch Group [2006], “PLC programming with Rexroth Indralogic. Operating and programming guide” 12.N. Ivanescu, Th. Borangiu [2007], “Implementation of Sequential Function Charts with Microcontrollers”, Proceedings of the 15th Mediterranean Conference on Control and Automation - MED 2007 13. “Handbook of Automation”, Editura Springer Verlag, 2009 , Technical 1

Vous aimerez peut-être aussi