SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
CAPITOLUL 7
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 număr de puncte de intrare (prin care se
primesc semnalele ce parvin de la senzori şi de la operator), un număr de puncte de ieşire
(prin care sunt transmise comenzile spre elementele de execuţie şi semnalizările spre
operator) şi interfeţe 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 configuraţia sistemului într-o
formă compactă şi de a asigura comunicaţia între acestea. Unele sertare de bază încorporează
şi sursele de alimentare necesare funcţionării modulelor. Alte modele de sertare de bază nu
conţin aceste surse, dar permit instalarea unor module ce conţin aceste surse. De asemenea,
unele automate programabile nu necesită modul de interfaţare, întrucât modulul UC
încorporează şi circuitele de interfaţă. Fgura 7.1 ilustrează o structură tipică de automat
programabil.

Fig. 7.1. Structură tipică de automat programabil
În funcţie de gradul de flexibilitate, automatele programabile pot fi de trei tipuri:
compacte, compacte extensibile şi modulare. Automatele programabile compacte au o
structură fixă, ce nu poate fi modificată sau extinsă de către utilizator. Este cazul automatelor
programabile mici (cu număr mic de puncte de I/E, de ordinul zecilor). Un exemplu în acest
sens îl reprezintă automatele programabile din familia Micrologix, produse de către Allen
Bradley.
Automatele programabile compacte extensibile (de exemplu, cele din seria FX2N a
firmei Mitsubishi permit adăugarea la un automat programabil compact (denumit base unit) a
unui număr limitat de module de I/E, pentru a adapta structura acestuia la necesităţile
aplicaţiei. Automatele programabile de acest tip fac parte din clasa automatelor programabile
medii, cu un număr de puncte de I/E de ordinul sutelor.
396
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 cât mai apropiat de cerinţele aplicaţiei 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 numărului 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 precizări, automatele programabile discutate vor fi considerate
implicit compacte extensibile sau modulare.
Fiecare producător de automat programabil pune la dispoziţia utilizatorului o gamă
largă de surse de alimentare, sertare de bază, module UC şi de interfaţare şi module de I/E.
Aceştia din urmă vor alege acele componente ale sistemului care corespund necesităţilor
aplicaţiei considerate. Operaţiunea de selecţie a modulelor şi sertarului de bază în funcţie de
cerinţele aplicaţiei se numeşte configurare. De aici reiese unul din marile avantaje ale
automatelor programabile, şi anume flexibilitatea lor: ele pot fi configurate în funcţie de
specificul aplicaţiei.
În continuarea capitolului sunt discutate în detaliu caracteristicile automatelor
programabile, cu exemplificări pentru pentru câteva 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 intrări discrete
Modulele de intrări 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, realizaţi cu un LED şi un fototranzistor, ca în figura 7.2.a. Deoarece nu există
conexiuni electrice între diodă şi tranzistor, este obţinută o foarte bună izolare electrică (tipic
1-4 KV).
Un modul de intrări discrete conţine pentru fiecare punct de intrare câte un canal de
intrare. Structura tipică a unui canal de intrare în c.c. este ilustrată în figura 7.2.b.
Când butonul este apăsat, curentul va trece prin dioda D1, determinând comutarea
tranzistorului TR1, transmiţându-se astfel semnalul prin buffer către UC. Dioda D2 este un
LED, cu rol de confirmare a semnalului de intrare. Canalele modulelor de intrări discrete în
c.a. au structura similară cu cele în c.c., fiind prevăzute în plus cu o punte redresoare şi un
filtru.
Conectarea semnalelor se poate face prin şuruburi (individual pentru fiecare semnal),
dacă modulul este prevăzut cu bloc de terminale, sau printr-un conector tipizat, dacă modulul
este prevăzut cu conector. Figura 7.2.c arată modul de conectare a semnalelor de intrare la un
modul de intrări discrete pe 8 puncte, ce necesită sursă externă.
Majoritatea producătorilor de automate programabile furnizează module de intrări
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 fără necesitatea utilizării unor surse
externe.

397
Fig. 7.2. a) Un izolator optic; b) un canal al unui modul de intrări discrte în c.c. ;
c) Conectarea semnalelor la un modul de intrări discrete

7.2.2. Module de intrări analogice
Un modul de intrări analogice converteşte un semnal analogic cu variaţie continuă
într-o reprezentare digitală care poate fi utilizată apoi de către program. Semnalele analogice
acceptate de către aceste module au valori tipizate (0-5 V, 0-10 V, 10 V, 0-20 mA, 4-20 mA,
etc.). Această conversie analog-numerică este inevitabil însoţită de o diminuare a rezoluţiei,
care depinde de numărul de biţi utilizaţi pentru reprezentarea numerică a unui semnal
analogic. Tabelul 7.1 prezintă erorile introduse de conversia analog- numerică, în funcţie de
numărul de biţi utilizaţi pentru conversie.
Tabelul 7.1. Erorile introduse de conversia analog numerică
Număr de biţi
Domeniu
Eroare ( )
8
0-255
0,4
10
0-1023
0,1
12
0-4095
0,025

Fig. 7.3. Lărgimea de bandă şi
frecvenţa critică

La un multiplexor de 4 căi care
selectează pe rând în inel fiecare canal, fiecare
semnal analogic va fi citit o dată la fiecare 80
ms. La acest timp trebuie adăugată durata
ciclului program şi timpul de comunicaţie, 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
care se va putea modifica şi pote fi reprezentat printr-un grafic amplitudine-frecvenţă, ca în
figura 7.3.
Pentru a extrage eşantioanele corecte, semnalul trebuie eşantionat cu o frecvenţă mai
mare decât 2 fc. În sistemele reale, fc este rareori cunoscut cu precizie şi, uzual, este aleasă o
rată de eşantionare de 4-10 fc.
În general, automatele programabile lucrează cu cuvinte de 16 biţi. Dacă un modul de
intrări analogice ocupă un slot în sertarul de bază şi citeşte o sigură intrare analogică, acest
lucru va fi o risipă costisitoare de adrese de I/E. Un modul de intrări discrete cu 16 puncte
costă uzual aproximativ un sfert din preţul unui modul de intrări analogice. Acest neajuns
poate fi eliminat prin utilizarea multiplexării, aşa cum reiese din figura 7.4.
Aici, patru semnale de intrare analogice, separate unul de altul prin amplificatoare de
izolare, sunt selectate pe rând prin comutatoare electronice şi sunt convertite într-o valoare
numerică cu un singur convertor analog-numeric. Asemenea module procesează, de obicei, 4,
8 sau 16 semnale de intrare analogice.
Un modul de intrări analogice cu 8 canale şi 12 biţi rezoluţie va furniza 8 valori
numerice în gama 0-4095. De regulă, acestea trebuie preluate de către program şi convertite în
unităţi inginereşti. De aceea, un automat programabil trebuie să rezolve două probleme: cum

Fig. 7.4. Modul de intrări analogice cu 4 canale multiplexate
să preia data multiplexată de la modulul de intrări analogice şi cum să utilizeze această dată în
program. În principiu, există 2 moduri de preluare a datelor, reprezentate în figura 7.5.

Fig. 3.5. Modalităţi de conectare la automate programabile a modulelor de intrări analogice:
a) prin selecţie directă; b) prin funcţionare continuă
Automatul programabil selectează canalul dorit prin trimiterea unei adrese pe 3 sau 4
biţi ca o instrucţiune de ieşire către modul, împreună cu comanda “converteşte”. Modulul
trimite înapoi un semnal “Gata” şi rezultatul conversiei pe 12 biţi, ce poate fi citit printr-o
instrucţiune de intrare. Această metodă are avantajul că programatorul poate alege perioade de
eşantionare diferite pentru fiecare canal.
399
Metoda din figura 7.5.b este mai des utilizată. Un bloc de locaţii de memorie din
memoria automatului programabil este asociat direct cu modulul de intrări analogice. Acesta
funcţionează continuu, înscriind valori numerice în locaţiile de memorie, de unde pot fi citite
direct de către program.
Conversia semnalului din forma primară pe 12 biţi în unităţi inginereşti se face
conform relaţiei:
N V max V min
(7.1)
VM
V min
4095
unde: VM este valoarea măsurată (în unităţi inginereşti), N este valoarea semnalului în forma
primară pe 12 biţi, Vmax este valoarea maximă a semnalului în unităţi inginereşti
(corespunzătoare lui 4095) iar Vmin este valoarea minimă a semnalului în unităţi inginereşti
(corespunzătoare lui 0).
PLC-5 al firmei Allen Bradley citeşte semnalele analogice cu un modul de intrări
analogice (1771-IFE) care poate citi, în forma sa cea mai simplă, 8 intrări analogice. UC
comunică cu modulul prin intermediul unor instrucţiuni numite “transferuri pe bloc”, care
transferă data la/de la un bloc de locaţii 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 intrări analogice utilizează ambele instrucţiuni BTW şi BTR. Instrucţiunea
BTW este utilizată o singură dată, după pornirea automatului programabil, pentru
configurarea modulului iar instrucţiunea BTR este utilizată ulterior pentru citirea datelor, aşa
cum reiese din figura 7.6.
Instrucţiunea
BTW
defineşte
comportarea modulului: dacă va furniza date
în cod binar sau BCD, dacă se vor utiliza 8
semnale diferenţiale 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 înlăturarea zgomotelor
Fig. 7.6. Instrucţiunile 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 informaţii pentru a furniza citiri direct în unităţi
inginereşti. De exemplu, figura 7.7.a ilustrează o treaptă de program care transmite 15 cuvinte

Fig. 7.7. a) Instrucţiunea BTW; b) Instrucţiunea BTR

400
de date începând de la locaţia N 11:10 către modulul din poziţia din stânga a slotului 2 al
sertarului de bază 3 ori de câte ori B 3/5 este închis.
Odată făcută definirea, valorile pot fi citite la intervalele de timp necesare cu
instrucţiunea BTR, ca în figura 7.7.b, în care sunt citite 20 de valori de la modulul aflat în
poziţia din stânga a slotului 5 al sertarului de bază 4 ori de câte ori B 3/72 este 1. Valorile sunt
memorate începând cu locaţia N 12:0.
7.3. Module de ieşire
7.3.1. Module de ieşiri discrete
Permit transmiterea comenzilor generate de program spre elementele de execuţie
bipoziţionale la tensiunile necesare (5 Vcc, 12-24 Vcc/ca, 110-220 Vca, etc), necesitând
izolare pentru a limita neajunsurile datorate zgomotelor electrice şi defectelor instalaţiei.
Există două tipuri de bază de module de ieşire. În figura 7.8.a, 8 ieşiri 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 ieşiri discrete: a) cu sursă comună; b) cu sursă separată
Un modul de ieşiri izolate, prezentat în figura 3.8.b are ieşiri şi protecţii individuale şi
poate fi conectat direct la orice circuit din exterior. Însă modulul este mai complicat, un
modul cu 8 ieşiri izolate putând primi pe terminalele sale tensiuni diferite din 8 direcţii.
În figura 7.9 este prezentat un circuit de ieşire pe tranzistor, ieşire care generează
curent (source). Dacă se utilizează tranzistoare npn rezultă un canal de ieşire care absoarbe
curent (sink).

Fig. 7.9. Circuit de ieşire în c.c. pe tranzistor

401
Un modul de ieşiri discrete în c.a. utilizează, de obicei, triace. Acestea au avantajul că
se dezactivează la trecerea prin zero a curentului prin sarcină, ceea ce elimină interferenţele
provocate la dezactivarea sarcinilor inductive.
7.3.2. Module de ieşiri analogice
Deseori automatul programabil trebuie să genereze semnale de ieşire analogice, tot
aşa cum trebuie să citească intrări analogice. Ca şi intrările analogice, aceste semnale au game
standard: 0-5 V, 0-10 V, 4-20 mA, etc.
Un modul de ieşiri analogice tipic al firmei Allen Bradley, 1771-OFE, are 4 canale de
ieşire, fiecare transformând o valoare numerică pe 12 biţi (0-4095) într-o ieşire analogică
[109]. Sunt utilizate amplificatoare de izolare pe ieşiri pentru a reduce efectul zgomotelor şi
pentru a permite conectarea semnalelor analogice la dispozitive externe alimentate la tensiuni
diferite. Valorile numerice corespunzătoare semnalelor analogice provin de la locaţii de
memorie din UC, aşa cum reiese din figura 7.10.

Fig. 7.10. Generarea semnalelor analogice printr-un modul de ieşiri analogice
În interiorul modulului de intrări analogice există un singur convertor numericanalogic (CAN), care converteşte valoarea numerică provenită din memoria UC în semnale
analogice. Rezultatul conversiei este apoi atribuit unuia din cele 4 canale de către un
multiplexor cu 4 căi. De aceea, valoarea numerică de convertit este însoţită de o informaţie
suplimentară, care semnifică numărul canalului căruia îi va fi atribuit rezultatul conversiei.
Pentru o bună rezoluţie, automatul programabil ar trebui să utilizeze întregul domeniu
0-4095, dar acest lucru nu este întotdeauna posibil. Dacă, de exemplu, automatul programabil
setează gama vitezei unui motor între 0 şi 1350 rot/min, el va trebui să convertească valorile
0-1350 în gama 4-20 mA. Ecuaţia (7.1) poate fi rescrisă sub forma:
( N VMin ) (V max V min)
(7.2)
VCAN
4095
unde: VCAN este valoarea transmisă către convertorul analog-numeric (în gama 0-4095), N
este valoarea de convertit în unităţi inginereşti iar Vmin şi Vmax sunt valorile minime şi
maxime ale semnalului numeric.
Automatul programabil PLC-5 comunică cu modulul 1771-OFE prin instrucţiuni
BTW. Programatorul setează în memoria UC un bloc de 12 cuvinte, din care primele 4 conţin
valorile numerice ce vor fi transmise convertorului numeric-analogic iar următoarele 8 conţin
valorile Vmin şi Vmax pentru fiecare din cele 4 canale. Figura 7.11 prezintă un exemplu tipic,
în care o referinţă analogică de viteză este mărită şi micşorată prin butoane controlate de
operator.

402
Fig. 7.11. Controlul vitezei unui motor prin comenzi ale operatorului
Numărătorul din figura 3.11 păstrează viteză direct în rot/min, dar cu preţul diminuării
rezoluţiei. Pentru gama 0-1350 rot/min, eroarea datorată rezoluţiei este de aproximativ 0,1 ,
faţă de eroarea teoretică datorată rezoluţiei, de 0,025 (vezi tabelul 7.1).
7.4. Module speciale
Aceste module servesc la realizarea unor funcţii ce nu pot fi implementate cu
modulele de I/E discutate anterior, fie datorită particularităţii semnalelor procesate, fie
datorită complexităţii acestor funcţii. Un exemplu tipic îl constituie modulul numărător de
mare viteză, util pentru numărarea trenurilor de impulsuri cu frecvenţă mare.

Fig. 7.12. Structura unui modul numărător de mare viteză
Numărătorul din figura 7.12 este alimentat cu impulsuri de la un codificator, care
produce două trenuri de impulsuri decalate, fiind posibilă deducerea sensului de mişcare.
Valoarea curentă a numărătorului poate fi citită în orice moment şi poate fi modificată prin
program. De asemenea, UC poate transmite şi o valoare prestabilită.
Modulul îşi va acţiona ieşirile în funcţie de relaţia dintre valoarea curentă (acumulată)
şi valoarea prestabilită. Aceste ieşiri sunt în c.c. pentru a minimiza întârzierile.
403
Alte aplicaţii ale modulelor inteligente sunt cititoarele de coduri cu bare, controlerele
pentru motoare pas cu pas şi aplicaţiile de control a calităţii prin staţii vision.
7.5. Comanda la distanţă
Uzual, un automat programabil se compune dintr-un modul UC şi un număr de
module de I/E montate într-unul sau mai multe sertare de bază locale. Însă, în cazul
aplicaţiilor în care instalaţiile sunt distribuite în spaţiu la distanţe mari, această structură ar
necesita aducerea tuturor semnalelor la un punct central prin cabluri lungi şi costisitoare. Un
alt dezavantaj îl constituie necesitatea renunţării la semnalele transferate la tensiuni mici.
De aceea, producătorii de automate programabile au prevăzut posibilitatea montării
sertarelor de bază cu module de I/E la distanţă faţă de modulul UC şi a conectării acestor
sertare cu modulul UC prin cabluri ecranate bifilare sau prin cabluri cu fibre optice. Astfel,
sertarele de bază pot fi montate la câţiva km de modulul UC.
Se reduce costul cablurilor prin plasarea sertarelor de bază la locul aplicaţiei, pentru
conectarea semnalelor de I/E la automatul programabil fiind necesare doar cabluri scurte. Mai
puţin evident, comanda la distanţă permite realizarea unor unităţi complete, dispuse în
apropierea instalaţiilor, unităţi ce pot fi testate înaintea instalării şi punerii în funcţiune.
7.6. Identificarea adreselor de I/E
Această operaţie înseamnă realizarea unei corespondenţe între semnalele procesului şi
variabilele programului, în urma căreia fiecărui 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 funcţie 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 prezentaţi algoritmii de atribuire a adreselor de
I/E pentru câteva automate programabile reprezentative.
7.6.1. Adresarea I/E la automatul programabil PLC-5 al firmei Allen Bradley
Acest automat programabil poate cuprinde până la 8 sertare de bază în versiunea 5/25.
Sertarul de bază ce conţine modulul UC este automat sertarul de bază 0. Adresele celorlalte
sertare de bază pot fi stabilite prin switch-uri (în gama 1-7). Legătura între sertarul de bază 0
şi celelalte se realizează prin cabluri de comunicaţie seriale.

Fig. 7.13. Adresarea I/E la PLC-5 al firmei Allen Bradley
Există trei moduri diferite de configurare a sertarelor de bază, dintre care va fi discutat
cel mai simplu (şi mai logic). Fiecare sertar de bază conţine 8 sloturi, numerotate 0-7, şi în
fiecare slot pot fi instalate două module. De exemplu, în figura 7.13 slotul 1 conţine un modul
de intrare pe 16 puncte şi un modul de ieşire pe 16 puncte, iar slotul 2 conţine două module de
404
ieşire pe 8 puncte. Adresarea intrărilor are forma generală I: sertar slot / bit ,
unde bit poate avea una sau două cifre. Allen Bradley utilizează adresarea biţilor în octal.
De exemplu, adresa I:27/14 reprezintă intrarea 14 din slotul 7 al sertarului de bază 2. Ieşirile
sunt adresate într-o manieră
similară: O: sertar slot / bit , astfel că
O:35/06 este ieşirea 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 câte 8 biţi, ce formează un octet. Un semnal este identificat prin numărul
său de bit (0-7) şi numărul său de octet (0-127).Intrările sunt notate prin I octet . bit
iar ieşirile 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 ieşirea 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 octeţi) şi pe 32 de puncte (4 octeţi).
Adresarea fixă a sloturilor este descrisă în figura 7.14.a. Fiecărui slot îi sunt atribuiţi în ordine

