You are on page 1of 137

Eugen Ioan GERGELY

AUTOMATEPROGRAMABILE
CURS

CUPRINS

NOTAII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 CAPITOLUL 1. SISTEMELE DE CALCUL I CONTROLUL INDUSTRIAL . . . . . . . . . . . . . . . . . . . . 1.1. Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2. Contextul industrial . . . . . . . . . . . . . . . . . . . . . . . 1.3. Noile reguli de producie . . . . . . . . . . . . . . . . . . . . 1.4. Tipuri de strategii de control . . . . . . . . . . . . . . . . . . 1.4.1. Subsisteme de monitorizare . . . . . . . . . . . . . . 1.4.2. Subsisteme secveniale . . . . . . . . . . . . . . . . . 1.4.3. Subsisteme de control n bucl nchis . . . . . . . . 1.4.4. Echipamente de control . . . . . . . . . . . . . . . . . 1.5. Utilizarea calculatoarelor . . . . . . . . . . . . . . . . . . . . 1.5.1. Arhitectura calculatoarelor . . . . . . . . . . . . . . . 1.5.2. Programarea n cod main i n limbaj de asamblare 1.5.3. Limbaje de nivel nalt . . . . . . . . . . . . . . . . . . 1.5.4. Programe de aplicaie . . . . . . . . . . . . . . . . . . 1.6. Cerine ale controlului industrial. . . . . . . . . . . . . . . . 1.7. Automatele programabile . . . . . . . . . . . . . . . . . . . 1.7.1. Scurt istoric . . . . . . . . . . . . . . . . . . . . . . . 1.7.2. Normalizarea . . . . . . . . . . . . . . . . . . . . . . 1.7.3. Tendine ale pieei . . . . . . . . . . . . . . . . . . . CAPITOLUL 2. STRUCTURA AUTOMATELOR PROGRAMABILE . . . . . . . . . . . . . . . . 2.1. Prezentare general a automatelor programabile . . . . . . 2.2. Module de I/E . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1. Module de intrri discrete . . . . . . . . . . . . . . . 2.2.2. Module de ieiri discrete . . . . . . . . . . . . . . . . 2.3. Identificarea adreselor de I/E . . . . . . . . . . . . . . . . 2.3.1. Adresarea I/E la AP PLC-5 al firmei Allen Bradley . 2.3.2. Adresarea I/E la AP SIMATIC S5 al firmei Siemens 2.3.3. Adresarea I/E la AP GEM-80 al firmei CEGELEC . 2.3.4. Adresarea I/E la AP Master al firmei ABB . . . . . . 2.3.5. Adresarea I/E la AP F2 al firmei Mitsubishi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6 7 8 9 10 10 12 13 14 15 17 17 19 20 24 24 28 28 30 30 32 32 34 38 39 40 42 43 45

3 2.3.6. Adresarea I/E la AP APC700 al firmei IPA S.A. Bucureti . . . . . . . . . . . . . . . . . . . . . . 2.4. Adresarea memoriei interne de un bit . . . . . . . . . . 2.5. Execuia programelor . . . . . . . . . . . . . . . . . . . 2.5.1. Ciclul program . . . . . . . . . . . . . . . . . . . 2.5.2. Ramificaii i repetiii . . . . . . . . . . . . . . . 2.5.3. Subrutine . . . . . . . . . . . . . . . . . . . . . . 2.5.4. Transferul prin ntreruperi . . . . . . . . . . . . . 2.6. Comanda la distan . . . . . . . . . . . . . . . . . . . 2.7. Avantajele controlului cu AP . . . . . . . . . . . . . . CAPITOLUL 3. LIMBAJE DE PROGRAMARE . 3.1. Standardul IEC 1131-3 . . . . . . . . . . . . . 3.2. Diagrama scar . . . . . . . . . . . . . . . . . 3.3. Diagrama cu blocuri funcionale . . . . . . . . 3.4. Lista de instruciuni . . . . . . . . . . . . . . . 3.5. Textul structurat. . . . . . . . . . . . . . . . . 3.6. Diagrama de stare secvenial . . . . . . . . . CAPITOLUL 4. FUNCII SPECIALE . . . . 4.1. Programarea memoriei interne de un bit 4.2. Temporizatoare . . . . . . . . . . . . . . 4.3. Numrtoare . . . . . . . . . . . . . . . . 4.4. Aplicaii numerice . . . . . . . . . . . . 4.4.1. Reprezentarea numerelor. . . . . . 4.4.2. Transferul datelor . . . . . . . . . . 4.4.3. Compararea datelor . . . . . . . . 4.4.4. Operaii aritmetice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 45 46 47 52 53 54 54 56 58 58 61 65 67 70 71 78 78 82 87 91 91 94 96 97

CAPITOLUL 5. METODE DE PROGRAMARE 5.1. Programarea logicii combinaionale . . . . . 5.2. Programarea logicii secveniale . . . . . . . 5.3. Ingineria software . . . . . . . . . . . . . . . 5.4. Proiectarea top-down . . . . . . . . . . . . . 5.5. Structura programelor n diverse AP . . . . 5.6. ntreinerea i practica software . . . . . . .

. 102 . 102 . 105 . 115 . 118 . 120 . 125

BIBLIOGRAFIE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

NOTAII
AP - Automat(e) Programabil(e) ARQ - Automatic Transmission on Request = transmisie automat la cerere AS - Actuator / Sensor = element de execuie / senzor ASCII - American Standard Code for Information Interchange = Code standard american pentru schimbul de informaii ASK - Amplitude Shift Keying = modulaie n amplitudine BCC - Block Check Character = caracter de verificare a blocului BCD - Binary Coded Decimal = zecimal codificat binar BS - British Standard = Standard Britanic CAN - Convertor(Conversie) Analog-Numeric() CBB - Circuit(e) Basculant(e) Bistabile CCITT - Comitetul Consultativ Internaional de Telefonie i Telegrafie CCM - Centru de Control al Motorului CRC - Cyclic Redundancy Code = cod ciclic de redundan CSMA - Carrier Sense Multiple Access = acces multiplu prin detectarea purttoarei CSMA/CD CSMA/ Colision Detection = acces multiplu prin detectarea purttoarei cu detecia coliziunilor DBF - Diagram(e) cu Blocuri Funcionale DCE - Data Communication Equipment = echipament de comunicaie a datelor DS - Diagram(e) Scar DSS - Diagram(e) de Stare Secvenial(e) DTE - Data Terminal Equipment = echipament terminal de date EDDI - Error Detection and Diagnostic Indication = Indicator pentru detectarea erorilor i diagnosticare EIA - Electrical Industries Association = Asociaia industriilor electrice ESP - Extended Simple Protocol = protocol simplu extins FEC - Forward Error Control = control n avans al erorilor FIMs - Functionally Identified Maintenance system = Sistem de mentenan identificat funcional FSK - Frequency Shift Keying = modulaie n frecven HDLC - High level Data Link Control = protocol de comunicaie de nivel nalt HSE - Health and Safety Executive = Executivul de Sntate i Siguran I/E - Intrare/Ieire, Intrri/Ieiri

5 - International Electrotechnical Comittee = Comitetul internaional de electrotehnic ISO - International Standards Organization = Organizaia internaional a standardelor ITU - International Telecommunication Union = Uniunea Internaional de Telecomunicaii LAN - Local Area Network = reea local (pe arie restrns) LI - Lista de Instruciuni LSB - Least Significant Bit = Bitul cel mai puin semnificativ MAP - Manufacturing Automation Protocol = protocol de automatizare a produciei MMI - Man-Machine Interface = interfa om-main MT - Mentenance Time = durata mentenanei (planificate) MTBF - Mean Time Between Failures = timpul mediu de bun funcionare MTTF - Mean Time To Failure = timpul mediu pn la defectare MTTR - Mean Time To Repair = timpul mediu de reparare ND - Normal Deschis NI - Normal nchis OSI - Open System Interconnection = (model de) interconectare a sistemelor deschise P - Proporional PC - Personal Computer = calculator personal PI - Proporional-Integrator PID - Proporional Integrator Derivativ PLC - Programmable Logic Controller = automat programabil PSK - Phase Shift Keying = modulaie n faz PV - Process Variable = variabil de proces RSU - Releu Stop de Urgen SB - Sertar(e) de Baz SDLC - Synchronous Data Link Control = protocol de comunicaie sincron SNR - Signal to Noise Ratio = raportul semnal-zgomot SP - SetPoint = valoare prestabilit, referin SFC - Sequential FlowChart = DSS TDM - Time Division Multiplexing = multiplexare prin divizarea timpului TOF - Timer OFf (delay) = temporizare la declanare TON - Timer ON (delay) = temporizare la anclanare TS - Text Structurat UAL - Unitate Aritmetic i Logic UART - Universal Asynchronous Receiver-Transmitter = Emitor-receptor asincron universal UC - Unitate de Comand UCP - Unitate Central de Procesare WAN - Wide Area Network = reea extins (pe arie larg) XOR - eXclusive-OR = (funcia logic) SAU-EXCLUSIV IEC

CAPITOLUL 1 SISTEMELE DE CALCUL I CONTROLUL INDUSTRIAL

1.1.

Introducere

Foarte puine instalaii industriale pot funciona singure i majoritatea lor necesit o anume form de sistem de control pentru a asigura o operare sigur i eficient. Figura 1.1 este o reprezentare a unei instalaii tipice, care poate fi o uzin conectat la un sistem de control [27].

Figura 1.1. O imagine simplificat a unui sistem de control Sistemul de control transform comenzile operatorului uman n aciuni necesare i afieaz starea instalaiei ctre operator. La cel mai simplu nivel, instalaia poate fi un motor electric care acioneaz un ventilator de rcire. Aici sistemul de control poate fi compus din: un contactor electric, protecii la scurtcircuit i suprasarcin a motorului, respectiv a cablurilor. Controlul operatorului poate consta n butoane de START / STOP iar starea instalaiei poate fi observat prin lmpi de semnalizare de PORNIT / OPRIT i DEFECT. La cealalt extrem, uzina poate fi o vast instalaie petrochimic. Aici sistemul de control poate fi complex i const ntr-o combinaie de

7 tehnologii. Legtura cu operatorul uman poate fi la fel de variat, comenzile fiind date iar informaiile fiind afiate prin intermediul diverselor echipamente. n majoritatea cazurilor, operatorul va fi o parte a sistemului de control. Dac se declaneaz o alarm care nseamn "Nivel sczut de ulei", operatorul trebuie s adauge ulei.

1.2. Contextul industrial


Din punct de vedere al gestiunii i al automatizrii, ntreprinderile industriale pot fi clasificate, n general, n dou mari categorii: ntreprinderi cu procese continue i ntreprinderi manufacturiere. n primul caz producia este descris n termenii debitului de materiale. Tipice pentru acest caz sunt uzinele fizico-chimice i petrochimice. Procesul de producie este caracterizat printr-o secven de reacii fizico-chimice ce se succed ntr-o manier continu sau cvasicontinu. Este clar c n aceste ntreprinderi producia este limitat strict, att din punctul de vedere al naturii produselor, ct i din punctul de vedere al utilajelor de producie. n cea de-a doua categorie de ntreprinderi se fabric produse de mai multe tipuri, care pot fi, evident, de complexitate diferit. Industriile mecanice, electrice i electronice aparin acestei categorii. Procesul de producie se prezint, n general, ca o succesiune de operaii de producere i asamblare realizate manual sau cu ajutorul mainilor. Problemele cu care se confrunt actualmente ntreprinderile industriale pot fi explicate prin evoluia pieei. Cu puin timp n urm, piaa era caracterizat prin faptul c productorii erau cei ce determinau tipul i cantitatea produselor. Utilizatorii (clienii) cumprau ceea ce era disponibil. Astzi piaa se caracterizeaz prin faptul c cerinele produciei sunt determinate de ctre solicitrile utilizatorilor (clienilor). Concurena s-a nteit i mondializat considerabil iar exigenele consumatorilor au sporit, ndeosebi n ceea ce privete calitatea produselor. Ciclul de via al produselor s-a redus considerabil: 3-4 ani pentru un automobil i mai puin pentru un calculator PC. n termenii produciei, aceasta nseamn o mare varietate de produse cu un ciclu de via scurt i n serii mici [50]. Pentru a supravieui, ntreprinderile vor trebui s produc repede, de calitate i n concordan cu cerinele pieei, trebuind n acest sens s se poat adapta rapid la evoluia produselor [29].

1.3. Noile reguli de producie


Noile reguli de producie pot fi rezumate, ntr-o manier sugestiv, prin cinci zerouri: zero defecte, zero ntreruperi ale produciei, zero stocuri, zero ntrzieri i zero documente. Semnificaia primelor patru zerouri este clar. Al cincilea indic dorina de a suprima mulimea de documente ce trebuie ntocmite, care adesea ngreuneaz munca personalului i este sursa unor numeroase erori. n cazul ideal, ar trebui adugate nc dou zerouri: zero accidente i zero probleme sociale. n termeni tehnici, aceste noi reguli de producie relev o filozofie numit "fix-la-timp" (Just-in-Time) [30]. Este vorba de un principiu de organizare industrial, aprut la nceputul anilor 80, care preconiza cumprarea sau producia numai a produselor necesare, la momentul oportun. Acest principiu trebuia respectat att la nivelul produselor finite (s se produc numai produse pentru care exist comand), ct i la nivelul componentelor constitutive ale acestor produse. Primul rezultat ar consta ntr-o reducere drastic a stocurilor, ce ar conduce la o mbuntire a situaiei financiare a ntreprinderilor. n realitate, reducerea stocurilor nu este dect nceputul unei reacii n lan, care a condus la schimbri majore n profunzimea funcionrii ntreprinderilor. Pentru a produce fr stocuri i pentru a garanta livrri la timp, este necesar s existe timpi de fabricaie foarte scuri, flexibilitate pentru a putea urmri cererea de produse (n varietate i n cantitate) i o nalt dependabilitate a produciei. La nivelul organizrii produciei aceasta implic: divizarea uzinei n celule care s permit nlnuirea rapid a operaiilor referitoare la o pies sau la un produs ntr-o manier care s evite depozitrile intermediare; limitarea deplasrilor n vederea acccelerrii produciei; flexibilitatea celulelor menionate anterior, ele trebuind s permit schimbarea rapid a utilajelor i a programelor de fabricaie; controlul calitii n fiecare etap a fabricaiei; fiabilitatea mainilor, ceea ce nseamn, printre altele, aplicarea unei politici riguroase de mentenan preventiv; polivalena calificrii operatorilor, care devin responsabili att de cantitatea i calitatea pieselor sau produselor fabricate, ct i de buna funcionare a mainilor;

9 mbuntirea relaiilor cu furnizorii att la nivelul livrrilor la timp, ct i la nivelul calitii produselor furnizate. O soluie const n analiza fluxului de materiale i de informaii asociate procesului de producie, n raionalizarea lor i n simplificarea lor la maxim. Apare, astfel, cu claritate oportunitatea automatizrii i informatizrii proceselor de producie. Automatizarea permite accelerarea fabricaiei i/sau garantarea constanei calitii ei. Pentru motivele exprimate anterior, automatizarea trebuie s fie flexibil. Aceast flexibilitate se traduce la nivelul structurii mainilor unelte prin faptul c ele trebuie s fie polivalente i adaptabile i s fie prevzute cu o gestiune a uneltelor i a alimentrii cu piese complet automatizate. Astfel, un robot, de exemplu, va apare ca o main flexibil prin excelen. Aceast flexibilitate trebuie s se regseasc i la nivelul sistemelor de comand a mainilor, ale cror moduri de funcionare trebuie s poat fi modificate foarte uor. Acest aspect nu mai ridic n momentul de fa probleme reale, deoarece practic toate mainile de producie noi sunt comandate cu dispozitive bazate pe microprocesoare. n plus, posibilitile de comunicaie existente permit transferul i modificarea programelor nu numai de la sistemele de conducere proprii, ci i de la alte sisteme de calcul. Informatizarea are ca obiectiv ameliorarea transferului de informaii referitoare la procesul de producie. Aceste informaii se refer nu numai la fabricaia propriu-zis, ci i la concepia produselor, la gestiunea tehnic, financiar i administrativ a uzinei, la management, la marketing, etc. Aceste aspecte diferite ale produciei au devenit, de ctva timp, obiectul unor dezvoltri infomatice specifice. Noile reguli de producie evocate aici conduc, n mod natural, la o integrare a mijloacelor informatice ale unei ntreprinderi. Termenul "integrare" utilizat aici acoper nu numai interconectarea fizic a calculatoarelor n reele de comunicaie, dar i interconectarea logic a lor. Pe de alt parte, integrarea ofer fiecruia accesul direct la informaiile dorite, la momentul dorit i n locul dorit.

1.4. Tipuri de strategii de control


Este foarte simplu s fii derutat i copleit de dimensiunile i complexitatea unui proces industrial mare. Majoritatea acestora, dac nu toate, pot fi simplificate prin considerarea lor ca fiind compuse din mai

10 multe subprocese mici. Aceste subprocese pot fi difereniate, n general, n trei tipuri distincte. 1.4.1. Subsisteme de monitorizare Acestea afieaz starea procesului ctre operator i atrag atenia asupra situaiilor anormale sau de defect. Starea instalaiei este msurat prin senzori (traductori) corespunztori. Senzorii digitali evalueaz parametrii cu stri distincte. Exemple tipice sunt: PORNIT / OPRIT, MERS NAINTE / MERS NAPOI, DEFECT / BUN, BLOCAT / JOS / MEDIU / NALT, NIVEL RIDICAT / NORMAL / SCZUT. Senzorii analogici msoar parametrii care au un domeniu de variaie continuu, cum ar fi temperatur, presiune, debit sau nivel. Rezultatele acestor msurtori sunt afiate ctre operator prin indicatori (pentru semnalele digitale) sau prin aparate de msur i contoare (pentru semnalele analogice). Semnalele pot fi, de asemenea, verificate pentru situaiile de alarm. Un limitator de capt de curs sau un releu termic folosit pentru suprasarcina unui motor sunt condiii tipice digitale de alarm. O temperatur nalt sau un nivel sczut de lichid pot fi condiii tipice analogice de alarm. Operatorul trebuie informat asupra acestora prin echipamente de avertizare acustic i vizual. Un sistem de monitorizare pstreaz adeseori nregistrri ale consumului de energie i materiale n scopul unor bilanuri i produce un jurnal de evenimente / alarme pentru analiza lui n etapa de mentenan. O pomp, de exemplu, poate necesita mentenan dup 5000 de ore de operare. 1.4.2. Subsisteme secveniale Multe procese urmresc secvene predefinite, cum ar fi, de exemplu, sistemul de control secvenial al cuptorului cu gaz din figura 1.2. Pentru pornirea arztorului, secvena de comand ar putea fi urmtoarea: a. Se apas butonul START. Dac senzorii arat c nu este debit de aer i nici flacr, atunci secvena poate ncepe. b. Se alimenteaz contactorul ventilatorului. Dac contactorul a cuplat (lucru verificat printr-un contact auxiliar al contactorului) i debitul de aer s-a stabilizat (lucru verificat prin limitatorul de debit), atunci: c. Se ateapt dou minute (pentru ca aerul s elimine gazele nearse) i apoi:

11 d. Se deschide valva pilot i se acioneaz aprinztorul. Se ateapt dou secunde i apoi se oprete aprinztorul i: e. Dac exist flacr (lucru verificat prin detectorul de flacr) se deschide valva de gaz principal. f. Secvena este complet. Cuptorul funcioneaz i rmne n aceast stare pn cnd se apas butonul STOP sau se oprete debitul de aer sau se stinge flacra.

Figura 1.2. Un cuptor de gaz cu sistem de control secvenial Secvena anterioar utilizeaz doar semnale discrete, dar poate utiliza i semnale analogice. n figura 1.3 este prezentat un proces de amestecare a dou substane. Senzorii analogici sunt utilizai pentru a msura greutatea i temperatura pentru a da urmtoarea secven: a. Se deschide valva V1 pn sunt ncrcate 250 kg din produsul A. b. Se pornete paleta de amestecare. c. Se deschide valva V2 pn sunt adugate 310 kg din produsul B. d. Se ateapt 120 secunde (pentru amestecare complet). e. Se nclzete amestecul la 80 C i se menine la 80 C timp de 10 minute. f. Se oprete nclzitorul. Se ateapt pn cnd amestecul se rcete la 30 C.

12 g. Se oprete paleta mixerului. h. Se deschide valva de evacuare V3 pn cnd greutatea amestecului scade sub 50 kg.

Figura 1.3. Un proces de amestecare 1.4.3. Subsisteme de control n bucl nchis n multe sisteme analogice o variabil ca temperatur, presiune sau debit este necesar s fie meninut automat la o anumit valoare prestabilit sau s fie fcut s urmreasc un alt semnal. n pasul e al secvenei de amestecare anterioare, de exemplu, temperatura trebuie meninut constant la 80 C ntr-un domeniu foarte ngust timp de 10 minute. Asemenea sisteme pot fi reprezentate prin schema bloc din figura 1.4. Aici, un parametru al instalaiei (temperatura, notat prin PV variabil de proces) trebuie meninut la o valoare prestabilit SP (referin). PV este msurat printr-un senzor corespunztor i comparat cu SP pentru a da semnalul de eroare: abaterea = SP-PV (1.1) Dac, de exemplu, este vorba despre un regulator de temperatur cu SP = 80 C i PV = 78 C, atunci abaterea este de 2 C. Acest semnal de eroare este aplicat unui algoritm de control. Exist muli algoritmi de control (aceast tem fiind discutat n Capitolul 6), dar un exemplu de control al nclzirii poate fi urmtorul: "Dac eroarea este negativ oprete nclzirea iar dac este pozitiv pornete nclzirea". Ieirea algoritmului de control este transmis unui element de execuie care deservete instalaia. Pentru controlul temperaturii, elementul

13 de execuie poate fi o rezisten electric iar pentru controlul unui debit elementul de execuie poate fi o valv de control a debitului. Algoritmul de control va comanda elementul de execuie astfel nct eroarea s fie zero, adic PV = SP.

Figura 1.4. Un sistem de control n bucl nchis n figura 1.4 valoarea PV este transmis napoi pentru a fi comparat cu SP, ceea ce conduce la expresia "control cu reacie negativ". Trebuie, de asemenea, observat c schema bloc formeaz o bucl, astfel c expresia "control n bucl nchis" este, de asemenea, ntlnit. Deoarece procesul de corecie este continuu, valoarea PV poate fi fcut s urmreasc un SP care se modific. Proporia aer/gaz pentru un cuptor cu gaz (cum este cel din figura 1.2) poate fi, deci, meninut n ciuda modificrii funcionrii cuptorului. 1.4.4. Echipamente de control Cele trei tipuri de strategii de control prezentate anterior pot fi implementate pe mai multe ci. Sistemele de monitorizare / alarm pot fi deseori realizate prin conectarea senzorilor instalaiei la afiaje, indicatoare i dispozitive de alarm. Uneori, sistemele de alarm necesit o anumit logic. De exemplu, nu se poate genera o alarm la presiune sczut de ulei n timpul pornirii unei pompe, deoarece este necesar un interval de timp la nceputul funcionrii pompei, pentru a se permite stabilizarea presiunii n circuit. Dup acest timp, o presiune sczut va cauza oprirea pompei (n cazul n care scderea presiunii este cauzat de o scurgere). Sistemele secveniale pot fi realizate cu relee, temporizatoare i alte asemenea dispozitive electromagnetice. Circuitele logice (TTL sau CMOS, n general) pot fi utilizate pentru sisteme mai complexe [17, 6]. Multe aplicaii cu maini-unelte sunt realizate n jurul unor blocuri logice: uniti logice montate n sloturi (locauri prevzute cu conectori), coninnd pori logice, elemente de memorare, temporizatoare i numrtoare, conectate

14 prin terminale la blocuri, pentru a realiza operaia cerut. Ca i la sistemele cu relee, modificrile pot fi realizate relativ simplu. Controlul n bucl nchis poate fi realizat prin intermediul unor regulatoare construite pe baza unor amplificatoare de c.c., cum ar fi obinuitul 741. "Regulatorul cu trei termeni" (PID), descris n Capitolul 6, este un echipament care realizeaz funcia din figura 1.4 i este disponibil n comer. n industria chimic (i, n particular, n industria petrochimic), prezena unor atmosfere explozive a condus la utilizarea unor regulatoare pneumatice, cu semnalele din figura 1.4 reprezentate prin presiuni pneumatice.

1.5. Utilizarea calculatoarelor


Un calculator este un dispozitiv care realizeaz operaii predeterminate asupra unor date de intrare pentru a produce date de ieire, aa cum este reprezentat n figura 1.5.a.

Figura 1.5. Calculatorul n controlul industrial: a) privire general asupra calculatorului; b) calculatorul ca parte a unui sistem Pentru un calculator utilizat pentru calculul statelor de plat, datele de intrare vor fi numele angajailor, categoriile salariale i orele lucrate. Aceste date vor fi operate n concordan cu instruciunile scrise astfel nct s includ impozitele i asigurrile sociale, pentru a produce date de ieire sub forma restului de plat (sau, mai modern, suma transferat ntr-un cont bancar). Primele calculatoare au fost utilizate pentru operaii comerciale: state de plat, contabilitate, operaiuni bancare i alte activiti similare. Schema bloc a unei instalaii conduse de un calculator este o reprezentare apropiat de blocul de control din figura 1.1, care poate fi

15 redesenat sub forma unui calculator care conine blocurile de control, ca n figura 1.5.b. Se observ c aciunile operatorului nu sunt instruciuni, ci sunt o component a datelor de intrare. Instruciunile vor defini care aciuni trebuie considerate ca date de intrare (de la instalaie sau de la operator). Datele de ieire sunt aciunile de control asupra instalaiei i afiarea informaiilor ctre operator. Primele calculatoare au fost mari, scumpe i lente. Viteza nu era att de important n aplicaiile comerciale (programatorii comerciali vor fi, probabil, n dezacord), dar este de cea mai mare prioritate n aplicaiile industriale care trebuie conduse n timp real. Multe aciuni i alarme necesit comenzi ntreprinse n fraciuni de secund. Calculatoarele comerciale se bazau pe furnizarea datelor pe cartele perforate i prin tastatur, i pe trimiterea datelor de ieire ctre imprimante. Un proces industrial necesit , uneori, ca sute de dispozitive s fie citite n timp real iar semnalele s fie trimise ctre echipamente ca valve, motoare, aparate de msur, etc. Exist, de asemenea, problema mediului de funcionare. Calculatoarele comerciale au fost proiectate s lucreze n atmosfere protejate, umiditatea i temperatura trebuind meninute n limite nguste. Aceste condiii sunt imposibil de asigurat n procesele de producie. Prima aplicaie industrial a calculatoarelor a fost, probabil, un sistem de monitorizare instalat ntr-o rafinrie de petrol n Port Arthur, SUA, n 1959. Fiabilitatea i media timpilor ntre defectri ale calculatoarelor acelui timp au condus la o utilizarea redus a lor n asemenea aplicaii. 1.5.1. Arhitectura calculatoarelor Pentru a putea aprecia modul de utilizare al unui calculator n controlul industrial, este util cunoaterea prilor componente ale sale. n acest sens, figura 1.5.a poate fi extins pentru a ajunge la forma din figura 1.6. Aceast figur (care reprezint toat gama de calculatoare, de la cel mai mic PC la cel mai complex) are ase blocuri [13, 16, 41, 49]: 1. O unitate de intrare, prin care datele din exterior sunt introduse n calculator n vederea procesrii. 2. O memorie intern, care va pstra instruciunile programelor i datele de operare. Aceste date pot fi informaii venite din exterior sau rezultate intermediare i/sau finale ale calculelor. 3. Datele din memoria intern pot fi accesate foarte rapid, dar calculatoarele comerciale necesit, adeseori, rezerve mari de

16 memorie pentru a reine detalii cum ar fi: conturi bancare, nume i adrese. Acest tip de date nu e necesar s fie furnizate rapid i, de aceea, sunt pstrate n memoria extern. De obicei, aceasta const n discuri sau casete magnetice i este numit memorie secundar. Aceste memorii sunt puin utilizate la tipurile de calculatoare ce vor fi discutate.

