Documente Academic
Documente Profesional
Documente Cultură
PREFA
Lucrarea Automate Programabile ndrumar de laborator reprezint un important suport practic de concepere i proiectare a soluiilor de conducere a proceselor industriale automate programabile bazate pe medii de programare evoluate de tipul ISaGRAF sau Ladder Diagram. Lucrarea este dedicat n primul rnd studenilor facultii de Automatic i Calculatoare din Universitatea Politehnica Bucureti, care audiaz cursul i frecventeaz laboratorul de Automate i Microprogramare. De asemenea, este util studenilor din facultile cu profil de automatic aparinnd universitilor tehnice din ar. Cartea este structurat n dou pri, prima parte prezentnd mediul de programare logic ISaGRAF, utilizat de majoritatea productorilor de automate programabile, n special din perspectiva modului de lucru cu interfaa utilizator, util n rezolvarea lucrrilor de laborator la materia Automate i microprogramare: De asemenea, sunt prezentate 14 aplicaii corespunztoare celor 14 laboratoare efectuate de studenii facultii de Automatic i Calculatoare din Universitatea Politehnica Bucureti. Aplicaiile au fost alese astfel nct gradul de dificultate al lor s fie diferit, de la cele mai simple, rezolvabile printr-o unic diagram logic, la procese industriale complexe, n care dezvoltarea unui proiect de control amplu necesit exerciiu i o foarte bun gndire logic. La unele aplicaii au fost descrise dou variante de programare, pe lng soluia n ISaGRAF fiind prezentat i rezolvarea n limbajul Ladder Diagram, n scopul nelegerii algoritmului de conversie a unei diagrame logice secveniale ntr-un program ciclic de tip diagram n trepte. Observaiile i propunerile existente la sfritul fiecarei aplicaii ajut viitorul specialist n automatic s neleag pe deplin soluia prezentat, avnd un punct de pornire solid pentru a concepe modificri ale programelor conform noilor situaii ce pot aprea n cadrul unui proces. Metodele i soluiile prezentate la toate aplicaiile sunt absolut originale i au fost realizate de ctre autori att n cadrul laboratorului de Automate i microprogramare ct i datorit numeroaselor contracte de cercetare la care autorii au participat de-a lungul anilor, n cadrul centrului de cercetare de excelen CIMR din cadrul Facultii de Automatic i Calculatoare din Universitatea POLITEHNICA Bucureti. Autorii
cuprins
Cuprins:
1. Mediul de programare ISaGRAF 9
Aplicaii
1. Problema 1 Controlul unei macarale 2. Problema 2 Comanda micrii oscilatorii a unui mobil 3. Problema 3 Detecia i expulzarea automat a sticlelor fr dop 4. Problema 4 Staie automat de splat autovehicule 5. Problema 5 Elevator clasificator de pachete 6. Problema 6 Dozare i malaxare automat 7. Problema 7 Umplerea i astuparea automat a sticlelor 8. Problema 8 Controlul unui lift 9. Problema 9 Detectarea bagajelor care conin metale 10. Problema 10 Sortarea a patru tipuri de piese 11. Problema 11 Umplerea automat a unor containere 12. Problema 12 Controlul unor ui automate 13. Problema 13 Sortarea a dou tipuri de piese 14. Problema 14 Procesul de coacere al biscuiilor 25 32 37 42 49 57 68 74 79 84 93 100 104 111
Bibliografie
117
cap1
Programul ISaGRAF a fost dezvoltat de firma CJ International i reprezint unul dintre cele mai structurate i prietenoase medii de programare pentru automatele programabile. Este compatibil cu standardul IEC 1131-3. Un proiect n ISaGRAF este mprit n mai multe uniti numite programe. Un program este o unitate logic care descrie operaiile ntre variabilele i constantele unui proces. Acestea sunt legate mpreun ntr-o structur arborescent, avnd icoane diferite. Programele pot fi editate ntrunul din limbajele grafice sau literale: Flow Chart (FC) Ladder Diagram (LD) Structured Text (ST) Instruction List (IL) Function Block Diagram (FBD) Sequential Function Chart (SFC)
Un program poate fi ciclic sau secvenial. Un program ciclic se execut n ntregime la fiecare ciclu, iar execuia unui program secvenial urmeaz regulile dinamice ale limbajului SFC sau FC. Un program nu poate conine instruciuni din mai multe limbaje, cu excepia limbajelor LD i FBD, care pot fi combinate n cadrul aceluiai program. Programele sunt considerate entitai de nivel unu. Se pot scrie i subprograme, care sunt entitti de nivel doi. Entitile de nivelul unu sunt lansate de sistemul de operare, n timp ce subprogramele, numite i programe fiu, sunt activate de programe, care se mai numesc i programe printe. Programele apar ntr-una din urmtoarele trei seciuni: BEGIN: se execut la nceputul ciclului; SEQUENTIAL: se execut dup cele din seciunea BEGIN i urmeaz legile dinamice ale limbajului SFC sau FC; END: se execut la sfritul ciclului.
cap1
10
Programele din seciunea BEGIN se recomand a fi utilizate pentru realizarea unor operaii preliminare asupra variabilelor de intrare (ex.: filtrarea, citirea unei valori de la un traductor). Programele din seciunea SEQUENTIAL descriu operaii secveniale unde variabila timp sincronizeaz operaiile primare. Trebuie s existe cel puin un program secvenial, restul doar dac este nevoie. Programele din seciunea END se recomand a fi utilizate pentru realizarea unor operaii de protecie nainte de a trimite o variabil ctre un dispozitiv de ieire. Programele seciunilor BEGIN i END nu pot fi descrise n SFC sau FC. Fiecare program din seciunea SEQUENTIAL poate controla alte programe SFC, programele fiu. Un program fiu este un program paralel, care poate fi pornit, oprit, suspendat sau repornit de ctre printele su. Important este ca ambele programe, printe i fiu, s fie scrise n SFC sau FC. Atunci cnd un program printe pornete un program fiu transmite un jeton fiecrui pas iniial al programului fiu. Aceast comand este descris de declaraia GSTART. n cazul opririi unui program fiu de ctre printele su, sunt eliminate toate jetoanele existente. Aceast comand este descris de declaraia GKILL. Atunci cnd un program printe nghea un program fiu, terge toate jetoanele din el, dar memoreaz poziia acestora pentru cazul n care programul fiu va fi repornit. Programul suspendat poate fi repornit folosind declaraia GRST. i n cazul programelor FC ale seciunii secveniale pot exista subprograme FC fiu, dar un printe FC este blocat n timpul execuiei unui subprogram FC. Astfel nu sunt posibile operaii simultane n programul FC printe i programul fiu FC. Obiectele din ISaGRAF sunt utilizate n orice program scris n FC, LD, ST, IL, FBD sau SFC. Aceste obiecte sunt: tipuri de baz, expresii constante, variabile i comentarii. Principalele tipuri de variabile disponibile pentru programe sunt: BOOLEAN: valori binare de tipul true/ false; ANALOG: valori ntregi (integer) sau reale (real); TIMER: valori de tip timer; MESSAGE: iruri de caractere.
cap1
11
Constantele de tip ntreg sunt reprezentate pe 32 de bii, avnd valorile cuprinse ntre -232 i 232. Pot fi exprimate n baza zecimal, n baza hexazecimal (valoarea trebuie precedat de 16#), n baz octal (valoarea trebuie precedat de 8#) i n binar (valoarea trebuie precedat de 2#). Constantele analogice reale pot fi scrise fie printr-o reprezentare zecimal, fie printr-o reprezentare tiinific. Punctul zecimal este folosit pentru a diferenia o constant real de una de tip ntreg. Reprezentarea tiinific folosete literele E i F pentru a separa mantisa de exponent. Partea exponenial a unei expresii tiinifice reale trebuie s fie o valoare ntreag cu semn ntre -37 i +37. Constantele de tip timer sunt valori cuprinse ntre 0 i 23h59m59s999ms. Cea mai mic unitate permis este milisecunda. Valoarea trebuie precedat de caracterele T# sau time#. O constant de tip mesaj reprezint un ir de caractere cuprins ntre caracterele apostrof. Lungimea unei variabile nu poate depi 255 caractere. Caracterul apostrof nu poate fi utilizat ntr-un string. Pentru utilizarea lui ct i pentru caracterele netipribile se utilizeaz secvene care ncep cu caracterul $. Variabilele din ISaGRAF pot fi de dou categorii : locale sau globale. Numele variabilelor trebuie s inceap cu o liter i nu trebuie s depeasc 16 caractere. Variabilele locale pot fi folosite doar de un program. Variabilele globale pot fi folosite de orice program al aplicaiei curente. Variabilele pot avea unul dintre urmtoarele atribute: INTERNAL: variabile actualizate de program; INPUT: variabil conectat la un dispozitiv de intrare; OUTPUT: variabil conectat la un dispozitiv de ieire. Comentariile pot fi introduse liber n limbajele literal acceptate i sunt precedate de caracterele (* i succedate de caracterele *).
cap1
12
Aciunile posibile n aceast etap sunt: deschiderea/rularea unui proiect existent, modificarea lui sau crearea unui nou proiect. Pentru crearea unui nou proiect se selecteaz File New; se va deschide fereastra Create New Project (vezi fig.2). Se introduce numele dorit al proiectului. Numele nu va depai 8 caractere i ncepe cu o liter. Editarea descrierii proiectului se face prin alegerea opiunii Project Project descriptor, dar este indicat ca aceast operaie s se fac la sfrit pentru a cuprinde informaii ct mai complete despre proiect.
Pentru editarea programelor din cadrul unui proiect, se va da dublu click n fereastra Project Management pe proiectul dorit. Apare fereastra Programs (vezi fig.3).
cap1
13
Pentru introducerea unui nou program n proiectul existent, se alege din fereastra Programs opiunea File New. Se deschide fereastra New Program (vezi fig.4). Trebuie ales numele programului, limbajul n care se editeaz i locul su n ierarhia programelor (Begin, Sequential, End, Function, Function block sau Child of).
Dup completarea celor patru cmpuri, se apas OK, se nchide fereastra iar programul apare n ierarhia de programe. Editarea programului se face prin dublu click pe numele acestuia. nainte de editare, este indicat s se scrie variabilele programului. Editarea variabilelor se face pornind de la fereastra Programs, alegnd opiunea File Dictionary. Se editeaz variabilele pentru fiecare categorie. n fig.5. sunt prezentate variabilele booleene. Trebuie ales numele variabilei i atributul.
cap1
14
n fig.6. este prezentat fereastra unei variabile booleene. n mod identic, arat i fereastra pentru variabilele analogice, doar c modul de afiare poate fi ales n mod diferit pentru cele ntregi i reale.
Dup editarea variabilelor se trece la scrierea programelor. Lansarea unui editor se face prin dublu click pe program. Se deschide editorul ales la crearea programului SFC (Sequential Function Chart), FBD (Function Block Diagram), LD (Ladder Diagram), ST (Structured Text), IL (Instruction List) sau FC (Flow Chart).
cap1
15
Componentele existente, n ordinea apariiilor lor n fig.7 sunt: etapa iniial, etap, tranziie, salt la etap, nceputul divergenei, sfritul divergenei, nceputul paralelismului, sfritul paralelismului, macroetap, prima etap a unei macroetape, ultima etap a unei macroetape. Un program SFC este n mod uzual mprit n dou nivele diferite: nivelul 1: prezint graful automatizrii i numele etapelor i tranziiilor nivelul 2: se scriu aciunile i condiiile din tranziii n limbajele ST sau IL. Pentru a plasa un element, programatorul trebuie s selecteze acel element din bara de componente grafice, apoi va selecta cu mouse-ul zona n care va dori s fie plasat elementul. Fig.8. prezint nivelul 1 al programului editat.
cap1
16
Pentru a edita nivelul 2, se d dublu-click pe etap sau pe tranziie. Se va deschide n partea dreapt a ecranului fereastra numit pentru o etap Step GSnnn, unde nnn este numrul etapei, respectiv pentru o tranziie Transition GTnnn, unde nnn este numrul tranziiei.
n editarea nivelului 2, mai ales la tranziii se pot folosi dou variabile ataate fiecrei etape. Ele sunt actualizate n funcie de starea etapelor din graf. Aceste variabile sunt : GSnnn.x variabil boolean care reprezint starea etapei, n timpul execuiei programului (1 dac etapa este activ i 0 n cazul n care etapa este inactiv) GSnnn.t variabil de tip timer; reprezint timpul scurs de la activarea etapei. Limbajul default pentru nivelul 2 de editare a programului SFC este ST. Urmtoarele tipuri de aciuni pot fi asociate unei etape: aciuni booleene : atribuie unei variabile interne sau de ieire o valoare n funcie de starea etapei creia i s-a ataat aciunea. Sintaxa:
<variabila_booleana>;
atribuie valoarea negata atasata etapei variabilei booleene aciuni memorate: aciuni de setare sau resetare. Sintaxa:
<variabila_booleana>(S);
reseteaz variabila boolean la activarea etapei aciuni de tip puls: se execut o singur dat la activarea etapei, n primul ciclu automat. Sintaxa:
ACTION(P): (* Instructiuni ST *) END_ACTION ;
10
cap1
17
aciuni de tip non-puls: se execut ct timp etapa este activ; dac este o variabil boolean va avea forma unor impulsuri scurte, care se repet la fiecare ciclu. Sintaxa:
ACTION(N): (* Instructiuni ST *) END_ACTION ;
aciuni SFC: pornesc sau opresc un program fiu, n funcie de starea etapei.
ACTION(P): GSTART(<Program_fiu>); END_ACTION ; ACTION(P): GKILL(<Program_fiu>); END_ACTION ;
11
cap1
18
1.4. Editarea n Ladder Diagram Editorul Ladder Diagram este un editor grafic. El permite programatorului s reprezinte grafic ecuaii booleene prin combinarea contactelor (variabile de intrare) cu bobine (variabile de ieire). Modul de realizare a unui program este asemntor cu cel din FBD i nu sunt dificulti n realizarea lui.
Fig.11. Editorul LD
12
cap1
19
13
cap1
20
Alegerea, plasarea modulelor i conectarea variabilelor la canalele acestora se face din fereasta Programs, prin alegerea opiunii Project I/O connection. La alegerea acestei opiuni apare fereastra din fig.12, n care n partea stang este rack-ul automatului programabil cu sloturile pentru 255 module. Un slot poate fi utilizat pentru introducerea unui modul. Numrul slotului este poziia n care se afl fa de CPU. Numerotoarea ncepe de la zero. Adresa logic a unui modul ncepe de la unu i trebuie setat ntr-o fereastr separat. Prin realizarea unui dublu click asupra unui slot selectat al rack-ului se deschide fereastra Select board/equipment (fig.13), unde n caseta din stng se pot alege modulele automatului din biblioteca de module.
Dup alegerea modulului corespunztor se apas butonul OK, iar n fereastra I/O Connection va apare modulul respectiv avnd canalele cu care productorul l-a echipat. Urmeaz s se conecteze variabilele programului la aceste canale. Realiznd un dublu click pe un canal va apare fereastra Connect I/O channel #1 (fig.14), n care n caseta din stnga apar toate variabilele care pot fi conectate la canal.
14
cap1
21
Dac se apas butonul Connect, variabila respectiv va fi conectat la canalul selectat i de trece la urmtorul canal. Astfel se pot conecta toate variabilele i apoi se nchide fereastra apsnd butonul Close. n fereastra I/O Connection operaiile fcute sunt reflectate prin plasarea variabilelor n dreptul canalelor alese. n aceast fereastr trebuie aleas i adresa logic a modulului.
15
cap1
22
16
cap1
23
Aceste ferestre pot fi deschise dup pornirea simulatorului pentru a putea urmri evoluia programului. De exemplu n fereastra editorului SFC se poate urmri poziia jetonului n graf. Utilizarea simulatorului este uoar i intuitiv. Intrrile booleene sunt simulate prin butoane, care pot fi apsate, iar ieirile booleene sunt simulate prin leduri care devin de culoare roie dac ieirea respectiv este true. O intrare analogic este simulat printr-un cmp de text, n care se introduce valoarea intrrii n zecimal sau hexazecimal. Dac se execut un click pe acel cmp se poate introduce o valoare nou. O ieire analogic este un cmp numeric de ieire n care valoarea variabilei este afiat. La fel sunt tratate de ctre simulator i variabilele de tip Messages. Se poate seta simulatorul s afieze, lng variabila simulat i numele acesteia.
17
cap1
24
18
probl1
Elemente de execuie: dou motoare cu dou sensuri de rotaie, unul pentru micarea orizontal i unul pentru cea vertical; Elemente de msur: patru limitatoare de curs; un buton de pornire.
19
probl1
26
2. Soluia de automatizare Implementarea n mediul ISaGRAF Prima soluie pentru controlul acestei aplicaii o reprezint un automat programabil de tip PEP Smart pentru care s-a dezvoltat un proiect ISaGRAF ce cuprinde un program principal secvenial.
Dicionarul de variabile globale: Variabile de intrare booleene: o pornire: buton de pornit ciclul; o l1: limitator jos; o l2: limitator sus; o l3: limitator stnga; o l4: limitator dreapta. Variabile de ieire booleene: o M1S: acionare motor 1 stnga; o M1D: acionare motor 1 dreapta; o M2S: acionare motor 2 sus; o M2J: acionare motor 2 jos.
20
probl1
27
Program main:
21
probl1
28
Implementarea n limbajul Ladder Diagram Pentru controlul acestei aplicaii 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 intrrilor i ieirilor fizice cu bii din regitrii de intrare/ieire este prezentat n tabelul 1.1:
Tabelul 1.1.
Asocierea etapelor cu bii din fiierul de bit B3 i alegerea fiierului de timer este pezentat n tabelul 1.2:
Tabelul 1.2.
Etapa 1 2 3 4 5 6 7 8
Adresa bit B3/1 B3/2 B3/3 B3/4 B3/5 B3/6 B3/7 B3/8
Temporizare Temporizare 1
22
probl1
29
23
probl1
30
24
probl1
31
Comentarii: n diagrama SFC se observ realizarea temporizrii folosind variabila sistem GS5.t, care conine timpul scurs de la activarea etapei asociate. Aceast metod de msurare a timpul poate fi folosit doar n situatia cnd o etap trebuie sa fie activ pentru o anumit perioad de timp, n alte situaii fiind necesar folosirea unor variabile globale de tip timer i gestionarea lor de ctre funciile TSTART i TSTOP. n diagrama Ladder se observ c ramurile de tip 1 i 2 asociate unei etape au fost scrise una dup alta, pentru aceast aplicaie programul funcionnd corect, exist ns situaii cnd ordinea de scriere a ramurilor trebuie s fie diferit (de multe ori se scriu primele ramurile de tip 1 pentru fiecare etap, apoi ramurile de tip 2).
25
probl2
Element de execuie: un motor cu dou sensuri de rotaie; Elemente de msur: dou limitatoare de curs; 4 butoane. 2. Soluia de automatizare Pentru controlul acestei aplicaii se alege un automat programabil de tip PEP Smart PLC pentru care se dezvolt un proiect ISaGRAF. Proiectul
26
probl2
33
conine dou programe, un program principal i un program fiu, numit Osc. Programul Osc este pornit i oprit de ctre programul principal i este responsabil cu realizarea micrii oscilatorii i sesizarea apsrii butoanelor, conform specificaiilor aplicaiei.
Dicionarul de variabile globale: Variabile de intrare digitale: o M: buton de pornire micare oscilatorie; o P: buton de oprire motor; o E: buton de retragere n poziia de origine; o R: buton de repornire; o L0: limitator stnga; o L1: limitator dreapta. Variabile de ieire digitale: o MS: comand motor stnga; o MD: comand motor dreapta. Variabile interne de tip boolean: o oprit: are valoarea TRUE cnd micarea oscilatorie este oprit; o v_redgeM: necesar funciei REDGE; o v_redgeR: necesar funciei REDGE.
27
probl2
34
Program main:
28
probl2
35
Program osc:
29
probl2
36
Comentarii : Funia REDGE este folosit pentru detectarea impulsurilor produse prin apsarea butoanelor; Comunicaia ntre programe este realizat prin intermediul variabilei oprit; Programul principal oprete execuia programului fiu Osc atunci cnd variabila oprit are valoare TRUE sau micarea este ntrerupt de apsarea butonului E; Programul putea fi realizat i fr un program fiu, dar diagrama sar fi complicat foarte mult, din cauza necesitii de a testa n fiecare etap starea butonului E. Propunere: S se modifice programul n condiiile n care la apsarea butonului de oprire, ciclul se ncheie totdeauna cnd mobilul ajunge prima dat n partea dreapt.
30
probl3
31
probl3
38
Procesul este iniiat prin apsarea butonului M, care determin pornirea benzii transportoare 1. Atunci cnd se detecteaz o sticl fr dop, este oprit banda 1 i este pornit banda transportoare 2 (dac era oprit). n momentul n care sticla fr dop se gasete n zona de expulzare, este activat mecanismul de expulzare (un piston ce poate avansa i se poate retrage ntre dou limite). Banda 1 va fi repornit n momentul n care sticla fr dop nu se mai gsete n zona de expulzare (practic semnalul transmis de detectorul fotoelectric are valoarea logic fals). Banda 2 va fi oprit dup 5 secunde de la nceperea expulzrii ultimei sticle. Elemente de execuie: dou motoare care acioneaz dou benzi transportoare; un piston folosit la expulzarea sticlelor fr dop. Elemente de msur: un detector inductiv pentru dopuri; un detector fotoelectric pentru sticle. 2. Soluia de automatizare Pentru controlul acestei aplicaii se alege un automat programabil de tip PEP Smart pentru care se dezvolt un proiect ISaGRAF, cu un singur program principal dar cu dou seciuni programate: seciunea secvenial i seciunea de sfrit ca n fig. 3.2.
32
probl3
39
Dicionarul de variabile globale: Variabile de intrare booleene: o M: buton de pornire; o I: detector inductiv; o F: detector fotoelectric; o Pc: buton de reponire a ciclului; o l_av: limita de avans; o l_ret: limita de retragere. Variabile de ieire booleene: o banda_1: comand pornire/ oprire band 1; o banda_2: comand pornire/ oprire band 2; o alarm: comand alarma; o p_av: comand avansul pistonului; o p_ret: comand retragerea pistonului. Variabile interne de tip ntreg: o nr_sticle: contorizeaz numrul de sticle fr 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;
33
probl3
40
Programul Main:
34
probl3
41
Observaii: seciunea de end (care conine programe ciclice) este necesar deoarece timpul trebuie verificat la fiecare ciclu automat astfel nct banda 2 s poat fi oprit n orice moment dac perioada ei de activare a expirat; contorizarea timpului este fcut cu ajutorul funciilor TSTART i TSTOP; dac o sticl trebuie s fie expulzat n timp ce o alta se gsete pe conveiorul 2, timer-ul este resetat astfel nct contorizarea timpului repornete de la 0 pentru a asigura i evacuarea acestei ultime sticle; dac numrul de sticle evacuate consecutiv este 3, atunci vor ncepe dou secvene de aciuni ce trebuie s aib loc simultan i anume: o retragerea pistonului o activarea dezactivarea alarmei. Abia dup ncheierea ambelor secvene procesul poate reporni, situaie reprezentat printr-un paralelism n cadrul diagramei. Propuneri: S se construiasc o diagram Ladder pentru un automat de tip Allen Bradley, care s controleze acest proces. S se modifice proiectul ISaGRAF dac aplicaia se schimb astfel: o Dac pe band nu mai vin sticle timp de 2 minute, banda 1 va fi oprit, se activeaz alarma, repornirea procesului avnd loc la apsarea butonului Pc.
35
probl4
Iniial banda este oprit, bariera ridicat i semaforul verde, neexistnd maini pe band. n momentul n care o main apare n dreptul postului 1, banda va trebui s porneasc pentru a transporta mainile prin
36
probl4
43
cele 4 posturi de lucru. Banda va fi oprit cnd nu mai exist maini pe band. Bariera va fi cobort iar semaforul va deveni rou atta timp ct postul 1 este ocupat. Ct timp o main trece printr-un post, echipamentul postului respectiv trebuie s fie activ. Elemente de execuie: motorul benzii transportoare; motorul barierei cu dou sensuri de rotaie; un semafor; patru posturi de lucru. Elemente de msur: cinci celule fotoelectrice; dou limitatoare de curs ale barierei. 2. Soluia de automatizare Pentru controlul acestei aplicaii se alege un automat programabil de tip PEP Smart pentru care se dezvolt un proiect ISaGRAF, proiect ce const din ase programe editate n SFC care ruleaz n paralel. Structura proiectului ISaGRAF este prezentat n fig.4.2.
Dicionarul de variabile: Variabile de intrare booleene: o limita_sus: limitator de curs sus pentru barier; o limita_jos: limitator de curs jos pentru barier; o foto_1: fotocelula postului 1;
37
probl4
44
Variabile de ieire booleene o banda: comand pornire/oprire band; o bariera_sus: comand ridicare barier; o bariera_jos: comand coborre barier; o semafor: comand activare/ dezactivare semafor; o post_1: comand activare/ dezactivare post presplare; o post_2: comand activare/ dezactivare post splare; o post_3: comand activare/ dezactivare post cltire; o post_4: comand activare/ dezactivare post uscare. Variabile interne integer o nr_masini: numrul de maini existente n staia de splare.
38
probl4
45
Program bariera:
39
probl4
46
Program start:
Program Post1:
40
probl4
47
Program Post2:
Program Post3:
Program Post4:
41
probl4
48
Observaii: Toate programele dezvoltate sunt independente i ruleaz n paralel, fapt ce uureaz foarte mult nelegerea i realizarea programului. Determinarea faptului c mai exist sau nu maini pe band s-a fcut cu ajutorul unei variabile de tip integer, nr_maini, o alt abordare de genul testarea tuturor senzorilor de prezen fiind incorect, putnd exista maini pe band dar ntre posturi, deci toi senzorii de prezen putnd fi inactivi la un moment dat, dei exist maini pe band. Propunere: S se modifice proiectul corespunztor situaiei n care pentru un timp Tasteptare nu mai urc nicio main pe band, situaie n care bariera va fi cobort iar reluarea procesului se poate face numai prin apsarea unui buton, introdus suplimentar n sistem.
42
probl5
43
probl5
50
Procesul pornete cu transportul unui pachet ctre cntar. Cnd pachetul ajunge pe cntar, banda 0 va fi oprit. Aici pachetul este cntrit fiind astfel identificat n funcie de greutatea citit. n cazul n care cilindrul C este n repaus i nu are pachet deasupra, pachetul de pe cntar este transportat de banda 1 pn la planul elevator. Cnd banda 1 este oprit i nu exist pachet pe cntar, banda 0 poate reporni. Cilindrul C ridic pachetele. Apoi pachetele sunt transportate diferit: pachetele mici sunt plasate pe banda 2 de ctre cilindrul A, iar pachetele mari sunt aezate pe banda 3 de ctre cilindrul B. Cilindrul elevator C se retrage doar cnd cilindrii A, respectiv B au atins poziia de avans. Benzile 2 i 3 se opresc cnd cilindrul A, respectiv B ajunge la limita de retragere. Elemente de execuie: trei cilindri cu dublu efect (A,B,C); patru benzi transportoare. Elemente de msur: ase limitatoare de curs; dou detectoare de prezen. 2. Soluia de automatizare Pentru controlul acestei aplicaii se alege un automat programabil de tip PEP Smart pentru care se dezvolt un proiect ISaGRAF, ce cuprinde cinci programe secveniale ce ruleaz n paralel i un program n seciunea begin, program ce se execut la nceputul fiecrui ciclu automat. Modulul de intrare analogic al automatului accept un semnal ntre 0 i 20 mA, conversia analog-numeric fcndu-se pe 12 bii. Structura proiectului ISaGRAF este prezentat n fig.5.2.
44
probl5
51
Dicionarul de variabile globale: Variabile de intrare booleene: o foto_0: fotocelula 0; o foto_1: fotocelula 1; o A0: limit retragere cilindru A; o A1: limit avans cilindru A; o B0: limit retragere cilindru B; o B1: limit avans cilindru B; o C0: limit coborre cilindru C; o C1: limit ridicare cilindru C. Variabile de ieire booleene: o banda_0: activare/ dezactivare banda 0; o banda_1: activare/ dezactivare banda 1; o banda_2: activare/ dezactivare banda 2; o banda_3: activare/ dezactivare banda 3; o A_retras: retragere cilindru A; o A_avans: avans cilindru A; o B_retras: retragere cilindru B; o B_avans: avans cilindru B; o C_retras: retragere cilindru C; o C_ridicare: ridicare cilindru C. Variabile interne booleene: o tip_det: variabila de sincronizare ntre cntrire i banda transportoare 1; Variabile globale analogice: o cntar: variabil intern, reprezint valoarea real a greutii de pe cntar (integer); o traductor_cntar: variabil de intrare, valoarea primit de la traductorul cntarului (integer, ntre 0 - 4096); o pachet_actual: variabil intern, n care se memoreaz tipul pachetului actual ce urmeaz a fi transportat; o pachet_viitor: variabil intern, n care se memoreaz tipul pachetului de pe cntar (urmtorul ce va fi transportat); o lim_inf: constant, greutatea minim a pachetului mic; o lim_sup_mic: greutatea maxim a pachetului mic; o mic: constant cu valoarea 1; o mare: constant cu valoarea 2.
45
probl5
52
Program banda_0:
46
probl5
53
Program banda_1:
47
probl5
54
Program Cilin_A
Program Cilin_B
48
probl5
55
Program Cilin_C:
49
probl5
56
Programul Convers: Programul convers realizeaz conversia din uniti CAN (Convertor Analog Numeric) n valori exprimate n uniti de msur inginereti. Intrarea analogic a modulului de intrare lucreaz pe 12 bii i msoar un curent de 0-20 mA, dar traductorul de la cntar genereaz un curent de 4-20 mA. n aceast situaie trebuie fcut o translaie de scal. Se observ c la valoarea minim a domeniului de msur traductorul genereaz 4mA, corespunztoare valorii 819 citit de automat, valoare pentru care automatul trebuie s indice valoarea minim a mrimii msurate. Astfel formula de conversie este: val_ing = (val_cit - 819) * (Ds - Di) / (4095 - 819) unde: val_ing valoarea n uniti inginereti val_cit valoarea citit n uniti CAN Di domeniul inferior de msur Ds domeniul superior de msur n cazul nostru: Ds = 100, Di = 0, astfel nct instruciunea n programul convers se scrie:
cantar := INT((( REAL(traductor_cantar ) - 819)*100.0) / (3276);
Observaii: s-au folosit 2 variabile pentru memorarea tipului pachetelor deoarece la un moment dat n instalaie pot exista 2 pachete neevacuate, unul pe cntar sau pe banda 1 i altul n curs de evacuare; comunicaia ntre programul banda_0 care determin tipul pachetului i programul banda_1 se face prin intermediul variabile tip_det, cu valoarea TRUE din momentul n care tipul unui pachet a fost determinat pn cnd pachetul a ajuns deasupra planului elevator. Propunere: S se modifice programul n cazul n care nu exist un senzor de prezen pachet n dreptul cntarului, aceasta determinndu-se prin creterea greutii de pe cntar peste o valoare numit marja. Identificarea tipului pachetului se va face dup un timp numit Tstabilizare de la detectarea prezenei pachetului deasupra cntarului.
50
probl6
51
probl6
58
Utilitatea acestei instalaii este de a amesteca anumite cantiti din cele dou substane cu cte dou brichete solubile pentru a obine un produs finit. O arj pornete la acionarea butonului de alimentare, moment n care se pornete cntrirea i alimentarea produselor n urmtorul mod: cntrirea produsului A prin deschiderea valvei A, pn la referina A; cntrirea produsului B prin deschiderea valvei B, pn la referina B; apoi, golirea cntarului n malaxor prin deschiderea valvei C pn la referina zero; simultan cu precedentele operaii are loc alimentarea malaxorului cu dou brichete solubile. Dup ce aceste secvene s-au ncheiat, malaxorul se va roti n jurul axei sale timp de 2 minute, apoi, fr a opri rotaia, va pivota ctre dreapta pentru a evacua coninutul. Apoi va pivota napoi ctre poziia sa de repaus. Dup ce a atins aceast poziie un nou ciclu de producie poate porni la apsaresa butonului de alimentare. Elemente de execuie: trei electrovalve (valva_A, valva_B, valva_C); motorul benzii transportoare cu un singur sens de rotaie; motorul de rotaie al malaxorului; motorul de pivotare al malaxorului, cu dou sensuri de rotaie. Elemente de msur: trei senzori de greutate pentru referinele A, B i zero; dou limitatoare de curs; un detector de trecere. 2. Soluia de automatizare Implementarea n mediul ISaGRAF Pentru controlul acestei aplicaii se alege un automat programabil de tip PEP Smart pentru care se dezvolt un proiect ISaGRAF, ce cuprinde un program principal. Structura proiectului ISaGRAF este prezentat n fig.6.2.
52
probl6
59
Dicionarul de variabile globale: Variabile de intrare booleene: o start: buton de pornire; o d: detector de trecere brichete solubile; o A: detectorul greutii produsului A; o B: detectorul greutii produselor A + B; o Z: detectorul golirii cntarului; o lim_stanga: limitator stnga malaxor; o lim_dreapta: limitator dreapta malaxor. Variabile de ieire booleene: o valva_ A: comand deschiderea/ nchiderea valvei A; o valva_ B: comand deschiderea/ nchiderea valvei B; o valva_ C: comand deschiderea/ nchiderea valvei C; o Mt: comand motorul benzii transportoare; o rotire: comand rotaia malaxorului; o piv_dreapta:comand pivotarea ctre dreapta a malaxorului; o piv_stanga: comand pivotarea ctre stnga a malaxorului. Variabile globale de tip timer: o timer: temporizare folosit la rotaia malaxorului.
53
probl6
60
Programul Main:
54
probl6
61
55
probl6
62
Implementarea n limbajul Ladder Diagram Pentru controlul acestei aplicaii 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 intrrilor i ieirilor fizice cu bii din regitrii de intrare/ieire este prezentat n tabelul 6.1:
Tabelul 1.1.
Asocierea etapelor cu bii din fiierul de bit B3 i alegerea fiierului de timer este pezentat n tabelul 6.2:
Tabelul 1.2.
Adresa bit B3/1 B3/2 B3/3 B3/4 B3/5 B3/6 B3/7 B3/8 B3/9 B3/10 B3/11 B3/12 B3/13
Temporizare Temporizare 1
56
probl6
63
57
probl6
64
58
probl6
65
59
probl6
66
60
probl6
67
Observaii: n diagrama SFC se pot observa cele dou secvene paralele, aducerea lichidelor i aducerea brichetelor n malaxor. Ieirea din paralelism se face atunci cnd ambele secvene s-au ncheiat. Pentru exemplificare, temporizarea a fost realizat cu instruciunea TSTART dei n acest caz putea fi folosit variabila global GS006.t. Nu s-a mai folosit funcia TSTOP pentru c n etapa 7 variabila timer este resetat, deci incrementarea ei va rencepe de la 0 din acel moment, n alte etape sau tranziii variabila nefiind folosit. Propunere: S se modifice programul pentru cazul n care aducerea brichetelor ncepe odat cu golirea cntarului iar numrul de brichete aduse este oarecare (egal cu n).
61
probl7
Componentele instalaiei sunt: o band transportoare pe care circul sticle, acionat de un motor cu un singur sens de rotaie; un rezervor cu lichid folosit la umplerea sticlelor; un cilindru cu dublu efect (A n fig. 7.1) cu ajutorul cruia sunt umplute sticlele; un cilindru cu dublu efect (B n fig. 7.1) care aduce dopurile pentru astuparea sticlelor; un cilindru cu dublu efect (C n fig. 7.1) care preia dopurile din stiva de dopuri; un mecanism rotativ care efectueaz efectiv astuparea sticlelor, a crui micare este limitat de ctre un limitator;
62
probl7
69
doi senzori detectori de prezena unei sticle n poziiile de umplere, respectiv de astupare; un detector al poziiei de preluare dop de ctre cilindrul B. Iniial, pentru simplificarea aplicaiei, se presupune c exist deja o sticl umplut ntre cele dou poziii principale de pe band (umplere i astupare). La iniializarea aplicaiei se pornete motorul benzii transportoare. Acesta se va opri cnd exist sticle att n poziia de umplere ct i n cea de astupare. Se presupune c sticlele vin pe band la distane egale astfel nct umplerea i astuparea s aib loc simultan. Aciunea de umplere are loc prin avansul i retragerea cilindrului A ntre limitatoarele F1 i F2. Retragerea cilindrului A trebuie s aib loc abia cnd cilindrul B a pus un dop deasupra unei sticle. Secvena de astupare este urmtoarea: Cilindrul C aduce un dop din stiva de dopuri, cilindrul B avanseaz pn n dreptul detectorului F7, cilindrul C se retrage apoi cilindrul B avanseaz pn la limita sa de avans, mpingnd dopul deasupra sticlei. Din acel moment ncep dou secvene de aciuni care au loc n paralel. Prima const n nurubarea dopului de ctre mecanismul rotativ, urmat de retragerea cilindului B, cea de-a doua fiind retragerea cilindrului A. Cnd ambele secvene s-au ncheiat, banda transportoare poate fi repornit, ciclul relundu-se cnd un nou lot de sticle apar n cele dou poziii semnificative de pe band. Elemente de execuie: un cilindru A ce regleaz dozatorul volumetric; un cilindru de avans B cu trei poziii; un cilindru C ce reprezint mecanismul de transfer al capacelor; motorul benzii transportoare; un mecanism de nurubare dopuri. Elemente de msur: ase limitatoare de curs; un detector de poziie; o fotocelul pentru detecie sticl de umplut; o fotocelul pentru detecie sticl plin. 2. Soluia de automatizare Pentru controlul acestei aplicaii 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.
63
probl7
70
Dicionarul de variabile globale: Variabile de intrare booleene: o F1: limitator sus cilindru A o F2: limitator jos cilindru A o F3: limitator sus cilindru B o F4: limitator jos cilindru B o F5: limitator stnga cilindru C o F6: limitator dreapta cilindru C o F7: Detector poziie de preluat dop o senzor_rotire: limitator rotire dispozitiv de nurubare o st_de_umplut: senzor detecie sticl de umplut o st_plin: senzor detecie sticl plin Variabile de ieire booleene: o banda: comand pornire/ oprire band o insurubare: comanda de nurubare a dopului o A_avans: comand avans cilindru A o A_retragere: comand retragere cilindru A o B_avans: comand avans cilindru B o B_retragere: comand retragere cilindru B o C_avans : comand avans cilindru C o C_retragere: comand retragere cilindru C
64
probl7
71
Programul main:
65
probl7
72
66
probl7
73
Observaii: n program au fost folosite 2 paralelisme, fiecare avnd cte 2 secvene ce se execut simultan. A doua secven paralel implementeaz condiia c o dat cu umplerea unei sticle, alta s fie astupat. Propunere: S se modifice programul n situaia n care sticlele vin aleator pe banda transportoare, iar umplerea i astuparea nu mai au loc simultan. S se modifice programul inndu-se cont de situaia n care nu apar sticle simultan n cele 2 poziii semnificative. n acest caz s fie declanat o alarm care s fie oprit i ciclul reluat abia cnd nu mai exist sticle n niciuna din cele 2 poziii de pe band (sticla este evacuat manual).
67
probl8
68
probl8
75
Dicionarul de variabile globale: Variabile de intrare booleene: o bint1 ... bint10 o bext1 ... bext 10 o usa_cabina o etaj1 ... etaj 10 o prez_persoana Variabile de ieire booleene: o Msus, Mjos Variabile interne de tip ntreg: o but_int o but_ext o etaj_curent o etaj_dorit
69
probl8
76
Program det_etj
but_int:=0; but_ext:=0; etaj_curent:=0; IF bint1 = TRUE THEN but_int = 1; END_IF; IF bint2 = TRUE THEN but_int = 2; 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 = 7; END_IF; IF bint8 = TRUE THEN but_int = 8; END_IF; IF bint9 = TRUE THEN but_int = 9; END_IF; IF bint10 = TRUE THEN but_int = 10; END_IF; IF bext1 = 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 bext5 = 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 etaj1 = TRUE THEN etaj_curent = 1; END_IF; IF etaj2 = TRUE THEN etaj_curent = 2; END_IF; IF etaj3 = TRUE THEN etaj_curent = 3; END_IF; IF etaj4 = TRUE THEN etaj_curent = 4; END_IF; IF etaj5 = TRUE THEN etaj_curent = 5; END_IF; IF etaj6 = TRUE THEN etaj_curent = 6; END_IF; IF etaj7 = TRUE THEN etaj_curent = 7; END_IF; IF etaj8 = TRUE THEN etaj_curent = 8;
70
probl8
Program Principal
Observaii: S-a ales soluia folosirii unui program ciclic n seciunea Begin deoarece starea butoanelor i 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 i de a testa starea butoanelor i a senzorilor ntr-un program SFC ar duce la crearea unei diagrame foarte mari i stufoase, n mod practic nici nu ar fi posibil la un numr mare de butoane i senzori ntruct mediile de programare logic permit un numr limitat de condiii de tranziie ataate unei etape.
71
probl8
78
Propunere: n cazul n care ar exista un buton de urgen n interiorul liftului, s se modifice programul astfel nct liftul s se opreasc la apsarea acestuia, miscarea fiind reluat la apsarea oricrui buton de comand micare.
72
probl9
Aplicaia are ca scop detectarea automat si evacuarea manual a bagajelor care conin metal. Iniial, bariera este ridicat. Pornirea benzii transportoare se face prin apsarea unui buton B. Atunci cnd un bagaj apare n dreptul senzorului s, bariera trebuie s coboare. Bariera se va ridica atunci cnd bagajul dispare din dreptul senzorului s. Dac n timp ce se afl n dreptul senzorului s, se activeaz senzorul d, banda va fi oprit i se ateapt ca bagajul s fie preluat de pe band pentru a reporni banda i a ridica bariera. Dac timp de 2 minute nu apare nici un bagaj n dreptul senzorului s, banda va fi oprit iar repornirea se va face de la buton.
73
probl9
80
Elemente de execuie: motorul benzii transportoare motorul barierei Elemente de msur: dou limitatoare de curs un senzor de prezen un detector de metal 2. Soluia de automatizare Pentru controlul acestei aplicaii s-a ales un automat programabil de tip PEP Smart pentru care s-a dezvoltat un proiect ISaGRAF ce cuprinde dou programe conform figurii 9.2.
Dicionarul de variabile globale: Variabile de intrare booleene: o s: senzor de prezen bagaje o d: senzor detecie metal o lsus: limitator de curs sus o ljos: limitator de curs jos o B: buton de pornire Variabile de ieire booleene: o MT: comand banda transportoare o Msus: comand bariera sus o Mjos: comand bariera jos
74
probl9
81
Variabil intern de tip boolean: o var1: necesar funciei REDGE Program bariera:
75
probl9
82
Program banda:
76
probl9
83
Observaii: Se observ ca testarea impulsului de la butonul B este facut folosind funcia REDGE, deoarece trebuie depistat tranziia strii butonului i nu starea lui la un moment dat S-au folosit 2 programe ce ruleaz n paralel ntruct bariera i banda transportoare funcioneaz independent i nu pot fi gestionate in aceeai diagram Propuneri: S se construiasc diagrama Ladder care simuleaz acest proiect ISaGraf
77
probl10
Scopul aplicaiei este de a sorta 4 tipuri de piese care vin pe o band transportoare. Iniial pe band nu se afl nici o pies iar banda este oprit. Aplicaia pornete prin apsarea butonului. Cnd o pies ajunge n dreptul senzorului de prezen pentru detecie, tipul ei este determinat de ctre cititorul de bare i transmis prin 2 bii de date. Atunci cnd o pies ajunge n dreptul clapetei corespunztoare tipului su (ex. pies de tip 1 n dreptul clapetei 1), banda transportoare trebuie oprit iar piesa evacuat prin deschiderea i nchiderea clapetei. Comanda clapetei se face printr-o singur comand digital, care trebuie meninut o perioad de 5 secunde pentru a asigura deschiderea respectiv nchiderea clapetei. Elemente de execuie: motorul benzii transportoare cele 4 clapete Elemente de msur: un dispozitiv de identificare pies
78
probl10
85
2. Soluia de automatizare Pentru controlul acestei aplicaii se alege un automat programabil de tip PEP Smart pentru care se dezvolt un proiect ISaGRAF, ce cuprinde 5 programe n seciunea sequential, aa cum este prezentat i n figura 10.2.
Dicionarul de variabile globale: Variabile de intrare booleene: o s_global: ataat senzorului de prezen din poziia de identificare; o d1: prima linie de la dispozitivul de identificare; o d2: a doua linie de la dispozitivul de identificare; o s1, s2, s3, s4: ataate senzorilor de prezen o buton: ataat butonului Variabile de ieire booleene: o MT: comand banda transportoare; o C1, C2, C3, C4: comand deschiderea/ nchiderea clapetelor; Variabile interne booleene: o vint, vint1, vint2, vint3, vint4: folosite de funciile REDGE
79
probl10
86
Variabile timer: o const: tclapeta = t#2s; Variabile interne de tip integer: o variabile: rez, tip1, tip2, tip3, index1, index2, index3, index_cit1, index_cit2, index_cit3, tip_citit1, tip_citit2, tip_citit3 o constante: sir1=1; sir2=2; sir3=3;
80
probl10
87
Program identif:
81
probl10
88
Program Clapeta1:
82
probl10
89
Program clapeta2:
83
probl10
90
Program clapeta3:
84
probl10
91
Program clapeta4:
Observaii: Soluia adoptat pentru a putea determina exact ce tip de pies ajunge n dreptul senzorilor a fost de a crea 3 iruri de numere ntregi, pentru primele 3 clapete (pentru a patra nu mai este necesar deoarece aici nu pot ajunge dect piese de tipul 4). Fiecare ir este modificat cnd o pies ajunge n dreptul senzorului de prezen anterior. Exist cte o variabil index asociat fiecarui ir care indic prime poziie liber din ir. irurile sunt de tip FIFO, tipul piesei care se gsete in dreptul unui senzor este citit ntotdeauna de pe
85
probl10
92
prima poziie a irului asociat. n cazul n care tipul piesei nu corespunde locaiei, valoarea este scoas din irul respectiv (prin shiftarea irului) i introdus n prima poziie liber din irul asociat clapetei urmtoare. Propuneri: S se modifice programul pentru situaia n care nu mai exist senzori de prezen n dreptul clapetelor, cunoscndu-se ns viteza benzii transportoare i distanele ntre poziia de identificare i cele 4 clapete.
86
probl11
n cadrul sistemului exist o band transportoare 1 pe care vin, unul dup altul, cele trei containere A, B, C. Primul dintre ele care ajunge la platform este containerul C, apoi B i ultimul cel de tip A. Cilindrul E este responsabil cu evacuarea recipienilor cu ajutorul celei de-a doua benzi transportoare. Iniierea procesului se face prin pornirea benzii transportoare 1 pe care sunt aduse containerele. n momentul n care un container de tip C se gsete pe platform, banda 1 va fi oprit iar cilindrul D va avansa o poziie.
87
probl11
94
Cnd containerul C activeaz detectorul 2, banda 1 va fi din nou activat iar cilindrul D va fi oprit; banda 1 se va opri din nou cnd containerul B ajunge la platform i n consecin cilindrul D va avansa din nou pn cnd containerul C activeaz detectorul 3 iar containerul B activeaz detectorul 2. n acest moment banda 1 este repornit pn cnd containerul A atinge platforma, moment n care banda este oprit. n acel moment cele trei valve vor fi deschise simultan, fiecare fiind meninut deschis un anumit timp, astfel nct 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. Cnd toate aceste temporizri au expirat, valvele vor fi nchise, cilindrul E va avansa pentru a evacua containerul A pn activeaz detectorul 4. n acest moment cilindrul E se retrage. Dup ce a ajuns n poziia de retragere, cilindrul D va fi retras pn activeaz detectoarele 1 i 2. Apoi containerele B i C vor fi umplute cu lichid de tip A, respectiv B, dup care urmeaz evacuarea containerului B. n final containerul C va fi umplut cu lichid de tip A i va fi evacuat. Dup evacuare cilindrul D va fi retras i un nou ciclu poate ncepe. Elemente de execuie: 3 electrovalve; 2 cilindri cu dublu efect; 2 motoare ale benzilor transportoare. Elemente de msur: 4 detectoare de poziie. 2. Soluia de automatizare Pentru controlul acestei aplicaii s-a ales un automat programabil de tip PEP Smart pentru care s-a dezvoltat un proiect ISaGRAF ce cuprinde un program principal. Dicionarul de variabile globale: Variabile de intrare booleene: o poz_A: detectorul de poziie A; o poz_B: detectorul de poziie B; o poz_C: detectorul de poziie C; o lim_4: limitatorul de avans al cilindrului E. Variabile de ieire booleene: o banda_1: activare / dezactivare banda 1;
88
probl11
95
o banda_2: activare / dezactivare banda 2; o D_avans: avans cilindru D; o D_retragere: retragere cilindru D; o E_avans: avans cilindru E; o E_retragere: retragere cilindru E; o valva_A: comanda de deschidere/nchidere valva A; o valva_B: comanda de deschidere/nchidere valva B o valva_C: comanda de deschidere/nchidere valva C; Constante de tip Timer: o TA_container_1: perioada de timp pentru umplerea containerului 1 cu lichid de tip A o TB_container_2: perioada de timp pentru umplerea containerului 2 cu lichid de tip B o TC_container_3: perioada de timp pentru umplerea containerului 3 cu lichid de tip C o TA_container_2: perioada de timp pentru umplerea containerului 2 cu lichid de tip A o TB_container_3: perioada de timp pentru umplerea containerului 3 cu lichid de tip B o TA_container_3: perioada de timp pentru umplerea containerului 3 cu lichid de tip A
89
probl11
96
Programul main:
90
probl11
97
91
probl11
98
92
probl11
99
Observaii: n cadrul secvenelor de deschidere a valvelor, temporizrile au fost implementate prin testarea permanent a parametrului GSxxx.t asociat unei etape. Acest parametru indic timpul de cnd o etap este activ. O alt variant era folosirea unor variabile de tip Timer. Umplerea containerelor este facut n paralel cu ajutorul paralelismului diagramelor SFC.
93
probl12
Funcionarea dorit a sistemului este: iniial uile sunt nchise. Dac o persoan apare n dreptul uilor, uile vor ncepe s se deschid. Micarea de deschidere este meninut att timp ct, pentru fiecare u n parte, senzorul respectiv de deshidere este inactiv. Dac ambele ui sunt deschise i nu mai exist nicio persoan n dreptul uii timp de 2 secunde, uile ncep simultan s se nchid. nchiderea uilor se oprete cnd ambele ajung la capt de curs sau apare o persoan n dreptul uilor, n timp ce acestea se nchideau. Ele i vor opri nchiderea i vor ncepe s se deschid.
94
probl12
101
Elemente de execuie: Cele 4 motoare ale uilor. Elemente de msur: 4 limitatoare de curs; un senzor de prezen persoan. 2. Soluia de automatizare Pentru controlul acestei aplicaii s-a ales un automat programabil de tip PEP Smart pentru care s-a dezvoltat un proiect ISaGRAF ce cuprinde un program principal n seciunea Sequential vezi fig. 12.2.
Dicionarul de variabile globale: Variabile de intrare booleene: o prezenta: senzorul de prezen persoan; o l1_deschis: limitatorul de u 1 deschis; o l1_inchis: limitatorul de u 1 nchis; o l2_inchis: limitatorul de u 2 deschis; o l2_deschis: limitatorul de u 2 nchis. Variabile de ieire booleene: o m1_deschidere: comanda de deschidere u 1; o m1_inchidere: comanda de nchidere u 1; o m2_deschidere: comanda de deschidere u 2; o m2_inchidere: comanda de nchidere u 2.
95
probl12
102
Program main:
96
probl12
103
Observaii: nchiderea i deschiderea uilor trebuie facut neaprat intr-un paralelism deoarece aciunile ncep n acelai moment, se desfoar independent, dar procesul poate continua numai dup ce ambele secvene s-au ncheiat. Etapa 2, aparent inutil deoarece nu are aciuni asociate, a fost introdus pentru a putea intra n paralelismul de deschidere a uilor atunci cnd condiia 5 devine adevarat.
97
probl13
Pe o band transportoare vin piese de dou tipuri. Iniial pe band nu se afl nicio pies iar pistoanele sunt retrase. Banda transportoare trebuie pornit o dat cu aplicaia. Dac o pies ajunge n dreptul senzorului de prezen s0, banda trebuie oprit iar dup o secund de ateptare pentru stabilizarea valorii semnalului senzorului de detecie tip pies, piesa poate fi identificat. Semnalul senzorului de identificare este valid numai cnd o pies se gsete n dreptul lui s0. Dup identificarea piesei banda va reporni. Se presupune c doar dou piese pot exista n poriunea de band de sortare, astfel nct dac o a treia pies apare n dreptul lui s0 n timp ce piesele anterioare sunt nc neevacuate, banda se va opri, va fi activat o
98
probl13
105
alarm iar aplicaia se va relua prin apsarea i ridicarea unui buton special de reset. O pies va fi evacuat dac ajunge n dreptul senzorului corespunztor tipului su. Evacuarea unei piese ncepe prin oprirea benzii, apoi pistonul respectiv avanseaz i se retrage. Dup ncheierea retragerii pistonului, banda va fi repornit.
Elemente de execuie: un motor cu un singur sens de rotaie ce acioneaz banda transportoare; dou pistoane care pot avansa i se pot retrage; un dispozitiv de semnalizare n caz de eroare. Senzori i elemente de masur: 3 senzori de prezen pies; 4 limitatoare de curs pentru pistoane; un dispozitiv de identificare tip pies; un buton de reset.
2. Soluia de automatizare Pentru controlul acestei aplicaii s-a ales un automat programabil de tip PEP Smart pentru care s-a dezvoltat un proiect ISaGRAF ce cuprinde trei programe n seciunea Sequential conform figurii 13.2.
Dicionarul de variabile globale: Variabile de intrare booleene: o tip: semnal de la dispozitivul de identificare;
99
probl13
106
o o o o o o o o
prezenta: semnalul de la senzorul de prezen din postul de identificare pies; s1: semnalul senzorului din poziia 1; s2: semnalul senzorului din poziia 2; l1_avans: semnalul limitatorului de avans al pistonului 1; l2_avans: semnalul limitatorului de avans al pistonului 2; l1_retragere: semnalul limitatorului de retragere al pistonului 1; l2_retragere: semnalul limitatorului de retragere al pistonului 2; reset: semnalul de la butonul de reset.
Variabile de ieire booleene: o mt: comanda de pornire/ oprire a motorului benzii transportoare; o P1_avans: comand avans piston 1; o P1_retragere: comand retragere piston 1; o P2_avans: comand avans piston 2; o P2_retragere: comand retragere piston 2; o eroare: comanda semnalului de eroare. Variabile interne ntregi: o v1: folosit pentru memorarea tipului primei piese ce urmeaz a fi evacuat de ctre pistonul 1; o v2: folosit pentru memorarea tipului celei de-a doua piese ce urmeaz a fi evacuat de ctre pistonul 1; o index: conine numrul de piese aflate pe band nainte de poziia 1; o nr_piese: conine numrul de piese aflate pe band n drum ctre poziiile de evacuare.
Variabile interne booleene: o vprez: necesar funciei REDGE; o vres: necesar funciei FEDGE;
100
probl13
107
Program piston1
101
probl13
108
Program piston2:
102
probl13
109
Program Identif:
Observaii: Pentru a determina corect tipul piesei care ajunge n dreptul pistonului 1, au fost folosite 3 variabile: index, v1 i v2;
103
probl13
110
n programul Identif se observ folosirea funciei FEDGE, necesar determinrii momentul cnd variabila reset trece din TRUE n FALSE (corespunde ridicrii butonul dup ce a fost apsat).
Propuneri: S se modifice programul pentru situaia n care numrul de piese permis pe band este oarecare n;
104
probl14
Iniial banda transportoare trebuie pornit. Pe ea vin biscuii. n interiorul cuptorului temperatura trebuie meninut ntre dou valori Tmin (230C) i Tmax (290C). n momentul n care un biscuit trece de senzorul de prezen, trebuie testat calitatea lui. Dac este rebut, macazul va trece pe traseul rebut pentru un timp de 5 secunde. Dac vin mai mult de 5 biscuii rebut consecutiv, prima dat se shifteaz domeniul de temperatur cu 10% (se crete Tmin i
105
probl14
112
Tmax cu 10%) dac se mai ntmpl i dup aceasta, banda transportoare va fi oprit i tot procesul se va relua doar la apsarea unui buton de repornire. La fel i dac temperatura scade sub Tmin_abs (180C). 2. Soluia de automatizare Pentru controlul acestei aplicaii s-a ales un automat programabil de tip PEP Smart pentru care s-a dezvoltat un proiect ISaGRAF ce cuprinde un program printe i dou programe fiu (biscuit i temper) n seciunea Sequential, plus un program ciclic n seciunea Begin ce realizeaz conversia din uniti CAN n uniti de msur inginereti.
Dicionarul de variabile globale: Variabile de intrare booleene: o buton: atasata butonului de repornire ciclu o s0: atasata senzorului de prezen o inspectie: atasata senzorului de inspecie biscuii Variabile de ieire booleene: o MT: comanda motorului benzii transportoare o Injector: comanda injectorului o Macaz: comanda macazului Variabile de intrare analogice o Tempcit: ataat traductorului de temperatur
106
probl14
113
Variabile interne booleene o Eroare: True dac de 2 ori consecutiv vin 5 bisucii rebut o Vint: necesar funciei FEDGE Variabile interne analogice o Temp: valoarea curent a temperaturii, in grade o Tmin, Tmax: valorile limit ale gamei de temperatur o const Tmin_abs = 180
107
probl14
114
Program main:
Program temper:
108
probl14
115
Program biscuit:
109
probl14
116
Observaii: S-a ales soluia unui proiect cu un program printe i doi fii deoarece programele trebuie oprite n cazul apariiei unui anumit eveniment (aici temperatura < temeperatura minim absolut), indiferent ce etape sunt active la momentul respectiv. O alt soluie, mult mai neelegant i care ar complica diagramele foarte mult, ar fi testarea evenimentului n toate etapele unui diagrame SFC. Testarea faptului c o serie de 5 biscuii rebut apare de 2 ori la rind s- fcut prin gestionarea unei singure variabile booleene, eroare. S-a folosit funia FEDGE (Falling Edge Detection) deoarece trebuie testat tranziia strii senzorului s0 din activ n inactiv.
110