Fig. 7.14. Adresarea I/E la Siemens: a) fixă; b) variabilă
4 octeţi. Intrarea I 12.4 este bitul 4 din primul octet al modulului din slotul 3 al primului sertar
de bază. Dacă se utilizează module pe 16 puncte (2 octeţi) cu adresare fixă (4 octeţi), cei doi
octeţi mai semnificativi din fiecare slot sunt pierduţi.
În toate sistemele utilizatorul are posibilitatea alegerii adreselor de octet, ceea ce
corespunde formei de adresare variabilă a sloturilor (vezi figura 7.14.b). Prima adresă de octet
şi domeniul (2 octeţi pentru modulele pe 16 puncte, 4 octeţi pentru modulele pe 32 de puncte)
pot fi setate independent pentru fiecare slot prin switch-urile din modulul adaptor al fiecărui
sertar de bază.
7.6.3. Adresarea I/E la automatul programabil GEM-80 al firmei CEGELEC
Şi în acest caz adresele de I/E sunt alocate în funcţie de biţi, octeţi şi sertar de bază.
Sertarul de bază ce conţine modulul UC poate conţine 8 sloturi pentru modulele de I/E.
Numărul lor poate fi suplimentat prin utilizarea unor sertare de bază locale cu 12
sloturi sau la distanţă, aşa cum reiese din figura 7.15.
Pe lângă magistrala I/E de bază, este disponibilă o magistrală I/E de verificare, care
permite modulului UC să verifice starea semnalelor de I/E la distanţă cu ajutorul unei unităţi
GEM inteligente.
Semnalele de I/E sunt adresate prin cuvinte de 16 biţi, un cuvânt corespunzând la unul
sau două sloturi, cu prefixele A pentru intrări şi B pentru ieşiri. Adresele de bit sunt alocate în
zecimal, în gama 0-15. De exemplu, A 3.12 este bitul de intrare 12 din cuvântul 3 iar B 5.04
este bitul 4 din cuvântul 5.

405
Fig. 7.15. Structura unui sistem GEM-80
Un cuvânt poate fi numai intrare sau numai ieşire. Nu este permisă duplicarea
cuvintelor de adresă. Modulele de I/E sunt disponibile pe 8, 16 şi 32 de biţi, astfel că unui slot
îi pot reveni o jumătate de cuvânt, un cuvânt sau două cuvinte, în funcţie de modulele
utilizate.
Adresele individuale de slot pot fi setate prin comutatoare rotative fixate pe panoul din
spatele fiecărui sertar de bază. Utilizatorul are libertate în alegerea adreselor dar, de obicei, se
preferă o logică secvenţială. Figura 7.16 prezintă o structură tipică pentru un sistem GEM-80.

Fig. 7.16. Adresarea I/E la GEM-80 cu module pe 8 biţi
7.6.4. Adresarea I/E la automatul programabil Master al firmei ABB
Automatul programabil Master al firmei ABB (la origine ASEA) este un sistem mai
complex decât cele analizate până acum . Structura sa este descrisă în figura 7.17.a.

Fig. 7.17. Sistem Master ABB: a) structura sistemului; b) structura programului;
c) o parte a bazei de date
406
Modulele de I/E nu sunt identificate prin poziţia lor în sertarul de bază, ci prin adresa
setată pe modul. Deci, adresele de I/E nu reflectă poziţia modulului. Un modul poate fi mutat
în altă poziţie (împreună cu conectorul său) fără 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) dând detalii asupra modulului (cum ar fi tipul său,
adresa sa şi, eventual, rata de scanare) iar nivelele inferioare dând relaţii despre fiecare canal
al modulului (cum ar fi nivelul semnalului, modul de utilizare al său, constanta de filtrare).
Baza de date conţine 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 conţine procesor, sursă
de alimentare şi conexiuni de I/E, toate înglobate într-o singură unitate . Cea mai mică unitate,
F2-40M, are 24 de intrări şi 16 ieşiri. Cele 24 de intrări sunt notate X400-X427 (în octal) iar
cele 16 ieşiri sunt notate Y430-Y447 (în octal). Numerele (aparent arbitrare) corespund, de
fapt, în mod direct locaţiilor de memorie unde sunt păstrate imaginile intrărilor şi ieşirilor.
Adrese similare sunt utilizate şi în sistemele mai mari ale seriei.
7.7. Memorii interne pe bit
În majoritatea aplicaţiilor un automat programabil este nevoit să memoreze, pe lângă
valorile semnalelor de I/E, şi semnalele interne pentru date cum ar fi “pompa funcţionează”,
“sistem fără defect”, etc. Ar fi foarte costisitor să se aloce ieşiri adevărate pentru aceste
semnale, astfel că toate automatele programabile oferă memorii interne de bit. Acestea se
numesc “relee auxiliare”la Mitsubishi, “fanioane” la Siemens, “spaţiu general de lucru” la
GEM-80 şi “memorii de bit” la Allen Bradley.
Mitsubishi utilizează notaţia M nnn, cu nnn=100-377 în octal. Notaţia la Siemens
este F octet.bit, de exemplu, F 27.06. GEM-80 [110] are o varietate de spaţii generale
de lucru. Cel mai utilizat se numeşte tabela G. O variabilă de memorie din tabela G apare în
program ca G cuvânt.bit (de exemplu, G 52.14). Valorile memorate în tabela G sunt fără
reţinere, adică sunt resetate la (re)pornirea automatului programabil. În schimb, valorile
memorate în tabela R (de exemplu, R 12.03) sunt păstrate şi atunci când automatul
programabil este oprit sau când alimentarea este decuplată.
La PLC-5 memoria de bit este notată prin B 3/n, unde n este numărul locaţiei de
memorie (de exemplu, B 3/192). B înseamnă memorie de bit iar 3 este obligatoriu şi este
utilizat când PLC-5 memorează date în fişiere. Astfel, memoria de bit constituie fişierul 3
(B3), temporizatoarele constituie fişierul 4 (T4) iar numărătoarele fişierul 5 (C5).
Automatul programabil Master al firmei ABB [108] nu necesită neapărat memorii
interne de bit, această funcţie fiind îndeplinită de elementele şi conexiunile din interiorul
bazei sale de date şi de către limbajul de programare.
Cea mai des întâlnită formă de programare a memoriei pe bit este ilustrată în figura
7.18.a. Aici, ieşirea C (de exemplu, “instalaţie pornită”) este activată când este activată
intrarea A (de exemplu, “Start”), şi rămâne activată până când se dezactivează intrarea B
(“Stop”). Funcţionarea este reprezentată în diagrama temporală din figura 7.18.b.

407
Fig. 7.18. a) Circuit de memorare a biţilor; b) diagrama temporală de funcţionare
Deseori, pentru programarea memoriilor pe bit sunt utilizate circuite basculante
bistabile (CBB), disponibile în programare sub forma unor blocuri logice. Figura 7.19.a este
un exemplu de utilizare a CBB RS la Siemens pentru comanda contactorului unui motor. Se
observă utilizarea unor contacte normal închise pentru butoanele de Stop.

Fig. 7.19. a) CBB RS la Siemens; b) CBB SRAO la ABB
La automatul programabil Master al firmei ABB există cinci tipuri de CBB. Primul
este CBB SR elementar, celelalte tipuri încorporând porţi ŞI/SAU interne (cu numărul de
intrări configurabil de către programator), care preced bistabilul. Figura 7.19.b este un
exemplu de bistabil prevăzut cu o poartă ŞI pe intrarea Set şi o poartă SAU pe intrarea Reset,
de unde vine şi denumirea sa (SRAO – SR AND/OR). Alte tipuri sunt SRAA (AND/AND),
SROA (OR/AND) şi SROO (OR/OR).

Fig. 7.20. a) Instrucţiunile Latch/Unlatch la Allen Bradley; b) Instrucţiunile Set/Reset la
Mitsubishi
La Allen Bradley memoriile pe bit pot fi setate cu instrucţiunea L (Latch), respectiv
resetate cu instrucţiunea U (Unlatch). Figura 7.20.a exemplifică modul de utilizare a celor
două instrucţiuni pentru comanda unui motor.
Automatul programabil F2 al firmei Mitsubishi utilizează o idee similară,
instrucţiunile fiind denumite SET şi RST, ca în figura 7.20.b. În ambele cazuri din figura
408
7.20, prioritatea aparţine ultimei trepte de program (dintre cele două), datorită ciclului
program, fapt care dă prioritate, în mod corect, semnalului STOP.
Căderea alimentării sau oprirea automatului programabil cauzează probleme
memoriilor de bit. Unele memorii ar trebui să-şi păstreze conţinutul pe durata nefuncţionării
automatului programabil iar altele ar trebui resetate la repornire. În acest scop, producătorii de
automate programabile permit utilizatorului să stabilească care sunt memoriile de bit care îşi
vor păstra starea pe durata nefuncţionării automatului programabil (numite memorii cu
reţinere) şi care se vor şterge la (re)pornire (numite memorii fără reţinere).
7.8. Temporizatoare
Măsurarea 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 către utilizator.
Prima din acestea este unitatea de măsură a timpului. Unităţile de timp uzuale sunt 10 ms, 100
ms, 1 s, 10 s, 100 s, utilizarea uneia sau alteia neafectând precizia temporizatorului.
Următoarea valoare definită este durata temporizării (sau valoarea prestabilită–preset).
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 întârzia 1,5 s.
Fiecare temporizator dispune de un set de semnale ce pot fi utilizate de către program.
Figura 7.21 arată semnalele generate de către un temporizator la anclanşare al PLC-5 (numit
TON) şi de către un temporizator la declanşare al PLC-5 (numit TOF).

Fig. 7.21. Semnale ale temporizatoarelor la PLC-5: a) temporizator TON;
b) temporizator TOF
Semnificaţiile lor sunt următoarele:
 EN reprezintă intrarea temporizatorului
 TT este activat pe durata măsurării timpului
 DN arată încheierea temporizării
De asemnea, majoritatea automatelor programabile permit accesarea prin program a
valorii curente a timpului măsurat, denumită valoare acumulată.
GEM-80 tratează temporizatoarele ca un bloc de întârziere, cu valoarea prestabilită
memorată în blocul VALUE. Siemens utilizează o idee similară, dar are mai multe tipuri de
temporizatoare. PLC-5 utilizează temporizatoarele la sfârşitul treptelor de program, semnalele
temporizatoarelor fiind disponibile sub formă de contacte ce pot fi utilizate în altă parte.
Figura 7.22 este o aplicaţie tipică pentru un PLC-5, un GEM-80 şi un SIMATIC S5115U. Programul comandă contactorul unui motor, care este oprit şi pornit prin butoane.
Contactorul are un contact auxiliar care se închide atunci când contactorul este anclanşat şi
care arată efectiv când merge motorul. Dacă contactorul este declanşat, semnalul de la
contactul auxiliar va fi pierdut. Acesta nu poate fi verificat mai devreme de 1,5 s după
declanşarea contactorului, pentru a lăsa timp suficient pentru comutarea contactului.
Programul verifică contactul auxiliar şi semnalizează un defect de acţionare dacă există
probleme.
409
Fig. 7.22. Tipuri diferite de temporizatoare utilizate pentru aceeaşi aplicaţie: a) notaţia PLC-5;
b) notaţia GEM-80; c) notaţia SIMATIC S5-115U

Fig. 7.23. Temporizatoare: a) fără reţinere; b) cu reţinere; c) cu reţinere în notaţia Allen
Bradley; d) cu reţinere în notaţia Siemens
Valoarea acumulată a temporizatoarelor discutate până acum devine 0 de fiecare dată
când intrarea temporizatorului trece în 0 (figura 7.23.a). Această funcţionare corespunde
temporizatoarelor fără reţinere. Uneori, însă, este util să se poată păstra valoarea acumulată
(chiar dacă intrarea temporizatorului a devenit 0) şi la reactivarea acestei intrări să se continue
temporizarea de la valoarea la care s-a oprit, ca în figura 7.23.b. Această funcţionare
410
corespunde unui temporizator cu reţinere. Pentru acestea trebuie utilizat un semnal
suplimentar pentru aducerea lor la 0.
Pentru măsurarea unor timpi mai mari decât cei posibili cu un singur temporizator, se
pot conecta în cascadă mai multe temporizatoare sau se pot utiliza împreună numărătoare şi
temporizatoare.
7.9. Numărătoare
Numărătoarele sunt componente fundamentale ale multor programe de automat
programabil şi, de aceea, toate automatele programabile sunt prevăzute cu anumite tipuri de
numărătoare. Structura tipică a unui numărător este prezentată în figura 7.24. Fiecărui
numărător îi sunt asociate două valori. Prima este valoarea prestabilită, care poate fi
considerată valoarea destinaţie a numărătorului şi poate fi modificată prin program. A doua
este valoarea acumulată, care va fi incrementată la fiecare tranziţie 0 1 a intrării de numărare
înainte şi va fi decrementată la fiecare tranziţie 0 1 a intrării de numărare înapoi. Ea poate fi
adusă la zero prin aplicarea unui semnal 1 pe intrarea Reset. Atunci când valoarea acumulată
devine egală cu valoarea prestabilită este generat un semnal de “Numărare terminată”. Ca şi la
temporizatoare, valoarea acumulată poate fi citită şi utilizată în alte părţi ale programului. În
plus, unele numărătoare dispun şi de semnalul “Valoare zero”.

Fig. 7.24. Numărător reversibil: a) schema internă; b) operaţia de numărare
Figura 7.25 prezintă o aplicaţie de numărare realizată cu PLC-5, SIMATIC S5 şi
GEM-80. Obiectele ce trec pe un conveior sunt detectate cu o fotocelulă şi numărate. Când o
încărcătură este completă, conveiorul este oprit şi becul “Încărcare completă” este aprins.
Operatorul deplasează încărcătura şi poate apăsa butonul “Restart” pentru a reporni secvenţa.

Fig. 7.25. Aplicaţie a numărătoarelor: a) la PLC-5; b) la SIMATIC S5; c) la GEM-80
411
Ca şi la temporizatoare, atunci când valoarea destinaţie nu poate fi atinsă cu un singur
numărător, este posibilă conectarea mai multor numărătoare în cascadă.
7.10. Variabile numerice
Pe lângă variabilele pe bit, automatele programabile permit declararea şi utilizarea în
programe a variabilelor numerice. Majoritatea automatelor programabile lucrează cu cuvinte
pe 16 biţi, ce permit reprezentarea numerelor în gama 0-65.535 sau în complement faţă de 2
în gama –32768 +32767. Aceste numere se numesc întregi. Atunci când este necesară
procesarea unor întregi mai mari pot fi utilizate două cuvinte de 16 biţi. Acest tip de întreg
este disponibil la Master (sub numele de “întreg lung”) şi la modelele SIMATIC S5-135U şi
SIMATIC S5-155U (sub numele de “cuvânt dublu”).
Majoritatea automatelor programabile permit şi utilizarea numerelor (în virgulă
mobilă), care constau din două cuvinte de 16 biţi care conţin mantisa şi exponentul.
Majoritatea producătorilor utilizează standardul IEEE 32 biţi simplă precizie care
permite reprezentarea numerelor în gama (1,175E-38 3,402E38). Anumiţi producători au
micşorat exponentul pentru o mai mare precizie în mantisă (de exemplu, la automatul
programabil Master gama este (5,4E-20 9,22E18)).
Tipul formatelor numerice disponibile variază considerabil de la un automat
programabil la altul. F2 al firmei Mitsubishi permite doar transferuri, comparări şi ieşiri ale
datelor numerice de la numărătoare sau temporizatoare, aceasta făcând din el în esenţă un
automat programabil cu prelucrare pe bit. La Siemens, modelul SIMATIC S5-115U utilizează
numai întregi pe 16 biţi, dar următorul model în gamă, 135U, poate procesa atât întregi pe 16
şi 32 de biţi, cât şi numere în virgulă mobilă.
PLC-5 utilizează o treaptă de program pentru fiecare transfer. De exemplu, în figura
7.26.a are loc transferul numărului din locaţia N 7:34 la valoarea prestabilită a
temporizatorului T 4:6, atunci când condiţiile din treaptă sunt îndeplinite. Sursa şi destinaţia
pot fi orice locaţie de memorie în care pot exista date numerice.
Siemens şi CEGELEC utilizează o abordare uşor diferită. Amândouă tratează un
transfer de date cu două instrucţiuni separate, utilizând în acest scop un acumulator separat (o
locaţie de memorie de un cuvânt). Siemens utilizează instrucţiunea L (Load) pentru a
transfera data de la sursă în acumulator şi instrucţiunea T (Transfer) pentru a transfera data
din acumulator la destinaţie, ca în figura 7.26.b. Sursa şi destinaţia pot fi orice locaţii de
memorie.
La GEM-80 utilizarea acumulatorului nu este evidentă. Instrucţiunea AND transferă
numărul binar de la adresa specificată în acumulator iar instrucţiunea OUT transferă
conţinutul acumulatorului la adresa specificată. În figura 7.26.c valoarea binară a cuvântului
de 16 biţi A12 este înscrisă într-o memorie internă de 16 biţi G24. Sunt posibile conversii
BCD-binar şi binar-BCD cu instrucţiunile BCDIN, respectiv BCDOUT.

Fig. 7.26. Transferul datelor: a) la PLC-5; b) la SIMATIC S5; c) la GEM-80
Majoritatea automatelor programabile permit compararea numerelor. Atunci când se
compară numere reale este recomandată evitarea testului “=”. În plus, PLC-5 dispune de
412
instrucţiunea 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 puţin patru operaţii aritmetice (+, -, , :). Pentru a putea
preveni posibilele erori cauzate de aceste operaţii, aceste automate programabile sunt
prevăzute şi cu fanioane de depăşire. Pentru efectuarea operaţiilor 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 instrucţiune de calcul pe bloc, care permite evaluarea unei
expresii aritmetice într-o singură instrucţiune. SIMATIC S5-115U evaluează instrucţiunile
aritmetice în format IL (listă de instrucţiuni). În figura 7.26.b a fost ilustrat un exemplu de
transfer, în care se utilizează acumulatorul. De fapt, există două acumulatoare, instrucţiunile
aritmetice utilizând conţinutul ambelor acumulatoare. Automatele programabile Master al
firmei ABB şi GEM-80 al firmei CEGELEC oferă instrucţiuni aritmetice similare.
Unele automate programabile sunt prevăzute cu instrucţiuni speciale pentru procesarea
semnalelor analogice. La GEM-80 cele mai utilizate sunt:
 SQRT - extrage radical de ordinul 2 (de exemplu, în cazul traductoarelor diferenţiale);
LINCON - realizează X (A/B)+C cu limitarea rezultatului;
FGEN - generează o funcţie pe baza unor puncte (utilă, de exemplu, la liniarizări);
LIMIT - limitează inferior sau superior valoarea unui semnal;
RAMP - limitează viteza de creştere sau de descreştere a unui semnal;
ANALAG - generează un element de întârziere de ordinul 1.
Majoritatea automatelor programabile care permit utilizarea modulelor de I/E
analogice sunt prevăzute cu funcţia PID. De exemplu, GEM-80 este prevăzut cu funcţia
PIDABS care permite implementarea regulatoarelor PID. Figura 7.27 exemplifică cel mai
simplu mod de utilizare al acestei funcţii.

