Documente Academic
Documente Profesional
Documente Cultură
Despre Automate Programabile
Despre Automate Programabile
AUTOMATE PROGRAMABILE
7.1. Prezentare general a automatelor programabile
Automatele programabile (Programmable Logic Controllers PLCs) sunt sisteme de
calcul special proiectate pentru controlul proceselor. Ele fac parte din marea familie a
sistemelor de control distribuite i sunt sisteme de control n timp real.
Hardware-ul unui automat programabil const ntr-o unitate central (UC) bazat pe
microprocesor (sau microcontroler), o memorie, un numr de puncte de intrare (prin care se
primesc semnalele ce parvin de la senzori i de la operator), un numr de puncte de ieire
(prin care sunt transmise comenzile spre elementele de execuie i semnalizrile spre
operator) i interfee seriale i / sau paralele pentru conectarea automatului programabil cu
dispozitive de programare, cu calculatoare PC sau cu alte automate programabile . Unitatea
central (+ memoria), punctele de I/E i circuitele de interfa sunt construite sub forma unor
module de dimensiuni tipizate care se instaleaz n sloturile unui sertar de baz (rack, base).
Acesta are rolul de a ncorpora n sloturile sale modulele din configuraia sistemului ntr-o
form compact i de a asigura comunicaia ntre acestea. Unele sertare de baz ncorporeaz
i sursele de alimentare necesare funcionrii modulelor. Alte modele de sertare de baz nu
conin aceste surse, dar permit instalarea unor module ce conin aceste surse. De asemenea,
unele automate programabile nu necesit modul de interfaare, ntruct modulul UC
ncorporeaz i circuitele de interfa. Fgura 7.1 ilustreaz o structur tipic de automat
programabil.
Automatele programabile modulare ofer cea mai mare flexibilitate. Exist o mare
varietate de module din fiecare tip (UC, de I/E, etc)i de sertare de baz, din care proiectantul
poate croi un sistem ct mai apropiat de cerinele aplicaiei considerate. Exemple de
automate programabile din aceast clas sunt SIMATIC S5 al firmei Siemens, PLC 5 al
firmei Allen Bradley, etc. Din punct de vedere al numrului de puncte de I/E, automatele
programabile modulare se nscriu n clasa automatelor programabile medii i mari (cu mii de
puncte de I/E). n lipsa unor precizri, automatele programabile discutate vor fi considerate
implicit compacte extensibile sau modulare.
Fiecare productor de automat programabil pune la dispoziia utilizatorului o gam
larg de surse de alimentare, sertare de baz, module UC i de interfaare i module de I/E.
Acetia din urm vor alege acele componente ale sistemului care corespund necesitilor
aplicaiei considerate. Operaiunea de selecie a modulelor i sertarului de baz n funcie de
cerinele aplicaiei se numete configurare. De aici reiese unul din marile avantaje ale
automatelor programabile, i anume flexibilitatea lor: ele pot fi configurate n funcie de
specificul aplicaiei.
n continuarea capitolului sunt discutate n detaliu caracteristicile automatelor
programabile, cu exemplificri pentru pentru cteva tipuri reprezentative, iar n finalul lui sunt
formulate concluziile referitoare la utilizarea automatelor programabile n controlul
proceselor, [7].
7.2. Module de intrare
7.2.1. Module de intrri discrete
Modulele de intrri discrete servesc la conectarea la automatul programabil a
semnalelor ce provin de la senzori cu dou stari (butoane, limitatoare, etc.), semnale ce pot fi
n c.c. sau n c.a., la diverse tensiuni. Aceste module realizeaz o izolare electric ntre
semnalele de intrare i automatul programabil i o conversie a acestor semnale la nivelul
semnalelor utilizate n interiorul automatului programabil (uzual TTL).
Izolarea electric este realizat pentru fiecare semnal prin intermediul unor izolatori
optici, realizai cu un LED i un fototranzistor, ca n figura 7.2.a. Deoarece nu exist
conexiuni electrice ntre diod i tranzistor, este obinut o foarte bun izolare electric (tipic
1-4 KV).
Un modul de intrri discrete conine pentru fiecare punct de intrare cte un canal de
intrare. Structura tipic a unui canal de intrare n c.c. este ilustrat n figura 7.2.b.
Cnd butonul este apsat, curentul va trece prin dioda D1, determinnd comutarea
tranzistorului TR1, transmindu-se astfel semnalul prin buffer ctre UC. Dioda D2 este un
LED, cu rol de confirmare a semnalului de intrare. Canalele modulelor de intrri discrete n
c.a. au structura similar cu cele n c.c., fiind prevzute n plus cu o punte redresoare i un
filtru.
Conectarea semnalelor se poate face prin uruburi (individual pentru fiecare semnal),
dac modulul este prevzut cu bloc de terminale, sau printr-un conector tipizat, dac modulul
este prevzut cu conector. Figura 7.2.c arat modul de conectare a semnalelor de intrare la un
modul de intrri discrete pe 8 puncte, ce necesit surs extern.
Majoritatea productorilor de automate programabile furnizeaz module de intrri
discrete pe 8, 16 sau 32 de puncte de intrare, la diverse tensiuni continue sau alternative (5
Vcc, 12-24 Vcc/ca, 24-50 Vcc/ca, 110-220 Vca), cu sau fr necesitatea utilizrii unor surse
externe.
397
Fig. 7.2. a) Un izolator optic; b) un canal al unui modul de intrri discrte n c.c. ;
c) Conectarea semnalelor la un modul de intrri discrete
La un multiplexor de 4 ci care
selecteaz pe rnd n inel fiecare canal, fiecare
semnal analogic va fi citit o dat la fiecare 80
ms. La acest timp trebuie adugat durata
ciclului program i timpul de comunicaie, dac
modulul analogic este montat ntr-un sertar de
baz comandat la distan.
Este foarte important ca timpul de
conversie s fie suficient de mic. Fiecare
semnal analogic va avea o frecven maxim la
398
Metoda din figura 7.5.b este mai des utilizat. Un bloc de locaii de memorie din
memoria automatului programabil este asociat direct cu modulul de intrri analogice. Acesta
funcioneaz continuu, nscriind valori numerice n locaiile de memorie, de unde pot fi citite
direct de ctre program.
Conversia semnalului din forma primar pe 12 bii n uniti inginereti se face
conform relaiei:
N V max V min
(7.1)
VM
V min
4095
unde: VM este valoarea msurat (n uniti inginereti), N este valoarea semnalului n forma
primar pe 12 bii, Vmax este valoarea maxim a semnalului n uniti inginereti
(corespunztoare lui 4095) iar Vmin este valoarea minim a semnalului n uniti inginereti
(corespunztoare lui 0).
PLC-5 al firmei Allen Bradley citete semnalele analogice cu un modul de intrri
analogice (1771-IFE) care poate citi, n forma sa cea mai simpl, 8 intrri analogice. UC
comunic cu modulul prin intermediul unor instruciuni numite transferuri pe bloc, care
transfer data la/de la un bloc de locaii de memorie. Transferurile de date de la UC la modul
sunt numite transferuri de scriere bloc (BTW Block Transfer Writes) iar transferurile de la
modul n memorie se numesc transferuri de citire bloc (BTR Block Transfer Reads).
Modulul de intrri analogice utilizeaz ambele instruciuni BTW i BTR. Instruciunea
BTW este utilizat o singur dat, dup pornirea automatului programabil, pentru
configurarea modulului iar instruciunea BTR este utilizat ulterior pentru citirea datelor, aa
cum reiese din figura 7.6.
Instruciunea
BTW
definete
comportarea modulului: dac va furniza date
n cod binar sau BCD, dac se vor utiliza 8
semnale difereniale sau 16 semnale raportate
la un 0 V comun, valorile minime i maxime
ale domeniilor de intrare (Vmax i Vmin din
(7.1)) pentru fiecare canal, precum i o
constant de timp de filtrare (pentru a aplica
semnalului de intrare un filtru de ordinul
1, care ajut la nlturarea zgomotelor
Fig. 7.6. Instruciunile BTW i BTR
din semnal). Modulul 1771-IFE ofer o
constant de timp de filtrare de maxim 1s. Pentru valori mai mari ale acestei constante,
programatorul poate construi o rutin de filtrare separat.
Modulul utilizeaz toate aceste informaii pentru a furniza citiri direct n uniti
inginereti. De exemplu, figura 7.7.a ilustreaz o treapt de program care transmite 15 cuvinte
400
de date ncepnd de la locaia N 11:10 ctre modulul din poziia din stnga a slotului 2 al
sertarului de baz 3 ori de cte ori B 3/5 este nchis.
Odat fcut definirea, valorile pot fi citite la intervalele de timp necesare cu
instruciunea BTR, ca n figura 7.7.b, n care sunt citite 20 de valori de la modulul aflat n
poziia din stnga a slotului 5 al sertarului de baz 4 ori de cte ori B 3/72 este 1. Valorile sunt
memorate ncepnd cu locaia N 12:0.
7.3. Module de ieire
7.3.1. Module de ieiri discrete
Permit transmiterea comenzilor generate de program spre elementele de execuie
bipoziionale la tensiunile necesare (5 Vcc, 12-24 Vcc/ca, 110-220 Vca, etc), necesitnd
izolare pentru a limita neajunsurile datorate zgomotelor electrice i defectelor instalaiei.
Exist dou tipuri de baz de module de ieire. n figura 7.8.a, 8 ieiri sunt alimentate
de la o surs comun, care este conectat la automatul programabil, dar este separat de sursa
acestuia. Aceast structur permite cea mai simpl i mai ieftin instalare.
Fig. 7.8. Tipuri de module de ieiri discrete: a) cu surs comun; b) cu surs separat
Un modul de ieiri izolate, prezentat n figura 3.8.b are ieiri i protecii individuale i
poate fi conectat direct la orice circuit din exterior. ns modulul este mai complicat, un
modul cu 8 ieiri izolate putnd primi pe terminalele sale tensiuni diferite din 8 direcii.
n figura 7.9 este prezentat un circuit de ieire pe tranzistor, ieire care genereaz
curent (source). Dac se utilizeaz tranzistoare npn rezult un canal de ieire care absoarbe
curent (sink).
401
402
Fig. 7.11. Controlul vitezei unui motor prin comenzi ale operatorului
Numrtorul din figura 3.11 pstreaz vitez direct n rot/min, dar cu preul diminurii
rezoluiei. Pentru gama 0-1350 rot/min, eroarea datorat rezoluiei este de aproximativ 0,1 ,
fa de eroarea teoretic datorat rezoluiei, de 0,025 (vezi tabelul 7.1).
7.4. Module speciale
Aceste module servesc la realizarea unor funcii ce nu pot fi implementate cu
modulele de I/E discutate anterior, fie datorit particularitii semnalelor procesate, fie
datorit complexitii acestor funcii. Un exemplu tipic l constituie modulul numrtor de
mare vitez, util pentru numrarea trenurilor de impulsuri cu frecven mare.
Alte aplicaii ale modulelor inteligente sunt cititoarele de coduri cu bare, controlerele
pentru motoare pas cu pas i aplicaiile de control a calitii prin staii vision.
7.5. Comanda la distan
Uzual, un automat programabil se compune dintr-un modul UC i un numr de
module de I/E montate ntr-unul sau mai multe sertare de baz locale. ns, n cazul
aplicaiilor n care instalaiile sunt distribuite n spaiu la distane mari, aceast structur ar
necesita aducerea tuturor semnalelor la un punct central prin cabluri lungi i costisitoare. Un
alt dezavantaj l constituie necesitatea renunrii la semnalele transferate la tensiuni mici.
De aceea, productorii de automate programabile au prevzut posibilitatea montrii
sertarelor de baz cu module de I/E la distan fa de modulul UC i a conectrii acestor
sertare cu modulul UC prin cabluri ecranate bifilare sau prin cabluri cu fibre optice. Astfel,
sertarele de baz pot fi montate la civa km de modulul UC.
Se reduce costul cablurilor prin plasarea sertarelor de baz la locul aplicaiei, pentru
conectarea semnalelor de I/E la automatul programabil fiind necesare doar cabluri scurte. Mai
puin evident, comanda la distan permite realizarea unor uniti complete, dispuse n
apropierea instalaiilor, uniti ce pot fi testate naintea instalrii i punerii n funciune.
7.6. Identificarea adreselor de I/E
Aceast operaie nseamn realizarea unei corespondene ntre semnalele procesului i
variabilele programului, n urma creia fiecrui semnal i revine o adres de I/E (sau un grup
de adrese de I/E, n cazul semnalelor analogice). De regul, semnalelor le revin adrese de I/E
n funcie de sertarul de baz, modulul de I/E i punctul de I/E al modulului la care este
conectat fiecare semnal. n continuare vor fi prezentai algoritmii de atribuire a adreselor de
I/E pentru cteva automate programabile reprezentative.
7.6.1. Adresarea I/E la automatul programabil PLC-5 al firmei Allen Bradley
Acest automat programabil poate cuprinde pn la 8 sertare de baz n versiunea 5/25.
Sertarul de baz ce conine modulul UC este automat sertarul de baz 0. Adresele celorlalte
sertare de baz pot fi stabilite prin switch-uri (n gama 1-7). Legtura ntre sertarul de baz 0
i celelalte se realizeaz prin cabluri de comunicaie seriale.
ieire pe 8 puncte. Adresarea intrrilor are forma general I: sertar slot / bit ,
unde bit poate avea una sau dou cifre. Allen Bradley utilizeaz adresarea biilor n octal.
De exemplu, adresa I:27/14 reprezint intrarea 14 din slotul 7 al sertarului de baz 2. Ieirile
sunt adresate ntr-o manier
similar: O: sertar slot / bit , astfel c
O:35/06 este ieirea 6 din slotul 5 al sertarului de baz 3.
7.6.2. Adresarea I/E la automatul programabil SIMATIC S5 al firmei Siemens
n sistemele cu automate programabile ale firmei Siemens adresele de I/E pe bit sunt
dispuse n grupuri de cte 8 bii, ce formeaz un octet. Un semnal este identificat prin numrul
su de bit (0-7) i numrul su de octet (0-127).Intrrile sunt notate prin I octet . bit
iar ieirile sunt notate prin Q octet . bit [113]. De exemplu, I 9.4 este intrarea cu
adresa de bit 4 din octetul 9 iar Q 63.6 este ieirea cu adresa de bit 6 din octetul 63.
Ca i Allen Bradley, Siemens utilizeaz sloturi pentru instalarea modulelor n sertarul
de baz. Sunt disponibile module pe 16 puncte (2 octei) i pe 32 de puncte (4 octei).
Adresarea fix a sloturilor este descris n figura 7.14.a. Fiecrui slot i sunt atribuii n ordine
405
Modulele de I/E nu sunt identificate prin poziia lor n sertarul de baz, ci prin adresa
setat pe modul. Deci, adresele de I/E nu reflect poziia modulului. Un modul poate fi mutat
n alt poziie (mpreun cu conectorul su) fr a se modifica adresarea sa.
Memoria UC este structurat ca n figura 7.17.b. Valorile I/E sunt conectate la un
procesor al bazei de date, dar spre deosebire de automatele programabile anterioare,
proiectantul poate stabili diverse viteze de lucru pentru diferite module.
Figura 7.17.c arat structura bazei de date pentru un modul de intrare. Exist dou
nivele de definire, nivelul superior (1) dnd detalii asupra modulului (cum ar fi tipul su,
adresa sa i, eventual, rata de scanare) iar nivelele inferioare dnd relaii despre fiecare canal
al modulului (cum ar fi nivelul semnalului, modul de utilizare al su, constanta de filtrare).
Baza de date conine detalii despre toate I/E, care pot fi adresate n program fie prin
identificatorul din baza de date ( de exemplu, DI 3.1), fie printr-un nume unic (de exemplu,
Pomp hidraulic 2 pornit prin butonul Start).
7.6.5. Adresarea I/E la automatul programabil F2 al firmei Mitsubishi
Acesta este un exemplu tipic de automat programabil mic, ce conine procesor, surs
de alimentare i conexiuni de I/E, toate nglobate ntr-o singur unitate . Cea mai mic unitate,
F2-40M, are 24 de intrri i 16 ieiri. Cele 24 de intrri sunt notate X400-X427 (n octal) iar
cele 16 ieiri sunt notate Y430-Y447 (n octal). Numerele (aparent arbitrare) corespund, de
fapt, n mod direct locaiilor de memorie unde sunt pstrate imaginile intrrilor i ieirilor.
Adrese similare sunt utilizate i n sistemele mai mari ale seriei.
7.7. Memorii interne pe bit
n majoritatea aplicaiilor un automat programabil este nevoit s memoreze, pe lng
valorile semnalelor de I/E, i semnalele interne pentru date cum ar fi pompa funcioneaz,
sistem fr defect, etc. Ar fi foarte costisitor s se aloce ieiri adevrate pentru aceste
semnale, astfel c toate automatele programabile ofer memorii interne de bit. Acestea se
numesc relee auxiliarela Mitsubishi, fanioane la Siemens, spaiu general de lucru la
GEM-80 i memorii de bit la Allen Bradley.
Mitsubishi utilizeaz notaia M nnn, cu nnn=100-377 n octal. Notaia la Siemens
este F octet.bit, de exemplu, F 27.06. GEM-80 [110] are o varietate de spaii generale
de lucru. Cel mai utilizat se numete tabela G. O variabil de memorie din tabela G apare n
program ca G cuvnt.bit (de exemplu, G 52.14). Valorile memorate n tabela G sunt fr
reinere, adic sunt resetate la (re)pornirea automatului programabil. n schimb, valorile
memorate n tabela R (de exemplu, R 12.03) sunt pstrate i atunci cnd automatul
programabil este oprit sau cnd alimentarea este decuplat.
La PLC-5 memoria de bit este notat prin B 3/n, unde n este numrul locaiei de
memorie (de exemplu, B 3/192). B nseamn memorie de bit iar 3 este obligatoriu i este
utilizat cnd PLC-5 memoreaz date n fiiere. Astfel, memoria de bit constituie fiierul 3
(B3), temporizatoarele constituie fiierul 4 (T4) iar numrtoarele fiierul 5 (C5).
Automatul programabil Master al firmei ABB [108] nu necesit neaprat memorii
interne de bit, aceast funcie fiind ndeplinit de elementele i conexiunile din interiorul
bazei sale de date i de ctre limbajul de programare.
Cea mai des ntlnit form de programare a memoriei pe bit este ilustrat n figura
7.18.a. Aici, ieirea C (de exemplu, instalaie pornit) este activat cnd este activat
intrarea A (de exemplu, Start), i rmne activat pn cnd se dezactiveaz intrarea B
(Stop). Funcionarea este reprezentat n diagrama temporal din figura 7.18.b.
407
7.20, prioritatea aparine ultimei trepte de program (dintre cele dou), datorit ciclului
program, fapt care d prioritate, n mod corect, semnalului STOP.
Cderea alimentrii sau oprirea automatului programabil cauzeaz probleme
memoriilor de bit. Unele memorii ar trebui s-i pstreze coninutul pe durata nefuncionrii
automatului programabil iar altele ar trebui resetate la repornire. n acest scop, productorii de
automate programabile permit utilizatorului s stabileasc care sunt memoriile de bit care i
vor pstra starea pe durata nefuncionrii automatului programabil (numite memorii cu
reinere) i care se vor terge la (re)pornire (numite memorii fr reinere).
7.8. Temporizatoare
Msurarea timpului este necesar n majoritatea sistemelor de control. De aceea,
automatele programabile trebuie s includ temporizatoarele n limbajele lor de programare.
Un temporizator de orice tip are anumite valori care trebuie fixate de ctre utilizator.
Prima din acestea este unitatea de msur a timpului. Unitile de timp uzuale sunt 10 ms, 100
ms, 1 s, 10 s, 100 s, utilizarea uneia sau alteia neafectnd precizia temporizatorului.
Urmtoarea valoare definit este durata temporizrii (sau valoarea prestabilitpreset).
Aceasta este dat de obicei n valori ale bazei de timp. De exemplu, un temporizator cu o
valoare prestabilit de 150 i o baz de timp de 10 ns va ntrzia 1,5 s.
Fiecare temporizator dispune de un set de semnale ce pot fi utilizate de ctre program.
Figura 7.21 arat semnalele generate de ctre un temporizator la anclanare al PLC-5 (numit
TON) i de ctre un temporizator la declanare al PLC-5 (numit TOF).
Fig. 7.22. Tipuri diferite de temporizatoare utilizate pentru aceeai aplicaie: a) notaia PLC-5;
b) notaia GEM-80; c) notaia SIMATIC S5-115U
instruciunea LIMIT, care testeaz dac A este ntre B i C, iar GEM-80 i SIMATIC S5
dispun de testul . n afar de F2 al firmei Mitsubishi, toate celelalte automate programabile
discutate permit realizarea a cel puin patru operaii aritmetice (+, -, , :). Pentru a putea
preveni posibilele erori cauzate de aceste operaii, aceste automate programabile sunt
prevzute i cu fanioane de depire. Pentru efectuarea operaiilor aritmetice PLC-5 utilizeaz
blocurile ADD, SUB, MULT i DIV. Cele mai puternice automate programabile din seria
PLC-5 (cum ar fi 5-40) au o instruciune de calcul pe bloc, care permite evaluarea unei
expresii aritmetice ntr-o singur instruciune. SIMATIC S5-115U evalueaz instruciunile
aritmetice n format IL (list de instruciuni). n figura 7.26.b a fost ilustrat un exemplu de
transfer, n care se utilizeaz acumulatorul. De fapt, exist dou acumulatoare, instruciunile
aritmetice utiliznd coninutul ambelor acumulatoare. Automatele programabile Master al
firmei ABB i GEM-80 al firmei CEGELEC ofer instruciuni aritmetice similare.
Unele automate programabile sunt prevzute cu instruciuni speciale pentru procesarea
semnalelor analogice. La GEM-80 cele mai utilizate sunt:
SQRT - extrage radical de ordinul 2 (de exemplu, n cazul traductoarelor difereniale);
LINCON - realizeaz X (A/B)+C cu limitarea rezultatului;
FGEN - genereaz o funcie pe baza unor puncte (util, de exemplu, la liniarizri);
LIMIT - limiteaz inferior sau superior valoarea unui semnal;
RAMP - limiteaz viteza de cretere sau de descretere a unui semnal;
ANALAG - genereaz un element de ntrziere de ordinul 1.
Majoritatea automatelor programabile care permit utilizarea modulelor de I/E
analogice sunt prevzute cu funcia PID. De exemplu, GEM-80 este prevzut cu funcia
PIDABS care permite implementarea regulatoarelor PID. Figura 7.27 exemplific cel mai
simplu mod de utilizare al acestei funcii.
414
n figura 7.29.b frecvena impulsurilor este mai mare dect frecvena de execuie a
ciclului program i automatul programabil ncepe s piard impulsuri. n cazul extrem din
figura 7.29.c, blocuri ntregi de impulsuri pot fi total ignorate. De aceea, n general, orice
semnal de intrare citit de automatul programabil trebuie s fie prezent un timp mai mare dect
durata ciclului program. Impulsurile mai scurte pot fi citite corect numai dac se ntmpl ca
ele s fie prezente la momentele potrivite, lucru care nu poate fi garantat. n general, frecvena
impulsurilor trebuie s fie mai mare dect din durata ciclului program, dar n practic exist
i ali factori de care trebuie s se in cont la stabilirea acestei frecvene (cum ar fi filtrele
modulelor de intrare).
Mai puin evident, un ciclu program poate cauza un decalaj aleator ntre intrri i
ieiri. n figura 7.30 este prezentat o intrare care trebuie s comande activarea imediat a
unei ieiri. n cazul cel mai bun, intrarea apare la nceputul ciclului program, ducnd la
activarea ieirii dup un ciclu program. n figura 7.30.b intrarea a aprut imediat dup citirea
intrrilor, fiind vzut de automatul programabil abia la nceputul celui de al doilea ciclu
program. Prin urmare, ieirea va fi activat cu o ntrziere de dou cicluri program fa de
momentu activrii intrrii.
Fig. 7.30. Efectul ciclului program asupra timpului de rspuns: a) cazul cel mai favorabil; b)
cazul cel mai defavorabil
n majoritatea aplicaiilor acest decalaj de cteva ms nu este important. Totui, n
aplicaiile unde sunt necesare aciuni rapide, acest decalaj poate fi critic. Pentru a putea
aborda cu succes asemenea aplicaii, productorii de automate programabile ofer o gam
larg de module speciale, cum ar fi, de pild, cele descrise n paragraful 7.4.
nsi redactarea programului poate conduce la ntrzieri nedorite, dac logica
programului lucreaz mpotriva execuiei programului. Automatul programabil ncepe fiecare
ciclu program cu prima instruciune i proceseaz toate instruciunile urmtoare ntr-o
manier secvenial. Apoi iari actualizeaz ieirile, citete intrrile, execut instruciunile,
.a.m.d. n figura 7.31.a o intrare determin o ieire, dar nu direct, ci prin intermediul a cinci
pai. Logica programului decurge, n acest caz, mpotriva ciclului program.
Fig. 7.31. Decalaje datorate programului: a) logica este mpotriva execuiei programului; b)
logica este conform cu execuia programului
415
acesta permite execuia unui nou ciclu program. n caz contrar, execuia programului este
terminat i toate ieirile sunt dezactivate.
7.12. Limbaje de programare
Standardul IEC 1131-3 definete cinci limbaje de programare a automatelor
programabile:
1. Diagrama Scar (Ladder Diagram), care este inspirat din schemele electrice
convenionale;
2. Lista de Instruciuni (Instruction List), care este un limbaj de asamblare inspirat din
limbajele utilizate n diversele platforme hardware existente;
3. Textul Structurat (Structured Text), care este un limbaj de programare asemntor
limbajului Pascal;
4. Diagrame cu Funcii Bloc (Function Blocks Diagrams), care constituie un formalism de
procesare a datelor prin reele de funcii bloc conectate prin semnale;
5. Diagrame de Funcii Secveniale (Sequential Function Charts), care reprezint un
formalism grafic inspirat din standardul francez Grafcet, bazat pe o variant a unei clase
de reele Petri.
Lista de Instruciuni i Textul Structurat fac parte din limbajele tradiionale de
programare a calculatoarelor. Diagrama Scar i Diagrama cu Funcii Bloc imit structura
predecesoarelor lor (implementri hardware ale regulatoarelor discrete i continue, paralele
prin natura lor). Diagrama de Funcii Secvenial combin secvenialitatea cu paralelismul.
7.12.1. Caracteristici comune ale limbajelor de programare
Standardul ncepe cu o descriere a configuraiei i resurselor hard i soft ale sistemului
pe care vor fi executate programele. Cazul cel mai simplu este cel n care un singur program
este executat pe un singur automat programabil. Un astfel de program citete intrrile sale,
calculeaz starea sa i actualizeaz ieirile sale. Detaliile referitoare la modul n care un
anume automat programabil realizeaz operaiile de I/E i managementul memoriei nu fac
parte din standard. Se presupune c valorile citite de la senzori i valorile scrise la ieiri sunt
transferate cu mediul extern prin intermediul unor locaii de memorie specifice i c
programul de aplicaie nu trebuie s se ocupe cu aceste detalii. Standardul conine structuri
care permit programelor diferite s fie ncrcate i executate pe acelai automat programabil
(separat sau n multi-tasking) i mai multor automate programabile s funcioneze n paralel i
s comunice prin ci de acces, care sunt abstracii ale protocoalelor de comunicaie. Un
program este construit dintr-un numr de elemente software diferite, scrise n oricare din cele
cinci limbaje, existnd posibilitatea transferului de date ntre aceste elemente. Ele pot fi
concepute n paralel i pot fi apelate numai dup ce au fost asignate unui task i taskul fie este
lansat de ctre un eveniment, fie este configurat s fie executat periodic.Toate limbajele
utilizeaz acelai set de caractere i sunt n conformitate cu standardele ISO i cu conveniile
pentru codificarea timpului. Standardul definete tipurile de date elementare, declaraiile
tipurilor de date compuse, iniializrile, etc. Variabilele pot fi locale sau globale. Suplimentar
fa de variabilele abstracte uzuale, sunt permise i variabile direct reprezentate, care sunt
adresate n locaiile de memorie destinate intrrilor, ieirilor sau variabilelor interne.
7.12.2. Funcii i blocuri de funcii
Funciile bloc reprezint unul din elementele de baz ale standardului. Un caz special
al acestora l reprezint funciile (fr memorie). Acestea nu au variabile interne care s-i
pstreze valoarea ntre dou invocri ale unei funcii i, de aceea, la fiecare invocare, pentru
417
aceeai intrare produc aceeai ieire. Funciile ncorporate pot fi compuse ntr-o manier
aciclic pentru a obine funcii noi.
Funciile pot fi scrise fie n limbajul Text Structurat, fie n limbajul Diagrame cu
Funcii Bloc. Sintaxa acestui din urm limbaj este un amestec de text i grafic ASCII,
originea sa datorndu-se compatibilitii retroactive cu limbajele existente.
Funciile bloc, care sunt funcii cu memorie, constituie elementul software major al
standardului. n terminologia software o funcie bloc este un modul reactiv cu variabile i
structur de date proprii i cu interfa cu exteriorul. Declararea lor este din punct de vedere
sintactic similar cu cea a funciilor. Ele pot fi imbricate, adic o funcie bloc poate constitui
argumentul unei alte funcii bloc.
Exist multe funcii bloc standard, cum ar fi bistabilele, temporizatoarele i
numrtoarele. Alte funcii bloc ofer variante discretizate ale unor operatori n timp
continuu, cum ar fi elementele integrative i derivative.
Unele funcii bloc apar doar n form grafic, fr definiia lor ntr-un limbaj textual.
Mai mult, pentru unele funcii bloc se specific n mod explicit c nu pot fi utilizate n limbaje
textuale.
7.12.3. Limbajele textuale Lista de Instruciuni i Text Structurat
Ambele limbaje sunt n esen limbaje imperative i secveniale clasice. Primul este un
limbaj de asamblare de nivel inferior iar al doilea este un limbaj de nivel nalt asemntor
Pascal-ului. Utiliznd ntreaga putere a acestor limbaje (de exemplu, buclele WHILE), este
posibil s se scrie proceduri al cror timp de execuie este necunoscut, nelimitat i chiar
infinit. Desigur, ncorporarea unor asemenea programe n aplicaiile de control nu este o
practic sntoas. Pe de alt parte, este posibil s se impun restricii sintactice care pot
garanta un timp de rspuns limitat. De exemplu, se pot admite numai programe care nu au
salturi napoi sau bucle FOR cu delimitatori constani.
Un alt dezavantaj al acestor limbaje este dat de caracterul lor secvenial. Acesta le face
neadecvate pentru scrierea programelor de control care implic paralelisme. Prin urmare,
concurena poate fi realizat fie prin multitasking, fie prin considerarea programelor scrise n
aceste limbaje ca blocuri funcionale n programe scrise n alte limbaje care accept
paralelismul (Diagrame cu Funcii Bloc sau Diagrame de Funcii Secveniale).
7.12.4. Diagrama Scar
Este un limbaj grafic conceput pentru compatibilitate retroactiv cu formalismul
diagramelor logice scar (relay ladder logic), el nsui un rezultat al compatibilitii
retroactive cu schemele electrice convenionale (cu relee).
n esen, n acest limbaj se scriu relaii dintre valorile strii curente i a variabilelor de
intrare, pe de o parte, i valorile strilor urmtoare i ale ieirilor, pe de alt parte, plus cteva
specificaii referitoare la ordinea evalurii condiiilor implicate.
7.12.5. Diagrame cu Funcii Bloc
Reprezint un limbaj grafic ce permite compunerea unor funcii bloc simple n vederea
formrii unor funcii bloc mai mari i mai complexe. Interaciunea dintre funciile bloc este
reprezentat prin conductori care conecteaz variabilele de ieire de la un bloc cu
variabilele de intrare ale altui bloc.
O compunere de mai multe funcii bloc poate fi ncapsulat ntr-un bloc mai mare,
ncurajndu-se prin aceasta un stil de programare modular i ierarhizat. Totui, exist structuri
care nu sunt uor de exprimat prin notaii grafice. Acestea include buclele FOR, operaiile cu
matrici, ntreruperile i algoritmii compleci n general.
418
Pentru a decide care ramificaie se va efectua, condiiile vor fi evaluate utiliznd o ordine
implicit sau o ordine definit de ctre utilizator. Operatorul de compunere paralel este
reprezentat grafic printr-o linie orizontal dubl, de la care pot emana secvene paralele. n
acest caz, starea sistemului este dat de setul strilor proceselor paralele. Dup acest operator,
procesele paralele evoluaz independent, pn la o nou reunire a lor. Acest operator, denumit
sincronizare, este reprezentat printr-o alt linie orizontal dubl la care converg toi paii
finali din procesele paralele. Tranziia ce urmeaz dup aceast linie determin ncheierea
acestor pai. Pentru a evita ambiguitile se poate presupune c nu exist evenimente
simultane i c fiecare condiie este luat n considerare de ndat ce devine adevrat. Aceste
semantici ideale sunt aproximate printr-o implementare n care variabilele de intrare sunt
eantionate periodic. Aa cum s-a menionat anterior, paii pot conine o secven de aciuni,
care pot avea diveri calificatori. Acetia determin durata unei aciuni pe durata ct pasul este
activ. Anumite aciuni pot fi active pe ntreaga durat a pasului, unele pot fi executate numai
la nceputul sau la sfritul pasului, unele pot fi ntrziate, etc.
n concluzie, se poate afirma c diagramele de funcii secveniale reprezint un limbaj
puternic, foarte util pentru procesele care combin aspectele secveniale i paralele.
7.13. Reele de automate programabile
Automatele programabile pot fi conectate mpreun n reele n vederea obinerii unor
sisteme de control distribuite. n acest scop trebuie aleas o topologie de reea, o tehnic
eficient de partajare a reelei, care s permit accesul la resursele comune i un sistem de
adrese care s permit transmiterea mesajelor ntre membrii reelei. Aceste reele pot fi locale
(LAN) sau extinse (WAN).
7.13.1. Topologii de reea
Figura 7.34 este un sistem master / slave, unde un master obinuit recepioneaz sau
transmite date de la / la automatele slave (care nu comunic ntre ele). Toate slave-urile au
adrese care permit master-ului s genereze comenzi de genul Staia 3, transmite valoarea
intrrii analogice 4. Asemenea sisteme sunt deseori bazate pe standardul RS 422.
420
n figura 7.36 staiile au fost conectate ntr-un inel. Nu exist master i orice staie
poate comunica cu orice alt staie, avnd drepturi egale de acces. Aceast structur este
denumit legtur egal-la-egal (peer-to-peer). Este necesar utilizarea unor tehnici de evitare
a conflictelor ce apar atunci cnd dou staii doresc s utilizeze aceeai linie simultan.
421
utiliznd CSMA/CD pentru controlul accesului. SINEC H2B este o reea n band larg, ce
opereaz la 10 Mbaud pe un cablu coaxial. Este bazat pe standardele IEEE 802.4 i IEEE
802.7, n conformitate cu MAP 3.0. Controlul accesului este fcut prin transferul tokenului.
Astzi exist aproximativ 150 de sisteme de firm dar, datorit eforturilor
proiectanilor i presiunii utilizatorilor au aprut cteva sisteme de comunicaie recunoscute ca
dechise i interoperabile.
Interfaa AS-i este un sistem de interconectare serial a senzorilor, elementelor de
execuie i a altor echipamente similare, opernd la nivelul cel mai inferior al procesului. Este
destinat nlocuirii cablrii paralele convenionale. Capabilitile sale au fost mbuntite
continuu, fiind acum un partener ideal pentru magistralele de proces, cum ar fi Interbus,
PROFIBUS sau Ethernet, la care se conecteaz prin port de conectare (gateway), asigurnd
transparen total. Tehnologia AS-i este standardizat prin standardul IEC 62026-2.
Interbus este utilizat n automatizrile de mari dimensiuni i este adecvat conectrii
dispozitivelor digitale. Ethernet este o LAN foarte popular, bazat pe magistrale. Staiile sunt
conectate la cabluri prin adaptoare numite noduri de reea. Viteza transmisiei este 10 Mbaud.
PROFIBUS este o reea deschis, internaional, independent, standardizat sub
standardul european EN 50170. Protocolul PROFIBUS a fost proiectat pentru sistemele de
conducere distribuite industriale. Este prevzut cu algoritmi de detecie a erorilor, de tip CRC,
i cu ceasuri de gard. Utilizeaz transmisia pe cablu dublu i nivelele standardului RS-485,
avnd o excepional imunitate la zgomot. Tipic, o reea PROFIBUS este controlat de unul
sau mai multe automate programabile i asigur viteze de transfer de pn la 12 Mbaud.
7.13.4. Consideraii practice privind sigurana comunicaiilor
Pentru exemplificare, se consider o situaie des ntlnit, reprezentat n figura 7.39,
n care un comutator conectat la un automat programabil determin, printr-o legtur serial,
pornirea unui motor de ctre un alt automat programabil. S presupunem c motorul este
pornit i legtura este ntrerupt. Bitul corespunztor pentru Motor merge, care este setat n
automatul programabil B nu va fi resetat (datorit ntreruperii legturii) i, deci, automatul
programabil A va fi incapabil s opreasc motorul.
Cnd comutatorul este decuplat, controlul legturii seriale din automatul programabil
A va semnala o eroare (oprire), dar acest lucru nu este util pentru automatul programabil B,
care nu tie c automatul programabil A vrea s comunice cu el. Acest lucru poate s ridice
probleme, sau nu, n funcie de aplicaie.
425