Sunteți pe pagina 1din 27

MICROCONTROLERE

Laboratorul nr. 12
- Programmable Logic Controller (PLC)
I Scopul
Scopul acestui laborator este acela de a prezenta: arhitectura, structura i utilizarea PLC-urilor; standardul internaional IEC 61131; Diagrama Funcional Secvenial SFC; Kit-ul de dezvoltate EASY250-EVA i modul de funcionare a acestuia cu un mediu complet de programare pentru PLC-uri, CoDeSys; i de a programa PLC-urile.

II Introducere
Un controler logic programabil, denumit PLC (Programmable Logic Controller) sau controler programabil, sau automat programabil AP, este un dispozitiv de tipul unui computer utilizat pentru a controla procesele din mediul industrial. Astfel de procese, pe care PLC-urile le pot controla, sunt foarte variate cum ar fi: sisteme de transport (transportor), maina din industria alimentar, liniile de asamblat autovehicule. Conform definiiei NEMA (National Electrical Manufacturers Associations), un PLC este soluia bazat pe un microprocesor care utilizeaz modulele de intrare conectate la senzori pentru a citi starea sistemului controlat, schimbarea task-ului de analiz a strii sistemului i clarificarea aciunilor consecutive i n sfrit, utilizeaz modulele de ieire pentru a dirija conductorii i dispozitivele de acionare. De aceea, task-ul software a PLC-ului const din calcularea valorilor de ieire corecte oferind o imagine a valorilor de intrare. Arhitectura PLC-ului poate fi schematizat n . Unitatea central este n general, bazat pe un singur procesor dar pentru aplicaiile complexe este disponibil multiprocesorul. Majoritatea PLC-urilor au o magistral unic, comun cu UCP-ul, memoria i interfeele. Evoluia controler-ului este n direcia soluiilor multimagistral (multibus) unde, n particular, canalele de I/O au propria lor magistral serial sau paralel. Unitatea de depanarea i programare a PLC-ului este, de obicei, un dispozitiv extern, ntinzndu-se de la o tastatur dedicat cu un display mic pn la un Computer Personal (PC). Modulele de intrare/ieire (I/O) convertesc semnalele provenite de la senzori ntr-un format digital i genereaz semnale electrice proporionale cu valorile digitale de la variabilele de ieire stocate n memoria PLC-ului. Semnalele nlocuite ntre sistem i control pot fi discrete sau analogice. Sunt cteva criterii de selecie a PLC-ului corespunztor pentru o aplicaie dat. Tipic, clasa PLC-ului este definit de ctre numrul maxim de semnale de I/O care sunt capabile s comande i s conduc. Un alt criteriu, care este foarte

-1-

MICROCONTROLERE important, este viteza de calcul a PLC-ului, capabilitatea de luare a deciziei corecte ntr-un interval de timp precizat.
unitatea de programare UCP memoria

Magistrala

modulele de I/O

dispozitive de actionare

senzori

Figura STYLEREF 1 \s II- SEQ Figura \* ARABIC \s 1 1 Arhitectura PLC-ului

Evoluia tehnologic n electronic i n tiina calculatoarelor tinde spre arhitecturile hardware/software mult mai sofisticate, capabile s garanteze un timp de reacie mult mai scurt i o siguran intrinsec mult mai bun. ntr-un sistem de control industrial tradiional, toate dispozitivele de control sunt cablate direct fiecare cu fiecare n conformitate cu modul cum trebuie s lucreze sistemul controlat. Oricum, ntr-un sistem cu PLC, acesta nlocuiete cablarea dintre dispozitive. Astfel, nainte de a fi cablat direct fiecare cu fiecare, tot echipamentul este cablat la PLC. Atunci, programul de control din interiorul PLC-ului prevede cablarea conectrii dintre dispozitive. Un program de control este un program de calculator stocat n memoria PLC-ului care instruiete PLC-ul despre ce urmeaz ca s se ntmple ntr-un sistem. Utilizarea PLC-ulul pentru a oferi cablarea legturilor dintre dispozitivele sistem este denumit softwiring (cablare software). DE CE se utilizeaz PLC-urile? Avantajul softwiring-ului (cablrii software) provenit de la controlerele programabile este nemaipomenit. De fapt, este unul dintre cele mai importante lucruri oferit de PLC-uri. Cablarea software permite ca modificrile ntr-un sistem de control s fie uoare i ieftine. Dac se dorete ca un dispozitiv dintr-un sistem cu PLC-uri s funcioneze diferit sau s aib controlul asupra unui element de proces diferit, tot ceea ce trebuie fcut este s se schimbe programul de control. ntr-un sistem tradiional, aceast modificare implic o schimbare a cablrii fizice dintre dispozitive, un cost i o pierdere de timp. PLC-urile ofer i alte avantaje pe lng sistemele de control tradiionale, cum ar fi: Siguran mai mare; Necesitatea unui spaiu mic pentru implementare; Posibilitatea implementrii de operaii matematice; Costuri reduse; Abiliti de a rezista la un mediu aspru;

-2-

MICROCONTROLERE Dezvoltare.

III Structura unui PLC