Fig. 7.27. Funcţia PID la GEM-80
Adresele pentru K, TI, Td sunt specificate în blocul VALUE, care, pentru acest
exemplu, începe la adresa W220. În total, o funcţie PIDABS necesită 15 locaţii de memorie în
care sunt înscrise informaţii referitoare la:
Codul de eroare
Valorile constantelor K, TI, Td, modificabile de către utilizator sau prin program
Limitele ieşirii
Viteza maximă de modificare a ieşirii
Modul menţinere, pentru menţinerea ieşirii la o valoare fixă
Modul inactiv, pentru menţinerea ieşirii la valoarea zero
Cu excepţia lui F2, toate celelalte automate programabile discutate recunosc funcţia
PID. Acest fapt sporeşte gama aplicaţiilor ce pot fi comandate cu automate programabile.
7.11. Ciclul program
Un program de automat programabil se comportă ca o buclă executată permanent, ca
în figura 7.28.a. Instrucţiunile sunt executate succesiv şi, după execuţia ultimei instrucţiuni,
operarea se reia cu execuţia primei instrucţiuni. Deci, un automat programabil nu comunică
continuu cu procesul, ci intermitent.
O execuţie completă a programului din figura 7.28.a se numeşte “ciclu program”
(program scan, scan cycle) iar timpul necesar execuţiei sale se numeşte “durata ciclului
413
program”. Aceasta depinde de dimensiunea programului şi de viteza procesorului, o valoare
tipică fiind 2-5 ms/cuvânt. Uzual, durata unui ciclu program este 10-50 ms.
Figura 7.28.a poate fi extinsă la figura 7.28.b. Automatul programabil nu citeşte
intrările în ordinea specificată de program (cum s-ar putea înţelege din figura 7.28.a). La
începutul fiecărui ciclu program automatul programabil citeşte starea tuturor intrărilor şi o
memorează în memoria sa. Când programul adresează o intrare, va fi citită valoarea memorată
a acesteia la începutul ciclului program, şi nu valoarea curentă a ei.

Fig. 7.28. Ciclul program şi organizarea memoriei: a) execuţia programului; b) secvenţierea
programului; c) organizarea memoriei
Pe de altă parte, ieşirile nu sunt modificate în momentul în care sunt calculate. O zonă
de memorie a automatului programabil, corespunzătoare ieşirilor, este modificată de program
şi, apoi, toate ieşirile sunt actualizate simultan la sfârşitul ciclului program curent.
Se poate considera că memoria automatului programabil constă din patru zone, aşa
cum apare în figura 7.28.c. Intrările sunt citite şi memorate într-o zonă imagine a intrărilor la
începutul ciclului program iar ieşirile sunt calculate şi memorate într-o zonă imagine a
ieşirilor, de unde sunt actualizate (transferate spre punctele de ieşire) la sfârşitul fiecărui ciclu
program. Această zonă de date este mai mică decât cum ar fi de aşteptat. Pentru un automat
programabil cu 1000 de I/E discrete, această zonă ar consta din 26 locaţii de memorie de 16
biţi (un cuvânt). O valoare analogică va necesita un cuvânt. Temporizatoarele şi
numărătoarele necesită câte două cuvinte (unul pentru valoarea curentă şi unul pentru
valoarea prestabilită) iar 16 memorii interne pe bit necesită un cuvânt. Majoritatea memoriei
este alocată, de fapt, celei de-a patra zone, zona programului.
Evident, ciclul program limitează viteza semnalelor la care automatul programabil
trebuie să răspundă. În figura 7.29.a, un automat programabil este utilizat pentru numărarea
unei secvenţe de impulsuri rapide, cu frecvenţa mai mică decât cea de execuţie a ciclului
program. Se observă că automatul programabil numără corect.

Fig. 7.29. Efectul ciclului program asupra impulsurilor rapide

414
În figura 7.29.b frecvenţa impulsurilor este mai mare decât frecvenţa de execuţie 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 decât
durata ciclului program. Impulsurile mai scurte pot fi citite corect numai dacă se întâmplă ca
ele să fie prezente la momentele potrivite, lucru care nu poate fi garantat. În general, frecvenţa
impulsurilor trebuie să fie mai mare decât ½ din durata ciclului program, dar în practică există
şi alţi factori de care trebuie să se ţină cont la stabilirea acestei frecvenţe (cum ar fi filtrele
modulelor de intrare).
Mai puţin evident, un ciclu program poate cauza un decalaj aleator între intrări şi
ieşiri. În figura 7.30 este prezentată o intrare care trebuie să comande activarea imediată a
unei ieşiri. În cazul cel mai bun, intrarea apare la începutul ciclului program, ducând la
activarea ieşirii după un ciclu program. În figura 7.30.b intrarea a apărut imediat după citirea
intrărilor, fiind văzută de automatul programabil abia la începutul celui de al doilea ciclu
program. Prin urmare, ieşirea va fi activată cu o întârziere de două cicluri program faţă de
momentu activării intrării.

Fig. 7.30. Efectul ciclului program asupra timpului de răspuns: a) cazul cel mai favorabil; b)
cazul cel mai defavorabil
În majoritatea aplicaţiilor acest decalaj de câteva ms nu este important. Totuşi, în
aplicaţiile unde sunt necesare acţiuni rapide, acest decalaj poate fi critic. Pentru a putea
aborda cu succes asemenea aplicaţii, producătorii de automate programabile oferă o gamă
largă de module speciale, cum ar fi, de pildă, cele descrise în paragraful 7.4.
Însăşi redactarea programului poate conduce la întârzieri nedorite, dacă logica
programului lucrează împotriva execuţiei programului. Automatul programabil începe fiecare
ciclu program cu prima instrucţiune şi procesează toate instrucţiunile următoare într-o
manieră secvenţială. Apoi iarăşi actualizează ieşirile, citeşte intrările, execută instrucţiunile,
ş.a.m.d. În figura 7.31.a o intrare determină o ieşire, dar nu direct, ci prin intermediul a cinci
paşi. Logica programului decurge, în acest caz, împotriva ciclului program.

Fig. 7.31. Decalaje datorate programului: a) logica este împotriva execuţiei programului; b)
logica este conformă cu execuţia programului
415
În primul ciclu program intrarea determină evenimentul A. În următorul ciclu program
evenimentul A determină evenimentul B. După cinci cicluri program de la activarea intrării,
evenimentul D determină activarea ieşirii. Dacă programul este realizat ca în figura 7.31.b,
întreaga secvenţă are loc într-un singur ciclu program.
Efectele duratei ciclului program devin mai complexe în cazul existenţei unor sertare
de bază comandate la distanţă şi conectate prin cablu serial. În general, starea acestor I/E este
citită de către un scaner de I/E, ca în figura 7.32, care, uzual, nu este sincronizat cu ciclul
program. De exemplu, cu o durată a ciclului program de 30 ms şi cu un ciclu de comandă la
distanţă a I/E de 50 ms, cel mai scurt timp de răspuns poate fi de 30 ms, dar cel mai mare
poate fi de 160 ms (cu o I/E pierzând la limită ciclul I/E iar ciclul I/E pierzând la limită ciclul
program).

Fig. 7.32. Efectul ciclurilor program şi de I/E
În cazul programelor pentru controlul unor procese secvenţiale, durata unui ciclu
program este dependentă şi de tehnica de programare utilizată. Există două tehnici posibile de
realizare a programului: programarea orientată după ieşiri şi programarea orientată după stări.
Prima tehnică presupune generarea directă a ieşirii pe baza unei ecuaţii logice în care apar
numai acele semnale de I/E care condiţionează starea ieşirii. Rezultă un program mai scurt
(deci o durată a ciclului program mai mică), dar mai greu de înţeles. A doua tehnică
presupune întocmirea diagramei stărilor, în care sunt puse în evidenţă stările posibile ale
automatului secvenţial şi tranziţiile posibile între aceste stări. Programul defineşte mai întâi
condiţiile de activare a fiecărei stări, condiţiile de activare a fiecărei tranziţii şi abia apoi
condiţiile de activare a ieşirilor. Se obţine un program mai lung, dar mult mai uşor de înţeles.
Pentru reducerea efectului duratei ciclului program, producătorii de automate
programabile oferă mai multe facilităţi. Tipic, există posibilitatea utilizării unor module de I/E
inteligente şi independente (discutate în paragraful 7.4) şi există posibilitatea secţionării
programelor în zone cu timpi de execuţie diferiţi. Pentru a reduce timpul de răspuns la unele
semnale de intrare considerate foarte importante, care necesită acţiuni urgente (cum sunt
semnalele de avarie, de exemplu) există posibilitatea transferului prin întreruperi.
În scopul evitării buclelor infinite automatele programabile au fost prevăzute cu un
ceas de gardă (watchdog timer). Acesta este resetat la începutul fiecărui ciclu program şi
măsoară timpul în care se execută fiecare ciclu program. Valoarea prestabilită a sa este fixată
de către producător, ţine cont de timpii de citire a intrărilor şi de actualizare a ieşirilor şi
corespunde celui mai lung program posibil (dat de dimensiunea memoriei program) care
utilizează instrucţiunile cele mai mari consumatoare de timp. Dacă valoarea măsurată a
duratei ciclului program curent este mai mică decăt valoarea prestabilită a ceasului de gardă,
416
acesta permite execuţia unui nou ciclu program. În caz contrar, execuţia programului este
terminată şi toate ieşirile sunt dezactivate.
7.12. Limbaje de programare
Standardul IEC 1131-3 defineşte cinci limbaje de programare a automatelor
programabile:
1. Diagrama Scară (Ladder Diagram), care este inspirată din schemele electrice
convenţionale;
2. Lista de Instrucţiuni (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 asemănător
limbajului Pascal;
4. Diagrame cu Funcţii Bloc (Function Blocks Diagrams), care constituie un formalism de
procesare a datelor prin reţele de funcţii bloc conectate prin semnale;
5. Diagrame de Funcţii Secvenţiale (Sequential Function Charts), care reprezintă un
formalism grafic inspirat din standardul francez Grafcet, bazat pe o variantă a unei clase
de reţele Petri.
Lista de Instrucţiuni şi Textul Structurat fac parte din limbajele tradiţionale de
programare a calculatoarelor. Diagrama Scară şi Diagrama cu Funcţii Bloc imită structura
predecesoarelor lor (implementări hardware ale regulatoarelor discrete şi continue, paralele
prin natura lor). Diagrama de Funcţii Secvenţială combină secvenţialitatea cu paralelismul.
7.12.1. Caracteristici comune ale limbajelor de programare
Standardul începe cu o descriere a configuraţiei ş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 citeşte intrările sale,
calculează starea sa şi actualizează ieşirile sale. Detaliile referitoare la modul în care un
anume automat programabil realizează operaţiile de I/E şi managementul memoriei nu fac
parte din standard. Se presupune că valorile citite de la senzori şi valorile scrise la ieşiri sunt
transferate cu mediul extern prin intermediul unor locaţii de memorie specifice şi că
programul de aplicaţie nu trebuie să se ocupe cu aceste detalii. Standardul conţine structuri
care permit programelor diferite să fie încărcate şi executate pe acelaşi automat programabil
(separat sau în multi-tasking) şi mai multor automate programabile să funcţioneze în paralel şi
să comunice prin “căi de acces”, care sunt abstracţii ale protocoalelor de comunicaţie. Un
program este construit dintr-un număr de elemente software diferite, scrise în oricare din cele
cinci limbaje, existând 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 către un eveniment, fie este configurat să fie executat periodic.Toate limbajele
utilizează acelaşi set de caractere şi sunt în conformitate cu standardele ISO şi cu convenţiile
pentru codificarea timpului. Standardul defineşte tipurile de date elementare, declaraţiile
tipurilor de date compuse, iniţializările, etc. Variabilele pot fi locale sau globale. Suplimentar
faţă de variabilele abstracte “uzuale”, sunt permise şi variabile “direct reprezentate”, care sunt
adresate în locaţiile de memorie destinate intrărilor, ieşirilor sau variabilelor interne.
7.12.2. Funcţii şi blocuri de funcţii
Funcţiile bloc reprezintă unul din elementele de bază ale standardului. Un caz special
al acestora îl reprezintă funcţiile (fără memorie). Acestea nu au variabile interne care să-şi
păstreze valoarea între două invocări ale unei funcţii şi, de aceea, la fiecare invocare, pentru
417
aceeaşi intrare produc aceeaşi ieşire. Funcţiile încorporate pot fi compuse într-o manieră
aciclică pentru a obţine funcţii noi.
Funcţiile pot fi scrise fie în limbajul Text Structurat, fie în limbajul Diagrame cu
Funcţii Bloc. Sintaxa acestui din urmă limbaj este un amestec de text şi grafică ASCII,
originea sa datorându-se compatibilităţii retroactive cu limbajele existente.
Funcţiile bloc, care sunt funcţii cu memorie, constituie elementul software major al
standardului. În terminologia software o funcţie 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 funcţiilor. Ele pot fi imbricate, adică o funcţie bloc poate constitui
argumentul unei alte funcţii bloc.
Există multe funcţii bloc standard, cum ar fi bistabilele, temporizatoarele şi
numărătoarele. Alte funcţii bloc oferă variante discretizate ale unor operatori în timp
continuu, cum ar fi elementele integrative şi derivative.
Unele funcţii bloc apar doar în formă grafică, fără definiţia lor într-un limbaj textual.
Mai mult, pentru unele funcţii bloc se specifică în mod explicit că nu pot fi utilizate în limbaje
textuale.
7.12.3. Limbajele textuale Lista de Instrucţiuni şi Text Structurat
Ambele limbaje sunt în esenţă limbaje imperative şi secvenţiale clasice. Primul este un
limbaj de asamblare de nivel inferior iar al doilea este un limbaj de nivel înalt asemănător
Pascal-ului. Utilizând întreaga putere a acestor limbaje (de exemplu, buclele WHILE), este
posibil să se scrie proceduri al căror timp de execuţie este necunoscut, nelimitat şi chiar
infinit. Desigur, încorporarea unor asemenea programe în aplicaţiile de control nu este o
practică sănătoasă. Pe de altă parte, este posibil să se impună restricţii sintactice care pot
garanta un timp de răspuns limitat. De exemplu, se pot admite numai programe care nu au
salturi înapoi sau bucle FOR cu delimitatori constanţi.
Un alt dezavantaj al acestor limbaje este dat de caracterul lor secvenţial. Acesta le face
neadecvate pentru scrierea programelor de control care implică paralelisme. Prin urmare,
concurenţa poate fi realizată fie prin multitasking, fie prin considerarea programelor scrise în
aceste limbaje ca blocuri funcţionale în programe scrise în alte limbaje care acceptă
paralelismul (Diagrame cu Funcţii Bloc sau Diagrame de Funcţii Secvenţiale).
7.12.4. Diagrama Scară
Este un limbaj grafic conceput pentru compatibilitate retroactivă cu formalismul
diagramelor logice scară (relay ladder logic), el însuşi un rezultat al compatibilităţii
retroactive cu schemele electrice convenţionale (cu relee).
În esenţă, în acest limbaj se scriu relaţii dintre valorile stării curente şi a variabilelor de
intrare, pe de o parte, şi valorile stărilor următoare şi ale ieşirilor, pe de altă parte, plus câteva
specificaţii referitoare la ordinea evaluării condiţiilor implicate.
7.12.5. Diagrame cu Funcţii Bloc
Reprezintă un limbaj grafic ce permite compunerea unor funcţii bloc simple în vederea
formării unor funcţii bloc mai mari şi mai complexe. Interacţiunea dintre funcţiile bloc este
reprezentată prin “conductori” care conectează variabilele de ieşire de la un bloc cu
variabilele de intrare ale altui bloc.
O compunere de mai multe funcţii bloc poate fi încapsulată într-un bloc mai mare,
încurajându-se prin aceasta un stil de programare modular şi ierarhizat. Totuşi, există structuri
care nu sunt uşor de exprimat prin notaţii grafice. Acestea include buclele FOR, operaţiile cu
matrici, întreruperile şi algoritmii complecşi în general.
418
Acest limbaj seamănă foarte mult cu limbajul Lustre, fundamentul mediului de
programare Scade, utilizat în controlul avioanelor şi al proceselor nucleare. Datorită
criticalităţii acestor aplicaţii, Lustre se bazează pe semantici foarte precise, pe un proces de
compilaţie care verifică şi existenţa buclelor cauzale şi pe generarea unui cod optimizat care
rulează toate programele ca o singură buclă (fără multitasking).
7.12.6. Diagrame de Funcţii Secvenţiale
Acest limbaj constituie un formalism care combină operaţiile secvenţiale şi paralele.
Considerarea sa ca un al cincilea limbaj IEC sau ca o unealtă de structurare de nivel superior
este o chestiune de terminologie. Se bazează pe standardul francez Grafcet, care poate fi
caracterizat sumar ca o variantă sincronă şi etichetată de reţele Petri. Entitatea de bază în
Diagramele de Funcţii Secvenţiale îl reprezintă pasul. Din punctul de vedere al automatului
programabil, un pas este o parte a stării sale. Acolo unde nu există paralelism, pasul este
identic cu starea. Atunci când un program se află într-un anume pas, aceasta implică
menţinerea la o anumită valoare a unor variabile de ieşire controlate de către program (numite
“acţiuni”). De exemplu, un pas “încălzire” într-un program poate însemna că o variabilă
booleană, care comandă dispozitivul de încălzire, se află în starea “Activat”. Procesul fizic pe
care se bazează pasul poate fi mai complicat şi include bucle de reacţie de nivel inferior, dar
la nivelul Diagramei de Funcţii Secvenţiale acesta este reprezentat prin una sau mai multe
variabile care rămân constante pe perioada cât pasul este activ. Acest lucru este similar cu
arhitectura ierarhizată utilizată în reţelele de comunicaţii, unde ceea ce este privit ca o acţiune
“transmisie fişier” la un nivel, este realizat printr-un proces dinamic complex la un nivel
inferior. Paşii sunt reprezentaţi prin dreptunghiuri (figura 7.33). În fiecare pas se iau decizii
asupra variabilelor de ieşire, adică se specifică acţiunile. Care ieşiri se vor reseta şi care se vor
menţine active depinde de calificatorii acţiunilor ce constituie pasul. Doi paşi consecutivi sunt
separaţi printr-o tranziţie, care, în esenţă, este o condiţie asupra variabilelor de intrare. Atunci
când condiţia de tranziţie este adevărată, primul pas se încheie şi începe pasul următor. O
tranziţie este reprezentată printr-o linie orizontală îngroşată ce intersectează linia verticală ce
uneşte doi paşi.

Fig. 7.33. Exemple de structuri în Diagramele de Funcţii Secvenţiale: a) tranziţie; b)
ramificaţie; c) paralelism
Există două variabile speciale asociate fiecărui pas. Prima este o variabilă booleană
care indică faptul că pasul este activ sau nu. Cealaltă este un temporizator care măsoară
timpul scurs de la activarea pasului. Această variabilă poate apare în tranziţii ca oricare altă
variabilă şi permite definirea condiţiei de tranziţie ca o limită de timp. Mecanismul de
implementare a ramificaţiei constă în utilizarea căilor divergente, ceea ce înseamnă
descompunerea liniei ce iese dintr-un pas în două sau mai multe linii, fiecare din ele având
asociate condiţii de tranziţie şi paşi următori. Condiţiile nu trebuie să fie mutual exclusive.
419
Pentru a decide care ramificaţie se va efectua, condiţiile vor fi evaluate utilizând o ordine
implicită sau o ordine definită de către utilizator. Operatorul de compunere paralelă este
reprezentat grafic printr-o linie orizontală dublă, de la care pot emana secvenţe paralele. În
acest caz, starea sistemului este dată de setul stărilor proceselor paralele. După acest operator,
procesele paralele evoluază independent, până la o nouă reunire a lor. Acest operator, denumit
sincronizare, este reprezentat printr-o altă linie orizontală dublă la care converg toţi paşii
finali din procesele paralele. Tranziţia ce urmează după această linie determină încheierea
acestor paşi. Pentru a evita ambiguităţile se poate presupune că nu există evenimente
simultane şi că fiecare condiţie este luată în considerare de îndată ce devine adevărată. Aceste
semantici ideale sunt aproximate printr-o implementare în care variabilele de intrare sunt
eşantionate periodic. Aşa cum s-a menţionat anterior, paşii pot conţine o secvenţă de acţiuni,
care pot avea diverşi calificatori. Aceştia determină durata unei acţiuni pe durata cât pasul este
activ. Anumite acţiuni pot fi active pe întreaga durată a pasului, unele pot fi executate numai
la începutul sau la sfârşitul pasului, unele pot fi întârziate, etc.
În concluzie, se poate afirma că diagramele de funcţii secvenţiale reprezintă un limbaj
puternic, foarte util pentru procesele care combină aspectele secvenţiale şi paralele.
7.13. Reţele de automate programabile
Automatele programabile pot fi conectate împreună în reţele în vederea obţinerii unor
sisteme de control distribuite. În acest scop trebuie aleasă o topologie de reţea, o tehnică
eficientă de partajare a reţelei, care să permită accesul la resursele comune şi un sistem de
adrese care să permită transmiterea mesajelor între membrii reţelei. Aceste reţele pot fi locale
(LAN) sau extinse (WAN).
7.13.1. Topologii de reţea
Figura 7.34 este un sistem master / slave, unde un master obişnuit recepţionează 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 “Staţia 3, transmite valoarea
intrării analogice 4”. Asemenea sisteme sunt deseori bazate pe standardul RS 422.