Figura 1.6. Prile componente ale unui calculator 4. O unitate de ieire, prin care datele din calculator sunt transmise ctre exterior. 5. O unitate aritmetic i logic UAL, care realizeaz operaii asupra datelor din memorie n concordan cu programul executat de ctre calculator. 6. O unitate de comand UC, care face legtura ntre operaiile celorlalte cinci blocuri. Adeseori, UAL i UC sunt cunoscute mpreun sub numele de unitate central de procesare sau UCP. Un microprocesor este o UCP ntr-un singur circuit integrat. Instruciunile programului sunt pstrate n memorie i, cu mici excepii, se succed n ordine secvenial. Exist surprinztor de puine tipuri de instruciuni. Cele disponibile la majoritatea microprocesoarelor sunt de forma: 1. Transfer data dintr-un loc n altul. De exemplu, nscrie data ntr-o locaie de memorie sau transfer data din memorie n UAL. 2. Operaii aritmetico-logice asupra a doi operanzi, unul n UAL iar cellalt ntr-o locaie de memorie specificat. Operaiile uzuale sunt: +, -, AND, OR. 3. Salturi. ntr-un program instruciunile se succed una dup cealalt, secvenial. Exist, ns, situaii cnd este necesar continuarea execuiei programului cu o alt instruciune dect cea imediat urmtoare (salt necondiionat) sau cnd sunt necesare teste simple. Aceste din urm operaii utilizeaz salturi condiionate. Acestea vor

17 fi executate atunci cnd condiia testat este adevrat i permit ca programul s poat urma una din dou ci posibile. 4. Subrutine. Multe operaii sunt executate de mai multe ori n acelai program. ntr-un sistem de control industrial n care debitul este msurat cu o diafragm, este apelat de multe ori funcia radical de ordinul doi (deoarece debitul este proporional cu rdcina ptrat a diferenei de presiune pe diafragm). Dect s se scrie aceeai instruciune de mai multe ori (fapt care necesit efort i spaiu de memorie suplimentar), se utilizeaz o instruciune de apel de subrutin, care permite ca din diferite puncte ale programului principal s se transfere operaiile la o subrutin specificat. Dup execuia acesteia se revine n programul principal, la instruciunea aflat dup instruciunea de apel a subrutinei. 1.5.2. Programarea n cod main i n limbaj de asamblare Seria de instruciuni ce constituie programul trebuie scris i ncrcat n calculator. La nivelul cel mai sczut, numit programare n cod main, instruciunile sunt scrise n calculator sub form numeric. Acest lucru este dificil de fcut, favorizeaz erorile i este aproape imposibil de modificat ulterior. Secvena de numere: 16 00 58 21 00 00 06 08 29 17 D2 0E 40 19 05 C2 08 40 C9 reprezint instruciunile unei subrutine de multiplicare pentru microprocesorul Z80, care ncepe la adresa 4000H. Dar, chiar i un programator experimentat pentru Z80 are nevoie de bibliografie (i de mult timp) pentru a putea interpreta aceste 19 numere. Programarea n limbaj de asamblare utilizeaz mnemonice n locul codurilor, permind programatorului s scrie rapid instruciunile, care sunt uor de urmrit. Un program separat, denumit asamblor, convertete programul cu mnemonice (denumit program surs) ntr-un program cod main echivalent (denumit cod obiect), care poate fi lansat n execuie. Scrierea programelor n limbaj de asamblare este laborioas, pentru c exist cte o instruciune n limbaj de asamblare pentru fiecare instruciune n cod main. 1.5.3. Limbaje de nivel nalt Programele n limbaj de asamblare pentru anumite aplicaii sunt greu de scris, aa c au fost dezvoltate ci de scriere a programelor pentru

18 calculator ntr-un stil apropiat de limba englez. Acest lucru este realizat cu aa-numitele limbaje de nivel nalt, dintre care cele mai cunoscute sunt PASCAL, FORTRAN, BASIC (i altele, cum ar fi RPG, FORTH, LISP, CORAL, C), pentru a numi numai cteva din ele, fiecare avnd atraciile sale. ntr-un limbaj de nivel nalt programatorul scrie instruciunile ntr-o form apropiat de limba englez. Programul PASCAL de mai jos, de exemplu, furnizeaz la imprimant o tabel a nmulirii: program multtable(input,output); var deinmultit, inmultitor:integer begin readln ("Ce tabel dorii?",inmultitor); for deinmultit=1 to 10 do writeln (deinmultit,"ori",inmultitor,"egal", deinmultit*inmultitor); end.(of program) Chiar dac cititorul nu cunoate limbajul PASCAL, operaiile din program sunt clare (dac se cere schimbarea tabelei de nmulire pn la 10 cu o tabel de nmulire pn la 20, este clar care linie trebuie schimbat). Un program surs n limbaj de nivel nalt poate fi lansat n execuie prin dou metode: Cu un compilator, care este un program care convertete ntregul program surs n limbaj de nivel nalt, offline, ntr-un program cod obiect. Programul cod obiect rezultat poate fi apoi rulat independent de programul surs sau de compilator. Cu un interpretor. Programul surs i interpretorul exist n calculator n timpul execuiei programului. Interpretorul parcurge fiecare linie a codului surs i le convertete n cod main echivalent, pe msur ce sunt executate. El nu genereaz program cod obiect. Un program compilat este rulat mult mai rapid dect un program cu interpretor (tipic de 5-10 ori mai repede, datorit lucrului suplimentar depus de interpretor) iar programul cod obiect compilat va fi mult mai mic dect codul unui program echivalent cu interpretor. Compilatoarele sunt, totui, mai greu de utilizat, o secven tipic de lucru cu un compilator fiind urmtoarea: 1. Este lansat un editor de text (pentru a scrie programul surs sau pentru eventuale modificri ce trebuie aduse programului surs). 2. Programul surs este tastat sau este ncrcat de pe hardisc (dischet). 3. Dac au fost fcute modificri, fiierul surs rezultat este salvat pe hardisc (dischet).

19 4. Este ncrcat de pe hardisc compilatorul i este lansat n execuie. 5. Este ncrcat de pe hardisc (dischet) fiierul surs. 6. ncepe compilarea, care poate dura cteva minute. Dac este ntlnit cel puin o eroare, se trece napoi la etapa 1. 7. Este produs un program cod obiect, care poate fi salvat pe hardisc (dischet) i/sau rulat. Dac este ntlnit o eroare de execuie, se trece napoi la pasul 1.

Figura 1.7. Operarea unor limbaje de nivel nalt: a) compilate; b) interpretate Un interpretor este mai uor de utilizat i pentru multe aplicaii minusul de vitez este nesemnificativ. BASIC este, n general, un limbaj interpretat. PASCAL, C, FORTRAN sunt, de obicei, compilate. Figura 1.7 prezint simplificat modul de operare al unor limbaje de nivel nalt compilate sau interpretate. 1.5.4. Programe de aplicaie Pe msur ce calculatoarele au devenit tot mai rspndite, au fost scrise multe programe pentru a permite utilizatorului s defineasc execuia task-urilor, fr a-i face probleme despre cum va executa calculatorul aceste task-uri. Acestea sunt cunoscute sub numele de programe de aplicaie i sunt tipizate, cum ar fi Lotus 123, Visicalc i programe de gestiune a bazelor de date (cum ar fi DBASE i Data Ease). n acestea, utilizatorul definete operaii matematice complexe sau operaii asupra bazelor de date, fr a "programa" calculatorul ntr-un sens convenional.

20

1.6. Cerine ale controlului industrial


Controlul industrial are mai multe cerine diferite dect alte aplicaii. Un calculator convenional, reprezentat schematic n figura 1.8.a primete uzual datele de la tastatur i transmite date de ieire ctre un monitor sau ctre o imprimant. Datele procesate sunt, n general, caractere sau numere (de exemplu, numere de articole i cantiti existente ntr-o list de stocuri a unui magazin).

Figura 1.8. Diferena dintre calculatoarele comerciale i cele industriale: a) calculator comercial; b) calculator pentru control industrial Calculatorul de control din figura 1.8.b este foarte diferit. Intrrile sale provin de la un numr mare de dispozitive. Dei cteva din acestea sunt analogice (debit, temperatur, presiune, etc.), majoritatea sunt bipoziionale. Similar, ieirile sale pot fi semnale analogice i discrete. Un sistem de control foarte mic poate avea n jur de 20 de conexiuni de I/E. Sistemele de dimensiuni medii au n jur de 200 de conexiuni de I/E. Tastatura, imprimanta i monitorul pot exista, dar nu e necesar, iar funciile lor vor fi, probabil, diferite de cele dintr-un calculator de birou sau sistem. Dei exist posibilitatea conectrii acestor semnale la un calculator convenional, acest lucru necesit conexiuni non-standard i cutii externe. Similar, dei procesarea unui numr mare de semnale de I/E poate fi fcut n PASCAL, BASIC sau C, aceste limbaje sunt utilizate, n acest caz, n aplicaii diferite de cele pentru care au fost proiectate, cu implicaii negative asupra rezultatelor.

21 n figura 1.9.a, de exemplu, avem un simplu contactor al unui motor. Acesta poate fi conectat la un calculator, ca n figura 1.9.b. Cele dou intrri sunt identificate prin adresele 1 i 2 iar ieirii (contactorului K1) i s-a atribuit adresa 10.

Figura 1.9. Comparaie ntre conexiunile schemelor convenionale i ale schemelor bazate pe calculator pentru acionarea contactorului unui motor: a) cu un circuit convenional; b) cu un calculator Dac considerm c exist o funcie logic de program (N), care d starea 1/0 adresei N, i o procedur de bit (M, var) care transmite starea variabilei de program var la adresa M, putem reprezenta aciunile din figura 1.9 prin secvena: repeat start:=bitread(1); stop:=bitread(2); run:=((start) or (run))& stop; bitwrite(10,run); until hellfreezesover unde start, stop i run sunt variabile binare. Programul nu este prea clar, dei sunt doar trei conexiuni. Un program de control industrial rmne rareori neschimbat de-a lungul vieii sale. Exist ntotdeauna modificri ale programelor survenite datorit modificrii funcionrii instalaiei. Aceste modificri vor fi fcute de ctre personalul de ntreinere i trebuie fcute cu ntreruperi minime ale produciei. Adugarea unui al doilea buton de stop i unui al doilea buton de start la schema din figura 1.9 nu este o sarcin uoar pentru cei de la ntreinere, dac nu cunosc suficient de bine limbajul PASCAL ca s fac modificarea. n general, controlul cu calculator este realizat n timp real, astfel nct calculatorul are de rspuns la evenimente aleatoare, pe msura apariiei lor. Un operator ateapt ca un motor s porneasc (i, mai important, s se opreasc) la o fraciune de secund dup apsarea unui buton. Dei calculele

22 comerciale necesit calculatoare rapide, o diferen de o secund sau dou ntre timpii de calcul nu va fi observat de ctre utilizator. Asemenea diferene sunt, ns, inacceptabile n controlul industrial [12, 47, 53, 54]. Timpul nsui este o parte a strategiei de control (de exemplu, pornete ventilatorul, ateapt 10 secunde s se curee cuptorul de gaze, deschide valva pilot, ateapt 0,5 secunde, pornete aprinztorul, dac exist flacr deschide valva principal). Asemenea secvene sunt dificil de scris cu limbajele convenionale. Majoritatea defectelor sunt cauzate de factori externi (limitatoare, relee, etc.) i nu de unitatea de comand. Permisiunea de a porni instalaia, de exemplu, se poate baza pe semnale externe care implic debite de ap de rcire, presiune de ungere sau temperaturi n limite admise. Pentru gsirea rapid a defectelor, personalul de ntreinere trebuie s fie capabil s monitorizeze aciunea programului n timp ce acesta este n execuie. Dac exist 10 semnale de interblocare care permit pornirea motorului, personalul de ntreinere trebuie s fie capabil s le verifice repede n cazul unui defect. Cu un calculator convenional, acest lucru se poate obine doar prin mrirea complexitii programului. Sursele de energie electric dintr-un mediu industrial sunt utilizate de multe sarcini, care induc perturbaii (de exemplu, motoare mari pornind i oprindu-se sau acionri cu tiristoare, care produc vrfuri i armonice n tensiunile de alimentare). Pentru un om, acestea sunt percepute ca nite licriri de lumin, dar ntr-un calculator acestea pot duce la deteriorarea datelor sau chiar la defectarea mainii-unelte pe care o comand calculatorul. Un calculator industrial trebuie s fie capabil s lucreze n medii foarte neprietenoase i s rspund rapid n caz de ntrerupere a alimentrii. Unele ieiri trebuie s rmn n starea din acel moment iar altele trebuie s fie pornite sau oprite, pn cnd operatorul ia msurile de corecie necesare. Proiectantul trebuie s aib facilitatea de a defini ce se ntmpl atunci cnd sistemul pornete de la rece. Ultimele consideraii sunt legate de mediu. Un calculator de sistem mare lucreaz ntr-o ncpere cu aer condiionat, la 20 C i umiditate controlat. Un PC de birou lucreaz ntr-un mediu constant, deoarece oamenii nu lucreaz bine la extreme. Un calculator industrial va trebui s lucreze, probabil, departe de oameni, la temperaturi de -10 C iarna i +40 C vara. Aceste variaii de temperatur conduc la dilatarea i contracia constant a componentelor, ceea ce poate conduce la defectri, dac n faza de proiectare nu s-a inut cont de acest factor.

23 La aceste modificri de temperatur se adaug praful i mizeria. Foarte puine procese industriale sunt curate iar praful ptrunde pretutindeni (chiar i la un factor de protecie IP55, deoarece acesta protejeaz numai cnd uile sunt nchise). Praful va ptrunde n conectori i, dac acetia nu sunt de cea mai bun calitate, vor putea apare defecte intermitente, care sunt foarte greu de detectat. n majoritatea aplicaiilor n care se utilizeaz calculatoare, o eroare de programare sau un defect al calculatorului pot fi costisitoare i deranjante. Cnd un calculator ce conduce o instalaie se defecteaz sau cnd programatorul nu nelege modul de funcionare al instalaiei, rezultatul poate consta n pagube i accidente. Cerinele noastre n privina calculatoarelor din controlul industrial sunt foarte ridicate i merit reamintite: 1. Acestea trebuie proiectate astfel nct s reziste n medii industriale, cu tot ceea ce implic aceasta pentru temperatur, murdrie i slaba calitate a alimentrii principale. 2. S fie capabile s proceseze semnale de I/E pe bit la tensiuni utilizate n industrie (24 V c.c. sau 220 V c.a.) i semnale de I/E analogice. Extensia numrului de I/E trebuie s fie simpl i rapid. 3. Limbajul de programare trebuie s fie uor de neles de ctre personalul de ntreinere (de exemplu, de ctre electricieni), care nu au antrenament pe calculator. Modificrile de program trebuie s se poat face uor pentru o instalaie n modificare. 4. Trebuie s existe posibilitatea monitorizrii funcionrii instalaiei n timpul funcionrii (on-line), pentru a uura detecia defectelor. Trebuie tiut c majoritatea defectelor apar la echipamentele externe (cum ar fi microntreruptoarele montate pe instalaie, senzorii i elementele de execuie) i trebuie s fie posibil observarea funcionrii acestora de la calculatorul de comand. 5. Sistemul trebuie s opereze suficient de rapid pentru controlul n timp real. n practic, "suficient de rapid" nseamn un timp de rspuns de aproximativ 0,1 secunde, dar acesta poate varia n funcie de aplicaie i de calculatorul utilizat. 6. Utilizatorul trebuie s fie protejat fa de jargonul calculatorului, adic fa de cuvintele pretenioase specifice, mprumutate, de obicei, din alte limbi, folosite de anumite categorii profesionale cu scopul de a se distinge de masa vorbitorilor . 7. Sigurana personalului, echipamentelor, instalaiei i a mediului nconjurtor trebuie s fie prima prioritate.

24

1.7. Automatele programabile


Automatele programabile constituie o clas aparte n familia echipamentelor utilizate pentru controlul industrial. Ele ncorporeaz ntr-o structur robust o UCP (sau mai multe) i dispozitivele de interfaare cu semnalele din proces i cu operatorul. UCP are astfel acces la toi senzorii i elementele de execuie ale procesului. Ele asociaz limbaje de programare adecvate modului de lucru al practicienilor din acest domeniu i un domeniu de aplicaii industriale extrem de vast. Se estimeaz c n producia manufacturier, peste 80 % din necesitile n materie de control pot fi acoperite de ctre AP! 1.7.1. Scurt istoric La sfritul anilor 60 productorul american de automobile General Motors a fost interesat de utilizarea calculatoarelor la nlocuirea schemelor convenionale cu relee utilizate n controlul uzinelor sale automate de producere a automobilelor. n 1969 a produs o specificaie pentru un calculator industrial similar celei expuse n paragraful anterior. Dou companii independente, Bedford Associates (devenit, ulterior, Modicon) i Allen Bradley, au rspuns la specificaia firmei General Motors. Fiecare a produs cte un calculator ce corespundea specificaiei, similar celui din figura 1.10.a, i care avea puine asemnri cu calculatoarele comerciale de astzi. El a fost denumit automat programabil i avea 128 de I/E, 1koctet memorie program i un set de instruciuni logice. Calculatorul nsui, numit procesor central, a fost proiectat pentru a opera n mediu industrial i a fost conectat cu exteriorul prin intermediul unor SB n care puteau fi montate modulele de I/E. n aceste prime sisteme existau patru tipuri diferite de module: de intrri discrete, de ieiri discrete, de intrri analogice i de ieiri analogice. Fiecare modul poate citi 16 intrri sau poate aciona 16 ieiri. Un SB cu 8 module poate fi astfel conectat la 128 de dispozitive. Este foarte important modul de alocare a modulelor la alegerea utilizatorului, astfel nct s se permit o ct mai mare flexibilitate. n figura 1.10.b utilizatorul a instalat un modul de intrri de c.c., un modul de ieiri de c.c., trei module de intrri de c.a. i dou module de ieiri de c.a., lsnd o poziie de rezerv pentru extensii ulterioare. Acest SB poate fi astfel conectat la 16 semnale de intrare n c.c., 16 semnale de ieire n c.c., 48 semnale de intrare n c.a. i 32 semnale de ieire n c.a. Bineneles, nu este obligatorie utilizarea tuturor acestora.

25

Figura 1.10. Prile componente ale unui sistem cu AP: a) unul din primele sisteme cu AP; b) un sertar de baz cu module Cea mai radical idee a fost realizarea unui limbaj de programare bazat pe schemele cu relee i contacte, cu intrrile (de la limitatoare, butoane, etc.) reprezentate prin contacte de releu, i cu ieirile (ctre bobine, contactoare, becuri, etc.) reprezentate prin bobine de relee. Figura 1.11 arat modul de comand al unui cilindru hidraulic acionat prin butoane. Cursa sa este determinat de limitatoare care se deschid la sfritul cursei i de bobine care pot fi comandate doar dac pompa hidraulic merge. Aceast funcionare este controlat prin programul din figura 1.11.b, care este identic cu circuitul cu relee necesar pentru a comanda cilindrul. Aceste programe arat ca treptele unei scri i au fost denumite diagrame logice scar (de la Relay Ladder Logic). Programul este introdus printr-un terminal de programare (sau consol de programare), ale cror taste au simbolurile (contacte normal deschise / normal nchise, bobine, temporizatoare, numrtoare, ramificaii,

26 etc.) cu care un electrician de ntreinere este familiarizat. Semnificaia tuturor tastelor trebuie s fie evident. Programul, afiat pe display, va ilumina contactele i releele activate, permind utilizarea terminalului de programare la depanare.

Figura 1.11. O aplicaie simpl cu AP: a) cilindru hidraulic comandat cu AP; b) diagrama logic scar pentru comanda cilindrului; aceasta este bazat pe simbolurile americane: simbolul -] [- arat c semnalul trebuie s fie prezent iar simbolul -]/[- arat c semnalul nu trebuie s fie prezent Memoria este protejat cu baterii, pentru a preveni deteriorarea sau pierderea programelor la cderea alimentrii. Programele pot fi pstrate pe suport magnetic, fapt care permite utilizarea unor programe diferite asupra unor produse diferite. Numele dat acestor echipamente a fost "controler programabil" sau "automat programabil" (de la Programmable Controller - PC). Numele de "controler logic programabil" sau PLC (de la Programmable Logic Controller) a fost de asemenea utilizat, dar este o marc nregistrat a firmei Allen Bradley. Din nefericire, n ultimii ani literele PC sunt utilizate pentru

27 a desemna calculatoarele personale, producnd confuzie n lumea automatelor programabile i a calculatoarelor personale, deoarece acestea din urm pot fi utilizate acum ca i terminale de programare. Pentru a elimina confuzia vom utiliza denumirile "automat programabil" pentru PLC i "calculator personal" pentru PC. Se observ c AP au fost de la bun nceput i rmn n continuare echipamente concepute de automatiti pentru automatiti. Perfecta lor adaptare la nevoile industriale este consecina cea mai important. Aceast adaptare acoper nu numai aspectul programrii lor, ci i aspectele materiale. AP sunt perfect adaptate mediilor industriale: I/E n conformitate cu standardele semnalelor industriale, protecie la fenomenele electromagnetice, rezisten la ocuri, la vibraii i la coroziune, dispozitive de siguran n cazul variaiilor sau ntreruperilor tensiunii de alimentare. Toate aceste consideraii explic ptrunderea n for a AP n industrie, ritmul anual de cretere a utilizrii lor n industrie fiind de 20-30 % (!), acompaniat de o dinamic inovatoare remarcabil. Odat aprute primele microprocesoare, ele au fost utilizate pentru simplificarea conceperii procesoarelor pentru AP. Constructorii de AP au putut astfel dezvolta familii omogene de AP, capabile s rezolve ntr-o manier eficient i rentabil o gam larg de probleme de control, de la cele mai simple (cteva I/E) la cele mai complicate (sute sau mii de I/E). Pe de alt parte, sub presiunea utilizatorilor, AP au ieit rapid din cmpul de aplicaii iniial (pur logic) prin integrarea operaiilor aritmetice, a regulatoarelor PID, a comenzii axelor, a tehnicilor de manipulare a irurilor de caractere, etc. Trebuie observat c, dei posibilitile AP sunt apropiate de cele ale calculatoarelor convenionale, modul lor de programare a rmas specific, apropiat modului de gndire al automatitilor. i AP au contribuit la deschiderea cii ctre controlul distribuit. Primele AP aveau UCP cablat i erau relativ scumpe. Dup apariia AP bazate pe microprocesoare i dup scderea, n consecin, a costului lor, a aprut tendina de a distribui sarcinile controlului ntre mai multe AP de capacitate mai mic, interconectate prin reele de comunicaie. Acest lucru a condus, la rndul su, la mbuntirea fiabilitii (defectarea unui AP are consecine limitate), a vitezei (prin paralelismul operaiilor) i la reducerea costului cablrii (cu condiia de a putea plasa fiecare AP n imediata vecintate a procesului comandat de el). Practic, toi productorii de AP i-au creat propriile lor reele de comunicaie. Pe baza acestei experiene, tot ei au devenit membrii cei mai

28 activi ai proiectului MAP [2], de creare a unui standard internaional de comunicaie. 1.7.2. Normalizarea La nivelul exploatrii AP, pn la nceputul anilor 90 a existat o situaie similar celei aprute n informatic n anii '80, cnd fiecare constructor propunea propriile sale limbaje de programare, propriul su mediu de programare, propriile sale reele de comunicaie, .a.m.d. A rezultat o "fidelizare" forat a utilizatorilor, deoarece trecerea de la o marc de AP la alta necesit un efort mare n ce privete instruirea ntregului personal implicat. Pentru a se depi aceast situaie, au fost ntreprinse eforturi n direcia normalizrii (standardizrii). Primele aciuni au fost ndreptate nspre sistemele de comunicaie pentru a obine compatibilitatea ntre AP diferite, sau cel puin interoperabilitatea lor. Pe lng proiectul MAP, menionat anterior, au existat propuneri pentru reele de teren, cum ar fi PROFIBUS, ASI, etc., care acum au devenit realitate (vezi capitolul 7). n 1993, Comisia Internaional de Electrotehnic (International Electrotechnical Comission IEC) a elaborat norme specifice automatelor programabile n standardul IEC 1131. Aceste norme vizau urmtoarele aspecte: - IEC 1131-1: informaii generale - IEC 1131-2: specificaia i testarea echipamentelor - IEC 1131-3: limbajele de programare - IEC 1131-4: recomandri pentru utilizatori - IEC 1131-5: specificaii referitoare la comunicaii Aceste standarde nu intenioneaz s impun un stil rigid. Diferiii productori de AP pot avea medii de programare diferite, dar elementele conceptuale trebuie s fie aceleai. 1.7.3. Tendine ale pieei n ultimii ani, piaa s-a decantat considerabil, rmnnd un numr relativ mic de firme constructoare de AP. Acum, utilizatorul alege un AP pe baza renumelui productorului i a calitii reprezentanei locale a acestuia (n special n ce privete partea de service). Pe lng constructorii de AP recunoscui, normalizarea menionat n paragraful anterior deschide piaa controlului industrial unor protagoniti noi. n primul rnd, normalizarea a consolidat poziia proiectanilor de

29 programe de AP, care dispun acum de o baz de lucru solid i recunoscut universal. nainte de standardizare, acetia trebuiau s conceap ei nii metodologii de programare i s conving potenialii clieni s le accepte, cu toate riscurile pentru acetia din urm n cazul dispariiei firmelor de proiectare. Dei scopul principal al acestor firme a rmas programarea AP, n paralel ele au activat i n domeniul programrii calculatoarelor convenionale, descoperind astfel avantajele simbiozei dintre AP i calculatoarele convenionale. Avantajul acestei soluii const n faptul PC-urile sunt prevzute cu periferice standard (discuri, monitoare, etc.) i cu executive n timp real i n multitasking. Aceasta permite o asociere armonioas a funciilor de automatizare clasice i a funciilor specifice programelor n limbaje de nivel nalt, fapt util n multe aplicaii practice.

30

CAPITOLUL 2 STRUCTURA AUTOMATELOR PROGRAMABILE

2.1.

Prezentare general a automatelor programabile

Aa cum s-a menionat n capitolul anterior, AP 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 AP const ntr-o UCP bazat pe microprocesor (sau microcontroler), o memorie, un numr de puncte de intrare (prin care se primesc semnalele ce parvin de la senzori i de la operator), un numr de puncte de ieire (prin care sunt transmise comenzile spre elementele de execuie i semnalizrile spre operator) i interfee seriale i/sau paralele pentru conectarea AP cu dispozitive de programare, cu calculatoare PC sau cu alte AP [39]. UCP (+ memoria), punctele de I/E i circuitele de interfa sunt construite sub forma unor module de dimensiuni tipizate care se instaleaz n sloturile unui SB (rack, base). Acesta are rolul de a ncorpora n sloturile sale modulele din configuraia sistemului ntr-o form compact i de a asigura comunicaia ntre acestea. Unele SB ncorporeaz i sursele de alimentare necesare funcionrii modulelor. Alte modele de SB nu conin aceste surse, dar permit instalarea unor module ce conin aceste surse. De asemenea, unele AP nu necesit modul de interfaare, ntruct modulul UC ncorporeaz i circuitele de interfa. Figura 2.1 ilustreaz o structur tipic de AP. n funcie de gradul de flexibilitate, AP pot fi de trei tipuri: compacte, compacte extensibile i modulare. AP compacte au o structur fix, ce nu poate fi modificat sau extins de ctre utilizator. Este cazul AP mici (cu numr mic de puncte de I/E, de ordinul zecilor). Un exemplu n

31 acest sens l reprezint AP din familia Micrologix, produse de ctre Allen Bradley. AP compacte extensibile (de exemplu, cele din seria FX2N a firmei Mitsubishi) permit adugarea la un AP compact (denumit base unit) a unui numr limitat de module de I/E, pentru a adapta structura acestuia la necesitile aplicaiei. AP de acest tip fac parte din clasa AP medii, cu un numr de puncte de I/E de ordinul sutelor.

Figura 2.1. Structur tipic de AP AP modulare ofer cea mai mare flexibilitate. Exist o mare varietate de module din fiecare tip (UCP, de I/E, etc) i de SB, din care proiectantul poate "croi" un sistem ct mai apropiat de cerinele aplicaiei considerate. Exemple de AP din aceast clas sunt SIMATIC S5 al firmei Siemens, PLC 5 al firmei Allen Bradley, etc. Din punct de vedere al numrului de puncte de I/E, AP modulare se nscriu n clasa AP medii i mari (cu mii de puncte de I/E). Fiecare productor de AP pune la dispoziia utilizatorului o gam larg de surse de alimentare, SB, module UCP i de interfaare i module de I/E. Acetia din urm vor alege acele componente ale sistemului care corespund necesitilor aplicaiei considerate. Operaiunea de selecie a modulelor i SB n funcie de cerinele aplicaiei se numete configurare. De aici reiese unul din marile avantaje ale AP, i anume flexibilitatea lor: ele pot fi configurate n funcie de specificul aplicaiei. n continuarea capitolului sunt discutate n detaliu aspectele prezentate n acest paragraf, cu exemplificri pentru cteva tipuri de AP considerate reprezentative [18, 56, 57, 58, 59, 63, 64, 67, 68, 69, 70, 71].

32

2.2. Module de I/E


Dup cum s-a artat n primul capitol, modulele de I/E au rolul de a asigura transferul semnalelor ntre AP i instalaie. Modulele de intrare colecteaz semnalele ce provin de la senzorii instalaiei i de la comenzile operatorului iar modulele de ieire transmit comenzile generate de ctre programul AP ctre elementele de execuie ale instalaiei i ctre confirmrile/semnalizrile operatorului. Semnalele din proces se conecteaz la modulele de I/E prin cabluri individuale sau multifilare, utiliznd uruburi sau conectori, n funcie de tipul terminalelor modulelor de I/E. n funciei de tipul semnalelor electrice transferate, modulele de I/E pot fi de dou feluri: discrete i analogice. n acest capitol vor fi discutate modulele de I/E discrete, cele analogice fcnd obiectul capitolului 6. 2.2.1. Module de intrri discrete Modulele de intrri discrete servesc la conectarea la AP a semnalelor ce provin de la senzori cu dou stri: butoane, limitatoare, microntreruptoare, etc. Semnalele sunt, de regul, tensiuni continue sau alternative, la diverse nivele (5 V, 24 V, 110 V, 220 V c.c. sau c.a.). n plus, aceste module realizeaz o conversie a semnalelor de intrare dinspre proces la nivelul semnalelor utilizate n interiorul AP i o izolare electric ntre AP i semnalele de intrare. AP opereaz n interior la +5 Vcc iar dispozitivele ce furnizeaz semnalele de intrare pot opera la tensiuni diferite. Combinarea acestor dou tensiuni poate cauza pagube mari i, probabil, ireparabile n partea electronic a AP. Pot interveni probleme, mai puin evidente, i datorit zgomotelor electrice provenite de la vrfurile de tensiune pe liniile de semnal sau de la curenii de pe liniile de Nul c.a. sau c.c. Diferenele de potenial ntre masa AP i a instalaiei pot, de asemenea, cauza probleme. Problema zgomotelor va fi discutat n detaliu n capitolul 9. Exist, deci, suficiente motive pentru separarea tensiunilor de alimentare ale instalaiei i ale AP printr-un fel de barier electric, ca n figura 2.2. Aceasta d certitudinea c AP nu va fi afectat de nici un eveniment aprut n instalaie. Chiar i un defect de cablu care va pune 380 V c.a. pe un modul de intrri de c.c. va afecta doar modulul de intrare. AP i celelalte module de I/E nu vor avea de suferit. Acest lucru este realizat prin intermediul unor izolatori optici (un LED i un fototranzistor, care formeaz un optocuplor sau optoizolator, prezentai n figura 2.3.a). Cnd curentul trece prin dioda D1, aceasta emite

33 lumin, cauznd comutarea tranzistorului TR1 din blocat n saturat. Deoarece nu exist conexiuni electrice ntre diod i tranzistor, este obinut o izolare electric foarte bun (tipic 1-4 kV).

Figura 2.2. Protecia AP fa de defectele externe. Sursa de alimentare a AP (L1/N1) este separat fa de alimentarea instalaiei (L2/N2).

Figura 2.3. Izolarea optic a intrrilor: a) un izolator optic; b) un modul de intrri n c.c.; c) un modul de intrri n c.a.