De fapt, un PLC este alctuit din dou elemente: Unitatea central de prelucrare; Sistemul de intrare/ieire. Unitatea central de prelucrare (UCP) este partea controlerului programabil care extrage, decodeaz, stocheaz i proceseaz informaia. De asemenea, execut programul de control stocat n memoria PLC-ului. n esen, UCP-ul este creierul controlerului programabil. UCP-ul are trei pri: Procesorul; Sistemul de memorare; Alimentarea. Procesorul este partea din UCP care codeaz, decodeaz i calculeaz date. Sistemul de memorare este partea din UCP care stocheaz att programe ct i date de control pentru echipamentul conectat la PLC. Memoria PLC-ului este mprit n trei spaii: spaiul de sistem, spaiul de program i spaiul de date. Spaiul de sistem conine programe instalate de ctre fabricant (sistemul de operare, modulele de diagnosticare i simulare). Spaiul de program conine codul de control scris de ctre programator. Spaiul de date stocheaz toate variabilele utilizate de ctre programul de aplicaie. Alimentarea este acea parte care furnizeaz PLC-ului tensiunea i curentul de care are nevoie pentru a funciona.

Figura III-1. Structura Unitii Centrale de Prelucrare

Sistemul de intrare/ieire (I/O) este partea din PLC la care sunt conectate toate dispozitivele din cmp. Dac UCP-ul poate fi gndit ca un creier al PLC-ului, atunci sistemul de I/O poate fi gndit ca fiind minile i picioarele PLC-ului. Sistemul de I/O const din 2 pri principale: -3-

MICROCONTROLERE Cadrul de montare (rack-ul); Modulele de intrare/ieire (I/O). Cadrul este o cutie cu sloturi nuntru care este conectat la UCP. Modulele de intrare/ieire sunt dispozitive cu terminale de conectare la care sunt legate dispozitivele din cmp. mpreun, cadrul i modulele de I/O alctuiesc interfaa dintre dispozitvele din cmp i PLC. Cnd se seteaz corect, fiecare dintre modulele de I/O este att cablat la dispozitivele din cmp corespunztoare ct i instalat ntr-un slot din cadru. Aceast lucru creeaz o conectare fizic ntre echipamentul din cmp i PLC. La unele PLC-uri mai mici, cadrul i modulele de I/O sunt ncapsulate ntr-o singur unitate.

Figura III-2. Cutia cu dispozitivele I/O

Toate dispozitivele de cmp conectate la PLC pot fi clasificate n una din dou categorii: de intrare; de ieire. Intrrile sunt dispozitivele care transmit un semnal/dat la un PLC. Exemple tipice de intrri sunt butoanele de acionare, ntreruptoarele i dispozitivele de msurare. Ieirile sunt dispozitivele care ateapt un semnal/dat de la PLC pentru a efectua funciile de control. Semnalizrile luminoase, hupele, motoarele i valvele sunt toate bune exemple de dispozitive de ieire. Exemplu Un dispozitiv de fixare a becului deasupra (o dulie cu bec deasupra) i un ntreruptor de perete corespunztor acestuia sunt foarte bune exemple pentru orice intrare sau ieire. ntreruptorul de perete este o intrare el furnizeaz un semnal

-4-

MICROCONTROLERE ctre bec pentru a fi aprins. Becul de deasupra este o ieire el ateapt pn cnd ntreruptorul trimite un semnal nainte s fie aprins.

Figura III-3. Exemplu de intrare (ntreruptor) i ieire (bec)

Exist dou tipuri de baz de dispozitive de intrare/ieire: Discrete; Analogice. Dispozitivele discrete sunt intrrile i ieirile care au doar dou stri: deschis i nchis. Ca un rezultat, ele trimit/primesc semnale simple de la /ctre PLC. Aceste semnale constau doar din 1 sau 0. Un 1 nseamn c dispozitivul este deschis iar 0 nseamn c dispozitivul este nchis. Dispozitivele analogice sunt intrrile/ieirile care pot avea un numr infinit de stri. Aceste dispozitive nu pot fi doar deschis i nchis, dar pot fi de asemenea total aproape deschis, nu chiar nchis, etc. Aceste dispozitive primesc/trimit semnale complexe la/de la PLC.

IV IEC 61131 un standard pentru PLC-uri


Standardul internaional IEC 61131 se aplic controlerelor programabile (denumite i automate programabile) - PLC (Programmable Logic Controller) i perifericelor asociate cum ar fi instrumentele de programare i depanare, HMI (Human Machine Interface Interfaa om - main), etc. a cror scop const n utilizarea acestora n controlul i comanda mainilor i a proceselor industriale. Standardul are mai multe pri din care IEC 61131-3 poate fi considerat partea principal. IEC 61131-3 reprezint partea a 3-a a standardadului IEC 61131 i, spre beneficiul utilizatorilor de PLC-uri, standardizeaz cinci dintre cele mai utilizate limbaje de programare a PLC-urilor i anume: LD - Ladder diagram (grafic), FBD - Function Block Diagram (grafic), IL - Instruction list (text), ST - Structured text (text), SFC - Sequential Function Chart. Not: Standardul definete ca limbaje de programare doar primele 4, SFC-ul fiind definit pentru structurarea organizrii interne a programelor i a blocurilor funcie pentru controlerele programabile. -5-

MICROCONTROLERE

IV.1 Diagrama Funcional Secvenial (SFC)


Diagrama Funcional Secvenial SFC, este un formalism grafic foarte expresiv al standardului IEC 1131-3. Nu poate fi considerat un limbaj complet dup cum cer instruciunile de la celelalte limbaje pentru a scrie un POU complet. Oricum, pentru rolul su important n dezvoltarea codului reutilizabil, utilizarea sa este studiat i discutat profund n paragraful urmtor. Definiiile SFC sunt derivate de la primitivele Grafcet cu schimbrile necesare pentru a defini un set de elemente de control al execuiei pentru POU-uri. SFC furnizeaz o modalitate pentru mprirea POU-ului ntr-un set de pai i tranziii interconectate de legturi directe. Asociat cu fiecare pas este un set de aciuni i cu fiecare tranziie o condiie de tranziie. De vreme ce elementele SFC solicit pstrarea informaiei despre stare, singurele POU-uri care pot fi structurate folosind aceste elemente sunt blocurile funcie i programele (nu funciile). Pai i tranziii Un pas reprezint o situaie n care comportamentul unui POU cu respectarea intrrilor i ieirilor sale, urmeaz un set de reguli definite de aciunile asociate pasului. Un pas este fie activ, fie inactiv. La orice moment dat, starea POU este definit de valorile variabilelor sale interne i de ieire i de setul pailor activi. Un pas este reprezentat grafic de un bloc coninnd un nume al pasului de forma unui identificator sau textual de o construcie STEP...END_STEP (vezi Figura IV-1).