Fig. 3.34. Reţea master / slave
Reţeaua în stea din figura 7.35 este de asemenea bazată pe un master conectat punct la
punct cu staţiile individuale. Controlul comunicaţiei este realizat de staţia master.
Comunicaţiile staţie –la –staţie au loc prin intermediul şi cu cooperarea master-ului.

Fig. 7.35. Reţea în stea

420
În figura 7.36 staţiile au fost conectate într-un inel. Nu există master şi orice staţie
poate comunica cu orice altă staţie, având drepturi egale de acces. Această structură este
denumită legătură egal-la-egal (peer-to-peer). Este necesară utilizarea unor tehnici de evitare
a conflictelor ce apar atunci când două staţii doresc să utilizeze aceeaşi linie simultan.

Fig. 7.36. Reţea în inel
Reţeaua din figura 7.37 este probabil cel mai utilizat tip de reţea de către automatele
programabile. Există o singură linie cu rezistoare terminale şi, la fel ca reţeaua în inel, este o
legătură peer-to-peer, toate staţiile având acelaşi statut.

Fig. 7.37. Legătură peer-to-peer structurată ca o magistrală unică
7.13.2. Partajarea reţelei
O legătură peer-to-peer permite mai multor staţii să utilizeze aceeaşi reţea. Inevitabil,
vor exista la un moment dat două staţii ce vor dori să comunice în acelaşi timp. Dacă nu se iau
măsuri corespunzătoare, va rezulta blocarea reţelei.
Una din tehnici constă în alocarea unor intervale de timp în care fiecare staţie poate săşi plaseze mesajele. Aceasta se numeşte multiplexare prin divizarea timpului (time divizion
multiplexing) sau TDM. Chiar dacă previne conflictele, poate fi ineficientă deoarece o staţie
va trebui să aştepte pentru intervalul ei de timp chiar dacă nici o staţie nu are vreun mesaj de
transmis. Într-o oarecare măsură pot fi preîntâmpinate diferenţele între frecvenţele mesajelor
unor staţii diferite prin alocarea mai multor intervale de timp uneia sau mai multor staţii. Întro reţea cu cinci staţii, notate A,…, E, dacă staţia A este mai solicitată, poate fi adoptată o
ordine de lucru de genul ABACADAEAB…Aceasta se numeşte TDM statistică.
Intervalul de timp gol din figura 7.38 utilizează un pachet cu circulaţie continuă prin
inel. Când o staţie doreşte să transmită un mesaj, ea aşteaptă ca pachetul gol să ajungă în
dreptul ei, după care poate să-şi plaseze mesajul.

Fig. 7.38. Intervalul gol şi circulaţia tokenului

421
O idee similară este transferul simbolului sau tokenului, unde un simbol cu
semnificaţia “Permisiune de transmisie” circulă prin reţea. O staţie poate emite doar atunci
când este în posesia simbolului, care este eliberat doar atunci când se primeşte confirmarea
recepţionării mesajului.
Atât metoda pachetului gol cât şi metoda transferului tokenului necesită o cale de
reinstalare a pachetului gol sau a tokenului la refacerea reţelei după o cădere a ei. Acest lucru
este realizat, de obicei, de o staţie master sau de o staţie monitor, care însă nu are acelaşi rol
ca şi staţiile master din figurile 7.34 şi 7.35.
De obicei, sistemele bazate pe magistrale utilizează o metodă prin care o staţie care
doreşte să emită un mesaj “ascultă” în reţea să vadă dacă aceasta este utilizată de cineva sau
nu. Dacă este, staţia aşteaptă. Dacă reţeaua nu este ocupată, staţia emite mesajul ei, prin
aceasta blocând toate celelalte staţii până când se termină mesajul. Această metodă se
numeşte acces multiplu prin detectarea purtătoarei (carrier sense multiple acces) sau CSMA.
Totuşi, pot apare situaţii neplăcute atunci când două staţii încep simultan să emită
mesaje, producându-se o coliziune a mesajelor. Această situaţie poate fi uşor detectată,
ambele staţii oprindu-se şi aşteptând un timp oarecare înainte de a încerca să retransmită. Este
utilizat un timp aleator de oprire a celor două staţii pentru a nu se repeta coliziunea. Această
tehnică se numeşte acces multiplu prin detectarea purtătoarei cu detecţia coliziunilor (CSMA
with colision detection) sau CSMA/CD.
Există o diferenţă fundamentală între TDM, pachetul gol şi transferul tokenului pe de
o parte, şi CSMA pe de altă parte. La primul grup există o anumită risipă de timp, în schimb
fiecare staţie are garantat accesul într-un interval de timp specificat. La CSMA există puţină
risipă de timp, dar teoretic se poate întâmpla ca o staţie să sufere coliziuni repetate şi chiar să
nu poată deloc să-şi transmită mesajul.
7.13.3. Protocoale de comunicaţie
Fiecare producător de automat programabil a dorit să aibă propriul său standard şi să
conecteze echipamentele sale într-o manieră particulară. Aceste sisteme se numesc brevetate
sau de firmă (proprietary) şi nu pot fi interconectate cu echipamente de la alţi producători.
Automatele programabile PLC–5 de la Allen Bradley comunică pe o magistrală peerto-peer fără master prin transferul tokenului, denumită Data Highway Plus. Este bazată pe un
cablu coaxial şi operează la 57,6 Kbaud. Adresele de staţie sunt setate prin comutatoare DIP
existente la fiecare automat programabil, pe o linie putând exista până la 64 de staţii.
GEM – 80 are 2 forme de comunicaţie serială între echipamente. Prima, numită
Starnet, realizează comunicaţii master/slave punct-la-punct cu o buclă de 20 mA şi cu un
protocol numit ESP (Extended Simple Protocol). Acesta realizează doar comunicaţii master/
slave, comunicaţiile slave/slave fiind posibile doar prin utilizarea master-ului pentru
retransmisia mesajelor.
A doua formă de comunicaţie la GEM – 80 este o legătură peer-to-peer fără master,
numită CORONET. Aceasta operează pe un cablu dublu ecranat la 9,6 Kbaud, după
standardul de semnal RS 485. Este posibilă o linie de maxim 4 km cu până la 32 de staţii.
Automatele programabile Siemens au acces la patru reţele de comunicaţie, cu numele
comun SINEC. Două din acestea, cu sufixul L, sunt reţele pentru nivele ierarhice inferioare iar
celelalte două, cu sufixul H, sunt pentru nivelele ierarhice superioare.
SINEC L1 este o reţea master / slave. Poate conţine un singur master şi până la 30 de
slave şi operează după standardul RS 485. SINEC L2, cunoscută şi ca FieldBus, este o reţea
peer-to-peer ce utilizează transferul tokenului. SINEL H1 este o reţea în bandă de bază, ce
operează la 10 Mbaud pe un cablu coaxial de maxim 2,5 km. Operează după standardul IEEE
802.3, cunoscut sub numele de Ethernet cu legături dense. Suportă până la 1024 staţii,
422
utilizând CSMA/CD pentru controlul accesului. SINEC H2B este o reţea î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 făcut prin transferul tokenului.
Astăzi există aproximativ 150 de sisteme de firmă dar, datorită eforturilor
proiectanţilor şi presiunii utilizatorilor au apărut câteva sisteme de comunicaţie recunoscute ca
dechise şi interoperabile.
Interfaţa AS-i este un sistem de interconectare serială a senzorilor, elementelor de
execuţie şi a altor echipamente similare, operând la nivelul cel mai inferior al procesului. Este
destinată înlocuirii cablării paralele convenţionale. Capabilităţile sale au fost îmbunătăţite
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), asigurând
transparenţă totală. Tehnologia AS-i este standardizată prin standardul IEC 62026-2.
Interbus este utilizată în automatizările de mari dimensiuni şi este adecvată conectării
dispozitivelor digitale. Ethernet este o LAN foarte populară, bazată pe magistrale. Staţiile sunt
conectate la cabluri prin adaptoare numite noduri de reţea. Viteza transmisiei este 10 Mbaud.
PROFIBUS este o reţea deschisă, internaţională, independentă, standardizată sub
standardul european EN 50170. Protocolul PROFIBUS a fost proiectat pentru sistemele de
conducere distribuite industriale. Este prevăzut cu algoritmi de detecţie a erorilor, de tip CRC,
şi cu ceasuri de gardă. Utilizează transmisia pe cablu dublu şi nivelele standardului RS-485,
având o excepţională imunitate la zgomot. Tipic, o reţea PROFIBUS este controlată de unul
sau mai multe automate programabile şi asigură viteze de transfer de până la 12 Mbaud.
7.13.4. Consideraţii practice privind siguranţa comunicaţiilor
Pentru exemplificare, se consideră o situaţie des întâlnită, reprezentată în figura 7.39,
în care un comutator conectat la un automat programabil determină, printr-o legătură serială,
pornirea unui motor de către un alt automat programabil. Să presupunem că motorul este
pornit şi legătura este întreruptă. Bitul corespunzător pentru “Motor merge”, care este setat în
automatul programabil B nu va fi resetat (datorită întreruperii legăturii) şi, deci, automatul
programabil A va fi incapabil să oprească motorul.
Când comutatorul este decuplat, controlul legăturii 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 funcţie de aplicaţie.

Fig. 7.39. Consideraţii de siguranţă asupra legăturilor seriale
Un aspect important este de a defini cât timp o ieşire comandată de o legătură serială
poate rămâne necontrolată. Să zicem 2 secunde. După comanda “Pornire motor”, automatul
programabil iniţiator trimite prin legătură un tren de impulsuri cu o perioadă ceva mai scurtă,
de exemplu 1,5 secunde, ca în figura 7.40. În automatul programabil B cele două forme
complementare ale acestui semnal acţionează două temporizatoare de tip TOF fixate la 2
secunde. Cu ieşirea “Legătură bună” pot fi acţionate ieşirile comandate de către legătura
serială. Dacă legătura se defectează, unul din cele două temporizatoare se va dezactiva (iar
celălalt va rămâne activat), determinând dezactivarea semnalului “Legătură bună” şi a tuturor
ieşirilor comandate de legătura serială, acestea trecând într-o stare sigură.
Zgomotul este sursa principală de probleme şi, de obicei, se manifestă printr-o creştere
a timpului de răspuns introdus de reţea.
423
Fig. 7.40. O soluţie de verificare a legăturii seriale
Primele măsuri împotriva zgomotelor sunt separarea de cablurile de alimentare prin
utilizarea unor trasee separate sau a unor tuburi de protecţie. Ecranele cablurilor trebuie să fie
neîntrerupte şi trebuie pământate toate într-un singur loc. De asemenea, ecranele cablurilor nu
trebuie să atingă părţile metalice ale dulapurilor.
7.14. Aspecte ale dependabilităţii automatelor programabile
Problemele legate de automate programabile sunt subtile. Nefuncţionarea unui
element de execuţie se poate datora unei erori în program, unui defect în automatul
programabil, unui modul de ieşire defect, unei defecţiuni la sursa de alimentare a modulului
de ieşire, unui defect la elementul de execuţie sau unui defect la limitatorul ce permite
activarea elementului de execuţie. Figura 7.41 prezintă probabilităţile de defectare ale unor
diferite părţi ale unui sistem tipic cu automat programabil.
Se observă că 95% din defectele “automatului programabil” se datorează unor
dispozitive ale instalaţiei şi doar 5% se datorează automatului programabil propriu-zis.

Fig. 7.41. Distribuţia defectelor într-un sistem tipic cu automat programabil
Înseamnă că la proiectarea unui sistem de conducere cu automat programabil, pentru
asigurarea dependabilităţii sistemului nu este suficient să se aibă în vedere numai defectele ce
pot apare în interiorul automatului programabil. Trebuie avute în vedere şi posibilele defecte
externe, întrucât apariţia lor afectează şi dependabilitatea automatului programabil.
7.15. Concluzii
Automatele programabile sunt sisteme complete, prevăzute cu un sistem de operare
robust şi cu toate elementele necesare conducerii proceselor industriale. Iată o sinteză a
principalelor lor avantaje:
 Este disponibilă o gamă largă de module de I/E, ce permit conectarea directă cu dispozitive
de I/E digitale şi analogice ale procesului. În plus, există o diversitate de module de I/E
speciale, inteligente şi autonome, care permit interfaţarea cu echipamente speciale cum ar fi
traductoare incrementale, roboţi, etc.
424
 Posibilitatea comenzii la distanţă le face deosebit de utile în conducerea proceselor
periculoase şi distribuite pe arii geografice mari.
 Adresele de I/E sunt hardware, ceea ce înseamnă că utilizatorul trebuie să le atribuie în
strictă concordanţă cu un algoritm de alocare conceput de către producător. Uzual, acest
algoritm este de tipul sertar de bază/modul/punct I/E, ceea ce uşurează activitatea de cablare.
 Pot procesa atât variabile binare, cât şi cuvinte de date. În acest scop unităţile centrale sunt
prevăzute cu memorii pe bit şi cu registre de date pentru cuvinte. Memoria de date, însă, este
mult mai mică decât la calculatoarele PC. De asemenea, pentru calcul unor algoritmi
complicaţi se recomandă conectarea la un calculator PC, pentru a nu consuma din timpul UC.
 Au un sistem de operare robust, care realizează execuţia ciclică a programelor. Citirea
intrărilor numai la începutul ciclului program şi actualizarea ieşirilor numai la sfârşitul
acestuia elimină fenomenele de hazard ce ar putea apare în cazul unei comunicaţii continue cu
mediul extern. Pe de altă parte, însă, comunicaţia periodică cu mediul extern numai la anumite
momente de timp impune restricţii asupra semnalelor de intrare şi determină întârzieri în
comanda ieşirilor. În plus, facilităţile de care dispun automatele programabile moderne
(transfer prin întreruperi, rularea blocurilor de program la viteze diferite, etc.) pot afecta
negativ ciclul program.
 Sunt disponibile cinci limbaje de programare. Ele pot fi folosite combinat în interiorul unui
program şi (în general) este posibilă conversia automată a programelor dintr-un limbaj în altul
 Pot fi conectate în reţea în arhitecturile comune sistemelor de conducere distribuite.
Comunicaţia în reţele se realizează prin protocoale de firmă sau prin protocoale standardizate
ce permit implementarea sistemelor deschise.
Prezentarea detaliată a caracteristicilor şi aptitudinilor automatelor programabile
realizată în acest capitol îndreptăţeşte considerarea lor ca soluţie viabilă şi, uneori, optimă
pentru conducerea oricărui proces industrial. Eforturile făcute în direcţia standardizării şi
impactul sistemelor deschise permit utilizarea lor şi în sisteme de conducere hibride, împreună
cu alte soluţii.

425

Contenu connexe

Tendances

Inducția electromagnetică
Inducția electromagneticăInducția electromagnetică
Inducția electromagnetică
Lau Laura
 
Energia si puterea curentului electric.
Energia si puterea curentului electric.Energia si puterea curentului electric.
Energia si puterea curentului electric.
Adorjan Darius
 
Laporan 4 gelombang filter lc dan c
Laporan 4 gelombang filter lc dan cLaporan 4 gelombang filter lc dan c
Laporan 4 gelombang filter lc dan c
Ridwan Satria
 

Tendances (20)

Teknisi pemeliharaan otomasi elektronika industri (otomasi industry 4.0)
Teknisi pemeliharaan otomasi elektronika industri (otomasi industry 4.0)Teknisi pemeliharaan otomasi elektronika industri (otomasi industry 4.0)
Teknisi pemeliharaan otomasi elektronika industri (otomasi industry 4.0)
 
Inducția electromagnetică
Inducția electromagneticăInducția electromagnetică
Inducția electromagnetică
 
Motor servo
Motor servoMotor servo
Motor servo
 
Prboptica1
Prboptica1Prboptica1
Prboptica1
 
Planul inclinat
Planul inclinatPlanul inclinat
Planul inclinat
 
Power supply
Power supplyPower supply
Power supply
 
Modul Mata Pelajaran Sistem Penerima Televisi
Modul Mata Pelajaran Sistem Penerima TelevisiModul Mata Pelajaran Sistem Penerima Televisi
Modul Mata Pelajaran Sistem Penerima Televisi
 
Semiconductori
SemiconductoriSemiconductori
Semiconductori
 
aplikasi PLC omron CP1L
aplikasi PLC omron CP1Laplikasi PLC omron CP1L
aplikasi PLC omron CP1L
 
Energia si puterea curentului electric.
Energia si puterea curentului electric.Energia si puterea curentului electric.
Energia si puterea curentului electric.
 
Transformator
TransformatorTransformator
Transformator
 
Coeficienti calorici
Coeficienti caloriciCoeficienti calorici
Coeficienti calorici
 
Referat curentul electric
Referat curentul electricReferat curentul electric
Referat curentul electric
 
Laporan 4 gelombang filter lc dan c
Laporan 4 gelombang filter lc dan cLaporan 4 gelombang filter lc dan c
Laporan 4 gelombang filter lc dan c
 
9 semikonduktor
9 semikonduktor9 semikonduktor
9 semikonduktor
 
Efectul fotoelectric-extern
Efectul fotoelectric-extern Efectul fotoelectric-extern
Efectul fotoelectric-extern
 
Analisis sinyal sinyal kecil
Analisis sinyal sinyal kecilAnalisis sinyal sinyal kecil
Analisis sinyal sinyal kecil
 
Fisiere pascal
Fisiere pascalFisiere pascal
Fisiere pascal
 
Motoare
MotoareMotoare
Motoare
 
serial interface dan serial interface
serial interface dan serial interfaceserial interface dan serial interface
serial interface dan serial interface
 

Similaire à Despre automate programabile

Principii de alcătuire a schemelor de comandă a acţionărilor electrice
Principii de alcătuire a schemelor de comandă a acţionărilor electricePrincipii de alcătuire a schemelor de comandă a acţionărilor electrice
Principii de alcătuire a schemelor de comandă a acţionărilor electrice
neculaitarabuta
 
