despre automate programabile

30
396 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.

Upload: romica-dilimot

Post on 14-Nov-2014

1.248 views

Category:

Documents


6 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Despre automate programabile

396

CAPITOLUL 7AUTOMATE PROGRAMABILE

7.1. Prezentare generală a automatelor programabile

Automatele programabile (Programmable Logic Controllers – PLCs) sunt sisteme decalcul special proiectate pentru controlul proceselor. Ele fac parte din marea familie asistemelor de control distribuite şi sunt sisteme de control în timp real.

Hardware-ul unui automat programabil constă într-o unitate centrală (UC) bazată pemicroprocesor (sau microcontroler), o memorie, un număr de puncte de intrare (prin care seprimesc 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 spreoperator) şi interfeţe seriale şi / sau paralele pentru conectarea automatului programabil cudispozitive de programare, cu calculatoare PC sau cu alte automate programabile . Unitateacentrală (+ memoria), punctele de I/E şi circuitele de interfaţă sunt construite sub forma unormodule 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-oformă 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ă nuconţ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 automatprogramabil.

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 ostructură fixă, ce nu poate fi modificată sau extinsă de către utilizator. Este cazul automatelorprogramabile mici (cu număr mic de puncte de I/E, de ordinul zecilor). Un exemplu în acestsens îl reprezintă automatele programabile din familia Micrologix, produse de către AllenBradley.