34 O intrare de c.c. poate fi obinut ca n figura 2.3.b. Cnd butonul este apsat, curentul va trece prin dioda D1, cauznd comutarea tranzistorului TR1, transmind, astfel, prin buffer semnalul "1" ctre logica intern a AP. Dioda D2 este un LED utilizat n detecia defectelor externe i pentru a arta cnd este prezent semnalul de intrare. Rezistorul R1 fixeaz tensiunea intrrii. Modulele de intrri n c.c. sunt disponibile, uzual, n trei game de tensiune: 5 V c.c. (TTL), 12-24 V, 24-50 V.

Figura 2.4. Un modul de intrare i conectarea intrrilor la modul O structur posibil de circuit de intrare n c.a. este prezentat n figura 2.3.c. Puntea redresoare este utilizat pentru conversia curentului alternativ n curent continuu complet redresat. Rezistorul R2 i condensatorul C1 formeaz un filtru (cu o constant de timp de aproximativ 50 ms), pentru a se putea furniza un semnal "curat" ctre AP. Ca i mai nainte, lampa LP1 lucreaz ca un indicator de semnal de intrare pentru detecia defectelor iar rezistorul R3 fixeaz gama de tensiune. Figura 2.4 prezint un modul de intrare care poate recepiona opt semnale de intrare. 2.2.2. Module de ieiri discrete Modulele de ieiri discrete servesc la transmiterea comenzilor generate de programul AP spre elementele de execuie bipoziionale (relee,

35 contactoare, becuri de semnalizare, etc.), la nivelele de tensiune necesare. De regul, aceste module necesit utilizarea unor surse externe pentru comanda elementelor de execuie.

Figura 2.5. Tipuri de module de ieire: a) modul cu ieiri cu surs comun; b) modul cu ieiri cu surse separate

36 Conexiunile de ieire necesit, de asemenea, o barier pentru a limita neajunsurile datorate defectelor inevitabile ale instalaiei i pentru a opri zgomotele electrice, care "deranjeaz" procesorul. Interferena poate fi o mare problem a ieirilor, deoarece modulele de ieire controleaz cureni mari i, deseori, sarcinile externe sunt inductive (de exemplu, bobine). Exist dou tipuri de baz de module de ieire. n figura 2.5.a opt ieiri sunt alimentate de la o surs comun, care este conectat la AP, dar este separat de sursa AP. Aceast structur permite cea mai simpl i mai ieftin instalare. Fiecare ieire are un fuzibil de protecie propriu pe modul i o siguran sau ntreruptor pe circuitul comun. Este important s se proiecteze sistemul astfel nct un defect pe terminalul 3, de exemplu, s ard fuzibilul FS3 dar s nu deterioreze alimentarea ntregului modul, dezactivnd toate ieirile. Acest aspect, denumit "selectivitate", este discutat n capitolul 9. Frecvent, un AP trebuie s acioneze ieiri care au alimentri proprii. Un exemplu tipic este comanda din diferite locuri a unui motor, unde fiecare contactor are o surs intern de 110 V separat, derivat de la barele de 380 V. Dispunerea din figura 2.5.a nu poate fi utilizat aici fr separarea contactelor releelor interne acionate de AP. Un modul de ieiri izolate, prezentat n figura 2.5.b, are ieiri i protecii individuale i se comport exact ca un comutator. Acesta poate fi conectat direct la orice circuit din exterior. Dezavantajul const n faptul c modulul este mai complicat (dou conexiuni/ieire) i trebuie luat n considerare protecia muncii. De exemplu, un modul cu 8 ieiri izolate poate primi pe terminalele sale tensiuni diferite din 8 direcii diferite. Dup cum reiese din figura 2.5, sunt disponibile ieiri pe releu (care dau i izolaia dorit), dar ele nu sunt foarte utilizate. Un releu este un dispozitiv electromagnetic cu pri n micare i, deci, cu o via limitat. Un dispozitiv pur electronic este mult mai fiabil. Mai mult, o sarcin inductiv (bobina unui releu) poate cauza interferene (scntei), care conduc la defectarea prematur a contactului. n figura 2.6 este prezentat un circuit de ieire pe tranzistor. Este utilizat din nou izolarea optic pentru a obine separarea ntre instalaie i AP. Dioda D1 se comport ca o diod de tiere a vrfurilor, care reduce amplitudinea vrfurilor ntlnite la sarcinile inductive. Figura 2.6.b arat acest efect. Starea ieirii poate fi urmrit pe LED1. Figura 2.6.a prezint o ieire care genereaz curent (source output). Dac sunt utilizate tranzistoare npn, rezult un canal de ieire care absoarbe curent (sink output), ca n figura 2.6.c.

37

Figura 2.6. Circuite de ieire n c.c.: a) curentul de ieire ntr-un circuit de c.c.; b) tensiunea n punctul X efectul diodei de tiere a vrfurilor; c) curentul de intrare prin circuit Informaia c o ieire genereaz curent sau absoarbe curent este necesar pentru a ti cum s se conecteze sarcina la sursa de c.c. extern: - n cazul generrii de curent (figura 2.6.a) una din bornele sarcinii se leag la borna (-) a sursei de c.c. externe; cealalt born a sarcinii se leag, evident, la modulul de ieire; - n cazul absorbiei de curent (figura 2.6.c) una din bornele sarcinii se conecteaz la borna (+) a sursei de c.c. externe. Un modul de ieiri n c.a. utilizeaz de obicei triace, un circuit tipic fiind prezentat n figura 2.7.a. Triacele au avantajul c se dezactiveaz la trecerea prin zero a curentului prin sarcin, aa cum reiese din figura 2.7.b, ceea ce elimin interferenele provocate la dezactivarea sarcinilor inductive.

38 Dac este posibil, toate sarcinile n c.a. ar trebui s fie acionate cu triace, i mai puin cu relee.

Figura 2.7. Circuit de ieiri n c.a.: a) starea ieirii n c.a. faptul c ieirea genereaz/consum curent este irelevant la ieirile n c.a.; b) efectul ieirii pe triac Un modul de ieire va avea o limit maxim a curentului pe care l poate suporta, determinat, mai degrab, de traseele de pe cablajul imprimat dect de dispozitivele de ieire. Exist fixat i un curent maxim pe fiecare ieire (tipic 2A) i un curent total pe modul (tipic 6A). Uzual, curentul total permis pe modul este mai mic dect suma curenilor individuali permii de ieiri. De aceea, n practic este bine s se reduc curentul total pe modul prin conectarea unor ieiri care nu pot fi activate simultan (de exemplu, nainte/napoi, rapid/ncet, etc.).

2.3.

Identificarea adreselor de I/E

n programele de AP, punctele de I/E sunt "vzute" sub forma unor adrese. n general, acestea nu pot fi alocate direct de ctre proiectant punctelor de I/E. n prima faz, fiecrui modul de I/E i revine un grup de

39 adrese determinat de poziia modulului n SB. De aceea, aceste adrese se numesc adrese hardware. Apoi, proiectantul va atribui fiecrui punct de I/E cte o adres unic din grupul de adrese ce revine modulului considerat. Din acest moment se creaz o relaie unic ntre fiecare semnal din proces, punctul de I/E prin care acesta este conectat la AP i adresa de I/E care este utilizat n program pentru fiecare semnal. Prin urmare, un semnal de I/E este identificat prin poziia sa fizic ntr-un anumit SB sau ir de cleme, prin poziia modulului n acest sertar i prin numrul de ordine al bornei modulului la care este conectat semnalul. Conectarea unui semnal la un alt punct de I/E atrage dup sine modificarea adresei semnalului respectiv. Deci, la majoritatea productorilor adresarea I/E este uzual bazat pe ideea sertar de baz/modul/bit.n continuare vor fi prezentate cteva exemple n acest sens. 2.3.1. Adresarea I/E la AP PLC-5 al firmei Allen Bradley Acest AP poate avea pn la 8 SB n versiunea 5/25. SB care conine procesorul este automat definit ca SB 0, adresele celorlalte SB (n gama 17) putnd fi alocate de ctre proiectani prin switch-uri (comutatoare) de setare [58, 71]. Aceste SB sunt conectate la procesor la distan printr-un cablu de comunicaie serial. Exist trei moduri diferite n care pot fi configurate SB Allen Bradley. Aici va fi discutat cea mai simpl (i, probabil, cea mai logic) metod. Fiecare SB conine 16 poziii pentru module, grupate n perechi, ntrun loca denumit slot. Deci, un SB conine 8 sloturi, numerotate 07. Un slot poate conine un modul de intrare pe 16 puncte i un modul de ieire pe 16 puncte sau dou module pe 8 puncte (nu neaprat de acelai tip). De exemplu, n figura 2.8 slotul 1 conine un modul de intrare pe 16 puncte i un modul de ieire pe 16 puncte iar slotul 2 conine dou module de ieire pe 8 puncte. Motivele pentru care modulele pe 8 puncte pot fi preferabile celor pe 16 puncte sunt discutate n capitolul 9. Adresarea intrrilor este: I: Sertar Slot/Bit unde Bit este de dou cifre. Allen Bradley utilizeaz adresarea biilor n octal, astfel c numerele disponibile sunt 0007 i 1017. Adresa I: 27/14 reprezint intrarea 14 din slotul 7 al SB 2.

40

Figura 2.8. Dispunerea modulelor de I/E la PLC-5 Allen Bradley Ieirile sunt adresate ntr-o manier similar: O: Sertar Slot/Bit astfel c O:35/06 este ieirea 6 din slotul 5 al SB 3. Se observ c dac se utilizeaz module pe 16 puncte, o intrare i o ieire pot avea aceeai adres Sertar Slot/Bit, fiind difereniate doar de "I:" sau de "O:". Cu module pe 8 puncte adresele de I/E nu vor mai putea fi aceleai. Figura 2.9 arat cum se adreseaz diverse semnale. 2.3.2. Adresarea I/E la AP SIMATIC S5 al firmei Siemens n sistemele AP ale firmei Siemens I/E pe bit sunt aranjate n grupuri de 8 bii, numite octei [3, 69]. Un semnal este identificat prin numrul su de bit (07) i numrul su de octet (0127). Intrrile sunt notate I<octet>.<bit> iar ieirile sunt notate prin Q<octet>.<bit>. I 9.4 este, deci, intrarea cu adresa de bit 4 din octetul 9 iar Q 63.6 este ieirea cu adresa de bit 6 din octetul 63. Ca i Allen Bradley, Siemens utilizeaz sloturi pentru instalarea modulelor ntr-unul sau mai multe SB. Modulele disponibile au 16 bii (2 octei) sau 32 bii (4 octei). Un sistem poate fi construit cu SB locale conectate prin cablu de interfaare paralel sau cu SB comandate la distan prin cablu serial. SB locale sunt mai rapide i nltur unele probleme datorate ciclului program, care apar la SB comandate la distan prin cablu serial, n cazul aplicaiilor de mare vitez, dar sunt totui locale. Ele nu pot fi mai departe de civa metri de procesor. Cea mai simpl form de adresare este cu adresare fix a sloturilor, prezentat n figura 2.10.a. 4 octei sunt atribuii secvenial fiecrui slot, 03

41 pentru primul slot, 47 pentru al doilea, .a.m.d. Intrarea I 12.4 este, deci, bitul 4 din primul octet al modulului din slotul 3 al primului SB. Dac sunt utilizate module de 16 bii (2 octei) cu adresare fix (4 octei), cei doi octei mai semnificativi din fiecare slot sunt pierdui.

Figura 2.9. Identificarea semnalelor instalaiei

Figura 2.10. Dispunerea modulelor la Siemens: a) adresare fix a sloturilor; b) adresarea variabil a sloturilor. Adresele i numrul octeilor (2 sau 4) pe modul sunt setate prin switch-uri. Adresarea secvenial nu este obligatorie, dar este recomandabil.

42 n toate sistemele utilizatorul are posibilitatea alegerii adreselor de octet. Aceasta este cunoscut ca adresare variabil a sloturilor (figura 2.10.b). Prima adres de octet i domeniul (2 octei pentru modulele pe 16 bii sau 4 octei pentru modulele pe 32 bii) pot fi setate independent pentru fiecare slot prin switch-urile din modulul adaptor al fiecrui SB. Dei poate fi setat orice combinaie din cele permise, este recomandat utilizarea unei ordonri logice, similar celei din figura 2.10.b. Siemens utilizeaz notaii diferite pentru ri diferite, prin terminale de programare multilimbaj. Un standard comun european este cel german, unde E (Eingang = intrare) este utilizat pentru intrri (de exemplu, E 4.7) iar A (Ausgang = ieire) este utilizat pentru ieiri (de exemplu, A 3.5). 2.3.3. Adresarea I/E la AP GEM-80 al firmei CEGELEC GEM-80, de asemenea, configureaz I/E n funcie de SB, sloturi i bii. SB ce nglobeaz procesorul poate conine 8 poziii pentru module iar I/E adiionale pot fi conectate n SB cu 12 poziii, local (lng procesor) printr-un cablu panglic (iar I/E vor fi de baz) sau la distan, printr-un cablu serial [64]. Cnd este necesar un numr mic de I/E la distan pot fi utilizate uniti compacte cu 8 intrri/8 ieiri. Figura 2.11 prezint structura unui sistem GEM-80.

Figura 2.11. Structura unui sistem GEM-80 Pe lng structura de I/E de baz este, de asemenea, disponibil o magistral I/E de verificare, care permite procesorului s verifice starea diverselor module cu ajutorul unei uniti inteligente GEM.

43

Figura 2.12. Adresarea I/E la GEM-80 cu module pe 8 bii I/E sunt adresate prin cuvinte de 16 bii, un cuvnt corespunznd la 1 sau 2 poziii de module, cu prefixul A pentru intrri i B pentru ieiri. Adresele de bit sunt alocate n zecimal de la 0 la 15. Deci, A 2.13 este bitul de intrare 13 din cuvntul 2 iar B 7.05 este bitul de ieire 5 din cuvntul 7 (vezi figura 2.12). Un cuvnt poate fi numai intrare sau numai ieire. Nu este permis duplicarea cuvintelor de adres. Modulele de I/E sunt disponibile pe 8 bii, 16 bii i 32 bii, astfel c un slot n care este doar un modul poate fi o jumtate de cuvnt, un cuvnt sau 2 cuvinte, n funcie de modulele utilizate. Adresele de slot individuale pot fi setate prin switch-uri rotative fixate pe panoul din spatele fiecrui SB. Utilizatorul are o libertate mai mare sau mai mic n alegerea adreselor, dar, de obicei, este mai bine s se utilizeze o logic secvenial. Figura 2.12 arat o dispunere tipic pentru un sistem mic. 2.3.4. Adresarea I/E la AP Master al firmei ABB Sistemul Master al firmei ABB (la origine ASEA) este un sistem mai complex dect oricare din cele discutate pn acum [56]. Organizarea sa aduce o apropiere ntre utilizator i calculator iar limbajul utilizat este mai apropiat de tehnicile utilizate de programatorii de calculatoare. Dac AP discutate pn acum ar putea fi reprezentate prin limbajul BASIC, atunci pentru AP Master al firmei ABB ar corespunde limbajele PASCAL sau C. Comparaia este mai exact dect pare. BASIC este uor i rapid de utilizat, dar poate degenera n programe neperformante, dac nu sunt luate precauii suplimentare. PASCAL i C sunt mai puternice, dar totul trebuie declarat iar limbajul impune utilizatorului organizarea i structurarea programului. Sistemul Master este prevzut cu module procesoare i SB, ca n figura 2.13.a. Fiecare modul de I/E are n partea din spate doi conectori, cel

44 de sus conectnd modulul la magistrala procesorului iar cel de jos conectnd modulul la un bloc separat de terminale (unul pe modul, montat pe partea din spate). Modulele de I/E nu sunt identificate prin poziia lor n SB, ci prin adresa setat pe modul printr-o muf mic cu terminale cositorite. Deci, adresele de I/E nu reflect poziia modulului iar un modul poate fi, teoretic, mutat (mpreun cu conectorul de jos) fr a se modifica adresarea sa. Memoria procesorului este structurat ca n figura 2.13.b. I/E sunt conectate la un procesor al bazei de date, dar, spre deosebire de AP anterioare, proiectantul poate stabili diverse viteze de lucru pentru diferite module. Proiectantul are, de asemenea, un rol major asupra organizrii programului de AP. Acesta este modularizat, aa cum vom vedea mai trziu, iar utilizatorul poate specifica diverse frecvene de rulare (execuie) pentru diferite module ale programului.

Figura 2.13. Sistem Master ABB: a) structura unui sistem Master ABB; b) structura programului; c) o parte a bazei de date (pentru modulul de intrri discrete)

45 Figura 2.13.c arat baza de date pentru un modul de intrare. Exist dou nivele de definire. Nivelul superior (1) d detalii asupra plcii nsi, cum ar fi tipul modulului i adresa (posibil i rata de scanare), iar nivelele inferioare (2) dau relaii despre fiecare canal al plcii, cum ar fi numele i dac semnalul trebuie inversat sau nu. Baza de date conine detalii despre toate I/E care pot fi adresate apoi n program fie prin identificatorul bazei de date (de exemplu, DI 3.1), fie prin numele su unic (de exemplu, Pomp hidraulic 2 pornit prin butonul PB). 2.3.5. Adresarea I/E la AP F2 al firmei Mitsubishi F2 al firmei Mitsubishi este un exemplu tipic de AP mic, cu conexiuni de I/E, surs de alimentare i procesor, toate nglobate ntr-o singur unitate [67]. Cea mai mic unitate, F2-40M, are 24 de intrri i 16 ieiri (este caracteristic proceselor unde proporia I/E este 3:2). Cele 24 de intrri sunt notate X400X427, n octal, iar cele 16 ieiri sunt notate Y430Y447. Numerele, aparent arbitrare, corespund direct locaiilor de memorie unde sunt pstrate imaginile intrrilor i ieirilor. Adrese similare sunt utilizate i n sistemele mai mari ale seriei. 2.3.6. Adresarea I/E la AP APC700 al firmei IPA S.A. Bucureti Aceast famile de AP este constituit din urmtoarele modele [59]: a. APC 700 b. APC 700 EXTENSIE c. APC 701 d. APC 701 EXTENSIE e. APC 702 f. APC 702 EXTENSIE APC 700 are 24 intrri discrete, 16 ieiri discrete, 1 intrare analogic i o ieire analogic. APC 700 EXTENSIE are 48 intrri discrete, 32 ieiri discrete, 2 intrri analogice i 2 ieiri analogice. Celelalte patru modele au un numr de I/E comparabil cu al primelor dou modele. Intrrile sunt adresate sub forma I <octet>:<bit> (de exemplu, I 2:3) iar ieirile sub forma Q <octet>:<bit> (de exemplu, Q 1:7).

2.4.

Adresarea memoriei interne de un bit

Pe lng I/E, un AP are nevoie s memoreze semnale interne pentru date cum ar fi "pompa funcioneaz", "sistem fr defect", "defect la partea

46 de ungere", etc. Ar fi foarte costisitor s se aloce ieiri adevrate pentru aceste semnale, astfel c toate AP ofer memorii interne de un bit. Acestea sunt cunoscute sub diverse nume, ca "relee auxiliare" (Mitsubishi), "fanioane" (Siemens), "spaiu general de lucru" (GEM-80) i "memorie de un bit" (Allen Bradley). Adresele utilizate n programe variaz, desigur, de la productor la productor. Mitsubishi utilizeaz notaia Mnnn pentru adres, cu nnn=100377 n octal. Ca la majoritatea AP mici, structura memoriei este fix i nu poate fi definit de utilizator. n altele, mai mari, care vor fi discutate mai trziu, utilizatorul poate defini orice numr necesar de locaii de memorie. Notaia la Siemens este F octet.bit, de exemplu F 27.06. GEM-80 are o varietate de spaii generale de lucru. Cel mai utilizat este numit tabela G i n program apare ca G cuvnt.bit (de exemplu, G 52.14). Tabela G este tears cnd AP trece din starea "oprit" ctre starea "execuie". Memoria din tabela R (de exemplu, R 12.03) memoreaz starea sa cnd procesorul este oprit sau cnd alimentarea este ntrerupt. Memoria de bit la PLC-5 este notat prin B 3/n (de exemplu, B 3/192), unde n desemneaz semnalul (bitul), B nseamn memoria de un bit iar 3 este obligatoriu i apare atunci cnd PLC-5 memoreaz date n fiiere. Astfel: - memoriile de un bit sunt constituite n fiierul 3 (B3) - temporizatoarele sunt constituite n fiierul 4 (T4) - numrtoarele sunt constituite n fiierul 5 (C5) aa cum se va vedea mai trziu. Limbajul de programare al AP Master al firmei ABB nu necesit neaprat memorii interne de un bit, aceast funcie fiind ndeplinit de elementele i conexiunile din interiorul bazei sale de date i de ctre limbajul de programare. La APC 700 al firmei IPA S.A. Bucureti variabila de memorie de un bit este denumit Marker. Notaia este M octet:bit, unde octet=0127 i bit=07.

2.5.

Execuia programelor

n esen, programele de aplicaie sunt executate de ctre toate AP ntr-o manier ciclic, adic execuiile aceluiai program se succed n timp. O execuie a programului de aplicaie se numete ciclu program. La primele modele de AP execuia programelor era liniar, ramificaiile de program nefiind posibile. Ulterior, programele de aplicaie au putut utiliza ramificaii

47 i repetiii. Modelele de AP moderne sunt prevzute, n plus, cu posibilitatea utilizrii subrutinelor i a transferului prin ntreruperi. Totui, indiferent de modelul de AP discutat, caracteristica fundamental a lor o reprezint execuia ciclic a programelor de aplicaie. 2.5.1. Ciclul program Un program de AP se comport ca o bucl executat permanent, ca n figura 2.14.a. Instruciunile sunt executate succesiv i, dup execuia ultimei instruciuni, operarea se reia cu execuia primei instruciuni. Deci, un AP nu comunic continuu cu procesul, ci intermitent. O execuie complet a programului din figura 2.14.a se numete ciclu program (program scan, scan cycle) iar timpul necesar execuiei sale se numete durata ciclului program. Aceasta depinde de dimensiunea programului i de viteza procesorului, o valoare tipic fiind 2-5 ms/kcuvnt. Uzual, durata unui ciclu program este 10-50 ms. Figura 2.14.a poate fi extins la figura 2.14.b. AP nu citete intrrile n ordinea specificat de program (cum s-ar putea nelege din figura 2.14.a). La nceputul fiecrui ciclu program AP citete starea tuturor intrrilor i o memoreaz n memoria sa. Cnd programul adreseaz o intrare, va fi citit valoarea memorat a acesteia la nceputul ciclului program, i nu valoarea curent a ei.

Figura 2.14. Ciclul program i organizarea memoriei: a) execuia programului; b) secvenierea programului; c) organizarea memoriei Pe de alt parte, ieirile nu sunt modificate n momentul n care sunt calculate. O zon de memorie a AP, corespunztoare ieirilor, este modificat de program i, apoi, toate ieirile sunt actualizate simultan la sfritul ciclului program curent. Prin urmare, operaiile majore ce