Controlul unui motor pas cu pas
Controlul unui motor pas cu pasControlul unui motor pas cu pas
Controlul unui motor pas cu pas
kramactar
 
Principii de alcătuire a schemelor de comandă a acţionărilor electrice
Principii de alcătuire a schemelor de comandă a acţionărilor electricePrincipii de alcătuire a schemelor de comandă a acţionărilor electrice
Principii de alcătuire a schemelor de comandă a acţionărilor electrice
neculaitarabuta
 
Introducere
IntroducereIntroducere
Introducere
gelu2001
 
curs microprocesoare si microcontrolere ASC Curs 2008.ppt
curs microprocesoare si microcontrolere ASC Curs 2008.pptcurs microprocesoare si microcontrolere ASC Curs 2008.ppt
curs microprocesoare si microcontrolere ASC Curs 2008.ppt
9cqrb8vkfp
 
Tipuri de Retele _Alina Gheorghita _12B.pdf
Tipuri de Retele _Alina Gheorghita _12B.pdfTipuri de Retele _Alina Gheorghita _12B.pdf
Tipuri de Retele _Alina Gheorghita _12B.pdf
IonelStanescu
 
Comunicații mobile prin satelit pentru aplicații SCADA
Comunicații mobile prin satelit pentru aplicații SCADAComunicații mobile prin satelit pentru aplicații SCADA
Comunicații mobile prin satelit pentru aplicații SCADA
MARIUS EUGEN OPRAN
 

Similaire à Despre automate programabile (20)

Cursuri. Calculatoare de bord.pdf
Cursuri. Calculatoare de bord.pdfCursuri. Calculatoare de bord.pdf
Cursuri. Calculatoare de bord.pdf
 
Principii de alcătuire a schemelor de comandă a acţionărilor electrice
Principii de alcătuire a schemelor de comandă a acţionărilor electricePrincipii de alcătuire a schemelor de comandă a acţionărilor electrice
Principii de alcătuire a schemelor de comandă a acţionărilor electrice
 
Controlul unui motor pas cu pas
Controlul unui motor pas cu pasControlul unui motor pas cu pas
Controlul unui motor pas cu pas
 
236700985 ret521
236700985 ret521236700985 ret521
236700985 ret521
 
Proiect PP
Proiect PPProiect PP
Proiect PP
 
Principii de alcătuire a schemelor de comandă a acţionărilor electrice
Principii de alcătuire a schemelor de comandă a acţionărilor electricePrincipii de alcătuire a schemelor de comandă a acţionărilor electrice
Principii de alcătuire a schemelor de comandă a acţionărilor electrice
 
Introducere
IntroducereIntroducere
Introducere
 
Al meu
Al meuAl meu
Al meu
 
Cap01
Cap01Cap01
Cap01
 
curs porti logice si circuite digitale lectie curs 2
curs porti logice si circuite digitale lectie curs 2curs porti logice si circuite digitale lectie curs 2
curs porti logice si circuite digitale lectie curs 2
 
Curs calcul
Curs calculCurs calcul
Curs calcul
 
curs microprocesoare si microcontrolere ASC Curs 2008.ppt
curs microprocesoare si microcontrolere ASC Curs 2008.pptcurs microprocesoare si microcontrolere ASC Curs 2008.ppt
curs microprocesoare si microcontrolere ASC Curs 2008.ppt
 
Curs3
Curs3Curs3
Curs3
 
Danfoss ae wlt_soft_starter
Danfoss ae wlt_soft_starterDanfoss ae wlt_soft_starter
Danfoss ae wlt_soft_starter
 
0 evaluare sumativa_clasa_a_7
0 evaluare sumativa_clasa_a_70 evaluare sumativa_clasa_a_7
0 evaluare sumativa_clasa_a_7
 
Tipuri de Retele _Alina Gheorghita _12B.pdf
Tipuri de Retele _Alina Gheorghita _12B.pdfTipuri de Retele _Alina Gheorghita _12B.pdf
Tipuri de Retele _Alina Gheorghita _12B.pdf
 
Comunicații mobile prin satelit pentru aplicații SCADA
Comunicații mobile prin satelit pentru aplicații SCADAComunicații mobile prin satelit pentru aplicații SCADA
Comunicații mobile prin satelit pentru aplicații SCADA
 
Microcontrollere (2001).pdf
Microcontrollere (2001).pdfMicrocontrollere (2001).pdf
Microcontrollere (2001).pdf
 
Microcontrollere (2001)
Microcontrollere (2001)Microcontrollere (2001)
Microcontrollere (2001)
 
Cap.ii sistemul de prelucrare cnc
Cap.ii sistemul de prelucrare cncCap.ii sistemul de prelucrare cnc
Cap.ii sistemul de prelucrare cnc
 

