Documente Academic
Documente Profesional
Documente Cultură
Lab10 Uce PLC
Lab10 Uce PLC
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
-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.
MICROCONTROLERE
Si
PAS Si
(*declaraiile aciunii*)
END_STEP
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.
TRANSITION Tij:
(*condiia tranziiei*)
END_TRANSITION
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.
Definiie
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
P1
P0
Puls
Puls
-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
-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
- 10 -
MICROCONTROLERE
- 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)
OR
- 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
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
&
b1
NOMODIF
NOMODIF:
rezultat
valid
Echivalena IL:
LD
AND
JMPC
...
NOMODIF: LD
OR
ST
>=1
cmd 10
manual
b1
NOMODIF
...
...
result
valid
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
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
- 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
- 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
- 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.
- 20 -
MICROCONTROLERE
Aceste variabile sunt conectate la funcia bloc BLINK aa cum este ilustrat n
figura V-8.
- 21 -
MICROCONTROLERE
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.
- 23 -
MICROCONTROLERE
END_REPEAT
led_Verde := FALSE;
- 24 -
MICROCONTROLERE
timp_ramas := timp_ramas - 1;
UNTIL timp_ramas = 0
END_REPEAT
led_rosu := FALSE;
- 25 -
MICROCONTROLERE
- 26 -
MICROCONTROLERE
Figura VI-30
- 27 -