48 alctuiesc un ciclu program sunt (n ordine): citire intrri, execuie program, actualizare ieiri. Se poate considera c memoria AP const din patru zone, aa cum apare n figura 2.14.c. Intrrile sunt citite i memorate ntr-o zon imagine a intrrilor la nceputul ciclului program iar ieirile sunt calculate i memorate ntr-o zon imagine a ieirilor, de unde sunt actualizate (transferate spre punctele de ieire) la sfritul fiecrui ciclu program. Exist i o zon de memorie utilizator, rezervat semnalelor (variabilelor) interne, care sunt utilizate de program dar nu sunt conectate direct cu exteriorul (temporizatoarele, numrtoarele, memoriile de un bit, de un octet, semnalele de defect, etc.). Aceste trei zone de memorie sunt denumite "zona datelor" (la Allen Bradley) sau "baza de date" (la ABB). Aceast zon de date este mai mic dect cum ar fi de ateptat. Pentru un AP cu 1000 de I/E discrete, aceast zon ar consta din 26 locaii de memorie de 16 bii (un cuvnt). O valoare analogic va necesita un cuvnt. Temporizatoarele i numrtoarele necesit cte dou cuvinte (unul pentru valoarea curent i unul pentru valoarea prestabilit) iar 16 memorii interne de un bit necesit un cuvnt. Majoritatea memoriei este alocat, de fapt, celei de-a patra zone, zona programului. Evident, ciclul program limiteaz viteza semnalelor la care AP trebuie s rspund. n figura 2.15.a, un AP este utilizat pentru numrarea unei secvene de impulsuri rapide, cu frecvena mai mic dect cea de execuie a ciclului program. Se observ c AP numr corect.

Figura 2.15. Efectul ciclului program asupra impulsurilor rapide n figura 2.15.b frecvena impuilsurilor este mai mare dect frecvena de execuie a ciclului program i AP ncepe s piard impulsuri. n cazul extrem din figura 2.15.c, blocuri ntregi de impulsuri pot fi total

49 ignorate. De aceea, n general, orice semnal de intrare citit de AP trebuie s fie prezent un timp mai mare dect durata ciclului program. Impulsurile mai scurte pot fi citite corect numai dac se ntmpl ca ele s fie prezente la momentele potrivite, lucru care nu poate fi garantat ns. n cazul trenurilor de impulsuri, frecvena impulsului trebuie s fie mai mic dect 1/(2 x durata ciclului program). De exemplu, un AP cu o durat a ciclului program de 40 ms poate urmri (teoretic) un tren de impulsuri cu frecvena 1/(2 x 0,04 s)=12,5 Hz. n practic exist, ns, i ali factori de care trebuie s se in cont la stabilirea acestei frecvene (cum ar fi filtrele modulelor de intrare). Prin urmare, se recomand o mare atenie la estimarea acestor viteze. Mai puin evident, un ciclu program poate cauza un decalaj aleator ntre intrri i ieiri. n figura 2.16 este prezentat o intrare care trebuie s determine activarea imediat a unei ieiri. n cazul cel mai bun (figura 2.16.a), intrarea apare la nceputul ciclului program, ducnd la activarea ieirii dup un ciclu program. n figura 2.16.b intrarea a aprut imediat dup citirea intrrilor, fiind vzut de AP abia la nceputul celui de al doilea ciclu program. Prin urmare, ieirea va fi activat cu o ntrziere de dou cicluri program fa de momentul activrii intrrii. Astfel, timpul de rspuns poate varia ntre 1 i 2 durate de ciclu program.

Figura 2.16. Efectul ciclului program asupra timpului de rspuns: a) cazul cel mai favorabil; b) cazul cel mai defavorabil n majoritatea aplicaiilor acest decalaj de cteva ms nu este important. De exemplu, nu poate fi vzut n rspunsul unei instalaii la apsarea unui buton. Totui, n aplicaiile unde sunt necesare aciuni rapide,

50 acest decalaj poate fi critic. ntr-un exemplu tipic, un material ce trecea cu viteza de 15 m/s trebuia tiat de ctre o instalaie comandat de un AP pe baza semnalului de la o fotocelul. Cele 30 ms ale duratei ciclului program au condus la variaii ale lungimii de tiere de 0,03 s x 15 m/s = 0,45 m. Pentru a putea aborda cu succes asemenea aplicaii, productorii de AP ofer o gam larg de module speciale, cum ar fi, de pild, cele descrise n paragraful 6.9. nsi redactarea programului poate conduce la ntrzieri nedorite, dac logica programului lucreaz mpotriva execuiei programului. AP ncepe fiecare ciclu program cu prima instruciune i proceseaz toate instruciunile urmtoare ntr-o manier secvenial, ctre sfritul programului. Apoi actualizeaz ieirile, citete intrrile, execut instruciunile, .a.m.d. n figura 2.17.a o intrare determin o ieire, dar nu direct, ci prin intermediul a cinci pai (poate fi condiionat de un numrtor sau de prezena unor alte condiii necesare). Logica programului decurge, n acest caz, mpotriva ciclului program.

Figura 2.17. Decalaje datorate programului: a) logica este mpotriva execuiei programului (5 cicluri program ntre citirea intrrii i generarea ieirii); b) logica este conform cu execuia programului (1 ciclu program ntre citirea intrrii i generarea ieirii) n primul ciclu program intrarea determin evenimentul A. n urmtorul ciclu program evenimentul A determin evenimentul B. i tot aa pn cnd, dup cinci cicluri program de la activarea intrrii, evenimentul D determin activarea ieirii. Dac programul este realizat ca n figura 2.17.b, ntreaga secven are loc ntr-un singur ciclu program. Erorile din figura 2.17.a sunt evidente, dar aceste efecte pot apare deseori atunci cnd realizarea programului nu este gndit cu grij. Asemenea efecte pot fi utilizate pentru a produce deliberat impulsuri cu durata de un ciclu program, aspect abordat n paragraful 8.4. Efectele duratei ciclului program devin mai complexe n cazul existenei unor SB de I/E comandate la distan i conectate prin cablu serial. n general, starea acestor I/E este citit de ctre un scaner de I/E, ca

51 n figura 2.18, 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 rspuns poate fi de 30 ms, dar cel mai mare poate fi de 130 ms (cu o I/E pierznd la limit ciclul I/E iar ciclul I/E pierznd la limit ciclul program).

Figura 2.18. Efectul ciclurilor program i de I/E Pentru reducerea efectului duratei ciclului program, productorii de AP ofer mai multe faciliti. Tipic, exist posibilitatea utilizrii unor module de I/E inteligente i independente (discutate n paragrafele 6.8 i 6.9) i exist posibilitatea secionrii programelor n zone cu timpi de execuie diferii. De exemplu, becurile de la panoul de comand necesit un timp de rspuns de 0,5 s 1 s, permind ca alte zone ale programului s se execute mai rapid. Pentru a reduce timpul de rspuns la unele semnale de intrare considerate foarte importante, care necesit aciuni urgente (cum sunt semnalele de avarie, de exemplu) exist posibilitatea transferului prin ntreruperi (vezi paragraful 2.5.4). Aceasta permite citirea intrrii i activarea ieirii independent de ciclul program, cu avantajul dat de un timp de rspuns minim, dar cu implicaii asupra ciclului program. Un transfer prin ntreruperi va determina mrirea duratei ciclului program curent, cu implicaii asupra celorlalte semnale de I/E. De asemenea, o programare defectuoas a transferului prin ntreruperi poate conduce la intrarea programului n bucl infinit. Pentru evitarea buclelor infinite, AP au fost prevzute cu un ceas de gard (watchdog timer). Acesta este resetat la nceputul fiecrui ciclu program i msoar timpul n care se execut fiecare

52 ciclu program. Valoarea prestabilit a sa este fixat de ctre productor, ine cont de timpii de citire a intrrilor i de actualizare a ieirilor i corespunde celui mai lung program posibil (dat de dimensiunea memoriei program) care utilizeaz instruciunile cele mai mari consumatoare de timp. Manualele tehnice ce nsoesc AP conin, printre altele, i timpii necesari execuiei fiecrei instruciuni. Dac valoarea msurat a duratei ciclului program curent este mai mic dect valoarea prestabilit a ceasului de gard, acesta permite execuia unui nou ciclu program. n caz contrar, execuia programului este terminat i toate ieirile sunt dezactivate. 2.5.2. Ramificaii i repetiii Ramificaiile sunt structuri de program ce permit salturi (condiionate sau necondiionate) n program peste un grup de instruciuni. Pot fi distinse urmtoarele tipuri de salturi: absolute (nainte, napoi, la o adres dat) sau relative (peste un numr dat de instruciuni). Principiul execuiei acestor salturi este ilustrat n figurile 2.19.a-c. De exemplu, AP SIMATIC S5-115U al firmei Siemens recunoate urmtoarele instruciuni de salt: salt condiionat (JC, JZ, JN, JP, JM, JO), salt necondiionat (JU) i salt relativ (JUR).

Figura 2.19. Ramificaii i repetiii: a) salt absolut nainte; b) salt absolut napoi; c) salt relativ; d) bucl DO Repetiiile permit execuia n mod repetat a unui grup de instruciuni de un numr predeterminat de ori. Cea mai utilizat structur repetitiv este cea de tip DO (figura 2.19.d). Ea are forma general DO n ... END i determin execuia de n ori a instruciunilor cuprinse ntre instruciunile DO i END.

53 2.5.3. Subrutine Subrutinele sunt secvene de instruciuni (asemeni programelor) destinate rezolvrii unor probleme specifice, construite n aceast manier n scopul apelrii lor n mod recursiv. Execuia unei subrutine este determinat de execuia n programul principal a unei instruciuni de apel de subrutin (sau de salt la subrutin). O astfel de instruciune are ca efect abandonarea execuiei instruciunii urmtoare din programul principal n schimbul execuiei secvenei de instruciuni corespunztoare subrutinei apelate, amplasat ntro alt zon de memorie. Aceast secven se ncheie cu o instruciune de revenire n programul principal, care determin reluarea execuiei acestuia din punctul n care a fost ntrerupt de ctre instruciunea de apel de subrutin. n principiu, subrutinele sunt utilizate n dou scopuri: pentru economisirea spaiului de memorie i pentru structurarea programelor. n conformitate cu primul scop, dac o secven de instruciuni trebuie utilizat de mai multe ori ntr-un program, exist tot interesul transformrii acestei secvene ntr-o subrutin, care va apare o singur dat n memoria program (figura 2.20.a).

Figura 2.20. Utilizarea subrutinelor: a) principiul execuiei subrutinelor; b) structurarea programelor cu ajutorul subrutinelor A doua utilizare apare ndeosebi n cazul aplicaiilor complexe. Exist o tendin natural de a descompune aceste aplicaii n subansamble mai simple, crora le corespund programe mai scurte i mai uor de urmrit. Devine astfel posibil structurarea ierarhic a modulelor ce compun

54 programul de aplicaie. Va exista un modul de organizare, care va defini interaciunile dintre modulele aflate la nivelul ierarhic inferior. Fiecare din aceste din urm module va putea fi descompus la rndul su, .a.m.d. Fiecare modul va avea, prin urmare, o misiune bine definit. Printr-o organizare judicioas a descompunerii, se poate ajunge chiar la situaii n care programele corespunztoare diferitelor module s aib dimensiuni care s permit sesizarea dintr-o singur privire a ntregului coninut informaional al programelor corespunztoare modulelor. Modul n care subrutinele permit structurarea programelor este ilustrat n figura 2.20.b. 2.5.4. Transferul prin ntreruperi Din cele prezentate pn acum reiese c un AP poate lua n considerare evenimentele externe numai pe acea poriune a ciclului program n care efectueaz citirea intrrilor. Exist, ns, aplicaii n care este necesar din partea AP un timp de reacie mai rapid dect cel dat de ctre durata ciclului program. Este cazul aa-numitelor evenimente urgente. Aa cum s-a amintit n paragraful 2.5.1, una din cele mai eficiente soluii de tratare a lor o reprezint transferul prin ntreruperi. Sursele posibile de ntreruperi sunt conectate (individual sau prin intermediul unor pori SAU) la liniile de ntreruperi ale AP. Procesorul UC analizeaz automat starea acestor linii dup execuia fiecrei instruciuni. Dac detecteaz o cerere de ntrerupere, el suspend execuia programului n curs i salveaz (ntr-o zon de memorie prevzut special pentru asemenea situaii) toate informaiile necesare relurii ulterioare a execuiei programului ntrerupt n acelai context. Dup aceasta, procesorul UC trece la execuia unei subrutine aparte, corespunztoare evenimentului care a generat ntreruperea. Odat executat aceast subrutin, execuia programului principal este reluat din punctul n care a fost ntrerupt. De exemplu, AP SIMATIC S5-115U al firmei Siemens este prevzut cu patru linii de ntrerupere ( IRA , IRB , IRC , IRD ), crora le corespund prin construcie patru rutine de servire a ntreruperilor, OB2OB5, OB2 fiind cea mai prioritar (n cazul ntreruperilor multiple).

2.6.

Comanda la distan

Primele AP au fost organizate sub forma unui procesor i a unui numr de module de I/E montate n SB locale.

55 ns, ntr-o uzin mare, cu distribuire mare a instalaiilor, utiliznd aceast structur toate semnalele ar trebui aduse la un punct central n cabluri multifilare lungi i costisitoare. De asemenea, punerea n funciune i depanarea ar deveni mult mai dificile, deoarece semnalele pot fi vizualizate doar la o anumit distan de instalaia testat. De aceea, pentru toate sistemele mici i mari, productorii de AP au prevzut posibilitatea montrii SB cu module de I/E la distan de procesor i a conectrii acestor SB cu procesorul prin simple (i ieftine) cabluri ecranate cu dou fire sau prin cabluri cu fibre optice. Astfel, SB pot fi montate la deprtare de kilometri de procesor. Exist numeroase avantaje ale acestei tehnici. n mod evident, se reduce costul cablurilor prin plasarea SB la locul aplicaiei, fiind necesare doar cabluri multifilare scurte. Cabluri de lungime mare vor fi necesare doar pentru cablurile de comunicaie (care sunt ieftine) i pentru semnalele de avertizare/alarm (care nu trebuie transmise prin cablul de comunicaie, aspect discutat n capitolul 9). Mai puin evident, comanda la distan permite realizarea unor uniti compacte, conectate la un SB dispus n imediata apropiere a instalaiei, care pot fi testate naintea livrrii i instalrii. De exemplu, un sistem conine trei SB comandate la distan (slave), conectate la un AP de comand (master), montat ntr-o substaie la 500 m distan, printr-un cablu de comunicaie la distan. La aceasta se adaug cabluri pentru surse i conexiuni pentru semnalele de alarm. Aceasta permite ca instalaia, mpreun cu SB locale (slave), s fie testat nainte de a fi adus la locul unde va funciona. Idei similare pot fi aplicate la orice instalaie ale crei semnale de I/E trebuie conectate la un AP. Dac este utilizat comanda la distan, trebuie prevzut o ieire suplimentar la SB pentru a putea conecta terminale de programare. Se pot pierde toate avantajele dac proiectantul poate monitoriza operaiile doar dintr-un punct central de comand aflat la sute de metri de instalaie. Din fericire, productorii i-au dat seama despre aceste avantaje i majoritatea au prevzut posibilitatea conectrii terminalelor de programare la procesor local, prin cabluri ecranate cu dou fire. Aspectele referitoare la comunicaia serial vor fi discutate n capitolul 7.

56

2.7.

Avantajele controlului cu AP

Fiecare sistem de control parcurge patru etape de la concepie la punerea n funciune a instalaiei. Un sistem cu AP aduce avantaje la fiecare etap. 1. Prima etap este proiectarea. Instalaia este studiat i sunt stabilite strategiile de control. Utiliznd sisteme convenionale (de exemplu, cu relee), proiectarea trebuie finalizat naintea nceperii realizrii dulapului de comand. Cu un sistem cu AP, tot ceea ce este necesar este o idee aproximativ despre dimensiunile sistemului i despre numrul i tipul semnalelor de I/E. n aceast etap stabilirea numrului de module de I/E se poate face cu o rezerv, pentru eventualele omisiuni i extensii ulterioare. 2. Urmeaz realizarea. Utiliznd scheme convenionale, fiecare pas este deosebit de ceilali, cu costuri i ntrzieri inevitabile. Un sistem cu AP este alctuit din componente standard. n acest timp este nceput scrierea programului de AP (sau cel puin a unei specificaii detaliate de program). 3. Urmtorul pas este instalarea, cu costuri mari datorate conectrii senzorilor, a elementelor de execuie, a comenzilor i confirmrilor operatorului. Un sistem de AP distribuit (discutat n capitolul 7), utiliznd legturi seriale i ansambluri gata construite i testate, poate simplifica instalarea i poate aduce uriae beneficii. Majoritatea programelor de AP sunt scrise n aceast etap. 4. Ultima etap este punerea n funciune. Aici apar adevratele avantaje. Nici o instalaie nu merge bine din prima ncercare. Modificrile ce trebuie aduse sistemelor convenionale consum timp i sunt scumpe. Deoarece proiectantul sistemului cu AP a prevzut memorie de rezerv, canale de I/E suplimentare i cteva fire de legtur suplimentare n cabluri, majoritatea modificrilor pot fi fcute rapid i relativ ieftin. Un alt avantaj este c toate modificrile sunt nregistrate n programul AP i, deci, modificrile la punerea n funciune nu vor rmne nenregistrate, aa cum se ntmpl deseori n sistemele convenionale. Exist o a cincea etap, suplimentar, ntreinerea. Aceasta ncepe odat cu funcionarea instalaiei i are implicaii asupra produciei. Toate instalaiile au defecte, fiecare din ele cu un mod propriu de manifestare. Un sistem cu AP ofer o unealt foarte puternic pentru realizarea diagnozei. Acest aspect este discutat n capitolul 9.

57 O instalaie suport, de asemenea, o serie de modificri pe parcursul timpului, n vederea mririi produciei, a eliminrii cderilor sau datorit necesitilor de modificare. Un sistem cu AP poate fi modificat foarte uor iar programul AP va reflecta automat schimbrile fcute.

58

CAPITOLUL 3 LIMBAJE DE PROGRAMARE

n acest capitol va fi ilustrat modul de programare al AP. Desigur, fiecare productor are particularitile sale i ar fi mai degrab restrictiv s se trateze aspecte referitoare la un singur tip de AP. Din acest motiv se va face referire la modelele folosite n capitolul 2. ntre aceste modele exist diferene semnificative. Prin intermediul lor vor fi acoperite majoritatea particularitilor altor productori dect cei menionai.

3.1. Standardul IEC 1131-3


Standardul IEC 1131-3 definete cinci limbaje de programare a AP [32, 52]: 1. Diagrama Scar (Ladder Diagram), care este inspirat din schemele electrice convenionale; 2. Lista de Instruciuni (Instruction List), care este un limbaj de asamblare inspirat din limbajele utilizate n diversele platforme hardware existente; 3. Textul Structurat (Structured Text), care este un limbaj de programare asemntor limbajului Pascal; 4. Diagrame cu Blocuri Funcionale (Function Blocks Diagrams), care constituie un formalism de procesare a datelor prin reele de blocuri funcionale conectate prin semnale; 5. Diagrame de Stare Secveniale (Sequential Function Charts), care reprezint un formalism grafic inspirat din standardul francez Grafcet, bazat pe o variant sincron i etichetat de reele Petri. LI i TS fac parte din limbajele tradiionale de programare a calculatoarelor. DS i DBF imit structura predecesoarelor lor (implementri hardware ale regulatoarelor discrete i continue, paralele prin natura lor). DSS combin secvenialitatea cu paralelismul.

59 Standardul ncepe cu o descriere a configuraiei i resurselor hardware i software ale sistemului pe care vor fi executate programele. Cazul cel mai simplu este cel n care un singur program este executat pe un singur AP. Un astfel de program citete intrrile sale, calculeaz starea sa i actualizeaz ieirile sale. Detaliile referitoare la modul n care un anume AP realizeaz operaiile de I/E i managementul memoriei nu fac parte din standard. Se presupune c valorile citite de la senzori i valorile scrise la ieiri sunt transferate cu mediul extern prin intermediul unor locaii de memorie specifice i c programul de aplicaie nu trebuie s se ocupe cu aceste detalii. Standardul conine structuri care permit programelor diferite s fie ncrcate i executate pe acelai AP (separat sau n multi-tasking) i mai multor AP s funcioneze n paralel i s comunice prin "ci de acces", care sunt abstracii ale protocoalelor de comunicaie. Un program este construit dintr-un numr de elemente software diferite, scrise n oricare din cele cinci limbaje, existnd posibilitatea transferului de date ntre aceste elemente. Ele pot fi concepute n paralel i pot fi apelate numai dup ce au fost asignate unui task i taskul fie este lansat de ctre un eveniment, fie este configurat s fie executat periodic. Toate limbajele utilizeaz acelai set de caractere i sunt n conformitate cu standardele ISO i cu conveniile pentru codificarea timpului. Standardul definete tipurile de date elementare, declaraiile tipurilor de date compuse, iniializrile, etc. Variabilele pot fi locale sau globale. Suplimentar fa de variabilele abstracte "uzuale", sunt permise i variabile "direct reprezentate", care sunt adresate n locaiile de memorie destinate intrrilor, ieirilor sau variabilelor interne. DS este un limbaj grafic conceput pentru compatibilitate retroactiv cu formalismul diagramelor logice scar (relay ladder logic), el nsui un rezultat al compatibilitii retroactive cu schemele electrice convenionale (cu relee). n esen, n acest limbaj se scriu relaii dintre valorile strii curente i a variabilelor de intrare, pe de o parte, i valorile strilor urmtoare i ale ieirilor, pe de alt parte, plus cteva specificaii referitoare la ordinea evalurii condiiilor implicate. DBF reprezint un limbaj grafic ce permite compunerea unor funcii bloc simple n vederea formrii unor funcii bloc mai mari i mai complexe. Interaciunea dintre funciile bloc este reprezentat prin "conductori" care conecteaz variabilele de ieire de la un bloc cu variabilele de intrare ale altui bloc.

60 O compunere de mai multe funcii bloc poate fi ncapsulat ntr-un bloc mai mare, ncurajndu-se prin aceasta un stil de programare modular i ierarhizat. Totui, exist structuri care nu sunt uor de exprimat prin notaii grafice. Acestea include buclele FOR, operaiile cu matrici, ntreruperile i algoritmii compleci n general. O bucl FOR ncepe cu instruciunea for, se termin cu instruciunea end i are forma general: for x=expresie . . . end unde x este contorul de ciclu. Dac expresie este un scalar, atunci bucla se execut o singur dat, cu x=valoarea scalar. Dac expresie este un vector sau o matrice, atunci instruciunile dintre for i end sunt executate cte o dat pentru fiecare element al vectorului sau coloan a matricii expresie. La fiecare iteraie contorului de ciclu x i se atribuie valoarea corespunztoare urmtorului element din vectorul expresie, respectiv valorile coninute n urmtoarea coloan a matricii expresie. Instruciunea end are rolul de a arta c liniile de program dintre for i end sunt executate iterativ, pentru fiecare valoare a contorului de ciclu x. Dup ce acesta ia ultima valoare posibil, se iese din bucl i execuia programului se continu cu instruciunea de dup end. Prin urmare, o bucl FOR permite repetarea unei secvene de un numr de ori fix i predeterminat. Limbajele LI i TS sunt n esen limbaje imperative i secveniale clasice. Primul este un limbaj de asamblare de nivel inferior iar al doilea este un limbaj de nivel nalt asemntor PASCAL. Utiliznd ntreaga putere a acestor limbaje (de exemplu, buclele WHILE), este posibil s se scrie proceduri al cror timp de execuie este necunoscut, nelimitat i chiar infinit. O bucl WHILE evalueaz o expresie n mod repetat, pn cnd aceasta este adevrat, numrul de iteraii nefiind cunoscut iniial. Terminarea buclei are loc la ndeplinirea condiiei impuse prin expresia evaluat, care este testat la nceputul fiecrui ciclu. Forma general a unei bucle WHILE este: while expresie . .

61 . .

end unde, la fel ca i n cazul buclelor for instruciunea end are rolul de a arta c instruciunile cuprinse ntre while i end sunt executate iterativ. Bucla while este executat att timp ct expresie este adevrat. De obicei, expresie conine o condiie exprimat printr-un operator relaional. Aceast condiie este testat la nceputul fiecrui ciclu. Ct timp ea este adevrat, instruciunile dintre while i end sunt executate. Cnd condiia este fals, se trece la urmtoarea instruciune de dup end. Desigur, ncorporarea unor asemenea programe n aplicaiile de control nu este o practic sntoas. Pe de alt parte, este posibil s se impun restricii sintactice care pot garanta un timp de rspuns limitat. De exemplu, se pot admite numai programe care nu au salturi napoi sau bucle FOR cu delimitatori constani. Un alt dezavantaj al acestor limbaje este dat de caracterul lor secvenial. Acesta le face neadecvate pentru scrierea programelor de control care implic paralelisme. Prin urmare, concurena poate fi realizat fie prin multitasking, fie prin considerarea programelor scrise n aceste limbaje ca blocuri funcionale n programe scrise n alte limbaje care accept paralelismul (DBF sau DSS). DSS constituie un formalism care combin operaiile secveniale i paralele. Considerarea sa ca un al cincilea limbaj IEC sau ca o unealt de structurare de nivel superior este o chestiune de terminologie.

3.2. Diagrama scar


Primele AP, proiectate pentru industria automobilelor, au nlocuit schemele de de comand cu relee. Simbolurile utilizate n DS, -] [- pentru contact normal deschis (ND), -]/[- pentru contact normal nchis (NI) i ( )pentru o ieire a procesului, au constituit baza acestui limbaj. n continuare se va prezenta, prin intermediul a patru exemple simple, modul de programare cu DS, folosind adresarea I/E de la diferite AP prezentate n paragraful 2.3. Exemplul 1 Presupunem c la un bloc hidraulic dorim s comandm o lamp de semnalizare pentru "Funcionare normal" cnd:

62 1. Pompa merge (lucru artat de un contact auxiliar al contactorului pompei). 2. Exist ulei n rezervorul de ulei (lucru artat de un indicator de nivel). 3. Exist presiune de ulei (lucru artat de un presostat). Utiliznd relee convenionale, se poate realiza un circuit ca n figura 3.1.a. Pentru utilizarea unui AP, se conecteaz semnalele de intrare la un modul de intrri, iar lampa de semnalizare la un modul de ieiri, ca n figura 3.1.b. Pentru adresarea I/E s-a utilizat notaia Allen Bradley.

Figura 3.1. De la circuitul cu relee la DS: a) Circuit cu relee; b) conexiune la AP; c) DS Programul care realizeaz funcia este prezentat n figura 3.1.c. Linia din stnga poate fi considerata o surs (faz c.a. sau + c.c.) iar linia din dreapta un nul (-). Ieirea este reprezentat printr-o bobin -( )- i este activat cnd exist cale de curent de la stnga la dreapta. Ieirea O: 22/01 va fi 1 logic cnd semnalele I: 21/00, I: 21/01, I: 21/02 vor fi toate 1 logic. Programul este introdus de la un terminal (sau consol de programare [65]) prevzut cu taste care reprezint diversele simboluri utilizate. Terminalul poate fi utilizat de asemenea la monitorizarea strii semnalelor de I/E, cele activate fiind iluminate pe display.

63 Exemplu 2 n figura 3.2 un cilindru hidraulic poate fi avansat sau retras prin acionarea a dou butoane. Adresarea I/E utilizat n acest caz corespunde AP GEM-80.

Figura 3.2. DS n notaia AP GEM-80: a) conexiunile la AP; b) DS Este nedorit activarea simultan a celor dou bobine. Aceasta duce aproape ntotdeauna la arderea unor sigurane la sursele modulului de ieire, astfel c este necesar o form de protecie. Programul care realizeaz acest lucru este prezentat n figura 3.2.b. Aici au fost utilizate contacte normal nchise. Ieirea B2.9, bobina de avansare, va fi activat atunci cnd butonul de avansare este apsat, limitatorul fa nu este atins i bobina de retragere B2.10 nu este activat. Exist dou aspecte de remarcat n figura 3.2.b. Pot fi utilizate att contacte ale intrrilor ct i ale ieirilor, iar contactele pot fi utilizate de cte ori este nevoie n program. Figura 3.2.b arat, de asemenea, de unde vine numele de "DS". Un program de aceast form arat ca o scar, fiecare linie cu instruciuni formnd o treapt iar barele verticale ale alimentrii formnd suportul treptelor. Termenul "treapt" este invariabil aplicat contactelor care contribuie la definirea unei ieiri. Exemplu 3 S ne ntoarcem la lampa de semnalizare "Funcionare normal" din figura 3.1 i s adugm un buton de testare a lmpii (o tehnic util care ar trebui prevzut n toate situaiile similare; nu permite doar testarea lmpii, ci permite i verificarea bunei funcionri a AP). Pentru aceasta, conectm la AP butonul de testare a lmpii i modificm programul ca n figura 3.3.