Automatele programabile compacte extensibile (de exemplu, cele din seria FX2N afirmei Mitsubishi permit adăugarea la un automat programabil compact (denumit base unit) aunui număr limitat de module de I/E, pentru a adapta structura acestuia la necesităţileaplicaţiei. Automatele programabile de acest tip fac parte din clasa automatelor programabilemedii, cu un număr de puncte de I/E de ordinul sutelor.

Page 2: Despre automate programabile

397

Automatele programabile modulare oferă cea mai mare flexibilitate. Există o marevarietate de module din fiecare tip (UC, de I/E, etc)şi de sertare de bază, din care proiectantulpoate croi un sistem cât mai apropiat de cerinţele aplicaţiei considerate. Exemple deautomate programabile din această clasă sunt SIMATIC S5 al firmei Siemens, PLC – 5 alfirmei Allen Bradley, etc. Din punct de vedere al numărului de puncte de I/E, automateleprogramabile modulare se înscriu în clasa automatelor programabile medii şi mari (cu mii depuncte de I/E). În lipsa unor precizări, automatele programabile discutate vor fi considerateimplicit 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ăţiloraplicaţiei considerate. Operaţiunea de selecţie a modulelor şi sertarului de bază în funcţie decerinţele aplicaţiei se numeşte configurare. De aici reiese unul din marile avantaje aleautomatelor programabile, şi anume flexibilitatea lor: ele pot fi configurate în funcţie despecificul aplicaţiei.

În continuarea capitolului sunt discutate în detaliu caracteristicile automatelorprogramabile, cu exemplificări pentru pentru câteva tipuri reprezentative, iar în finalul lui suntformulate concluziile referitoare la utilizarea automatelor programabile în controlulproceselor, [7].

7.2. Module de intrare7.2.1. Module de intrări discrete

Modulele de intrări discrete servesc la conectarea la automatul programabil asemnalelor 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ă întresemnalele de intrare şi automatul programabil şi o conversie a acestor semnale la nivelulsemnalelor utilizate în interiorul automatului programabil (uzual TTL).

Izolarea electrică este realizată pentru fiecare semnal prin intermediul unor izolatorioptici, 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ă (tipic1-4 KV).

Un modul de intrări discrete conţine pentru fiecare punct de intrare câte un canal deintrare. 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 comutareatranzistorului TR1, transmiţându-se astfel semnalul prin buffer către UC. Dioda D2 este unLED, cu rol de confirmare a semnalului de intrare. Canalele modulelor de intrări discrete înc.a. au structura similară cu cele în c.c., fiind prevăzute în plus cu o punte redresoare şi unfiltru.

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ă modululeste prevăzut cu conector. Figura 7.2.c arată modul de conectare a semnalelor de intrare la unmodul de intrări discrete pe 8 puncte, ce necesită sursă externă.

Majoritatea producătorilor de automate programabile furnizează module de intrăridiscrete pe 8, 16 sau 32 de puncte de intrare, la diverse tensiuni continue sau alternative (5Vcc, 12-24 Vcc/ca, 24-50 Vcc/ca, 110-220 Vca), cu sau fără necesitatea utilizării unor surseexterne.

Page 3: Despre automate programabile

398

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 analogiceacceptate 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 semnalanalogic. Tabelul 7.1 prezintă erorile introduse de conversia analog- numerică, în funcţie denumărul de biţi utilizaţi pentru conversie.

Tabelul 7.1. Erorile introduse de conversia analog numericăNumăr de biţi Domeniu Eroare ()

81012

0-2550-10230-4095

0,40,1

0,025

La un multiplexor de 4 căi careselectează pe rând în inel fiecare canal, fiecaresemnal analogic va fi citit o dată la fiecare 80ms. La acest timp trebuie adăugată durataciclului program şi timpul de comunicaţie, dacămodulul analogic este montat într-un sertar debază comandat la distanţă.

Este foarte important ca timpul deconversie să fie suficient de mic. Fiecaresemnal analogic va avea o frecvenţă maximă la

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

Page 4: Despre automate programabile

399

care se va putea modifica şi pote fi reprezentat printr-un grafic amplitudine-frecvenţă, ca înfigura 7.3.

Pentru a extrage eşantioanele corecte, semnalul trebuie eşantionat cu o frecvenţă maimare decât 2 fc. În sistemele reale, fc este rareori cunoscut cu precizie şi, uzual, este aleasă orată de eşantionare de 4-10 fc.

În general, automatele programabile lucrează cu cuvinte de 16 biţi. Dacă un modul deintrări analogice ocupă un slot în sertarul de bază şi citeşte o sigură intrare analogică, acestlucru va fi o risipă costisitoare de adrese de I/E. Un modul de intrări discrete cu 16 punctecostă uzual aproximativ un sfert din preţul unui modul de intrări analogice. Acest neajunspoate 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 deizolare, sunt selectate pe rând prin comutatoare electronice şi sunt convertite într-o valoarenumerică 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 valorinumerice în gama 0-4095. De regulă, acestea trebuie preluate de către program şi convertite înunităţ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ă înprogram. Î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 4biţi ca o instrucţiune de ieşire către modul, împreună cu comanda “converteşte”. Modulultrimite înapoi un semnal “Gata” şi rezultatul conversiei pe 12 biţi, ce poate fi citit printr-oinstrucţiune de intrare. Această metodă are avantajul că programatorul poate alege perioade deeşantionare diferite pentru fiecare canal.

Page 5: Despre automate programabile

400

Metoda din figura 7.5.b este mai des utilizată. Un bloc de locaţii de memorie dinmemoria automatului programabil este asociat direct cu modulul de intrări analogice. Acestafuncţionează continuu, înscriind valori numerice în locaţiile de memorie, de unde pot fi cititedirect de către program.

Conversia semnalului din forma primară pe 12 biţi în unităţi inginereşti se faceconform relaţiei:

minV

4095

minVmaxVNVM

(7.1)

unde: VM este valoarea măsurată (în unităţi inginereşti), N este valoarea semnalului în formaprimară 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ărianalogice (1771-IFE) care poate citi, în forma sa cea mai simplă, 8 intrări analogice. UCcomunică cu modulul prin intermediul unor instrucţiuni numite “transferuri pe bloc”, caretransferă data la/de la un bloc de locaţii de memorie. Transferurile de date de la UC la modulsunt numite “transferuri de scriere bloc” (BTW – Block Transfer Writes) iar transferurile de lamodul î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ţiuneaBTW este utilizată o singură dată, după pornirea automatului programabil, pentruconfigurarea modulului iar instrucţiunea BTR este utilizată ulterior pentru citirea datelor, aşacum reiese din figura 7.6.

Instrucţiunea BTW defineştecomportarea modulului: dacă va furniza dateîn cod binar sau BCD, dacă se vor utiliza 8semnale diferenţiale sau 16 semnale raportatela un 0 V comun, valorile minime şi maximeale domeniilor de intrare (Vmax şi Vmin din(7.1)) pentru fiecare canal, precum şi oconstantă de timp de filtrare (pentru a aplicasemnalului de intrare un filtru de ordinul1, care ajută la înlăturarea zgomotelor Fig. 7.6. Instrucţiunile BTW şi BTRdin semnal). Modulul 1771-IFE oferă oconstantă 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ăţiinginereş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

Page 6: Despre automate programabile

401

de date începând de la locaţia N 11:10 către modulul din poziţia din stânga a slotului 2 alsertarului 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 cuinstrucţiunea BTR, ca în figura 7.7.b, în care sunt citite 20 de valori de la modulul aflat înpoziţia din stânga a slotului 5 al sertarului de bază 4 ori de câte ori B 3/72 este 1. Valorile suntmemorate începând cu locaţia N 12:0.

7.3. Module de ieşire7.3.1. Module de ieşiri discrete

Permit transmiterea comenzilor generate de program spre elementele de execuţiebipoziţionale la tensiunile necesare (5 Vcc, 12-24 Vcc/ca, 110-220 Vca, etc), necesitândizolare 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 alimentatede la o sursă comună, care este conectată la automatul programabil, dar este separată de sursaacestuia. 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 şipoate fi conectat direct la orice circuit din exterior. Însă modulul este mai complicat, unmodul 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 absoarbecurent (sink).

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

Page 7: Despre automate programabile

402

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ţeleprovocate la dezactivarea sarcinilor inductive.

7.3.2. Module de ieşiri analogice

Deseori automatul programabil trebuie să genereze semnale de ieşire analogice, totaşa cum trebuie să citească intrări analogice. Ca şi intrările analogice, aceste semnale au gamestandard: 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 deieş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 şipentru a permite conectarea semnalelor analogice la dispozitive externe alimentate la tensiunidiferite. Valorile numerice corespunzătoare semnalelor analogice provin de la locaţii dememorie 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 numeric-analogic (CAN), care converteşte valoarea numerică provenită din memoria UC în semnaleanalogice. Rezultatul conversiei este apoi atribuit unuia din cele 4 canale de către unmultiplexor cu 4 căi. De aceea, valoarea numerică de convertit este însoţită de o informaţiesuplimentară, 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 domeniu0-4095, dar acest lucru nu este întotdeauna posibil. Dacă, de exemplu, automatul programabilsetează gama vitezei unui motor între 0 şi 1350 rot/min, el va trebui să convertească valorile0-1350 în gama 4-20 mA. Ecuaţia (7.1) poate fi rescrisă sub forma:

4095

min)VmaxV()VMinN(VCAN

(7.2)

unde: VCAN este valoarea transmisă către convertorul analog-numeric (în gama 0-4095), Neste valoarea de convertit în unităţi inginereşti iar Vmin şi Vmax sunt valorile minime şimaxime ale semnalului numeric.

Automatul programabil PLC-5 comunică cu modulul 1771-OFE prin instrucţiuniBTW. Programatorul setează în memoria UC un bloc de 12 cuvinte, din care primele 4 conţinvalorile numerice ce vor fi transmise convertorului numeric-analogic iar următoarele 8 conţinvalorile 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 deoperator.

Page 8: Despre automate programabile

403

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ăriirezoluţ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 cumodulele de I/E discutate anterior, fie datorită particularităţii semnalelor procesate, fiedatorită complexităţii acestor funcţii. Un exemplu tipic îl constituie modulul numărător demare 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, careproduce 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ă prinprogram. 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.

Page 9: Despre automate programabile

404

Alte aplicaţii ale modulelor inteligente sunt cititoarele de coduri cu bare, controlerelepentru 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 demodule de I/E montate într-unul sau mai multe sertare de bază locale. Însă, în cazulaplicaţiilor în care instalaţiile sunt distribuite în spaţiu la distanţe mari, această structură arnecesita aducerea tuturor semnalelor la un punct central prin cabluri lungi şi costisitoare. Unalt dezavantaj îl constituie necesitatea renunţării la semnalele transferate la tensiuni mici.

De aceea, producătorii de automate programabile au prevăzut posibilitatea montăriisertarelor de bază cu module de I/E la distanţă faţă de modulul UC şi a conectării acestorsertare 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, pentruconectarea semnalelor de I/E la automatul programabil fiind necesare doar cabluri scurte. Maipuţin evident, comanda la distanţă permite realizarea unor unităţi complete, dispuse înapropierea 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 şivariabilele programului, în urma căreia fiecărui semnal îi revine o adresă de I/E (sau un grupde 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 esteconectat fiecare semnal. În continuare vor fi prezentaţi algoritmii de atribuire a adreselor deI/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 celorlaltesertare 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 discutatcel mai simplu (şi mai logic). Fiecare sertar de bază conţine 8 sloturi, numerotate 0-7, şi înfiecare slot pot fi instalate două module. De exemplu, în figura 7.13 slotul 1 conţine un modulde intrare pe 16 puncte şi un modul de ieşire pe 16 puncte, iar slotul 2 conţine două module de

Page 10: Despre automate programabile

405

ieşire pe 8 puncte. Adresarea intrărilor are forma generală I:sertarslot/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şirilesunt adresate într-o manieră similară: O:sertarslot/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 suntdispuse în grupuri de câte 8 biţi, ce formează un octet. Un semnal este identificat prin numărulsău de bit (0-7) şi numărul său de octet (0-127).Intrările sunt notate prin I octet.bitiar ieşirile sunt notate prin Q octet.bit [113]. De exemplu, I 9.4 este intrarea cuadresa 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 sertarulde 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 sertarde bază. Dacă se utilizează module pe 16 puncte (2 octeţi) cu adresare fixă (4 octeţi), cei doiocteţi mai semnificativi din fiecare slot sunt pierduţi.

În toate sistemele utilizatorul are posibilitatea alegerii adreselor de octet, ceea cecorespunde 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ăruisertar 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 12sloturi 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, carepermite modulului UC să verifice starea semnalelor de I/E la distanţă cu ajutorul unei unităţiGEM inteligente.

Semnalele de I/E sunt adresate prin cuvinte de 16 biţi, un cuvânt corespunzând la unulsau două sloturi, cu prefixele A pentru intrări şi B pentru ieşiri. Adresele de bit sunt alocate înzecimal, în gama 0-15. De exemplu, A 3.12 este bitul de intrare 12 din cuvântul 3 iar B 5.04este bitul 4 din cuvântul 5.

Page 11: Despre automate programabile

406

Fig. 7.15. Structura unui sistem GEM-80Un 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 moduleleutilizate.

Adresele individuale de slot pot fi setate prin comutatoare rotative fixate pe panoul dinspatele fiecărui sertar de bază. Utilizatorul are libertate în alegerea adreselor dar, de obicei, sepreferă 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 maicomplex 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

Page 12: Despre automate programabile

407

Modulele de I/E nu sunt identificate prin poziţia lor în sertarul de bază, ci prin adresasetată 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 unprocesor 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 canalal 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 prinidentificatorul 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) iarcele 16 ieşiri sunt notate Y430-Y447 (în octal). Numerele (aparent arbitrare) corespund, defapt, î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 acestesemnale, astfel că toate automatele programabile oferă memorii interne de bit. Acestea senumesc “relee auxiliare”la Mitsubishi, “fanioane” la Siemens, “spaţiu general de lucru” laGEM-80 şi “memorii de bit” la Allen Bradley.

Mitsubishi utilizează notaţia M nnn, cu nnn=100-377 în octal. Notaţia la Siemenseste F octet.bit, de exemplu, F 27.06. GEM-80 [110] are o varietate de spaţii generalede lucru. Cel mai utilizat se numeşte tabela G. O variabilă de memorie din tabela G apare înprogram 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, valorilememorate în tabela R (de exemplu, R 12.03) sunt păstrate şi atunci când automatulprogramabil 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 dememorie (de exemplu, B 3/192). B înseamnă memorie de bit iar 3 este obligatoriu şi esteutilizat 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 memoriiinterne de bit, această funcţie fiind îndeplinită de elementele şi conexiunile din interiorulbazei 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 figura7.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.

Page 13: Despre automate programabile

408

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 basculantebistabile (CBB), disponibile în programare sub forma unor blocuri logice. Figura 7.19.a esteun exemplu de utilizare a CBB RS la Siemens pentru comanda contactorului unui motor. Seobservă 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. Primuleste CBB SR elementar, celelalte tipuri încorporând porţi ŞI/SAU interne (cu numărul deintrări configurabil de către programator), care preced bistabilul. Figura 7.19.b este unexemplu 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 laMitsubishi

La Allen Bradley memoriile pe bit pot fi setate cu instrucţiunea L (Latch), respectivresetate cu instrucţiunea U (Unlatch). Figura 7.20.a exemplifică modul de utilizare a celordouă 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

Page 14: Despre automate programabile

409

7.20, prioritatea aparţine ultimei trepte de program (dintre cele două), datorită cicluluiprogram, fapt care dă prioritate, în mod corect, semnalului STOP.

Căderea alimentării sau oprirea automatului programabil cauzează problemememoriilor de bit. Unele memorii ar trebui să-şi păstreze conţinutul pe durata nefuncţionăriiautomatului programabil iar altele ar trebui resetate la repornire. În acest scop, producătorii deautomate programabile permit utilizatorului să stabilească care sunt memoriile de bit care îşivor păstra starea pe durata nefuncţionării automatului programabil (numite memorii cureţ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, 100ms, 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 ovaloare 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 (numitTON) ş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 avalorii 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 detemporizatoare. PLC-5 utilizează temporizatoarele la sfârşitul treptelor de program, semnaleletemporizatoarelor 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 S5-115U. 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 şicare arată efectiv când merge motorul. Dacă contactorul este declanşat, semnalul de lacontactul 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.

Page 15: Despre automate programabile

410

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 AllenBradley; 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 corespundetemporizatoarelor 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 continuetemporizarea de la valoarea la care s-a oprit, ca în figura 7.23.b. Această funcţionare

Page 16: Despre automate programabile

411

corespunde unui temporizator cu reţinere. Pentru acestea trebuie utilizat un semnalsuplimentar pentru aducerea lor la 0.

Pentru măsurarea unor timpi mai mari decât cei posibili cu un singur temporizator, sepot conecta în cascadă mai multe temporizatoare sau se pot utiliza împreună numărătoare şitemporizatoare.

7.9. Numărătoare

Numărătoarele sunt componente fundamentale ale multor programe de automatprogramabil şi, de aceea, toate automatele programabile sunt prevăzute cu anumite tipuri denumărătoare. Structura tipică a unui numărător este prezentată în figura 7.24. Fiecăruinumărător îi sunt asociate două valori. Prima este valoarea prestabilită, care poate ficonsiderată valoarea destinaţie a numărătorului şi poate fi modificată prin program. A douaeste valoarea acumulată, care va fi incrementată la fiecare tranziţie 01 a intrării de numărareînainte şi va fi decrementată la fiecare tranziţie 01 a intrării de numărare înapoi. Ea poate fiadusă 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 latemporizatoare, valoarea acumulată poate fi citită şi utilizată în alte părţi ale programului. Înplus, 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 şiGEM-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

Page 17: Despre automate programabile

412

Ca şi la temporizatoare, atunci când valoarea destinaţie nu poate fi atinsă cu un singurnumă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 înprograme a variabilelor numerice. Majoritatea automatelor programabile lucrează cu cuvintepe 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 întregeste disponibil la Master (sub numele de “întreg lung”) şi la modelele SIMATIC S5-135U şiSIMATIC 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 carepermite reprezentarea numerelor în gama (1,175E-383,402E38). Anumiţi producători aumicşorat exponentul pentru o mai mare precizie în mantisă (de exemplu, la automatulprogramabil Master gama este (5,4E-209,22E18)).

Tipul formatelor numerice disponibile variază considerabil de la un automatprogramabil la altul. F2 al firmei Mitsubishi permite doar transferuri, comparări şi ieşiri aledatelor numerice de la numărătoare sau temporizatoare, aceasta făcând din el în esenţă unautomat 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 figura7.26.a are loc transferul numărului din locaţia N 7:34 la valoarea prestabilită atemporizatorului T 4:6, atunci când condiţiile din treaptă sunt îndeplinite. Sursa şi destinaţiapot fi orice locaţie de memorie în care pot exista date numerice.

Siemens şi CEGELEC utilizează o abordare uşor diferită. Amândouă tratează untransfer de date cu două instrucţiuni separate, utilizând în acest scop un acumulator separat (olocaţie de memorie de un cuvânt). Siemens utilizează instrucţiunea L (Load) pentru atransfera data de la sursă în acumulator şi instrucţiunea T (Transfer) pentru a transfera datadin acumulator la destinaţie, ca în figura 7.26.b. Sursa şi destinaţia pot fi orice locaţii dememorie.

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ântuluide 16 biţi A12 este înscrisă într-o memorie internă de 16 biţi G24. Sunt posibile conversiiBCD-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 secompară numere reale este recomandată evitarea testului “=”. În plus, PLC-5 dispune de

Page 18: Despre automate programabile

413

instrucţiunea LIMIT, care testează dacă A este între B şi C, iar GEM-80 şi SIMATIC S5dispun de testul “”. În afară de F2 al firmei Mitsubishi, toate celelalte automate programabilediscutate permit realizarea a cel puţin patru operaţii aritmetice (+, -, , :). Pentru a puteapreveni posibilele erori cauzate de aceste operaţii, aceste automate programabile suntprevă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 seriaPLC-5 (cum ar fi 5-40) au o instrucţiune de calcul pe bloc, care permite evaluarea uneiexpresii aritmetice într-o singură instrucţiune. SIMATIC S5-115U evaluează instrucţiunilearitmetice în format IL (listă de instrucţiuni). În figura 7.26.b a fost ilustrat un exemplu detransfer, în care se utilizează acumulatorul. De fapt, există două acumulatoare, instrucţiunilearitmetice utilizând conţinutul ambelor acumulatoare. Automatele programabile Master alfirmei ABB şi GEM-80 al firmei CEGELEC oferă instrucţiuni aritmetice similare.

Unele automate programabile sunt prevăzute cu instrucţiuni speciale pentru procesareasemnalelor 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/Eanalogice sunt prevăzute cu funcţia PID. De exemplu, GEM-80 este prevăzut cu funcţiaPIDABS care permite implementarea regulatoarelor PID. Figura 7.27 exemplifică cel maisimplu 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 acestexemplu, începe la adresa W220. În total, o funcţie PIDABS necesită 15 locaţii de memorie încare sunt înscrise informaţii referitoare la:Codul de eroareValorile constantelor K, TI, Td, modificabile de către utilizator sau prin programLimitele ieşiriiViteza maximă de modificare a ieşiriiModul 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ţiaPID. 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

Page 19: Despre automate programabile

414

program”. Aceasta depinde de dimensiunea programului şi de viteza procesorului, o valoaretipică 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şteintră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 omemorează î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ţiereaprogramului; 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şacum 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 aieşirilor, de unde sunt actualizate (transferate spre punctele de ieşire) la sfârşitul fiecărui cicluprogram. Această zonă de date este mai mică decât cum ar fi de aşteptat. Pentru un automatprogramabil cu 1000 de I/E discrete, această zonă ar consta din 26 locaţii de memorie de 16biţi (un cuvânt). O valoare analogică va necesita un cuvânt. Temporizatoarele şinumărătoarele necesită câte două cuvinte (unul pentru valoarea curentă şi unul pentruvaloarea prestabilită) iar 16 memorii interne pe bit necesită un cuvânt. Majoritatea memorieieste alocată, de fapt, celei de-a patra zone, zona programului.

Evident, ciclul program limitează viteza semnalelor la care automatul programabiltrebuie să răspundă. În figura 7.29.a, un automat programabil este utilizat pentru numărareaunei secvenţe de impulsuri rapide, cu frecvenţa mai mică decât cea de execuţie a cicluluiprogram. Se observă că automatul programabil numără corect.

Fig. 7.29. Efectul ciclului program asupra impulsurilor rapide

Page 20: Despre automate programabile

415

În figura 7.29.b frecvenţa impulsurilor este mai mare decât frecvenţa de execuţie aciclului program şi automatul programabil începe să piardă impulsuri. În cazul extrem dinfigura 7.29.c, blocuri întregi de impulsuri pot fi total ignorate. De aceea, în general, oricesemnal de intrare citit de automatul programabil trebuie să fie prezent un timp mai mare decâtdurata ciclului program. Impulsurile mai scurte pot fi citite corect numai dacă se întâmplă caele să fie prezente la momentele potrivite, lucru care nu poate fi garantat. În general, frecvenţaimpulsurilor 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 filtrelemodulelor de intrare).

Mai puţin evident, un ciclu program poate cauza un decalaj aleator între intrări şiieşiri. În figura 7.30 este prezentată o intrare care trebuie să comande activarea imediată aunei ieşiri. În cazul cel mai bun, intrarea apare la începutul ciclului program, ducând laactivarea ieşirii după un ciclu program. În figura 7.30.b intrarea a apărut imediat după citireaintrărilor, fiind văzută de automatul programabil abia la începutul celui de al doilea cicluprogram. Prin urmare, ieşirea va fi activată cu o întârziere de două cicluri program faţă demomentu 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, înaplicaţiile unde sunt necesare acţiuni rapide, acest decalaj poate fi critic. Pentru a puteaaborda 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ă logicaprogramului lucrează împotriva execuţiei programului. Automatul programabil începe fiecareciclu program cu prima instrucţiune şi procesează toate instrucţiunile următoare într-omanieră 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 cincipaş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

Page 21: Despre automate programabile

416

În primul ciclu program intrarea determină evenimentul A. În următorul ciclu programevenimentul 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 sertarede bază comandate la distanţă şi conectate prin cablu serial. În general, starea acestor I/E estecitită de către un scaner de I/E, ca în figura 7.32, care, uzual, nu este sincronizat cu ciclulprogram. De exemplu, cu o durată a ciclului program de 30 ms şi cu un ciclu de comandă ladistanţă a I/E de 50 ms, cel mai scurt timp de răspuns poate fi de 30 ms, dar cel mai marepoate fi de 160 ms (cu o I/E pierzând la limită ciclul I/E iar ciclul I/E pierzând la limită ciclulprogram).

Fig. 7.32. Efectul ciclurilor program şi de I/E

În cazul programelor pentru controlul unor procese secvenţiale, durata unui cicluprogram este dependentă şi de tehnica de programare utilizată. Există două tehnici posibile derealizare 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 aparnumai 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 aleautomatului secvenţial şi tranziţiile posibile între aceste stări. Programul defineşte mai întâicondiţiile de activare a fiecărei stări, condiţiile de activare a fiecărei tranziţii şi abia apoicondiţ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 automateprogramabile oferă mai multe facilităţi. Tipic, există posibilitatea utilizării unor module de I/Einteligente şi independente (discutate în paragraful 7.4) şi există posibilitatea secţionăriiprogramelor în zone cu timpi de execuţie diferiţi. Pentru a reduce timpul de răspuns la unelesemnale de intrare considerate foarte importante, care necesită acţiuni urgente (cum suntsemnalele de avarie, de exemplu) există posibilitatea transferului prin întreruperi.

În scopul evitării buclelor infinite automatele programabile au fost prevăzute cu unceas de gardă (watchdog timer). Acesta este resetat la începutul fiecărui ciclu program şimă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 şicorespunde celui mai lung program posibil (dat de dimensiunea memoriei program) careutilizează instrucţiunile cele mai mari consumatoare de timp. Dacă valoarea măsurată aduratei ciclului program curent este mai mică decăt valoarea prestabilită a ceasului de gardă,

Page 22: Despre automate programabile

417

acesta permite execuţia unui nou ciclu program. În caz contrar, execuţia programului esteterminată şi toate ieşirile sunt dezactivate.

7.12. Limbaje de programare

Standardul IEC 1131-3 defineşte cinci limbaje de programare a automatelorprogramabile: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 clasede reţele Petri.

Lista de Instrucţiuni şi Textul Structurat fac parte din limbajele tradiţionale deprogramare a calculatoarelor. Diagrama Scară şi Diagrama cu Funcţii Bloc imită structurapredecesoarelor lor (implementări hardware ale regulatoarelor discrete şi continue, paraleleprin 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 sistemuluipe care vor fi executate programele. Cazul cel mai simplu este cel în care un singur programeste 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 unanume automat programabil realizează operaţiile de I/E şi managementul memoriei nu facparte din standard. Se presupune că valorile citite de la senzori şi valorile scrise la ieşiri sunttransferate 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 structuricare 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 şisă comunice prin “căi de acces”, care sunt abstracţii ale protocoalelor de comunicaţie. Unprogram este construit dintr-un număr de elemente software diferite, scrise în oricare din celecinci limbaje, existând posibilitatea transferului de date între aceste elemente. Ele pot ficoncepute în paralel şi pot fi apelate numai după ce au fost asignate unui task şi taskul fie estelansat de către un eveniment, fie este configurat să fie executat periodic.Toate limbajeleutilizează acelaşi set de caractere şi sunt în conformitate cu standardele ISO şi cu convenţiilepentru codificarea timpului. Standardul defineşte tipurile de date elementare, declaraţiiletipurilor de date compuse, iniţializările, etc. Variabilele pot fi locale sau globale. Suplimentarfaţă de variabilele abstracte “uzuale”, sunt permise şi variabile “direct reprezentate”, care suntadresate î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 specialal acestora îl reprezintă funcţiile (fără memorie). Acestea nu au variabile interne care să-şipăstreze valoarea între două invocări ale unei funcţii şi, de aceea, la fiecare invocare, pentru

Page 23: Despre automate programabile

418

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 cuFuncţ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 alstandardului. În terminologia software o funcţie bloc este un modul reactiv cu variabile şistructură de date proprii şi cu interfaţă cu exteriorul. Declararea lor este din punct de vederesintactic similară cu cea a funcţiilor. Ele pot fi imbricate, adică o funcţie bloc poate constituiargumentul unei alte funcţii bloc.

Există multe funcţii bloc standard, cum ar fi bistabilele, temporizatoarele şinumărătoarele. Alte funcţii bloc oferă variante discretizate ale unor operatori în timpcontinuu, 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 limbajetextuale.

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 unlimbaj de asamblare de nivel inferior iar al doilea este un limbaj de nivel înalt asemănătorPascal-ului. Utilizând întreaga putere a acestor limbaje (de exemplu, buclele WHILE), esteposibil să se scrie proceduri al căror timp de execuţie este necunoscut, nelimitat şi chiarinfinit. Desigur, încorporarea unor asemenea programe în aplicaţiile de control nu este opractică sănătoasă. Pe de altă parte, este posibil să se impună restricţii sintactice care potgaranta un timp de răspuns limitat. De exemplu, se pot admite numai programe care nu ausalturi înapoi sau bucle FOR cu delimitatori constanţi.

Un alt dezavantaj al acestor limbaje este dat de caracterul lor secvenţial. Acesta le faceneadecvate pentru scrierea programelor de control care implică paralelisme. Prin urmare,concurenţa poate fi realizată fie prin multitasking, fie prin considerarea programelor scrise înaceste 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 formalismuldiagramelor logice scară (relay ladder logic), el însuşi un rezultat al compatibilităţiiretroactive cu schemele electrice convenţionale (cu relee).

În esenţă, în acest limbaj se scriu relaţii dintre valorile stării curente şi a variabilelor deintrare, pe de o parte, şi valorile stărilor următoare şi ale ieşirilor, pe de altă parte, plus câtevaspecificaţ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 vedereaformării unor funcţii bloc mai mari şi mai complexe. Interacţiunea dintre funcţiile bloc estereprezentată prin “conductori” care conectează variabilele de ieşire de la un bloc cuvariabilele 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ă structuricare nu sunt uşor de exprimat prin notaţii grafice. Acestea include buclele FOR, operaţiile cumatrici, întreruperile şi algoritmii complecşi în general.

Page 24: Despre automate programabile

419

Acest limbaj seamănă foarte mult cu limbajul Lustre, fundamentul mediului deprogramare 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 decompilaţie care verifică şi existenţa buclelor cauzale şi pe generarea unui cod optimizat carerulează 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 superioreste o chestiune de terminologie. Se bazează pe standardul francez Grafcet, care poate ficaracterizat sumar ca o variantă sincronă şi etichetată de reţele Petri. Entitatea de bază înDiagramele de Funcţii Secvenţiale îl reprezintă pasul. Din punctul de vedere al automatuluiprogramabil, un pas este o parte a stării sale. Acolo unde nu există paralelism, pasul esteidentic 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 pecare se bazează pasul poate fi mai complicat şi include bucle de reacţie de nivel inferior, darla nivelul Diagramei de Funcţii Secvenţiale acesta este reprezentat prin una sau mai multevariabile care rămân constante pe perioada cât pasul este activ. Acest lucru este similar cuarhitectura 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 nivelinferior. Paşii sunt reprezentaţi prin dreptunghiuri (figura 7.33). În fiecare pas se iau deciziiasupra variabilelor de ieşire, adică se specifică acţiunile. Care ieşiri se vor reseta şi care se vormenţine active depinde de calificatorii acţiunilor ce constituie pasul. Doi paşi consecutivi suntseparaţi printr-o tranziţie, care, în esenţă, este o condiţie asupra variabilelor de intrare. Atuncicând condiţia de tranziţie este adevărată, primul pas se încheie şi începe pasul următor. Otranziţie este reprezentată printr-o linie orizontală îngroşată ce intersectează linia verticală ceuneş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 deimplementare 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ândasociate condiţii de tranziţie şi paşi următori. Condiţiile nu trebuie să fie mutual exclusive.

Page 25: Despre automate programabile

420

Pentru a decide care ramificaţie se va efectua, condiţiile vor fi evaluate utilizând o ordineimplicită sau o ordine definită de către utilizator. Operatorul de compunere paralelă estereprezentat grafic printr-o linie orizontală dublă, de la care pot emana secvenţe paralele. Înacest 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, denumitsincronizare, este reprezentat printr-o altă linie orizontală dublă la care converg toţi paşiifinali din procesele paralele. Tranziţia ce urmează după această linie determină încheiereaacestor paşi. Pentru a evita ambiguităţile se poate presupune că nu există evenimentesimultane şi că fiecare condiţie este luată în considerare de îndată ce devine adevărată. Acestesemantici ideale sunt aproximate printr-o implementare în care variabilele de intrare sunteş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 esteactiv. Anumite acţiuni pot fi active pe întreaga durată a pasului, unele pot fi executate numaila î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 limbajputernic, 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 unorsisteme 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 deadrese 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ă sautransmite date de la / la automatele slave (care nu comunică între ele). Toate slave-urile auadrese care permit master-ului să genereze comenzi de genul “Staţia 3, transmite valoareaintră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 lapunct 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

Page 26: Despre automate programabile

421

În figura 7.36 staţiile au fost conectate într-un inel. Nu există master şi orice staţiepoate comunica cu orice altă staţie, având drepturi egale de acces. Această structură estedenumită legătură egal-la-egal (peer-to-peer). Este necesară utilizarea unor tehnici de evitarea 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 automateleprogramabile. Există o singură linie cu rezistoare terminale şi, la fel ca reţeaua în inel, este olegă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 iaumă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 divizionmultiplexing) sau TDM. Chiar dacă previne conflictele, poate fi ineficientă deoarece o staţieva trebui să aştepte pentru intervalul ei de timp chiar dacă nici o staţie nu are vreun mesaj detransmis. Într-o oarecare măsură pot fi preîntâmpinate diferenţele între frecvenţele mesajelorunor staţii diferite prin alocarea mai multor intervale de timp uneia sau mai multor staţii. Într-o reţea cu cinci staţii, notate A,…, E, dacă staţia A este mai solicitată, poate fi adoptată oordine 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ă prininel. Când o staţie doreşte să transmită un mesaj, ea aşteaptă ca pachetul gol să ajungă îndreptul ei, după care poate să-şi plaseze mesajul.

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

Page 27: Despre automate programabile

422

O idee similară este transferul simbolului sau tokenului, unde un simbol cusemnificaţia “Permisiune de transmisie” circulă prin reţea. O staţie poate emite doar atuncicând este în posesia simbolului, care este eliberat doar atunci când se primeşte confirmarearecepţionării mesajului.

Atât metoda pachetului gol cât şi metoda transferului tokenului necesită o cale dereinstalare a pachetului gol sau a tokenului la refacerea reţelei după o cădere a ei. Acest lucrueste realizat, de obicei, de o staţie master sau de o staţie monitor, care însă nu are acelaşi rolca ş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 caredoreşte să emită un mesaj “ascultă” în reţea să vadă dacă aceasta este utilizată de cineva saunu. Dacă este, staţia aşteaptă. Dacă reţeaua nu este ocupată, staţia emite mesajul ei, prinaceasta blocând toate celelalte staţii până când se termină mesajul. Această metodă senumeş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ă. Esteutilizat 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 (CSMAwith colision detection) sau CSMA/CD.

Există o diferenţă fundamentală între TDM, pachetul gol şi transferul tokenului pe deo parte, şi CSMA pe de altă parte. La primul grup există o anumită risipă de timp, în schimbfiecare 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 brevetatesau 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ă peer-to-peer fără master prin transferul tokenului, denumită Data Highway Plus. Este bazată pe uncablu coaxial şi operează la 57,6 Kbaud. Adresele de staţie sunt setate prin comutatoare DIPexistente 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 unprotocol numit ESP (Extended Simple Protocol). Acesta realizează doar comunicaţii master/slave, comunicaţiile slave/slave fiind posibile doar prin utilizarea master-ului pentruretransmisia 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 numelecomun SINEC. Două din acestea, cu sufixul L, sunt reţele pentru nivele ierarhice inferioare iarcelelalte 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 deslave şi operează după standardul RS 485. SINEC L2, cunoscută şi ca FieldBus, este o reţeapeer-to-peer ce utilizează transferul tokenului. SINEL H1 este o reţea în bandă de bază, ceoperează la 10 Mbaud pe un cablu coaxial de maxim 2,5 km. Operează după standardul IEEE802.3, cunoscut sub numele de Ethernet cu legături dense. Suportă până la 1024 staţii,

Page 28: Despre automate programabile

423

utilizând CSMA/CD pentru controlul accesului. SINEC H2B este o reţea în bandă largă, ceoperează la 10 Mbaud pe un cablu coaxial. Este bazată pe standardele IEEE 802.4 şi IEEE802.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ă eforturilorproiectanţilor şi presiunii utilizatorilor au apărut câteva sisteme de comunicaţie recunoscute cadechise şi interoperabile.

Interfaţa AS-i este un sistem de interconectare serială a senzorilor, elementelor deexecuţie şi a altor echipamente similare, operând la nivelul cel mai inferior al procesului. Estedestinată înlocuirii cablării paralele convenţionale. Capabilităţile sale au fost îmbunătăţitecontinuu, 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ândtransparenţă totală. Tehnologia AS-i este standardizată prin standardul IEC 62026-2.

Interbus este utilizată în automatizările de mari dimensiuni şi este adecvată conectăriidispozitivelor digitale. Ethernet este o LAN foarte populară, bazată pe magistrale. Staţiile suntconectate la cabluri prin adaptoare numite noduri de reţea. Viteza transmisiei este 10 Mbaud.

PROFIBUS este o reţea deschisă, internaţională, independentă, standardizată substandardul european EN 50170. Protocolul PROFIBUS a fost proiectat pentru sistemele deconducere 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 unulsau 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 estepornit şi legătura este întreruptă. Bitul corespunzător pentru “Motor merge”, care este setat înautomatul programabil B nu va fi resetat (datorită întreruperii legăturii) şi, deci, automatulprogramabil A va fi incapabil să oprească motorul.

Când comutatorul este decuplat, controlul legăturii seriale din automatul programabilA 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ă ridiceprobleme, 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”, automatulprogramabil 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ă formecomplementare ale acestui semnal acţionează două temporizatoare de tip TOF fixate la 2secunde. Cu ieşirea “Legătură bună” pot fi acţionate ieşirile comandate de către legăturaserială. Dacă legătura se defectează, unul din cele două temporizatoare se va dezactiva (iarcelălalt va rămâne activat), determinând dezactivarea semnalului “Legătură bună” şi a tuturorieş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şterea timpului de răspuns introdus de reţea.

Page 29: Despre automate programabile

424

Fig. 7.40. O soluţie de verificare a legăturii seriale

Primele măsuri împotriva zgomotelor sunt separarea de cablurile de alimentare prinutilizarea unor trasee separate sau a unor tuburi de protecţie. Ecranele cablurilor trebuie să fieneîntrerupte şi trebuie pământate toate într-un singur loc. De asemenea, ecranele cablurilor nutrebuie 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 unuielement de execuţie se poate datora unei erori în program, unui defect în automatulprogramabil, unui modul de ieşire defect, unei defecţiuni la sursa de alimentare a modululuide ieşire, unui defect la elementul de execuţie sau unui defect la limitatorul ce permiteactivarea elementului de execuţie. Figura 7.41 prezintă probabilităţile de defectare ale unordiferite părţi ale unui sistem tipic cu automat programabil.

Se observă că 95% din defectele “automatului programabil” se datorează unordispozitive 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, pentruasigurarea dependabilităţii sistemului nu este suficient să se aibă în vedere numai defectele cepot apare în interiorul automatului programabil. Trebuie avute în vedere şi posibilele defecteexterne, întrucât apariţia lor afectează şi dependabilitatea automatului programabil.

7.15. Concluzii

Automatele programabile sunt sisteme complete, prevăzute cu un sistem de operarerobust şi cu toate elementele necesare conducerii proceselor industriale. Iată o sinteză aprincipalelor lor avantaje: Este disponibilă o gamă largă de module de I/E, ce permit conectarea directă cu dispozitivede I/E digitale şi analogice ale procesului. În plus, există o diversitate de module de I/Especiale, inteligente şi autonome, care permit interfaţarea cu echipamente speciale cum ar fitraductoare incrementale, roboţi, etc.

Page 30: Despre automate programabile

425

Posibilitatea comenzii la distanţă le face deosebit de utile în conducerea proceselorpericuloase şi distribuite pe arii geografice mari. Adresele de I/E sunt hardware, ceea ce înseamnă că utilizatorul trebuie să le atribuie înstrictă concordanţă cu un algoritm de alocare conceput de către producător. Uzual, acestalgoritm 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 suntprevăzute cu memorii pe bit şi cu registre de date pentru cuvinte. Memoria de date, însă, estemult mai mică decât la calculatoarele PC. De asemenea, pentru calcul unor algoritmicomplicaţ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. Citireaintrărilor numai la începutul ciclului program şi actualizarea ieşirilor numai la sfârşitulacestuia elimină fenomenele de hazard ce ar putea apare în cazul unei comunicaţii continue cumediul extern. Pe de altă parte, însă, comunicaţia periodică cu mediul extern numai la anumitemomente de timp impune restricţii asupra semnalelor de intrare şi determină întârzieri încomanda ieşirilor. În plus, facilităţile de care dispun automatele programabile moderne(transfer prin întreruperi, rularea blocurilor de program la viteze diferite, etc.) pot afectanegativ ciclul program. Sunt disponibile cinci limbaje de programare. Ele pot fi folosite combinat în interiorul unuiprogram ş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 standardizatece permit implementarea sistemelor deschise.

Prezentarea detaliată a caracteristicilor şi aptitudinilor automatelor programabilerealizată î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 şiimpactul sistemelor deschise permit utilizarea lor şi în sisteme de conducere hibride, împreunăcu alte soluţii.