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

PAS Si
(*declaraiile aciunii*)
END_STEP

Aciuni Si

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.

TRANSITION Tij:
(*condiia tranziiei*)
END_TRANSITION

Tij

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.

Definiie

Efectul asupra aciunii

N
P
S

Ne-stocat
Impuls
Setare

R
L
D
SD
DS

Iniializare
timp Limitat
timp ntrziat
Stocat i timp ntrziat
timp ntrziat i Stocat

SL

Stocat i timp Limitat

P1
P0

Puls
Puls

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. Testarea

-8-

MICROCONTROLERE
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

Pornirea motorului M1

Alarm
Confirmare

Pornirea Timer-ului

Timer >t#3s

Oprirea motorului M1

4
4

101
102

M1 pornit

Eroare

101

Tix

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

Run
2

101

Proces 1

Ateptarea Procesului 2

Proces 2
Finalul Procesului 2

101

Finalul Procesului 1

Iniializare

102

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

Linii de conectare multipl


(conectate toate mpreun)

ina (magistrala) vertical din dreapta

Linia de conectare orizontal

Contact asociat cu o variabil

Coil asociat cu o variabil de


ieire sau intern

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.

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)

a
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

NOMODIF:
rezultat
valid
Echivalena IL:
LD
AND
JMPC
...
NOMODIF: LD
OR
ST

>=1

cmd 10

manual
b1
NOMODIF
...
...
result
valid
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
RETURN

>=1

alarm
bi 10

&

bi 23
x_cmd

bo 67

>=1

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

run

OR

ena
s1
b)

s2
run

&

run

OR

ror

OR

s1
s2
ena
c)

&
ror

Figura IV-16. Feedback explicit i implicit

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

tare_weight

RETURN

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 -

S-ar putea să vă placă și