Documente Academic
Documente Profesional
Documente Cultură
Cu01
Automate şi microprogramare
1. Introducere
SA
UP – unitatea de
prelucrare
PC PO
Di UP EA E
Tr P
Co
ciclu. Pe durata ciclului marimile de ieşirevor fi cele din imaginea procesului, chiar dacă între
timp mărimile de intare s-au modificat. La terminarea ciclului, ieşirile fizice sunt actualizate
corespunzător valorilor din imaginea de proces..
Conţinutul memoriei Imaginii Procesului este (poate fi) actualizat prin comenzi de
setare / resetare a ieşirilor, sau cu cu ocazia salturilor din program.
Avantajele esenţiale ale AP monoprocesor, derivând din existenţa Imaginii Procesului
sunt:
- execuţia rapidă a programului;
- posibilitatea depistării erorilor de programare prin lansarea unor rutine specifice la
sfârşitul ciclului AP
Automatele programabile multiprocesor, având clară originea denumirii, se
caracterizează prin abenţa memoriei tampon pentru Imaginea Procesului. Urmare acestui fapt
aceasta (ImPr) nu există. Din acest motiv:
- semnalele de intrare sunt citite imediat ce se citeşte în timp real imediat ce se
comandă acest lucru nu utilizează memorie pentru imaginea de proces.
- semnalele de ieşire se actualizează tot în timp real, pe durata ciclului AP.
Avantajele AP multiprocesor, derivând din actualizare în timp real a intrărilor şi ieşirilor
sunt:
- posibilitatea funcţionării simultane (în paralel) a mai multor module procesor;
- utilizarea stării curente, în timp real a a unei intrări (lucru esenţial la automatizarea
proceselor rapide)
- nu apar întârzieri determinate de timpii necesari pentru actualizarea Imaginii
Procesului
- posibilitatea obţinerii unor comutări rapide a ieşirilor, necesră în cazul utilizării unor
echipamente periferice rapide (motoare pas cu pas, numărătoare, afişaje,
multiplexoare, etc.).
c. După mărimea magistralei de date (nr, de biţi transmişi simultan pe această magistrală)
deosebim:
- automate programabile cu prelucrare la nivel de bit, caracterizate prin aceea că
magistrala de date este de 1 bit, operanzii supuşi procesării având pe cale de consecinţă
dimensiunea de 1 bit au şi ei dimensiunea de 1 bit.
- automate programabile cu prelucrare la nivel de cuvânt de n biţi, caracterizate prin
aceea că magistrala de date are dimensiunea cuvântului (n). Evident şi operanzii supuşi
procesării vor avea dimensiunea comună a cuvântuli şi magistralei.
- automate programabile mixte, prevăzute cu două unităţi de calcul şi procesare distincte
pentru 1 bit şi pentru cuvânt (n biţi).
Pentru descrierea unei automatizări pot fi utilizate mai multe moduri (modalităţi), dintre
care cele mai uzuale sunt:
- utilizarea ecuaţiilor logice, pentru exprimarea combinaţiilor complexe ale
variabilelor logice;
- utilizarea unor blocuri logice care implementează diferite funcţii logice;
- utilizarea unor contacte şi relee pentru descrierea şi implementarea funcţiilor logice;
- utilizarea unei metode grafice bazată pe utilizarea reţelelor Petri - GRAFCET.
Fiecare din aceste moduri se regăseşte în câte un limbaj de programare.
Este aproape unanim recunoscut faptul că metoda grafică cea mai potrivită pentru
descrierea automatizărilor secvenţiale cu automate programabile. Ea se mai numeşte şi
Sequential Function Chart şi constă în realizarea unui graf ce descrie automatizarea.
5 C4-2012-13
1 A1
1 C1
2 A2
2 C2
3 A3
3 C3
La notare elementele de acţionare sau/şi execuţie, i, j şi k pot lua aceleaşi valori sau
valori diferite pentru diferite etape ale automatizării. Vorbim despre elemente de acţionare sau/şi
execuţie întrucât la ieşirea automatului programabil
1 Si 1 Si
2 Sj 2 Sj
3 Sk 3 Sk
3 Sl 3 Sl
1 1
a fig.1.5 Graful de comandă b
a
elementul de execuţie poate fi conectat direct sau prin intermediul elementelor de
acţionare, conform schemei bloc din figura 1.6. Simbolizarea elementelor de acţionare - EA cu
linie întreruptă arată că acestea se folosesc doar când
EA0 E0 condiţiile concrete ale aplicaţiei impun aceasta
(elementele de execuţie - E nu pot fi conectate direct la
A EA1 E1 ieşirile automatului programabil – AP.).
P . .
. .
. .
EAm Em
fig.1.6 Conectarea AP la EA / E
7 C4-2012-13
Cu02
3. Automate vectoriale
MCo MDi
PIIT (Process Image Input Table)– este faza în care se scanează intrările automatului şi
datele aferente lor (biţi) se încarcă în zona de memorie dedicată variabilelor de intrare.
PP (Program Processing) – este faza în care se execută programul încărcat în memoria
de program ROM. Dacă în aceste memorii nu este încărcat nici un program, se va executa doar o
singură instrucţiune NOP.
PIOT (Process Image Output Table) este faza in care are loc actualizarea ieşirilor
automatului programabil
Producătorul poate introduce una sau două faze suplimentare conform figurilor 1.10 şi
1.11.
IP PIIT PP PIOT
IP PP PIIT PP PIOT
La tipul de ciclu prezentat în figura 1.11 este inclusă o succesiune PP - PIIT – PP în faza
de procesare. Realizatorii de automate programabile afirmă că urmare acestui fapt programarea
automatului programabil se simplifică mult.
9 C4-2012-13
L1
+24 V
... L3
Ixx I03 I02 I01 U3a
L1
Sourse
PP
Common
L2
Exx E02
E03 E01
...
U3b
(masă)
-24 V
L2
MIn MOut
U3b
(masă)
L1 ... ... -24 V
+24 V L2
Ua
Uex
R2 R3
Yab
OC
K (Iab)
R4 Port
AP
R1 R5
Led Dz
tabelul 3.1
K(Ixy) I’xy În ce priveşte modulele de ieşire ale AP ele trebuie să
Închis La masă (închis) asigure la rândul lor:
- separarea galvanică a AP de circuitele
Deschis Liber (deschis) elementare de execuţie;
- posibilitatea comandării unor circuite în
condiţii de tensiune şi curenţi de valori mult mai mari decât cele ce ar putea fi
suportate de AP.
E,xy Ua
A- Exy
E’xy Ua E’xy Ua
A- A+
Exy
Exy
E,xy Ua
CCG
Exy
sau
Th Tr
Circuitele din modulele de ieşire cu tiristor se utilizează în cazul în care sunt comandate
puteri mari, în condiţii de curent sau / şi tensiuni mari. CCG este un circit de comandă specific
13 C4-2012-13
Cu03
i i+1
i 1
i 1
i i+1
3
j Convergenţa ŞI (AND) Divergenţa ŞI (AND)
fig.4.3
De sus în jos
j
De jos în sus
fig.1.19 Conectarea etapelor
i
i i+1
i i+1
j
2. Dacă mai multe etape sunt conectate la aceeaşi tranziţie, conexiunile se reprezintă ca
în figura 4.3
Etapele se conectează la o linie dublă numită convergenţă ŞI (convergenţă AND) sau
sincronizare.
3. Dacă unei tranziţii îi urmează simultan două etape distincte ele se vor conecta la o
linie dublă, numită divergenţă ŞI (divergenţă AND) sau sincronizare.
15 C4-2012-13
4. Dacă mai multe tranziţii se leagă la o singură etapă care le succede vorbim despre o
convergenţă SAU (convergenţă OR) reprezentată în figura 1.21. Convergenţa OR se reprezintă
printr-o linie orizontală simplă, care regrupează arcele.
5. Dacă mai multe tranziţii urmează unei etape, vorbim despre o degrupare a arcelor
orientate numită divergenţă SAU (divergenţă OR), reprezentată printr-o linie orizontală simplă
ca în figura 1.21.
6. Saltul condiţionat constă în evoluţia unui graf, conform figurii de mai jos.
i c.a
c.a
i+1
i+2
i+3
tabelul 4.1
Dacă c a 1 (a ŞI c sunt adevărate) AP execută etapa i+1 şi apoi i+2.
Dacă c a 1 (a este adevărată AP execută etapa i+3
ŞI c este falsă)
Cu04
Etapa iniţială este o stare de aşteptare care este activă din momentul conectării
sistemului până la pornirea procesului. Indiferent de proces trebuie să existe o etapă (stare)
iniţială. Dacă dintr-un anume motiv nu s-a încheiat cu un ciclu complet al procesului, trebuie să
existe posibilitatea poziţionării sistemului în etapa (starea) iniţială.
11 11 11
a b c
fig.4.7 Validarea tranziţiei în cazul convergenţei ŞI (AND)
17 C4-2012-13
Tranziţia se poate valida doar dacă etapele ce o preced sunt active, aşa cum se arată în
figura 1.23- b.
Dacă nu sunt active toate etapele, (ambele în cazul nostru) validarea tranziţiei nu este
posibilă (şi deci nu se va realiza). După realizarea tranziţiei situaţia se prezintă ca în figura 1.23-
c.
11 11
12 13 12 13
a b
fig.4.8 Evoluţia simultană
R4. Evoluţia simultană
Fie două etape 10 şi 11 a căror realizare este condiţionată de acelaşi set de condiţii C10,
ca în figura 1.24 a
Ele se vor realiza simultan, situaţia imediat următoare fiind cea din figura 4.81.24b
Dacă două tranziţii succesive (preced respectiv urmează aceleiaşi etape) şi sunt
declanşate de frontul pozitiv al aceleiaşi variabile pentru efectuarea fiecăreia va fi necesar câte
un front, conform succesiunii prezentate în figura 4.9 (1.25) a, b, c.
18 C4-2012-13
10 10 10
11 11 11
12 12 12
a b c
fig.4.9 Tranziţii succesive care preced şi urmează aceeaşi etapă,
declanşate de frontul pozitiv al aceleiaşi variabile
C10
t
X10
t
X11
t
X12
t
a b c
4 5
6 C6
fig.4.11 Activarea şi
dezactivarea simutane
Dacă în intervalul de parcurgere al unui graf, o etapă - etapa a 5-a în cazul nostru - are
îndeplinite simultan condiţiile de activare şi dezactivare, atunci etapa rămâne activă, conform
figurii 4.11
Îndeplinirea condiţiilor C6 va determina situaţia din figura 4.12.
4 5
6 C6
Cu 05-Aplicaţii
Cu 06
Tipuri de acţiuni
După cum a reieşit din cele prezentate anterior, unei etape i se asociază una sau mai
multe acţiuni.
Uzual o acţiune constă în comanda unei ieşiri a sistemului automat (automat
programabil). Aceste acţiuni constituie în fapt comenzi transmise către partea comandată a
sistemului.
Se cunosc patru tipuri de acţiuni şi anume:
1. acţiuni continue (nememorate);
2. acţiuni în impuls;
3. acţiuni condiţionate;
a) simple;
b) retardate;
c) limitate în timp.
4. acţiuni memorate:
21 C4-2012-13
a) simple
b).combinate cu întârzieri
2. Acţiunile în impuls se efectuează sub forma unui impuls a cărui durată este egală cu
cea a unui ciclu al AP. Acţiunea de acest tip se poate executa doar pe durata cât ciclul este activ.
3. Acţiunile condiţionate sunt cele care se pot executa numai dacă sunt active simultan
etapa şi condiţiile asociate ei.
Condiţia se va exprima deci sub forma unei expresii logice (F) între variabile de intrare.
a) Schema unei condiţionări simple se prezintă în figura 4.14 (1.30)
10 Cs Ai
i Ci
11
X10
t
F
t
Ai
t
fig.4.15 Diagrama temporală
în cazul condiţionării simple
10 Cd Ai
Ci
11
X10
t
T
Ai
t
fig.4.17 Diagrama temporală
în cazul condiţionării întârziate (retardate)
5 5 T=3 s 6 A6 T=3 s
F t/4/3 s 6 t/6/3 s
6 A6 6 A6 7 A7
a b c
fig.4.18 Reprezentarea acţiunilor condiţionate prin introducerea unei
etape suplimentare
4a. Acţiunile memorate simple sunt acele acţiuni a căror stare odată instalată rămâne
neschimbată până în momentul când se comandă acţiunea contrară.
Astfel dacă o acţiune este setată (resetată) ea rămâne aşa până la apariţia comenzii contrare adică
resetare (setare).
Succesiunea unor etape cu acţiuni memorate se prezintă în figura 1.3
10 S A10
n R A10
X10
t
Xn
t
A10
t
fig.4.22 Reprezentarea cu diagrame
temporale a acţiunilor memorate simple
X6
t
T
t
A6
sau t
X6
t
T
t
A6
t
6 T
7 t/7/T
7 S A6
În acest caz setarea se produce dacă starea ce o va determina s-a activat şi a trecut un
interval de timp egal cu întârzierea. Acţiunea se activează chiar dacă între timp etapa a devenit
inactivă.
Lucrurile se desfăşoară conform figurii 1.35
Cu07
Macroetape (Subsisteme)
1
20
2
21
20
3
22
fig.1.37 Reprezentarea
unei macroetape
(subsistem)
O macroetapă (subprogram) poate fi apelată din mai multe puncte ale unui graf. La
activarea ei se va activa în fapt etapa de intrare. În continuare subprogramul se execută până la
etapa de ieşire a cărui activare determină revenirea la graful global al aplicaţiei.
Aşa cum s-a văzut în figura 1.37, reprezentarea unui subprogram se face prin dublarea
laturilor superioare şi inferioare ale dreptunghiului simbol.
O intersecţie are două direcţii, una principală şi una secundară, dirijată cu semafoare.
Date:
1. Calea principală deschisă – 3 min;
2. Calea secundară deschisă – 1 min;
3. Calea principală, stabilită de pietoni poate avea calea deschisă scurtată la 1 min (prin
buton);
4. Trecere roşu => verde – imediat;
5. Trecere verde => roşu prin galben – 10s.
Lămpile se notează:
VP – Lampă verde cale principală;
RP – Lampă roşie cale principală;
RS – Lampă roşie cale secundară;
VS – Lampă verde cale secundară.
Lămpile speciale pentru pietoni sunt conectate la R şi V atât pentru calea secundară cât
şi pentru cea principală.
Se întocmesc:
- Tabelul variabilelor de intrare;
- Tabelul variabilelor de ieşire;
- Graful automatizării;
27 C4-2012-13
Tabelul 2
Variabilă Semnificaţie funcţie
Tip Simbol Nume
In B Buton B=1; Acţionare pietoni
pieton
Out VP Verde VP=1; Verde pe calea principală
principal
Out RP Roşu RP=1; Roşu pe calea principală
principal
Out VS
Out RS
GP Galben
principal
GS Galben
secundar
f1 1 C1 (t/1/3min) f5 5 B1
f2 2 C2 (T/2/10 s) f6 6 C6 (t/5/10 s)
f3 3 C3 (t/3/1 min)
f4 4 C4 (t/4/10 s)
fig.1.38 Graful automatizării din Exemplul 1
f2 2 C2 (T/2/20 s)
f3 3 C3 (t/3/30 s)
f4 4 C4 (t/4/1 min)
f5 5 C5 (t/5/10 s)
Alt exemplu 2:
Ex.pg.89
Fie o bandă de umplere a bidoanelor cu ulei. Banda se alimentează cu bidoane goale,
normal, de către operator. Acesta iniţiază printr-un buton (de pornire) avansul sacadat al benzii.
Sunt posibile situaţii când lipseşte bidonul de la postul de umplere. Procesul se
desfăşoară la trei posturi de lucru automat şi un post de încărcare manual.
Putem construi funcţii logice simple pentru circuitul cu lampă din secţiunea precedentă, folosind
contacte multiple. Documentarea acestor circuite se face relativ simplu prin conectarea unor linii
adiţionale diagramei iniţiale.
A B Y A B Dacă folosim
0 0 0 notaţia binară
0 1 1 standard pentru
1 0 1 starea
1 1 1 comutatoarelor şi a lămpii (0 pentru neacţionat şi 1 pentru acţionat),
putem utiliza un tabel de adevăr pentru reprezentarea logicii
circuitului.
După cum se poate observa din diagrama ladder, lampa se va aprinde în cazul în care contactul A
este acţionat SAU contactul B este acţionat. Prin urmare, indiferent care contact se închide, A
SAU B, lampa se va aprinde.
Ceea ce am implementat de fapt în acest caz nu este altceva decât o poartă logică SAU, utilizând
două contacte normal-deschise şi o lampă.
Funcţia logică ŞI
Putem imita funcţia unei porţi logice ŞI prin conectarea celor două contacte normal-deschise în
serie şi nu în paralel.
Putem verifica cu ajutorul tabelului de adevăr că acest lucru este într-adevăr corect.
În acest
A B Y A B caz,
0 0 0
0 1 0
1 0 0
1 1 1
lampa se va aprinde doar dacă ambele contacte sunt acţionate
simultan, adică simultan sunt acţionate contactul A ŞI contactul
B
Funcţia logică NU
31 C4-2012-13
Funcţia logică de inversare poate fi obţinută prin simpla utilizare a unui contact normal-închis,
faţă de un contact normal-deschis
precum cele folosite mai sus.
Din nou, putem verifica prin intermediul tabelului de adevăr că acest lucru este corect.
A Y A
0 1
1 0
Dacă luăm funcţia SAU prezentată mai sus şi inversăm fiecare intrare vom obţine funcţia ŞI-
negat. Intrările se inversează prin utilizarea contactelor normal-închise în loc de contacte normal-
deschise.
Asemănător, dacă luăm funcţia ŞI implementată mai sus, şi inversăm intrările, obţinem funcţia
logică SAU-negat. Inversarea intrărilor se realizează şi în acest caz prin utilizarea contactelor
normal-închise în loc de contacte normal-deschise.
Din cele observate mai sus, putem trage unele concluzii, şi anume: contactele paralele sunt
echivalente cu o poartă logică SAU; contactele serie sunt echivalente cu
o poartă ŞI; contactele normal-închise sunt A B Y A B echivalente cu o
poartă NU (negare). 0 0 1
0 1 0
1 0 0
1 1 0
Funcţia logică SAU-exclusiv
Pentru realizarea funcţiei SAU-exclusiv a trebuit să folosim două contacte pe o singură intrare:
un contact pentru intrarea directă, iar celălalt contact pentru intrarea inversată. Cele două
contacte A din diagrama de mai sus sunt acţionate fizic de acelaşi mecanism. Acelaşi lucru este
valabil şi pentru contactele B. Această legătură „fizică” dintre contacte este scoasă în evidentă
prin marcarea identică a contactelor. Nu există nicio limită a numărului de contacte ce pot fi
reprezentate pe acelaşi releu. Fiecare nou contact adăugat unui releu sau unui comutator, fie că
este contact normal-închis sau normal-deschis) este reprezentat prin acelaşi simbol.
Inversarea ieşirii
Dacă dorim să inversăm ieşirea unei funcţii logice realizate cu ajutorul unui comutator, trebuie să
folosim un releu cu un contact normal-închis. De exemplu, dacă vrem să alimentăm o sarcină
bazându-ne pe negarea (funcţia NU) unui contact normal-deschis, putem realiza diagrama
alăturată.
Să aplicăm această strategie de inversare uneia dintre funcţiile cu intrare inversată realizate mai
sus. Spre exemplu, funcţia logică ŞI folosind diagrama funcţiei ŞI-negat de mai sus. Putem
inversa ieşirea cu ajutorul unui releu pentru realizarea unei funcţii ne-inversate.
A B Ieşire
0 0 0
0 1 0
1 0 0
1 1 1
De la comutator la bobina CR1, funcţia logică realizată este cea a unei porţi ŞI-negat. Contactele
CR1 normal-închise inversează şi transformă ieşirea funcţiei ŞI-negat într-o funcţie ŞI.
Aşa cum s-a arătat după încheierea fazei de realizare a grafului automatizării urmează
transformarea acestuia într-un program care trebuie implementat în automat.
Există două situaţii:
- dacă consola AP permite programarea grafică directă, atunci operaţia se poate
efectua direct de la consola de programare;
- dacă consola AP (de fapt programul său) nu permite programarea grafică directă se
va proceda la programarea prin unul din limbajele: LAD, FBD, IL.
Indiferent de limbajul ce se va utiliza, se poate utiliza una din următoarele posibilităţi:
- metoda activării şi dezactivării sincrone;
- metoda bistabilelor RS;
- programarea directă a acţiunilor.
Principiul metodei constă în utilizarea câte unei locaţii de memorie pentru fiecare din
următoarele variabile sau / şi valori ale funcţiilor logice din program, adică:
- variabilă ataşată unei etape X i xi
- funcţie de parcurgere a tranziţiei f i
- funcţie de activare a unei etape Ai
- fiecărei funcţii de dezactivare a unei etape Di
Atribuirea locaţiile de memorie şi modulul de realizare a acestei operaţii rezultă din cele
ce urmează.
Metoda activării şi dezactivării sincrone poate fi prezentată sintetic prin graful din
figura 1,39
Dacă Automatul Programabil se află
Da în ciclul 1 (Da) se procedează la introducerea
Ciclul 1? marcajului inițial. şi se efectuează saltul la
etapa Acţiuni de unde se produce revenirea la
Nu Ciclul 1 ?. Această operaţie este diferită
f i ; i 1,2,..., n pentru diferite tipuri de automate programabile
şi modalităţile comcrete se vor prezenta la
momentul oportun.
Ai ; i 1,2,..., n
X i I0 ;
Di ; i 1,2,..., n
i 1,2,..., n
X i Ai Di X i ;
i 1,2,..., n
Acţiuni
SM0.1
Mov_B
En
I0 In Out MB0
Fig. 1.40
În cazul altor tipuri de automate, marcajul iniţial se plasează prin alte procedee aşa cum se va
prezenta la momentul oportun.
În continuare lucrurile decurg în următoarea succesiune:
a. Se stabilesc acţiunile corespunzătoare etapei iniţiale şi se revine la punctul de decizie IF.
Întrucât nu ne mai aflăm în ciclul 1 se scriu:
- funcţiile de parcurgere a tranziţiilor, fi, pentru fiecare etapă (şi tranziţie a grafului
automatizării)
- funcţiile de acticare a etapelor, Ai
- funcţiile de dezactivare a etapelor, Di
b. Se calculează valorile (noile valori) variabilelor asociate etapei curente, iar apoi se precizează
acţiunile corespunzătoare acesteia, conform figurii: 1.42.
Xi Ai
Fig. 1.42
O situaţie specială este aceea în care o anumită acţiune se realizează cu ocazia mai multor etape
care nusunt simultan active.
În acest caznu se vor reprezenta individual (separat) perechile etapă acţiune (fig. 1.43) ci se va
apela la o funcţie logică SAU, aşa cum se prezintă în figura 1.44.
37 C4-2012-13
253.15
Xi Ai
Mov(21)
I0
First_Scan HR00
Xi
Fig. 1.41
Fig. 1.44
Caiet de sarcini
de secunde ambele semafoare trec pe roşu pentru 5 secunde după care semaforul de la B
trece în verde pentru 30 de secunde. La fel se întâmplă dacă autovehiculul soseşte mai târziu la
capătul B când aici semaforul indică roşu.
Starea se menţine până la sosirea unui autovehicul la capătul A. dacă există vehicule la
ambele capete secvenţele de câte 30 de secunde verde se succed alternativ. Dacă sosesc simultan
autovehicule la ambele capete prioritar este capătul A.
Sosirea autovehiculelor simultan la cele două capete determină prioritate pentru
autovehiculele de la capătul A (în sensul că semaforul acesta va trece primul pe verde) ulterior
funcţionând alternativa descrisă.
Prezenţa autovehiculelor este semnalizată de senzorii I1 şi I2 de la capete.
Sistemul se pune în funcţiune cu contactorul S0 – pornit – oprit.
Conform celor de mai sus graful automatizării este de forma:
39 C4-2012-13
1 S0
2 H3; H4
2 I1 101 I1 I2
3 T1 102 T1
4 T2 103 T2
5 S0 104
S0
I1 1040
50 I2
1 101 1 3
Fig. 1.40 – Semaforizarea unui drum în lucru
Urmând fazele descrise în figura … (IF) se fac alocările următoare de variabile pentru
etapele grafului- tabelul 5.1 şi se scriu expresiile funcţiilor de efectuare (parcurgere)a tranziţiilor-
tabelul 5.2, cele de activare a etapelor şi cele de
tabelul 5.1 dezactivare a lor-tabelul 5.3.
Variabila alocată Numărul etapei
(căreia i se alocă)
x1 1
x2 2
x3 3
x4 4
x5 5
x101 101
x102 102
x103 103
40 C4-2012-13
tabelul 5.2
Funcţia Numărul tranziţiei
(de efectuare a tranziţiei) (căreia i se alocă)
alocată
f 1 x1 SO 1
f 2 x 2 I1 2
f 3 x3 T 1 3
f4 x4 T 2 4
f 5 x5 SO 5
f 50 x5 I 2 50
f 101 x 2 I 2 I1 101
f102 x101 T 1 102
f103 x102 T 2 103
f104 x103 SO 104
f1040 x103 I 1 1040
41 C4-2012-13
tabelul 5.3
Funcţia alocată (etapei) Numărul etapei
de activare dezactivare (căreia i se alocă)
A1 f 5 f104 D1 f1 1
A2 f1 D 2 f 2 f101 2
A3 f 2 f1040 D3 f 3 3
A4 f 3 D4 f 4 4
A5 f 4 D5 f 5 f 50 5
A101 f101 f 50 D101 f 102 101
A102 f102 D102 f 103 102
A103 f 103 D103 f 104 f1040 103
tabelul 5.4
Mxy Numărul octetului
Nr. x 0 1 2 3 4
y
bitului 0 x1 f1 f103 A102 D101
S0 I1 I2
UQ
Q00 Q01 Q02 Q03 M
H1 H3
H2 H4
Alte exemple
Aşa cum s-a arătat, una din metodele de realizare a programelor pentru AP utilizează
blocuri realizate cu bistabile. În fapt, utilizând bistabile de tip RS vom realiza diagrame funcţii
bloc (FBD) utilizând bistabile.
Bistabilul este cel mai simplu bloc secvenţial caracterizat prin:
- intrarea R de resetare( Q 0 ) ;
- intrarea S de setare ( Q 1 );
- ieşirea adevărată Q;
- ieşirea negată Q .
44 C4-2012-13
În tehnica programării deosebim bistabile RS sau SR, după cum au intrarea R sau
intrarea S este prioritară (ca efecte), în cazul în care
ambele sunt active.
1 Ac1
f1 1 C1
2 Ac2
f2 2 C2
3 Ac3
f3 3 C3
X2
S Q
C1
R Q
X3
S Q
C2
R Q
fig.5.42 Implementare cu SR
a grafului 5.41-var1
Qn 1 S R Qn
Bistabilul R-S funcţionează conform ecuaţiei logice:
45 C4-2012-13
Qn 1 R S Qn
X1
INI
S Q
C3 R Q
X2
C1 S Q
R Q
X3
C2 S Q
R Q
fig.5.43 Implementare cu SR
a grafului 5.41-var2
În precedentele ecuaţii Qn este starea (valoarea ieşirii) bistabilului înaintea aplicării
comenzii iar Qn+1 starea după aplicarea comenzii la intrări.
Pentru a transcrie graful automatizării într-o schemă cu bistabile RS se procedează
conform următoarelor reguli:
- fiecărei etape i se alocă un bistabil. Ieşirea acestuia va constitui variabila de stare
ataşată etapei;
- funcţia de activare (Ai) a unei etape se aplică intrării S a bistabilului ataşat etapei;
- funcţia de dezactivare (Di) a etapei se va aplica intrării R. Ea este constituită de
ieşirile Q ale bistabilului corespunzîtoare stării ce se va activa.
Ştim că atunci când o etapă are îndeplinite simultan condiţii de activare şi de
dezactivare ea se va activa (rămâne activă).
Aceasta înseamnă că, în sensul celor arătate la început, va trebui să utilizăm bistabilele
S-R sau/şi circuite auxiliare care să realizeze prioritatea activării faţă de dezactivare.
Pentru exemplificare se consideră cazul simplu al unui graf ca cel din figurac5.43:
Funcţiile de parcurgere a tranziţiilor aferente grafului sunt:
f 1 x1 C1
f 2 x2 C 2
f 3 x3 C 3
Funcţiile de activare şi dezactivare a etapelor într-o primă variantă sunt:
A1 f 3 ; D1 f 1
A2 f 1 ; D2 f 2
A3 f 2 ; D3 f 3
Pentru întocmirea diagramei cu funcţii bloc se procedează aşa cum rezultă din figura
5.42.
Într-o a doua variantă funcţiile de activare şi dezactivare a etapelor sunt:
A1 f 3 ; D1 x 2
A2 f 1 ; D 2 x3
A3 f 2 ; D3 x1
Pentru această variantă diagrama cu funcţii bloc va fi de forma din figura 5.43.
Aşa cum se observă introducerea marcajului iniţial se face cu ajutorul unei variabile …
care trebuie să respecte condiţiile cunoscute.
Considerând graful automatizării semafoarelor şi cunoscându-se:
46 C4-2012-13
Este un limbaj de nivel scăzut. Este utilizat pentru realizarea aplicaţiilor mici sau pentru
optimizarea codului anumitor părţi ale unor aplicaţii.
Un program STL este o listă de instrucţiuni de diferite tipuri, care calculează, de obicei, termeni
ai unor expresii logice, rezultatul fiind de asemenea o valoare logică.
Operatori STL
a. Operatori de transfer:
Exemplu:
S Setare Operand
R Resetare Operand
Exemplu
c. Operatori logici:
Exemplu:
Operaţia MOV
B Byte Operandul este un Octet
W Word Operandul este un Cuvânt (2 Octeţi)
DW DoubleWord Operandul este un Cuvânt Dublu (4 Octeţi)
Exemplu MOV
Eticheta: Operaţie
Operand1[,Operand2] (*Comentariu*)
MOVB %MB0, %MB1 //Transferă Octetul din (locaţia) MB0 în
(locaţia) MB1
MOVW %MW0, %MW1 //Transferă Cuvântul din (locaţia) MW0 în
(locaţia) MW1
MOVDW %MDW0, %MDW1 //Transferă cuvântul Dublu din (locaţia) MDW0
în (locaţia) MDW1
b.Operatori aritmetici:
Operatori Aritmetici
ADD Adunarea cu un operand a conţinutului acumulatorului(adunarea a doi
operanzi);
SUB Scăderea cu un operand a conţinutului acumulatorului (un alt operand);
MUL Înmulţirea cu un operand a conţinutului acumulatorului;
DIV Împărţirea întreagă cu un operand a conţinutului acumulatorului
Exemplu ADD
Eticheta: Operaţie Operand1[,Operand2] (*Comentariu*)
LD a // Încarcă a în acumulator
ADD b // Adună b la conţinutul acumulatorului.
Rezultatul rămâne în acum.
ST c Transferă (salvează) rezultatul în
(locaţia) c
c. Operatori relaţionali:
49 C4-2012-13
NU Se Resetează Acum.
NE Verifică dacă valoarea din acumulator DA Se setează Acum.
este diferită de valoarea unui operand.
NU Se Resetează Acum.
Exemplu GT:
Program pentru verificarea relaţiilor dintre a şi b pe de-o parte şi b şi c pe de-altă parte, a, b şi c
fiind variabile de tip întreg.
Mai precis se vor verifica relaţiile:
a b cu rezultatul x ; şi
b c cu rezultatul y
Exemplu GT
Eticheta: Operaţie Operand1[,Operand2] (*Comentariu*)
LD a // Încarcă a în acumulator
GT b // Compară cu b
ST x // Memorează rezultatul în x
LD b // Încarcă b în acumulator
GT c // Compară cu c
ST y // Memorează rezultatul în y
50 C4-2012-13
Exemplu:
Se dau variabilele de tip întreg a şi b.
Să se memoreze în c rezultatul operaţiei:
a b ; dacă a b sau
b a , dacă a b
Exemplu a b sau b a
Eticheta Operaţia
LD a // Încarcă a în acumulator
GE b // verifică dacă a b
JMPC UNU Dacă DA, sare la adresa de etichetă UNU
LD b Dacă NU, atunci a<b şi se va face operaţia b-a.
Se încarcă b în Acum
SUB a // // Se scade a din acumulatorul încărcat cu b
ST c // Se memorează rezultatul în c
JMP CONT // Se face salt necondiţionat la adresa CONT
UNU: LD a // Se încarcă a în acumulator
SUB b // Se scade b din acumulatorul încărcat cu a.
ST c // Se memorează rezultatul în c
CONT:
Operatori de salt:
Operatori de salt
JMP Salt necondiţionat la o adresă diferită de adresa din numărătorul de adrese;
CALL Salt la o adresă de la care începe o subrutină (secvenţă de program cu
funcţionalitate distinctă.)
RET Apare obligatoriu în corpul unei subrutine şi produce salt la adresa următoare
adresei instrucţiunii CALL apelante.
JMPC Salt condiţionat, obţinut prin adăugarea modificatorului C
Alţi Modificatori
51 C4-2012-13
Alţi Modificatori
N Negarea Operatorului Ex. ANDN Se operează cu negata operandului ( a )
Exemplu N
ANDN %I0.1 // Realizează operaţia ŞI între conţinutul acumulatorului şi
intrarea I0.1 negată ( I 0.1 )
(; Întârzierea operatorului - caracterul utilizat de regulă fiind (;
Mai precis se întârzie prima operaţie până după efectuarea celei din paranteză
Exemplu (;
AND (%I0.2 // Întârzie aplicarea operandului ŞI, realizând mai întâi
OR I0.3 operaţia logică SAU între intrările I0.2 şi I0.3.
) La întâlnirea parantezei închise ) se realizează operaţia
logică ŞI (sau alta solicitată) între acumulator şi
rezultatul operaţiei SAU din paranteză)
De fapt asigură realizarea efectului matematical
parantezei. parantezei
C Realizarea unei Operaţi Condiţionate conform modelului ANDN
Etichetele sunt utilizate pentru specificarea punctelor ţintă ale instrucţiuilor de salt. O
instrucţiune poate avea o etichetă urmată opţional de :. O etichetă poate fi scrisă şi pe o linie
separată.
Limbajul LAD este un limbaj grafic. El este utilizat la realizarea aplicaţiilor de către
programatori care au experienţe anterioare în proiectarea aplicaţiilor cu relee şi contacte.
Limbajul LAD realizează o transpunere grafică a ecuaţiilor booleene, realizând combinaţii între
contacte (variabile de intrare) şi bobine (variabile de ieşire).
Simbolurile grafice ale limbajului sunt plasate în diagramă în mod asemănător
contactelor şi releelor dintr-o schemă electrică, Figura 7.1. Corespondenţa elementelor este
evidentă: I1 - %I1.0, I2 – %I1.1, I3 – %I1.2, k – %Q0.1
Un program în limbajul LAD este alcătuit din reţele ce utilizează simboluri grafice.
Reţeaua este conectată în partea stângă şi partea dreaptă la barele de alimentare de la o sursă de
putere. Execuţia unui program se face de sus în jos şi de la stânga la dreapta.
52 C4-2012-13
%I1.0 %I1.1
%I1.2 %Q0.1
%M10.00
Contactele şi bobinele sunt conectate la barele de alimentare prin linii orizontale şi verticale.
Fiecare segment al unei linii poate avea starea TRUE sau FALSE. Starea segmentelor legate
împreună este aceeaşi. Orice bară orizontală legată la bara din stânga se află în starea TRUE.
În Figura 7.2. sunt prezentate simbolurile grafice de bază ale limbajului LAD, conform IEC
1131-3.
Contact Contact
direct (ND) invers (NI)
Bobină Bobină
directă inversă
Bobină de Bobină de
S R Resetare
Setare
Contactul direct1, Figura 7.2.a, realizează operaţia ŞI între acţiunea asupra sa şi valoarea
variabilei booleene asociate.
Exemplu:
LAD STL
%I0.0 %Q0.0
LD %I0.0
%I0.1 OR %I0.1
ST %Q0.0
1
Contactul normal deschis
54 C4-2012-13
Contactul inversat2, Figura 7.2.b, realizează operaţia ŞI între starea legăturii stângi şi valoarea
variabilei booleene negate asociate.
Exemplu:
LAD STL
%I0.0 %Q0.0
LDN %I0.0
OR %I0.1
%I0.1
ST %Q0.0
Contactul de sesizare a frontului crescător3, Figura 7.2.c, realizează operaţia ŞI între starea
legăturii stângi şi frontul crescător al variabilei booleene asociate.
Exemplu:
P N
%I0.0 %Q0.0 %I0.0 %Q0.0
P N
%I0.1 %I0.1
Contactul de sesizare a frontului descrescător 4, Figura 7.2.d, realizează operaţia ŞI între starea
legăturii stângi şi frontul descrescător al variabilei booleene asociate.
Bobina directă, Figura 7.2.e, realizează o asociere între o variabilă de ieşire şi starea legăturii
stângi. La unele implemetări starea legăturii stângi se propagă spre legătura dreaptă putându-se
2
Contactul normal închis
3
Frontul pozitiv
4
Frontul negativ
55 C4-2012-13
astfel conecta în serie mai multe bobine. La alte implementări, pentru a conecta mai multe
bobine, acestea trebuie conectate în paralel. Legătura dreaptă este realizată efectiv sau se
consideră legată, aşa cum se poate vedea în exemplele de mai jos.
Exemple:
LAD STL
%I0.0 %Q0.0 %Q0.1
LD %I0.0
ST %Q0.0
sau
%I0.0 %Q0.0 ST %Q0.1
%Q0.1
Bobina inversă, Figura 7.2.f, realizează o asociere între o variabilă de ieşire şi starea negată a
legăturii stângi. La unele implementări starea legăturii stângi se propagă spre legătura dreaptă
putându-se astfel conecta în serie mai multe bobine. La alte implementări nu există acest tip de
bobină.
Exemplu:
Echivalenţa STL
%I0.0 %Q0.0
LD %I0.0
STN %Q0.0
Bobina de setare, Figura 7.2.g, realizează o setare a variabilei de ieşire asociate atunci când
starea legăturii stângi devine TRUE. Valoarea variabilei rămâne TRUE până când o instrucţiune
inversă, de resetare, se aplică aceleiaşi variabile.
56 C4-2012-13
Exemplu:
Echivalenţa STL
%I0.0 %Q0.0
S LD %I0.0
S %Q0.0
Bobina de resetare, Figura 7.2.h, realizează o resetare a variabilei de ieşire asociate atunci când
starea legăturii stângi devine TRUE. Valoarea variabilei rămâne FALSE până când o instrucţiune
inversă, de setare, se aplică aceleiaşi variabile.
Exemplu:
Echivalenţa STL
%I0.0 %Q0.0
R LD %I0.0
R %Q0.0
Etichete, salturi necondiţionate şi condiţionate. Într-un program LAD se pot utiliza etichete,
salturi necondiţionate şi condiţionate pentru a controla execuţia programului. Eticheta se pune pe
bara de alimentare stângă sau într-o reţea separată. Medii de programare diferite utilizează
simboluri grafice diferite pentru etichete.
Exemplu:
%I0.0
Echivalenţa STL
>> Et1
%I0.1 %Q0.0 LDN %I0.0
JMPC Et1
LD %I0.1
ST %Q0.0
>> Et2 JMP Et2
Et1: Et1: LD %I0.2
%I0.2 %Q0.1 STN %Q0.1
Et2:
Et2:
FBD este un limbaj grafic. El permite programatorului să construiască funcţii complexe utilizând
blocurile existente în bibliotecile mediului de programare.
57 C4-2012-13
Un program FBD este alcătuit din blocuri de funcţii elementare, conectate între ele prin linii de
legătură. Ca şi programul LAD, programul FBD se execută de sus în jos şi de la stânga la
dreapta.
Fiecare bloc are un număr de intrări şi ieşiri. Blocul este reprezentat printr-un dreptunghi.
Intrările sunt în partea stângă, iar ieşirile în partea dreaptă. Un bloc elementar realizează o
singură prelucrare asupra intrărilor. Funcţia realizată de bloc este scrisă în interiorul acestuia. La
intrările unui bloc sunt legate variabilele de intrare, iar variabilele de ieşire ale blocurilor pot fi
conectate la ieşirile automatului programabil sau la intrările altor blocuri. Tipul variabilelor de
intrare trebuie să coincidă cu tipul cerut de intrarea blocului. Ieşirea blocului are acelaşi tip cu
intrările.
Conform recomandărilor IEC, Figura 7.3, orice bloc are, pe lângă intrările asupra cărora
realizează operaţii X respectiv Y, o intrare numită EN şi o ieşire numită ENO pe lângă ieşirea Z.
Când EN este FALSE nu se operează asupra intrărilor de date iar ieşirea ENO este FALSE. Când
EN devine TRUE, blocul devine operaţional iar ieşirea ENO trece în starea TRUE. Dacă în
cursul operării apare o eroare, ieşirea ENO trece în starea FALSE.
Nume bloc
EN ENO
X
Z
Y
Blocurile standard sunt: blocuri de manipulare a datelor 5, blocuri pentru operaţii booleene (AND,
OR, XOR, etc., Figura 7.4), blocuri aritmetice (pentru efectuarea operaţiilor elementare, adunare,
scădere, înmulţire şi împărţire), blocuri de comparaţie.
& &
OR NOR XOR
1 1 =1
5
Se mai numesc şi blocuri de asignare
58 C4-2012-13
În figura 7.5. este prezentată forma generală a unei secvenţe de program realizată în limbajul
FBD.
I1 O1
B1
I2
B3
I3 B2
O2
I4
Aplicatii
Tema 10. Programarea AP6 utilizând limbajele STL, LAD şi FBD.
Aplicaţie:
Pentru circuitul din Figura 10.1 care converteşte codul octal în caractere alfabetice afişate pe 7
segmente, conform tabelului de adevăr 10.1, să se realizeze programul în limbajul:
a) STL;
a) LAD;
b) FBD.
6
Automate programabile
59 C4-2012-13
a a
A b
f b
c
B g
AP d
e
C f e c
g
d
În Tabelul 10.2. sunt prezentate asocierile dintre variabilele de intrare ale automatului şi intrările
în circuit, respectiv dintre variabilele de ieşire şi ieşirile circuitului.
Tabelul 10.2 Asocierea variabile intrare/ ieşire AP şi intrări/ ieşiri circuit convertor
Cu asocierile din Tabelul 10.2 în Figura 10.2.se prezintă programul în limbajul LAD.
%I0.2
%I0.0 %I0.2
%I0.1 %I0.2
%I0.1 %I0.0
%I0.1 %Q0.4
%I0.0 %Q0.5
%I0.2
%I0.0 %I0.1
%I0.1 %I0.2
%I0.0
AND
& OR
%I0.1 %Q0.0
1
NOT
%I0.2
NOT
%I0.0
AND
& OR
%Q0.1
1
NOT
%I0.1
%I0.0
AND
&
%I0.2
NOT
%I0.0
AND
& OR
%Q0.2
1
NOT
%I0.1
NOT
%I0.0
AND
&
%I0.2
%I0.0
XOR
=1 %Q0.3
%I0.1
%I0.1
OR
NOT 1 %Q0.4
%I0.0
%Q0.5
NOT
%I0.2
%I0.0
XOR NOT
=1 OR
%I0.1 %Q0.6
1
NOT
%I0.2
AND
&
%I0.1
Pana Aici
1. Diagrame ladder
← Diagramele ladder sunt scheme electrice special concepute pentru
reprezentarea circuitelor logice
Definiţia diagramelor ladder
Diagramele ladder sunt diagrame speciale folosite de obicei în sistemele logice de
control industrial. Denumirea de ladder (din engleză: scară) vine de la asemănarea
acestora cu o scară: două linii verticale desemnând sursa de putere, şi linii orizontale
reprezentând circuitele de control.
Exemplu
Deşi circuitele logice industriale utilizează o tensiune de 120 V în c.a., există şi sisteme
realizate la tensiuni mai mici în c.a. sau chiar şi în c.c.
Atâta timp cât contactele comutatoarelor şi bobinele releelor sunt dimensionate
corespunzător, tensiunea de alimentare a sistemului este irelevantă.
65 C4-2012-13
Notaţia conductorilor
Observaţi cifra „1” notată pe conductorul dintre comutator şi lampă. În realitate acel
conductor este notat cu cifra „1” folosind etichete adezive sau tuburi termocontractibile,
în funcţie de preferinţă. Conductorii ce duc înspre comutator vor fi notaţi cu „L 1,
respectiv „1”. Conductorii ce duc înspre lampă vor fi notaţi cu „1”, respectiv „L 2. Aceste
numerotaţii sunt făcute pentru a uşura construirea şi întreţinerea întregului ansamblu.
Fiecare conductor are propriul său număr unic. Numerotarea conductorilor nu se
schimbă atunci când aceştia intră/ies dintr-un nod, indiferent dacă mărimea, culoarea
sau lungimea lor se schimbă. Desigur, este de preferată utilizarea unei singure culori
pentru desemnarea aceluiaşi conductor, dar acest lucru nu este tot timpul practic. Ceea
ce contează este ca orice punct comun din punct de vedere electric dintr-un circuit de
control să fie desemnat prin acelaşi număr de fir (conductor).
În diagramele ladder, sarcina (lampă, releu, etc.) este aproape tot timpul
conectată la dreapta „scării”. Deşi din punct de vedere electric locaţia sarcinii nu are
nicio importanţă, contează totuşi care capăt al „scării” este conectat la masă.
Dar, să vedem ce s-ar întâmpla în cazul unei defecţiuni identice (contactul accidental
dintre conductorul 1 si masă) în cazul în care poziţia comutatorului este schimbată cu
cea a lămpii. Şi în acest caz, L 2 este conectat la masă. Masa accidentală va forţă
aprinderea lămpii, iar comutatorul nu va avea niciun efect asupra funcţionării acesteia.
Este mult mai bine şi mai sigur din punct de vedere electric să avem un sistem a cărui
siguranţă fuzibilă se arde în cazul unui defect de împământare , decât un sistem a cărui
componente (lămpi, relee, etc.) nu pot fi controlate în cazul aceluiaşi defect. Din
această cauză, sarcina(le) unei diagrame ladder trebuie tot timpul conectată lângă
conductorul legat la masă (comun din punct de vedere electric cu acesta).
‹ 06 - Logica ladder sus 2. Funcţii logice digitale ›
Putem construi funcţii logice simple pentru circuitul cu lampă din secţiunea precedentă, folosind
contacte multiple. Documentarea acestor circuite se face relativ simplu prin conectarea unor linii
adiţionale diagramei iniţiale.
A B Ieşire
0 0 0
0 1 1
1 0 1
1 1 1
Dacă folosim notaţia binară standard pentru starea comutatoarelor şi a lămpii (0 pentru
ne-acţionat sau de-energizat, 1 pentru acţionat sau energizat), putem utiliza un tabel de
adevăr pentru reprezentarea logicii circuitului.
După cum se poate observa din diagrama ladder, lampa se va aprinde (energiza) în
cazul în care contactul A sau contactul B este acţionat. Electronii nu au nevoie decât de
o singură cale (de la L1 spre 1) pentru a ajunge spre lampă. Prin urmare, indiferent care
contact se închide, A sau B, lampa se va aprinde.
Ceea ce am implementat de fapt în acest caz nu este altceva decât o poartă logică
SAU, utilizând două contacte normal-deschise şi o lampă.
Funcţia logică ŞI
Putem imita funcţia unei porţi logice ŞI prin conectarea celor două contacte normal-deschise în
serie şi nu în paralel.
A B Ieşire
0 0 0
0 1 0
1 0 0
1 1 1
Putem verifica cu ajutorul tabelului de adevăr că acest lucru este într-adevăr corect.
În acest caz, lampa se va aprinde doar dacă ambele contacte sunt acţionate simultan.
Curentul va putea trece de la L1 la 2 doar dacă ambele contacte sunt închise.
68 C4-2012-13
Funcţia logică NU
Funcţia logică de inversare poate fi obţinută prin simpla utilizare a unui contact normal-închis,
faţă de un contact normal-deschis precum cele folosite mai sus.
A Ieşire
0 1
1 0
Din nou, putem verifica prin intermediul tabelului de adevăr că acest lucru este corect.
Funcţia logică ŞI-negat
Dacă luăm funcţia SAU prezentată mai sus şi inversăm fiecare intrare vom obţine funcţia ŞI-
negat. Intrările se inversează prin utilizarea contactelor normal-închise în loc de contacte normal-
deschise.
A B Ieşire
0 0 1
0 1 1
1 0 1
1 1 0
Lampa va fi energizată dacă unul dintre contacte nu este acţionat, şi se va stinge doar
dacă ambele contacte sunt acţionate simultan.
Funcţia logică SAU-negat
Asemănător, dacă luăm funcţia ŞI implementată mai sus, şi inversăm intrările, obţinem funcţia
logică SAU-negat. Inversarea intrărilor se realizează şi în acest caz prin utilizarea contactelor
normal-închise în loc de contacte normal-deschise.
A B Ieşire
0 0 1
69 C4-2012-13
0 1 0
1 0 0
1 1 0
Din cele observate mai sus, putem trage unele concluzii, şi anume: contactele paralele
sunt echivalente cu o poartă logică SAU; contactele serie sunt echivalente cu o poartă
ŞI; contactele normal-închise sunt echivalente cu o poartă NU (negare).
Funcţia logică SAU-exclusiv
Putem construi circuite logice combinaţionale prin gruparea contactelor în aranjamente serie-
paralel. În exemplul alăturat, funcţia SAU-exclusiv este construită prin combinarea porţilor ŞI,
SAU şi NU.
A B Ieşire
0 0 0
0 1 1
1 0 1
1 1 0
dintre contacte este scoasă în evidentă prin marcarea identică a contactelor. Nu există
nicio limită a numărului de contacte ce pot fi reprezentate pe acelaşi releu. Fiecare nou
contact adăugat unui releu sau unui comutator, fie că este contact normal-închis sau
normal-deschis) este reprezentat prin acelaşi simbol.
Marcarea compusă
În unele situaţii, se foloseşte o marcare compusă de genul „A-1” şi „A-2” în loc de „A”
pentru ambele contacte ale aceluiaşi dispozitiv. Acest lucru este folositor mai ales în
cazul în care dorim să scoatem în evidenţă care seturi de contacte, din fiecare
dispozitiv, este utilizat pentru care parte a circuitului. Pentru simplitate însă, nu vom
folosi o asemenea notaţie în cele ce urmează. Dacă vedeţi mai multe contacte marcate
identic (A, B, etc.), puteţi să fiţi siguri că acele contacte sunt acţionate de acelaşi
mecanism.
Inversarea ieşirii
Dacă dorim să inversăm ieşirea unei funcţii logice realizate cu ajutorul unui comutator, trebuie să
folosim un releu cu un contact normal-închis. De exemplu, dacă vrem să energizăm o sarcină
bazându-ne pe negarea (funcţia NU) unui contact normal-deschis, putem realiza diagrama
alăturată.
A CR1 Ieşire
0 0 1
1 1 0
Releul este indicat pe figură prin notaţia CR1 (releu de control 1). Atunci când bobina
releului, simbolizată printr-un cerc pe prima linie, este energizată, contactul de pe linia a
doua se deschide. Deschiderea acestui contact de-energizează lampa. De la
comutatorul la bobina CR1, funcţia logică este ne-inversată. Contactul normal-închis
este acţionat de bobina releului CR1, asigurând o funcţie logică de negare (NU) pe
lampă, inversă faţă de starea de acţionare a comutatorului (A).
Să aplicăm această strategie de inversare uneia dintre funcţiile cu intrare inversată realizate mai
sus. Spre exemplu, funcţia logică ŞI folosind diagrama funcţiei ŞI-negat de mai sus. Putem
inversa ieşirea cu ajutorul unui releu pentru realizarea unei funcţii ne-inversate.
A B Ieşire
0 0 0
71 C4-2012-13
0 1 0
1 0 0
1 1 1
De la comutator la bobina CR1, funcţia logică realizată este cea a unei porţi ŞI-negat.
Contactele CR1 normal-închise inversează şi transformă ieşirea funcţiei ŞI-negat într-o
funcţie ŞI.
‹ 1. Diagrame ladder sus 3. Circuite permisive şi de blocare ›
Un exemplu în acest sens constă în controlul direcţiei de rotaţie a unui motor electric.
Sunt utilizate contactoare pentru schimbarea polarităţii (sau secvenţei fazelor) unui
motor electric. Un contactor nu este altceva decât un releu electromecanic folosit pentru
comutarea unor puteri mari pe la bornele sale. Nu dorim însă ca atât contactorul de
polarizare directă cât şi cel de polarizare inversă să fie energizate în acelaşi timp.
Când contactorul M1 este energizat, sistemul trifazat de alimentare (A, B şi C) este
conectat direct la terminalii 1, 2 şi 3 ai motorului. Totuşi, când contactorul M 2 este
energizat, fazele A şi B sunt inversate, A fiind conectată la terminalul 2 al motorului, iar
B la terminalul 1. Inversarea fazei duce la inversarea direcţiei de rotaţie a motorului.
Pentru a preveni acest lucru, putem să proiectăm circuitul astfel încât energizarea unuia
dintre contactoare să prevină energizarea celeilalte. Acest lucru se numeşte blocare, şi
se poate realiza prin utilizarea de contacte adiţionale pe fiecare contactor.
Acum când M1 este energizat, contactul auxiliar normal-închis de pe linia a două se va
deschide, prevenind astfel energizarea lui M 2, chiar dacă butonul „invers” este apăsat.
Asemănător, energizarea lui M1 nu este posibilă atunci când M 2 este energizat.
Observaţi că au fost adăugate numerotaţii suplimentare ale firelor (4 şi 5) pentru a
reflecta modificările.
Trebuie menţionat faptul că aceasta nu este singura metodă de blocare a
contactoarelor pentru prevenirea scurt-circuitului. Unele contactoare sunt echipate cu
dispozitive de blocare mecanice. Pentru siguranţa adiţională însă, se pot folosi şi
metode de blocare electrice.
‹ 2. Funcţii logice digitale sus 4. Circuite logice cu autoprotecţie ›
4. Circuite logice cu autoprotecţie
Siguranţa la funcţionare
Circuitele logice, fie că sunt compuse din relee electromecanice sau din porţi logice
semiconductoare, pot fi construite sub mai multe variante pentru realizarea aceleiaşi
funcţii. Nu există în general o metodă „corectă” de proiectare a circuitelor logice
complexe, dar există unele metode ce sunt mai bune decât altele.
În sistemele de control, siguranţa joacă un rol important (sau cel puţin ar trebui să o
facă). Dacă există mai multe metode de realizare a unui circuit digital care să realizeze
aceiaşi funcţie, iar una dintre metode este mai bună din punct de vedere al siguranţei la
funcţionare, atunci acea metodă este mai bună decât celelalte.
Exemplu: instalarea unui sistem de alarmă în caz de incendiu
Să luăm ca şi exemplu un sistem simplu şi să vedem cum îl putem implementa folosind
relee logice. Să presupunem că un laborator mare sau o clădire industrială urmează să
fie echipată cu un sistem de alarmă în caz de incendiu. Acest sistem urmează să fie
activat de oricare dintre comutatoarele instalate în întreaga clădire. Sistemul ar trebui să
funcţioneze astfel încât sirena să se energizeze dacă oricare dintre comutatoare este
acţionat.
74 C4-2012-13
La o primă vedere, ar părea că circuitul logic este extrem de simplu: utilizăm contacte
normal-deschise conectate în paralel, precum în figura alăturată. Practic, aceasta este o
funcţie logică SAU cu patru intrări. Putem extinde acest circuit pentru a include un
număr oricât de mare de comutatoare, fiecare fiind adăugat în serie. Ne vom limita însă
la patru în acest exemplu. În orice caz, acesta pare un sistem elementar şi totul pare a fi
în regulă.
Defecţiunea la deschidere
Dar ce se întâmplă în cazul unui defect de circuit? Natura circuitelor electrice este astfel
încât defectele de funcţionare ce constau în deschiderea circuitului sunt mult mai
frecvente decât oricare alt tip de defecte. Aceste deschideri ale circuitului se pot datora
deschiderii contactelor releelor, întreruperea conductorilor, arderea siguranţelor fuzibile,
etc. Luând acest lucru în considerare, pare normal să realizăm un circuit care să fie cât
mai tolerant posibil la o astfel de defecţiune.
Dar dacă am re-proiecta sistemul astfel încât alarma să se declanşeze (şi) în cazul unui
astfel de defect? Astfel, defectul conductorului ar duce la o alarmă de incendiu falsă.
Totuşi, acest scenariu este de preferat celui în care comutatorul nu funcţionează deloc
în cazuri de urgenţă. Pentru atingerea acestui scop, va trebui să refacem circuit, astfel
încât alarma să fie declanşată de un comutator deschis şi nu de unul închis.
Comutatoarele vor trebui sa fie normal-închise şi în serie, alimentând bobina unui releu
care la rândul ei activează un contact normal-închis ce controlează sirena.
Atunci când toate comutatoarele sunt de-energizate (starea normală a sistemului),
bobina releului CR1 va fi energizată (prima linie). Contactul CR1 (linia a doua) prin
urmare, va fi deschis, iar sirena nu este alimentată. Totuşi, în cazul în care oricare
dintre comutatoare este acţionat, bobina CR1 se de-energizează, iar contactul CR1
75 C4-2012-13
revine la starea sa normală, şi anume, închis. Alarma este în acest caz alimentată şi se
va declanşa. Adiţional, dacă există un defect al conductorilor din prima linie a circuitului,
alarma se va declanşa. Dacă se descoperă că alarma este falsă, personalul clădirii va
ştii că sistemul de alarmă este defect şi necesită reperaţii.
Observaţie
Cu siguranţa, circuitul este mult mai complex decât era înaintea introducerii releului de
control CR1, iar sistemul poate şi în acest caz să nu funcţioneze corespunzător. Acest
lucru se poate întâmpla dacă apare un defect în linia a doua a circuitului. Dar totuşi,
acest circuit este mai sigur şi preferabil din acest punct de vedere.
‹ 3. Circuite permisive şi de blocare sus 5. Automate programabile (PLC) ›
5. Automate programabile (PLC)
Scurtă istorie
Înainte de apariţia circuitelor logice cu semiconductori, sistemele logice de control erau
proiectate şi realizate exclusiv cu relee electromecanice. Sistemele şi procesele ce
necesită un control de tip „pornire/oprire” abundă în industria modernă, dar aceste
sisteme sunt foarte rar realizate cu ajutorul releelor electromecanice sau a porţilor
logice discrete. În schimb, sunt folosite calculatoare digitale ce pot fi programate şi pot
realiza o varietate de funcţii logice.
MODICON-ul şi apariţia PLC-urilor
La sfârşitul anilor 1960, o companie americană pe nume Bedford Associates, a lansat
un dispozitiv de calcul denumit MODICON. Ca şi acronim, acesta s-ar traduce prin
„controler digital modular”. Acesta a devenit mai târziu şi numele diviziei care se ocupa
cu proiectarea, realizarea şi vânzarea acestor calculatoare de control speciale. Desigur,
au existat mai apoi şi alte companii care au dezvoltat propriile lor variante ale acestui
dispozitiv. Până la urmă, acest dispozitiv a primit denumirea de PLC (Programmable
Logic Controller), sau, în traducere, automat programabil. Scopul unui PLC a fost de a
înlocui releele electromecanice ca şi elemente de logică, locul lor urmând a fi luat de
calculatoare digitale semiconductoare. Un program stocat în memoria calculatorului
este capabil să simuleze funcţii logice realizate înainte prin interconectarea unui număr
mare de relee electromecanice.
Definiţia PLC-ului
Un automat programabil (PLC) are mai multe intrări, prin intermediul cărora
interpretează stări logice „înalte”, respectiv „joase”, stări transmise de senzori şi
comutatoare. De asemenea, există mai multe terminale de ieşire, prin intermediul
cărora dispozitivul transmite semnale „înalte” sau „joase” către contactoare, motoare,
lămpi, sau orice alte dispozitive ce pot fi controlate prin intermediul semnalelor de tip
„închis/deschis”. În încercarea de simplificare a modului de programare a PLC-urilor,
limbajul de programare a fost proiectat astfel încât să semene cu diagramele ladder.
Astfel, un inginer sau electrician obişnuit cu citirea diagramelor ladder, se poate adapta
relativ uşor mediului de programare a PLC-urilor pentru realizarea aceloraşi funcţii de
control.
PLC-urile sunt „calculatoare industriale”, prin urmare, semnalele de intrare şi de ieşire
sunt de 120 V c.a, asemenea releelor electromecanice de control. Deşi unele PLC-uri
au intrări şi ieşiri de c.c de amplitudini mai mici, aceasta este excepţia şi nu regula.
Structura unui PLC
Modul de conectare şi de programare diferă puţin în funcţie de modelul de PLC
ales, dar aceste caracteristici sunt similare pentru a permite o introducere „generală” a
programării PLC-urilor în acest capitol.
76 C4-2012-13
Figura alăturată este cea a unui PLC, văzut din faţă. Cele două terminale L 1 şi L2 din
partea superioară sunt pentru alimentarea circuitului intern al dispozitivului cu 120 V c.a.
Cele şase terminale din partea stângă se folosesc pentru conectarea dispozitivelor de
intrare, fiecare terminal reprezentând un „canal” diferit cu propria sa notaţie (X).
Terminalul din stânga jos (common), reprezintă masa, ce se conectează la L 2.
Semnalele de intrare
Semnalele de ieşire sunt generate de circuitul intern al PLC-ului prin activarea unui
dispozitiv de comutare (tranzistor, triac, sau chiar releu electromecanic), conectând
terminalul „Source” cu oricare dintre terminalii de ieşire „Y”. Terminalul „Source” este la
77 C4-2012-13
rândul său conectat de obicei la L 1. Din nou, o ieşire energizată poate fi citită de pe PLC
prin intermediul unui LED.
În acest fel, PLC-urile sunt o interfaţă între dispozitivele reale precum comutatoare,
lămpi, motoare, etc.
Programarea PLC-ului
Logica circuitului este stabilită în interiorul PLC-ului prin intermediul unui program
software. Acest program decide care ieşiri sunt activate (energizate) şi sub ce condiţii
de intrare. Chiar dacă programul însuşi pare a fi o diagramă logică, cu simboluri pentru
relee şi comutatoare, în realitate nu există astfel de dispozitive în interiorul PLC-ului.
Acestea sunt doar contacte şi bobine imaginare sau virtuale. Programul este introdus şi
vizualizat prin intermediul unui PC conectat la portul PLC-ului (programming port).
Apăsarea butonului însă, face ca intrarea X 1 să fie alimentată. În acest caz, toate
contactele X1 ce apar în program vor fi acţionate. Energizarea intrării X 1 va duce la
închiderea contactului normal-deschis X1 alimentând bobina Y1. Când bobina Y1 a
programului este energizată, ieşirea reală Y 1 va deveni energizată, iar lampa conectată
pe ieşire se va aprinde.
Trebuie înţeles faptul că atât contactul X 1 cât şi bobina Y1, conductorii de legătură şi
„puterea” ce apar pe afişajul PC-ul, toate sunt elemente pur virtuale. Acestea nu există
ca şi componente reale. Ele există doar ca şi comenzi în interiorul programului unui
calculator.
PC-ul este utilizat doar pentru vizualizarea şi editarea softului PLC-ului, şi nu este
necesară prezenţa acestuia pentru funcţionarea dispozitivului. Odată ce programul a
fost încărcat în PLC de pe PC, calculatorul poate fi deconectat de la acesta, iar PLC-ul
va continua să funcţioneze conform instrucţiunilor programului. Afişajul (monitorul)
calculatorului este redat în aceste figuri doar pentru a ajuta la înţelegerea principiilor de
bază a funcţionării PLC-urilor.
Sistemul modificat, în cazul în care comutatorul nu este acţionat (nu este apăsat), este
prezentat în figura alăturată.
Pornirea motorului
Oprirea motorului
Pentru a opri motorul, trebuie să apăsăm pentru o durată scurtă comutatorul „stop”.
Acesta va energiza intrarea X2 şi va deschide contactul (virtual) normal-închis.
Continuitatea circuitului înspre bobina Y1 va fi întreruptă.
Auto-protecţia
Desigur, proiectarea PLC-urilor astfel încât să conţină elemente de auto protecţie este
la fel de importantă precum în cazul sistemelor cu relee electromecanice. Va trebui tot
timpul să luăm în considerare efectele unui circuit deschis (distrugerea firelor
conductoare, de exemplu) asupra dispozitivelor controlate. În exemplul de mai sus,
avem o problemă: în cazul în care conductorul comutatorului de intrare X 2 (butonul de
stop) prezintă un defect (circuit deschis), nu vom putea opri motorul!
Soluţia acestei probleme constă în inversarea logicii între contactul X 2 din interiorul
programului PLC-ului şi comutatorul „stop”. Când butonul „stop” nu este acţionat,
intrarea X2 este energizată, închizând contactul X 2 din interiorul programului. Acest lucru
permite pornirea motorului atunci când intrarea X 1 este energizată, şi permitea
funcţionarea acestuia chiar şi atunci când butonul „start” este eliberat. Când butonul
„stop” este acţionat, intrarea X2 se va de-energiza, deschizând contactul X 2 din soft-ul
PLC-ului şi oprind motorul. Prin urmare, nu există nicio diferenţa din punct de vedere
funcţional între această variantă şi cea precedentă.
Totuşi, în caz de defect al conductorului pe intrarea X 2 (circuit deschis), intrarea X2 va fi
de-energizată. Efectul este similar acţionării butonului de „stop”, rezultatul fiind oprirea
imediată a motorului în caz de defect. Această variantă este mult mai sigură decât cea
precedentă, în care, acelaşi tip de defect ar conduce la imposibilitatea opririi motorului.
Relee de control
În acest circuit, lampa va rămâne aprinsă atâta timp cât oricare dintre butoane rămâne
ne-acţionat (eliberat). Pentru a opri lampa, va trebui să acţionăm (apăsăm) toate cele
trei butoane.
Un mare avantaj al automatelor programabile, avantaj ce nu poate fi duplicat cu ajutorul
releelor electromecanice, constă în posibilitatea supravegherii şi controlului la distanţa a
dispozitivelor prin intermediul reţelelor de calculatoare.
‹ 4. Circuite logice cu autoprotecţie sus 07 - Algebra booleană ›
86 C4-2012-13
© 2000-2010, Tony R. Kuphaldt, traducerea şi adaptarea Mihai Olteanu; pentru condiţiile de copiere, modificare şi distribuire, vezi
licenţa Design Science License
Tema Drupal originală oferită de Tribute Media sub licenţă GPL.
Limbajul SFC
Sequential Function Chart este un limbaj grafic dar, fără ambiguităţi care ajută
programul în realizarea unei automatizări apropiate de cerințele descrise în caietul de sarcini.
Reprezentarea grafică a automatizării este numită adesea diagramă funcţională, grafcet
sau graf al automatizării.
El este elementul de comunicaţie dintre client (caietul de sarcini) şi proiectantul
sistemului de automatizare (program şi limbaj de programare). În acest sens se utilizează pentru
descrierea caietelor de sarcini numindu-se graf de specificare, dar şi în programare, caz în care se
numeşte graf de implementare.
SM0.1
MOV_B
En
MBO
I0 In Out
locaţia de memorie dedicată (MBO în cazul Simatic) cu semnul ce va rezulta în continuare. 1.41
Se stabilesc acţiunile corespunzătoare etapei iniţiale şi se revine la punctul de decizie IF.
Întrucât nu ne mai aflăm în ciclul 1, scriem:
- funcţiile de parcurgere a tranziţiilor fi pentru fiecare etapă i=1…t unde t este
numărul total de tranziţii al grafului automatizării;
- funcţiile de activare a etapelor ACi; i=1…e unde e este numărul total de etape ale
grafului automatizării;
- funcţiile de dezactivare a stărilor Di; i=1…e.
253.15
MOV (21)
I0
HR00
Xi Ai Xi Ai
Xi Ai
Xj
Cu 09