64

Figura 3.3. Adugarea unei ramuri Aici am adugat o ramur iar ieirea se va activa dac cele trei semnale de la proces sunt 1 sau dac butonul de testare lamp este apsat. Modul n care este programat ramura nu ne intereseaz acum, acesta variind de la productor la productor. Unii utilizeaz taste de "nceput de ramur" i de "Sfrit de ramur". Alii utilizeaz o abordare de forma "Ramur de la/la". Toate sunt simplu de utilizat. Exemplu 4 O alt utilizare a ramurii este prezentat n figura 3.4. Probabil este cel mai frecvent exemplu de circuit, comanda unui motor cu un contactor, care utilizeaz adresarea I/E de la firma Siemens. Operaia este simpl. Apsarea butonului Start determin activarea ieirii Q 8.2 iar un contact al ieirii este plasat n ramur pentru a menine ieirea activat pn cnd se apas butonul Stop. Programul, ca i echivalentul su cu relee, ine cont care este ultimul buton apsat. Exist o observaie foarte important referitoare la conectarea butoanelor la AP i la programul acestuia. Pentru siguran, a fost utilizat un buton de Stop normal nchis, furniznd un semnal de intrare pe I 12.5 atunci cnd butonul Stop nu este apsat. Pierderea alimentrii unui buton, sau un defect de cablu, sau murdrie sub contacte la butonul Stop, vor cauza pierderea semnalului, fcnd ca programul s acioneze ca i cum butonul Stop a fost apsat, cauznd oprirea motoului. Dac se utilizeaz un buton de Stop normal deschis, AP va lucra corect, dar un defect la butonul Stop sau la circuitul su va determina funcionarea continu a motorului, pentru oprirea lui fiind posibile dou soluii: oprirea AP sau oprirea alimentrii motorului. Acest aspect este discutat n paragraful 9.2, dar observai efectul su n programul din figura 3.4. Aciunea intrrii I 12.5 a butonului de stop n interiorul programului este opus celei dintr-o schem clasic cu relee. Intrarea I 12.5 permite s mearg, mai degrab dect s opreasc.

65

Figura 3.4. Programul pentru comanda unui motor cu un contactor: a) conexiunile la AP; b) DS

3.3. Diagrama cu blocuri funcionale


Circuitele integrale logice din familiile TTL i CMOS sunt larg utilizate n sistemele digitale (incluznd i plcile din interiorul AP). Aceste circuite sunt reprezentate prin blocuri funcionale (sau simboluri logice). Aceste simboluri pot fi utilizate pentru a descrie operaiile unui program de AP. Iniial vom utiliza notaia Siemens [3]. Ieirea unei pori I, prezentat n figura 3.5.a este adevrat dac (i numai dac) toate intrrile sunt adevrate. Operarea porii din figura 3.5.a poate fi reprezentat prin tabelul din figura 3.5.b. n figura 3.5.c avem lampa de semnalizare "Funcionare normal" a pompei din figura 3.1 conectat la un AP al firmei Siemens programat utiliznd blocuri funcionale. Blocul ieirii, notat prin "=", este activat cnd intrarea sa este 1, aa c lampa Q 8.2 este activat cnd toate intrrile n poarta I sunt adevrate. Adeseori trebuie fcute teste pentru a vedea dac un semnal nu este adevrat. Acest lucu este reprezentat printr-un cerc mic "o". Ieirea Z a porii I din figura 3.5.d este adevrat dac (i numai dac) A i C sunt adevrate i B nu este adevrat. n figura 3.2 am ilustrat comanda unui cilindru hidraulic cu un program care a evitat acionarea simultan a bobinelor de avansare i retragere. Aceasta este redesenat pentru un AP al firmei Siemens n figura 3.5.e.

66

Figura 3.5. Programe de AP utiliznd blocuri funcionale (bazate pe notaia Siemens): a) o poart I; b) tabela de adevr pentru poarta I; c) lampa de "funcionare normal" din figura 3.1 cu DBF; d) o intrare inversat; e) cilindrul hidraulic din figura 3.2 cu DBF

Figura 3.6. Utilizri ale blocului funcional SAU: a) poarta SAU; b) poarta SAU cu intrare inversat; c) testul lmpii este prevzut suplimentar fa de figura 3.5.c

67

Figura 3.7. Porile compuse ale AP Master al firmei ABB: a) poarta I/SAU (echivalent cu figura 3.6.c); b) poarta SAU/I Ieirea Z a unei pori SAU, din figura 3.6.a, este adevrat dac oricare din intrri sunt adevrate. Simbolul "" din poart nseamn "ieirea este adevrat dac una sau mai multe intrri sunt adevrate". Poate fi testat i inversul semnalului, ca n cazul precedent, printr-un cerc mic. Ieirea Z a porii din figura 3.6.b. este adevrat dac A este adevrat sau B este fals sau C este adevrat. n figura 3.6.c am utilizat o poart SAU pentru a aduga un test de lamp la becul de semnalizare "Funcionare normal" a blocului hidraulic prezentat i n figura 3.3. Circuitul din figura 3.6.c este o combinaie I/SAU. AP Master al firmei ABB are, pe lng pori logice de baz, i blocuri de combinaii logice. n figura 3.7.a este un bloc Master corespunztor celui din figura 3.6.c (cu un program Master care se refer la nume n baza sa de date). Similar, pentru o combinaie SAU/I poate fi utilizat n programul Master blocul SAU/I din figura 3.7.b.

3.4. Lista de instruciuni


O list de instruciuni este un set de instruciuni care seamn cu instruciunile unui limbaj de asamblare. Limbajul LI este cea mai flexibil form de programare pentru utilizatorul experimentat, i este la fel de uor de urmrit ca i DS sau DBF. Figura 3.8 prezint o operaie simpl att n formatul DS, ct i n DBF pentru un AP al firmei Siemens (foarte asemntoare cu secvenele de program realizate pentru APC 700, corespunztor aceleiai operaii).

68 LI echivalent pentru un AP al firmei Siemens i pentru un AP APC 700 este prezentat n tabelul 3.1. Aici A nseamn AND, AN (ANDN) nseamn AND NOT, iar "=" transfer rezultatul ctre ieirea Q 4.1.

Figura 3.8. DS i DBF n notaia Siemens Tabel 3.1. LI echivalent programelor din figura 3.8
Numr instruciune 00 01 02 03 Operaie Siemens APC 700 :A AND :A AND :AN ANDN := = Operand (Adresa) Siemens APC 700 I 3.7 I 3:7 I 3.2 I 3:2 Q 4.2 Q 4:2 Q 4.1 Q 4:1 Comentariu Buton nainte Limitator fa OK Bobin retragere Bobin avansare

Figura 3.9 prezint o operaie SAU. LI echivalent este dat n tabelul 3.2. Aici ON nseamn OR NOT iar O nseamn OR.

Figura 3.9. Echivalentul porii SAU n notaia Siemens Tabel 3.2. LI echivalent programelor din figura 3.9
Numr instruciune 00 01 02 03 Operaie Siemens APC 700 :ON ORN :O :ON := OR ORN = Operand (Adresa) Siemens APC 700 I 2.7 I 2:7 F 3.6 Q 4.2 Q 4.4 M 3:6 Q 4:2 Q 4:4 Comentariu Pompa local auxiliar nu merge Fanion "merge pompa de la distan" Contactor pompa local Bec "Funcionare normal a pompei de la distan"

Cnd un set de instruciuni nu este clar, se pot utiliza paranteze pentru a defini precis operaia. Acest lucru este similar cu utilizarea parantezelor n programarea convenional, unde secvena 3+5/2 poate fi

69 scris (3+5)/2=4 sau 3+(5/2)=5,5. Dei ultima variant este cea implicit, parantezele fac ca operaia s fie clar pentru cititor. Figura 3.10 arat o operaie tipic n format DS i DBF. Programul LI echivalent este dat n tabelul 3.3. Programatorii vor recunoate aceast operaie ca fiind similar lucrului cu o stiv.

Figura 3.10. Program mai complex n limbajele DS i DBF Tabel 3.3. LI echivalent programelor din figura 3.10
Numr instruciune 00 01 02 03 04 05 06 07 08 09 10 Operaie Siemens APC 700 :A( AND( :O OR :O OR :) ) :A( :O :O :) :A :AN := AND( OR OR ) AND ANDN = I 2.0 I 2.1 I 4.1 Q 5.5 Q 5.6 I 2:0 I 2:1 I 4:1 Q 5:5 Q 5:6 Operand (Adresa) Siemens APC 700 F 3.3 F 3.4 M 3:3 M 3:4 Comentariu Primul set de paranteze nainte manual nainte automat Rezultatul primului set de paranteze SI logic al rezultatului cu al doilea set de paranteze Motor 1 selectat Motor 2 selectat Acum suntem n punctul X Limitator fa OK Contactor napoi Contactor nainte

AP al firmei Mitsubishi utilizeaz de asemenea limbajul LI, dei manualul de utilizare recomand construirea ntr-o prim faz a DS i apoi translaia ei n LI. Programul DS al AP prezentat n figura 3.11 cu notaia Mitsubishi corespunde programului LI din tabelul 3.4.

Figura 3.11. O DS a firmei Mitsubishi

70 Tabelul 3.4. LI echivalent programului din figura 3.11


Linie 0 1 2 3 4 5 6 7 Instruciune LD X401 AND X402 ANI X403 LD Y430 ANI M100 OR B AND M101 OUT Y430 Comentariu LD ncepe o treapt sau o ramur Xnnn sunt intrri ANI este I-NU LD ncepe o nou ramur Mnnn sunt memorii interne SAU ntre dou ramuri Sfritul treptei

3.5. Textul structurat


Limbajul TS prezint o sintax i o funcionalitate asemntoare limbajului PASCAL. Aa cum reiese din cele discutate n paragraful 1.6, utilizarea limbajului TS n operaiile logice i de I/E pe bit nu ofer claritatea i simplitatea necesare. Una din utilizrile acestui limbaj o reprezint declararea textual a blocurilor funcionale. Figura 3.12.b este un exemplu n acest sens.

Figura 3.12. Corespondena dintre DBF i TS pentru un bloc funcional DIVIDE: a) declararea grafic; b) declararea textual Cuvintele-cheie FUNCTION i END_FUNCTION delimiteaz declaraia, n care DIVIDE este numele funciei iar REAL este tipul rezultatului produs de ea. ntruct toate reprezentrile de date sunt manipulate prin intermediul unor variabile, lista parametrilor acestui bloc funcional este o list a variabilelor de intrare. Acestea sunt specificate n seciunea dintre cuvintele-cheie VAR_INPUT i END_VAR. n cazul acestui exemplu, variabilele de intrare sunt A i B, de tipul REAL, respectiv INT. Corpul blocului funcional este definit prin invocarea altor dou funcii, i anume "/" pentru mprire i INT_TO_REAL, care este o funcie predefinit de conversie a tipului unei variabile, din ntreg n real.

71 Reprezentarea grafic a blocului funcional corespunztor exemplului din figura 3.12.b este dat n figura 3.12.a. Partea superioar a figurii definete interfaa grafic a funciei, prin numele ei, numele i tipul variabilelor de intrare i tipul rezultatului. Partea inferioar definete n form grafic corpul funciei. Ca i n figura 3.12.b, toate declaraiile sunt delimitate prin cuvintele-cheie FUNCTION i END_FUNCTION. Dei exemplul din figura 3.12 este unul simplu, el las s se ntrevad capabilitile limbajului TS, care permite utilizatorului, printre altele, s-i defineasc propriile blocuri funcionale. Pe de alt parte, ns, exist blocuri funcionale pentru care se specific clar c nu exist un corespondent n TS [1, 26]. Avnd n vedere cele expuse n acest paragraf, se poate spune c limbajul TS este adecvat ndeosebi n aplicaiile ce implic procesarea unui volum mare de date numerice, irurilor de caractere, etc.

3.6. Diagrama de stare secvenial


n esen, o DSS const ntr-un set de pai interconectai prin legturi direcionate, pe baza unor tranziii. Fiecare pas poate avea asociat un numr (nul sau nenul) de aciuni i fiecare tranziie are asociat o condiie de tranziie. Controlul se desfoar prin parcurgerea pailor n lungul legturilor, atunci cnd condiiile asociate tranziiilor ntlnite sunt satisfcute. Poate exista un singur pas iniial, de la care ncepe controlul. Vom ilustra elementele tipice ale unei DSS pe baza unui exemplu. DSS din figura 3.13 este o parte a unui program mai mare, ce comand deplasarea unui crucior ntre dou limite. El este pus n micare prin dou semnale de comand, Motor nainte i Motor napoi, care n programul de AP sunt reprezentate prin dou variabile booleene cu acelai nume. Exist dou limitatoare de curs care sesizeaz atingerea de ctre crucior a capetelor de curs din stnga i din dreapta. Valorile citite de la aceste limitatoare sunt reprezentate prin variabilele booleene Limit dreapta i Limit stnga. Rolul DSS din figura 3.13 este de a controla efectuarea unui singur ciclu stnga-dreapta i dreapta-stnga. n figura 3.13 paii sunt Ateptare, Deplasare dreapta, Deplasare stnga i Gata. Pasul iniial este Ateptare, lucru indicat prin dreptunghiul realizat cu linie dubl. Tranziiile sunt reprezentate prin segmentele orizontale plasate pe legturile direcionate verticale. La pornire controlul este atribuit pasului Ateptare. Deoarece acesta nu are asociate aciuni, se comport similar cu o "stare de ateptare".

72 Controlul rmne la acest pas pn cnd este validat tranziia de la pasul Ateptare la pasul Deplasare dreapta. Condiia asociat acestei tranziii este ca valoarea variabilei ncepere ciclu (ce reprezint un semnal de la operator) s devin adevrat. La satisfacerea acestei condiii controlul prsete pasul Ateptare i avanseaz n pasul Deplasare dreapta. Acest pas are ataat o singur aciune, aceea de trecere n "1" logic a valorii variabilei booleene Motor nainte, lucru care se petrece atta timp ct controlul rmne la pasul Deplasare dreapta. Atunci cnd limitatorul dreapta detecteaz sosirea cruciorului, valoarea variabilei Limit dreapta devine adevrat. Acest lucru valideaz tranziia de la pasul Deplasare dreapta la pasul Deplasare stnga. Secvena de evenimente ce urmeaz poate fi uor dedus pe baza celor prezentate. Un ultim aspect ce trebuie menionat este acela c, la sfritul unui ciclu complet (reprezentat prin condiia Sfrit de ciclu), controlul revine la pasul Ateptare, pentru a putea rencepe un nou ciclu. Astfel de bucle sunt des ntlnite n programele n limbaj DSS.

Figura 3.13. DSS pentru comanda unui crucior Exemplul prezentat permite introducerea unor noi elemente ale DSS. Deci, fiecare pas are asociate 0, 1 sau mai multe aciuni. Un pas poate fi activ sau inactiv. n accepiunea standardului IEC 1131-3, un pas este activ atunci cnd "are controlul", aa cum s-a putut observa i n exemplul

73 anterior. Pasul iniial este singurul pas activ la nceputul execuiei i n fiecare DSS poate exista un singur pas iniial. Pentru fiecare pas exist o structur de variabile corespunztoare, care au acelai nume cu pasul. Aceast structur are dou elemente: fanionul pasului i timpul acumulat. Primul este un element boolean care indic dac pasul este activ sau inactiv. Al doilea este un element de tip TIME (timp), care memoreaz timpul scurs de la ultima activare a pasului. De exemplu, dac un pas este denumit S, atunci S.X este fanionul pasului S iar S.T este timpul acumulat al pasului S. La fiecare dezactivare a pasului S valoarea lui S.T este memorat. La o nou activare a pasului S aceast valoare este resetat. n programele n limbaj DSS, legturile direcionate conecteaz paii la tranziii i tranziiile la pai. ntre un pas i o tranziie, respectiv ntre o tranziie i un pas, poate exista o singur conexiune. Orice alte conexiuni (pas cu pas, tranziie cu tranziie, etc.) sunt interzise. De exemplu, n figura 3.14.a exist dou legturi: de la pasul S3 la tranziia t i de la tranziia t la pasul S4. S3 este pasul predecesor al lui t iar S4 este pasul succesor al lui t. Dei standardul IEC 1131-3 nu prevede utilizarea sgeilor pentru a specifica direcia unei legturi, sgeile pot fi folosite opional pentru mbuntirea claritii. Tranziia ce separ doi pai reprezint condiia pentru care are loc transferul controlului de la un predecesor la un succesor. De aceea, fiecare tranziie are asociat o condiie de tranziie, care este o expresie boolean. Atunci cnd o condiie este evaluat "1" logic, are loc execuia tranziiei corespunztoare ei. Standardul IEC 1131-3 furnizeaz i regulile pentru realizarea unor DSS corecte. Acestea sunt denumite reguli de evoluie i sunt reprezentate n figura 3.14. Cazul din figura 3.14.a este o secven liniar simpl. Controlul evolueaz de la S3 la S4 dac S3 este activ i dac condiia asociat tranziiei t este adevrat. Dup execuia tranziiei t, S3 este dezactivat i S4 devine pasul activ.

Figura 3.14. Reguli de evoluie ale DSS

74 Combinaia din figura 3.14.b este denumit divergen a seleciei secvenei. Controlul evolueaz de la S5 la S6 dac S5 este activ i se execut tranziia t1, sau de la S5 la S7, dac S5 este activ i se execut tranziia t2. Opional, ramurilor le pot fi alocate prioriti. Dac nu sunt specificate prioriti, atunci programatorul trebuie s se asigure c toate condiiile de tranziie sunt mutual exclusive. Cazul ilustrat n figura 3.14.c se numete convergen a seleciei secvenei i reprezint sfritul unei selecii de secven. n acest caz, controlul evolueaz de la S7 la S10 dac S7 este activ i se execut t1, sau de la S9 la S10 dac S9 este activ i se execut t2. n toate cazurile prezentate pn acum evoluia controlului trebuie s conduc la activarea unui singur pas. Structura din figura 3.14.d nltur aceast restricie, permind activarea simultan a mai multor pai. Aceasta se numete divergen a secvenelor simultane. Controlul trece de la S3 la S4, S5, ... dac S3 este activ i este executat tranziia t. Dup activarea lor simultan, secvenele ce ncep cu S4, S5, ... evolueaz independent. Structura din figura 3.14.e se numete convergen a secvenelor simultane i este utilizat pentru a ncheia secvenele simultane. Controlul trece de la S10, S11, ... la S12 dac toi paii S10, S11, ... sunt activi i este executat tranziia t. Figura 3.15 prezint dou aplicaii mai interesante ale acestor reguli. Cea din figura 3.15.a este un caz particular de selecie a secvenei, utilizat pentru a "sri" peste o anumit secven. Situaia din figura 3.15.b este un alt caz particular de selecie a secvenei, utilizat pentru readucerea controlului ntr-un pas precedent. Paii n sine nu realizeaz funcii de control. n esen, ei servesc la alocarea unor nume "strilor" n care se afl sistemul considerat. Funciile de control sunt realizate de ctre aciunile asociate pailor. n standardul IEC 1131-3 o aciune poate fi: o variabil boolean, de tipul BOOL un fragment de program scris n TS o structur exprimat prin DBF sau DS o DSS. n continuare, vom utiliza pentru aciunile din primul tip denumirea de aciuni booleene. Este posibil ca acestora s nu li se atribuie nume explicite atunci cnd sunt declarate, fie textual, fie grafic. Toate celelalte trei tipuri de aciuni trebuie denumite explicit. Numele unei aciuni booleene trebuie s fie acelai cu al variabilei pe care o conine. Paii care nu au asociate aciuni pot fi considerai puncte n care sistemul ateapt ndeplinirea unei condiii. n notaia grafic, o aciune

75 ACT este asociat pasului S prin intermediul unui bloc aciune, ca n figura 3.16. Asocierea unor aciuni multiple ACT1, ACT2, ... aceluiai pas S se realizeaz prin concatenarea blocurilor aciune, ca n figura 3.16.b.

Figura 3.15. Cazuri particulare de reguli de evoluie a DSS

Figura 3.16. Blocuri aciune Aciunile sunt entiti complet separate de pai. n consecin, o aceeai aciune poate fi asociat la dou sau mai muli pai diferii. Din acest motiv, aciunile nu pot fi "anonime". Dreptunghiul ce desemneaz un bloc aciune este mprit n dou, trei sau patru zone. Figura 3.16 arat cazul cel mai simplu, cu dou zone. Literele din regiunile din extrema stng se numesc calificatori. Fiecare asociere pas aciune poate avea un alt calificator. Standardul IEC 1131-3 definete setul de calificatori elementari. Acetia sunt prezentai n tabelul 3.5. Calificatorii N, R i S sunt fr parametri. Calificatorii L, D i P accept un singur parametru, de tipul TIME (timp). Standardul definete i urmtoarele combinaii de calificatori: SD: memorat i ntrziat n timp DS: ntrziat n timp i memorat SL: memorat i limitat n timp. Rolul unui calificator n asocierea aciunii A cu pasul S este de a determina cnd trebuie iniiat sau terminat execuia aciunii A n raport cu activarea sau dezactivarea pasului S. Pentru a clarifica rolul fiecrui calificator, vom considera c aciunea A nu este asociat nici unui alt pas nafar de S, dac nu se specific altfel.

76 Tabelul 3.5. Calificatorii elementari ai standardului IEC 1131-3 Calificator (Q) Semnificaie Calificatorul nul (null qualifier) N Fr memorare (Non-stored) R Reset S Set (Stored-memorat) L Limitat n timp (time Limited) D ntrziat n timp (time Delayed) P Impuls (Pulse) R cauzeaz terminarea execuiei aciunii A la activarea pasului S, indiferent de asocierile aciunii A cu ali pai. Aceasta explic de ce calificatorul R se mai numete i "reset prioritar". S specific faptul c execuia aciunii A trebuie s continue i dup dezactivarea pasului S. Execuia lui A este terminat ulterior, prin activarea unui alt pas n care A este asociat cu calificatorul R. L(t) determin ca la activarea pasului S s se iniieze execuia aciunii A, care va avea loc cel mult pe perioada de timp t. Dac pasul S rmne activ mai mult dect t, atunci execuia lui A se oprete nainte ca pasul S s devin inactiv. Dac controlul pleac din pasul S nainte de expirarea timpului t, se oprete i execuia aciunii A. D(t) specific faptul c execuia aciunii A va fi iniiat numai la expirarea unui timp t de la activarea pasului S. P arat c aciunea A va fi executat pe durata unui singur ciclu program de la activarea pasului S. Calificatorii combinai DS, SD i SL pot fi interpretai ntr-o manier similar. Simplificarea iniial c aciunea A este asociat numai pasului S a permis exprimarea efectului fiecrui calificator al execuiei aciunii A ntr-o manier strict separat. Lucrurile devin mult mai complicate atunci cnd A este asociat mai multor pai. n general, n asemenea situaii va exista o interaciune ntre efectele diferiilor calificatori. De exemplu, s considerm c aciunea A este asociat cu paii S1 i S2, cu calificatorii L(t), respectiv S. S mai presupunem c mai nti se activeaz S1 i c S2 se activeaz nainte de expirarea timpului t. Dei rolul lui L(t) este de a opri aciunea A dup timpul t, de fapt A va fi executat n continuare, datorit efectului calificatorului S din asocierea sa cu pasul S2. Pentru exemplificarea modului de utilizare a DSS s considerm implementarea unei secvene de semnalizare a unui defect [66]. Apariia

77 unui defect (materializat prin nchiderea limitatorului L2) provoac emiterea unui semnal sonor (printr-o hup) i aprinderea intermitent a unei lmpi de semnalizare (prin comanda lmpii n conjuncie cu un oscilator implementat, de regul, software). DSS corespunztoare este ilustrat n figura 3.17. Acionarea butonului b3 determin anularea semnalizrii acustice. Acionarea butonului b4 determin: - aprinderea continu a lmpii de semnalizare dac defectul persist (L2=1) - stingerea lmpii de semnalizare dac defectul a disprut (L2=0).

Figura 3.17. DSS pentru semnalizarea unui defect Acionarea butonului b5 determin anularea semnalizrii optice. Datorit utilizrii convergenei simultane, schema este reiniializat numai dac au fost acionate ambele butoane b3 i b5 (nu neaprat simultan). Din cele prezentate pe parcursul acestui paragraf reiese c DSS reprezint un limbaj puternic, foarte util pentru procesele care combin aspectele secveniale i paralele.

78

CAPITOLUL 4 FUNCII SPECIALE

4.1. Programarea memoriei interne de un bit


Practic, toate programele AP necesit circuite de memorie de un bit. Un exemplu tipic este contactorul ce comand un motor din figura 3.4, unde treapta de DS memoreaz care dintre butoanele Start sau Stop a fost apsat ultima dat. Acestea sunt cunoscute, din motive evidente, ca i circuite de memorie de un bit. Cea mai ntlnit form este prezentat n DS i n reprezentarea DBF din figura 4.1.a. Aici ieirea C este activat cnd intrarea A este activat, i rmne activat pn cnd intrarea B este dezactivat. Intrarea B este prevzut din motive de securitate; ea "permite activarea semnalului", aa cum s-a discutat n paragrafele 3.2 i 9.2. Operaia este reprezentat n diagrama temporal din figura 4.1.b. Aa cum se poate observa, intrarea B condiioneaz intrarea A, aceasta fiind funcionarea necesar a unui circuit de start/stop. Totui, n anumite circuite, intrarea de start trebuie s fie prioritar fa de intrarea de stop. Un exemplu tipic se poate ntlni la automobile: tergtoarele de parbriz pornesc atunci cnd se d comanda start, chiar dac se afl pe limitatorul de curs. DS i reprezentarea DBF echivalent sunt date n figura 4.1.c, unde A este buton de start, B este limitatorul poziiei de repaus iar C este motorul tergtorului. Diagrama temporal aferent este dat de figura 4.1.d. n logica cablat, memoria de un bit este realizat cu CBB, reprezentate n figura 4.2.a. Acestea au dou intrri, S (pentru set) i R (pentru reset). Circuitul memoreaz care intrare a fost ultima pe 1 logic. Dac ambele intrri sunt 1 simultan, intrarea set este prioritar. Acest circuit este

79 numit CBB SR. Dac circuitul este reprezentat cu intrarea R sus, ca n figura 4.2.b, intrarea R va fi prioritar fa de S, dac ambele sunt 1 simultan (numit CBB RS).

Figura 4.1. Circuite de memorare a biilor: a) cel mai obinuit circuit de memorare, unde intrarea de Stop B condiioneaz intrarea de start A; b) diagrama temporal corespunztoare; c) circuit de memorare unde intrarea de start A condiioneaz intrarea de stop B; d) diagrama temporal aferent circuitului din c)

Figura 4.2. Dou tipuri de CBB: a) CBB SR; set este prioritar fa de reset; b) CBB RS; reset este prioritar fa de set CBB sunt utilizate n programarea AP n limbaj DBF. n figura 4.3.a este reprezentat un contactor comandat de un AP al firmei Siemens. Se

80 observ c a fost utilizat varianta RS pentru a avea sigurana c logica de stop este prioritar fa de logica de start, iar semnalul de stop realizeaz o validare a funcionrii.