Si

Aciuni Si

PAS Si (*declaraiile aciunii*) END_STEP

Figura IV-4. Reprezentarea grafic i textual a unui pas

Indicatorul pasului (starea activ sau inactiv a unui pas) este reprezentat de valoarea logic a variabilei Booleene S.X, unde S este numele pasului. Variabila booleean X ia valoarea 1 dac pasul corespunztor este activ i valoarea 0 dac pasul este inactiv. n mod similar, timpul consumat S.T. al pasului S este definit ca o variabil TIME. Atunci cnd pasul este dezactivat, valoarea timpului consumat al pasului rmne la valoarea pe care o avea n momentul dezactivrii, n timp ce este resetat la t#0s atunci cnd pasul este activat. Sfera numelor pasului, indicatorii pasului i timpii pasului sunt locali pentru POU-ul unde apar paii. Starea iniial a POU este reprezentat de valorile iniiale ale variabilelor interne, de ieirile sale i de setul su de pai iniiali, de exemplu paii care sunt iniial activi. Fiecare reea SFC sau echivalentul su textual, are exact un pas iniial, desemnat grafic cu linii duble pentru margini. Pentru iniializarea sistemului, indicatorul implicit al pasului iniial este FALS pentru paii normali i ADEVRAT pentru paii iniiali. O tranziie reprezint condiia prin care controlul trece de la unul sau mai muli pai premergtori tranziiei la unul sau mai muli pai succesori de-a lungul legturii

-6-

MICROCONTROLERE corespunztoare orientate. Direcia evoluiei este de la baza pasului (pailor) premergtor(i) spre vrful pasului (pailor) urmtor. Fiecare tranziie are o condiie de tranziie asociat care este rezultatul evalurii unei singure expresii Booleene. O condiie a tranziiei care este ntotdeauna adevrat va fi reprezentat de cuvntul cheie ADEVRAT. Legturile care ating sau care prsesc paii sunt reprezentate de linii verticale (vezi Figura IV-2). O condiie de tranziie poate fi asociat cu o tranziie prin unul dintre urmtoarele mijloace: expresie Boolean descris n ST; reea a diagramei n scar a crei ieire intersecteaz legtura orientat vertical; reea n FBD a crei ieire intersecteaz legtura orientat vertical; reea LD sau FBD a crei ieire intersecteaz legtura orientat vertical printrun conector; construcie TRANSITION...END_TRANSITION folosind ST, constnd n cuvintele cheie TRANSITION FROM urmate de numele pasului(-ilor) premergtor, cuvntul cheie TO urmat de numele pasului(-ilor) succesor, operatorul de alocare urmat de o expresie Booleean specificnd condiia, cuvntul cheie de ncheiere END_TRASITION; construcie TRANSITION...END_TRANSITION folosind IL, constnd n cuvintele cheie TRANSITION FROM, urmate de numele pasului(-ilor) premergtor i de dou puncte, cuvntul cheie TO urmat de numele pasului(ilor) succesor, o list de instruciuni n limbajul IL determinnd condiia de tranziie, cuvntul cheie de ncheiere END_TRANSITION; un nume al tranziiei asociat cu legtura orientat, referitor la o construcie TRANSITION...END_TRANSITION, a crei evaluare rezult din alocarea unei valori Booleene pentru variabila denotat de numele tranziiei i a crui coninut este o reea n limbajul LD sau FBD, o list cu instruciuni n limbajul IL sau o alocare a unei expresii Booleene n limbajul ST. Valabilitatea unui nume al tranziiei este local pentru POU-ul n care tranziia este localizat. Nici un efect secundar (de exemplu alocarea unei valori unei variabile, alta dect numele de tranziie) nu poate avea loc n timpul evalurii unei condiii de tranziie.

Tij

TRANSITION Tij: (*condiia tranziiei*) END_TRANSITION

Figura IV-5. Reprezentarea grafic i textual a unei tranziii

Aciuni Zero, una sau mai multe aciuni vor fi asociate cu fiecare pas. Un pas care are zero aciuni asociate este considerat ca avnd o funcie WAIT, ceea ce nseamn c -7-