Despre automate programabile

  • 1. CAPITOLUL 7 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 număr de puncte de intrare (prin care se primesc semnalele ce parvin de la senzori şi de la operator), un număr de puncte de ieşire (prin care sunt transmise comenzile spre elementele de execuţie şi semnalizările spre operator) şi interfeţe 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 configuraţia sistemului într-o formă compactă şi de a asigura comunicaţia între acestea. Unele sertare de bază încorporează şi sursele de alimentare necesare funcţionării modulelor. Alte modele de sertare de bază nu conţin aceste surse, dar permit instalarea unor module ce conţin aceste surse. De asemenea, unele automate programabile nu necesită modul de interfaţare, întrucât modulul UC încorporează şi circuitele de interfaţă. Fgura 7.1 ilustrează o structură tipică de automat programabil. Fig. 7.1. Structură tipică de automat programabil În funcţie de gradul de flexibilitate, automatele programabile pot fi de trei tipuri: compacte, compacte extensibile şi modulare. Automatele programabile compacte au o structură fixă, ce nu poate fi modificată sau extinsă de către utilizator. Este cazul automatelor programabile mici (cu număr mic de puncte de I/E, de ordinul zecilor). Un exemplu în acest sens îl reprezintă automatele programabile din familia Micrologix, produse de către Allen Bradley. Automatele programabile compacte extensibile (de exemplu, cele din seria FX2N a firmei Mitsubishi permit adăugarea la un automat programabil compact (denumit base unit) a unui număr limitat de module de I/E, pentru a adapta structura acestuia la necesităţile aplicaţiei. Automatele programabile de acest tip fac parte din clasa automatelor programabile medii, cu un număr de puncte de I/E de ordinul sutelor. 396
  • 2. 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 cât mai apropiat de cerinţele aplicaţiei 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 numărului 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 precizări, automatele programabile discutate vor fi considerate implicit compacte extensibile sau modulare. Fiecare producător de automat programabil pune la dispoziţia utilizatorului o gamă largă de surse de alimentare, sertare de bază, module UC şi de interfaţare şi module de I/E. Aceştia din urmă vor alege acele componente ale sistemului care corespund necesităţilor aplicaţiei considerate. Operaţiunea de selecţie a modulelor şi sertarului de bază în funcţie de cerinţele aplicaţiei se numeşte configurare. De aici reiese unul din marile avantaje ale automatelor programabile, şi anume flexibilitatea lor: ele pot fi configurate în funcţie de specificul aplicaţiei. În continuarea capitolului sunt discutate în detaliu caracteristicile automatelor programabile, cu exemplificări pentru pentru câteva 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 intrări discrete Modulele de intrări 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, realizaţi cu un LED şi un fototranzistor, ca în figura 7.2.a. Deoarece nu există conexiuni electrice între diodă şi tranzistor, este obţinută o foarte bună izolare electrică (tipic 1-4 KV). Un modul de intrări discrete conţine pentru fiecare punct de intrare câte un canal de intrare. Structura tipică a unui canal de intrare în c.c. este ilustrată în figura 7.2.b. Când butonul este apăsat, curentul va trece prin dioda D1, determinând comutarea tranzistorului TR1, transmiţându-se astfel semnalul prin buffer către UC. Dioda D2 este un LED, cu rol de confirmare a semnalului de intrare. Canalele modulelor de intrări discrete în c.a. au structura similară cu cele în c.c., fiind prevăzute în plus cu o punte redresoare şi un filtru. Conectarea semnalelor se poate face prin şuruburi (individual pentru fiecare semnal), dacă modulul este prevăzut cu bloc de terminale, sau printr-un conector tipizat, dacă modulul este prevăzut cu conector. Figura 7.2.c arată modul de conectare a semnalelor de intrare la un modul de intrări discrete pe 8 puncte, ce necesită sursă externă. Majoritatea producătorilor de automate programabile furnizează module de intrări 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 fără necesitatea utilizării unor surse externe. 397
  • 3. Fig. 7.2. a) Un izolator optic; b) un canal al unui modul de intrări discrte în c.c. ; c) Conectarea semnalelor la un modul de intrări discrete 7.2.2. Module de intrări analogice Un modul de intrări analogice converteşte un semnal analogic cu variaţie continuă într-o reprezentare digitală care poate fi utilizată apoi de către program. Semnalele analogice acceptate de către aceste module au valori tipizate (0-5 V, 0-10 V, 10 V, 0-20 mA, 4-20 mA, etc.). Această conversie analog-numerică este inevitabil însoţită de o diminuare a rezoluţiei, care depinde de numărul de biţi utilizaţi pentru reprezentarea numerică a unui semnal analogic. Tabelul 7.1 prezintă erorile introduse de conversia analog- numerică, în funcţie de numărul de biţi utilizaţi pentru conversie. Tabelul 7.1. Erorile introduse de conversia analog numerică Număr de biţi Domeniu Eroare ( ) 8 0-255 0,4 10 0-1023 0,1 12 0-4095 0,025 Fig. 7.3. Lărgimea de bandă şi frecvenţa critică La un multiplexor de 4 căi care selectează pe rând în inel fiecare canal, fiecare semnal analogic va fi citit o dată la fiecare 80 ms. La acest timp trebuie adăugată durata ciclului program şi timpul de comunicaţie, 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
  • 4. care se va putea modifica şi pote fi reprezentat printr-un grafic amplitudine-frecvenţă, ca în figura 7.3. Pentru a extrage eşantioanele corecte, semnalul trebuie eşantionat cu o frecvenţă mai mare decât 2 fc. În sistemele reale, fc este rareori cunoscut cu precizie şi, uzual, este aleasă o rată de eşantionare de 4-10 fc. În general, automatele programabile lucrează cu cuvinte de 16 biţi. Dacă un modul de intrări analogice ocupă un slot în sertarul de bază şi citeşte o sigură intrare analogică, acest lucru va fi o risipă costisitoare de adrese de I/E. Un modul de intrări discrete cu 16 puncte costă uzual aproximativ un sfert din preţul unui modul de intrări analogice. Acest neajuns poate fi eliminat prin utilizarea multiplexării, aşa cum reiese din figura 7.4. Aici, patru semnale de intrare analogice, separate unul de altul prin amplificatoare de izolare, sunt selectate pe rând prin comutatoare electronice şi sunt convertite într-o valoare numerică cu un singur convertor analog-numeric. Asemenea module procesează, de obicei, 4, 8 sau 16 semnale de intrare analogice. Un modul de intrări analogice cu 8 canale şi 12 biţi rezoluţie va furniza 8 valori numerice în gama 0-4095. De regulă, acestea trebuie preluate de către program şi convertite în unităţi inginereşti. De aceea, un automat programabil trebuie să rezolve două probleme: cum Fig. 7.4. Modul de intrări analogice cu 4 canale multiplexate să preia data multiplexată de la modulul de intrări analogice şi cum să utilizeze această dată în program. În principiu, există 2 moduri de preluare a datelor, reprezentate în figura 7.5. Fig. 3.5. Modalităţi de conectare la automate programabile a modulelor de intrări analogice: a) prin selecţie directă; b) prin funcţionare continuă Automatul programabil selectează canalul dorit prin trimiterea unei adrese pe 3 sau 4 biţi ca o instrucţiune de ieşire către modul, împreună cu comanda “converteşte”. Modulul trimite înapoi un semnal “Gata” şi rezultatul conversiei pe 12 biţi, ce poate fi citit printr-o instrucţiune de intrare. Această metodă are avantajul că programatorul poate alege perioade de eşantionare diferite pentru fiecare canal. 399
  • 5. Metoda din figura 7.5.b este mai des utilizată. Un bloc de locaţii de memorie din memoria automatului programabil este asociat direct cu modulul de intrări analogice. Acesta funcţionează continuu, înscriind valori numerice în locaţiile de memorie, de unde pot fi citite direct de către program. Conversia semnalului din forma primară pe 12 biţi în unităţi inginereşti se face conform relaţiei: N V max V min (7.1) VM V min 4095 unde: VM este valoarea măsurată (în unităţi inginereşti), N este valoarea semnalului în forma primară pe 12 biţi, Vmax este valoarea maximă a semnalului în unităţi inginereşti (corespunzătoare lui 4095) iar Vmin este valoarea minimă a semnalului în unităţi inginereşti (corespunzătoare lui 0). PLC-5 al firmei Allen Bradley citeşte semnalele analogice cu un modul de intrări analogice (1771-IFE) care poate citi, în forma sa cea mai simplă, 8 intrări analogice. UC comunică cu modulul prin intermediul unor instrucţiuni numite “transferuri pe bloc”, care transferă data la/de la un bloc de locaţii 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 intrări analogice utilizează ambele instrucţiuni BTW şi BTR. Instrucţiunea BTW este utilizată o singură dată, după pornirea automatului programabil, pentru configurarea modulului iar instrucţiunea BTR este utilizată ulterior pentru citirea datelor, aşa cum reiese din figura 7.6. Instrucţiunea BTW defineşte comportarea modulului: dacă va furniza date în cod binar sau BCD, dacă se vor utiliza 8 semnale diferenţiale 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 înlăturarea zgomotelor Fig. 7.6. Instrucţiunile 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 informaţii pentru a furniza citiri direct în unităţi inginereşti. De exemplu, figura 7.7.a ilustrează o treaptă de program care transmite 15 cuvinte Fig. 7.7. a) Instrucţiunea BTW; b) Instrucţiunea BTR 400
  • 6. de date începând de la locaţia N 11:10 către modulul din poziţia din stânga a slotului 2 al sertarului de bază 3 ori de câte ori B 3/5 este închis. Odată făcută definirea, valorile pot fi citite la intervalele de timp necesare cu instrucţiunea BTR, ca în figura 7.7.b, în care sunt citite 20 de valori de la modulul aflat în poziţia din stânga a slotului 5 al sertarului de bază 4 ori de câte ori B 3/72 este 1. Valorile sunt memorate începând cu locaţia N 12:0. 7.3. Module de ieşire 7.3.1. Module de ieşiri discrete Permit transmiterea comenzilor generate de program spre elementele de execuţie bipoziţionale la tensiunile necesare (5 Vcc, 12-24 Vcc/ca, 110-220 Vca, etc), necesitând izolare pentru a limita neajunsurile datorate zgomotelor electrice şi defectelor instalaţiei. Există două tipuri de bază de module de ieşire. În figura 7.8.a, 8 ieşiri 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 ieşiri discrete: a) cu sursă comună; b) cu sursă separată Un modul de ieşiri izolate, prezentat în figura 3.8.b are ieşiri şi protecţii individuale şi poate fi conectat direct la orice circuit din exterior. Însă modulul este mai complicat, un modul cu 8 ieşiri izolate putând primi pe terminalele sale tensiuni diferite din 8 direcţii. În figura 7.9 este prezentat un circuit de ieşire pe tranzistor, ieşire care generează curent (source). Dacă se utilizează tranzistoare npn rezultă un canal de ieşire care absoarbe curent (sink). Fig. 7.9. Circuit de ieşire în c.c. pe tranzistor 401
  • 7. Un modul de ieşiri discrete în c.a. utilizează, de obicei, triace. Acestea au avantajul că se dezactivează la trecerea prin zero a curentului prin sarcină, ceea ce elimină interferenţele provocate la dezactivarea sarcinilor inductive. 7.3.2. Module de ieşiri analogice Deseori automatul programabil trebuie să genereze semnale de ieşire analogice, tot aşa cum trebuie să citească intrări analogice. Ca şi intrările analogice, aceste semnale au game standard: 0-5 V, 0-10 V, 4-20 mA, etc. Un modul de ieşiri analogice tipic al firmei Allen Bradley, 1771-OFE, are 4 canale de ieşire, fiecare transformând o valoare numerică pe 12 biţi (0-4095) într-o ieşire analogică [109]. Sunt utilizate amplificatoare de izolare pe ieşiri pentru a reduce efectul zgomotelor şi pentru a permite conectarea semnalelor analogice la dispozitive externe alimentate la tensiuni diferite. Valorile numerice corespunzătoare semnalelor analogice provin de la locaţii de memorie din UC, aşa cum reiese din figura 7.10. Fig. 7.10. Generarea semnalelor analogice printr-un modul de ieşiri analogice În interiorul modulului de intrări analogice există un singur convertor numericanalogic (CAN), care converteşte valoarea numerică provenită din memoria UC în semnale analogice. Rezultatul conversiei este apoi atribuit unuia din cele 4 canale de către un multiplexor cu 4 căi. De aceea, valoarea numerică de convertit este însoţită de o informaţie suplimentară, care semnifică numărul canalului căruia îi va fi atribuit rezultatul conversiei. Pentru o bună rezoluţie, automatul programabil ar trebui să utilizeze întregul domeniu 0-4095, dar acest lucru nu este întotdeauna posibil. Dacă, de exemplu, automatul programabil setează gama vitezei unui motor între 0 şi 1350 rot/min, el va trebui să convertească valorile 0-1350 în gama 4-20 mA. Ecuaţia (7.1) poate fi rescrisă sub forma: ( N VMin ) (V max V min) (7.2) VCAN 4095 unde: VCAN este valoarea transmisă către convertorul analog-numeric (în gama 0-4095), N este valoarea de convertit în unităţi inginereşti iar Vmin şi Vmax sunt valorile minime şi maxime ale semnalului numeric. Automatul programabil PLC-5 comunică cu modulul 1771-OFE prin instrucţiuni BTW. Programatorul setează în memoria UC un bloc de 12 cuvinte, din care primele 4 conţin valorile numerice ce vor fi transmise convertorului numeric-analogic iar următoarele 8 conţin valorile Vmin şi Vmax pentru fiecare din cele 4 canale. Figura 7.11 prezintă un exemplu tipic, în care o referinţă analogică de viteză este mărită şi micşorată prin butoane controlate de operator. 402
  • 8. Fig. 7.11. Controlul vitezei unui motor prin comenzi ale operatorului Numărătorul din figura 3.11 păstrează viteză direct în rot/min, dar cu preţul diminuării rezoluţiei. Pentru gama 0-1350 rot/min, eroarea datorată rezoluţiei este de aproximativ 0,1 , faţă de eroarea teoretică datorată rezoluţiei, de 0,025 (vezi tabelul 7.1). 7.4. Module speciale Aceste module servesc la realizarea unor funcţii ce nu pot fi implementate cu modulele de I/E discutate anterior, fie datorită particularităţii semnalelor procesate, fie datorită complexităţii acestor funcţii. Un exemplu tipic îl constituie modulul numărător de mare viteză, util pentru numărarea trenurilor de impulsuri cu frecvenţă mare. Fig. 7.12. Structura unui modul numărător de mare viteză Numărătorul din figura 7.12 este alimentat cu impulsuri de la un codificator, care produce două trenuri de impulsuri decalate, fiind posibilă deducerea sensului de mişcare. Valoarea curentă a numărătorului poate fi citită în orice moment şi poate fi modificată prin program. De asemenea, UC poate transmite şi o valoare prestabilită. Modulul îşi va acţiona ieşirile în funcţie de relaţia dintre valoarea curentă (acumulată) şi valoarea prestabilită. Aceste ieşiri sunt în c.c. pentru a minimiza întârzierile. 403
  • 9. Alte aplicaţii ale modulelor inteligente sunt cititoarele de coduri cu bare, controlerele pentru motoare pas cu pas şi aplicaţiile de control a calităţii prin staţii vision. 7.5. Comanda la distanţă Uzual, un automat programabil se compune dintr-un modul UC şi un număr de module de I/E montate într-unul sau mai multe sertare de bază locale. Însă, în cazul aplicaţiilor în care instalaţiile sunt distribuite în spaţiu la distanţe mari, această structură ar necesita aducerea tuturor semnalelor la un punct central prin cabluri lungi şi costisitoare. Un alt dezavantaj îl constituie necesitatea renunţării la semnalele transferate la tensiuni mici. De aceea, producătorii de automate programabile au prevăzut posibilitatea montării sertarelor de bază cu module de I/E la distanţă faţă de modulul UC şi a conectării acestor sertare cu modulul UC prin cabluri ecranate bifilare sau prin cabluri cu fibre optice. Astfel, sertarele de bază pot fi montate la câţiva km de modulul UC. Se reduce costul cablurilor prin plasarea sertarelor de bază la locul aplicaţiei, pentru conectarea semnalelor de I/E la automatul programabil fiind necesare doar cabluri scurte. Mai puţin evident, comanda la distanţă permite realizarea unor unităţi complete, dispuse în apropierea instalaţiilor, unităţi ce pot fi testate înaintea instalării şi punerii în funcţiune. 7.6. Identificarea adreselor de I/E Această operaţie înseamnă realizarea unei corespondenţe între semnalele procesului şi variabilele programului, în urma căreia fiecărui 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 funcţie 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 prezentaţi algoritmii de atribuire a adreselor de I/E pentru câteva automate programabile reprezentative. 7.6.1. Adresarea I/E la automatul programabil PLC-5 al firmei Allen Bradley Acest automat programabil poate cuprinde până la 8 sertare de bază în versiunea 5/25. Sertarul de bază ce conţine modulul UC este automat sertarul de bază 0. Adresele celorlalte sertare de bază pot fi stabilite prin switch-uri (în gama 1-7). Legătura între sertarul de bază 0 şi celelalte se realizează prin cabluri de comunicaţie seriale. Fig. 7.13. Adresarea I/E la PLC-5 al firmei Allen Bradley Există trei moduri diferite de configurare a sertarelor de bază, dintre care va fi discutat cel mai simplu (şi mai logic). Fiecare sertar de bază conţine 8 sloturi, numerotate 0-7, şi în fiecare slot pot fi instalate două module. De exemplu, în figura 7.13 slotul 1 conţine un modul de intrare pe 16 puncte şi un modul de ieşire pe 16 puncte, iar slotul 2 conţine două module de 404
  • 10. ieşire pe 8 puncte. Adresarea intrărilor are forma generală I: sertar slot / bit , unde bit poate avea una sau două cifre. Allen Bradley utilizează adresarea biţilor în octal. De exemplu, adresa I:27/14 reprezintă intrarea 14 din slotul 7 al sertarului de bază 2. Ieşirile sunt adresate într-o manieră similară: O: sertar slot / bit , astfel că O:35/06 este ieşirea 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 câte 8 biţi, ce formează un octet. Un semnal este identificat prin numărul său de bit (0-7) şi numărul său de octet (0-127).Intrările sunt notate prin I octet . bit iar ieşirile 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 ieşirea 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 octeţi) şi pe 32 de puncte (4 octeţi). Adresarea fixă a sloturilor este descrisă în figura 7.14.a. Fiecărui slot îi sunt atribuiţi în ordine Fig. 7.14. Adresarea I/E la Siemens: a) fixă; b) variabilă 4 octeţi. Intrarea I 12.4 este bitul 4 din primul octet al modulului din slotul 3 al primului sertar de bază. Dacă se utilizează module pe 16 puncte (2 octeţi) cu adresare fixă (4 octeţi), cei doi octeţi mai semnificativi din fiecare slot sunt pierduţi. În toate sistemele utilizatorul are posibilitatea alegerii adreselor de octet, ceea ce corespunde formei de adresare variabilă a sloturilor (vezi figura 7.14.b). Prima adresă de octet şi domeniul (2 octeţi pentru modulele pe 16 puncte, 4 octeţi pentru modulele pe 32 de puncte) pot fi setate independent pentru fiecare slot prin switch-urile din modulul adaptor al fiecărui sertar de bază. 7.6.3. Adresarea I/E la automatul programabil GEM-80 al firmei CEGELEC Şi în acest caz adresele de I/E sunt alocate în funcţie de biţi, octeţi şi sertar de bază. Sertarul de bază ce conţine modulul UC poate conţine 8 sloturi pentru modulele de I/E. Numărul lor poate fi suplimentat prin utilizarea unor sertare de bază locale cu 12 sloturi sau la distanţă, aşa cum reiese din figura 7.15. Pe lângă magistrala I/E de bază, este disponibilă o magistrală I/E de verificare, care permite modulului UC să verifice starea semnalelor de I/E la distanţă cu ajutorul unei unităţi GEM inteligente. Semnalele de I/E sunt adresate prin cuvinte de 16 biţi, un cuvânt corespunzând la unul sau două sloturi, cu prefixele A pentru intrări şi B pentru ieşiri. Adresele de bit sunt alocate în zecimal, în gama 0-15. De exemplu, A 3.12 este bitul de intrare 12 din cuvântul 3 iar B 5.04 este bitul 4 din cuvântul 5. 405
  • 11. Fig. 7.15. Structura unui sistem GEM-80 Un cuvânt poate fi numai intrare sau numai ieşire. Nu este permisă duplicarea cuvintelor de adresă. Modulele de I/E sunt disponibile pe 8, 16 şi 32 de biţi, astfel că unui slot îi pot reveni o jumătate de cuvânt, un cuvânt sau două cuvinte, în funcţie de modulele utilizate. Adresele individuale de slot pot fi setate prin comutatoare rotative fixate pe panoul din spatele fiecărui sertar de bază. Utilizatorul are libertate în alegerea adreselor dar, de obicei, se preferă o logică secvenţială. Figura 7.16 prezintă o structură tipică pentru un sistem GEM-80. Fig. 7.16. Adresarea I/E la GEM-80 cu module pe 8 biţi 7.6.4. Adresarea I/E la automatul programabil Master al firmei ABB Automatul programabil Master al firmei ABB (la origine ASEA) este un sistem mai complex decât cele analizate până acum . Structura sa este descrisă în figura 7.17.a. Fig. 7.17. Sistem Master ABB: a) structura sistemului; b) structura programului; c) o parte a bazei de date 406
  • 12. Modulele de I/E nu sunt identificate prin poziţia lor în sertarul de bază, ci prin adresa setată pe modul. Deci, adresele de I/E nu reflectă poziţia modulului. Un modul poate fi mutat în altă poziţie (împreună cu conectorul său) fără 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) dând detalii asupra modulului (cum ar fi tipul său, adresa sa şi, eventual, rata de scanare) iar nivelele inferioare dând relaţii despre fiecare canal al modulului (cum ar fi nivelul semnalului, modul de utilizare al său, constanta de filtrare). Baza de date conţine 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 conţine procesor, sursă de alimentare şi conexiuni de I/E, toate înglobate într-o singură unitate . Cea mai mică unitate, F2-40M, are 24 de intrări şi 16 ieşiri. Cele 24 de intrări sunt notate X400-X427 (în octal) iar cele 16 ieşiri sunt notate Y430-Y447 (în octal). Numerele (aparent arbitrare) corespund, de fapt, în mod direct locaţiilor de memorie unde sunt păstrate imaginile intrărilor şi ieşirilor. Adrese similare sunt utilizate şi în sistemele mai mari ale seriei. 7.7. Memorii interne pe bit În majoritatea aplicaţiilor un automat programabil este nevoit să memoreze, pe lângă valorile semnalelor de I/E, şi semnalele interne pentru date cum ar fi “pompa funcţionează”, “sistem fără defect”, etc. Ar fi foarte costisitor să se aloce ieşiri adevărate pentru aceste semnale, astfel că toate automatele programabile oferă memorii interne de bit. Acestea se numesc “relee auxiliare”la Mitsubishi, “fanioane” la Siemens, “spaţiu general de lucru” la GEM-80 şi “memorii de bit” la Allen Bradley. Mitsubishi utilizează notaţia M nnn, cu nnn=100-377 în octal. Notaţia la Siemens este F octet.bit, de exemplu, F 27.06. GEM-80 [110] are o varietate de spaţii generale de lucru. Cel mai utilizat se numeşte tabela G. O variabilă de memorie din tabela G apare în program ca G cuvânt.bit (de exemplu, G 52.14). Valorile memorate în tabela G sunt fără reţinere, adică sunt resetate la (re)pornirea automatului programabil. În schimb, valorile memorate în tabela R (de exemplu, R 12.03) sunt păstrate şi atunci când automatul programabil este oprit sau când alimentarea este decuplată. La PLC-5 memoria de bit este notată prin B 3/n, unde n este numărul locaţiei de memorie (de exemplu, B 3/192). B înseamnă memorie de bit iar 3 este obligatoriu şi este utilizat când PLC-5 memorează date în fişiere. Astfel, memoria de bit constituie fişierul 3 (B3), temporizatoarele constituie fişierul 4 (T4) iar numărătoarele fişierul 5 (C5). Automatul programabil Master al firmei ABB [108] nu necesită neapărat memorii interne de bit, această funcţie fiind îndeplinită de elementele şi conexiunile din interiorul bazei sale de date şi de către limbajul de programare. Cea mai des întâlnită formă de programare a memoriei pe bit este ilustrată în figura 7.18.a. Aici, ieşirea C (de exemplu, “instalaţie pornită”) este activată când este activată intrarea A (de exemplu, “Start”), şi rămâne activată până când se dezactivează intrarea B (“Stop”). Funcţionarea este reprezentată în diagrama temporală din figura 7.18.b. 407
  • 13. Fig. 7.18. a) Circuit de memorare a biţilor; b) diagrama temporală de funcţionare Deseori, pentru programarea memoriilor pe bit sunt utilizate circuite basculante bistabile (CBB), disponibile în programare sub forma unor blocuri logice. Figura 7.19.a este un exemplu de utilizare a CBB RS la Siemens pentru comanda contactorului unui motor. Se observă utilizarea unor contacte normal închise pentru butoanele de Stop. Fig. 7.19. a) CBB RS la Siemens; b) CBB SRAO la ABB La automatul programabil Master al firmei ABB există cinci tipuri de CBB. Primul este CBB SR elementar, celelalte tipuri încorporând porţi ŞI/SAU interne (cu numărul de intrări configurabil de către programator), care preced bistabilul. Figura 7.19.b este un exemplu de bistabil prevăzut cu o poartă ŞI pe intrarea Set şi o poartă SAU pe intrarea Reset, de unde vine şi denumirea sa (SRAO – SR AND/OR). Alte tipuri sunt SRAA (AND/AND), SROA (OR/AND) şi SROO (OR/OR). Fig. 7.20. a) Instrucţiunile Latch/Unlatch la Allen Bradley; b) Instrucţiunile Set/Reset la Mitsubishi La Allen Bradley memoriile pe bit pot fi setate cu instrucţiunea L (Latch), respectiv resetate cu instrucţiunea U (Unlatch). Figura 7.20.a exemplifică modul de utilizare a celor două instrucţiuni pentru comanda unui motor. Automatul programabil F2 al firmei Mitsubishi utilizează o idee similară, instrucţiunile fiind denumite SET şi RST, ca în figura 7.20.b. În ambele cazuri din figura 408
  • 14. 7.20, prioritatea aparţine ultimei trepte de program (dintre cele două), datorită ciclului program, fapt care dă prioritate, în mod corect, semnalului STOP. Căderea alimentării sau oprirea automatului programabil cauzează probleme memoriilor de bit. Unele memorii ar trebui să-şi păstreze conţinutul pe durata nefuncţionării automatului programabil iar altele ar trebui resetate la repornire. În acest scop, producătorii de automate programabile permit utilizatorului să stabilească care sunt memoriile de bit care îşi vor păstra starea pe durata nefuncţionării automatului programabil (numite memorii cu reţinere) şi care se vor şterge la (re)pornire (numite memorii fără reţinere). 7.8. Temporizatoare Măsurarea 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 către utilizator. Prima din acestea este unitatea de măsură a timpului. Unităţile de timp uzuale sunt 10 ms, 100 ms, 1 s, 10 s, 100 s, utilizarea uneia sau alteia neafectând precizia temporizatorului. Următoarea valoare definită este durata temporizării (sau valoarea prestabilită–preset). 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 întârzia 1,5 s. Fiecare temporizator dispune de un set de semnale ce pot fi utilizate de către program. Figura 7.21 arată semnalele generate de către un temporizator la anclanşare al PLC-5 (numit TON) şi de către un temporizator la declanşare al PLC-5 (numit TOF). Fig. 7.21. Semnale ale temporizatoarelor la PLC-5: a) temporizator TON; b) temporizator TOF Semnificaţiile lor sunt următoarele:  EN reprezintă intrarea temporizatorului  TT este activat pe durata măsurării timpului  DN arată încheierea temporizării De asemnea, majoritatea automatelor programabile permit accesarea prin program a valorii curente a timpului măsurat, denumită valoare acumulată. GEM-80 tratează temporizatoarele ca un bloc de întârziere, cu valoarea prestabilită memorată în blocul VALUE. Siemens utilizează o idee similară, dar are mai multe tipuri de temporizatoare. PLC-5 utilizează temporizatoarele la sfârşitul treptelor de program, semnalele temporizatoarelor fiind disponibile sub formă de contacte ce pot fi utilizate în altă parte. Figura 7.22 este o aplicaţie tipică pentru un PLC-5, un GEM-80 şi un SIMATIC S5115U. Programul comandă contactorul unui motor, care este oprit şi pornit prin butoane. Contactorul are un contact auxiliar care se închide atunci când contactorul este anclanşat şi care arată efectiv când merge motorul. Dacă contactorul este declanşat, semnalul de la contactul auxiliar va fi pierdut. Acesta nu poate fi verificat mai devreme de 1,5 s după declanşarea contactorului, pentru a lăsa timp suficient pentru comutarea contactului. Programul verifică contactul auxiliar şi semnalizează un defect de acţionare dacă există probleme. 409
  • 15. Fig. 7.22. Tipuri diferite de temporizatoare utilizate pentru aceeaşi aplicaţie: a) notaţia PLC-5; b) notaţia GEM-80; c) notaţia SIMATIC S5-115U Fig. 7.23. Temporizatoare: a) fără reţinere; b) cu reţinere; c) cu reţinere în notaţia Allen Bradley; d) cu reţinere în notaţia Siemens Valoarea acumulată a temporizatoarelor discutate până acum devine 0 de fiecare dată când intrarea temporizatorului trece în 0 (figura 7.23.a). Această funcţionare corespunde temporizatoarelor fără reţinere. Uneori, însă, este util să se poată păstra valoarea acumulată (chiar dacă intrarea temporizatorului a devenit 0) şi la reactivarea acestei intrări să se continue temporizarea de la valoarea la care s-a oprit, ca în figura 7.23.b. Această funcţionare 410
  • 16. corespunde unui temporizator cu reţinere. Pentru acestea trebuie utilizat un semnal suplimentar pentru aducerea lor la 0. Pentru măsurarea unor timpi mai mari decât cei posibili cu un singur temporizator, se pot conecta în cascadă mai multe temporizatoare sau se pot utiliza împreună numărătoare şi temporizatoare. 7.9. Numărătoare Numărătoarele sunt componente fundamentale ale multor programe de automat programabil şi, de aceea, toate automatele programabile sunt prevăzute cu anumite tipuri de numărătoare. Structura tipică a unui numărător este prezentată în figura 7.24. Fiecărui numărător îi sunt asociate două valori. Prima este valoarea prestabilită, care poate fi considerată valoarea destinaţie a numărătorului şi poate fi modificată prin program. A doua este valoarea acumulată, care va fi incrementată la fiecare tranziţie 0 1 a intrării de numărare înainte şi va fi decrementată la fiecare tranziţie 0 1 a intrării de numărare înapoi. Ea poate fi adusă la zero prin aplicarea unui semnal 1 pe intrarea Reset. Atunci când valoarea acumulată devine egală cu valoarea prestabilită este generat un semnal de “Numărare terminată”. Ca şi la temporizatoare, valoarea acumulată poate fi citită şi utilizată în alte părţi ale programului. În plus, unele numărătoare dispun şi de semnalul “Valoare zero”. Fig. 7.24. Numărător reversibil: a) schema internă; b) operaţia de numărare Figura 7.25 prezintă o aplicaţie de numărare realizată cu PLC-5, SIMATIC S5 şi GEM-80. Obiectele ce trec pe un conveior sunt detectate cu o fotocelulă şi numărate. Când o încărcătură este completă, conveiorul este oprit şi becul “Încărcare completă” este aprins. Operatorul deplasează încărcătura şi poate apăsa butonul “Restart” pentru a reporni secvenţa. Fig. 7.25. Aplicaţie a numărătoarelor: a) la PLC-5; b) la SIMATIC S5; c) la GEM-80 411
  • 17. Ca şi la temporizatoare, atunci când valoarea destinaţie nu poate fi atinsă cu un singur numărător, este posibilă conectarea mai multor numărătoare în cascadă. 7.10. Variabile numerice Pe lângă variabilele pe bit, automatele programabile permit declararea şi utilizarea în programe a variabilelor numerice. Majoritatea automatelor programabile lucrează cu cuvinte pe 16 biţi, ce permit reprezentarea numerelor în gama 0-65.535 sau în complement faţă de 2 în gama –32768 +32767. Aceste numere se numesc întregi. Atunci când este necesară procesarea unor întregi mai mari pot fi utilizate două cuvinte de 16 biţi. Acest tip de întreg este disponibil la Master (sub numele de “întreg lung”) şi la modelele SIMATIC S5-135U şi SIMATIC S5-155U (sub numele de “cuvânt dublu”). Majoritatea automatelor programabile permit şi utilizarea numerelor (în virgulă mobilă), care constau din două cuvinte de 16 biţi care conţin mantisa şi exponentul. Majoritatea producătorilor utilizează standardul IEEE 32 biţi simplă precizie care permite reprezentarea numerelor în gama (1,175E-38 3,402E38). Anumiţi producători au micşorat exponentul pentru o mai mare precizie în mantisă (de exemplu, la automatul programabil Master gama este (5,4E-20 9,22E18)). Tipul formatelor numerice disponibile variază considerabil de la un automat programabil la altul. F2 al firmei Mitsubishi permite doar transferuri, comparări şi ieşiri ale datelor numerice de la numărătoare sau temporizatoare, aceasta făcând din el în esenţă un automat programabil cu prelucrare pe bit. La Siemens, modelul SIMATIC S5-115U utilizează numai întregi pe 16 biţi, dar următorul model în gamă, 135U, poate procesa atât întregi pe 16 şi 32 de biţi, cât şi numere în virgulă mobilă. PLC-5 utilizează o treaptă de program pentru fiecare transfer. De exemplu, în figura 7.26.a are loc transferul numărului din locaţia N 7:34 la valoarea prestabilită a temporizatorului T 4:6, atunci când condiţiile din treaptă sunt îndeplinite. Sursa şi destinaţia pot fi orice locaţie de memorie în care pot exista date numerice. Siemens şi CEGELEC utilizează o abordare uşor diferită. Amândouă tratează un transfer de date cu două instrucţiuni separate, utilizând în acest scop un acumulator separat (o locaţie de memorie de un cuvânt). Siemens utilizează instrucţiunea L (Load) pentru a transfera data de la sursă în acumulator şi instrucţiunea T (Transfer) pentru a transfera data din acumulator la destinaţie, ca în figura 7.26.b. Sursa şi destinaţia pot fi orice locaţii de memorie. La GEM-80 utilizarea acumulatorului nu este evidentă. Instrucţiunea AND transferă numărul binar de la adresa specificată în acumulator iar instrucţiunea OUT transferă conţinutul acumulatorului la adresa specificată. În figura 7.26.c valoarea binară a cuvântului de 16 biţi A12 este înscrisă într-o memorie internă de 16 biţi G24. Sunt posibile conversii BCD-binar şi binar-BCD cu instrucţiunile BCDIN, respectiv BCDOUT. Fig. 7.26. Transferul datelor: a) la PLC-5; b) la SIMATIC S5; c) la GEM-80 Majoritatea automatelor programabile permit compararea numerelor. Atunci când se compară numere reale este recomandată evitarea testului “=”. În plus, PLC-5 dispune de 412
  • 18. instrucţiunea 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 puţin patru operaţii aritmetice (+, -, , :). Pentru a putea preveni posibilele erori cauzate de aceste operaţii, aceste automate programabile sunt prevăzute şi cu fanioane de depăşire. Pentru efectuarea operaţiilor 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 instrucţiune de calcul pe bloc, care permite evaluarea unei expresii aritmetice într-o singură instrucţiune. SIMATIC S5-115U evaluează instrucţiunile aritmetice în format IL (listă de instrucţiuni). În figura 7.26.b a fost ilustrat un exemplu de transfer, în care se utilizează acumulatorul. De fapt, există două acumulatoare, instrucţiunile aritmetice utilizând conţinutul ambelor acumulatoare. Automatele programabile Master al firmei ABB şi GEM-80 al firmei CEGELEC oferă instrucţiuni aritmetice similare. Unele automate programabile sunt prevăzute cu instrucţiuni speciale pentru procesarea semnalelor analogice. La GEM-80 cele mai utilizate sunt:  SQRT - extrage radical de ordinul 2 (de exemplu, în cazul traductoarelor diferenţiale); LINCON - realizează X (A/B)+C cu limitarea rezultatului; FGEN - generează o funcţie pe baza unor puncte (utilă, de exemplu, la liniarizări); LIMIT - limitează inferior sau superior valoarea unui semnal; RAMP - limitează viteza de creştere sau de descreştere a unui semnal; ANALAG - generează un element de întârziere de ordinul 1. Majoritatea automatelor programabile care permit utilizarea modulelor de I/E analogice sunt prevăzute cu funcţia PID. De exemplu, GEM-80 este prevăzut cu funcţia PIDABS care permite implementarea regulatoarelor PID. Figura 7.27 exemplifică cel mai simplu mod de utilizare al acestei funcţii. Fig. 7.27. Funcţia PID la GEM-80 Adresele pentru K, TI, Td sunt specificate în blocul VALUE, care, pentru acest exemplu, începe la adresa W220. În total, o funcţie PIDABS necesită 15 locaţii de memorie în care sunt înscrise informaţii referitoare la: Codul de eroare Valorile constantelor K, TI, Td, modificabile de către utilizator sau prin program Limitele ieşirii Viteza maximă de modificare a ieşirii Modul menţinere, pentru menţinerea ieşirii la o valoare fixă Modul inactiv, pentru menţinerea ieşirii la valoarea zero Cu excepţia lui F2, toate celelalte automate programabile discutate recunosc funcţia PID. Acest fapt sporeşte gama aplicaţiilor ce pot fi comandate cu automate programabile. 7.11. Ciclul program Un program de automat programabil se comportă ca o buclă executată permanent, ca în figura 7.28.a. Instrucţiunile sunt executate succesiv şi, după execuţia ultimei instrucţiuni, operarea se reia cu execuţia primei instrucţiuni. Deci, un automat programabil nu comunică continuu cu procesul, ci intermitent. O execuţie completă a programului din figura 7.28.a se numeşte “ciclu program” (program scan, scan cycle) iar timpul necesar execuţiei sale se numeşte “durata ciclului 413
  • 19. program”. Aceasta depinde de dimensiunea programului şi de viteza procesorului, o valoare tipică fiind 2-5 ms/cuvânt. Uzual, durata unui ciclu program este 10-50 ms. Figura 7.28.a poate fi extinsă la figura 7.28.b. Automatul programabil nu citeşte intrările în ordinea specificată de program (cum s-ar putea înţelege din figura 7.28.a). La începutul fiecărui ciclu program automatul programabil citeşte starea tuturor intrărilor şi o memorează în memoria sa. Când programul adresează o intrare, va fi citită valoarea memorată a acesteia la începutul ciclului program, şi nu valoarea curentă a ei. Fig. 7.28. Ciclul program şi organizarea memoriei: a) execuţia programului; b) secvenţierea programului; c) organizarea memoriei Pe de altă parte, ieşirile nu sunt modificate în momentul în care sunt calculate. O zonă de memorie a automatului programabil, corespunzătoare ieşirilor, este modificată de program şi, apoi, toate ieşirile sunt actualizate simultan la sfârşitul ciclului program curent. Se poate considera că memoria automatului programabil constă din patru zone, aşa cum apare în figura 7.28.c. Intrările sunt citite şi memorate într-o zonă imagine a intrărilor la începutul ciclului program iar ieşirile sunt calculate şi memorate într-o zonă imagine a ieşirilor, de unde sunt actualizate (transferate spre punctele de ieşire) la sfârşitul fiecărui ciclu program. Această zonă de date este mai mică decât cum ar fi de aşteptat. Pentru un automat programabil cu 1000 de I/E discrete, această zonă ar consta din 26 locaţii de memorie de 16 biţi (un cuvânt). O valoare analogică va necesita un cuvânt. Temporizatoarele şi numărătoarele necesită câte două cuvinte (unul pentru valoarea curentă şi unul pentru valoarea prestabilită) iar 16 memorii interne pe bit necesită un cuvânt. Majoritatea memoriei este alocată, de fapt, celei de-a patra zone, zona programului. Evident, ciclul program limitează viteza semnalelor la care automatul programabil trebuie să răspundă. În figura 7.29.a, un automat programabil este utilizat pentru numărarea unei secvenţe de impulsuri rapide, cu frecvenţa mai mică decât cea de execuţie a ciclului program. Se observă că automatul programabil numără corect. Fig. 7.29. Efectul ciclului program asupra impulsurilor rapide 414
  • 20. În figura 7.29.b frecvenţa impulsurilor este mai mare decât frecvenţa de execuţie 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 decât durata ciclului program. Impulsurile mai scurte pot fi citite corect numai dacă se întâmplă ca ele să fie prezente la momentele potrivite, lucru care nu poate fi garantat. În general, frecvenţa impulsurilor trebuie să fie mai mare decât ½ din durata ciclului program, dar în practică există şi alţi factori de care trebuie să se ţină cont la stabilirea acestei frecvenţe (cum ar fi filtrele modulelor de intrare). Mai puţin evident, un ciclu program poate cauza un decalaj aleator între intrări şi ieşiri. În figura 7.30 este prezentată o intrare care trebuie să comande activarea imediată a unei ieşiri. În cazul cel mai bun, intrarea apare la începutul ciclului program, ducând la activarea ieşirii după un ciclu program. În figura 7.30.b intrarea a apărut imediat după citirea intrărilor, fiind văzută de automatul programabil abia la începutul celui de al doilea ciclu program. Prin urmare, ieşirea va fi activată cu o întârziere de două cicluri program faţă de momentu activării intrării. Fig. 7.30. Efectul ciclului program asupra timpului de răspuns: a) cazul cel mai favorabil; b) cazul cel mai defavorabil În majoritatea aplicaţiilor acest decalaj de câteva ms nu este important. Totuşi, în aplicaţiile unde sunt necesare acţiuni rapide, acest decalaj poate fi critic. Pentru a putea aborda cu succes asemenea aplicaţii, producătorii de automate programabile oferă o gamă largă de module speciale, cum ar fi, de pildă, cele descrise în paragraful 7.4. Însăşi redactarea programului poate conduce la întârzieri nedorite, dacă logica programului lucrează împotriva execuţiei programului. Automatul programabil începe fiecare ciclu program cu prima instrucţiune şi procesează toate instrucţiunile următoare într-o manieră secvenţială. Apoi iarăşi actualizează ieşirile, citeşte intrările, execută instrucţiunile, ş.a.m.d. În figura 7.31.a o intrare determină o ieşire, dar nu direct, ci prin intermediul a cinci paşi. Logica programului decurge, în acest caz, împotriva ciclului program. Fig. 7.31. Decalaje datorate programului: a) logica este împotriva execuţiei programului; b) logica este conformă cu execuţia programului 415
  • 21. În primul ciclu program intrarea determină evenimentul A. În următorul ciclu program evenimentul A determină evenimentul B. După cinci cicluri program de la activarea intrării, evenimentul D determină activarea ieşirii. Dacă programul este realizat ca în figura 7.31.b, întreaga secvenţă are loc într-un singur ciclu program. Efectele duratei ciclului program devin mai complexe în cazul existenţei unor sertare de bază comandate la distanţă şi conectate prin cablu serial. În general, starea acestor I/E este citită de către un scaner de I/E, ca în figura 7.32, care, uzual, nu este sincronizat cu ciclul program. De exemplu, cu o durată a ciclului program de 30 ms şi cu un ciclu de comandă la distanţă a I/E de 50 ms, cel mai scurt timp de răspuns poate fi de 30 ms, dar cel mai mare poate fi de 160 ms (cu o I/E pierzând la limită ciclul I/E iar ciclul I/E pierzând la limită ciclul program). Fig. 7.32. Efectul ciclurilor program şi de I/E În cazul programelor pentru controlul unor procese secvenţiale, durata unui ciclu program este dependentă şi de tehnica de programare utilizată. Există două tehnici posibile de realizare a programului: programarea orientată după ieşiri şi programarea orientată după stări. Prima tehnică presupune generarea directă a ieşirii pe baza unei ecuaţii logice în care apar numai acele semnale de I/E care condiţionează starea ieşirii. Rezultă un program mai scurt (deci o durată a ciclului program mai mică), dar mai greu de înţeles. A doua tehnică presupune întocmirea diagramei stărilor, în care sunt puse în evidenţă stările posibile ale automatului secvenţial şi tranziţiile posibile între aceste stări. Programul defineşte mai întâi condiţiile de activare a fiecărei stări, condiţiile de activare a fiecărei tranziţii şi abia apoi condiţiile de activare a ieşirilor. Se obţine un program mai lung, dar mult mai uşor de înţeles. Pentru reducerea efectului duratei ciclului program, producătorii de automate programabile oferă mai multe facilităţi. Tipic, există posibilitatea utilizării unor module de I/E inteligente şi independente (discutate în paragraful 7.4) şi există posibilitatea secţionării programelor în zone cu timpi de execuţie diferiţi. Pentru a reduce timpul de răspuns la unele semnale de intrare considerate foarte importante, care necesită acţiuni urgente (cum sunt semnalele de avarie, de exemplu) există posibilitatea transferului prin întreruperi. În scopul evitării buclelor infinite automatele programabile au fost prevăzute cu un ceas de gardă (watchdog timer). Acesta este resetat la începutul fiecărui ciclu program şi măsoară timpul în care se execută fiecare ciclu program. Valoarea prestabilită a sa este fixată de către producător, ţine cont de timpii de citire a intrărilor şi de actualizare a ieşirilor şi corespunde celui mai lung program posibil (dat de dimensiunea memoriei program) care utilizează instrucţiunile cele mai mari consumatoare de timp. Dacă valoarea măsurată a duratei ciclului program curent este mai mică decăt valoarea prestabilită a ceasului de gardă, 416
  • 22. acesta permite execuţia unui nou ciclu program. În caz contrar, execuţia programului este terminată şi toate ieşirile sunt dezactivate. 7.12. Limbaje de programare Standardul IEC 1131-3 defineşte cinci limbaje de programare a automatelor programabile: 1. Diagrama Scară (Ladder Diagram), care este inspirată din schemele electrice convenţionale; 2. Lista de Instrucţiuni (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 asemănător limbajului Pascal; 4. Diagrame cu Funcţii Bloc (Function Blocks Diagrams), care constituie un formalism de procesare a datelor prin reţele de funcţii bloc conectate prin semnale; 5. Diagrame de Funcţii Secvenţiale (Sequential Function Charts), care reprezintă un formalism grafic inspirat din standardul francez Grafcet, bazat pe o variantă a unei clase de reţele Petri. Lista de Instrucţiuni şi Textul Structurat fac parte din limbajele tradiţionale de programare a calculatoarelor. Diagrama Scară şi Diagrama cu Funcţii Bloc imită structura predecesoarelor lor (implementări hardware ale regulatoarelor discrete şi continue, paralele prin natura lor). Diagrama de Funcţii Secvenţială combină secvenţialitatea cu paralelismul. 7.12.1. Caracteristici comune ale limbajelor de programare Standardul începe cu o descriere a configuraţiei ş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 citeşte intrările sale, calculează starea sa şi actualizează ieşirile sale. Detaliile referitoare la modul în care un anume automat programabil realizează operaţiile de I/E şi managementul memoriei nu fac parte din standard. Se presupune că valorile citite de la senzori şi valorile scrise la ieşiri sunt transferate cu mediul extern prin intermediul unor locaţii de memorie specifice şi că programul de aplicaţie nu trebuie să se ocupe cu aceste detalii. Standardul conţine structuri care permit programelor diferite să fie încărcate şi executate pe acelaşi automat programabil (separat sau în multi-tasking) şi mai multor automate programabile să funcţioneze în paralel şi să comunice prin “căi de acces”, care sunt abstracţii ale protocoalelor de comunicaţie. Un program este construit dintr-un număr de elemente software diferite, scrise în oricare din cele cinci limbaje, existând 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 către un eveniment, fie este configurat să fie executat periodic.Toate limbajele utilizează acelaşi set de caractere şi sunt în conformitate cu standardele ISO şi cu convenţiile pentru codificarea timpului. Standardul defineşte tipurile de date elementare, declaraţiile tipurilor de date compuse, iniţializările, etc. Variabilele pot fi locale sau globale. Suplimentar faţă de variabilele abstracte “uzuale”, sunt permise şi variabile “direct reprezentate”, care sunt adresate în locaţiile de memorie destinate intrărilor, ieşirilor sau variabilelor interne. 7.12.2. Funcţii şi blocuri de funcţii Funcţiile bloc reprezintă unul din elementele de bază ale standardului. Un caz special al acestora îl reprezintă funcţiile (fără memorie). Acestea nu au variabile interne care să-şi păstreze valoarea între două invocări ale unei funcţii şi, de aceea, la fiecare invocare, pentru 417
  • 23. aceeaşi intrare produc aceeaşi ieşire. Funcţiile încorporate pot fi compuse într-o manieră aciclică pentru a obţine funcţii noi. Funcţiile pot fi scrise fie în limbajul Text Structurat, fie în limbajul Diagrame cu Funcţii Bloc. Sintaxa acestui din urmă limbaj este un amestec de text şi grafică ASCII, originea sa datorându-se compatibilităţii retroactive cu limbajele existente. Funcţiile bloc, care sunt funcţii cu memorie, constituie elementul software major al standardului. În terminologia software o funcţie 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 funcţiilor. Ele pot fi imbricate, adică o funcţie bloc poate constitui argumentul unei alte funcţii bloc. Există multe funcţii bloc standard, cum ar fi bistabilele, temporizatoarele şi numărătoarele. Alte funcţii bloc oferă variante discretizate ale unor operatori în timp continuu, cum ar fi elementele integrative şi derivative. Unele funcţii bloc apar doar în formă grafică, fără definiţia lor într-un limbaj textual. Mai mult, pentru unele funcţii bloc se specifică în mod explicit că nu pot fi utilizate în limbaje textuale. 7.12.3. Limbajele textuale Lista de Instrucţiuni şi Text Structurat Ambele limbaje sunt în esenţă limbaje imperative şi secvenţiale clasice. Primul este un limbaj de asamblare de nivel inferior iar al doilea este un limbaj de nivel înalt asemănător Pascal-ului. Utilizând întreaga putere a acestor limbaje (de exemplu, buclele WHILE), este posibil să se scrie proceduri al căror timp de execuţie este necunoscut, nelimitat şi chiar infinit. Desigur, încorporarea unor asemenea programe în aplicaţiile de control nu este o practică sănătoasă. Pe de altă parte, este posibil să se impună restricţii sintactice care pot garanta un timp de răspuns limitat. De exemplu, se pot admite numai programe care nu au salturi înapoi sau bucle FOR cu delimitatori constanţi. Un alt dezavantaj al acestor limbaje este dat de caracterul lor secvenţial. Acesta le face neadecvate pentru scrierea programelor de control care implică paralelisme. Prin urmare, concurenţa poate fi realizată fie prin multitasking, fie prin considerarea programelor scrise în aceste limbaje ca blocuri funcţionale în programe scrise în alte limbaje care acceptă paralelismul (Diagrame cu Funcţii Bloc sau Diagrame de Funcţii Secvenţiale). 7.12.4. Diagrama Scară Este un limbaj grafic conceput pentru compatibilitate retroactivă cu formalismul diagramelor logice scară (relay ladder logic), el însuşi un rezultat al compatibilităţii retroactive cu schemele electrice convenţionale (cu relee). În esenţă, în acest limbaj se scriu relaţii dintre valorile stării curente şi a variabilelor de intrare, pe de o parte, şi valorile stărilor următoare şi ale ieşirilor, pe de altă parte, plus câteva specificaţii referitoare la ordinea evaluării condiţiilor implicate. 7.12.5. Diagrame cu Funcţii Bloc Reprezintă un limbaj grafic ce permite compunerea unor funcţii bloc simple în vederea formării unor funcţii bloc mai mari şi mai complexe. Interacţiunea dintre funcţiile bloc este reprezentată prin “conductori” care conectează variabilele de ieşire de la un bloc cu variabilele de intrare ale altui bloc. O compunere de mai multe funcţii bloc poate fi încapsulată într-un bloc mai mare, încurajându-se prin aceasta un stil de programare modular şi ierarhizat. Totuşi, există structuri care nu sunt uşor de exprimat prin notaţii grafice. Acestea include buclele FOR, operaţiile cu matrici, întreruperile şi algoritmii complecşi în general. 418
  • 24. Acest limbaj seamănă foarte mult cu limbajul Lustre, fundamentul mediului de programare Scade, utilizat în controlul avioanelor şi al proceselor nucleare. Datorită criticalităţii acestor aplicaţii, Lustre se bazează pe semantici foarte precise, pe un proces de compilaţie care verifică şi existenţa buclelor cauzale şi pe generarea unui cod optimizat care rulează toate programele ca o singură buclă (fără multitasking). 7.12.6. Diagrame de Funcţii Secvenţiale Acest limbaj constituie un formalism care combină operaţiile secvenţiale şi paralele. Considerarea sa ca un al cincilea limbaj IEC sau ca o unealtă de structurare de nivel superior este o chestiune de terminologie. Se bazează pe standardul francez Grafcet, care poate fi caracterizat sumar ca o variantă sincronă şi etichetată de reţele Petri. Entitatea de bază în Diagramele de Funcţii Secvenţiale îl reprezintă pasul. Din punctul de vedere al automatului programabil, un pas este o parte a stării sale. Acolo unde nu există paralelism, pasul este identic cu starea. Atunci când un program se află într-un anume pas, aceasta implică menţinerea la o anumită valoare a unor variabile de ieşire controlate de către program (numite “acţiuni”). De exemplu, un pas “încălzire” într-un program poate însemna că o variabilă booleană, care comandă dispozitivul de încălzire, se află în starea “Activat”. Procesul fizic pe care se bazează pasul poate fi mai complicat şi include bucle de reacţie de nivel inferior, dar la nivelul Diagramei de Funcţii Secvenţiale acesta este reprezentat prin una sau mai multe variabile care rămân constante pe perioada cât pasul este activ. Acest lucru este similar cu arhitectura ierarhizată utilizată în reţelele de comunicaţii, unde ceea ce este privit ca o acţiune “transmisie fişier” la un nivel, este realizat printr-un proces dinamic complex la un nivel inferior. Paşii sunt reprezentaţi prin dreptunghiuri (figura 7.33). În fiecare pas se iau decizii asupra variabilelor de ieşire, adică se specifică acţiunile. Care ieşiri se vor reseta şi care se vor menţine active depinde de calificatorii acţiunilor ce constituie pasul. Doi paşi consecutivi sunt separaţi printr-o tranziţie, care, în esenţă, este o condiţie asupra variabilelor de intrare. Atunci când condiţia de tranziţie este adevărată, primul pas se încheie şi începe pasul următor. O tranziţie este reprezentată printr-o linie orizontală îngroşată ce intersectează linia verticală ce uneşte doi paşi. Fig. 7.33. Exemple de structuri în Diagramele de Funcţii Secvenţiale: a) tranziţie; b) ramificaţie; c) paralelism Există două variabile speciale asociate fiecărui pas. Prima este o variabilă booleană care indică faptul că pasul este activ sau nu. Cealaltă este un temporizator care măsoară timpul scurs de la activarea pasului. Această variabilă poate apare în tranziţii ca oricare altă variabilă şi permite definirea condiţiei de tranziţie ca o limită de timp. Mecanismul de implementare a ramificaţiei constă în utilizarea căilor divergente, ceea ce înseamnă descompunerea liniei ce iese dintr-un pas în două sau mai multe linii, fiecare din ele având asociate condiţii de tranziţie şi paşi următori. Condiţiile nu trebuie să fie mutual exclusive. 419
  • 25. Pentru a decide care ramificaţie se va efectua, condiţiile vor fi evaluate utilizând o ordine implicită sau o ordine definită de către utilizator. Operatorul de compunere paralelă este reprezentat grafic printr-o linie orizontală dublă, de la care pot emana secvenţe paralele. În acest caz, starea sistemului este dată de setul stărilor proceselor paralele. După acest operator, procesele paralele evoluază independent, până la o nouă reunire a lor. Acest operator, denumit sincronizare, este reprezentat printr-o altă linie orizontală dublă la care converg toţi paşii finali din procesele paralele. Tranziţia ce urmează după această linie determină încheierea acestor paşi. Pentru a evita ambiguităţile se poate presupune că nu există evenimente simultane şi că fiecare condiţie este luată în considerare de îndată ce devine adevărată. Aceste semantici ideale sunt aproximate printr-o implementare în care variabilele de intrare sunt eşantionate periodic. Aşa cum s-a menţionat anterior, paşii pot conţine o secvenţă de acţiuni, care pot avea diverşi calificatori. Aceştia determină durata unei acţiuni pe durata cât pasul este activ. Anumite acţiuni pot fi active pe întreaga durată a pasului, unele pot fi executate numai la începutul sau la sfârşitul pasului, unele pot fi întârziate, etc. În concluzie, se poate afirma că diagramele de funcţii secvenţiale reprezintă un limbaj puternic, foarte util pentru procesele care combină aspectele secvenţiale şi paralele. 7.13. Reţele de automate programabile Automatele programabile pot fi conectate împreună în reţele în vederea obţinerii unor sisteme de control distribuite. În acest scop trebuie aleasă o topologie de reţea, o tehnică eficientă de partajare a reţelei, care să permită accesul la resursele comune şi un sistem de adrese care să permită transmiterea mesajelor între membrii reţelei. Aceste reţele pot fi locale (LAN) sau extinse (WAN). 7.13.1. Topologii de reţea Figura 7.34 este un sistem master / slave, unde un master obişnuit recepţionează 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 “Staţia 3, transmite valoarea intrării analogice 4”. Asemenea sisteme sunt deseori bazate pe standardul RS 422. Fig. 3.34. Reţea master / slave Reţeaua în stea din figura 7.35 este de asemenea bazată pe un master conectat punct la punct cu staţiile individuale. Controlul comunicaţiei este realizat de staţia master. Comunicaţiile staţie –la –staţie au loc prin intermediul şi cu cooperarea master-ului. Fig. 7.35. Reţea în stea 420
  • 26. În figura 7.36 staţiile au fost conectate într-un inel. Nu există master şi orice staţie poate comunica cu orice altă staţie, având drepturi egale de acces. Această structură este denumită legătură egal-la-egal (peer-to-peer). Este necesară utilizarea unor tehnici de evitare a conflictelor ce apar atunci când două staţii doresc să utilizeze aceeaşi linie simultan. Fig. 7.36. Reţea în inel Reţeaua din figura 7.37 este probabil cel mai utilizat tip de reţea de către automatele programabile. Există o singură linie cu rezistoare terminale şi, la fel ca reţeaua în inel, este o legătură peer-to-peer, toate staţiile având acelaşi statut. Fig. 7.37. Legătură peer-to-peer structurată ca o magistrală unică 7.13.2. Partajarea reţelei O legătură peer-to-peer permite mai multor staţii să utilizeze aceeaşi reţea. Inevitabil, vor exista la un moment dat două staţii ce vor dori să comunice în acelaşi timp. Dacă nu se iau măsuri corespunzătoare, va rezulta blocarea reţelei. Una din tehnici constă în alocarea unor intervale de timp în care fiecare staţie poate săşi plaseze mesajele. Aceasta se numeşte multiplexare prin divizarea timpului (time divizion multiplexing) sau TDM. Chiar dacă previne conflictele, poate fi ineficientă deoarece o staţie va trebui să aştepte pentru intervalul ei de timp chiar dacă nici o staţie nu are vreun mesaj de transmis. Într-o oarecare măsură pot fi preîntâmpinate diferenţele între frecvenţele mesajelor unor staţii diferite prin alocarea mai multor intervale de timp uneia sau mai multor staţii. Întro reţea cu cinci staţii, notate A,…, E, dacă staţia A este mai solicitată, poate fi adoptată o ordine de lucru de genul ABACADAEAB…Aceasta se numeşte TDM statistică. Intervalul de timp gol din figura 7.38 utilizează un pachet cu circulaţie continuă prin inel. Când o staţie doreşte să transmită un mesaj, ea aşteaptă ca pachetul gol să ajungă în dreptul ei, după care poate să-şi plaseze mesajul. Fig. 7.38. Intervalul gol şi circulaţia tokenului 421
  • 27. O idee similară este transferul simbolului sau tokenului, unde un simbol cu semnificaţia “Permisiune de transmisie” circulă prin reţea. O staţie poate emite doar atunci când este în posesia simbolului, care este eliberat doar atunci când se primeşte confirmarea recepţionării mesajului. Atât metoda pachetului gol cât şi metoda transferului tokenului necesită o cale de reinstalare a pachetului gol sau a tokenului la refacerea reţelei după o cădere a ei. Acest lucru este realizat, de obicei, de o staţie master sau de o staţie monitor, care însă nu are acelaşi rol ca şi staţiile master din figurile 7.34 şi 7.35. De obicei, sistemele bazate pe magistrale utilizează o metodă prin care o staţie care doreşte să emită un mesaj “ascultă” în reţea să vadă dacă aceasta este utilizată de cineva sau nu. Dacă este, staţia aşteaptă. Dacă reţeaua nu este ocupată, staţia emite mesajul ei, prin aceasta blocând toate celelalte staţii până când se termină mesajul. Această metodă se numeşte acces multiplu prin detectarea purtătoarei (carrier sense multiple acces) sau CSMA. Totuşi, pot apare situaţii neplăcute atunci când două staţii încep simultan să emită mesaje, producându-se o coliziune a mesajelor. Această situaţie poate fi uşor detectată, ambele staţii oprindu-se şi aşteptând un timp oarecare înainte de a încerca să retransmită. Este utilizat un timp aleator de oprire a celor două staţii pentru a nu se repeta coliziunea. Această tehnică se numeşte acces multiplu prin detectarea purtătoarei cu detecţia coliziunilor (CSMA with colision detection) sau CSMA/CD. Există o diferenţă fundamentală între TDM, pachetul gol şi transferul tokenului pe de o parte, şi CSMA pe de altă parte. La primul grup există o anumită risipă de timp, în schimb fiecare staţie are garantat accesul într-un interval de timp specificat. La CSMA există puţină risipă de timp, dar teoretic se poate întâmpla ca o staţie să sufere coliziuni repetate şi chiar să nu poată deloc să-şi transmită mesajul. 7.13.3. Protocoale de comunicaţie Fiecare producător de automat programabil a dorit să aibă propriul său standard şi să conecteze echipamentele sale într-o manieră particulară. Aceste sisteme se numesc brevetate sau de firmă (proprietary) şi nu pot fi interconectate cu echipamente de la alţi producători. Automatele programabile PLC–5 de la Allen Bradley comunică pe o magistrală peerto-peer fără master prin transferul tokenului, denumită Data Highway Plus. Este bazată pe un cablu coaxial şi operează la 57,6 Kbaud. Adresele de staţie sunt setate prin comutatoare DIP existente la fiecare automat programabil, pe o linie putând exista până la 64 de staţii. GEM – 80 are 2 forme de comunicaţie serială între echipamente. Prima, numită Starnet, realizează comunicaţii master/slave punct-la-punct cu o buclă de 20 mA şi cu un protocol numit ESP (Extended Simple Protocol). Acesta realizează doar comunicaţii master/ slave, comunicaţiile slave/slave fiind posibile doar prin utilizarea master-ului pentru retransmisia mesajelor. A doua formă de comunicaţie la GEM – 80 este o legătură peer-to-peer fără master, numită CORONET. Aceasta operează pe un cablu dublu ecranat la 9,6 Kbaud, după standardul de semnal RS 485. Este posibilă o linie de maxim 4 km cu până la 32 de staţii. Automatele programabile Siemens au acces la patru reţele de comunicaţie, cu numele comun SINEC. Două din acestea, cu sufixul L, sunt reţele pentru nivele ierarhice inferioare iar celelalte două, cu sufixul H, sunt pentru nivelele ierarhice superioare. SINEC L1 este o reţea master / slave. Poate conţine un singur master şi până la 30 de slave şi operează după standardul RS 485. SINEC L2, cunoscută şi ca FieldBus, este o reţea peer-to-peer ce utilizează transferul tokenului. SINEL H1 este o reţea în bandă de bază, ce operează la 10 Mbaud pe un cablu coaxial de maxim 2,5 km. Operează după standardul IEEE 802.3, cunoscut sub numele de Ethernet cu legături dense. Suportă până la 1024 staţii, 422
  • 28. utilizând CSMA/CD pentru controlul accesului. SINEC H2B este o reţea î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 făcut prin transferul tokenului. Astăzi există aproximativ 150 de sisteme de firmă dar, datorită eforturilor proiectanţilor şi presiunii utilizatorilor au apărut câteva sisteme de comunicaţie recunoscute ca dechise şi interoperabile. Interfaţa AS-i este un sistem de interconectare serială a senzorilor, elementelor de execuţie şi a altor echipamente similare, operând la nivelul cel mai inferior al procesului. Este destinată înlocuirii cablării paralele convenţionale. Capabilităţile sale au fost îmbunătăţite 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), asigurând transparenţă totală. Tehnologia AS-i este standardizată prin standardul IEC 62026-2. Interbus este utilizată în automatizările de mari dimensiuni şi este adecvată conectării dispozitivelor digitale. Ethernet este o LAN foarte populară, bazată pe magistrale. Staţiile sunt conectate la cabluri prin adaptoare numite noduri de reţea. Viteza transmisiei este 10 Mbaud. PROFIBUS este o reţea deschisă, internaţională, independentă, standardizată sub standardul european EN 50170. Protocolul PROFIBUS a fost proiectat pentru sistemele de conducere distribuite industriale. Este prevăzut cu algoritmi de detecţie a erorilor, de tip CRC, şi cu ceasuri de gardă. Utilizează transmisia pe cablu dublu şi nivelele standardului RS-485, având o excepţională imunitate la zgomot. Tipic, o reţea PROFIBUS este controlată de unul sau mai multe automate programabile şi asigură viteze de transfer de până la 12 Mbaud. 7.13.4. Consideraţii practice privind siguranţa comunicaţiilor Pentru exemplificare, se consideră o situaţie des întâlnită, reprezentată în figura 7.39, în care un comutator conectat la un automat programabil determină, printr-o legătură serială, pornirea unui motor de către un alt automat programabil. Să presupunem că motorul este pornit şi legătura este întreruptă. Bitul corespunzător pentru “Motor merge”, care este setat în automatul programabil B nu va fi resetat (datorită întreruperii legăturii) şi, deci, automatul programabil A va fi incapabil să oprească motorul. Când comutatorul este decuplat, controlul legăturii 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 funcţie de aplicaţie. Fig. 7.39. Consideraţii de siguranţă asupra legăturilor seriale Un aspect important este de a defini cât timp o ieşire comandată de o legătură serială poate rămâne necontrolată. Să zicem 2 secunde. După comanda “Pornire motor”, automatul programabil iniţiator trimite prin legătură un tren de impulsuri cu o perioadă ceva mai scurtă, de exemplu 1,5 secunde, ca în figura 7.40. În automatul programabil B cele două forme complementare ale acestui semnal acţionează două temporizatoare de tip TOF fixate la 2 secunde. Cu ieşirea “Legătură bună” pot fi acţionate ieşirile comandate de către legătura serială. Dacă legătura se defectează, unul din cele două temporizatoare se va dezactiva (iar celălalt va rămâne activat), determinând dezactivarea semnalului “Legătură bună” şi a tuturor ieşirilor comandate de legătura serială, acestea trecând într-o stare sigură. Zgomotul este sursa principală de probleme şi, de obicei, se manifestă printr-o creştere a timpului de răspuns introdus de reţea. 423
  • 29. Fig. 7.40. O soluţie de verificare a legăturii seriale Primele măsuri împotriva zgomotelor sunt separarea de cablurile de alimentare prin utilizarea unor trasee separate sau a unor tuburi de protecţie. Ecranele cablurilor trebuie să fie neîntrerupte şi trebuie pământate toate într-un singur loc. De asemenea, ecranele cablurilor nu trebuie să atingă părţile metalice ale dulapurilor. 7.14. Aspecte ale dependabilităţii automatelor programabile Problemele legate de automate programabile sunt subtile. Nefuncţionarea unui element de execuţie se poate datora unei erori în program, unui defect în automatul programabil, unui modul de ieşire defect, unei defecţiuni la sursa de alimentare a modulului de ieşire, unui defect la elementul de execuţie sau unui defect la limitatorul ce permite activarea elementului de execuţie. Figura 7.41 prezintă probabilităţile de defectare ale unor diferite părţi ale unui sistem tipic cu automat programabil. Se observă că 95% din defectele “automatului programabil” se datorează unor dispozitive ale instalaţiei şi doar 5% se datorează automatului programabil propriu-zis. Fig. 7.41. Distribuţia defectelor într-un sistem tipic cu automat programabil Înseamnă că la proiectarea unui sistem de conducere cu automat programabil, pentru asigurarea dependabilităţii sistemului nu este suficient să se aibă în vedere numai defectele ce pot apare în interiorul automatului programabil. Trebuie avute în vedere şi posibilele defecte externe, întrucât apariţia lor afectează şi dependabilitatea automatului programabil. 7.15. Concluzii Automatele programabile sunt sisteme complete, prevăzute cu un sistem de operare robust şi cu toate elementele necesare conducerii proceselor industriale. Iată o sinteză a principalelor lor avantaje:  Este disponibilă o gamă largă de module de I/E, ce permit conectarea directă cu dispozitive de I/E digitale şi analogice ale procesului. În plus, există o diversitate de module de I/E speciale, inteligente şi autonome, care permit interfaţarea cu echipamente speciale cum ar fi traductoare incrementale, roboţi, etc. 424
  • 30.  Posibilitatea comenzii la distanţă le face deosebit de utile în conducerea proceselor periculoase şi distribuite pe arii geografice mari.  Adresele de I/E sunt hardware, ceea ce înseamnă că utilizatorul trebuie să le atribuie în strictă concordanţă cu un algoritm de alocare conceput de către producător. Uzual, acest algoritm este de tipul sertar de bază/modul/punct I/E, ceea ce uşurează activitatea de cablare.  Pot procesa atât variabile binare, cât şi cuvinte de date. În acest scop unităţile centrale sunt prevăzute cu memorii pe bit şi cu registre de date pentru cuvinte. Memoria de date, însă, este mult mai mică decât la calculatoarele PC. De asemenea, pentru calcul unor algoritmi complicaţi se recomandă conectarea la un calculator PC, pentru a nu consuma din timpul UC.  Au un sistem de operare robust, care realizează execuţia ciclică a programelor. Citirea intrărilor numai la începutul ciclului program şi actualizarea ieşirilor numai la sfârşitul acestuia elimină fenomenele de hazard ce ar putea apare în cazul unei comunicaţii continue cu mediul extern. Pe de altă parte, însă, comunicaţia periodică cu mediul extern numai la anumite momente de timp impune restricţii asupra semnalelor de intrare şi determină întârzieri în comanda ieşirilor. În plus, facilităţile de care dispun automatele programabile moderne (transfer prin întreruperi, rularea blocurilor de program la viteze diferite, etc.) pot afecta negativ ciclul program.  Sunt disponibile cinci limbaje de programare. Ele pot fi folosite combinat în interiorul unui program şi (în general) este posibilă conversia automată a programelor dintr-un limbaj în altul  Pot fi conectate în reţea în arhitecturile comune sistemelor de conducere distribuite. Comunicaţia în reţele se realizează prin protocoale de firmă sau prin protocoale standardizate ce permit implementarea sistemelor deschise. Prezentarea detaliată a caracteristicilor şi aptitudinilor automatelor programabile realizată în acest capitol îndreptăţeşte considerarea lor ca soluţie viabilă şi, uneori, optimă pentru conducerea oricărui proces industrial. Eforturile făcute în direcţia standardizării şi impactul sistemelor deschise permit utilizarea lor şi în sisteme de conducere hibride, împreună cu alte soluţii. 425