Figura 4.3. Memorie cu CBB: a) programul cu DBF; b) programul cu DS; c) CBB SRAO la AP Master de la firma ABB Claritatea este de prim importan n scrierea programelor de AP. Funcionarea circuitului din figura 4.1.c nu este clar la o prim verificare. Este de mare ajutor dac contactul folosit pentru reinere este plasat ntotdeauna n ultima poziie n ramur (pentru DS) sau n poart (pentru DBF). Simbolul CBB este deseori ntlnit n DS. Figura 4.3.a este un exemplu de utilizare a simbolului CBB cu DBF de la firma Siemens, echivalent figurii 4.3.b, unde sunt folosite notaii DS. n aceste circuite s-a preferat utilizarea unor butoane de STOP normal nchise. Observai cum apar acestea n program i facei o comparaie cu DS din figura 4.1. Aceast diferen se datoreaz funcionrii CBB RS (figura 4.2.b cu "1" se face reset) i modului de legare a butonului de STOP la AP (s-a legat la AP contactul NI). AP Master al firmei ABB utilizeaz simboluri aproape identice pentru CBB, cu excepia faptului c exist 5 tipuri de CBB. Primul este CBB SR uzual, reprezentat n figura 4.2. Celelalte variante se bazeaz pe faptul c CBB sunt precedate de combinaii I/SAU (figura 4.3.c este un exemplu). CBB adiionale sunt monobloc, constnd dintr-un CBB i pori I/SAU interne cu dimensiuni alese de utilizator. Figura 4.3.c, de exemplu, este CBB SRAO (AND/OR-I/SAU) al firmei ABB cu o poart I pe intrarea Set i o poart SAU pe intrarea Reset. Alte tipuri sunt SRAA (AND/AND-I/I), SROA (OR/AND-SAU/I) i SROO (OR/ORSAU/SAU).

81 n DS a firmei Allen Bradley, claritatea programelor poate fi mbuntit prin utilizarea unor ieiri, reprezentate n figura 4.4.a. Acestea lucreaz asupra aceluiai bit, setnd bitul cnd pe (L)- este prezent un 1 logic, i resetnd bitul cnd pe (U)- este prezent un 1 logic. Cnd pe ambele se primete 0 logic, bitul rmne la valoarea corespunztoare ultimei stri.

Figura 4.4. Alte forme de memorie: a) Set/Reset la Allen Bradley; b) Set/Reset la Mitsubishi AP F2 al firmei Mitsubishi utilizeaz o idee similar, dar ieirile sunt denumite S(et) i R(eset), ca n figura 4.4.b. Aceasta poate fi transpus ntr-o LI, ca n tabelul 4.1. Tabelul 4.1. Programul LI corespunztor programului din figura 4.4.b Linie Instruciune Comentariu 0 LD X400 1 OR X401 2 S Y432 Seteaz ieirea 3 LDI X402 4 ORI X403 5 R Y432 Reseteaz ieirea Att cu Set/Reset (latch/unlatch) al firmei Allen Bradley, ct i cu Set/Reset al firmei Mitsubishi, prioritatea aparine ultimei trepte din program (dintre cele dou), datorit ciclului program. Ambele exemple din figura 4.4 dau, n mod corect, prioritate semnalelor STOP. Cderea alimentrii sau oprirea AP cauzeaz probleme memoriilor de un bit. La repornirea AP, memoriile de un bit i vor pstra valoarea

82 avut nainte de oprire sau memoria va fi tears? Aceasta este ntotdeauna o problem de siguran i ine de particularitile aplicaiei. O pomp de ap situat la o distan de 5 km de consumator ar trebui, probabil, s reporneasc singur dac a fost pornit n momentul cderii alimentrii; o main automat de tiprit ar trebui (aproape sigur) s nu porneasc singur. n consecin, productorii de AP permit proiectanilor s stabileasc dac o memorie de un bit i va pstra starea dup o cdere a alimentrii (numit memorie cu reinere) sau se va terge la repornirea AP (numit memorie fr reinere). La PLC-5 al firmei Allen Bradley acest lucru este determinat de ctre program. Bobina din figura 4.1 este fr reinere, iar latch/unlatch din figura 4.4 este cu reinere. Alte AP difereniaz memoriile de un bit prin adresele alocate lor. La AP SIMATIC S5-115 adresele flag-urilor F0.0-F127.7 pot fi fcute cu reinere. La AP ale firmei Mitsubishi, releele auxiliare M200-277 sunt fr reinere iar M300-377 sunt cu reinere. La AP GEM-80, tabela general de memorare a biilor, G, este fr reinere, n timp ce tabela similar R este cu reinere, astfel c un circuit similar cu cel din figura 4.1, construit cu R 3.4 n loc de C (bobina i automeninerea), i va pstra starea dup o cdere a alimentrii. AP Master al firmei ABB utilizeaz un limbaj foarte structurat i impune un stil de programare meticulos. Natura sub-elementelor, cum ar fi memoriile, i comportamentul lor atunci cnd AP este la primul ciclu program, sunt definite la prima declarare a elementelor de program. Memoriile cu reinere pot fi periculoase, deoarece pot prezenta oscilaii la repornire dup o cdere a alimentrii. Proiectantul trebuie s aib grij ca programul s nu introduc din greeal componente cu reinere prin alocarea eronat a adreselor de bit. Utilizarea tabelei R la GEM-80 este n mod particular convenabil, dar se recomand o mare atenie, n general, la alegerea adreselor.

4.2. Temporizatoare
Timpul intervine aproape n toate sistemele de control. Un exemplu tipic este: "La oprirea liftului, ateapt 0,5 secunde pentru frnarea (ncetinirea) liftului, avanseaz pn la limitatorul de nivel i oprete motorul, ateapt o secund i aplic frna" sau "Pornete pompa hidraulic; dac contactul auxiliar nu devine 1 n 0.7 secunde, semnalizeaz "defect la contactor"; dac acesta este 1, ateapt 2 secunde i acioneaz robinetul de

83 admisie; dac presiunea hidraulic nu este OK n 3 secunde, semnalizeaz "defect hidraulic" i oprete pompa". Din acest motiv un sistem AP trebuie s includ temporizatoare ca parte a limbajului su de programare. Exist multe tipuri de temporizatoare, cteva dintre ele fiind ilustrate n figura 4.5.

Figura 4.5. Diferite temporizatoare: a) cu temporizare la anclanare; b) cu temporizare la declanare; c) un impuls de durata fix De departe, cel mai utilizat este cel cu temporizare la anclanare, din figura 4.5.a. Toate celelalte pot fi simulate cu acesta i cu un bit al acestuia. O tranziie 01 la intrare este ntrziat la ieire cu un timp prestabilit T, dar o tranziie 10 la intrare nu este ntrziat deloc. Un semnal de intrare mai scurt dect T este ignorat. AP GEM-80 are doar acest tip de temporizator, numit ntrzietor. Temporizatorul la declanare din figura 4.5.b trece ieirea din 0 n 1 instantaneu cu intrarea, dar ntrzie la ieire tranziia 10. O utilizare obinuit a temporizrii la declanare este pentru nlturarea vibraiilor de contact ale unui semnal de intrare. Un temporizator la declanare poate fi obinut dintr-un temporizator la anclanare prin utilizarea semnalului de intrare inversat i lund n considerare inversul semnalului de ieire al temporizatorului (dei programul pierde din claritate). Figura 4.5.c este un temporizator declanat pe front care genereaz un impuls de durat fix pentru fiecare tranziie 01 a intrrii temporizatorului. AP PLC-5 are un temporizator de un ciclu program care produce un impuls la un ciclu program (o singur dat). Impulsurile sunt utile la resetarea numrtoarelor sau la transferul unor informaii dintr-o locaie n alta. n paragraful 8.4 este prezentat un exemplu tipic de utilizare a impulsurilor cu durata de un ciclu program. Un temporizator de orice tip are anumite valori care trebuie fixate de ctre utilizator. Prima din aceste valori este unitatea de timp (n ce uniti se msoar timpul). Unitile uzuale sunt 10 ms, 100 ms, 1 s, 10 s i 100 s.

84 Unitile utilizate nu afecteaz precizia temporizatorului. n mod normal precizia este n legtur cu durata ciclului program. Urmtoarea valoare definit este durata temporizrii (adeseori numit preset). Aceasta este dat, de obicei, n valori ale bazei de timp. De exemplu, un temporizator cu un preset de 150 i o baz de timp de 10 ms va ntrzia 1,5 s. n AP mici preset-ul poate fi fixat de ctre programator; n AP mari durata temporizrii poate fi modificat din interiorul programului. De exemplu, un temporizator la declanare utilizat la frnarea unui lift poate avea diferite durate ale temporizrii, dup cum liftul se deplaseaz cu vitez mare sau cu vitez mic. Fiecare temporizator este prevzut cu cteva semnale, ce pot fi utilizate n program. Figura 4.6 arat semnalele generate de ctre un temporizator la anclanare al AP PLC-5 (numit TON) i de ctre un temporizator la declanare al AP PLC-5 (numit TOF): EN (pentru enable=validat) simbolizeaz intrarea temporizatorului TT (pentru durata temporizrii) este activat pe durata msurrii timpului DN (pentru done=sfritul temporizrii) arat c temporizarea s-a ncheiat.

Figura 4.6. Notaiile firmei Allen Bradley pentru temporizatoare: a) temporizator TON; b) temporizator TOF n AP mari, timpul scurs (numit deseori timp acumulat) poate fi accesat prin program pentru utilizarea lui n alt parte (se poate ntmpla ca un program s trebuiasc s nregistreze ct timp a durat o anumit operaie). Tehnica programrii temporizatoarelor este diferit de la productor la productor. Unii, cum ar fi la AP GEM-80, trateaz temporizatorul ca un bloc de ntrziere similar celui din figura 4.5.a, cu valoarea prestabilit memorat n blocul VALUE (valoare).

85

Figura 4.7. Diferite tipuri de temporizatoare folosite pentru aceeai aplicaie: a) notaia AP PLC-5; b) notaia AP GEM-80; c) notaia DBF a firmei Siemens

86 Firma Siemens utilizeaz o idee similar dar are diferite tipuri de temporizatoare. AP PLC-5 utilizeaz temporizatoarele la sfritul treptelor de program, semnalele temporizatoarelor fiind disponibile sub form de constante, pentru a putea fi utilizate n alt parte. Figura 4.7 este o aplicaie tipic programat pentru un AP PLC-5, un GEM-80 i un SIMATIC S5-115U (cu DBF). Programul comand contactorul unui motor care este pornit i oprit prin butoane. Contactorul are un contact auxiliar care se nchide atunci cnd contactorul anclanat i care spune efectiv cnd merge motorul. Dac contactorul se declaneaz datorit unei suprasarcini, sau datorit apsrii unui buton de Avarie-Stop, sau datorit cderii tensiunii de alimentare, semnalul de la contactul auxiliar va fi pierdut. Acest contact nu poate fi verificat mai devreme de 1,5 s dup anclanarea contactorului, pentru a lsa timp pentru comutarea contactului. Figura 4.7 verific contactul auxiliar i semnalizeaz un defect de acionare dac sunt probleme. Observai diferenele de utilizare a temporizatoarelor i de procesare a semnalului de defect.

Figura 4.8. Temporizatoare: a) temporizator fr reinere; b) temporizator cu reinere; c) simbolurile firmei Allen Bradley pentru temporizatorul din figura b; d) simbolul firmei Siemens pentru temporizatorul din figura b Valoarea acumulat a temporizatoarelor discutate pn acum devine 0 de fiecare dat cnd intrarea trece n 0, aa cum s-a reprezentat n figura 4.8.a. Acesta este cunoscut sub numele de temporizator fr reinere. Majoritatea temporizatoarelor AP sunt de acest fel. Uneori este util, ns, s

87 dispunem de temporizatoare care s pstreze valoarea curent, chiar dac semnalul de intrare este 0. Cnd intrarea este 1 din nou, temporizatorul continu de la valoarea la care s-a oprit, ca n figura 4.8.b. Acesta se numete temporizator cu reinere. Trebuie utilizat un semnal separat pentru aducerea temporizatorului la 0. Dac la un anumit tip de AP nu sunt disponibile temporizatoare cu reinere, aceast funcie poate fi realizat cu un numrtor, aspect discutat n paragraful urmtor. Un temporizator obinuit poate numra pn la 32767 de uniti ale bazei de timp (corespunztor la 16 bii). Cteva AP mai vechi, care lucreaz n BCD, pot numra doar pn la 999. Cu o baz de timp de 1 sec timpul maxim ce poate fi msurat este de max 546 min sau aproximativ 9h (dac temporizatorul numr pn la 32767). Dac trebuie msurai timpi mai mari (sau timpi cu o rezoluie mai mic de 1 s) pot fi utilizate mpreun temporizatoare i numrtoare, aspect descris n paragraful urmtor.

4.3. Numrtoare
n multe programe de AP numrtoarele sunt componente fundamentale. AP trebuie s poat numra obiectele ce trec pe o band sau s numere de cte ori se petrece un eveniment. La motoarele mari, de exemplu, trebuie nregistrat numrul de porniri. n consecin, toate AP includ anumite tipuri de numrtoare. Un numrtor poate fi reprezentat ca n figura 4.9, dei nu toate AP vor avea aceleai faciliti pe care le vom descrie. Vor fi dou numere asociate fiecrui numrtor. Primul este valoarea acumulat, care va fi incrementat la fiecare tranziie 01 a intrrii de numrare nainte sau va fi decrementat la fiecare tranziie 01 a intrrii de numrare napoi. Valoarea acumulat poate fi adus la 0 prin aplicarea unui 1 pe intrarea de Reset. Ca i la un temporizator, valoarea acumulat poate fi citit i utilizat n alte pri ale programului. Al doilea numr este valoarea prestabilit, care poate fi considerat ca valoarea destinaie a numrtorului. Dac valoarea acumulat atinge valoarea prestabilit, este generat un semnal de "Numrare terminat". Valoarea prestabilit poate fi modificat prin program. De exemplu, ntr-un proces n care se efectueaz transportul unor obiecte, poate fi necesar ca operatorul s modifice numrul obiectelor din proces prin tastatura unui calculator sau cu un terminal de programare. Similar, semnalul "valoarea zero" este deseori disponibil, comportndu-se ca n figura 4.9.b. Productorii de AP au realizat mai multe tipuri de numrtoare, la fel ca i n cazul temporizatoarelor. AP PLC-5 i ale firmei Mitsubishi

88 utilizeaz numrtoare cu numrare nainte (CTU), numrare napoi (CTD) i reset (RES) ca terminatori de treapt n program. La atingerea valorii prestabilite numrtoarele genereaz un semnal de "Numrare ncheiat" (de exemplu, C5:4.DN), care poate fi utilizat ca un contact.

Figura 4.9. Numrtor reversibil: a) schema intern a numrtorului; b) operaia de numrare AP SIMATIC-S5 al firmei Siemens, Master al firmei ABB i GEM80 trateaz un numrtor ca un bloc intermediar ntr-o DBF sau treapt n DS, de la care se pot utiliza semnalele de ieire. Figura 4.10 prezint o aplicaie de numrare simpl , realizat cu AP PLC-5, GEM-80 i SIMATIC-S5. Obiectele ce trec pe un conveior sunt detectate printr-o fotocelul i numrate. Cnd o ncrctur este complet,

89 conveiorul este oprit i becul de ncrcare complet "Gata" este aprins, pentru ca operatorul s deplaseze ncrctura. Dup ce operatorul face acest lucru, se poate apsa un buton de restart i astfel se pornete secvena din nou. Dei mai mici, programele de la AP GEM-80 i SIMATIC-S5 prezint amndou o mic problem care nu se observ la o prim vedere. Dac este adugat un buton de testare a becului, apsarea lui va cauza oprirea conveiorului. n ambele cazuri acest lucru poate fi prentmpinat prin utilizarea unei memorii interne care s arate c "numrarea este complet". Atunci se va utiliza un contact -/- al acesteia pentru conveior i un contact - - al acesteia pentru bec. Aceasta va aduga o treapt la fiecare program. Consideraii ca aceasta sunt cunoscute sub numele de "inginerie software", acest titlu fiind discutat n capitolul urmtor. Ca i temporizatoarele, numrtoarele permit numrarea pn la 32767. Cnd se doresc valori mai mari, numrtoarele pot fi puse n cascad, semnalul de "numrare ncheiat" de la primul fiind utilizat ca intrare de numrare pentru al doilea i ca reset pentru el nsui. Presupunem c numrtorul 1 pstreaz valorile 0-999 iar numrtorul 2 pstreaz miile. Dac numrtorul 2 conine valoarea 23516 iar numrtorul 1 conine valoarea 457, atunci valoarea final este 23516457. Figura 4.11 este o variant a ideii de legare n cascad a numrtoarelor pentru a obine o temporizare (contorizare) foarte mare. Programul este scris pentru un PLC-5, dar aceeai idee poate fi utilizat la orice AP. Prima treapt genereaz un impuls ce permite nceperea funcionrii, cu durata de un ciclu program, cu distana ntre impulsuri fixat printr-un temporizator. Dac temporizatorul a fost pornit i nu a ajuns la valoarea prestabilit, semnalul DN din treapta a doua nu este prezent. Cnd temporizatorul atinge valoarea prestabilit, este generat semnalul DN, care reseteaz i repornete temporizatorul din treapta nti iar n treapta a doua se formeaz un impuls cu durata de un ciclu program. Impulsurile rezultate sunt numrate de numrtoare legate n cascad pentru a furniza secundele/minutele/orele/zilele. Cnd un numrtor atinge valoarea prestabilit, genereaz un impuls pentru incrementarea numrtorului urmtor i pentru resetarea sa. Aceast tehnic este des utilizat la nregistrarea orelor de mers ale pompelor, ventilatoarelor i altor dispozitive similare, pentru programarea mentenanei. n acest caz, evenimentul din treapta a doua este un contact auxiliar de la un contactor ce comand un motor.

90

Figura 4.10. Aplicaii ale numrtoarelor la: a) AP PLC-5; b) AP GEM-80: c) AP SIMATIC-S5

91

Figura 4.11. Numrtoare n cascad Temporizatoarele pentru durate mari, construite cu numrtoare, sunt n mod normal cu reinere (i pstreaz valoarea atunci cnd evenimentul controlat nu este 1). Ele pot fi fcute fr reinere prin resetarea numrtoarelor atunci cnd evenimentul de controlat este 0, dar acestea sunt rar utilizate.

4.4. Aplicaii numerice


4.4.1. Reprezentarea numerelor Pn acum s-a discutat despre operaii pe bit. Numerele sunt, de asemenea, parte a schemelor de comand. Uneori, un AP trebuie s calculeze ritmul produciei n uniti pe or, pe zile, sau s furnizeze cantitatea de lichid existent ntr-un rezervor. Asemenea operaii necesit existena posibilitii procesrii datelor numerice.

92 Majoritatea AP lucreaz cu cuvinte pe 16 bii permind reprezentarea numerelor n gama 065535 sau, n complement fa de 2, n gama -32768 +32767. n ultimul caz bitul cel mai semnificativ reprezint semnul, fiind 1 pentru numerele negative i 0 pentru cele pozitive. Reprezentarea n complement fa de 2 este cea mai utilizat n AP, dar nu singura. Numerele ca acestea se numesc ntregi. Cnd este necesar procesarea unor ntregi nafara domeniului menionat, pot fi utilizate dou cuvinte de 16 bii care permit o gam de 2147483648 +2147483647. Acest tip de ntreg este disponibil la AP Master al firmei ABB (unde este denumit "ntreg lung") i la modelele SIMATIC-S5 135U i 155U ale firmei Siemens (unde este utilizat termenul "cuvnt dublu"). Unde sunt necesare numere cu zecimale (de exemplu, pentru o temperatur de 45,6 C) poate fi utilizat o form de reprezentare similar celei utilizate ntr-un calculator. Acestea sunt numere n virgul mobil, numite i numere reale. n general, acestea constau n dou cuvinte de 16 bii care conin mantisa (partea numeric) i exponentul. De exemplu, n baza 10 numrul 74057 va avea mantisa 7,4057 i exponentul 4, care reprezint 104. AP lucreaz n binar i reprezint mantisa i exponentul n complement fa de 2. Exist, inevitabil, diferene de prezentare ntre productori, dar exist i un standard care le reunete, i anume IEEE format 32 bii simpl precizie, prezentat n figura 4.12.c.

Figura 4.12. Reprezentri numerice: a) ntreg pe 16 bii standard; b) ntreg lung pe 32 bii; c) real IEEE 32 bii

93 Aceasta d o gam de (1,175E-38 3,402E38). Anumii productori au micorat exponentul pentru o mai mare precizie n mantis. La AP Master al firmei ABB, de exemplu, gama este (5,4E-20 9,2E18), ceea ce permite precizie sporit. Numerele reale sunt foarte utile dar limitrile lor trebuie clar nelese. n general, exist dou probleme. Prima apare atunci cnd sunt utilizate mpreun numere mari i numere mici. S presupunem c avem un sistem ce opereaz n baza 10 cu patru cifre semnificative, i c dorim s adunm 857800 (scris ca 8,578E5) i 96 (scris ca 9,600 E1). Deoarece numrul mai mic este n afara gamei (0,00096E5), acesta va fi ignorat, dnd rezultatul 857800+96=857800. A doua problem apare atunci cnd testele (comparaiile) sunt fcute cu numere reale. Conversia numerelor zecimale n numere binare poate fi fcut doar cu rezoluia permis de formatul n virgul mobil (1,175E-38 pentru IEEE simpl precizie). Majoritatea calculatoarelor pstreaza numerele n virgul mobil iar efectul conversiei din zecimal n virgul mobil poate fi demonstrat cu un program BASIC simplu : 100 A=3 110 B=6.4 120 C=9.4 130 IF (A+B)=C THEN PRINT ("3+6.4=9.4"): GOTO 150 140 PRINT ("3+6.4 nu face=9.4, FACE = "): PRINT C 150 PRINT ("AI GRIJ CU NUMERELE REALE!") Acest program simplu nu face ceea ce v asteptai s fac (adic nu va executa linia 130 i salt la 150, ci va executa linia 140, urmat de linia 150)! Dac numerele reale trebuie utilizate pentru comparaii, un simplu "=" este foarte riscant. Operatorii sau sunt siguri, dar n general este mai bine ca pentru a realiza testele s se utilizeze, pe ct posibil, numere ntregi. Ultima reprezentare, n BCD, este utilizat pentru conectarea cu exteriorul a unor echipamente cum ar fi afiaje digitale sau comutatoare decadice. Aceste echipamente utilizeaz formatul BCD, cu 4 bii/decad. Aceast reprezentare produce o risip de bii, deoarece 6 numere (de la 10 la 15) nu se reprezint, ci doar 09. Este, totui,o form convenabil de conectare cu exteriorul. Majoritatea AP au, n consecin, instruciuni care convertesc formatul BCD n format binar intern i invers. AP PLC-5, de exemplu, are instruciunile FRD (pentru BCDbinar) i TOD (binarBCD). Figura 4.13 arat schematic o operaie tipic. Tipurile numerelor disponibile n fiecare AP variaz considerabil n funcie de model (i de pre). AP F2 al firmei Mitsubishi, de exemplu,

94 permite doar transferuri, comparri i ieiri ale datelor numerice de la numrtoare sau temporizatoare, aceasta fcnd din el n esen un AP cu prelucrare de bit.

Figura 4.13. Aplicaii ale BCD La firma Siemens, modelul SIMATIC-S5 115U utilizeaz numere ntregi pe 16 bii, dar urmtorul model n gam, 135U, poate procesa numere ntregi de 16 i 32 bii i numere n virgul mobil. Posibiliti asemntoare pot fi ntlnite i la firmele Allen Bradley i ABB. 4.4.2. Transferul datelor Uneori este necesar ca numerele s fie transferate dintr-o locaie n alta, valoarea prescris a unui temporizator s fie modificat n funcie de condiiile procesului, valoarea unui numrtor s fie trimis la un modul de ieire pentru a fi indicat pe un afiaj digital, sau rezultatul unor calcule s fie utilizat n alt parte a programului. AP PLC-5 al firmei Allen Bradley utilizeaz o treapt de DS pentru fiecare operaie de transfer i este, probabil, cel mai simplu de explicat pentru nceput. Acest mod de lucru este valabil i pentru toate operaiile aritmetice pe care le vom considera, dar poate conduce la utilizarea mai multor trepte de program pentru o operaie dat, fa de alte AP. Figura 4.14.a prezint forma treptei. Aceasta ncepe cu cteva condiii binare; dac toate acestea sunt 1, ieirea MOV (pentru transfer) este executat, transfernd data de la surs la destinaie. Sursa i destinaia pot fi oricare din locaiile unde pot exista date numerice, de exemplu:

95 Valoarea prestabilit pentru un numrtor sau temporizator; de exemplu, C5:17.PRE sau T4:52.PRE Valoarea acumulat a unui numrtor sau temporizator; de exemplu, C5:22.ACC sau T4:6.ACC Cuvnt de dat de I/E; de exemplu: I :23 (modulul 3 n SB 2, toi cei 16 bii) O :47 (modulul 7 n SB 4, toi cei 16 bii) Memorie intern de ntregi; de exemplu, N 7:24 Memorie intern n virgul mobil; de exemplu, F 8:32 Observai c toate aceste date sunt interpretate ca fiind numere binare; dac sunt necesare date n cod BCD, se pot utiliza instruciunile FRD i TOD (vezi figura 4.13).

Figura 4.14. Transferul datelor la: a) AP PLC-5; b) AP SIMATIC-S5; c) AP GEM-80 Dac datele sunt transferate ntre forme de numere ntregi i ntre forme de numere n virgul mobil, conversia este fcut automat. Trebuie avut ns grij la transferarea numerelor din virgul mobil n ntregi deoarece pot apare erori dac numrul n virgul mobil este n afara domeniilor ntregilor. O ultim remarc: o constant poate fi utilizat doar ca surs. Deci, exemplul din figura 4.14.a transfer numrul din locaia N7:34 la valoarea prestabilit a temporizatorului T4:6 atunci cnd condiiile din treapt sunt ndeplinite. Firmele Siemens i CEGELEC utilizeaz o abordare uor diferit, care conduce la programe mai compacte i cu mici mbuntiri mpotriva surselor de erori, utiliznd, ns, o cale de lucru mai puin direct. Amndou trateaz un transfer de date cu dou instruciuni separate,

96 utiliznd un acumulator separat (o locaie de memorie de 1 cuvnt). Firma Siemens utilizeaz instruciunile Load (L) pentru a transfera data de la surs n acumulator, i Transfer (T) pentru a transfera date din acumulator la destinaie, ca n figura 4.14.b. Data poate proveni (sau merge) din (n) orice zon de memorie, cteva din ele fiind: IW - un cuvnt de intrare de 16 bii QW - un cuvnt de ieire de 16 bii T - un cuvnt de temporizator C - un cuvnt de numrtor DW - memorie de cuvinte pe 16 bii Deci, figura 4.14.b poate fi programat n felul urmtor: : L T113 (cuvnt de temporizator n acumulator) : T DW45 (coninutul acumulatorului n memoria de cuvinte 45) Utilizarea acumulatorului nu este evident la AP GEM-80 al firmei CEGELEC. Instruciunea -<AND>- transfer numrul binar din locaia specificat n treapta DS iar instruciunea-<OUT>- transfer valoarea din treapt la adresa specificat. n figura 4.14.c valoarea binar de la cuvntul de intrare de 16 bii A12 este plasat ntr-o memorie intern de 16 bii G24. Se poate face conversia BCD/binar, cu instruciunea <BCDIN> i <BCDOUT>, sensul transferului fiind evident. Diferena ntre figurile 4.14.b,c i figura 4.14.a va deveni mai clar cnd vom discuta despre operaii aritmetice n paragraful 4.4.4. La AP Master al firmei ABB, punctele ntre care trebuie transferat data sunt conectate simplu n DS. 4.4.3. Compararea datelor Deseori este necesar compararea datelor n programele AP. Exemple tipice sunt: un numrtor de obiecte care arat dac a fost livrat un anumit numr de obiecte circuite de alarm, care indic faptul c o temperatur a urcat peste un nivel de siguran. Aceste comparaii sunt realizate de ctre elemente care au forma general ca n figura 4.15, cu dou intrri numerice corespunztoare celor 2 valori ce vor fi comparate i o ieire binar, care devine 1 dac este ndeplinit o condiie specificat. Sunt posibile multe comparaii. Majoritatea AP asigur: A>B, A B , A=B, A B, A<B