MICROCONTROLERE se ateapt ca urmtoarea condiie de tranziie s devin adevrat. O declaraie a aciunii const n numele aciunii (de tip ir) i coninutul aciunii. Coninutul aciunii poate fi o variabil Boolean, o colecie de instruciuni n IL, o colecie de formulri n ST, o colecie de trepte (pai orizontali) n LD, o colecie de reele n FBD sau o diagram a funcionalitii secveniale (SFC) la rndul su. Aciunile sunt declarate i apoi asociate cu pai prin coninuturile textuale ale corpului acinii sau prin blocuri grafice ale aciunii. Valabilitatea declaraiei unei aciuni este local pentru POU-ul care conine declaraia. Controlul aciunilor este exprimat de calificativi ai aciunii. Valoarea calificativului aciunii este una dintre cele enumerate n tabelul urmtor. Calificativii specific ce aciuni trebuie s fie executate n fiecare ciclu de execuie, n relaie cu strile pailor asociai lor. Aciunile normale (N sau non-calificative) sunt executate n mod continuu n timp ce paii asociai lor sunt activi. Calificativii L, D, SD, DS i SL solicit o durat asociat de tip TIME. Vezi paragraful urmtor pentru mai multe explicaii asupra calificativilor aciunii. Calif. N P S R L D SD DS SL P1 P0 Definiie Ne-stocat Impuls Setare Iniializare timp Limitat timp ntrziat Stocat i timp ntrziat timp ntrziat i Stocat Stocat i timp Limitat Puls Puls Efectul asupra aciunii execut n timp ce pasul asociat este activ execut cnd pasul asociat este activat execut pn cnd calificativul relativ R este intersectat termin execuia stocat (S) termin execuia dup un timp dat ncepe execuia dup un timp dat ncepe execuia S dup un timp dat ncepe execuia S dac pasul dureaz un timp dat ncepe execuia S i termin dup un timp dat front cresctor front cztor

Regulile de evoluie ale SFC Situaia iniial a unei reele SFC este caracterizat de pasul iniial care este n starea inactiv dup iniializarea programului sau a blocului funcie care conine reeaua. Evoluia strilor active ale pailor are loc de-a lungul legturilor orientate cnd este cauzat de validarea uneia sau a mai multor tranziii. O tranziie este validat atunci cnd toi paii precedeni, conectai la simbolul tranziiei corespunztoare prin legturi orientate, sunt activi. Execuia unei tranziii are loc atunci cnd tranziia este validat i cnd condiia tranziiei asociate este adevrat. Activarea unei tranziii cauzeaz dezactivarea tuturor pailor imediat precedeni conectai la simbolul tranziiei corespunztoare prin legturi orientate, urmat de activarea tuturor pailor imediat urmtori. Timpul de activare a unei tranziii poate fi considerat, teoretic, ct de scurt se dorete, dar nu poate fi niciodat zero. n practic, timpul de activare va fi impus de implementarea controlerului programabil. Pentru acelai motiv, durata activitii unui pas nu poate fi niciodat considerat a fi zero. Cteva tranziii care pot fi activate simultan vor fi n prezent activate respectnd limitrile de timp ale controlerului programabil particular.

-8-

MICROCONTROLERE Testarea condiiei(-iilor) urmtoarei tranziii a unui pas activ este efectuat pn cnd efectele activrii pasului se vor propaga peste tot POU-ul unde pasul este declarat. Divergen i convergen Divergena este o legtur cu conectare multipl de la un simbol SFC (pas sau tranziie) spre multe alte simboluri SFC de tip opus. Convergena este o legtur cu conectare multipl de la mai mult de un simbol SFC de acelai tip spre un alt simbol de tip opus. Divergena i convergena pot fi individuale sau duble. 1 Run & nu Error 2 2 3 3 4 4 Tix Pornirea motorului M1 M1 pornit Pornirea Timer-ului Timer >t#3s Oprirea motorului M1
102

101 101

Eroare Alarm Confirmare

Figura IV-6, Schema SFC cu divergena i convergena

O divergen individual este o legtur multipl de la un pas spre mai multe tranziii. Dup cum vom discuta n paragraful urmtor, doar o condiie de tranziie, a tranziiilor care prsesc pasul, devine adevrat la un moment dat, astfel nct doar un pas devine activ n urmtorul ciclu de execuie. Cu toate acestea, condiiile ataate diferitelor tranziii la nceputul unei divergene individuale nu sunt n mod necesar exclusive, astfel nct exclusivitatea trebuie s fie asigurat fixnd o prioritate printre tranziiile conflictuale (sau implicit, depinznd de implementarea individual) astfel nct doar o tranziie este activat. O convergen individual este o legtur multipl de la mai multe tranziii spre acelai pas. O convergen individual este folosit n general pentru a grupa ramurile SFC care au fost ncepute pe o divergen individual. Divergena i convergena individual sunt reprezentate de linii separate orizontale, ca n exemplul din Figura IV-3. Un salt al secvenei este un caz special al divergenei individuale unde una sau mai multe ramuri nu conin pai. O bucl a secvenei este un caz special al divergenei i convergenei individuale unde una sau mai multe ramuri se ntorc la un pas precedent. O divergen dubl (sau divergen simultan) este o legtur multipl de la o tranziie la mai muli pai. Aceasta corespunde operaiilor paralele ale procesului,

-9-

MICROCONTROLERE numite i secvene simultane. Divergena dubl este executat atunci cnd pasul SFC precedent este activ i condiia de tranziie devine adevrat. Dup divergen, toate secvenele simultane i-au activat paii iniiali. O convergen dubl (sau simultan) este o legtur multipl de la mai muli pai spre aceeai tranziie. Este folosit n general pentru a grupa ramurile SFC pornite la o divergen dubl. Convergena dubl este executat atunci cnd toi paii simultani care o preced sunt activi i urmtoarea condiie de tranziie este adevrat. Dup convergen, paii activi precedeni sunt dezactivai i un singur pas al schemei SFC este din nou activ. Divergena i convergena dubl sunt reprezentate de linii duble orizontale, ca n exemplul din Figura IVIII-4. Criterii pentru o utilizare corect a secvenelor simultane sunt propuse n paragraful urmtor, mpreun cu analiza celor mai frecvente erori de modelare. 1 1 2 2 3 Run Proces 1 Finalul Procesului 1 Ateptarea Procesului 2
101 102 101

Iniializare

Proces 2 Finalul Procesului 2


Ateptarea Procesului 2

Adevrat

Figura IV-7. Schema SFC cu divergen i convergen dubl

IV.2 Textul Structurat (ST)


