Documente Academic
Documente Profesional
Documente Cultură
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
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.
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.
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.
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.
MICROCONTROLERE
Si
Aciuni Si
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
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
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
Adevrat
- 10 -
MICROCONTROLERE
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
- 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.
a b) b
OR
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
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
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
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
>=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
- 16 -
MICROCONTROLERE
- 17 -
MICROCONTROLERE alfanumeric sunt deja implementate pe kit-ul de dezvoltare, deci se poate trece la dezvoltarea aplicaiilor pe modulul EASY250.
- 18 -
MICROCONTROLERE
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.
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).
- 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.
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
Aceste variabile sunt conectate la funcia bloc BLINK aa cum este ilustrat n figura V-8.
- 21 -
MICROCONTROLERE
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.
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.
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;
- 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.
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
- 26 -
MICROCONTROLERE
Figura VI-30
- 27 -