97 unde, A i B sunt date numerice. La numere reale testul "=" trebuie evitat din raiuni prezentate la paragraful 4.4.1. Sunt posibile multe alte comparaii. AP PLC-5, de exemplu, are instruciunea Limit, care testeaz dac A este ntre B i C iar firmele CEGELEC i SIEMENS au testul "".

Figura 4.15. Compararea datelor Figura 4.16 prezint setarea i resetarea unui fanion de alarm B3/21 (pentru o DS a AP PLC-5) i F21.02 (pentru o DBF a firmei Siemens). Bitul de alarm este setat dac temperatura (citit de la un modul de intrri analogice n format nn,n C i memorat n N7:15 la AP PLC-5 sau n DW42 la AP SIMATIC-S5 115U) trece de 50,0 C. Odat setat, alarma este pstrat pn cnd temperatura coboar sub 40C.

Figura 4.16. Utilizare a comparrii datelor: a) la firma Allen Bradley; b) la firma Siemens (simbol DBF) 4.4.4. Operaii aritmetice Procesarea datelor numerice implic realizarea operaiilor aritmetice. Toate AP pe care le-am luat n considerare (n afar de F2) permit realizarea a cel puin 4 operaii aritmetice(+,-,*,/). n paragraful 4.4.1 am discutat despre numere ntregi i n virgul mobil. Trebuie avut grij la operaii cu ntregi. Valorile unui numr n complement fa de 2 pe 16 bii sunt n gama -32758 + 32767. Dac o operaie aritmetic d un rezultat n afara acestei game, acesta va fi greit. De exemplu: 26732+ 8647 -30605

98 rezultatul corect fiind 35379. Eroarea s-a produs n felul urmtor. Numerele sunt convertite n binar. Dup adunare se obine MSB=1, ceea ce nseamn c este un numr negativ i se face complementul fa de 2, obinnd un rezultat eronat. AP au un fanion de depire care poate fi examinat i utilizat pentru a semnaliza o alarm sau pentru fixarea unui rezultat 0 (de exemplu, cu o instruciune Move). Precauii similare trebuie luate la scdere i nmulire (ultima fiind deosebit de vulnerabil la depire: 200*200=40000, afar din gam cu mult). Trebuie s ne gndim i la faptul c o depire poate apare datorit unui defect la un modul de intrri analogice, la un senzor al procesului sau chiar la proces, i care din aceast cauz ar putea rmne nedetectat. Exist o relatare adevrat despre o avertizare fals la un atac cu rachete petrecut n S.U.A. n anii 60, cnd un sistem radar a primit ecouri de la Lun. Distana intei (calculat prin nmulirea ntrzierii ecoului cu viteza luminii) era greit cu mult, dar nu a fost fcut nici o verificare iar rezultatul a fost o distan aparent legitim, ecoul corespunznd unei rachete ce se apropia. Aceasta a cauzat intrarea S.U.A. n alarm de gradul I. Din fericire, personalul a intervenit dup cteva minute. Precauii i mai mari trebuie luate la mparire. O eroare de programare sau o condiie eronat dinspre proces sau un modul de intrare defect pot conduce la o eroare prin divizare cu zero. Aceasta conduce la oprirea multor AP cu o "eroare de program". De aceea, este indicat ca naintea fiecrei mpriri vulnerabile s se verifice limitele variabilelor pentru a fi siguri c se obine un rezultat corect. Figura 4.17 este un exemplu tipic. Se cere s se msoare viteza unui obiect, aceasta realizndu-se prin msurarea decalajului de timp T dintre acionarea a dou fotocelule (PEC1 i PEC2) aflate la distana d, viteza fiind v = d/T (vezi figura 4.17.a). Totul a mers bine pn cnd, cteva luni mai trziu, PEC2 s-a defectat, trasmind ctre AP un semnal "1" logic. Programul AP calculeaz pe baza lui o ntrziere 0, care produce o eroare prin divizare cu 0. Fiecare productor de AP ndeplinete operaiile aritmetice n maniere uor diferite, cu grade diferite de uurin i de claritate. Nici unele, ns, nu sunt att de simple ca i un limbaj de nivel nalt cum ar fi BASIC sau Pascal, iar facilitile sunt limitate n general la 4 operaii matematice plus rdcin ptrat la cele mai scumpe AP. AP PLC-5 utilizeaz blocuri matematice cum ar fi ADD, SUB, MULT i DIV, rezultnd un program simplu. Figura 4.18 arat cum poate fi realizat un calcul simplu pentru un program cu autocorectare folosit la corectarea lungimii de tiere.

99

Figura 4.17. Un exemplu de eroare prin divizare cu 0 Cele mai puternice PLC-5 (cum ar fi 5-40) au o instruciune de calcul pe bloc care permite evaluarea unei expresii matematice ntr-o singur instruciune (treapt). n limbaj de nivel nalt, operaia din figura 4.18 ar putea fi descris prin expresia: Lungime de tiere=ctig(lungime cerut lungime msurat) + +lungime de tiere

Figura 4.18. Operaii aritmetice la AP PLC-5 AP SIMATIC-S5 115U al firmei Siemens evalueaz instruciunile aritmetice n format LI. S ne amintim de discuia referitoare la acumulator, ale crui instruciuni de ncrcare (L) i transfer (T) utilizeaz un acumulator intern. Exist, de fapt, dou acumulatoare. O instruciune Load transfer coninutul sursei n acumulatorul 1. O a doua instruciune Load transfer coninutul acumulatorului 1 n acumulatorul 2, i coninutul sursei n acumulatorul 1, ca n figura 4.19. O instruciune aritmetic (+,-,etc.) lucreaz cu coninutul ambelor acumulatoare. Figura 4.19 adun, deci, dou numere i transfer rezultatul n memorie.

100

Figura 4.19. Operaii aritmetice la AP SIMATIC-S5

Figura 4.20. Operaii aritmetice la AP GEM-80 i AP MASTER: a) LINCON de la AP GEM-80 este o funcie aritmetic utilizat pentru evitarea erorilor de trunchiere n operaiile cu ntregi; b) MASTER al firmei ABB. Variabilele sunt accesate prin nume de baze de date

101 Echivalentul figurii 4.18 la AP ale firmei Siemens, folosind formatul LI, este: L DW30 ( lungime cerut n Acc1) L DW31 ( lungime msurat n Acc1 iar lungimea cerut n Acc2) SUB (eroarea rmne n Acc1) L DW32 (factor de amplificare n Acc1 iar eroarea trece n Acc2) MULT (corecia se obine n Acc1) L DW40 (vechea lungime de tiere n Acc1 iar corecia n Acc2 ) ADD (adun modificarea pentru a avea noua lungime de tiere i rezultatul n Acc1) T DW40 (transfer rezultatul din Acc1 n memoria DW40) Cele mai inteligibile forme de reprezentare sunt posibile la AP GEM-80 i la AP MASTER al firmei ABB, reprezentate n figura 4.20.a i 4.20.b. Acestea necesit o elaborare foarte simpl. Toate operaiile aritmetice, i n particular cele care implic numere n virgul mobil, sunt consumatoare de timp, i este indicat ca acestea s fie executate doar atunci cnd este nevoie (de exemplu, folosind subrutine) i s nu se piard timp prin executarea lor n fiecare ciclu program.

102

CAPITOLUL 5 METODE DE PROGRAMARE

5.1. Programarea logicii combinaionale


Orice sistem de control bazat pe semnale discrete poate fi reprezentat prin figura 5.1.a, cu un set de ieiri Z, Y, W, X, etc., a cror stare este determinat de ctre intrrile A, B, C, D, etc. Schema de comand poate fi conceput fie prin tratarea n ansamblu a aplicaiei (figura 5.1.a), fie prin descompunerea ei n blocuri mai mici. Cea mai simpl din acestea este cea de-a doua, n care schema poate fi descompus n blocuri mai mici, ca n figura 5.1.b, cu o ieire pe bloc, starea fiecrei ieiri fiind determinat numai de ctre strile intrrilor corespunztoare.

Figura 5.1. Logica combinaional: a) privire la nivel general; b) descompunere n blocuri mai mici Un exemplu de logic combinaional ar fi comanda robinetului de ncrcare pentru o pomp hidraulic, ce trebuie activat atunci cnd:

103 Pompa merge I (Este selectat "cretere" I limitatorul de sus al robinetului nu este atins) SAU (Este selectat "scdere" I limitatorul de jos al robinetului nu este atins) Funionarea acestui robinet poate fi implementat fie prin DS, fie cu DBF (figura 5.2), neputndu-se ns impune o metod standard de realizare a programelor pentru logica combinaional.

Figura 5.2. Programarea logicii combinaionale: a) n DS; b) n DBF Aa cum s-a amintit la nceput, cea mai simpl cale const n descompunerea sistemului de control ntr-un numr de blocuri mici, fiecare cu o ieire i cteva intrri. Pentru fiecare ieire se poate realiza aa-numitul tabel de adevr n care se scriu toate combinaiile posibile ale strilor intrrilor i valorile ieirii pentru fiecare din aceste combinaii. n figura 5.3.a este dat un tabel de adevr pentru o ieire Z comandat de 4 intrri A, B, C, D. Exist 16 combinaii posibile ale intrrilor iar Z este activat pentru 4 din acestea. Funcionarea ieirii Z poate fi acum transpus direct n DS (figura 5.3.b) sau n DBF (figura 5.3.c), unde fiecare ramur a unei trepte, respectiv fiecare poart I, corespunde unui rnd din tabelul de adevr.

104

Figura 5.3. Programarea logicii combinaionale pe baza tabelului de adevr: a) tabelul de adevr; b) DS corespunztoare tabelului de adevr; c) DBF corespunztoare tabelului de adevr Utilizarea metodei tabelului de adevr la programarea circuitelor logice combinaionale conduce la circuite de tip I SAU, form numit sum de produse.

Figura 5.4. Clarificarea logicii combinaionale Apare o ntrebare inevitabil: "Este acesta cel mai simplu program?". Rspunsul este: "Probabil c nu". Tehnici ca diagramele Karnaugh i teoremele algebrei booleene permit obinerea unor soluii mai simple. Cnd un circuit este construit din pori logice sau relee este foarte important ca acesta s fie obinut cu un numr minim de pori sau contacte, pentru reducerea costurilor. Cu un program AP, ns, costul contactelor suplimentare este 0, astfel nct scopul trebuie s fie claritatea programului, mai degrab dect simplitatea lui. Singura modificare care trebuie fcut ntotdeauna (din nou pentru claritate) este plasarea contactelor comune n afara ramurilor, aa cum este prezentat n figura 5.4.

105

Figura 5.5.Minimizarea nu aduce claritate: a) comutatoarele pupitrului de comand; b) conexiunile comutatoarelor; c) tabel de adevr; d) programul derivat din tabelul de adevr; e) programul minimal S considerm, pentru exemplificare, pornirea unor pompe (1, 2) de la un pupitru de comand, cum este cel din figura 5.5.a. Pentru reducerea costurilor, comutatorul tripoziional a fost conectat la AP cu doar dou blocuri de contacte (i nu cu trei, cum ar fi trebuit), ca n figura 5.5.b. Soluia este contraindicat pentru c un defect al sursei L va cauza pornirea ambelor pompe. Tabelul de adevr (figura 5.5.c) furnizeaz DS din figura 5.5.d, dar DS minimal este cea din figura 5.5.e. Pe de alt parte, utiliznd DS minimal se mascheaz modul de lucru al comutatorului, ceea ce face mai dificil detectarea defectelor.

5.2. Programarea logicii secveniale


Starea ieirilor circuitelor combinaionale era determinat numai de starea intrrilor. n logica secvenial, starea unei ieiri depinde nu numai de

106 starea intrrilor, ci i de ceea ce s-a ntmplat n prealabil. Prin urmare, nu este posibil s se ntocmeasc o tabel de adevr din care s poat fi dedus comportarea cerut. Considerm, de exemplu, circuitul de pornire a motorului din figura 5.6.a. Dac nu se apas nici un buton, motorul poate fi pornit sau oprit, n funcie de ce s-a ntmplat ultima dat. Operaia poate fi descris prin figura 5.6.b, care este cunoscut ca diagrama strilor.

Figura 5.6. O diagram de stare: a) contactorul motorului; b) diagrama strilor; c) tabelul ieirii Dreptunghiurile reprezint strile n care poate fi sistemul (motorul poate fi oprit sau pornit) iar sgeile indic tranziiile care determin schimbarea strii sistemului. Dac motorul merge, apsarea butonului STOP va cauza oprirea motorului. O bar deasupra unui semnal (de exemplu, STOP OK) nseamn c semnalul (L) nu este prezent la intrarea AP. Observai conectarea butonului STOP i sensul semnalului. Este o convenie util s se noteze strile cu numere i tranziiile cu litere. Figura 5.7.a este un exemplu mai complex (n timp real). O cantitate prestabilit de var este ncrcat ntr-un dozator, gata pentru urmtoarea descrcare, care este iniiat de ctre un buton de descrcare. n acel moment este cobort o palet (pentru a reduce emisia de praf) i varul este descrcat. Dup descrcare, paleta se retrage i dozatorul se reumple. Un buton de Oprire oprete descrcarea iar un comutator oprete alimentarea cu var a dozatorului. Exist dou situaii previzibile de defect: defectul de nencrcare a dozatorului ntr-un timp dat (probabil din cauza blocrii alimentatorului cu buci de material) i defectul de nerecepionare a semnalului de "dozator gol" (din nou ntr-un timp dat i probabil din nou din cauza unei buci de material rmase n dozator). Amndou defectele transfer comanda sistemului din modul automat n modul manual, pentru a permite determinarea cauzelor defectelor. Acum se poate desena diagrama strilor din figura 5.7.b. Este indicat, dar nu obligatoriu, s se noteze strile care se succed prin numere

107 consecutive iar tranziiile prin litere succesive. Prima stare este aceea n care sistemul intr din modul manual n automat i alegerea ei trebuie fcut cu atenie. Aici starea 0 (Comand Alimentare) este alegerea optim; dac dozatorul este deja plin, sistemul va trece imediat n starea 1 (Semnalizare Gata); dac nu, dozatorul va fi umplut. Alegerea oricrei alte stri ca prim stare poate conduce la pierderea unui timp datorat trecerii prin toate strile fr a exista material n dozator. Definirea tranziiilor necesit precauie deoarece, n mod normal, nu sunt permise trasee paralele. Dac tranziia A a fost definit ca "Alimentare complet" (X) iar tranziia G ca "ntrerupere (Y) SAU Alimentare nepermis (Z)" sistemul va lucra corect, dar este posibil ca la un moment dat ambele tranziii A i G s fie active simultan, pentru c nu exist intercondiionare ntre semnalele din definiia celor dou tranziii: A=X (5.1) G=Y+Z (5.2) Aceasta va genera o comportare anormal a procesului i probleme pentru programator. Definirea corect a tranziiei A este: Alimentare complet I nu este ntrerupere I este permis alimentarea iar pentru tranziia G: ntrerupere SAU Alimentare nepermis adic:

A =XYZ (5.3) G=Y+Z (5.4) de unde reiese c A i G nu pot fi 1 logic simultan. Aceast manier de definire d prioritate tranziiei de defectare fa de tranziia normal. Consideraii similare pot fi fcute i pentru tranziiile C i F, respectiv D i H. Acum se poate construi un tabel al ieirilor n funcie de stri. Acesta este dat n figura 5.7.c. Urmtoarea etap este trecerea de la diagrama strilor la programul AP. Etapele de pn acum sunt comune pentru toate metodele de programare a AP. Urmtorul pas este realizarea programului complet (n format DS sau n alt limbaj).

108

Figura 5.7. Diagrama strilor pentru un proces real: a) structura instalaiei; b) diagrama strilor; c) tabelul ieirilor

109 Programul se bazeaz mult pe ideea ciclului program, descris la paragraful 2.5.1. Prin descompunerea programului corespunztor diagramei noastre de stare n 4 zone, ca n figura 5.8, putem controla ordinea n care va opera fiecare stare. Structura actual din figura 5.8 nu este obligatorie, dar este esenial pentru meninerea separat a tranziiilor i strilor i neamestecarea lor. Pentru exemplul discutat vor fi prezentate doar fragmente de program, prin intermediul crora se va evidenia principiul folosit la programarea logicii secveniale.

Figura 5.8. Ciclul program i diagramele de stare Prima dat se face selecia AUT/MAN. Aceasta este realizat prin treapta de program din figura 5.9. Modul automat este validat numai dac nu exist defecte (Permis Automat), paleta este ridicat i nu este apsat butonul Manual.

Figura 5.9. Selecia AUT/MAN

110 Apoi urmeaz tranziiile, primele trei dintre ele fiind prezentate n figura 5.10. Observai c primul contact din fiecare treapt este o stare, astfel c intrrile sunt examinate numai la momentul corect din secven.

Figura 5.10. Primele trei tranziii Strile sunt date n figura 5.11. Cu excepia strii 0 au fost prevzute automenineri simple att pentru stri, ct i pentru selecia AUT/MAN (vezi figura 5.9), astfel c dup o cdere a tensiunii de alimentare sistemul va fi adus la modul MAN. Observai c aceste stri sunt setate i resetate de ctre tranziii. n final avem ieirile, ca n figura 5.12. O ieire este activat de starea (strile) corespunztoare n modul automat sau de la un buton fr reinere n modul manual. Am descris ideile de baz pentru tranziii, stri i ieiri n format DS. Metoda este la fel de uor de implementat i n formatul DBF. Tehnica diagramei strilor este foarte puternic, dar poate conduce la confuzii dac filozofia de baz nu este neleas. Cel mai amintit argument este acela c aceast tehnic determin un numr mai mare de trepte sau simboluri logice, dect o abordare direct programat dup ieiri [25]. Acest lucru este adevrat, dar programarea n funcie de ieiri poate conduce la programe foarte ntortocheate i dificil de neles. S considerm urmtorul exemplu. Figura 5.13 este o treapt care corespunde pe undeva strii 2 din diagrama strilor (figura 5.7.b); aceasta combin operarea manual i automat, aciunea sa nefiind clar deloc (acest stil de programare este cunoscut sub numele de "programare spaghetti").

111

Figura 5.11. Trei din cele ase stri

Figura 5.12. Dou din ieirile procesului Pot apare probleme atunci cnd tranziiile au loc mpotriva ciclului program, cum ar fi tranziia E din figura 5.7.b. Dac nu este conceput cu

112 atenie, o secven de program construit doar n jurul ieirilor poate sfri uor prin a face simultan dou lucruri sau nici unul, datorit modului de operare al ciclului program.

Figura 5.13. Un exemplu de programare spaghetti corespunztoare strii 2 De asemenea, modificrile sunt neltoare ntr-o abordare direct, dar sunt simple la o diagram a strilor. S presupunem (aa cum se poate ntmpla n realitate n aceast aplicaie) c este necesar s adugm un ventilator de extragere a prafului, pentru a reduce coninutul de praf din incint. Acesta ar trebui s lucreze n timpul descrcrii i nc aproximativ un minut dup terminarea descrcrii, nainte ca paleta s fie ridicat. Noua diagram de stare este prezentat n figura 5.14. Tot ceea ce este necesar este o nou stare 6 (Ventilaie dup descrcare). n practic strile i tranziiile trebuie redenumite pentru a pstra o ordine secvenial a numerelor strilor i a literelor tranziiilor. Ventilatorul trebuie s mearg n starea 3 i n starea 6. Modificrile programului sunt simple: o nou tranziie J i o nou stare 6, modificri la starea 0 (adugarea -/- pentru starea 6) i la starea 4 (intrare n starea 4 prin J i nu prin D), adugarea unui temporizator de 1 minut (pentru tranziia J) i o nou ieire pentru contactorul ventilatorului. Conform paragrafului 3.6, diagrama strilor este att de puternic nct majoritatea AP de dimensiune medie o includ n limbajul lor de programare. Chiar i modelul simplu F2 al firmei Mitsubishi poate opera cu DSS, prin instruciuni STL (STepLadder = DS cu stri). Acestea au prefixul S i adresele ntre S600 i S647. Au caracteristic faptul c atunci cnd una sau mai multe sunt setate, toate celelalte sunt automat resetate. O instruciune RET ncheie secvena.

113

Figura 5.14. Modificri la diagrama strilor Exemplu Diagrama strilor din figura 5.15.a devine astfel DS din figura 5.15.b, care poate fi programat n LI cu aceste prime instruciuni: LD X400 S S 601 STL S 601 OUT Y 431 LD X 401 S S 602 etc. Cnd nu exist ramuri i secvena este un inel simplu (opernd asemeni unui selector), secvena poate fi comandat cu un numrtor care selecteaz pasul cerut (sau starea cerut). Numrtorul este acionat atunci cnd sunt ndeplinite condiiile pentru pasul curent (sau starea curent). AP GEM-80 are o instruciune SEQR (secven) care se comport ca un uniselector de 16 pai.

114

Figura 5.15. DSS la F2 al firmei Mitsubishi: a) diagrama strilor; b) parte a DS corespunztoare nceputului lui a)

Figura 5.16. Instruciunile de secveniere de la firma Allen Bradley AP PLC-5 are dou instruciuni care ndeplinesc acelai rol. Acestea sunt numite Intrare Secvenial (SQI) i Ieire Secvenial (SQO) i sunt comandate de ctre un numrtor care d pasul curent (sau starea curent). Fiecare instruciune are un tabel cu cte un rnd corespunztor fiecrui numr de pas (de stare). Pentru SQI tabelul conine intrrile corespunztoare tranziiilor necesare pentru a iei din fiecare stare. Pentru SQO tabelul conine numele ieirii ce trebuie activat n fiecare stare. Ieirea SQI acioneaz numrtorul SQO atunci cnd intrrile corespunztoare strii prezente sunt adevrate, ca n figura 5.16. Dei SQI i SQO dau programe foarte compacte, faptul c datele ce trebuie controlate sunt vizibile doar sub form de tabel poate face depanarea mult mai dificil.

115

5.3. Ingineria software


O specificaie tipic pentru un sistem de control poate s se ncheie cu o cerin simpl, cum ar fi urmtoarea: "sistemul hidraulic va avea trei pompe hidraulice plus o pomp de antrenare a uleiului". Ca i majoritatea specificaiilor, aceste cerine simple genereaz multe semne de ntrebare: Trebuie s mearg toate cele trei pompe, sau doar una, sau dou? Dac trebuie s mearg mai puin de trei, cum va (vor) fi selectat(e) pompa (pompele)? Dac sunt utilizate mai puin de 3 pompe, trebuie ca pompa (pompele) neutilizat(e) s fie n ateptare cu comutare automat? Cum sunt pornite pompele, individual sau toate mpreun? Butonul STOP DE AVARIE le va opri pe toate? (dac nu, de ce nu?) Va porni pompa de antrenare a uleiului mpreun cu pompele principale sau pornirea ei va fi condiia pornirii pompelor principale? Dac pompa de antrenare se oprete, trebuie s se opreasc i pompele principale? Ce semnale de protecie exist (de exemplu, temperatur/nivel)? Dac nu exist, de ce nu exist, suntei siguri c nu exist? Aceste protecii ar trebui s opreasc pompele sau doar s produc alarm? Adeseori asemenea ntrebri vor arta c furnizorii s-au gndit doar la felul echipamentului necesar i nu cum va fi utilizat acesta. Proiectanii de sisteme AP trebuie s realizeze un program care s expliciteze aceste cerine adeseori vag exprimate. Pe lng aceasta, este necesar alocarea de I/E semnalelor procesului i comenzilor operatorului i stabilirea modului de realizare a legturii operator-proces. Programatorii implicai n software-ul comercial (pentru eviden contabil, hoteluri, rezervri n transporturi, etc.) ntmpin probleme similare i au generat termenul de inginerie software pentru a descrie cum se realizeaz un proiect software, pornind de la ideile originale ale utilizatorului (probabil imprecise) i ajungnd la un sistem care funcioneaz bine [46]. n acest paragraf vom examina factorii care trebuie luai n considerare n proiectarea sistemelor de control cu AP. Figura 5.17 prezint cele 6 etape prin care trebuie s treac orice proiect software. Dei puine proiecte sunt compartimentate att de net ca i acesta, principiile se aplic la toate. Prima etap este analiza problemei ce trebuie rezolvat. Furnizorul/programatorul sistemului AP trebuie s se ntlneasc cu ceilali

116 furnizori de echipamente i cu utilizatorul pentru a determina ce comenzi sunt necesare i cum vor fi abordate aceste comenzi. n aceast etap trebuie stabilite aspecte importante, cum ar fi comenzile operatorului. Specificaiile neclare trebuie clarificate n aceast etap (cum ar fi pompele hidraulice de mai nainte). Dintre toate etapele, cea mai dificil este analiza, deoarece probabil ceilali furnizori nu au luat n considerare toate aspectele complicate ale strategiei de control i nu au suficient experien pentru a decide dac un obiect al procesului este mai bine s fie comandat prin joystick-uri, butoane, sau cu display sensibil la atingere. Un aspect important adeseori trecut cu vederea n aceast etap este necesitatea existenei unor comenzi manuale, pentru a testa sau repune n funciune un proces n ntregime automatizat, care s-a oprit dintr-un motiv oarecare.

Figura 5.17. Etapele unui proiect La sfritul etapei de analiz trebuie s se obin o descriere a modului de lucru al procesului, ce comenzi ale operatorului sunt necesare (i cum trebuie acestea implementate), ce faciliti i mijloace trebuie incluse

117 pentru a ajuta mentenana/detecia erorilor i, n ultimul rnd, s se obin o list complet a semnalelor de I/E, cu specificarea curentului/tensiunii pentru fiecare i poziia lor n proces. Dificultile (i importana) acestei prime etape nu pot fi neglijate. Dac ambiguitile i problemele sunt rezolvate la nceput, urmtoarele etape sunt uoare. De exemplu, aflarea n faza de instalare a faptului c utilizatorul dorete ventilatoare cu vitez variabil i o alarm de presiune minim, precum i replici de genul "credeam c tii despre asta" nu este calea de a asigura o punere n funciune rapid i fr incidente. Tot n aceast etap trebuie definite i necesitile de testare final. Dac nu se tie cum va fi testat procesul, cum se poate ti dac procesul este conform cu cerinele utilizatorului? Cea mai grea etap fiind depit, proiectul trece n etapa a doua, specificaii i planificare, n care proiectantul trebuie s specifice ce va conine sistemul de control, cum va funciona i cum va fi testat. Trebuie nregistrat tot ceea ce s-a stabilit n prima etap. Urmtoarea etap este cea de proiectare a sistemului, a dulapurilor, a pupitrelor de comand i a structurii programului. Aceast ultim aciune cunoscut ca "proiectare top-down" (de sus n jos), este discutat n paragraful urmtor. A patra etap este cea de programare i realizare. Programarea poate fi realizat pe baza structurii definite n etapa de proiectare. Nici un program nu trebuie conceput ad-hoc direct de la tastatur; aceasta ar genera programarea spaghetti. Programatorii comerciali estimeaz c aceast etap nglobeaz nu mai mult de 10% din efortul total. Cu programarea ncheiat i cu instalaia construit se poate trece la etapa de testare i punere n funciune. Operaiile trebuie verificate pentru a vedea dac sunt ndeplinite specificaiile determinate la etapa 2. Chiar i cu cel mai simplu sistem, ar fi un mare consum de timp s se verifice toate traseele i aciunile menionate n specificaii. Exist o presiune general de a declara instalaia ca fiind funcional atunci cnd au fost testate operaiile de baz, fr a mai verifica opiunile rar utilizate. Deseori, aceste teste sunt srite i testarea general este fcut doar atunci cnd apar anumite defecte ascunse (minore), posibil dup civa ani de la punerea n funciune a instalaiei. Inevitabil, punerea n funciune a sistemului de control va fi ntotdeauna ultima etap ntr-o instalaie nou, astfel c inginerul care conduce aceast lucrare de automatizare va fi cel care va suporta ntrzierile celorlali. De aceea, este important s se stabileasc ce teste trebuie realizate nainte de pornirea instalaiei, i ce teste pot fi fcute mai trziu, on-line.