Textul Structurat este unul dintre cele dou limbaje textuale din cadrul standardului IEC 1131-3, cellalt fiind limbajul Lista de Instruciuni. Standardul definete elemente textuale comune limbajelor textuale, printre care: Declaraii tip; Declaraii variabile; Declaraii ale pasului SFC, ale tranziiei i aciunii; Declaraii ale funciei i ale blocurilor funcie. ST este un limbaj structurat de nivel nalt, similar cu Pascal i C, proiectat pentru procesele automate de programare. Acest limbaj este folosit n special pentru a implementa proceduri complexe care nu pot fi exprimate uor cu limbaje grafice. ST este limbajul implicit pentru descrierea aciunilor din cadrul pailor i condiiilor ataate tranziiilor limbajului SFC. Nu se v-a insista cu acest limbaj deoarece el nu va fi folosit n cadrul laboratorului.

- 10 -

MICROCONTROLERE

IV.3 Lista cu instruciuni (IL)


Lista cu instruciuni este un limbaj de nivel jos, similar cu limbajul de asamblare, foarte eficient pentru aplicaiile mai mici sau pentru optimizarea prilor unei aplicaii. Instruciunile sunt tot timpul raportate la rezultatul curent (sau registrul IL) i sunt determinate de un operator, care indic operaia care trebuie fcut ntre valoarea curent i operand. Rezultatul operaiei este pstrat din nou n rezultatul curent. Nu se v-a insista cu acest limbaj deoarece el nu va fi folosit n cadrul laboratorului.

IV.4 Diagrama n scar (LD)


Diagrama n scar (LD) este o reprezentare grafic a ecuaiilor Booleene, combinnd contacte (argumente de intrare) cu coil (rezultate de ieire). Limbajul LD permite descrierea testelor i a modificrilor datelor Booleene plasnd simboluri grafice n schema programului. Simbolurile grafice LD sunt organizate n interiorul graficului ntr-un mod similar cu o treapt a diagramei cu contacte electrice.

ina din stnga ina din dreapta

Figura IV-8. Exemplu de diagram n scar (diagram cu contacte)

O diagram LD este limitat n partea dreapt i stng de linii verticale, numite ina (bar de alimentare, magistral) din stnga i respectiv ina din dreapta, dup cum este artat n Figura IV.5. Simbolurile grafice ale diagramei LD sunt conectate la ine sau la alte simboluri prin linii de conectare, numite i legturi. Liniile de conectare sunt orizontale sau verticale. Componentele grafice de baz ale unei diagrame LD sunt rezumate n Figura IV-6.
ina vertical din stnga ina (magistrala) vertical din dreapta Linii de conectare multipl (conectate toate mpreun) Contact asociat cu o variabil

Linia de conectare orizontal Linia de conectare vertical Figura IV-9. Componentele grafice de baz ale LD

Coil asociat cu o variabil de ieire sau intern

- 11 -

MICROCONTROLERE Fiecare element al legturii are starea sa proprie, indicat de valorile simbolului Boolean 1 (TRUE, `ON`) sau respectiv 0 (FALSE `OFF`). Starea Boolean este aceeai pentru toate segmentele legate mpreun direct. Termenul starea legturii este sinonim cu termenul fluxul puterii. Starea magistralei din stnga este considerat PORNIT tot timpul. Nu este definit nici o stare pentru magistrala din dreapta. Un element al legturii orizontale este indicat de o linie orizontal. Un element al legturii orizontale transmite starea elementului din imediata apropiere stnga elementului din imediata apropiere dreapta. Orice linie orizontal conectat la magistrala vertical din stnga are starea ADEVRAT. Un element al legturii verticale const ntr-o linie vertical care se intersecteaz cu unul sau mai multe elemente ale legturii orizontale pe fiecare parte. Starea legturii verticale reprezint un SAU inclusiv a strilor ON a legturilor orizontale pe partea stng, ceea ce nseamn c starea legturii verticale este OFF dac strile tuturor legturilor orizontale ataate la stnga sa sunt OFF, n timp ce este ON dac starea uneia sau mai multor legturi orizontale ataate la stnga sa este ON.

IV.5 Diagrama cu blocuri funcie (FBD)


FBD este un limbaj grafic pentru programarea PLC-urilor, bazat pe interpretarea comportamentului sistemului n termenii fluxului de semnale dintre elementele de procesare, analog cu fluxurile de semnal care pot fi observate n diagramele circuitelor electronice. FBD exprim comportamentul funciilor, a blocurilor funcie i a programelor ca un set de blocuri grafice interconectate, care la rndul lor sunt funcii sau blocuri funcie. Dup cum s-a anticipat deja, FBD poate fi folosit pentru a detalia condiiile tranziiei i aciunile schemelor SFC. a a) b c

a b) b
OR

Figura IV-10. Comparaie ntre sintaxa LD i FBD

Elementele limbajului FBD vor fi interconectate de linii de flux al semnalului urmrind conveniile stabilite n general pentru limbajele grafice. Ieirile blocurilor funcie nu vor fi conectate mpreun. n particular, funcia OR exprimat ca o conectare multipl la dreapta, tipic pentru limbajului LD, nu este permis n limbajul FBD; n schimb este folosit un bloc OR Boolean explicit. Exemplul din Figura IV-7 ne arat aceeai operaie dintre variabilele Booleene (c := a OR b) n LD (a) i FBD (b).

- 12 -

MICROCONTROLERE O reea FBD descrie un proces dintre variabilele de intrare i variabilele de ieire, dup cum este artat n Figura IV-8. Un proces este descris ca un set de blocuri elementare, care sunt funcii sau blocuri funcie. Variabilele de intrare i de ieire sunt conectate la blocuri prin linii de conectare. Detalii asupra funciilor i a blocurilor funcie sunt date n finalul acestui capitol. O ieire a unui bloc poate fi conectat la o intrare a altui bloc.

