Despre automate programabile

3,381 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,381
On SlideShare
0
From Embeds
0
Number of Embeds
12
Actions
Shares
0
Downloads
80
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Despre automate programabile

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

×