118 Testarea on-line poate fi, totui, foarte dificil i consumatoare de timp. Testele referitoare la sigurana muncii nu trebuie srite niciodat. Ultima etap menionat n figura 5.17, cea de mentenan, este, de multe ori, trecut cu vederea. Odat ce instalaia a fost predat la cheie, sistemul su de control trebuie ntreinut, i, eventual, trebuie fcute schimbri (de dorit minore), generate de modificarea modului de lucru a instalaiei. Nici o instalaie nu este fix, toate se modific de-a lungul vieii lor ca rspuns la schimbrile pieei i ale tehnologiilor. Aceste modificri necesit schimbri n strategia de control. n programarea comercial se estimeaz c mentenana consum aproximativ 50% din efortul depus ntr-un ciclu de via al proiectului. De aceea, este esenial ca strategia de control i programul s fie concepute i documentate astfel nct s poat fi schimbate i modificate uor ntr-o ultim etap, chiar i de ctre persoane care nu au fost implicate n primele cinci etape.

5.4. Proiectarea top-down


Nu este un lucru neobinuit ca programele de AP s conin cteva mii de trepte de DS. Un program nestructurat de o asemenea lungime poate fi foarte dificil de scris i foarte greu de urmrit (pentru mentenan i detectarea defectelor). De aceea, programatorul nu trebuie s scrie un singur program lung, ci s-l descompun n mai multe segmente de program mai mici. Ideal, un segment de program nu ar trebui s conin mai mult de 10 trepte (sau echivalentul ntr-un alt limbaj de programare), deoarece acesta este maximul pe care creierul uman l poate memora la un moment dat. Structura acestor segmente este unul din cele mai importante aspecte ale etapei de proiectare din figura 5.17. Cea mai bun cale de obinere a unei descompuneri convenabile este proiectarea top-down (de sus n jos). Aceasta mparte sistemul de control n zone, care sunt, la rndul lor, mprite n subzone i aa mai departe, pn cnd sunt obinute blocuri de program de dimensiuni convenabile. Ideea este prezentat cel mai bine printr-un exemplu, i anume comanda unei instalaii numit "furnal de distribuire". Acesta este comandat de un singur AP cu aproximativ 1700 trepte de DS. Controlul instalaiei poate fi descompus n cele 10 zone din figura 5.18, fiecare din ele putnd fi descompuse la rndul lor. Aici este prezentat doar structura programului corespunztor sistemului de alimentare. Nivele de jos pot fi programate prin cteva trepte.

119

120 Figura 5.19 prezint dou blocuri de pe nivelele inferioare, cu semnalele interne i de la instalaiile specifice lor. Blocul kwh, de exemplu, const n dou numrtoare comandate cu un impuls la 100 kwh de la un traductor de putere, atunci cnd alimentarea e pornit (un semnal intern de la un alt bloc). Ambele numrtoare sunt resetate la nceputul tratamentului iar numrtorul de secvene este resetat la nceputul unei noi secvene. Ieirea blocului const din dou totaluri utilizate de ctre alte blocuri pentru afiarea la operator i pentru controlul automat.

Figura 5.19. Dou blocuri din figura 5.18 cu semnalele lor Structura rezultat a programului ar trebui nregistrat ca parte a documentaiei sistemului de control i utilizat ca baz pentru programare. Un avantaj, care nu este observat imediat, este acela c o hart structurat bine realizat, cu semnale clar identificate, poate fi uor distribuit ntre mai muli programatori.

5.5. Structura programelor n diverse AP


n limbajele de nivel nalt pentru calculatoare, programatorii tind s prefere limbaje ca Pascal sau C care sunt inerent structurate prin construcia lor i privesc limbajele "nestructurate" (cum ar fi BASIC) cu o anumit doz de nencredere. n realitate, este posibil s scrii programe perfect structurate n BASIC i programe spaghetti n Pascal sau C. Alegerea este a programatorului. Observaii similare sunt valabile pentru programele de AP. Multe AP de dimensiune medie (i toate cele de mici dimensiuni) nu conin deloc elemente structurate, lsnd programatorul s decid asupra structurii i s urmeze o disciplin autoimpus.

121 AP mai mari i mai moderne au elemente structurate ncorporate. ntr-o oarecare msur acestea constrng programatorul n acelai mod n care un programator n Pascal sau C dispune de o mai mic libertate n a face greeli. n general, aceste AP ofer metode de descompunere a programului n module mici uor de neles (la AP mai mari, cum ar fi PLC5/520 al firmei Allen Brandley, exist instruciuni Repeat/Until, While do/End While, For/Next, pentru a repeta acceai operaie asupra unui bloc de date). Cel mai structurat limbaj este, probabil, la AP Master al firmei ABB, care este similar cu un limbaj de nivel nalt compilat, n care toate variabilele i toate procedurile trebuie declarate. Programul AP este descompus ntr-unul sau mai multe programe denumite PC1, PC2, etc. Este recomandat ca fiecare din acestea s trateze o zon diferit a procesului, fiecare program putnd avea diferite viteze de scanare. Apoi, aceste programe conin module de control care pot fi validate/invalidate sau re-executate la intervale de timp specificate. n interiorul modulelor de control exist module de funcii i module de secveniere, ultimele coninnd pai corespunztori diagramei strilor descris n paragraful 5.2. Elementele logice actuale sunt coninute n modulele de funcii sau n paii secveniatorului. Astfel, un program complet poate fi vizualizat n figura 5.20.a, structura sa (asemntoare unui arbore MS-DOS) fiind dat n figura 5.20.b. Structura propriu-zis este flexibil; modulele de funcii pot conine la rndul lor module de control i permit construirea unei ierarhii master/slave.

Figura 5.20. Modul de structurare a programelor la AP Master al firmei ABB: a) structur tipic de program Master; b) vedere n arbore a programului

122 Modulele sunt etichetate n ordine ierarhic pn la nivelul elementelor, astfel c poarta I PC1.2.3.2. din figura 5.21 este al doilea element logic n blocul funcional 3 al modulului de control 2 din programul PC1, i trebuie declarate ca parte a construciei bazei de date. Aceast structurare i etichetare impune o disciplin asupra programatorului.

Figura 5.21. Specificarea unei pori logice la AP Master al firmei ABB Firma Siemens utilizeaz o structur constnd din blocuri de organizare (OB), blocuri program (PB), blocuri de funcii (FB), fiiere de subrutine, pe care le vom discuta pe scurt, i blocuri de secveniere (corespunznd DS). Modulele de baz sunt blocurile de programe care sunt executate la unitile de jos n proiectarea top-down. Cnd este pornit prima dat, AP ncepe execuia programelor cu blocul de organizare OB1, din care pot fi apelate PB sau FB, ca n figura 5.22. Aceast descriere este, de asemenea, simplificat ntr-o oarecare msur. Firma Allen Brandley utilizeaz la AP PLC-5 o idee similar. Programatorul poate descompune nivelul superior al programului n module de programe mai mici, care pot fi denumite dup cum este necesar. La AP PLC-5 programele pot fi legate ntre ele printr-o DSS. Fiecare pas i tranziie este un program DS mic, un exemplu tipic fiind prezentat n figura 5.23. Att firma Allen Brandley, ct i firma Siemens utilizeaz conceptul de subrutine (numite blocuri de funcii FB la firma Siemens). Acestea sunt programe mici, utilizate pentru a rezolva sarcini specifice, care pot fi apelate n repetate rnduri de ctre programele de nivel mai nalt (figura 5.24).

123

Figura 5.22. Organizare tipic n interiorul AP ale firmei Siemens

Figura 5.23. DSS la AP PLC-5 al firmei Allen Brandley De exemplu, puine AP realizeaz funcii trigonometrice (sin, cos, tg) n mod direct. Este relativ uor s se calculeze sinusul unui unghi utiliznd dezvoltri serie: x3 x5 sin x = x + ... (5.5) 3! 5!

124

Figura 5.24. Subrutine, disponibile la multe AP unde x este unghiul n radiani. Pentru majoritatea aplicaiilor primii 3 termeni dau suficient precizie. Astfel, sinusul unui unghi (n grade) poate fi calculat cu o secven similar cu cea din figura 5.25, obinut cu cteva trepte sau simboluri logice. Aceasta poate fi declarat ca o subrutin numit Sin, avnd la intrare unghiul n grade i returnnd sinusul ctre variabila desemnat.

Figura 5.25. O subrutin pentru sin Variabile de intrare i de ieire sunt numite parametri. Ori de cte ori dorim sinusul unui unghi putem apela subrutina Sin. Putem merge mai departe. Cosinusul unui unghi este dat de relaia: (5.6) cos = sin(90 ) unde este n grade, astfel c putem scrie acum o alt subrutin pentru a calcula cosinusul unui unghi, ca n figura 5.26.a. Observai c aceasta are doar dou blocuri i apeleaz subrutina Sin ( care face cea mai mare parte a lucrului ). n final, observnd c:

125
sin (2.3) cos putem construi o subrutin Tangent, ca n figura 5.26.b. Aceasta apeleaz att subrutina Sin, ct i subrutina Cos. Apelarea unei subrutine de ctre alte subrutine se numete "nesting" (imbricare). tg =

Figura 5.26. Subrutine ce utilizeaz subrutina Sin: a) Cos; b) Tangent Avantajele subrutinelor constau n economisirea memoriei procesorului i n minimizarea efortului de programare. De asemenea, acestea fac programul mai uor de urmrit, astfel c personalul de ntreinere sau programatorul ce trebuie s fac modificri are nevoie s examineze o singur subrutin. Multe AP sunt prevzute cu anumite instruciuni (comenzi) care permit ca unele blocuri (pri) de program s fie executate numai n anumite situaii. La AP PLC-5 al firmei Allen Brandley, de exemplu, acest lucru poate fi fcut cu o instruciune MCR (Releu de Control Master) iar la AP GEM-80 poate fi utilizat comanda Start/End Block. Acestea permit ca un set de trepte s fie srite (ignorate) dac instructiunea de control de la nceputul blocului nu este adevrat, ca n figura 5.27. Aceste instruciuni ajut la structurarea programelor n blocuri mici i, de asemenea, conduc la mbuntirea timpului de rulare a programului prin ignorarea treptelor care nu sunt relevante la momentul curent. Ele pot, totui, crea confuzie n rndul personalului de ntreinere deoarece aceste instruciuni (comenzi) nu sunt imediat observabile.

5.6. ntreinerea i practica software


Toate programele (de procesare a datelor, comerciale sau de control) trebuie: a. s i ndeplineasc funciile n mod fiabil b. s se comporte ntr-o manier dinainte cunoscut atunci cnd datele de intrare sunt eronate (comportarea descris ca "robust" n limbajul de specialitate) c. s fie simplu de neles i de ntreinut.

126

Figura 5.27. Exemplu de structur cu comanda Start/End Block Prima din aceste cerine este evident, i majoritatea AP i vor ndeplini sarcinile pentru care au fost proiectate. Celelalte dou puncte, pe de alt parte, sunt adeseori trecute cu vederea. Absena lor poate s nu fie vizibil pn cnd apare pentru prima dat o problem (dup cteva luni sau ani de la punerea n funciune a instalaiei), cnd echipa de proiectare este, probabil, descompletat sau dispersat. Software-ul robust are protecie ncorporat mpotriva datelor eronate provenite de la senzori defeci sau de la intrri tastate greit de ctre operator. Figura 5.28 prezint, pentru exemplificare, o aplicaie. Materialul este furnizat la greutatea specificat de ctre beneficiar, dar este tiat la lungime prin numrarea impulsurilor de la rolele de transport. Operatorul introduce o greutate dorit n AP iar acesta o convertete n lungime

127 echivalent. Materialul rezultat este cntrit i verificat pentru a se vedea dac este la greutatea dorit, orice eroare fiind utilizat pentru a corecta urmtoarea tiere.

Figura 5.28. Un sistem de tiere automat Acest sistem conine multe puncte unde pot apare date eronate: intrri greite ale operatorului ce pot da greuti ridicole, citiri incorecte ale greutii, interferene electrice pe linia impulsurilor de la rolele de transport, ca s numim doar trei. Oricare din acestea poate cauza probleme dac datele eronate rezultate au fost tratate ca fiind corecte. Este esenial s se includ o form de verificare. Operatorul din figura 5.28 poate introduce greuti doar ntr-un domeniul specificat. Funcia de tiere va utiliza doar indicaiile de la sistemul de cntrire, indicaii care sunt ntr-un domeniu specificat, sub forma unui procentaj din greutatea urmrit. Intrri greite ale operatorului sau greutile n afara domeniului sunt semnalizate ca alarme ale sistemului. Similar, poate fi calculat un interval de timp pentru tiere, cu tieri (iniiate de un impuls) permise doar n interiorul acestui interval i cu iniierea unei alarme de "timp de tiere expirat", dac nu este generat o comand de tiere pn la trecerea timpului maxim fixat. Inevitabil, software-ul robust este mai lung i mai complex; aproximativ 25% din programul corespunztor figurii 5.28 este dedicat operrii normale, restul de 75% ocupndu-se de condiiile anormale care pot apare (vreodat sau, poate, niciodat). Protecia este totui, necesar, pentru a da operatorului i personalului ncredere n sistem.

128 La programatori exist tendina de a face programele mai subtile i de a reduce numrul de instruciuni utilizate. Asemenea tendine trebuie respinse chiar mai tare dect n software-ul comercial, deoarece mentenana instalaiei i a programului va fi fcut de ctre oamenii care vor cere o mare claritate a operaiilor. Cuvntul de ordine trebuie s fie simplitatea. Nu trebuie utilizate metode complexe i nici instruciuni nenelese n ntregime (existente n setul de instruciuni al AP). Figura 5.29 prezint un exemplu despre cum nu trebuie scris un program de AP. Aceast aplicaie const ntr-un AP care comand 3 procese identice. Programatorul ncepe prin realizarea unui multiplexor (MUX). Acesta va funciona ca un comutator rotativ cu trei poziii, care va copia toate intrrile procesului selectat n locaii de memorie intern. Exist un singur program (pentru toate cele 3 procese), care lucreaz n memoria intern i trimite ieirile sale tot ctre memoria intern, pentru a fi transmise ctre exterior prin intermediul unui demultiplexor software. Multiplexorul i demultiplexorul sunt comandate de fiecare ciclu program, astfel c programul se ocup de procesul A n ciclul program 1, de procesul B n ciclul program 2, .a.m.d. Aceast tehnic este ingenioas i economisete memoria, dar este foarte dificil de neles programul i de detectat erorile. n funcionare normal operaia nu poate fi urmrit, astfel c tot ce poate fi vzut pe terminalul de programare este ceva ambiguu, multiplexoarele comutnd continuu pe procese diferite. Cnd apare un defect la un proces, multiplexoarele trebuie blocate pe procesul cu defect (oprind astfel procesele ce merg bine), pentru a permite observarea modului de operare. Concluzia este c asemenea procedee trebuie evitate. Programul trebuie, de asemenea, s reflecte funcionarea procesului. Figura 5.5 a prezentat o situaie obinuit, n care oricare sau ambele motoare pot fi pornite, dup cum s-a selectat de la un comutator de pe pupitrul de comand. Pentru economie, nu a fost utilizat comutatorul cel mai indicat. Cel mai simplu program este treapta din figura 5.5.e, dar trebuie remarcat c cele dou trepte din figura 5.5.d fac operaia mai clar pentru cel care se confrunt cu ea pentru prima dat. Buna documentaie este esenial pentru claritate. Majoritatea AP pot fi programate off-line (prin intermediul unui calculator PC) i au facilitatea documentrii semnalelor individuale i adugrii unor comentarii explicative care s descrie cum lucreaz programul. Aceast posibilitate trebuie utilizat din plin; comparai programul nedocumentat din figura 9.26 cu versiunea documentat din figura 9.27. Una din regulile de baz utilizate n programare este "dac ai depus o dat n memorie, noteaz locaia unde ai depus-o". A nu face acest lucru

129 este ca i cum ai pune ceva ntr-un dulap iar dup cteva sptmni s fii incapabil s gseti acel lucru. I/E i memoria intern utilizate trebuie nregistrate iar documentarea n etapa de programare este de mare importan. Dac ai ales o memorie intern de un bit care s reprezinte "Alarm temperatur ap depit", atunci cnd o apelai n program i notaia "Pompa 1 oprit" este ataat, vei ti c aceeai adres a fost, probabil, utilizat de dou ori sau c harta memoriei prezint o eroare undeva.

Figura 5.29. Cum nu trebuie scris un program AP: a) structura programului; b) operarea programului n acest scop productorii de AP ofer formulare de alocare a adreselor de I/E i de memorie similare celei din figura 5.30. Acestea ar trebui utilizate cu meticulozitate. Dac interaciunea datelor ntr-un program este complex, este mai bine s se realizeze diagrame ale prelucrrii datelor, ca i cea din figura 5.31. Aceste diagrame ajut la planificarea programelor i creeaz condiii bune pentru detecia erorilor i mentenan. Un obiectiv care trebuie s fie ntotdeauna urmrit este acela de a face ct mai uoar munca celor care vor utiliza efectiv AP. O cale de atingere a acestui scop este consecvena stilului de programare. Dac un

130 contactor al unui motor a fost programat ntr-un anumit mod ntr-un loc din program (de exemplu, verificarea proteciei motorului dac a acionat i a contactelor auxiliare dac s-au nchis), atunci acest mod trebuie repetat pentru toate celelalte contactoare.

Figura 5.30. Prima etap a unui proiect: alocarea manual a adreselor de I/E

131

Figura 5.31. Program AP exprimat prin transfer de date Trebuie avut o grij deosebit la consecven atunci cnd diferite pri ale programului sunt scrise de persoane diferite, i este foarte indicat s se dezvolte un "stil al casei". Conceptul "EDDI" al firmei Ford, discutat n capitolul 9, este un exemplu n acest sens.

132

BIBLIOGRAFIE

Anderson T., Tourlas K., Diagrams and programming languages for programmable controllers, Proceedings of the Formal Methods Europe Symposium, LNCS, Springer, 1997, pp. 1-19 2. Barabas T., Stadiul actual al cercetrilor i realizrilor n domeniul structurii MAP (protocol de automatizare a fabricaiei) pentru hipersisteme robotizate CIM, Referat de doctorat nr. 1, Universitatea Politehnica din Timioara, 1998 3. Berger H., Automating with the SIMATIC S5 115U, Siemens Aktiengesellschaft, 2nd edition, Munich, 1992 4. Borangiu T., Dobrescu R., Automate programabile, Editura Academiei Bucureti, 1986 5. Borda M. E., Teoria transmiterii informaiei, Ed. Dacia, Cluj-Napoca, 1999 6. Breeding J. K., Digital Design Fundamentals, Prentice Hall, Englewood Cliffs, New Jersey, 1989 7. Ctuneanu V.M., Bacivarof I.C., Fiabilitatea sistemelor de telecomunicaii, Ed. Militar, Bucureti,1985 8. Cepic C., Traductoare i senzori, ICPE Bucureti, 1998 9. Chellis J., Elemente fundamentale ale reelelor de calculatoare, All Educational, Bucureti, 2000 10. Ciorscu F., Spnulescu I., Msurri electrice i electronice, E. D. P. Bucureti, 1973 11. Coroescu T., Sisteme automate speciale, Universitatea din Petroani, 1999 12. Dierks H., Synthesising controllers from real-time specifications, Proceedings of 10th International Symposium on system synthesis, IEEE CS Press, 1997, pp. 126-133 1.

133 13. Dodescu Gh., Calculatoare. Elemente fundamentale de structur. Iniializarea n utilizarea PC-urilor, All Educational, Bucureti, 2000 14. Dolga V., Traductoare i senzori, Universitatea Politehnica din Timioara, 1996 15. Felea I., Coroiu N., Fiabilitatea i mentenana echipamentelor electrice, Editura tehnic, Bucureti, 2001 16. Flynn J. M., Computer Architecture, Pipelined and Parallel Processor Design, Jones and Bartlett Publishers, Boston-London, 1995 17. Gavri M., Determinarea automat a mrimilor de referin din comanda adaptiv a mainilor-unelte, Tez de doctorat, Institutul Politehnic "Traian Vuia" Timioara, 1989 18. Gavri M., Gergely E. I., Automate programabile, ndrumtor de laborator, Lito Universitatea din Oradea, 1995 19. Gavri M., Gergely E. I., Determinarea parametrilor unui regulator PID cu programul de modelare grafic ACSL, Analele Universitii din Oradea, Fascicola Electrotehnic, 1996, pp. 324-331 20. Gavri M., Gergely E. I., Simularea buclei de poziie a unei maini unelte cu automat programabil, Analele Universitii din Oradea, Fascicola Electrotehnic, Seciunea C, 1997, pp. 35-41 21. Gavri M., Gergely M., Gergely E. I., Comanda sincron a semafoarelor de pe traseul Cele Trei Criuri Hotel Dacia Magazin Criul cu automatul programabil TI305, Analele Universitii din Oradea, Fascicola Electrotehnic, 1993, pp. 419-427 22. Gergely E. I., Stadiul actual n tratarea fiabilitii echipamentelor de automatizare din domeniul construciilor de maini, Referat de doctorat nr. 1, Oradea, 1995 23. Gergely E. I., Present techniques for improving the reliability of the machine engineering control equipments, Proceedings of the A96THETA 10 Automatic Control & Testing Conference Cluj-Napoca, 1996, pp. 261-266 24. Gergely E.I., On reliability assesment of programmable logic controllers based control systems, Analele Universitii din Oradea, Fascicola Electrotehnic,1998 25. Gergely E. I., The effect of programmable logic controllers programming techniques on the program cycle in the sequential logic

134 design, Analele Universitii din Oradea, Fascicola Electrotehnic, Seciunea E, 1999, pp. 50-57 Gergely E. I., Cercetri privind dependabilitatea sistemelor de conducere a proceselor cu automate programabile, Tez de doctorat, Universitatea din Oradea, 2002 Gergely E. I., Gavri M., Nagy Z., Perspectives on the future of automation control, Analele Universitii din Oradea, Fascicola Electrotehnic, 2000, pp. 15-20 Gorodcov M., Interferena n lumea calculatoarelor, Ed. tiinific i Enciclopedic, Bucureti, 1989 Gould L., Agile manufacturing emerges out of chaos, Managing Automation, no. 9, September, 1995 Ham J., Ninth annual control industry outlook, Intech Magazine, no.1, January, 1996 Heller A., Traductoare i msurarea mrimilor neelectrice, Universitatea Politehnica din Timioara, 1996 International Electrotechnical Comission, IEC International Standard 1131-3, Programmable Controllers, Part 3, Programming Languages, 1993 Maghiar T., Gavri M., Antal C., Gergely E. I., Gavrilescu O., Controlul i meninerea n domeniu a presiunii de intrare n motorul geotermal, Analele Universitii din Oradea, Fascicola Electrotehnic, 1994, pp. 377-384 Maghiar T., Gavri M., Antal C., Gergely E. I., Gavrilescu O., Reglarea temperaturii CO2 gaz n limitele prestabilite la intrarea n motorul geotermal, Analele Universitii din Oradea, Fascicola Electrotehnic, 1994, pp. 385-392 Maghiar T., Gavri M., Antal C., Gergely E. I., Gavrilescu O., Mod de implementare pe controlerul TI305 a buclei de reglare a temperaturii CO2 lichid din instalaia electrogeotermal, Analele Universitii din Oradea, Fascicola Electrotehnic, 1994, pp. 393-404 Maghiar T., Gavri M., Gergely E. I., Mod de implementare a schemei de automatizare a centralei geotermale cu controlerul programabil TI305, Analele Universitii din Oradea, Fascicola Electrotehnic, 1993, pp. 409-418

26.

27.

28. 29. 30. 31. 32.

33.

34.

35.

36.

135 37. Maghiar T., Gavri M., Gergely E. I., Reglarea turaiei motorului geotermal a unei instalaii geotermale, Analele Universitii din Oradea, Fascicola Electrotehnic, Seciunea C, 1995, pp. 92-97 38. Maghiar T., Gavri M., Gergely E. I., Urmrirea parametrilor principali, identificarea i achiziia defectelor provenite de la o central geotermal, Analele Universitii din Oradea, Fascicola Electrotehnic, Seciunea C, 1995, pp. 98-102 39. Nagy Z., Gergely E. I., Gavri M., Automation possibilities of small complexity industrial processes, Analele Universitii din Oradea, Fascicola Electrotehnic, 2000, pp.33-36 40. Nise S. N., Control Systems Engineering, The Benjamin/Cummings Publishing Company Inc., Redwood City, California, 1995 41. Norton P., Goodman J., Totul despre calculatoare personale, Ed. Teora, Bucureti, 2000 42. Oprean D., Proiectarea i exploatarea sistemelor informatice, Universitatea Independent "Dimitrie Cantemir", Cluj-Napoca, 1999 43. Parr E. A., Programmable controllers. An engineers guide, Clays Ltd. UK, 1993 44. Punescu F., Sisteme cu prelucrare distribuit i aplicaiile lor, Ed. Tehnic, Bucureti, 1993 45. Pertesco M., Automatizri industriale continue, Ed. Tehnic, Bucureti, 1991 46. Popa I., Inginerie software pentru conducerea proceselor industriale, All Educational, Bucureti, 1998 47. Popescu D., Identificare i comand pentru aplicaii n timp real, Universitatea Politehnic Bucureti, 1995 48. Pribeanu C., Interaciunea om-calculator, E. D. P. Bucureti, 1999 49. Slavici T., Conducerea cu calculatorul a sistemelor tehnologice, Universitatea Politehnica Timioara, 1996 50. Teresko J., Mass costumization or mass confusion?, Industry Week, no.6, june, 1994 51. Tomai N., Reele de calculatoare cu aplicaii n timp real, Risoprint, Cluj-Napoca, 1998 52. Tourlas K., An assessement of the IEC 1131-3 standard on languages for programmable controllers, SafeComp '97, 1997, pp. 210-219

136 53. Vasilievici Al., Blaiu F., Gal S., Fgran T., Implementarea echipamentelor digitale de protecie i comand pentru reele electrice, Ed. Tehnic, Bucureti, 2000 54. Vasilievici Al., Frigur-Iliasa F. M., Exemple de implementare a automatelor programabile n instalaiile de comand ale marilor consumatori industriali, Analele Universitii din Oradea, Fascicola de Energetic, Oradea, 2002, pp. 56-64 55. Wu J., Distributed System Design, CRC Press, London New York Washington DC, 1999 56. xxx - ABB Programmable Logic Controllers, Technical Catalogue, 1993 57. xxx - Advanced Programming Software (APS), Cat. No. 1474-PARE, Allen Bradley, 1994 58. xxx - Allen-Bradley Automation Systems, USA, 1994 59. xxx - APC700 Manual de utilizare, IPA S.A. Bucureti 60. xxx - Automatul programabil AP-Micro, Manual de utilizare, Automatica Bucureti 61. xxx - Automatul programabil AP117, Manual de utilizare, Automatica Bucureti 62. xxx - Automat programabil PMC, Manual de utilizare, Karl Marx Stadt, Germania 63. xxx - Automat programabil TI305, Manual de utilizare, Texas Instruments 64. xxx - CEGELEC, GEM-80 Programmable Logic Controller User Manual, 1992 65. xxx - Consol de programare CPP 286, Manual de utilizare, Automatica Bucureti 66. xxx - Manual de utilizare al automatului programabil AP 101, IPA, Automatica Bucureti 67. xxx - Mitsubishi Electric Europe B. V. , Programmable logic controllers, Technical catalogue, Germany, 1999 68. xxx - Schneider Electric, Automation solutions catalogue, 1999 69. xxx - Siemens, Automation & Drives catalogue, 1999 70. xxx SLC 500TM Analog I/O Modules, User manual, Allen Bradley, 1994

137 71. xxx - SLC 500TM Modular Hardware Style, Installation and Operation Manual, Allen Bradley, 1994 72. xxx - Standard Romn SR EN60617-7, CEI260617-7, 1999

You might also like