intrri

ieiri

Figura IV-11. Aspectul tipic al unei reele FBD

Fiecare bloc are un numr fix de puncte de conectare la intrare i un numr fix de puncte de conectare la ieire . Un bloc este reprezentat de un singur dreptunghi, ca n Figura IV-9. Intrrile sunt conectate pe marginea sa stng. Ieirile sunt conectate pe marginea sa dreapt. Un bloc elementar efectueaz un singur proces ntre intrrile i ieirile sale. Numele procesului care trebuie efectuat de bloc este scris n dreptunghiul de simbolizare. Fiecare intrare sau ieire a unui bloc are un tip bine definit. intrri

&

ieiri

Numele funciei
Figura IV-12. Sintaxa blocului FBD

Variabilele de intrare ale unui program FBD trebuie conectate la punctele de conectare la intrare ale blocurilor. Tipul fiecrei variabile trebuie s fie acelai ca tipul ateptat pentru intrarea asociat. O intrare pentru diagrama FBD poate fi o expresie constant, orice variabil intern sau de intrare sau o variabil de ieire. Variabilele de ieire ale unui program FBD trebuie conectate la punctele de conectare la ieire ale blocurilor. Tipul fiecrei variabile trebuie s fie acelai ca tipul ateptat pentru ieirea blocului asociat. O ieire pentru diagrama FBD poate fi orice variabil intern sau de ieire. Variabilele de intrare i de ieire ale blocurilor funcie sunt cuplate mpreun cu liniile de conectare. Liniile individuale pot fi folosite pentru a conecta dou puncte logice ale diagramei: (i) o variabil de intrare i o intrare a unui bloc; (ii) o ieire a unui bloc i o intrare a unui alt bloc; (iii) o ieire a unui bloc i o variabil de ieire. Conectarea este orientat, ceea ce nseamn c linia duce datele asociate de la extremitatea stng la extremitatea dreapt. Extremitatea dreapt i cea stng a liniei de conectare trebuie s fie de acelai tip. Conectarea multipl la dreapta poate - 13 -

MICROCONTROLERE fi folosit pentru a difuza o informaie de la extremitatea sa stng la fiecare dintre extremitile sale drepte. Toate extremitile conectrii trebuie s fie de acelai tip. O linie de conectare individual cu extremitatea sa dreapt conectat la o intrare a unui bloc poate fi terminat de o Negaie Boolean. Negaia este reprezentat de un cerc mic. Atunci cnd este folosit o negaie Boolean, extremitatea stng i cea dreapt a liniei de conectare trebuie s fie de tip Boolean, ca n exemplul din Figura IV-10. intrarea 1 intrarea 2

&

ieirea 1

Echivalena ST: output 1 : = input 1 AND NOT (input 2) ;


Figura IV-13. Negaia Boolean

Etichetele i salturile sunt folosite pentru a controla executarea diagramei. Nici un alt element nu poate fi conectat la dreapta unui simbol salt sau etichet. Dac linia de conectare la stnga simbolului salt are starea Boolean ADEVRAT, executarea programului sare direct dup simbolul etichet corespunztor. Un exemplu de folosire a salturilor este indicat n Figura IV-11. manual b1 NOMODIF: rezultat valid Echivalena IL: LD AND JMPC ... NOMODIF: LD OR ST manual b1 NOMODIF ... ... result valid cmd 10

&

NOMODIF

>=1

cmd 10

Figura IV-14. Utilizarea saltului i a etichetei

Cuvntul cheie RETURN poate fi folosit pentru a iei din diagram. Trebuie conectat la un punct de conectare Boolean de ieire a unui bloc funcie. Formularea de ntoarcere reprezint un final condiional al programului: dac ieirea cutiei conectate la formulare are valoarea Boolean ADEVRAT, finalul (partea care a rmas) diagramei nu este executat. Un exemplu este artat n Figura IV-12. - 14 -

MICROCONTROLERE

auto_mode alarm bi 10 bi 23 x_cmd

>=1

RETURN

& >=1
bo 67

Echivalena ST: IF auto_mode OR alarm THEN RETURN ; END_IF ; bo 67 : = (bi 10 AND bi 23) OR x_cmd ;
Figura IV-15. Utilizarea ntoarcerii

n interiorul unui POU scris n limbajul FBD, ordinea evalurii reelei urmeaz regula conform creia evaluarea unei reele este complet nainte de nceperea evalurii unei alte reele care folosete una sau mai multe dintre ieirile reelei evaluate anterior. ena s1 a) s2

& OR

run

ena s1 b) s2 run

& OR

run

s1 s2 ena c) ror
Figura IV-16. Feedback explicit i implicit

OR

ror

&

Direcia de evaluare a unei reele individuale este dependent de implementare, de obicei de la vrf la baz i de la stnga la dreapta.

- 15 -

MICROCONTROLERE O cale feedback se spune c exist ntr-o reea atunci cnd ieirea unei funcii sau a unui bloc funcie este folosit ca intrare pentru o funcie sau un bloc funcie care o precede n reea. O cale explicit feedback este o conectare dintre o variabil de ieire a unui bloc dat cu o variabil de intrare a unui bloc precedent. O cale implicit feedback este definit atunci cnd aceeai variabil este o ieire a unui bloc dat i o intrare a unui bloc precedent. Amintii-v c n limbajul LD sunt permise doar ci implicite. Exemple de ci explicite (a) i implicite (b, c) feedback sunt artate n net_weight Figura IV-14. mode Cntrire delta 0 =
RETURN

tare_weight

weight

Echivalena ST: net_weight : = Weighing (mode, delta) ; (* call *) IF (net_weight = 0) THEN RETURN ; END_IF ; weight : = net_weight + tare_weight ;
Figura IV-17. Utilizarea funciilor FBD

V Modul PLC EASY250


EASY250 este un modul PLC cu interfa CANOpen (protocol de comunicaie care este folosit pe magistrala CAN) propus de firma german Frenzel+Berg Electronic. Acest modul ofer o platform optimizat pentru realizarea propriilor module PLC avnd avantajul c este de dimensiuni mici i este uor de inserat n viitorul modul PLC. Kernelul acestui modul se afl pe microcontrolerul de 16 bii Infineon XC167. n plus un controler salve adiional pe 16 bii se ocup cu manipularea perifericelor.

- 16 -

MICROCONTROLERE

Figura V-18. Modulul PLC EASY250

V.1 Caracteristici principale


Procesor pe 16 bii (Infineon XC167), 2MB memorie program i 1MB memorie de date; Alimentare: 5V DC; 24 de intrri digitale (5V); 32 de ieiri digitale (5V); 4 encodere incrementale cu intrarea de 5V; 2 CANOpen Master/Slave; Interfee o Interfee seriale: 2 RS232 (izolate galvanic), 1TTL full modem, 1TTL; o Interfa VGA 640x480 sau interfa LCD grafic 320x240/640x480; o Interfa LCD text pn la 4x20 caractere; o Interfa touchpanel; o Interfa pentru tastatur PS2 sau matricial(6x8); o SPI; o Ethernet. Programarea o Suport standardul IEC61131-3; o se folosete pachetul software CoDeSys.

V.2 Kit-ul de dezvoltate EASY250-EVA


EASY250-EVA este un kit de dezvoltate pentru modul PLC EASY25. Acest kit de dezvoltare suport toate caracteristicele principale ale modului EASY250. Funciile ca alimentarea modului EASY250, LED-uri poteniometre, switch-uri, butoane, o tastatur matricial, drivere pentru CAN, RS232, RS485, un LCD

- 17 -

MICROCONTROLERE alfanumeric sunt deja implementate pe kit-ul de dezvoltare, deci se poate trece la dezvoltarea aplicaiilor pe modulul EASY250.

Figura V-19. Kit-ul de dezvoltate EASY250-EVA

V.3 CoDeSys - mediu complet de programare pentru PLC-uri


CoDeSys este un mediu complet de programare pentru PLC-uri. CoDeSys este o abordare simpl pentru limbajele de dezvoltare definite de standardul IEC61131-3. Folosirea editoarelor i a funciilor de debug este foarte asemntoare cu cele ale limbajelor avansate de programare (la fel ca Visual C++). Pentru a se arta modul de folosire a acestui mediu de programare vom realiza o aplicaie care realizeaz funcia de blink pentru o ieire digital (aceast ieire digital reprezint un led de pe kit-ul de dezvoltarea EASY250-EVA). Primul pas o reprezint deschiderea aplicaiei din Start -> Programs -> 3S Software -> CoDeSys V2.3 -> CoDeSys V2.3. Se creeaz un nou proiect din File -> New. Pentru Target settings se selecteaz FBE: EASY250 MV.

- 18 -

MICROCONTROLERE

Figura V-20 Selectarea dispozitivului EASY250

n continuare se va creea un Program (de preferat n limbajul CFC) cu numele PLC_PRG. Acest program este foarte important deoarece el are acelai scop ca i funcia main din limbajul C.

Figura V-21 Crearea programului principal (PLC_PRG)

n continuare se vor aduga librriile folosite de acest program (n aceste librrii se afl funciile bloc predefinite). Librriile sunt adugate din tabul Resource opiunea Library Manager. Pentru exemplul curent se va aduga librria util.lib. n continuare n programul creat se adaug funcia bloc BLINK (click dreapta pe program, se selecteaz Add Box i pe fereastr apare funcia AND, moment n care se schimb textul AND cu BLINK). De asemenea, pentru instana funciei bloc se va aduga i un nume. n cazul prezentat, se va da numele BLK (cnd se adaug funcia bloc deasupra ei apare ????, se va modifica acest text cu BLK).

Figura V-22 Adugarea funciei bloc BLINK

- 19 -

MICROCONTROLERE Funcia bloc BLIN_K are 3 intrri: ENABLE, TIMELOW (timpul pentru starea 0) i TIMEHIGH (timpul pentru starea 1). Pentru aceste intrri se vor declara 3 variabile de intrare (una de tip BOOL i 2 de tip TIME). n figura V-6 este afiat modul de adugare al variabilei en_blink. Pentru a realiza acest lucru se efectueaz click dreapta pe fereastr iar din meniu se va alege opiunea Input iar ca nume se adaug en_blink. Ca tip se introduce BOOL iar ca valoare iniial se adaug valoarea TRUE.

Figura V-23 Adugarea unei variabile de intrare

n mod analog, se adaug variabilele de intrare time_0 i time_1 de tip TIME cu valorile iniiale T#500ms. De asemenea, se adaug variabila de ieire ies_led de tip BOOL i la adresa %QX0.0 (aceasta este adresa primei ieiri digitale pentru modulul EASY250, ieire care este conectat la un led n cadrul kit-ului EASY250EVA). Adresele pentru ieirile i intrrile digitale se pot afla din tabul Resource opiunea PLC Configuration (vezi figura V-7).

- 20 -

MICROCONTROLERE

Figura V-24 Adresele ieirilor i intrrilor digitale

Aceste variabile sunt conectate la funcia bloc BLINK aa cum este ilustrat n figura V-8.

- 21 -

MICROCONTROLERE

Figura V-25 Programul blink

n continuare se dorete testarea programului. Pentru acest lucru exist 2 posibiliti: ncrcarea programului pe plac i modul simulare. Aceste moduri pot fi selectate din meniul Online opiunea Simulare (atunci cnd este bifat opiunea simulare programul va fi rulat n modul simulare). Dup setarea modului de programare se va selecta din meniul Online opiunea Login i se apas tasta F5 (sau opiunea Run din meniul Online). Pentru oprirea programului se selecteaz opiunea Logout din meniul Online. Dac se ruleaz n modul online atunci pe kit-ul de dezvoltare, pe LED-ul care va corespunde intrrii digitale 1 se realizeaz funcia de blink. n figura V-8 este ilustrat modul de afiare al variabilelor pentru modul simulare.

V.4 Exemplu de implementare semafor


n continuare se dorete realizarea unui semafor simplu. Astfel se aleg 3 ieiri digitale care vor reprezenta cele 3 culori ale semaforului. De asemenea se dorete ca pe LCD s fie afiat timpul (n secunde) pn la schimbarea culorii. Pentru a se putea realiza acest lucru, programul va avea 2 task-uri: unul pentru afiarea timpului pe LCD i unul care se ocup cu secvena de funcionare a semaforului. Primul pas l reprezint crearea proiectului n mod similar cu exemplul anterior. Se asemenea se vor aduga librriile util.lib i FBESysTerminal1.lib. Al doilea pas l reprezint declararea variabilelor globale (variabile care pot fi accesate din orice modul al aplicaiei). Variabilele globale se adaug din tabul Resource (din partea stng a aplicaie). Din acest tab se selecteaz Global variabiles i se adaug urmtoarele variabile: led_Verde AT %QX1.0: BOOL; led_Galben AT %QX1.1: BOOL; led_Rosu AT %QX1.2 : BOOL; timp_verde : BYTE := 15; timp_galben : BYTE := 2; - 22 -

MICROCONTROLERE timp_rosu : BYTE := 15; timp_ramas :BYTE; Urmtorul pas l reprezint crearea unei funcii bloc WAIT. Aceast funcie bloc se adaug din tabul POUs + click dreapta i se selecteaz Add Object. Din fereastra care este afiat se selecteaz opiunea Function Block i limbajul IL. n aceast funcie bloc se introduce codul din figura V-9.

Figura V-26 Funcia block WAIT

Funcia bloc WAIT are ca intrare TIMPUL ct se ateapt i ca ieire o variabil de tip BOOL care indic dac timpul de intrare s-a scurs. Urmtorul pas l reprezint crearea programului care realizeaz secvena semaforului. Astfel, din tabul POUs se adaug un program cu numele semafor i cu limbajul SFC. Programul care va fi realizat este afiat n figura V-9. n acest program se vor aduga 3 stri: verde, galben i rou iar la condiia de tranziie ntre 2 stri va fi TRUE. Pentru fiecare stare n parte se va introduce cod n limbajul ST. Astfel, pentru starea verde se va introduce codul:
timp_ramas := timp_verde; led_Verde := TRUE; REPEAT REPEAT DELAY(TIME_IN:= t#1S); UNTIL delay.OK END_REPEAT timp_ramas := timp_ramas - 1; UNTIL timp_ramas = 0

- 23 -

MICROCONTROLERE
END_REPEAT led_Verde := FALSE;

Figura V-27 Programul Semafor

Pentru starea galben se va introduce codul:


timp_ramas := timp_galben; led_galben := TRUE; REPEAT REPEAT DELAY(TIME_IN:= t#1S); UNTIL delay.OK END_REPEAT timp_ramas := timp_ramas - 1; UNTIL timp_ramas = 0 END_REPEAT led_galben := FALSE;

Pentru starea rou se va introduce codul:


timp_ramas := timp_rosu; led_rosu := TRUE; REPEAT REPEAT DELAY(TIME_IN:= t#1S); UNTIL delay.OK END_REPEAT

- 24 -

MICROCONTROLERE
timp_ramas := timp_ramas - 1; UNTIL timp_ramas = 0 END_REPEAT led_rosu := FALSE;

Pn acum a fost realizat parte de secvena a semaforului. n programul PLC_PRG se vor introduce blocurile din figura V-11. Acest cod este util pentru realizarea afirii timpului rmas pn la schimbarea culorii semaforului.

Figura V-28 Afiarea timpului rmas pe afior

n continuare se va seta ca aplicaia s funcioneze cu 2 task-ri. Pentru acest lucru din tabul Resource din Task configuration se mai adaug un task cu setrile din figura V-12 (acest task va executa programul semafor). n continuare se poate testa acest program att n modul simulare ct i online.

- 25 -

MICROCONTROLERE

Figura V-29 Setrile pentru cel de-al doilea task

VI Echipamente i dispozitive folosite


Pentru buna desfurare a lucrrii se vor folosi urmtoarele dispozitive i resurse software Modul Frenzel+Berg PLC EASY250 1 Kit de dezvoltare Frenzel+Berg EASY250-EVA 1 Packetul software CoDeSys 10 TEME 1. Se va studia conceptul de PLC. 2. Se va realiza exemplul blink. 3. Se va realiza exemplul semafor. 4. Se va dezvolta exemplu semafor prin adugarea unui semafor nou (se consider c primul semafor este pentru drumul 1 iar al doilea semafor este pentru drumul 2 conform figurii VI-1). Cele 2 semafoare trebuie s fie sincronizate.

- 26 -

MICROCONTROLERE

Figura VI-30

- 27 -