Eugen Ioan GERGELY

AUTOMATE PROGRAMABILE 
CURS

2

CUPRINS

NOTAŢII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 CAPITOLUL 1. SISTEMELE DE CALCUL ŞI CONTROLUL INDUSTRIAL . . . . . . . . . . . . . . . . . . . . 1.1. Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2. Contextul industrial . . . . . . . . . . . . . . . . . . . . . . . 1.3. Noile reguli de producţie . . . . . . . . . . . . . . . . . . . . 1.4. Tipuri de strategii de control . . . . . . . . . . . . . . . . . . 1.4.1. Subsisteme de monitorizare . . . . . . . . . . . . . . 1.4.2. Subsisteme secvenţiale . . . . . . . . . . . . . . . . . 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 maşină şi în limbaj de asamblare 1.5.3. Limbaje de nivel înalt . . . . . . . . . . . . . . . . . . 1.5.4. Programe de aplicaţie . . . . . . . . . . . . . . . . . . 1.6. Cerinţe ale controlului industrial. . . . . . . . . . . . . . . . 1.7. Automatele programabile . . . . . . . . . . . . . . . . . . . 1.7.1. Scurt istoric . . . . . . . . . . . . . . . . . . . . . . . 1.7.2. Normalizarea . . . . . . . . . . . . . . . . . . . . . . 1.7.3. Tendinţe ale pieţei . . . . . . . . . . . . . . . . . . . CAPITOLUL 2. STRUCTURA AUTOMATELOR PROGRAMABILE . . . . . . . . . . . . . . . . 2.1. Prezentare generală a automatelor programabile . . . . . . 2.2. Module de I/E . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1. Module de intrări discrete . . . . . . . . . . . . . . . 2.2.2. Module de ieşiri 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. Bucureşti . . . . . . . . . . . . . . . . . . . . . . 2.4. Adresarea memoriei interne de un bit . . . . . . . . . . 2.5. Execuţia programelor . . . . . . . . . . . . . . . . . . . 2.5.1. Ciclul program . . . . . . . . . . . . . . . . . . . 2.5.2. Ramificaţii şi repetiţii . . . . . . . . . . . . . . . 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 funcţionale . . . . . . . . 3.4. Lista de instrucţiuni . . . . . . . . . . . . . . . 3.5. Textul structurat. . . . . . . . . . . . . . . . . 3.6. Diagrama de stare secvenţială . . . . . . . . . CAPITOLUL 4. FUNCŢII SPECIALE . . . . 4.1. Programarea memoriei interne de un bit 4.2. Temporizatoare . . . . . . . . . . . . . . 4.3. Numărătoare . . . . . . . . . . . . . . . . 4.4. Aplicaţii numerice . . . . . . . . . . . . 4.4.1. Reprezentarea numerelor. . . . . . 4.4.2. Transferul datelor . . . . . . . . . . 4.4.3. Compararea datelor . . . . . . . . 4.4.4. Operaţii 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 combinaţionale . . . . . 5.2. Programarea logicii secvenţiale . . . . . . . 5.3. Ingineria software . . . . . . . . . . . . . . . 5.4. Proiectarea top-down . . . . . . . . . . . . . 5.5. Structura programelor în diverse AP . . . . 5.6. Întreţinerea şi practica software . . . . . . .

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

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

British Standard = Standard Britanic CAN .Carrier Sense Multiple Access = acces multiplu prin detectarea purtătoarei CSMA/CD – CSMA/ Colision Detection = acces multiplu prin detectarea purtătoarei cu detecţia coliziunilor DBF .Block Check Character = caracter de verificare a blocului BCD .Data Communication Equipment = echipament de comunicaţie a datelor DS . Intrări/Ieşiri .Actuator / Sensor = element de execuţie / senzor ASCII .American Standard Code for Information Interchange = Code standard american pentru schimbul de informaţii ASK .Automat(e) Programabil(e) ARQ .Amplitude Shift Keying = modulaţie în amplitudine BCC .Comitetul Consultativ Internaţional de Telefonie şi Telegrafie CCM .Error Detection and Diagnostic Indication = Indicator pentru detectarea erorilor şi diagnosticare EIA .Data Terminal Equipment = echipament terminal de date EDDI .Forward Error Control = control în avans al erorilor FIMs .Circuit(e) Basculant(e) Bistabile CCITT .Convertor(Conversie) Analog-Numeric(ă) CBB .Intrare/Ieşire.Health and Safety Executive = Executivul de Sănătate şi Siguranţă I/E .Cyclic Redundancy Code = cod ciclic de redundanţă CSMA .Diagramă(e) Scară DSS .Centru de Control al Motorului CRC .Diagramă(e) cu Blocuri Funcţionale DCE .Binary Coded Decimal = zecimal codificat binar BS .4 NOTAŢII AP .Frequency Shift Keying = modulaţie în frecvenţă HDLC .Automatic Transmission on Request = transmisie automată la cerere AS .High level Data Link Control = protocol de comunicaţie de nivel înalt HSE .Functionally Identified Maintenance system = Sistem de mentenanţă identificat funcţional FSK .Extended Simple Protocol = protocol simplu extins FEC .Electrical Industries Association = Asociaţia industriilor electrice ESP .Diagramă(e) de Stare Secvenţială(e) DTE .

Normal Închis OSI .Lista de Instrucţiuni LSB .Timer ON (delay) = temporizare la anclanşare TS .Programmable Logic Controller = automat programabil PSK . referinţă SFC .Local Area Network = reţea locală (pe arie restrânsă) LI .Man-Machine Interface = interfaţă om-maşină MT .Normal Deschis NI .Mentenance Time = durata mentenanţei (planificate) MTBF .Mean Time Between Failures = timpul mediu de bună funcţionare MTTF .Open System Interconnection = (model de) interconectare a sistemelor deschise P .Text Structurat UAL .International Telecommunication Union = Uniunea Internaţională de Telecomunicaţii LAN .Process Variable = variabilă de proces RSU .Synchronous Data Link Control = protocol de comunicaţie sincron SNR .Sertar(e) de Bază SDLC .International Standards Organization = Organizaţia internaţională a standardelor ITU .Least Significant Bit = Bitul cel mai puţin semnificativ MAP .Proporţional PC .Unitate Centrală de Procesare WAN .Personal Computer = calculator personal PI .Unitate Aritmetică şi Logică UART .Mean Time To Failure = timpul mediu până la defectare MTTR .Signal to Noise Ratio = raportul semnal-zgomot SP .SetPoint = valoare prestabilită.Universal Asynchronous Receiver-Transmitter = Emiţător-receptor asincron universal UC .Time Division Multiplexing = multiplexare prin divizarea timpului TOF .Timer OFf (delay) = temporizare la declanşare TON .International Electrotechnical Comittee = Comitetul internaţional de electrotehnică ISO .Manufacturing Automation Protocol = protocol de automatizare a producţiei MMI .Unitate de Comandă UCP .eXclusive-OR = (funcţia logică) SAU-EXCLUSIV IEC .Releu Stop de Urgenţă SB .Proporţional-Integrator PID .Sequential FlowChart = DSS TDM .5 .Proporţional – Integrator – Derivativ PLC .Mean Time To Repair = timpul mediu de reparare ND .Phase Shift Keying = modulaţie în fază PV .Wide Area Network = reţea extinsă (pe arie largă) XOR .

respectiv a cablurilor. uzina poate fi o vastă instalaţie petrochimică. Figura 1. Aici sistemul de control poate fi complex şi constă într-o combinaţie de .1 este o reprezentare a unei instalaţii tipice.1. instalaţia poate fi un motor electric care acţionează un ventilator de răcire. Controlul operatorului poate consta în butoane de START / STOP iar starea instalaţiei poate fi observată prin lămpi de semnalizare de PORNIT / OPRIT şi DEFECT.1. Introducere Foarte puţine instalaţii industriale pot funcţiona singure şi majoritatea lor necesită o anume formă de sistem de control pentru a asigura o operare sigură şi eficientă. La cel mai simplu nivel. Figura 1. O imagine simplificată a unui sistem de control Sistemul de control transformă comenzile operatorului uman în acţiuni necesare şi afişează starea instalaţiei către operator.6 CAPITOLUL 1 SISTEMELE DE CALCUL ŞI CONTROLUL INDUSTRIAL 1. protecţii la scurtcircuit şi suprasarcină a motorului. care poate fi o uzină conectată la un sistem de control [27]. La cealaltă extremă. Aici sistemul de control poate fi compus din: un contactor electric.

. în general. comenzile fiind date iar informaţiile fiind afişate prin intermediul diverselor echipamente. În cea de-a doua categorie de întreprinderi se fabrică produse de mai multe tipuri. Utilizatorii (clienţii) cumpărau ceea ce era disponibil. Astăzi piaţa se caracterizează prin faptul că cerinţele producţiei sunt determinate de către solicitările utilizatorilor (clienţilor). atât din punctul de vedere al naturii produselor. Problemele cu care se confruntă actualmente întreprinderile industriale pot fi explicate prin evoluţia pieţei. care pot fi. cât şi din punctul de vedere al utilajelor de producţie. ca o succesiune de operaţii de producere şi asamblare realizate manual sau cu ajutorul maşinilor. Concurenţa s-a înteţit şi mondializat considerabil iar exigenţele consumatorilor au sporit. În primul caz producţia este descrisă în termenii debitului de materiale. electrice şi electronice aparţin acestei categorii. Procesul de producţie este caracterizat printr-o secvenţă de reacţii fizico-chimice ce se succed într-o manieră continuă sau cvasicontinuă. 1. de complexitate diferită. Industriile mecanice. piaţa era caracterizată prin faptul că producătorii erau cei ce determinau tipul şi cantitatea produselor. Procesul de producţie se prezintă. Contextul industrial Din punct de vedere al gestiunii şi al automatizării. Tipice pentru acest caz sunt uzinele fizico-chimice şi petrochimice. Cu puţin timp în urmă. operatorul va fi o parte a sistemului de control. Legătura cu operatorul uman poate fi la fel de variată. Dacă se declanşează o alarmă care înseamnă "Nivel scăzut de ulei".7 tehnologii. În termenii producţiei. de calitate şi în concordanţă cu cerinţele pieţei. întreprinderile industriale pot fi clasificate. operatorul trebuie să adauge ulei.2. în două mari categorii: întreprinderi cu procese continue şi întreprinderi manufacturiere. aceasta înseamnă o mare varietate de produse cu un ciclu de viaţă scurt şi în serii mici [50]. Este clar că în aceste întreprinderi producţia este limitată strict. în general. evident. întreprinderile vor trebui să producă repede. Ciclul de viaţă al produselor s-a redus considerabil: 3-4 ani pentru un automobil şi mai puţin pentru un calculator PC. trebuind în acest sens să se poată adapta rapid la evoluţia produselor [29]. În majoritatea cazurilor. Pentru a supravieţui. îndeosebi în ceea ce priveşte calitatea produselor.

ele trebuind să permită schimbarea rapidă a utilajelor şi a programelor de fabricaţie. apărut la începutul anilor ’80. este necesar să existe timpi de fabricaţie foarte scurţi. care a condus la schimbări majore în profunzimea funcţionării întreprinderilor. • fiabilitatea maşinilor. ce ar conduce la o îmbunătăţire a situaţiei financiare a întreprinderilor. zero întârzieri şi zero documente. reducerea stocurilor nu este decât începutul unei reacţii în lanţ.8 1. zero întreruperi ale producţiei. Acest principiu trebuia respectat atât la nivelul produselor finite (să se producă numai produse pentru care există comandă). ar trebui adăugate încă două zerouri: zero accidente şi zero probleme sociale. În termeni tehnici. Pentru a produce fără stocuri şi pentru a garanta livrări la timp. La nivelul organizării producţiei aceasta implică: • divizarea uzinei în celule care să permită înlănţuirea rapidă a operaţiilor referitoare la o piesă sau la un produs într-o manieră care să evite depozitările intermediare. Noile reguli de producţie Noile reguli de producţie pot fi rezumate. • flexibilitatea celulelor menţionate anterior. prin cinci zerouri: zero defecte. Semnificaţia primelor patru zerouri este clară. flexibilitate pentru a putea urmări cererea de produse (în varietate şi în cantitate) şi o înaltă dependabilitate a producţiei. zero stocuri. Primul rezultat ar consta într-o reducere drastică a stocurilor. Este vorba de un principiu de organizare industrială. . În realitate. • polivalenţa calificării operatorilor. printre altele. cât şi la nivelul componentelor constitutive ale acestor produse. care preconiza cumpărarea sau producţia numai a produselor necesare. la momentul oportun. într-o manieră sugestivă. care adesea îngreunează munca personalului şi este sursa unor numeroase erori. aceste noi reguli de producţie relevă o filozofie numită "fix-la-timp" (Just-in-Time) [30]. aplicarea unei politici riguroase de mentenanţă preventivă. • limitarea deplasărilor în vederea acccelerării producţiei. ceea ce înseamnă. În cazul ideal. Al cincilea indică dorinţa de a suprima mulţimea de documente ce trebuie întocmite. care devin responsabili atât de cantitatea şi calitatea pieselor sau produselor fabricate. • controlul calităţii în fiecare etapă a fabricaţiei. cât şi de buna funcţionare a maşinilor.3.

O soluţie constă în analiza fluxului de materiale şi de informaţii asociate procesului de producţie. etc. în mod natural. ale căror moduri de funcţionare trebuie să poată fi modificate foarte uşor. integrarea oferă fiecăruia accesul direct la informaţiile dorite. Aceste aspecte diferite ale producţiei au devenit. automatizarea trebuie să fie flexibilă. Automatizarea permite accelerarea fabricaţiei şi/sau garantarea constanţei calităţii ei. deoarece practic toate maşinile de producţie noi sunt comandate cu dispozitive bazate pe microprocesoare. Acest aspect nu mai ridică în momentul de faţă probleme reale. Noile reguli de producţie evocate aici conduc.9 • îmbunătăţirea relaţiilor cu furnizorii atât la nivelul livrărilor la timp. la management. ci şi la concepţia produselor. 1. Termenul "integrare" utilizat aici acoperă nu numai interconectarea fizică a calculatoarelor în reţele de comunicaţie. Această flexibilitate se traduce la nivelul structurii maşinilor unelte prin faptul că ele trebuie să fie polivalente şi adaptabile şi să fie prevăzute cu o gestiune a uneltelor şi a alimentării cu piese complet automatizate. va apare ca o maşină flexibilă prin excelenţă. de câtva timp. Astfel. la gestiunea tehnică. Aceste informaţii se referă nu numai la fabricaţia propriu-zisă. la marketing. cât şi la nivelul calităţii produselor furnizate. În plus. dar şi interconectarea logică a lor. astfel. obiectul unor dezvoltări infomatice specifice. Majoritatea acestora. la o integrare a mijloacelor informatice ale unei întreprinderi. Tipuri de strategii de control Este foarte simplu să fii derutat şi copleşit de dimensiunile şi complexitatea unui proces industrial mare. financiară şi administrativă a uzinei. Pentru motivele exprimate anterior. cu claritate oportunitatea automatizării şi informatizării proceselor de producţie. ci şi de la alte sisteme de calcul. Apare. posibilităţile de comunicaţie existente permit transferul şi modificarea programelor nu numai de la sistemele de conducere proprii. Pe de altă parte. de exemplu. în raţionalizarea lor şi în simplificarea lor la maxim. pot fi simplificate prin considerarea lor ca fiind compuse din mai . la momentul dorit şi în locul dorit. dacă nu toate. Această flexibilitate trebuie să se regăsească şi la nivelul sistemelor de comandă a maşinilor. Informatizarea are ca obiectiv ameliorarea transferului de informaţii referitoare la procesul de producţie.4. un robot.

4. presiune. cum ar fi.2. b. NIVEL RIDICAT / NORMAL / SCĂZUT. Se aşteaptă două minute (pentru ca aerul să elimine gazele nearse) şi apoi: . Starea instalaţiei este măsurată prin senzori (traductori) corespunzători. atunci secvenţa poate începe. BLOCAT / JOS / MEDIU / ÎNALT. Subsisteme de monitorizare Acestea afişează starea procesului către operator şi atrag atenţia asupra situaţiilor anormale sau de defect. Se alimentează contactorul ventilatorului. Senzorii digitali evaluează parametrii cu stări distincte.10 multe subprocese mici. Aceste subprocese pot fi diferenţiate. Un sistem de monitorizare păstrează adeseori înregistrări ale consumului de energie şi materiale în scopul unor bilanţuri şi produce un jurnal de evenimente / alarme pentru analiza lui în etapa de mentenanţă. poate necesita mentenanţă după 5000 de ore de operare.4. O pompă. secvenţa de comandă ar putea fi următoarea: a.2. Un limitator de capăt de cursă sau un releu termic folosit pentru suprasarcina unui motor sunt condiţii tipice digitale de alarmă. Subsisteme secvenţiale Multe procese urmăresc secvenţe predefinite. atunci: c. de exemplu. verificate pentru situaţiile de alarmă. Dacă senzorii arată că nu este debit de aer şi nici flacără. 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). de exemplu. Pentru pornirea arzătorului. Rezultatele acestor măsurători sunt afişate către operator prin indicatori (pentru semnalele digitale) sau prin aparate de măsură şi contoare (pentru semnalele analogice). sistemul de control secvenţial al cuptorului cu gaz din figura 1. Senzorii analogici măsoară parametrii care au un domeniu de variaţie continuu. MERS ÎNAINTE / MERS ÎNAPOI. de asemenea. Exemple tipice sunt: PORNIT / OPRIT. Operatorul trebuie informat asupra acestora prin echipamente de avertizare acustică şi vizuală.1. DEFECT / BUN. O temperatură înaltă sau un nivel scăzut de lichid pot fi condiţii tipice analogice de alarmă. în trei tipuri distincte. Se apasă butonul START. 1. 1. Semnalele pot fi. debit sau nivel. cum ar fi temperatură. în general.

Se deschide valva V1 până sunt încărcate 250 kg din produsul A. d. f. b. Dacă există flacără (lucru verificat prin detectorul de flacără) se deschide valva de gaz principală. Senzorii analogici sunt utilizaţi pentru a măsura greutatea şi temperatura pentru a da următoarea secvenţă: a.3 este prezentat un proces de amestecare a două substanţe. . Se deschide valva V2 până sunt adăugate 310 kg din produsul B. c. dar poate utiliza şi semnale analogice. Se încălzeşte amestecul la 80° C şi se menţine la 80° C timp de 10 minute. Se opreşte încălzitorul.2. f. Figura 1. Se aşteaptă până când amestecul se răceşte la 30° C. Se aşteaptă 120 secunde (pentru amestecare completă). e.11 d. Se aşteaptă două secunde şi apoi se opreşte aprinzătorul şi: e. Cuptorul funcţionează şi rămâne în această stare până când se apasă butonul STOP sau se opreşte debitul de aer sau se stinge flacăra. Se porneşte paleta de amestecare. Se deschide valva pilot şi se acţionează aprinzătorul. Secvenţa este completă. În figura 1. Un cuptor de gaz cu sistem de control secvenţial Secvenţa anterioară utilizează doar semnale discrete.

1) Dacă. Figura 1. Se opreşte paleta mixerului. Se deschide valva de evacuare V3 până când greutatea amestecului scade sub 50 kg. de exemplu. Un proces de amestecare 1. un parametru al instalaţiei (temperatura. Aici. Pentru controlul temperaturii. de exemplu. Subsisteme de control în buclă închisă În multe sisteme analogice o variabilă ca temperatură. elementul .12 g. atunci abaterea este de 2° C. Există mulţi algoritmi de control (această temă fiind discutată în Capitolul 6).4. Acest semnal de eroare este aplicat unui algoritm de control. temperatura trebuie menţinută constant la 80° C într-un domeniu foarte îngust timp de 10 minute. PV este măsurată printr-un senzor corespunzător şi comparată cu SP pentru a da semnalul de eroare: abaterea = SP-PV (1. Ieşirea algoritmului de control este transmisă unui element de execuţie care deserveşte instalaţia. notată prin PV – variabilă de proces) trebuie menţinut la o valoare prestabilită SP (referinţă). În pasul e al secvenţei de amestecare anterioare. dar un exemplu de control al încălzirii poate fi următorul: "Dacă eroarea este negativă opreşte încălzirea iar dacă este pozitivă porneşte încălzirea".3. presiune sau debit este necesar să fie menţinută automat la o anumită valoare prestabilită sau să fie făcută să urmărească un alt semnal.3.4. este vorba despre un regulator de temperatură cu SP = 80° C şi PV = 78° C. h. Asemenea sisteme pot fi reprezentate prin schema bloc din figura 1.

De exemplu. de asemenea. Trebuie.4. valoarea PV poate fi făcută să urmărească un SP care se modifică. După acest timp. Figura 1. Uneori.13 de execuţie poate fi o rezistenţă electrică iar pentru controlul unui debit elementul de execuţie poate fi o valvă de control a debitului. Proporţia aer/gaz pentru un cuptor cu gaz (cum este cel din figura 1. deoarece este necesar un interval de timp la începutul funcţionării pompei. Un sistem de control în buclă închisă În figura 1. nu se poate genera o alarmă la presiune scăzută de ulei în timpul pornirii unei pompe. întâlnită. conţinând porţi logice. Algoritmul de control va comanda elementul de execuţie astfel încât eroarea să fie zero. pentru a se permite stabilizarea presiunii în circuit. Sistemele de monitorizare / alarmă pot fi deseori realizate prin conectarea senzorilor instalaţiei la afişaje. Echipamente de control Cele trei tipuri de strategii de control prezentate anterior pot fi implementate pe mai multe căi. menţinută în ciuda modificării funcţionării cuptorului. 6]. adică PV = SP. în general) pot fi utilizate pentru sisteme mai complexe [17. temporizatoare şi alte asemenea dispozitive electromagnetice. conectate . astfel că expresia "control în buclă închisă" este. observat că schema bloc formează o buclă. elemente de memorare.4. Deoarece procesul de corecţie este continuu. 1. Multe aplicaţii cu maşini-unelte sunt realizate în jurul unor blocuri logice: unităţi logice montate în sloturi (locaşuri prevăzute cu conectori). o presiune scăzută va cauza oprirea pompei (în cazul în care scăderea presiunii este cauzată de o scurgere). indicatoare şi dispozitive de alarmă.4 valoarea PV este transmisă înapoi pentru a fi comparată cu SP. de asemenea.2) poate fi. sistemele de alarmă necesită o anumită logică. temporizatoare şi numărătoare. deci. Sistemele secvenţiale pot fi realizate cu relee. ceea ce conduce la expresia "control cu reacţie negativă". Circuitele logice (TTL sau CMOS.4.

Controlul în buclă închisă poate fi realizat prin intermediul unor regulatoare construite pe baza unor amplificatoare de c. Ca şi la sistemele cu relee.. În industria chimică (şi. Calculatorul în controlul industrial: a) privire generală asupra calculatorului. 1. categoriile salariale şi orele lucrate.4 şi este disponibil în comerţ. Schema bloc a unei instalaţii conduse de un calculator este o reprezentare apropiată de blocul de control din figura 1. Primele calculatoare au fost utilizate pentru operaţii comerciale: state de plată. Aceste date vor fi operate în concordanţă cu instrucţiunile scrise astfel încât să includă impozitele şi asigurările sociale.4 reprezentate prin presiuni pneumatice.5. în particular.a.5. care poate fi . datele de intrare vor fi numele angajaţilor. mai modern. modificările pot fi realizate relativ simplu. Utilizarea calculatoarelor Un calculator este un dispozitiv care realizează operaţii predeterminate asupra unor date de intrare pentru a produce date de ieşire. suma transferată într-un cont bancar). contabilitate. cu semnalele din figura 1.5. pentru a produce date de ieşire sub forma restului de plată (sau. aşa cum este reprezentat în figura 1. Figura 1.1. descris în Capitolul 6. pentru a realiza operaţia cerută. operaţiuni bancare şi alte activităţi similare. cum ar fi obişnuitul 741. b) calculatorul ca parte a unui sistem Pentru un calculator utilizat pentru calculul statelor de plată. "Regulatorul cu trei termeni" (PID).14 prin terminale la blocuri. este un echipament care realizează funcţia din figura 1. în industria petrochimică). prezenţa unor atmosfere explozive a condus la utilizarea unor regulatoare pneumatice.c.

uneori.6.5.15 redesenat sub forma unui calculator care conţine blocurile de control.a poate fi extinsă pentru a ajunge la forma din figura 1. Datele din memoria internă pot fi accesate foarte rapid. adeseori. Viteza nu era atât de importantă în aplicaţiile comerciale (programatorii comerciali vor fi. Există. Multe acţiuni şi alarme necesită comenzi întreprinse în fracţiuni de secundă. umiditatea şi temperatura trebuind menţinute în limite înguste. Arhitectura calculatoarelor Pentru a putea aprecia modul de utilizare al unui calculator în controlul industrial. ci sunt o componentă a datelor de intrare. rezerve mari de . Primele calculatoare au fost mari. care va păstra instrucţiunile programelor şi datele de operare.5. 49]: 1. de asemenea. Calculatoarele comerciale au fost proiectate să lucreze în atmosfere protejate. probabil. 2. Aceste date pot fi informaţii venite din exterior sau rezultate intermediare şi/sau finale ale calculelor. Instrucţiunile vor defini care acţiuni trebuie considerate ca date de intrare (de la instalaţie sau de la operator). Se observă că acţiunile operatorului nu sunt instrucţiuni. de la cel mai mic PC la cel mai complex) are şase blocuri [13. un sistem de monitorizare instalat într-o rafinărie de petrol în Port Arthur. O memorie internă. Această figură (care reprezintă toată gama de calculatoare. prin care datele din exterior sunt introduse în calculator în vederea procesării.5. motoare. Prima aplicaţie industrială a calculatoarelor a fost. şi pe trimiterea datelor de ieşire către imprimante. Calculatoarele comerciale se bazau pe furnizarea datelor pe cartele perforate şi prin tastatură.b. Un proces industrial necesită . SUA. Aceste condiţii sunt imposibil de asigurat în procesele de producţie. scumpe şi lente. probabil. 1. este utilă cunoaşterea părţilor componente ale sale. figura 1. ca sute de dispozitive să fie citite în timp real iar semnalele să fie trimise către echipamente ca valve. Datele de ieşire sunt acţiunile de control asupra instalaţiei şi afişarea informaţiilor către operator. dar calculatoarele comerciale necesită. 3. în dezacord). în 1959. aparate de măsură. Fiabilitatea şi media timpilor între defectări ale calculatoarelor acelui timp au condus la o utilizarea redusă a lor în asemenea aplicaţii. 16. ca în figura 1. problema mediului de funcţionare. 41. O unitate de intrare.1. În acest sens. dar este de cea mai mare prioritate în aplicaţiile industriale care trebuie conduse în timp real. etc.

Acestea vor . nume şi adrese. sunt păstrate în memoria externă. cu mici excepţii. Transferă data dintr-un loc în altul. Există. înscrie data într-o locaţie de memorie sau transferă data din memorie în UAL. situaţii când este necesară continuarea execuţiei programului cu o altă instrucţiune decât cea imediat următoare (salt necondiţionat) sau când sunt necesare teste simple. UAL şi UC sunt cunoscute împreună sub numele de unitate centrală de procesare sau UCP. Părţile componente ale unui calculator 4. Într-un program instrucţiunile se succed una după cealaltă. Cele disponibile la majoritatea microprocesoarelor sunt de forma: 1. de aceea. care realizează operaţii asupra datelor din memorie în concordanţă cu programul executat de către calculator. 2. unul în UAL iar celălalt într-o locaţie de memorie specificată. Salturi. Un microprocesor este o UCP într-un singur circuit integrat. Acest tip de date nu e necesar să fie furnizate rapid şi. prin care datele din calculator sunt transmise către exterior. se succed în ordine secvenţială. Instrucţiunile programului sunt păstrate în memorie şi. Există surprinzător de puţine tipuri de instrucţiuni. Adeseori. Aceste memorii sunt puţin utilizate la tipurile de calculatoare ce vor fi discutate. -. Figura 1.6. OR. De exemplu. De obicei. Operaţii aritmetico-logice asupra a doi operanzi. Aceste din urmă operaţii utilizează salturi condiţionate. O unitate aritmetică şi logică UAL. însă.16 memorie pentru a reţine detalii cum ar fi: conturi bancare. O unitate de comandă UC. 3. O unitate de ieşire. aceasta constă în discuri sau casete magnetice şi este numită memorie secundară. 5. 6. secvenţial. AND. Operaţiile uzuale sunt: +. care face legătura între operaţiile celorlalte cinci blocuri.

pentru că există câte o instrucţiune în limbaj de asamblare pentru fiecare instrucţiune în cod maşină. 4. Limbaje de nivel înalt Programele în limbaj de asamblare pentru anumite aplicaţii sunt greu de scris. La nivelul cel mai scăzut. la instrucţiunea aflată după instrucţiunea de apel a subrutinei. numit programare în cod maşină. Într-un sistem de control industrial în care debitul este măsurat cu o diafragmă. converteşte programul cu mnemonice (denumit program sursă) într-un program cod maşină echivalent (denumit cod obiect). care permite ca din diferite puncte ale programului principal să se transfere operaţiile la o subrutină specificată. care poate fi lansat în execuţie. Dar. este apelată de multe ori funcţia radical de ordinul doi (deoarece debitul este proporţional cu rădăcina pătrată a diferenţei de presiune pe diafragmă). se utilizează o instrucţiune de apel de subrutină.5.2. 1. 1. chiar şi un programator experimentat pentru Z80 are nevoie de bibliografie (şi de mult timp) pentru a putea interpreta aceste 19 numere. permiţând programatorului să scrie rapid instrucţiunile. Acest lucru este dificil de făcut. Programarea în limbaj de asamblare utilizează mnemonice în locul codurilor. aşa că au fost dezvoltate căi de scriere a programelor pentru . Scrierea programelor în limbaj de asamblare este laborioasă. Programarea în cod maşină şi în limbaj de asamblare Seria de instrucţiuni ce constituie programul trebuie scrisă şi încărcată în calculator. După execuţia acesteia se revine în programul principal. Un program separat. care începe la adresa 4000H.3. denumit asamblor. instrucţiunile sunt scrise în calculator sub formă numerică. care sunt uşor de urmărit.5.17 fi executate atunci când condiţia testată este adevărată şi permit ca programul să poată urma una din două căi posibile. Multe operaţii sunt executate de mai multe ori în acelaşi program. Decât să se scrie aceeaşi instrucţiune de mai multe ori (fapt care necesită efort şi spaţiu de memorie suplimentar). Secvenţa de numere: 16 00 58 21 00 00 06 08 29 17 D2 0E 40 19 05 C2 08 40 C9 reprezintă instrucţiunile unei subrutine de multiplicare pentru microprocesorul Z80. favorizează erorile şi este aproape imposibil de modificat ulterior. Subrutine.

C). pentru a numi numai câteva din ele. El nu generează program cod obiect. Programul sursă şi interpretorul există în calculator în timpul execuţiei programului.(of program) Chiar dacă cititorul nu cunoaşte limbajul PASCAL. deinmultit*inmultitor). 3. end. pe măsură ce sunt executate. fiecare având atracţiile sale. Programul cod obiect rezultat poate fi apoi rulat independent de programul sursă sau de compilator.18 calculator într-un stil apropiat de limba engleză."ori". Acest lucru este realizat cu aşa-numitele “limbaje de nivel înalt”. Interpretorul parcurge fiecare linie a codului sursă şi le converteşte în cod maşină echivalent. operaţiile din program sunt clare (dacă se cere schimbarea tabelei de înmulţire până la 10 cu o tabelă de înmulţire până la 20.output).inmultitor. o secvenţă tipică de lucru cu un compilator fiind următoarea: 1. cum ar fi RPG.inmultitor). dintre care cele mai cunoscute sunt PASCAL. inmultitor:integer begin readln ("Ce tabelă doriţi?". totuşi. Un program sursă în limbaj de nivel înalt poate fi lansat în execuţie prin două metode: • Cu un compilator. Un program compilat este rulat mult mai rapid decât un program cu interpretor (tipic de 5-10 ori mai repede. Programul PASCAL de mai jos. care este un program care converteşte întregul program sursă în limbaj de nivel înalt. for deinmultit=1 to 10 do writeln (deinmultit. BASIC (şi altele. furnizează la imprimantă o tabelă a înmulţirii: program multtable(input. într-un program cod obiect. fişierul sursă rezultat este salvat pe hardisc (dischetă). LISP. Într-un limbaj de nivel înalt programatorul scrie instrucţiunile într-o formă apropiată de limba engleză. var deinmultit. offline. 2. FORTRAN. Este lansat un editor de text (pentru a scrie programul sursă sau pentru eventuale modificări ce trebuie aduse programului sursă). de exemplu. CORAL. mai greu de utilizat. Programul sursă este tastat sau este încărcat de pe hardisc (dischetă). . FORTH. Compilatoarele sunt. este clar care linie trebuie schimbată). datorită lucrului suplimentar depus de interpretor) iar programul cod obiect compilat va fi mult mai mic decât codul unui program echivalent cu interpretor. Dacă au fost făcute modificări. • Cu un interpretor."egal".

b) interpretate Un interpretor este mai uşor de utilizat şi pentru multe aplicaţii minusul de viteză este nesemnificativ. Figura 1. FORTRAN sunt. de obicei.5. fără a-şi face probleme despre cum va executa calculatorul aceste task-uri. care poate dura câteva minute. Este încărcat de pe hardisc (dischetă) fişierul sursă. fără a "programa" calculatorul într-un sens convenţional. care poate fi salvat pe hardisc (dischetă) şi/sau rulat. Figura 1. 1. Dacă este întâlnită o eroare de execuţie.19 4. au fost scrise multe programe pentru a permite utilizatorului să definească execuţia task-urilor.7. se trece înapoi la pasul 1. PASCAL. În acestea.4. Visicalc şi programe de gestiune a bazelor de date (cum ar fi DBASE şi Data Ease). cum ar fi Lotus 123. Acestea sunt cunoscute sub numele de programe de aplicaţie şi sunt tipizate. Este încărcat de pe hardisc compilatorul şi este lansat în execuţie. Este produs un program cod obiect. compilate. 7. 6.7 prezintă simplificat modul de operare al unor limbaje de nivel înalt compilate sau interpretate. un limbaj interpretat. C. BASIC este. Programe de aplicaţie Pe măsură ce calculatoarele au devenit tot mai răspândite. Dacă este întâlnită cel puţin o eroare. utilizatorul defineşte operaţii matematice complexe sau operaţii asupra bazelor de date. . în general. se trece înapoi la etapa 1. 5. Operarea unor limbaje de nivel înalt: a) compilate. Începe compilarea.

reprezentat schematic în figura 1. b) calculator pentru control industrial Calculatorul de control din figura 1. Un calculator convenţional.8. etc. Cerinţe ale controlului industrial Controlul industrial are mai multe cerinţe diferite decât alte aplicaţii. Un sistem de control foarte mic poate avea în jur de 20 de conexiuni de I/E. Deşi câteva din acestea sunt analogice (debit. Similar.6.). Tastatura. în general. temperatură. diferite de cele dintr-un calculator de birou sau sistem. caractere sau numere (de exemplu. iar funcţiile lor vor fi. în acest caz. presiune. deşi procesarea unui număr mare de semnale de I/E poate fi făcută în PASCAL. Figura 1. dar nu e necesar. în aplicaţii diferite de cele pentru care au fost proiectate. Sistemele de dimensiuni medii au în jur de 200 de conexiuni de I/E. Diferenţa dintre calculatoarele comerciale şi cele industriale: a) calculator comercial. cu implicaţii negative asupra rezultatelor. Datele procesate sunt. acest lucru necesită conexiuni non-standard şi cutii externe. BASIC sau C. numere de articole şi cantităţi existente într-o listă de stocuri a unui magazin). aceste limbaje sunt utilizate.20 1. ieşirile sale pot fi semnale analogice şi discrete.8. majoritatea sunt bipoziţionale.a primeşte uzual datele de la tastatură şi transmite date de ieşire către un monitor sau către o imprimantă. . Similar. imprimanta şi monitorul pot exista.b este foarte diferit. Deşi există posibilitatea conectării acestor semnale la un calculator convenţional. Intrările sale provin de la un număr mare de dispozitive.8. probabil.

avem un simplu contactor al unui motor.9. Un program de control industrial rămâne rareori neschimbat de-a lungul vieţii sale. ca în figura 1.a. bitwrite(10. care dă starea 1/0 adresei N. Există întotdeauna modificări ale programelor survenite datorită modificării funcţionării instalaţiei.b. run:=((start) or (run))& stop. să se oprească) la o fracţiune de secundă după apăsarea unui buton.9 prin secvenţa: repeat start:=bitread(1). until hellfreezesover unde start. Acesta poate fi conectat la un calculator.9. Adăugarea unui al doilea buton de stop şi unui al doilea buton de start la schema din figura 1. Programul nu este prea clar. În general. dacă nu cunosc suficient de bine limbajul PASCAL ca să facă modificarea. Un operator aşteaptă ca un motor să pornească (şi. stop:=bitread(2).run). mai important. deşi sunt doar trei conexiuni. Cele două intrări sunt identificate prin adresele 1 şi 2 iar ieşirii (contactorului K1) i s-a atribuit adresa 10. Figura 1. Comparaţie între conexiunile schemelor convenţionale şi ale schemelor bazate pe calculator pentru acţionarea contactorului unui motor: a) cu un circuit convenţional. pe măsura apariţiei lor. şi o procedură de bit (M. controlul cu calculator este realizat în timp real. astfel încât calculatorul are de răspuns la evenimente aleatoare. putem reprezenta acţiunile din figura 1. var) care transmite starea variabilei de program var la adresa M. b) cu un calculator Dacă considerăm că există o funcţie logică de program (N).21 În figura 1. stop şi run sunt variabile binare.9 nu este o sarcină uşoară pentru cei de la întreţinere. Deşi calculele .9. de exemplu. Aceste modificări vor fi făcute de către personalul de întreţinere şi trebuie făcute cu întreruperi minime ale producţiei.

Un calculator industrial trebuie să fie capabil să lucreze în medii foarte neprietenoase şi să răspundă rapid în caz de întrerupere a alimentării. Ultimele consideraţii sunt legate de mediu. la 20° C şi umiditate controlată. Sursele de energie electrică dintr-un mediu industrial sunt utilizate de multe sarcini. Cu un calculator convenţional. dar într-un calculator acestea pot duce la deteriorarea datelor sau chiar la defectarea maşinii-unelte pe care o comandă calculatorul. Unele ieşiri trebuie să rămână în starea din acel moment iar altele trebuie să fie pornite sau oprite. porneşte aprinzătorul. deoarece oamenii nu lucrează bine la extreme. 47. porneşte ventilatorul. etc. Permisiunea de a porni instalaţia. de exemplu. dacă în faza de proiectare nu s-a ţinut cont de acest factor. acest lucru se poate obţine doar prin mărirea complexităţii programului.5 secunde. aşteaptă 10 secunde să se cureţe cuptorul de gaze. inacceptabile în controlul industrial [12. . la temperaturi de -10° C iarna şi +40° C vara. deschide valva pilot. ceea ce poate conduce la defectări. Timpul însuşi este o parte a strategiei de control (de exemplu. aşteaptă 0. 54]. Dacă există 10 semnale de interblocare care permit pornirea motorului. Un PC de birou lucrează într-un mediu constant. Majoritatea defectelor sunt cauzate de factori externi (limitatoare. Pentru găsirea rapidă a defectelor. Asemenea secvenţe sunt dificil de scris cu limbajele convenţionale. Proiectantul trebuie să aibă facilitatea de a defini ce se întâmplă atunci când sistemul porneşte de la rece. o diferenţă de o secundă sau două între timpii de calcul nu va fi observată de către utilizator. presiune de ungere sau temperaturi în limite admise. departe de oameni. Un calculator de sistem mare lucrează într-o încăpere cu aer condiţionat. până când operatorul ia măsurile de corecţie necesare. se poate baza pe semnale externe care implică debite de apă de răcire. însă. Aceste variaţii de temperatură conduc la dilatarea şi contracţia constantă a componentelor. Asemenea diferenţe sunt. care produc vârfuri şi armonice în tensiunile de alimentare). personalul de întreţinere trebuie să fie capabil să le verifice repede în cazul unui defect. 53. relee. probabil.) şi nu de unitatea de comandă. Pentru un om. acestea sunt percepute ca nişte licăriri de lumină.22 comerciale necesită calculatoare rapide. Un calculator industrial va trebui să lucreze. dacă există flacără deschide valva principală). personalul de întreţinere trebuie să fie capabil să monitorizeze acţiunea programului în timp ce acesta este în execuţie. care induc perturbaţii (de exemplu. motoare mari pornind şi oprindu-se sau acţionări cu tiristoare.

Praful va pătrunde în conectori şi.a. Sistemul trebuie să opereze suficient de rapid pentru controlul în timp real. pentru a uşura detecţia defectelor. Modificările de program trebuie să se poată face uşor pentru o instalaţie în modificare. dacă aceştia nu sunt de cea mai bună calitate. 6. . Acestea trebuie proiectate astfel încât să reziste în medii industriale. deoarece acesta protejează numai când uşile sunt închise). de către electricieni).1 secunde. instalaţiei şi a mediului înconjurător trebuie să fie prima prioritate. Foarte puţine procese industriale sunt curate iar praful pătrunde pretutindeni (chiar şi la un factor de protecţie IP55. Trebuie să existe posibilitatea monitorizării funcţionării instalaţiei în timpul funcţionării (on-line). Trebuie ştiut că majoritatea defectelor apar la echipamentele externe (cum ar fi microîntrerupătoarele montate pe instalaţie. senzorii şi elementele de execuţie) şi trebuie să fie posibilă observarea funcţionării acestora de la calculatorul de comandă. dar acesta poate varia în funcţie de aplicaţie şi de calculatorul utilizat. 3. Extensia numărului de I/E trebuie să fie simplă şi rapidă. folosite de anumite categorii profesionale cu scopul de a se distinge de masa vorbitorilor . În practică.c. 5. echipamentelor. 7. adică faţă de cuvintele pretenţioase specifice. murdărie şi slaba calitate a alimentării principale. Siguranţa personalului. Cerinţele noastre în privinţa calculatoarelor din controlul industrial sunt foarte ridicate şi merită reamintite: 1. sau 220 V c. vor putea apare defecte intermitente. Să fie capabile să proceseze semnale de I/E pe bit la tensiuni utilizate în industrie (24 V c. rezultatul poate consta în pagube şi accidente. din alte limbi. de obicei. 4. Când un calculator ce conduce o instalaţie se defectează sau când programatorul nu înţelege modul de funcţionare al instalaţiei. Limbajul de programare trebuie să fie uşor de înţeles de către personalul de întreţinere (de exemplu. care sunt foarte greu de detectat. o eroare de programare sau un defect al calculatorului pot fi costisitoare şi deranjante. Utilizatorul trebuie să fie protejat faţă de jargonul calculatorului. 2. În majoritatea aplicaţiilor în care se utilizează calculatoare.23 La aceste modificări de temperatură se adaugă praful şi mizeria. împrumutate. "suficient de rapid" înseamnă un timp de răspuns de aproximativ 0. care nu au antrenament pe calculator. cu tot ceea ce implică aceasta pentru temperatură.) şi semnale de I/E analogice.

Automatele programabile Automatele programabile constituie o clasă aparte în familia echipamentelor utilizate pentru controlul industrial. şi 32 semnale de ieşire în c..1. Modicon) şi Allen Bradley. numit procesor central.c.. trei module de intrări de c. au răspuns la specificaţia firmei General Motors. nu este obligatorie utilizarea tuturor acestora. Fiecare a produs câte un calculator ce corespundea specificaţiei. Bedford Associates (devenită. Un SB cu 8 module poate fi astfel conectat la 128 de dispozitive. 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 1969 a produs o specificaţie pentru un calculator industrial similar celei expuse în paragraful anterior.7.b utilizatorul a instalat un modul de intrări de c. Ele asociază limbaje de programare adecvate modului de lucru al practicienilor din acest domeniu şi un domeniu de aplicaţii industriale extrem de vast. un modul de ieşiri de c.24 1. Fiecare modul poate citi 16 intrări sau poate acţiona 16 ieşiri. peste 80 % din necesităţile în materie de control pot fi acoperite de către AP! 1.a. Bineînţeles.10. similar celui din figura 1. El a fost denumit automat programabil şi avea 128 de I/E. UCP are astfel acces la toţi senzorii şi elementele de execuţie ale procesului. ulterior. În aceste prime sisteme existau patru tipuri diferite de module: de intrări discrete. şi două module de ieşiri de c. Acest SB poate fi astfel conectat la 16 semnale de intrare în c. În figura 1. Calculatorul însuşi. Scurt istoric La sfârşitul anilor ’60 producătorul american de automobile General Motors a fost interesat de utilizarea calculatoarelor la înlocuirea schemelor convenţionale cu relee utilizate în controlul uzinelor sale automate de producere a automobilelor.c. . Este foarte important modul de alocare a modulelor la alegerea utilizatorului.7.c.. 16 semnale de ieşire în c.a. 1koctet memorie program şi un set de instrucţiuni logice.c. astfel încât să se permită o cât mai mare flexibilitate. şi care avea puţine asemănări cu calculatoarele comerciale de astăzi.10..a.a.. Două companii independente. de ieşiri discrete. Se estimează că în producţia manufacturieră. 48 semnale de intrare în c. Ele încorporează într-o structură robustă o UCP (sau mai multe) şi dispozitivele de interfaţare cu semnalele din proces şi cu operatorul. de intrări analogice şi de ieşiri analogice. lăsând o poziţie de rezervă pentru extensii ulterioare.a.

cu intrările (de la limitatoare.11 arată modul de comandă al unui cilindru hidraulic acţionat prin butoane. temporizatoare.11. şi cu ieşirile (către bobine.10. ale căror taste au simbolurile (contacte normal deschise / normal închise. becuri.25 Figura 1. Cursa sa este determinată de limitatoare care se deschid la sfârşitul cursei şi de bobine care pot fi comandate doar dacă pompa hidraulică merge. butoane.) reprezentate prin bobine de relee. ramificaţii. Părţile componente ale unui sistem cu AP: a) unul din primele sisteme cu AP.b. care este identic cu circuitul cu relee necesar pentru a comanda cilindrul. 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.) reprezentate prin contacte de releu. Figura 1. Această funcţionare este controlată prin programul din figura 1. etc. bobine. contactoare. Programul este introdus printr-un terminal de programare (sau consolă de programare). . Aceste programe arată ca treptele unei scări şi au fost denumite diagrame logice scară (de la Relay Ladder Logic). etc. numărătoare.

Din nefericire. Programul. aceasta este bazată pe simbolurile americane: simbolul -] [.arată că semnalul nu trebuie să fie prezent Memoria este protejată cu baterii.11. în ultimii ani literele PC sunt utilizate pentru . fapt care permite utilizarea unor programe diferite asupra unor produse diferite. afişat pe display.) cu care un electrician de întreţinere este familiarizat. Programele pot fi păstrate pe suport magnetic. b) diagrama logică scară pentru comanda cilindrului. Figura 1. Semnificaţia tuturor tastelor trebuie să fie evidentă. Numele dat acestor echipamente a fost "controler programabil" sau "automat programabil" (de la Programmable Controller . Numele de "controler logic programabil" sau PLC (de la Programmable Logic Controller) a fost de asemenea utilizat. permiţând utilizarea terminalului de programare la depanare. va ilumina contactele şi releele activate. dar este o marcă înregistrată a firmei Allen Bradley. O aplicaţie simplă cu AP: a) cilindru hidraulic comandat cu AP.arată că semnalul trebuie să fie prezent iar simbolul -]/[.26 etc. pentru a preveni deteriorarea sau pierderea programelor la căderea alimentării.PC).

sub presiunea utilizatorilor. Trebuie observat că. ci şi aspectele materiale. Acest lucru a condus. Şi AP au contribuit la deschiderea căii către controlul distribuit. etc. interconectate prin reţele de comunicaţie. Pe baza acestei experienţe. modul lor de programare a rămas specific. a comenzii axelor. AP au ieşit rapid din câmpul de aplicaţii iniţial (pur logic) prin integrarea operaţiilor aritmetice. la rândul său. După apariţia AP bazate pe microprocesoare şi după scăderea. Pentru a elimina confuzia vom utiliza denumirile "automat programabil" pentru PLC şi "calculator personal" pentru PC. a vitezei (prin paralelismul operaţiilor) şi la reducerea costului cablării (cu condiţia de a putea plasa fiecare AP în imediata vecinătate a procesului comandat de el). capabile să rezolve într-o manieră eficientă şi rentabilă o gamă largă de probleme de control. a tehnicilor de manipulare a şirurilor de caractere. acompaniat de o dinamică inovatoare remarcabilă. dispozitive de siguranţă în cazul variaţiilor sau întreruperilor tensiunii de alimentare. Odată apărute primele microprocesoare. producând confuzie în lumea automatelor programabile şi a calculatoarelor personale. de la cele mai simple (câteva I/E) la cele mai complicate (sute sau mii de I/E). apropiat modului de gândire al automatiştilor. Constructorii de AP au putut astfel dezvolta familii omogene de AP. ele au fost utilizate pentru simplificarea conceperii procesoarelor pentru AP. protecţie la fenomenele electromagnetice. Se observă că AP au fost de la bun început şi rămân în continuare echipamente concepute de automatişti pentru automatişti. rezistenţă la şocuri. Perfecta lor adaptare la nevoile industriale este consecinţa cea mai importantă. Primele AP aveau UCP cablată şi erau relativ scumpe. Această adaptare acoperă nu numai aspectul programării lor. Toate aceste consideraţii explică pătrunderea în forţă a AP în industrie. tot ei au devenit membrii cei mai . în consecinţă. a regulatoarelor PID. a costului lor. Pe de altă parte.27 a desemna calculatoarele personale. la vibraţii şi la coroziune. a apărut tendinţa de a distribui sarcinile controlului între mai multe AP de capacitate mai mică. toţi producătorii de AP şi-au creat propriile lor reţele de comunicaţie. deoarece acestea din urmă pot fi utilizate acum ca şi terminale de programare. Practic. ritmul anual de creştere a utilizării lor în industrie fiind de 20-30 % (!). AP sunt perfect adaptate mediilor industriale: I/E în conformitate cu standardele semnalelor industriale. la îmbunătăţirea fiabilităţii (defectarea unui AP are consecinţe limitate). deşi posibilităţile AP sunt apropiate de cele ale calculatoarelor convenţionale.

7. propriile sale reţele de comunicaţie. propriul său mediu de programare. 1. deoarece trecerea de la o marcă de AP la alta necesită un efort mare în ce priveşte instruirea întregului personal implicat.d. 1. Aceste norme vizau următoarele aspecte: .IEC 1131-4: recomandări pentru utilizatori . Acum. Primele acţiuni au fost îndreptate înspre sistemele de comunicaţie pentru a obţine compatibilitatea între AP diferite. A rezultat o "fidelizare" forţată a utilizatorilor. piaţa s-a decantat considerabil. normalizarea menţionată în paragraful anterior deschide piaţa controlului industrial unor protagonişti noi. menţionat anterior. de creare a unui standard internaţional de comunicaţie. care acum au devenit realitate (vezi capitolul 7).IEC 1131-3: limbajele de programare . utilizatorul alege un AP pe baza renumelui producătorului şi a calităţii reprezentanţei locale a acestuia (în special în ce priveşte partea de service).IEC 1131-1: informaţii generale . Comisia Internaţională de Electrotehnică (International Electrotechnical Comission – IEC) a elaborat norme specifice automatelor programabile în standardul IEC 1131. au fost întreprinse eforturi în direcţia normalizării (standardizării). Normalizarea La nivelul exploatării AP. Pe lângă constructorii de AP recunoscuţi. Tendinţe ale pieţei În ultimii ani. Diferiţii producători de AP pot avea medii de programare diferite.2.. cum ar fi PROFIBUS. Pe lângă proiectul MAP. În primul rând. normalizarea a consolidat poziţia proiectanţilor de .3.m. ş. până la începutul anilor ’90 a existat o situaţie similară celei apărute în informatică în anii '80.7.IEC 1131-5: specificaţii referitoare la comunicaţii Aceste standarde nu intenţionează să impună un stil rigid. ASI. rămânând un număr relativ mic de firme constructoare de AP.28 activi ai proiectului MAP [2]. etc. când fiecare constructor propunea propriile sale limbaje de programare.IEC 1131-2: specificaţia şi testarea echipamentelor .a. au existat propuneri pentru reţele de teren. sau cel puţin interoperabilitatea lor. În 1993. dar elementele conceptuale trebuie să fie aceleaşi. Pentru a se depăşi această situaţie.

descoperind astfel avantajele simbiozei dintre AP şi calculatoarele convenţionale. etc. Avantajul acestei soluţii constă în faptul PC-urile sunt prevăzute cu periferice standard (discuri. fapt util în multe aplicaţii practice.29 programe de AP. în paralel ele au activat şi în domeniul programării calculatoarelor convenţionale. care dispun acum de o bază de lucru solidă şi recunoscută universal. Aceasta permite o asociere armonioasă a funcţiilor de automatizare clasice şi a funcţiilor specifice programelor în limbaje de nivel înalt. . monitoare. aceştia trebuiau să conceapă ei înşişi metodologii de programare şi să convingă potenţialii clienţi să le accepte. Înainte de standardizare. Deşi scopul principal al acestor firme a rămas programarea AP. cu toate riscurile pentru aceştia din urmă în cazul dispariţiei firmelor de proiectare.) şi cu executive în timp real şi în multitasking.

Acesta are rolul de a încorpora în sloturile sale modulele din configuraţia sistemului într-o formă compactă şi de a asigura comunicaţia între acestea. un număr de puncte de ieşire (prin care sunt transmise comenzile spre elementele de execuţie şi semnalizările spre operator) şi interfeţe seriale şi/sau paralele pentru conectarea AP cu dispozitive de programare. de ordinul zecilor). 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. AP compacte au o structură fixă. AP pot fi de trei tipuri: compacte. UCP (+ memoria). Figura 2. Hardware-ul unui AP constă într-o UCP bazată pe microprocesor (sau microcontroler). unele AP nu necesită modul de interfaţare. Unele SB încorporează şi sursele de alimentare necesare funcţionării modulelor. ce nu poate fi modificată sau extinsă de către utilizator. o memorie.30 CAPITOLUL 2 STRUCTURA AUTOMATELOR PROGRAMABILE 2. Un exemplu în . Este cazul AP mici (cu număr mic de puncte de I/E. Ele fac parte din marea familie a sistemelor de control distribuite şi sunt sisteme de control în timp real. cu calculatoare PC sau cu alte AP [39]. În funcţie de gradul de flexibilitate. Prezentare generală a automatelor programabile Aşa cum s-a menţionat în capitolul anterior. AP sunt sisteme de calcul special proiectate pentru controlul proceselor. Alte modele de SB nu conţin aceste surse. un număr de puncte de intrare (prin care se primesc semnalele ce parvin de la senzori şi de la operator). întrucât modulul UC încorporează şi circuitele de interfaţă.1. De asemenea.1 ilustrează o structură tipică de AP. base). dar permit instalarea unor module ce conţin aceste surse. compacte extensibile şi modulare.

din care proiectantul poate "croi" un sistem cât mai apropiat de cerinţele aplicaţiei considerate. 58. cu un număr de puncte de I/E de ordinul sutelor. Figura 2. Structură tipică de AP AP modulare oferă cea mai mare flexibilitate. Aceştia din urmă vor alege acele componente ale sistemului care corespund necesităţilor aplicaţiei considerate. PLC – 5 al firmei Allen Bradley. Din punct de vedere al numărului de puncte de I/E. etc) şi de SB. şi anume flexibilitatea lor: ele pot fi configurate în funcţie de specificul aplicaţiei. 63. 69. cele din seria FX2N a firmei Mitsubishi) permit adăugarea la un AP compact (denumit base unit) a unui număr limitat de module de I/E. 67. 59. AP modulare se înscriu în clasa AP medii şi mari (cu mii de puncte de I/E). produse de către Allen Bradley. 70. cu exemplificări pentru câteva tipuri de AP considerate reprezentative [18. AP de acest tip fac parte din clasa AP medii. SB. Fiecare producător de AP pune la dispoziţia utilizatorului o gamă largă de surse de alimentare. 71].1. 57. 64. Exemple de AP din această clasă sunt SIMATIC S5 al firmei Siemens. pentru a adapta structura acestuia la necesităţile aplicaţiei. 56. Există o mare varietate de module din fiecare tip (UCP. 68. De aici reiese unul din marile avantaje ale AP. AP compacte extensibile (de exemplu. de I/E. . etc.31 acest sens îl reprezintă AP din familia Micrologix. Operaţiunea de selecţie a modulelor şi SB în funcţie de cerinţele aplicaţiei se numeşte configurare. În continuarea capitolului sunt discutate în detaliu aspectele prezentate în acest paragraf. module UCP şi de interfaţare şi module de I/E.

2. Diferenţele de potenţial între masa AP şi a instalaţiei pot. suficiente motive pentru separarea tensiunilor de alimentare ale instalaţiei şi ale AP printr-un fel de barieră electrică. Aceasta dă certitudinea că AP nu va fi afectat de nici un eveniment apărut în instalaţie. Module de I/E După cum s-a arătat în primul capitol.a).c. deci. Există. 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. În plus. 110 V. Problema zgomotelor va fi discutată în detaliu în capitolul 9. Chiar şi un defect de cablu care va pune 380 V c. de asemenea. ireparabile în partea electronică a AP.32 2. care formează un optocuplor sau optoizolator. modulele de I/E au rolul de a asigura transferul semnalelor între AP şi instalaţie. şi datorită zgomotelor electrice provenite de la vârfurile de tensiune pe liniile de semnal sau de la curenţii de pe liniile de Nul c. pe un modul de intrări de c. În acest capitol vor fi discutate modulele de I/E discrete.2.a. probabil. AP şi celelalte module de I/E nu vor avea de suferit.2. Module de intrări discrete Modulele de intrări discrete servesc la conectarea la AP a semnalelor ce provin de la senzori cu două stări: butoane.1. utilizând şuruburi sau conectori. 2. 220 V c. va afecta doar modulul de intrare. cele analogice făcând obiectul capitolului 6. ca în figura 2. în funcţie de tipul terminalelor modulelor de I/E. AP operează în interior la +5 Vcc iar dispozitivele ce furnizează semnalele de intrare pot opera la tensiuni diferite. Semnalele sunt. Când curentul trece prin dioda D1. Pot interveni probleme. prezentaţi în figura 2.c.a. sau – c. 24 V. Semnalele din proces se conectează la modulele de I/E prin cabluri individuale sau multifilare. mai puţin evidente. Acest lucru este realizat prin intermediul unor izolatori optici (un LED şi un fototranzistor. În funcţiei de tipul semnalelor electrice transferate. modulele de I/E pot fi de două feluri: discrete şi analogice. la diverse nivele (5 V. microîntrerupătoare.a. Combinarea acestor două tensiuni poate cauza pagube mari şi. sau c.c. Modulele de intrare colectează semnalele ce provin de la senzorii instalaţiei şi de la comenzile operatorului iar modulele de ieşire transmit comenzile generate de către programul AP către elementele de execuţie ale instalaţiei şi către confirmările/semnalizările operatorului. etc. limitatoare. de regulă. tensiuni continue sau alternative. aceasta emite .3. cauza probleme.).

Izolarea optică a intrărilor: a) un izolator optic.. c) un modul de intrări în c.a.c. b) un modul de intrări în c.3. cauzând comutarea tranzistorului TR1 din blocat în saturat. este obţinută o izolare electrică foarte bună (tipic 1-4 kV).33 lumină. . Figura 2. Deoarece nu există conexiuni electrice între diodă şi tranzistor. Figura 2. Protecţia AP faţă de defectele externe.2. Sursa de alimentare a AP (L1/N1) este separată faţă de alimentarea instalaţiei (L2/N2).

3. Când butonul este apăsat.2. Un modul de intrare şi conectarea intrărilor la modul O structură posibilă de circuit de intrare în c. Figura 2. astfel. Rezistorul R2 şi condensatorul C1 formează un filtru (cu o constantă de timp de aproximativ 50 ms). curentul va trece prin dioda D1. pentru a se putea furniza un semnal "curat" către AP. sunt disponibile. 24-50 V. Rezistorul R1 fixează tensiunea intrării. uzual. este prezentată în figura 2.c.4 prezintă un modul de intrare care poate recepţiona opt semnale de intrare. prin buffer semnalul "1" către logica internă a AP. Module de ieşiri discrete Modulele de ieşiri discrete servesc la transmiterea comenzilor generate de programul AP spre elementele de execuţie bipoziţionale (relee. cauzând comutarea tranzistorului TR1. poate fi obţinută ca în figura 2. 12-24 V.c.b.a. lampa LP1 lucrează ca un indicator de semnal de intrare pentru detecţia defectelor iar rezistorul R3 fixează gama de tensiune.2.4.c.c.3. transmiţând. (TTL). în trei game de tensiune: 5 V c. Figura 2. Dioda D2 este un LED utilizat în detecţia defectelor externe şi pentru a arăta când este prezent semnalul de intrare. Modulele de intrări în c. . Puntea redresoare este utilizată pentru conversia curentului alternativ în curent continuu complet redresat. 2.34 O intrare de c. Ca şi mai înainte.

35 contactoare.5.). la nivelele de tensiune necesare. De regulă. etc. b) modul cu ieşiri cu surse separate . aceste module necesită utilizarea unor surse externe pentru comanda elementelor de execuţie. Figura 2. Tipuri de module de ieşire: a) modul cu ieşiri cu sursă comună. becuri de semnalizare.

denumit "selectivitate". După cum reiese din figura 2. . o barieră pentru a limita neajunsurile datorate defectelor inevitabile ale instalaţiei şi pentru a opri zgomotele electrice. Starea ieşirii poate fi urmărită pe LED1. unde fiecare contactor are o sursă internă de 110 V separată. Frecvent. Acest aspect. o sarcină inductivă (bobina unui releu) poate cauza interferenţe (scântei). care conduc la defectarea prematură a contactului. Un releu este un dispozitiv electromagnetic cu părţi în mişcare şi. sarcinile externe sunt inductive (de exemplu. dar este separată de sursa AP. Există două tipuri de bază de module de ieşire. de exemplu. care este conectată la AP.a opt ieşiri sunt alimentate de la o sursă comună.5. dar ele nu sunt foarte utilizate. dezactivând toate ieşirile. ca în figura 2. Mai mult. care reduce amplitudinea vârfurilor întâlnite la sarcinile inductive. să ardă fuzibilul FS3 dar să nu deterioreze alimentarea întregului modul. deseori. este discutat în capitolul 9. Este utilizată din nou izolarea optică pentru a obţine separarea între instalaţie şi AP. Figura 2.6.a prezintă o ieşire care generează curent (source output).a nu poate fi utilizată aici fără separarea contactelor releelor interne acţionate de AP. are ieşiri şi protecţii individuale şi se comportă exact ca un comutator.36 Conexiunile de ieşire necesită. Acesta poate fi conectat direct la orice circuit din exterior. Un exemplu tipic este comanda din diferite locuri a unui motor. În figura 2. de asemenea.5. Dacă sunt utilizate tranzistoare npn. cu o viaţă limitată. deoarece modulele de ieşire controlează curenţi mari şi.5. În figura 2. De exemplu. un AP trebuie să acţioneze ieşiri care au alimentări proprii. prezentat în figura 2. sunt disponibile ieşiri pe releu (care dau şi izolaţia dorită). Această structură permite cea mai simplă şi mai ieftină instalare. Interferenţa poate fi o mare problemă a ieşirilor.b arată acest efect. care "deranjează" procesorul. un modul cu 8 ieşiri izolate poate primi pe terminalele sale tensiuni diferite din 8 direcţii diferite.b. Este important să se proiecteze sistemul astfel încât un defect pe terminalul 3.c.6. derivată de la barele de 380 V.6 este prezentat un circuit de ieşire pe tranzistor.5. Dezavantajul constă în faptul că modulul este mai complicat (două conexiuni/ieşire) şi trebuie luată în considerare protecţia muncii. Figura 2. Dioda D1 se comportă ca o diodă de tăiere a vârfurilor. deci.6. bobine). Un modul de ieşiri izolate. Dispunerea din figura 2. Un dispozitiv pur electronic este mult mai fiabil. rezultă un canal de ieşire care absoarbe curent (sink output). Fiecare ieşire are un fuzibil de protecţie propriu pe modul şi o siguranţă sau întreruptor pe circuitul comun.

Circuite de ieşire în c. externe..c) una din bornele sarcinii se conectează la borna (+) a sursei de c.37 Figura 2. externe. un circuit tipic fiind prezentat în figura 2.în cazul absorbţiei de curent (figura 2.6.a) una din bornele sarcinii se leagă la borna (-) a sursei de c. Un modul de ieşiri în c.7.c. Triacele au avantajul că se dezactivează la trecerea prin zero a curentului prin sarcină. c) curentul de intrare prin circuit Informaţia că o ieşire generează curent sau absoarbe curent este necesară pentru a şti cum să se conecteze sarcina la sursa de c.6.în cazul generării de curent (figura 2. . cealaltă bornă a sarcinii se leagă.c. aşa cum reiese din figura 2.a.c. evident. la modulul de ieşire. b) tensiunea în punctul X – efectul diodei de tăiere a vârfurilor. ceea ce elimină interferenţele provocate la dezactivarea sarcinilor inductive.6.7. .b.: a) curentul de ieşire într-un circuit de c.c.c. utilizează de obicei triace.a. externă: .

mai degrabă.a.: a) starea ieşirii în c. ar trebui să fie acţionate cu triace. în practică este bine să se reducă curentul total pe modul prin conectarea unor ieşiri care nu pot fi activate simultan (de exemplu. În prima fază.3. de traseele de pe cablajul imprimat decât de dispozitivele de ieşire. rapid/încet. În general. Identificarea adreselor de I/E În programele de AP.a. Există fixat şi un curent maxim pe fiecare ieşire (tipic 2A) şi un curent total pe modul (tipic 6A). etc. fiecărui modul de I/E îi revine un grup de . – faptul că ieşirea generează/consumă curent este irelevant la ieşirile în c. b) efectul ieşirii pe triac Un modul de ieşire va avea o limită maximă a curentului pe care îl poate suporta. Uzual. înainte/înapoi. punctele de I/E sunt "văzute" sub forma unor adrese.). curentul total permis pe modul este mai mic decât suma curenţilor individuali permişi de ieşiri. De aceea.7.a. Circuit de ieşiri în c. şi mai puţin cu relee.. 2. determinat.38 Dacă este posibil.a. Figura 2. acestea nu pot fi alocate direct de către proiectant punctelor de I/E. toate sarcinile în c.

un semnal de I/E este identificat prin poziţia sa fizică într-un anumit SB sau şir de cleme. proiectantul va atribui fiecărui punct de I/E câte o adresă unică din grupul de adrese ce revine modulului considerat. Deci. SB care conţine procesorul este automat definit ca SB 0. probabil. Există trei moduri diferite în care pot fi configurate SB Allen Bradley. Prin urmare. punctul de I/E prin care acesta este conectat la AP şi adresa de I/E care este utilizată în program pentru fiecare semnal.3. grupate în perechi. Fiecare SB conţine 16 poziţii pentru module. .8 slotul 1 conţine un modul de intrare pe 16 puncte şi un modul de ieşire pe 16 puncte iar slotul 2 conţine două module de ieşire pe 8 puncte. un SB conţine 8 sloturi. prin poziţia modulului în acest sertar şi prin numărul de ordine al bornei modulului la care este conectat semnalul. întrun locaş denumit slot. Motivele pentru care modulele pe 8 puncte pot fi preferabile celor pe 16 puncte sunt discutate în capitolul 9. aceste adrese se numesc adrese hardware. Allen Bradley utilizează adresarea biţilor în octal. în figura 2. adresele celorlalte SB (în gama 1÷7) putând fi alocate de către proiectanţi prin switch-uri (comutatoare) de setare [58. Un slot poate conţine un modul de intrare pe 16 puncte şi un modul de ieşire pe 16 puncte sau două module pe 8 puncte (nu neapărat de acelaşi tip). Adresa I: 27/14 reprezintă intrarea 14 din slotul 7 al SB 2. astfel că numerele disponibile sunt 00÷07 şi 10÷17. Adresarea intrărilor este: I: Sertar Slot/Bit unde Bit este de două cifre.39 adrese determinat de poziţia modulului în SB. 2. Adresarea I/E la AP PLC-5 al firmei Allen Bradley Acest AP poate avea până la 8 SB în versiunea 5/25.1. Deci. De exemplu. numerotate 0÷7. Conectarea unui semnal la un alt punct de I/E atrage după sine modificarea adresei semnalului respectiv. Aici va fi discutată cea mai simplă (şi. la majoritatea producătorilor adresarea I/E este uzual bazată pe ideea sertar de bază/modul/bit. cea mai logică) metodă. 71]. Apoi. Aceste SB sunt conectate la procesor la distanţă printr-un cablu de comunicaţie serială. De aceea.În continuare vor fi prezentate câteva exemple în acest sens. Din acest moment se crează o relaţie unică între fiecare semnal din proces.

SB locale sunt mai rapide şi înlătură unele probleme datorate ciclului program.6 este ieşirea cu adresa de bit 6 din octetul 63. care apar la SB comandate la distanţă prin cablu serial. Siemens utilizează sloturi pentru instalarea modulelor într-unul sau mai multe SB.4 este. o intrare şi o ieşire pot avea aceeaşi adresă Sertar Slot/Bit.40 Figura 2. fiind diferenţiate doar de "I:" sau de "O:". Modulele disponibile au 16 biţi (2 octeţi) sau 32 biţi (4 octeţi). Ele nu pot fi mai departe de câţiva metri de procesor. Ca şi Allen Bradley.10. numite octeţi [3. 2.<bit> iar ieşirile sunt notate prin Q<octet>. 4 octeţi sunt atribuiţi secvenţial fiecărui slot. Dispunerea modulelor de I/E la PLC-5 Allen Bradley Ieşirile sunt adresate într-o manieră similară: O: Sertar Slot/Bit astfel că O:35/06 este ieşirea 6 din slotul 5 al SB 3.8.3. intrarea cu adresa de bit 4 din octetul 9 iar Q 63. Un sistem poate fi construit cu SB locale conectate prin cablu de interfaţare paralelă sau cu SB comandate la distanţă prin cablu serial. 69].2. prezentată în figura 2. deci. în cazul aplicaţiilor de mare viteză. I 9. dar sunt totuşi locale.<bit>. Cu module pe 8 puncte adresele de I/E nu vor mai putea fi aceleaşi. Un semnal este identificat prin numărul său de bit (0÷7) şi numărul său de octet (0÷127).a. Figura 2. Cea mai simplă formă de adresare este cu adresare fixă a sloturilor. Se observă că dacă se utilizează module pe 16 puncte.9 arată cum se adresează diverse semnale. Intrările sunt notate I<octet>. 0÷3 . 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 biţi.

4 este. deci. bitul 4 din primul octet al modulului din slotul 3 al primului SB. Dacă sunt utilizate module de 16 biţi (2 octeţi) cu adresare fixă (4 octeţi).9. Identificarea semnalelor instalaţiei Figura 2. Figura 2. cei doi octeţi mai semnificativi din fiecare slot sunt pierduţi. Adresarea secvenţială nu este obligatorie.a. Intrarea I 12. . Adresele şi numărul octeţilor (2 sau 4) pe modul sunt setate prin switch-uri.41 pentru primul slot.m.10. ş. dar este recomandabilă. Dispunerea modulelor la Siemens: a) adresare fixă a sloturilor.d. b) adresarea variabilă a sloturilor. 4÷7 pentru al doilea.

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 octeţi pentru modulele pe 16 biţi sau 4 octeţi pentru modulele pe 32 biţi) pot fi setate independent pentru fiecare slot prin switch-urile din modulul adaptor al fiecărui SB. Deşi poate fi setată orice combinaţie din cele permise, este recomandată utilizarea unei ordonări logice, similară celei din figura 2.10.b. Siemens utilizează notaţii diferite pentru ţări diferite, prin terminale de programare multilimbaj. Un standard comun european este cel german, unde E (Eingang = intrare) este utilizat pentru intrări (de exemplu, E 4.7) iar A (Ausgang = ieşire) este utilizat pentru ieşiri (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 funcţie de SB, sloturi şi biţi. SB ce înglobează procesorul poate conţine 8 poziţii pentru module iar I/E adiţionale pot fi conectate în SB cu 12 poziţii, local (lângă procesor) printr-un cablu panglică (iar I/E vor fi de bază) sau la distanţă, printr-un cablu serial [64]. Când este necesar un număr mic de I/E la distanţă pot fi utilizate unităţi compacte cu 8 intrări/8 ieşiri. Figura 2.11 prezintă structura unui sistem GEM-80.

Figura 2.11. Structura unui sistem GEM-80 Pe lângă 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 unităţi inteligente GEM.

43

Figura 2.12. Adresarea I/E la GEM-80 cu module pe 8 biţi I/E sunt adresate prin cuvinte de 16 biţi, un cuvânt corespunzând la 1 sau 2 poziţii de module, cu prefixul A pentru intrări şi B pentru ieşiri. Adresele de bit sunt alocate în zecimal de la 0 la 15. Deci, A 2.13 este bitul de intrare 13 din cuvântul 2 iar B 7.05 este bitul de ieşire 5 din cuvântul 7 (vezi figura 2.12). Un cuvânt poate fi numai intrare sau numai ieşire. Nu este permisă duplicarea cuvintelor de adresă. Modulele de I/E sunt disponibile pe 8 biţi, 16 biţi şi 32 biţi, astfel că un slot în care este doar un modul poate fi o jumătate de cuvânt, un cuvânt sau 2 cuvinte, în funcţie de modulele utilizate. Adresele de slot individuale pot fi setate prin switch-uri rotative fixate pe panoul din spatele fiecărui SB. Utilizatorul are o libertate mai mare sau mai mică în alegerea adreselor, dar, de obicei, este mai bine să se utilizeze o logică secvenţială. 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 decât oricare din cele discutate până 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 până acum ar putea fi reprezentate prin limbajul BASIC, atunci pentru AP Master al firmei ABB ar corespunde limbajele PASCAL sau C. Comparaţia este mai exactă decât pare. BASIC este uşor şi rapid de utilizat, dar poate degenera în programe neperformante, dacă nu sunt luate precauţii suplimentare. PASCAL şi C sunt mai puternice, dar totul trebuie declarat iar limbajul impune utilizatorului organizarea şi structurarea programului. Sistemul Master este prevăzut 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 conectând modulul la magistrala procesorului iar cel de jos conectând modulul la un bloc separat de terminale (unul pe modul, montat pe partea din spate). Modulele de I/E nu sunt identificate prin poziţia lor în SB, ci prin adresa setată pe modul printr-o mufă mică cu terminale cositorite. Deci, adresele de I/E nu reflectă poziţia modulului iar un modul poate fi, teoretic, mutat (împreună cu conectorul de jos) fără 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 organizării programului de AP. Acesta este modularizat, aşa cum vom vedea mai târziu, iar utilizatorul poate specifica diverse frecvenţe de rulare (execuţie) 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 intrări discrete)

Cele 24 de intrări sunt notate X400÷X427. Adresarea I/E la AP APC700 al firmei IPA S. 1 intrare analogică şi o ieşire analogică. 2. Adresarea memoriei interne de un bit Pe lângă I/E. iar cele 16 ieşiri sunt notate Y430÷Y447. 32 ieşiri discrete. Numerele. Intrările sunt adresate sub forma I <octet>:<bit> (de exemplu. 2. Adrese similare sunt utilizate şi în sistemele mai mari ale seriei. sursă de alimentare şi procesor. APC 700 EXTENSIE are 48 intrări discrete. APC 701 EXTENSIE e. are 24 de intrări şi 16 ieşiri (este caracteristic proceselor unde proporţia I/E este 3:2). Există două nivele de definire. Cea mai mică unitate. Bucureşti Această famile de AP este constituită din următoarele modele [59]: a. APC 700 EXTENSIE c. iar nivelele inferioare (2) dau relaţii despre fiecare canal al plăcii. 16 ieşiri discrete.c arată baza de date pentru un modul de intrare. cum ar fi numele şi dacă semnalul trebuie inversat sau nu. "sistem fără defect". Baza de date conţine detalii despre toate I/E care pot fi adresate apoi în program fie prin identificatorul bazei de date (de exemplu. Pompă hidraulică 2 pornită prin butonul PB).3. APC 700 b.6. 2 intrări analogice şi 2 ieşiri analogice. toate înglobate într-o singură unitate [67].45 Figura 2. Nivelul superior (1) dă detalii asupra plăcii însăşi. Q 1:7).13. Adresarea I/E la AP F2 al firmei Mitsubishi F2 al firmei Mitsubishi este un exemplu tipic de AP mic. DI 3. în octal.3. F2-40M. corespund direct locaţiilor de memorie unde sunt păstrate imaginile intrărilor şi ieşirilor.4. aparent arbitrare. "defect la partea . APC 702 EXTENSIE APC 700 are 24 intrări discrete. cum ar fi tipul modulului şi adresa (posibil şi rata de scanare). fie prin numele său unic (de exemplu. 2.1). APC 701 d. APC 702 f.A. Celelalte patru modele au un număr de I/E comparabil cu al primelor două modele.5. I 2:3) iar ieşirile sub forma Q <octet>:<bit> (de exemplu. un AP are nevoie să memoreze semnale interne pentru date cum ar fi "pompa funcţionează". cu conexiuni de I/E.

desigur. de exemplu F 27. G 52.A. Ulterior. GEM-80 are o varietate de spaţii generale de lucru. B înseamnă memoria de un bit iar 3 este obligatoriu şi apare atunci când PLC-5 memorează date în fişiere. cu nnn=100÷377 în octal. Ar fi foarte costisitor să se aloce ieşiri adevărate pentru aceste semnale. În altele. adică execuţiile aceluiaşi program se succed în timp. B 3/192). programele de aplicaţie sunt executate de către toate AP într-o manieră ciclică.numărătoarele sunt constituite în fişierul 5 (C5) aşa cum se va vedea mai târziu. 2. această funcţie fiind îndeplinită de elementele şi conexiunile din interiorul bazei sale de date şi de către limbajul de programare. Limbajul de programare al AP Master al firmei ABB nu necesită neapărat memorii interne de un bit.03) memorează starea sa când procesorul este oprit sau când alimentarea este întreruptă. Mitsubishi utilizează notaţia Mnnn pentru adresă. O execuţie a programului de aplicaţie se numeşte ciclu program.46 de ungere". La primele modele de AP execuţia programelor era liniară.bit (de exemplu. Notaţia la Siemens este F octet. Adresele utilizate în programe variază. Cel mai utilizat este numit tabela G şi în program apare ca G cuvânt. structura memoriei este fixă şi nu poate fi definită de utilizator. de la producător la producător. ca "relee auxiliare" (Mitsubishi). etc. Tabela G este ştearsă când AP trece din starea "oprit" către starea "execuţie". R 12. Ca la majoritatea AP mici. Execuţia programelor În esenţă.5. "spaţiu general de lucru" (GEM-80) şi "memorie de un bit" (Allen Bradley). mai mari. utilizatorul poate defini orice număr necesar de locaţii de memorie. Memoria de bit la PLC-5 este notată prin B 3/n (de exemplu. Acestea sunt cunoscute sub diverse nume. unde n desemnează semnalul (bitul). Astfel: . ramificaţiile de program nefiind posibile.memoriile de un bit sunt constituite în fişierul 3 (B3) . La APC 700 al firmei IPA S. Bucureşti variabila de memorie de un bit este denumită Marker. unde octet=0÷127 şi bit=0÷7. programele de aplicaţie au putut utiliza ramificaţii . Notaţia este M octet:bit.14).bit. "fanioane" (Siemens).temporizatoarele sunt constituite în fişierul 4 (T4) .06. Memoria din tabela R (de exemplu. astfel că toate AP oferă memorii interne de un bit. care vor fi discutate mai târziu.

b.14. Uzual. şi nu valoarea curentă a ei. O execuţie completă a programului din figura 2. Aceasta depinde de dimensiunea programului şi de viteza procesorului. 2. La începutul fiecărui ciclu program AP citeşte starea tuturor intrărilor şi o memorează în memoria sa.14. Instrucţiunile sunt executate succesiv şi. b) secvenţierea programului. Deci. Ciclul program Un program de AP se comportă ca o buclă executată permanent. operaţiile majore ce . după execuţia ultimei instrucţiuni. c) organizarea memoriei Pe de altă parte. apoi.14.a). este modificată de program şi. toate ieşirile sunt actualizate simultan la sfârşitul ciclului program curent. Figura 2. Figura 2. caracteristica fundamentală a lor o reprezintă execuţia ciclică a programelor de aplicaţie. scan cycle) iar timpul necesar execuţiei sale se numeşte durata ciclului program. corespunzătoare ieşirilor. un AP nu comunică continuu cu procesul. în plus.1. Prin urmare.a se numeşte ciclu program (program scan.14.14.a. o valoare tipică fiind 2-5 ms/kcuvânt.47 şi repetiţii. O zonă de memorie a AP.14. Ciclul program şi organizarea memoriei: a) execuţia programului. ca în figura 2. ci intermitent. va fi citită valoarea memorată a acesteia la începutul ciclului program. ieşirile nu sunt modificate în momentul în care sunt calculate. Când programul adresează o intrare.5. cu posibilitatea utilizării subrutinelor şi a transferului prin întreruperi. Modelele de AP moderne sunt prevăzute. durata unui ciclu program este 10-50 ms. indiferent de modelul de AP discutat. Totuşi.a poate fi extinsă la figura 2. AP nu citeşte intrările în ordinea specificată de program (cum s-ar putea înţelege din figura 2. operarea se reia cu execuţia primei instrucţiuni.

a. care sunt utilizate de program dar nu sunt conectate direct cu exteriorul (temporizatoarele.c.15.b frecvenţa impuilsurilor este mai mare decât frecvenţa de execuţie a ciclului program şi AP începe să piardă impulsuri. Majoritatea memoriei este alocată. În figura 2.c. această zonă ar consta din 26 locaţii de memorie de 16 biţi (un cuvânt). de unde sunt actualizate (transferate spre punctele de ieşire) la sfârşitul fiecărui ciclu program. celei de-a patra zone. etc. O valoare analogică va necesita un cuvânt. ciclul program limitează viteza semnalelor la care AP trebuie să răspundă. zona programului.48 alcătuiesc un ciclu program sunt (în ordine): citire intrări. Intrările sunt citite şi memorate într-o zonă imagine a intrărilor la începutul ciclului program iar ieşirile sunt calculate şi memorate într-o zonă imagine a ieşirilor. Evident.15. Efectul ciclului program asupra impulsurilor rapide În figura 2. un AP este utilizat pentru numărarea unei secvenţe de impulsuri rapide. rezervată semnalelor (variabilelor) interne. Această zonă de date este mai mică decât cum ar fi de aşteptat. memoriile de un bit. Pentru un AP cu 1000 de I/E discrete. Se poate considera că memoria AP constă din patru zone. aşa cum apare în figura 2.14. de fapt. numărătoarele. execuţie program. Figura 2. cu frecvenţa mai mică decât cea de execuţie a ciclului program. de un octet. Există şi o zonă de memorie utilizator. Temporizatoarele şi numărătoarele necesită câte două cuvinte (unul pentru valoarea curentă şi unul pentru valoarea prestabilită) iar 16 memorii interne de un bit necesită un cuvânt. În cazul extrem din figura 2. Aceste trei zone de memorie sunt denumite "zona datelor" (la Allen Bradley) sau "baza de date" (la ABB). blocuri întregi de impulsuri pot fi total .15. actualizare ieşiri. Se observă că AP numără corect.).15. semnalele de defect.

16.5 Hz. orice semnal de intrare citit de AP trebuie să fie prezent un timp mai mare decât durata ciclului program. Mai puţin evident. un AP cu o durată a ciclului program de 40 ms poate urmări (teoretic) un tren de impulsuri cu frecvenţa 1/(2 x 0. În cazul trenurilor de impulsuri. Figura 2. Prin urmare. De aceea.16. lucru care nu poate fi garantat însă.b intrarea a apărut imediat după citirea intrărilor.04 s)=12. Impulsurile mai scurte pot fi citite corect numai dacă se întâmplă ca ele să fie prezente la momentele potrivite.16 este prezentată o intrare care trebuie să determine activarea imediată a unei ieşiri.a). frecvenţa impulsului trebuie să fie mai mică decât 1/(2 x durata ciclului program). De exemplu. fiind văzută de AP abia la începutul celui de al doilea ciclu program. nu poate fi văzut în răspunsul unei instalaţii la apăsarea unui buton. b) cazul cel mai defavorabil În majoritatea aplicaţiilor acest decalaj de câteva ms nu este important. Astfel. ieşirea va fi activată cu o întârziere de două cicluri program faţă de momentul activării intrării. . În figura 2. un ciclu program poate cauza un decalaj aleator între intrări şi ieşiri. În figura 2. De exemplu. însă. Prin urmare. timpul de răspuns poate varia între 1 şi 2 durate de ciclu program. În cazul cel mai bun (figura 2. în general. şi alţi factori de care trebuie să se ţină cont la stabilirea acestei frecvenţe (cum ar fi filtrele modulelor de intrare). ducând la activarea ieşirii după un ciclu program. se recomandă o mare atenţie la estimarea acestor viteze. intrarea apare la începutul ciclului program.49 ignorate. Efectul ciclului program asupra timpului de răspuns: a) cazul cel mai favorabil. în aplicaţiile unde sunt necesare acţiuni rapide.16. Totuşi. În practică există.

Decalaje datorate programului: a) logica este împotriva execuţiei programului (5 cicluri program între citirea intrării şi generarea ieşirii). de pildă. împotriva ciclului program. AP începe fiecare ciclu program cu prima instrucţiune şi procesează toate instrucţiunile următoare într-o manieră secvenţială.50 acest decalaj poate fi critic.a o intrare determină o ieşire.a sunt evidente. Efectele duratei ciclului program devin mai complexe în cazul existenţei unor SB de I/E comandate la distanţă şi conectate prin cablu serial. Într-un exemplu tipic.d. Logica programului decurge. Şi tot aşa până când. Cele 30 ms ale duratei ciclului program au condus la variaţii ale lungimii de tăiere de 0.17. evenimentul D determină activarea ieşirii.45 m. Figura 2. întreaga secvenţă are loc într-un singur ciclu program.4. ci prin intermediul a cinci paşi (poate fi condiţionată de un numărător sau de prezenţa unor alte condiţii necesare). aspect abordat în paragraful 8. citeşte intrările.m. Dacă programul este realizat ca în figura 2. execută instrucţiunile. În următorul ciclu program evenimentul A determină evenimentul B. în acest caz.17. b) logica este conformă cu execuţia programului (1 ciclu program între citirea intrării şi generarea ieşirii) În primul ciclu program intrarea determină evenimentul A. după cinci cicluri program de la activarea intrării. ş. către sfârşitul programului. Erorile din figura 2. producătorii de AP oferă o gamă largă de module speciale.b. În figura 2.a. cum ar fi.03 s x 15 m/s = 0. ca .17. Asemenea efecte pot fi utilizate pentru a produce deliberat impulsuri cu durata de un ciclu program. În general.9. dacă logica programului lucrează împotriva execuţiei programului. cele descrise în paragraful 6. un material ce trecea cu viteza de 15 m/s trebuia tăiat de către o instalaţie comandată de un AP pe baza semnalului de la o fotocelulă. starea acestor I/E este citită de către un scaner de I/E.17. Apoi actualizează ieşirile. Însăşi redactarea programului poate conduce la întârzieri nedorite. dar aceste efecte pot apare deseori atunci când realizarea programului nu este gândită cu grijă. Pentru a putea aborda cu succes asemenea aplicaţii. dar nu direct.

Pentru evitarea buclelor infinite.9) şi există posibilitatea secţionării programelor în zone cu timpi de execuţie diferiţi. cu o durată a ciclului program de 30 ms şi cu un ciclu de comandă la distanţă a I/E de 50 ms. permiţând ca alte zone ale programului să se execute mai rapid.18. nu este sincronizat cu ciclul program. dar cu implicaţii asupra ciclului program. o programare defectuoasă a transferului prin întreruperi poate conduce la intrarea programului în buclă infinită. uzual. dar cel mai mare poate fi de 130 ms (cu o I/E pierzând la limită ciclul I/E iar ciclul I/E pierzând la limită ciclul program). care necesită acţiuni urgente (cum sunt semnalele de avarie. Pentru a reduce timpul de răspuns la unele semnale de intrare considerate foarte importante. cel mai scurt timp de răspuns poate fi de 30 ms. care.8 şi 6. AP au fost prevăzute cu un ceas de gardă (watchdog timer).18. Acesta este resetat la începutul fiecărui ciclu program şi măsoară timpul în care se execută fiecare .5 s – 1 s. există posibilitatea utilizării unor module de I/E inteligente şi independente (discutate în paragrafele 6. De asemenea. Efectul ciclurilor program şi de I/E Pentru reducerea efectului duratei ciclului program. Aceasta permite citirea intrării şi activarea ieşirii independent de ciclul program.5. De exemplu. becurile de la panoul de comandă necesită un timp de răspuns de 0. De exemplu. de exemplu) există posibilitatea transferului prin întreruperi (vezi paragraful 2. Un transfer prin întreruperi va determina mărirea duratei ciclului program curent.4). producătorii de AP oferă mai multe facilităţi.51 în figura 2. Figura 2. Tipic. cu avantajul dat de un timp de răspuns minim. cu implicaţii asupra celorlalte semnale de I/E.

şi timpii necesari execuţiei fiecărei instrucţiuni. Pot fi distinse următoarele tipuri de salturi: absolute (înainte. b) salt absolut înapoi. printre altele. Manualele tehnice ce însoţesc AP conţin. JO).19. Ea are forma generală DO n . În caz contrar. END şi determină execuţia de n ori a instrucţiunilor cuprinse între instrucţiunile DO şi END.5. c) salt relativ. 2. Principiul execuţiei acestor salturi este ilustrat în figurile 2.2. execuţia programului este terminată şi toate ieşirile sunt dezactivate. AP SIMATIC S5-115U al firmei Siemens recunoaşte următoarele instrucţiuni de salt: salt condiţionat (JC. JM.a-c.19. JP. JN. De exemplu. Cea mai utilizată structură repetitivă este cea de tip DO (figura 2.. la o adresă dată) sau relative (peste un număr dat de instrucţiuni). JZ. salt necondiţionat (JU) şi salt relativ (JUR). Dacă valoarea măsurată a duratei ciclului program curent este mai mică decât valoarea prestabilită a ceasului de gardă.52 ciclu program.19. Ramificaţii şi repetiţii: a) salt absolut înainte. Ramificaţii şi repetiţii Ramificaţiile sunt structuri de program ce permit salturi (condiţionate sau necondiţionate) în program peste un grup de instrucţiuni. d) buclă DO Repetiţiile permit execuţia în mod repetat a unui grup de instrucţiuni de un număr predeterminat de ori. Valoarea prestabilită a sa este fixată de către producător.d). Figura 2. . înapoi. ţine cont de timpii de citire a intrărilor şi de actualizare a ieşirilor şi corespunde celui mai lung program posibil (dat de dimensiunea memoriei program) care utilizează instrucţiunile cele mai mari consumatoare de timp.. acesta permite execuţia unui nou ciclu program.

Utilizarea subrutinelor: a) principiul execuţiei subrutinelor. care determină reluarea execuţiei acestuia din punctul în care a fost întrerupt de către instrucţiunea de apel de subrutină. cărora le corespund programe mai scurte şi mai uşor de urmărit. care va apare o singură dată în memoria program (figura 2. Subrutine Subrutinele sunt secvenţe de instrucţiuni (asemeni programelor) destinate rezolvării unor probleme specifice. există tot interesul transformării acestei secvenţe într-o subrutină. subrutinele sunt utilizate în două scopuri: pentru economisirea spaţiului de memorie şi pentru structurarea programelor. Figura 2. Devine astfel posibilă structurarea ierarhică a modulelor ce compun .5.3.20. dacă o secvenţă de instrucţiuni trebuie utilizată de mai multe ori într-un program. Această secvenţă se încheie cu o instrucţiune de revenire în programul principal. În principiu. Există o tendinţă naturală de a descompune aceste aplicaţii în subansamble mai simple.20. O astfel de instrucţiune are ca efect abandonarea execuţiei instrucţiunii următoare din programul principal în schimbul execuţiei secvenţei de instrucţiuni corespunzătoare subrutinei apelate. Execuţia unei subrutine este determinată de execuţia în programul principal a unei instrucţiuni de apel de subrutină (sau de salt la subrutină). b) structurarea programelor cu ajutorul subrutinelor A doua utilizare apare îndeosebi în cazul aplicaţiilor complexe.a). În conformitate cu primul scop. amplasată întro altă zonă de memorie.53 2. construite în această manieră în scopul apelării lor în mod recursiv.

m.1. execuţia programului principal este reluată din punctul în care a fost întrerupt. Transferul prin întreruperi Din cele prezentate până acum reiese că un AP poate lua în considerare evenimentele externe numai pe acea porţiune a ciclului program în care efectuează citirea intrărilor.54 programul de aplicaţie. aplicaţii în care este necesar din partea AP un timp de reacţie mai rapid decât cel dat de către durata ciclului program. OB2÷OB5. se poate ajunge chiar la situaţii în care programele corespunzătoare diferitelor module să aibă dimensiuni care să permită sesizarea dintr-o singură privire a întregului conţinut informaţional al programelor corespunzătoare modulelor.b.a. 2. prin urmare. OB2 fiind cea mai prioritară (în cazul întreruperilor multiple). Odată executată această subrutină. După aceasta. Procesorul UC analizează automat starea acestor linii după execuţia fiecărei instrucţiuni.4. Fiecare din aceste din urmă module va putea fi descompus la rândul său.d. una din cele mai eficiente soluţii de tratare a lor o reprezintă transferul prin întreruperi. el suspendă execuţia programului în curs şi salvează (într-o zonă de memorie prevăzută special pentru asemenea situaţii) toate informaţiile necesare reluării ulterioare a execuţiei programului întrerupt în acelaşi context. Modul în care subrutinele permit structurarea programelor este ilustrat în figura 2. IRD ).6. IRC . Fiecare modul va avea. o misiune bine definită. Va exista un modul de organizare. AP SIMATIC S5-115U al firmei Siemens este prevăzut cu patru linii de întrerupere ( IRA .5.5. De exemplu. corespunzătoare evenimentului care a generat întreruperea. Printr-o organizare judicioasă a descompunerii. procesorul UC trece la execuţia unei subrutine aparte. Dacă detectează o cerere de întrerupere. Este cazul aşa-numitelor evenimente urgente. . care va defini interacţiunile dintre modulele aflate la nivelul ierarhic inferior. Comanda la distanţă Primele AP au fost organizate sub forma unui procesor şi a unui număr de module de I/E montate în SB locale. ş. Aşa cum s-a amintit în paragraful 2. cărora le corespund prin construcţie patru rutine de servire a întreruperilor. Există. IRB . însă.20. 2. Sursele posibile de întreruperi sunt conectate (individual sau prin intermediul unor porţi SAU) la liniile de întreruperi ale AP.

Aspectele referitoare la comunicaţia serială vor fi discutate în capitolul 7. SB pot fi montate la depărtare de kilometri de procesor. care pot fi testate înaintea livrării şi instalării. Astfel. aspect discutat în capitolul 9). . cu distribuire mare a instalaţiilor. Mai puţin evident. Dacă este utilizată comanda la distanţă. să fie testată înainte de a fi adusă la locul unde va funcţiona. În mod evident. un sistem conţine trei SB comandate la distanţă (slave). deoarece semnalele pot fi vizualizate doar la o anumită distanţă de instalaţia testată. De exemplu. De aceea. producătorii de AP au prevăzut posibilitatea montării SB cu module de I/E la distanţă de procesor şi a conectării acestor SB cu procesorul prin simple (şi ieftine) cabluri ecranate cu două fire sau prin cabluri cu fibre optice. La aceasta se adaugă cabluri pentru surse şi conexiuni pentru semnalele de alarmă.55 Însă. comanda la distanţă permite realizarea unor unităţi compacte. Se pot pierde toate avantajele dacă proiectantul poate monitoriza operaţiile doar dintr-un punct central de comandă aflat la sute de metri de instalaţie. montat într-o substaţie la 500 m distanţă. conectate la un AP de comandă (master). printr-un cablu de comunicaţie la distanţă. producătorii şi-au dat seama despre aceste avantaje şi majoritatea au prevăzut posibilitatea conectării terminalelor de programare la procesor local. Idei similare pot fi aplicate la orice instalaţie ale cărei semnale de I/E trebuie conectate la un AP. conectate la un SB dispus în imediata apropiere a instalaţiei. Există numeroase avantaje ale acestei tehnici. într-o uzină mare. Din fericire. Cabluri de lungime mare vor fi necesare doar pentru cablurile de comunicaţie (care sunt ieftine) şi pentru semnalele de avertizare/alarmă (care nu trebuie transmise prin cablul de comunicaţie. fiind necesare doar cabluri multifilare scurte. utilizând această structură toate semnalele ar trebui aduse la un punct central în cabluri multifilare lungi şi costisitoare. Aceasta permite ca instalaţia. trebuie prevăzută o ieşire suplimentară la SB pentru a putea conecta terminale de programare. se reduce costul cablurilor prin plasarea SB la locul aplicaţiei. prin cabluri ecranate cu două fire. De asemenea. împreună cu SB locale (slave). punerea în funcţiune şi depanarea ar deveni mult mai dificile. pentru toate sistemele mici şi mari.

Majoritatea programelor de AP sunt scrise în această etapă. Există o a cincea etapă. Cu un sistem cu AP. Deoarece proiectantul sistemului cu AP a prevăzut memorie de rezervă. utilizând legături seriale şi ansambluri gata construite şi testate. Următorul pas este instalarea. 2. Utilizând sisteme convenţionale (de exemplu. modificările la punerea în funcţiune nu vor rămâne neînregistrate. a elementelor de execuţie. Modificările ce trebuie aduse sistemelor convenţionale consumă timp şi sunt scumpe. Ultima etapă este punerea în funcţiune. Toate instalaţiile au defecte. proiectarea trebuie finalizată înaintea începerii realizării dulapului de comandă. pentru eventualele omisiuni şi extensii ulterioare. fiecare din ele cu un mod propriu de manifestare. Prima etapă este proiectarea. a comenzilor şi confirmărilor operatorului. Un sistem cu AP oferă o unealtă foarte puternică pentru realizarea diagnozei. 4. deci. Utilizând scheme convenţionale. fiecare pas este deosebit de ceilalţi. tot ceea ce este necesar este o idee aproximativă despre dimensiunile sistemului şi despre numărul şi tipul semnalelor de I/E. Avantajele controlului cu AP Fiecare sistem de control parcurge patru etape de la concepţie la punerea în funcţiune a instalaţiei. canale de I/E suplimentare şi câteva fire de legătură suplimentare în cabluri. Un sistem de AP distribuit (discutat în capitolul 7). Un sistem cu AP este alcătuit din componente standard. Un alt avantaj este că toate modificările sunt înregistrate în programul AP şi. 1. Urmează realizarea. majoritatea modificărilor pot fi făcute rapid şi relativ ieftin. cu costuri şi întârzieri inevitabile. Nici o instalaţie nu merge bine din prima încercare. În acest timp este începută scrierea programului de AP (sau cel puţin a unei specificaţii detaliate de program).7. . aşa cum se întâmplă deseori în sistemele convenţionale. cu relee).56 2. 3. poate simplifica instalarea şi poate aduce uriaşe beneficii. Aceasta începe odată cu funcţionarea instalaţiei şi are implicaţii asupra producţiei. cu costuri mari datorate conectării senzorilor. În această etapă stabilirea numărului de module de I/E se poate face cu o rezervă. întreţinerea. Aici apar adevăratele avantaje. Instalaţia este studiată şi sunt stabilite strategiile de control. suplimentară. Acest aspect este discutat în capitolul 9. Un sistem cu AP aduce avantaje la fiecare etapă.

în vederea măririi producţiei. .57 O instalaţie suportă. de asemenea. a eliminării căderilor sau datorită necesităţilor de modificare. Un sistem cu AP poate fi modificat foarte uşor iar programul AP va reflecta automat schimbările făcute. o serie de modificări pe parcursul timpului.

Standardul IEC 1131-3 Standardul IEC 1131-3 defineşte cinci limbaje de programare a AP [32. Diagrama Scară (Ladder Diagram). fiecare producător are particularităţile sale şi ar fi mai degrabă restrictiv să se trateze aspecte referitoare la un singur tip de AP. care este inspirată din schemele electrice convenţionale. Între aceste modele există diferenţe semnificative. Desigur. 3. care reprezintă un formalism grafic inspirat din standardul francez Grafcet. 3. Textul Structurat (Structured Text).58 CAPITOLUL 3 LIMBAJE DE PROGRAMARE În acest capitol va fi ilustrat modul de programare al AP. LI şi TS fac parte din limbajele tradiţionale de programare a calculatoarelor. Diagrame cu Blocuri Funcţionale (Function Blocks Diagrams). Lista de Instrucţiuni (Instruction List).1. care constituie un formalism de procesare a datelor prin reţele de blocuri funcţionale conectate prin semnale. 2. 5. bazat pe o variantă sincronă şi etichetată de reţele Petri. Prin intermediul lor vor fi acoperite majoritatea particularităţilor altor producători decât cei menţionaţi. Din acest motiv se va face referire la modelele folosite în capitolul 2. 52]: 1. paralele prin natura lor). DS şi DBF imită structura predecesoarelor lor (implementări hardware ale regulatoarelor discrete şi continue. DSS combină secvenţialitatea cu paralelismul. . care este un limbaj de programare asemănător limbajului Pascal. Diagrame de Stare Secvenţiale (Sequential Function Charts). 4. care este un limbaj de asamblare inspirat din limbajele utilizate în diversele platforme hardware existente.

În esenţă. în acest limbaj se scriu relaţii dintre valorile stării curente şi a variabilelor de intrare. Un astfel de program citeşte intrările sale. Ele pot fi concepute în paralel şi pot fi apelate numai după ce au fost asignate unui task şi taskul fie este lansat de către un eveniment. care sunt adresate în locaţiile de memorie destinate intrărilor.59 Standardul începe cu o descriere a configuraţiei şi resurselor hardware şi software ale sistemului pe care vor fi executate programele. care sunt abstracţii ale protocoalelor de comunicaţie. Interacţiunea dintre funcţiile bloc este reprezentată prin "conductori" care conectează variabilele de ieşire de la un bloc cu variabilele de intrare ale altui bloc. DS este un limbaj grafic conceput pentru compatibilitate retroactivă cu formalismul diagramelor logice scară (relay ladder logic). ieşirilor sau variabilelor interne. iniţializările. Un program este construit dintr-un număr de elemente software diferite. el însuşi un rezultat al compatibilităţii retroactive cu schemele electrice convenţionale (cu relee). Standardul defineşte tipurile de date elementare. Standardul conţine structuri care permit programelor diferite să fie încărcate şi executate pe acelaşi AP (separat sau în multi-tasking) şi mai multor AP să funcţioneze în paralel şi să comunice prin "căi de acces". pe de altă parte. . plus câteva specificaţii referitoare la ordinea evaluării condiţiilor implicate. scrise în oricare din cele cinci limbaje. Suplimentar faţă de variabilele abstracte "uzuale". etc. Variabilele pot fi locale sau globale. sunt permise şi variabile "direct reprezentate". declaraţiile tipurilor de date compuse. Cazul cel mai simplu este cel în care un singur program este executat pe un singur AP. Detaliile referitoare la modul în care un anume AP realizează operaţiile de I/E şi managementul memoriei nu fac parte din standard. pe de o parte. Toate limbajele utilizează acelaşi set de caractere şi sunt în conformitate cu standardele ISO şi cu convenţiile pentru codificarea timpului. Se presupune că valorile citite de la senzori şi valorile scrise la ieşiri sunt transferate cu mediul extern prin intermediul unor locaţii de memorie specifice şi că programul de aplicaţie nu trebuie să se ocupe cu aceste detalii. şi valorile stărilor următoare şi ale ieşirilor. existând posibilitatea transferului de date între aceste elemente. DBF reprezintă un limbaj grafic ce permite compunerea unor funcţii bloc simple în vederea formării unor funcţii bloc mai mari şi mai complexe. fie este configurat să fie executat periodic. calculează starea sa şi actualizează ieşirile sale.

cu x=valoarea scalară. Forma generală a unei bucle WHILE este: while expresie . o buclă FOR permite repetarea unei secvenţe de un număr de ori fix şi predeterminat. Prin urmare. buclele WHILE). O buclă WHILE evaluează o expresie în mod repetat. Utilizând întreaga putere a acestor limbaje (de exemplu. Instrucţiunea end are rolul de a arăta că liniile de program dintre for şi end sunt executate iterativ. se iese din buclă şi execuţia programului se continuă cu instrucţiunea de după end. Primul este un limbaj de asamblare de nivel inferior iar al doilea este un limbaj de nivel înalt asemănător PASCAL. există structuri care nu sunt uşor de exprimat prin notaţii grafice. Terminarea buclei are loc la îndeplinirea condiţiei impuse prin expresia evaluată. întreruperile şi algoritmii complecşi în general. încurajându-se prin aceasta un stil de programare modular şi ierarhizat. care este testată la începutul fiecărui ciclu. Dacă expresie este un vector sau o matrice. operaţiile cu matrici. end unde x este contorul de ciclu. până când aceasta este adevărată. nelimitat şi chiar infinit. . respectiv valorile conţinute în următoarea coloană a matricii expresie. Dacă expresie este un scalar. Acestea include buclele FOR. . se termină cu instrucţiunea end şi are forma generală: for x=expresie . atunci bucla se execută o singură dată. pentru fiecare valoare a contorului de ciclu x. Totuşi. După ce acesta ia ultima valoare posibilă. La fiecare iteraţie contorului de ciclu x i se atribuie valoarea corespunzătoare următorului element din vectorul expresie. atunci instrucţiunile dintre for şi end sunt executate câte o dată pentru fiecare element al vectorului sau coloană a matricii expresie. numărul de iteraţii nefiind cunoscut iniţial. O buclă FOR începe cu instrucţiunea for.60 O compunere de mai multe funcţii bloc poate fi încapsulată într-un bloc mai mare. . este posibil să se scrie proceduri al căror timp de execuţie este necunoscut. Limbajele LI şi TS sunt în esenţă limbaje imperative şi secvenţiale clasice. .

se pot admite numai programe care nu au salturi înapoi sau bucle FOR cu delimitatori constanţi. Desigur. modul de programare cu DS. Considerarea sa ca un al cincilea limbaj IEC sau ca o unealtă de structurare de nivel superior este o chestiune de terminologie. 3. De exemplu. expresie conţine o condiţie exprimată printr-un operator relaţional. prin intermediul a patru exemple simple. proiectate pentru industria automobilelor. la fel ca şi în cazul buclelor for instrucţiunea end are rolul de a arăta că instrucţiunile cuprinse între while şi end sunt executate iterativ. instrucţiunile dintre while şi end sunt executate. Acesta le face neadecvate pentru scrierea programelor de control care implică paralelisme. DSS constituie un formalism care combină operaţiile secvenţiale şi paralele. end unde. -] [. au înlocuit schemele de de comandă cu relee. fie prin considerarea programelor scrise în aceste limbaje ca blocuri funcţionale în programe scrise în alte limbaje care acceptă paralelismul (DBF sau DSS). este posibil să se impună restricţii sintactice care pot garanta un timp de răspuns limitat. Un alt dezavantaj al acestor limbaje este dat de caracterul lor secvenţial. au constituit baza acestui limbaj.2. Simbolurile utilizate în DS. În continuare se va prezenta. Prin urmare. încorporarea unor asemenea programe în aplicaţiile de control nu este o practică sănătoasă. Această condiţie este testată la începutul fiecărui ciclu. Diagrama scară Primele AP. concurenţa poate fi realizată fie prin multitasking. Cât timp ea este adevărată.pentru contact normal închis (NI) şi –( )pentru o ieşire a procesului.3. Pe de altă parte. Când condiţia este falsă. -]/[. folosind adresarea I/E de la diferite AP prezentate în paragraful 2. Exemplul 1 Presupunem că la un bloc hidraulic dorim să comandăm o lampă de semnalizare pentru "Funcţionare normală" când: .pentru contact normal deschis (ND).61 . Bucla while este executată atât timp cât expresie este adevărată. De obicei. . se trece la următoarea instrucţiune de după end.

Ieşirea O: 22/01 va fi 1 logic când semnalele I: 21/00. Utilizând relee convenţionale. I: 21/01. Există ulei în rezervorul de ulei (lucru arătat de un indicator de nivel). se conectează semnalele de intrare la un modul de intrări. cele activate fiind iluminate pe display.c. Pentru utilizarea unui AP. se poate realiza un circuit ca în figura 3. 2. b) conexiune la AP. Figura 3.c. .a. Pompa merge (lucru arătat de un contact auxiliar al contactorului pompei).) iar linia din dreapta un nul (-).1.1. Există presiune de ulei (lucru arătat de un presostat). I: 21/02 vor fi toate 1 logic. Ieşirea este reprezentată printr-o bobină -( ). sau + c.a.1. 3.b. Pentru adresarea I/E s-a utilizat notaţia Allen Bradley. iar lampa de semnalizare la un modul de ieşiri. Terminalul poate fi utilizat de asemenea la monitorizarea stării semnalelor de I/E. Linia din stânga poate fi considerata o sursă (fază c. De la circuitul cu relee la DS: a) Circuit cu relee.1. c) DS Programul care realizează funcţia este prezentat în figura 3. Programul este introdus de la un terminal (sau consolă de programare [65]) prevăzut cu taste care reprezintă diversele simboluri utilizate.şi este activată când există cale de curent de la stânga la dreapta.62 1. ca în figura 3.

2. Ieşirea B2. Figura 3. ci permite şi verificarea bunei funcţionări a AP).1 şi să adăugăm un buton de testare a lămpii (o tehnică utilă care ar trebui prevăzută în toate situaţiile similare. conectăm la AP butonul de testare a lămpii şi modificăm programul ca în figura 3. limitatorul faţă nu este atins şi bobina de retragere B2. DS în notaţia AP GEM-80: a) conexiunile la AP. Pot fi utilizate atât contacte ale intrărilor cât şi ale ieşirilor. .63 Exemplu 2 În figura 3. de unde vine numele de "DS".2.3. va fi activată atunci când butonul de avansare este apăsat. Există două aspecte de remarcat în figura 3.2.2 un cilindru hidraulic poate fi avansat sau retras prin acţionarea a două butoane. iar contactele pot fi utilizate de câte ori este nevoie în program.2. b) DS Este nedorită activarea simultană a celor două bobine. Termenul "treaptă" este invariabil aplicat contactelor care contribuie la definirea unei ieşiri.b.10 nu este activată. fiecare linie cu instrucţiuni formând o treaptă iar barele verticale ale alimentării formând suportul treptelor. bobina de avansare. Exemplu 3 Să ne întoarcem la lampa de semnalizare "Funcţionare normală" din figura 3. Aici au fost utilizate contacte normal închise. Adresarea I/E utilizată în acest caz corespunde AP GEM-80. astfel că este necesară o formă de protecţie. de asemenea. Pentru aceasta. Un program de această formă arată ca o scară.b arată.b. Programul care realizează acest lucru este prezentat în figura 3. nu permite doar testarea lămpii. Aceasta duce aproape întotdeauna la arderea unor siguranţe la sursele modulului de ieşire. Figura 3.9.

5 atunci când butonul Stop nu este apăsat.4. cauzând oprirea motoului.64 Figura 3. Exemplu 4 O altă utilizare a ramurii este prezentată în figura 3. Operaţia este simplă. care utilizează adresarea I/E de la firma Siemens. ţine cont care este ultimul buton apăsat. sau murdărie sub contacte la butonul Stop. făcând ca programul să acţioneze ca şi cum butonul Stop a fost apăsat. Programul. dar un defect la butonul Stop sau la circuitul său va determina funcţionarea continuă a motorului.2 iar un contact al ieşirii este plasat în ramură pentru a menţine ieşirea activată până când se apasă butonul Stop.5 permite să meargă. Intrarea I 12. sau un defect de cablu.2. Alţii utilizează o abordare de forma "Ramură de la/la". comanda unui motor cu un contactor. Acest aspect este discutat în paragraful 9. acesta variind de la producător la producător. vor cauza pierderea semnalului. Pentru siguranţă. a fost utilizat un buton de Stop normal închis. mai degrabă decât să oprească. Modul în care este programată ramura nu ne interesează acum. Acţiunea intrării I 12. Dacă se utilizează un buton de Stop normal deschis. pentru oprirea lui fiind posibile două soluţii: oprirea AP sau oprirea alimentării motorului. ca şi echivalentul său cu relee. Pierderea alimentării unui buton. Unii utilizează taste de "Început de ramură" şi de "Sfârşit de ramură". Apăsarea butonului Start determină activarea ieşirii Q 8.4.3. furnizând un semnal de intrare pe I 12. dar observaţi efectul său în programul din figura 3.5 a butonului de stop în interiorul programului este opusă celei dintr-o schemă clasică cu relee. Adăugarea unei ramuri Aici am adăugat o ramură iar ieşirea se va activa dacă cele trei semnale de la proces sunt 1 sau dacă butonul de testare lampă este apăsat. Există o observaţie foarte importantă referitoare la conectarea butoanelor la AP şi la programul acestuia. . Probabil este cel mai frecvent exemplu de circuit. AP va lucra corect. Toate sunt simplu de utilizat.

5.d este adevărată dacă (şi numai dacă) A şi C sunt adevărate şi B nu este adevărat. Diagrama cu blocuri funcţionale Circuitele integrale logice din familiile TTL şi CMOS sunt larg utilizate în sistemele digitale (incluzând şi plăcile din interiorul AP). Programul pentru comanda unui motor cu un contactor: a) conexiunile la AP. prezentată în figura 3.5.4. este activat când intrarea sa este 1.a este adevărată dacă (şi numai dacă) toate intrările sunt adevărate. Ieşirea unei porţi ŞI. În figura 3.2 am ilustrat comanda unui cilindru hidraulic cu un program care a evitat acţionarea simultană a bobinelor de avansare şi retragere.2 este activată când toate intrările în poarta ŞI sunt adevărate. Acest lucu este reprezentat printr-un cerc mic "o".5. Aceste simboluri pot fi utilizate pentru a descrie operaţiile unui program de AP.1 conectată la un AP al firmei Siemens programat utilizând blocuri funcţionale.e. Adeseori trebuie făcute teste pentru a vedea dacă un semnal nu este adevărat. b) DS 3.b. Aceasta este redesenată pentru un AP al firmei Siemens în figura 3. Ieşirea Z a porţii ŞI din figura 3. aşa că lampa Q 8.5. Aceste circuite sunt reprezentate prin blocuri funcţionale (sau simboluri logice).a poate fi reprezentată prin tabelul din figura 3.3. Blocul ieşirii.c avem lampa de semnalizare "Funcţionare normală" a pompei din figura 3. .65 Figura 3. În figura 3.5.5. Operarea porţii din figura 3. Iniţial vom utiliza notaţia Siemens [3]. notat prin "=".

Programe de AP utilizând blocuri funcţionale (bazate pe notaţia Siemens): a) o poartă ŞI. c) testul lămpii este prevăzut suplimentar faţă de figura 3. c) lampa de "funcţionare normală" din figura 3.66 Figura 3. b) tabela de adevăr pentru poarta ŞI. Utilizări ale blocului funcţional SAU: a) poarta SAU.1 cu DBF. e) cilindrul hidraulic din figura 3.6. b) poarta SAU cu intrare inversată.5.5.c .2 cu DBF Figura 3. d) o intrare inversată.

Figura 3.c este o combinaţie ŞI/SAU. În figura 3. pe lângă porţi logice de bază. În figura 3. pentru o combinaţie SAU/ŞI poate fi utilizat în programul Master blocul SAU/ŞI din figura 3.7.3.4. este adevărată dacă A este adevărat sau B este fals sau C este adevărat. printr-un cerc mic. b) poarta SAU/ŞI Ieşirea Z a unei porţi SAU.6.6. din figura 3.b.c (cu un program Master care se referă la nume în baza sa de date). Porţile compuse ale AP Master al firmei ABB: a) poarta ŞI/SAU (echivalentă cu figura 3. Limbajul LI este cea mai flexibilă formă de programare pentru utilizatorul experimentat.b.c). Circuitul din figura 3. Lista de instrucţiuni O listă de instrucţiuni este un set de instrucţiuni care seamănă cu instrucţiunile unui limbaj de asamblare. Simbolul "≥" din poartă înseamnă "ieşirea este adevărată dacă una sau mai multe intrări sunt adevărate". corespunzător aceleiaşi operaţii). şi este la fel de uşor de urmărit ca şi DS sau DBF. Poate fi testat şi inversul semnalului. ca în cazul precedent. AP Master al firmei ABB are.67 Figura 3.6. şi blocuri de combinaţii logice. 3.7.8 prezintă o operaţie simplă atât în formatul DS. este adevărată dacă oricare din intrări sunt adevărate.c am utilizat o poartă SAU pentru a adăuga un test de lampă la becul de semnalizare "Funcţionare normală" a blocului hidraulic prezentat şi în figura 3.6.6.a este un bloc Master corespunzător celui din figura 3.a. .7. cât şi în DBF pentru un AP al firmei Siemens (foarte asemănătoare cu secvenţele de program realizate pentru APC 700.6. Similar. Ieşirea Z a porţii din figura 3.

Acest lucru este similar cu utilizarea parantezelor în programarea convenţională.2 I 3:2 Q 4. Figura 3. unde secvenţa 3+5/2 poate fi .9 Număr instrucţiune 00 01 02 03 Operaţie Siemens APC 700 :ON ORN :O :ON := OR ORN = Operand (Adresa) Siemens APC 700 I 2.8. se pot utiliza paranteze pentru a defini precis operaţia. iar "=" transferă rezultatul către ieşirea Q 4.1 Q 4:1 Comentariu Buton înainte Limitator faţă OK Bobină retragere Bobină avansare Figura 3.2.1. Figura 3.2 Q 4. DS şi DBF în notaţia Siemens Tabel 3. AN (ANDN) înseamnă AND NOT. Aici A înseamnă AND. Aici ON înseamnă OR NOT iar O înseamnă OR. LI echivalentă programelor din figura 3.9 prezintă o operaţie SAU.68 LI echivalentă pentru un AP al firmei Siemens şi pentru un AP APC 700 este prezentată în tabelul 3.2 Q 4:2 Q 4.7 I 3:7 I 3. LI echivalentă programelor din figura 3.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 "Funcţionare normală a pompei de la distanţă" Când un set de instrucţiuni nu este clar.1.9.6 Q 4.7 I 2:7 F 3.2.8 Număr instrucţiune 00 01 02 03 Operaţie Siemens APC 700 :A AND :A AND :AN ANDN := = Operand (Adresa) Siemens APC 700 I 3. Echivalentul porţii SAU în notaţia Siemens Tabel 3. LI echivalentă este dată în tabelul 3.1.

0 I 2.11.10 arată o operaţie tipică în format DS şi DBF.11 cu notaţia Mitsubishi corespunde programului LI din tabelul 3. Programatorii vor recunoaşte această operaţie ca fiind similară lucrului cu o stivă. Programul DS al AP prezentat în figura 3. LI echivalentă programelor din figura 3. O DS a firmei Mitsubishi . deşi manualul de utilizare recomandă construirea într-o primă fază a DS şi apoi translaţia ei în LI. Program mai complex în limbajele DS şi DBF Tabel 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. Figura 3.3. Figura 3.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. Deşi ultima variantă este cea implicită.69 scrisă (3+5)/2=4 sau 3+(5/2)=5. parantezele fac ca operaţia să fie clară pentru cititor.1 I 4.5 Q 5.4.10 Număr instrucţiune 00 01 02 03 04 05 06 07 08 09 10 Operaţie Siemens APC 700 :A( AND( :O OR :O OR :) ) :A( :O :O :) :A :AN := AND( OR OR ) AND ANDN = I 2. Programul LI echivalent este dat în tabelul 3.10.5.3.1 Q 5. Figura 3.

Întrucât toate reprezentările de date sunt manipulate prin intermediul unor variabile. utilizarea limbajului TS în operaţiile logice şi de I/E pe bit nu oferă claritatea şi simplitatea necesare. .11 Linie 0 1 2 3 4 5 6 7 Instrucţiune 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 intrări ANI este ŞI-NU LD începe o nouă ramură Mnnn sunt memorii interne SAU între două ramuri Sfârşitul treptei 3.12. din întreg în real. Aşa cum reiese din cele discutate în paragraful 1. Figura 3. în care DIVIDE este numele funcţiei iar REAL este tipul rezultatului produs de ea. lista parametrilor acestui bloc funcţional este o listă a variabilelor de intrare.4.70 Tabelul 3.5. LI echivalentă programului din figura 3. Corpul blocului funcţional este definit prin invocarea altor două funcţii. Figura 3. b) declararea textuală Cuvintele-cheie FUNCTION şi END_FUNCTION delimitează declaraţia. şi anume "/" pentru împărţire şi INT_TO_REAL.12. În cazul acestui exemplu. respectiv INT. variabilele de intrare sunt A şi B.6.b este un exemplu în acest sens. Acestea sunt specificate în secţiunea dintre cuvintele-cheie VAR_INPUT şi END_VAR. de tipul REAL. Textul structurat Limbajul TS prezintă o sintaxă şi o funcţionalitate asemănătoare limbajului PASCAL. care este o funcţie predefinită de conversie a tipului unei variabile. Una din utilizările acestui limbaj o reprezintă declararea textuală a blocurilor funcţionale. Corespondenţa dintre DBF şi TS pentru un bloc funcţional DIVIDE: a) declararea grafică.

ce comandă deplasarea unui cărucior între două limite. Deplasare dreapta. se comportă similar cu o "stare de aşteptare". numele şi tipul variabilelor de intrare şi tipul rezultatului. etc. DSS din figura 3. lucru indicat prin dreptunghiul realizat cu linie dublă. atunci când condiţiile asociate tranziţiilor întâlnite sunt satisfăcute. În figura 3. însă.71 Reprezentarea grafică a blocului funcţional corespunzător exemplului din figura 3. Diagrama de stare secvenţială În esenţă. Tranziţiile sunt reprezentate prin segmentele orizontale plasate pe legăturile direcţionate verticale. se poate spune că limbajul TS este adecvat îndeosebi în aplicaţiile ce implică procesarea unui volum mare de date numerice. există blocuri funcţionale pentru care se specifică clar că nu există un corespondent în TS [1.b este dată în figura 3. printre altele.b.12 este unul simplu. Ca şi în figura 3. . pe baza unor tranziţii. Există două limitatoare de cursă care sesizează atingerea de către cărucior a capetelor de cursă din stânga şi din dreapta. Având în vedere cele expuse în acest paragraf. care în programul de AP sunt reprezentate prin două variabile booleene cu acelaşi nume. La pornire controlul este atribuit pasului Aşteptare. Partea superioară a figurii defineşte interfaţa grafică a funcţiei. Controlul se desfăşoară prin parcurgerea paşilor în lungul legăturilor. şirurilor de caractere. Pasul iniţial este Aşteptare. o DSS constă într-un set de paşi interconectaţi prin legături direcţionate. să-şi definească propriile blocuri funcţionale. care permite utilizatorului. Deoarece acesta nu are asociate acţiuni.13 este o parte a unui program mai mare. 3.a. Vom ilustra elementele tipice ale unei DSS pe baza unui exemplu. Partea inferioară defineşte în formă grafică corpul funcţiei.12. Valorile citite de la aceste limitatoare sunt reprezentate prin variabilele booleene Limită dreapta şi Limită stânga.13 paşii sunt Aşteptare.6. prin numele ei.12. Motor înainte şi Motor înapoi. El este pus în mişcare prin două semnale de comandă.12. toate declaraţiile sunt delimitate prin cuvintele-cheie FUNCTION şi END_FUNCTION. Fiecare pas poate avea asociat un număr (nul sau nenul) de acţiuni şi fiecare tranziţie are asociată o condiţie de tranziţie. Deplasare stânga şi Gata. 26]. de la care începe controlul. Pe de altă parte. el lasă să se întrevadă capabilităţile limbajului TS. Deşi exemplul din figura 3.13 este de a controla efectuarea unui singur ciclu stânga-dreapta şi dreapta-stânga. Poate exista un singur pas iniţial. Rolul DSS din figura 3.

Acest lucru validează tranziţia de la pasul Deplasare dreapta la pasul Deplasare stânga. Deci. aceea de trecere în "1" logic a valorii variabilei booleene Motor Înainte. Un pas poate fi activ sau inactiv. Atunci când limitatorul dreapta detectează sosirea căruciorului.72 Controlul rămâne la acest pas până când este validată tranziţia de la pasul Aşteptare la pasul Deplasare dreapta. la sfârşitul unui ciclu complet (reprezentat prin condiţia Sfârşit de ciclu). Un ultim aspect ce trebuie menţionat este acela că. fiecare pas are asociate 0. aşa cum s-a putut observa şi în exemplul . Figura 3. Acest pas are ataşată o singură acţiune. Secvenţa de evenimente ce urmează poate fi uşor dedusă pe baza celor prezentate.13. Condiţia asociată acestei tranziţii este ca valoarea variabilei Începere ciclu (ce reprezintă un semnal de la operator) să devină adevărată. Astfel de bucle sunt des întâlnite în programele în limbaj DSS. valoarea variabilei Limită dreapta devine adevărată. La satisfacerea acestei condiţii controlul părăseşte pasul Aşteptare şi avansează în pasul Deplasare dreapta. lucru care se petrece atâta timp cât controlul rămâne la pasul Deplasare dreapta. pentru a putea reîncepe un nou ciclu. DSS pentru comanda unui cărucior Exemplul prezentat permite introducerea unor noi elemente ale DSS. controlul revine la pasul Aşteptare. un pas este activ atunci când "are controlul". 1 sau mai multe acţiuni. În accepţiunea standardului IEC 1131-3.

a este o secvenţă liniară simplă. La o nouă activare a pasului S această valoare este resetată. Această structură are două elemente: fanionul pasului şi timpul acumulat. Primul este un element boolean care indică dacă pasul este activ sau inactiv. Figura 3. dacă un pas este denumit S. care este o expresie booleană. fiecare tranziţie are asociată o condiţie de tranziţie. Între un pas şi o tranziţie. care au acelaşi nume cu pasul. Al doilea este un element de tip TIME (timp). atunci S. De exemplu.14.) sunt interzise. Cazul din figura 3.14.73 anterior. Reguli de evoluţie ale DSS . are loc execuţia tranziţiei corespunzătoare ei.X este fanionul pasului S iar S. Orice alte conexiuni (pas cu pas. Pasul iniţial este singurul pas activ la începutul execuţiei şi în fiecare DSS poate exista un singur pas iniţial.a există două legături: de la pasul S3 la tranziţia t şi de la tranziţia t la pasul S4.T este memorată. Standardul IEC 1131-3 furnizează şi regulile pentru realizarea unor DSS corecte.14. Pentru fiecare pas există o structură de variabile corespunzătoare. De exemplu. În programele în limbaj DSS.14. Tranziţia ce separă doi paşi reprezintă condiţia pentru care are loc transferul controlului de la un predecesor la un succesor. în figura 3. respectiv între o tranziţie şi un pas. care memorează timpul scurs de la ultima activare a pasului. Deşi standardul IEC 1131-3 nu prevede utilizarea săgeţilor pentru a specifica direcţia unei legături. La fiecare dezactivare a pasului S valoarea lui S. etc. tranziţie cu tranziţie. S3 este dezactivat şi S4 devine pasul activ. S3 este pasul predecesor al lui t iar S4 este pasul succesor al lui t. Acestea sunt denumite reguli de evoluţie şi sunt reprezentate în figura 3. poate exista o singură conexiune. Controlul evoluează de la S3 la S4 dacă S3 este activ şi dacă condiţia asociată tranziţiei t este adevărată. De aceea. săgeţile pot fi folosite opţional pentru îmbunătăţirea clarităţii. legăturile direcţionate conectează paşii la tranziţii şi tranziţiile la paşi. După execuţia tranziţiei t.T este timpul acumulat al pasului S. Atunci când o condiţie este evaluată "1" logic.

Situaţia din figura 3. Paşii care nu au asociate acţiuni pot fi consideraţi puncte în care sistemul aşteaptă îndeplinirea unei condiţii.d înlătură această restricţie. o acţiune .b este un alt caz particular de selecţie a secvenţei.14. sau de la S5 la S7. la S12 dacă toţi paşii S10.14. S5.. utilizat pentru a "sări" peste o anumită secvenţă. După activarea lor simultană. În toate cazurile prezentate până acum evoluţia controlului trebuie să conducă la activarea unui singur pas. evoluează independent.74 Combinaţia din figura 3..b este denumită divergenţă a selecţiei secvenţei.15. permiţând activarea simultană a mai multor paşi. ei servesc la alocarea unor nume "stărilor" în care se află sistemul considerat. S11. secvenţele ce încep cu S4.a este un caz particular de selecţie a secvenţei.. Opţional. În continuare. Aceasta se numeşte divergenţă a secvenţelor simultane.. În notaţia grafică. Toate celelalte trei tipuri de acţiuni trebuie denumite explicit. dacă S5 este activ şi se execută tranziţia t2. Structura din figura 3.. fie textual.e se numeşte convergenţă a secvenţelor simultane şi este utilizată pentru a încheia secvenţele simultane. controlul evoluează de la S7 la S10 dacă S7 este activ şi se execută t1.14.15. ramurilor le pot fi alocate priorităţi. Cazul ilustrat în figura 3.c se numeşte convergenţă a selecţiei secvenţei şi reprezintă sfârşitul unei selecţii de secvenţă. Funcţiile de control sunt realizate de către acţiunile asociate paşilor. Controlul trece de la S3 la S4.14. Este posibil ca acestora să nu li se atribuie nume explicite atunci când sunt declarate. Paşii în sine nu realizează funcţii de control. dacă S3 este activ şi este executată tranziţia t. . utilizat pentru readucerea controlului într-un pas precedent.. Figura 3. Dacă nu sunt specificate priorităţi. . sau de la S9 la S10 dacă S9 este activ şi se execută t2. În standardul IEC 1131-3 o acţiune poate fi: • o variabilă booleană. . .. de tipul BOOL • un fragment de program scris în TS • o structură exprimată prin DBF sau DS • o DSS. Structura din figura 3. vom utiliza pentru acţiunile din primul tip denumirea de acţiuni booleene. fie grafic. În esenţă. atunci programatorul trebuie să se asigure că toate condiţiile de tranziţie sunt mutual exclusive. Controlul trece de la S10. Controlul evoluează de la S5 la S6 dacă S5 este activ şi se execută tranziţia t1. În acest caz. Cea din figura 3.. S5. Numele unei acţiuni booleene trebuie să fie acelaşi cu al variabilei pe care o conţine. sunt activi şi este executată tranziţia t.15 prezintă două aplicaţii mai interesante ale acestor reguli. S11.

o aceeaşi acţiune poate fi asociată la două sau mai mulţi paşi diferiţi. ca în figura 3. Pentru a clarifica rolul fiecărui calificator. D şi P acceptă un singur parametru. Calificatorii L. Blocuri acţiune Acţiunile sunt entităţi complet separate de paşi. . aceluiaşi pas S se realizează prin concatenarea blocurilor acţiune. Aceştia sunt prezentaţi în tabelul 3. . Rolul unui calificator în asocierea acţiunii A cu pasul S este de a determina când trebuie iniţiată sau terminată execuţia acţiunii A în raport cu activarea sau dezactivarea pasului S.16. dacă nu se specifică altfel. Fiecare asociere pas – acţiune poate avea un alt calificator.5.b. Dreptunghiul ce desemnează un bloc acţiune este împărţit în două. de tipul TIME (timp). Calificatorii N. ACT2. Figura 3. Literele din regiunile din extrema stângă se numesc calificatori.16 arată cazul cel mai simplu.15. acţiunile nu pot fi "anonime". ca în figura 3. trei sau patru zone. Asocierea unor acţiuni multiple ACT1. Standardul IEC 1131-3 defineşte setul de calificatori elementari.16.. Standardul defineşte şi următoarele combinaţii de calificatori: • SD: memorat şi întârziat în timp • DS: întârziat în timp şi memorat • SL: memorat şi limitat în timp.16.75 ACT este asociată pasului S prin intermediul unui bloc acţiune. vom considera că acţiunea A nu este asociată nici unui alt pas înafară de S. cu două zone. R şi S sunt fără parametri. Figura 3. Din acest motiv.. Cazuri particulare de reguli de evoluţie a DSS Figura 3. În consecinţă.

Calificatorii combinaţi DS. Lucrurile devin mult mai complicate atunci când A este asociată mai multor paşi. Simplificarea iniţială că acţiunea A este asociată numai pasului S a permis exprimarea efectului fiecărui calificator al execuţiei acţiunii A într-o manieră strict separată. Aceasta explică de ce calificatorul R se mai numeşte şi "reset prioritar". De exemplu.5. să considerăm că acţiunea A este asociată cu paşii S1 şi S2. În general. Execuţia lui A este terminată ulterior. Dacă controlul pleacă din pasul S înainte de expirarea timpului t. • S specifică faptul că execuţia acţiunii A trebuie să continue şi după dezactivarea pasului S. Deşi rolul lui L(t) este de a opri acţiunea A după timpul t. Calificatorii elementari ai standardului IEC 1131-3 Calificator (Q) Semnificaţie Calificatorul nul (null qualifier) N Fără memorare (Non-stored) R Reset S Set (Stored-memorat) L Limitat în timp (time Limited) D Întârziat în timp (time Delayed) P Impuls (Pulse) R cauzează terminarea execuţiei acţiunii A la activarea pasului S. de fapt A va fi executată în continuare. respectiv S. • L(t) determină ca la activarea pasului S să se iniţieze execuţia acţiunii A. prin activarea unui alt pas în care A este asociată cu calificatorul R. Să mai presupunem că mai întâi se activează S1 şi că S2 se activează înainte de expirarea timpului t. atunci execuţia lui A se opreşte înainte ca pasul S să devină inactiv.76 Tabelul 3. care va avea loc cel mult pe perioada de timp t. Apariţia • . SD şi SL pot fi interpretaţi într-o manieră similară. în asemenea situaţii va exista o interacţiune între efectele diferiţilor calificatori. Dacă pasul S rămâne activ mai mult decât t. • D(t) specifică faptul că execuţia acţiunii A va fi iniţiată numai la expirarea unui timp t de la activarea pasului S. indiferent de asocierile acţiunii A cu alţi paşi. se opreşte şi execuţia acţiunii A. • P arată că acţiunea A va fi executată pe durata unui singur ciclu program de la activarea pasului S. datorită efectului calificatorului S din asocierea sa cu pasul S2. Pentru exemplificarea modului de utilizare a DSS să considerăm implementarea unei secvenţe de semnalizare a unui defect [66]. cu calificatorii L(t).

17.aprinderea continuă a lămpii de semnalizare dacă defectul persistă (L2=1) .17. schema este reiniţializată numai dacă au fost acţionate ambele butoane b3 şi b5 (nu neapărat simultan). foarte util pentru procesele care combină aspectele secvenţiale şi paralele.77 unui defect (materializat prin închiderea limitatorului L2) provoacă emiterea unui semnal sonor (printr-o hupă) şi aprinderea intermitentă a unei lămpi de semnalizare (prin comanda lămpii în conjuncţie cu un oscilator implementat.stingerea lămpii de semnalizare dacă defectul a dispărut (L2=0). software). DSS corespunzătoare este ilustrată în figura 3. Datorită utilizării convergenţei simultane. Acţionarea butonului b3 determină anularea semnalizării acustice. . DSS pentru semnalizarea unui defect Acţionarea butonului b5 determină anularea semnalizării optice. Figura 3. de regulă. Din cele prezentate pe parcursul acestui paragraf reiese că DSS reprezintă un limbaj puternic. Acţionarea butonului b4 determină: .

Acestea sunt cunoscute.1. toate programele AP necesită circuite de memorie de un bit. în anumite circuite.c. aceasta fiind funcţionarea necesară a unui circuit de start/stop. ca şi circuite de memorie de un bit. Dacă ambele intrări sunt 1 simultan.4. Intrarea B este prevăzută din motive de securitate.1.2 şi 9. Totuşi. B este limitatorul poziţiei de repaus iar C este motorul ştergătorului. unde treapta de DS memorează care dintre butoanele Start sau Stop a fost apăsat ultima dată.2. reprezentate în figura 4. unde A este buton de start.a. În logica cablată. Circuitul memorează care intrare a fost ultima pe 1 logic. Cea mai întâlnită formă este prezentată în DS şi în reprezentarea DBF din figura 4.a. Programarea memoriei interne de un bit Practic. chiar dacă se află pe limitatorul de cursă.78 CAPITOLUL 4 FUNCŢII SPECIALE 4. DS şi reprezentarea DBF echivalentă sunt date în figura 4. ea "permite activarea semnalului". intrarea de start trebuie să fie prioritară faţă de intrarea de stop. Un exemplu tipic se poate întâlni la automobile: ştergătoarele de parbriz pornesc atunci când se dă comanda start. aşa cum s-a discutat în paragrafele 3. intrarea set este prioritară. şi rămâne activată până când intrarea B este dezactivată. din motive evidente. intrarea B condiţionează intrarea A. Operaţia este reprezentată în diagrama temporală din figura 4.1. Aici ieşirea C este activată când intrarea A este activată. Diagrama temporală aferentă este dată de figura 4.1. Un exemplu tipic este contactorul ce comandă un motor din figura 3. Acestea au două intrări.d. Aşa cum se poate observa.1. Acest circuit este . S (pentru set) şi R (pentru reset).b.2. memoria de un bit este realizată cu CBB.

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 biţilor: a) cel mai obişnuit circuit de memorare, unde intrarea de Stop B condiţionează intrarea de start A; b) diagrama temporală corespunzătoare; c) circuit de memorare unde intrarea de start A condiţionează 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 siguranţa că logica de stop este prioritară faţă de logica de start, iar semnalul de stop realizează o validare a funcţionării.

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. Funcţionarea circuitului din figura 4.1.c nu este clară la o primă verificare. Este de mare ajutor dacă contactul folosit pentru reţinere este plasat întotdeauna în ultima poziţie în ramură (pentru DS) sau în poartă (pentru DBF). Simbolul CBB este deseori întâlnit î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 notaţii DS. În aceste circuite s-a preferat utilizarea unor butoane de STOP normal închise. Observaţi cum apar acestea în program şi faceţi o comparaţie cu DS din figura 4.1. Această diferenţă se datorează funcţionării 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 excepţia 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 combinaţii ŞI/SAU (figura 4.3.c este un exemplu). CBB adiţionale sunt monobloc, constând dintr-un CBB şi porţi Ş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 îmbunătăţită prin utilizarea unor ieşiri, reprezentate în figura 4.4.a. Acestea lucrează asupra aceluiaşi bit, setând bitul când pe –(L)- este prezent un 1 logic, şi resetând bitul când pe –(U)- este prezent un 1 logic. Când pe ambele se primeşte 0 logic, bitul rămâne la valoarea corespunzătoare ultimei stări.

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 ieşirile 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 corespunzător programului din figura 4.4.b Linie Instrucţiune Comentariu 0 LD X400 1 OR X401 2 S Y432 Setează ieşirea 3 LDI X402 4 ORI X403 5 R Y432 Resetează ieşirea Atât cu Set/Reset (latch/unlatch) al firmei Allen Bradley, cât şi cu Set/Reset al firmei Mitsubishi, prioritatea aparţine ultimei trepte din program (dintre cele două), datorită ciclului program. Ambele exemple din figura 4.4 dau, în mod corect, prioritate semnalelor STOP. Căderea alimentării sau oprirea AP cauzează probleme memoriilor de un bit. La repornirea AP, memoriile de un bit îşi vor păstra valoarea

82 avută înainte de oprire sau memoria va fi ştearsă? Aceasta este întotdeauna o problemă de siguranţă şi ţine de particularităţile aplicaţiei. 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 căderii alimentării; o maşină automată de tipărit ar trebui (aproape sigur) să nu pornească singură. În consecinţă, producătorii de AP permit proiectanţilor să stabilească dacă o memorie de un bit îşi va păstra starea după o cădere a alimentării (numită memorie cu reţinere) sau se va şterge la repornirea AP (numită memorie fără reţinere). La PLC-5 al firmei Allen Bradley acest lucru este determinat de către program. Bobina din figura 4.1 este fără reţinere, iar latch/unlatch din figura 4.4 este cu reţinere. Alte AP diferenţiază memoriile de un bit prin adresele alocate lor. La AP SIMATIC S5-115 adresele flag-urilor F0.0-F127.7 pot fi făcute cu reţinere. La AP ale firmei Mitsubishi, releele auxiliare M200-277 sunt fără reţinere iar M300-377 sunt cu reţinere. La AP GEM-80, tabela generală de memorare a biţilor, G, este fără reţinere, în timp ce tabela similară R este cu reţinere, astfel că un circuit similar cu cel din figura 4.1, construit cu R 3.4 în loc de C (bobina şi automenţinerea), îşi va păstra starea după o cădere a alimentării. 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 când AP este la primul ciclu program, sunt definite la prima declarare a elementelor de program. Memoriile cu reţinere pot fi periculoase, deoarece pot prezenta oscilaţii la repornire după o cădere a alimentării. Proiectantul trebuie să aibă grijă ca programul să nu introducă din greşeală componente cu reţinere prin alocarea eronată a adreselor de bit. Utilizarea tabelei R la GEM-80 este în mod particular convenabilă, dar se recomandă o mare atenţie, în general, la alegerea adreselor.

4.2. Temporizatoare
Timpul intervine aproape în toate sistemele de control. Un exemplu tipic este: "La oprirea liftului, aşteaptă 0,5 secunde pentru frânarea (încetinirea) liftului, avansează până la limitatorul de nivel şi opreşte motorul, aşteaptă o secundă şi aplică frâna" sau "Porneşte pompa hidraulică; dacă contactul auxiliar nu devine 1 în 0.7 secunde, semnalizează "defect la contactor"; dacă acesta este 1, aşteaptă 2 secunde şi acţionează robinetul de

83 admisie; dacă presiunea hidraulică nu este OK în 3 secunde, semnalizează "defect hidraulic" şi opreşte pompa". Din acest motiv un sistem AP trebuie să includă temporizatoare ca parte a limbajului său de programare. Există multe tipuri de temporizatoare, câteva dintre ele fiind ilustrate în figura 4.5.

Figura 4.5. Diferite temporizatoare: a) cu temporizare la anclanşare; b) cu temporizare la declanşare; c) un impuls de durata fixă De departe, cel mai utilizat este cel cu temporizare la anclanşare, din figura 4.5.a. Toate celelalte pot fi simulate cu acesta şi cu un bit al acestuia. O tranziţie 0→1 la intrare este întârziată la ieşire cu un timp prestabilit T, dar o tranziţie 1→0 la intrare nu este întârziată deloc. Un semnal de intrare mai scurt decât T este ignorat. AP GEM-80 are doar acest tip de temporizator, numit întârzietor. Temporizatorul la declanşare din figura 4.5.b trece ieşirea din 0 în 1 instantaneu cu intrarea, dar întârzie la ieşire tranziţia 1→0. O utilizare obişnuită a temporizării la declanşare este pentru înlăturarea vibraţiilor de contact ale unui semnal de intrare. Un temporizator la declanşare poate fi obţinut dintr-un temporizator la anclanşare prin utilizarea semnalului de intrare inversat şi luând în considerare inversul semnalului de ieşire al temporizatorului (deşi programul pierde din claritate). Figura 4.5.c este un temporizator declanşat pe front care generează un impuls de durată fixă pentru fiecare tranziţie 0→1 a intrării 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 numărătoarelor sau la transferul unor informaţii dintr-o locaţie î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 către utilizator. Prima din aceste valori este unitatea de timp (în ce unităţi se măsoară timpul). Unităţile uzuale sunt 10 ms, 100 ms, 1 s, 10 s şi 100 s.

ce pot fi utilizate în program. Notaţiile firmei Allen Bradley pentru temporizatoare: a) temporizator TON. un temporizator cu un preset de 150 şi o bază de timp de 10 ms va întîrzia 1.6. .6 arată semnalele generate de către un temporizator la anclanşare al AP PLC-5 (numit TON) şi de către un temporizator la declanşare al AP PLC-5 (numit TOF): • EN (pentru enable=validat) simbolizează intrarea temporizatorului • TT (pentru durata temporizării) este activat pe durata măsurării timpului • DN (pentru done=sfârşitul temporizării) arată că temporizarea s-a încheiat.5 s. Unii. cum ar fi la AP GEM-80. În mod normal precizia este în legătură cu durata ciclului program. un temporizator la declanşare utilizat la frânarea unui lift poate avea diferite durate ale temporizării. În AP mici preset-ul poate fi fixat de către programator. b) temporizator TOF În AP mari. după cum liftul se deplasează cu viteză mare sau cu viteză mică. cu valoarea prestabilită memorată în blocul VALUE (valoare). Figura 4. în AP mari durata temporizării poate fi modificată din interiorul programului. Următoarea valoare definită este durata temporizării (adeseori numită preset). Aceasta este dată. tratează temporizatorul ca un bloc de întârziere similar celui din figura 4. Tehnica programării temporizatoarelor este diferită de la producător la producător. De exemplu. de obicei.a. Fiecare temporizator este prevăzut cu câteva semnale.84 Unităţile utilizate nu afectează precizia temporizatorului. timpul scurs (numit deseori timp acumulat) poate fi accesat prin program pentru utilizarea lui în altă parte (se poate întîmpla ca un program să trebuiască să înregistreze cât timp a durat o anumită operaţie). în valori ale bazei de timp. Figura 4.5. De exemplu.

Diferite tipuri de temporizatoare folosite pentru aceeaşi aplicaţie: a) notaţia AP PLC-5.7. c) notaţia DBF a firmei Siemens . b) notaţia AP GEM-80.85 Figura 4.

c) simbolurile firmei Allen Bradley pentru temporizatorul din figura b. să .8. semnalele temporizatoarelor fiind disponibile sub formă de constante. Acesta este cunoscut sub numele de temporizator fără reţinere. Figura 4.7 este o aplicaţie tipică programată pentru un AP PLC-5. Figura 4. un GEM-80 şi un SIMATIC S5-115U (cu DBF).7 verifică contactul auxiliar şi semnalizează un defect de acţionare dacă sunt probleme.86 Firma Siemens utilizează o idee similară dar are diferite tipuri de temporizatoare. Acest contact nu poate fi verificat mai devreme de 1. Contactorul are un contact auxiliar care se închide atunci când contactorul anclanşat şi care spune efectiv când merge motorul. Dacă contactorul se declanşează datorită unei suprasarcini. pentru a lăsa timp pentru comutarea contactului. sau datorită apăsării unui buton de Avarie-Stop. d) simbolul firmei Siemens pentru temporizatorul din figura b Valoarea acumulată a temporizatoarelor discutate până acum devine 0 de fiecare dată când intrarea trece în 0. Observaţi diferenţele de utilizare a temporizatoarelor şi de procesare a semnalului de defect. b) temporizator cu reţinere.a. Temporizatoare: a) temporizator fără reţinere. aşa cum s-a reprezentat în figura 4. însă. semnalul de la contactul auxiliar va fi pierdut.8. sau datorită căderii tensiunii de alimentare. Majoritatea temporizatoarelor AP sunt de acest fel.5 s după anclanşarea contactorului. Uneori este util. Programul comandă contactorul unui motor care este pornit şi oprit prin butoane. pentru a putea fi utilizate în altă parte. AP PLC-5 utilizează temporizatoarele la sfârşitul treptelor de program. Figura 4.

Cu o bază de timp de 1 sec timpul maxim ce poate fi măsurat este de max 546 min sau aproximativ 9h (dacă temporizatorul numără până la 32767). Dacă valoarea acumulată atinge valoarea prestabilită. Similar. semnalul "valoarea zero" este deseori disponibil. De exemplu. La motoarele mari. În consecinţă. temporizatorul continuă de la valoarea la care s-a oprit. AP trebuie să poată număra obiectele ce trec pe o bandă sau să numere de câte ori se petrece un eveniment. Un temporizator obişnuit poate număra până la 32767 de unităţi ale bazei de timp (corespunzător la 16 biţi). Când intrarea este 1 din nou. ca în figura 4. valoarea acumulată poate fi citită şi utilizată în alte părţi ale programului.3. într-un proces în care se efectuează transportul unor obiecte.8.87 dispunem de temporizatoare care să păstreze valoarea curentă. Valoarea acumulată poate fi adusă la 0 prin aplicarea unui 1 pe intrarea de Reset. Dacă trebuie măsuraţi timpi mai mari (sau timpi cu o rezoluţie mai mică de 1 s) pot fi utilizate împreună temporizatoare şi numărătoare. Ca şi la un temporizator. Al doilea număr este valoarea prestabilită.9. poate fi necesar ca operatorul să modifice numărul obiectelor din proces prin tastatura unui calculator sau cu un terminal de programare. aspect discutat în paragraful următor. care va fi incrementată la fiecare tranziţie 0→1 a intrării de numărare înainte sau va fi decrementată la fiecare tranziţie 0→1 a intrării de numărare înapoi. aspect descris în paragraful următor. Câteva AP mai vechi. această funcţie poate fi realizată cu un numărător. Vor fi două numere asociate fiecărui numărător. care poate fi considerată ca valoarea destinaţie a numărătorului.9.b. este generat un semnal de "Numărare terminată". toate AP includ anumite tipuri de numărătoare. Numărătoare În multe programe de AP numărătoarele sunt componente fundamentale. chiar dacă semnalul de intrare este 0. Un numărător poate fi reprezentat ca în figura 4. deşi nu toate AP vor avea aceleaşi facilităţi pe care le vom descrie. de exemplu. Acesta se numeşte temporizator cu reţinere. AP PLC-5 şi ale firmei Mitsubishi . 4. Dacă la un anumit tip de AP nu sunt disponibile temporizatoare cu reţinere. pot număra doar până la 999. Valoarea prestabilită poate fi modificată prin program. care lucrează în BCD. la fel ca şi în cazul temporizatoarelor. Producătorii de AP au realizat mai multe tipuri de numărătoare. comportându-se ca în figura 4.b. trebuie înregistrat numărul de porniri. Trebuie utilizat un semnal separat pentru aducerea temporizatorului la 0. Primul este valoarea acumulată.

C5:4.88 utilizează numărătoare cu numărare înainte (CTU).9. b) operaţia de numărare AP SIMATIC-S5 al firmei Siemens. Când o încărcătură este completă. de la care se pot utiliza semnalele de ieşire. numărare înapoi (CTD) şi reset (RES) ca terminatori de treaptă în program.10 prezintă o aplicaţie de numărare simplă . La atingerea valorii prestabilite numărătoarele generează un semnal de "Numărare încheiată" (de exemplu. Figura 4.DN). Obiectele ce trec pe un conveior sunt detectate printr-o fotocelulă şi numărate. Figura 4. . realizată cu AP PLC-5. Master al firmei ABB şi GEM80 tratează un numărător ca un bloc intermediar într-o DBF sau treaptă în DS. care poate fi utilizat ca un contact. GEM-80 şi SIMATIC-S5. Numărător reversibil: a) schema internă a numărătorului.

Consideraţii ca aceasta sunt cunoscute sub numele de "inginerie software". evenimentul din treapta a doua este un contact auxiliar de la un contactor ce comandă un motor. Dacă numărătorul 2 conţine valoarea 23516 iar numărătorul 1 conţine valoarea 457. cu distanţa între impulsuri fixată printr-un temporizator. Ca şi temporizatoarele. Această tehnică este des utilizată la înregistrarea orelor de mers ale pompelor. semnalul DN din treapta a doua nu este prezent. Când se doresc valori mai mari. După ce operatorul face acest lucru. cu durata de un ciclu program.al acesteia pentru conveior şi un contact -⎪ ⎪. Atunci se va utiliza un contact -⎪/⎪. Aceasta va adăuga o treaptă la fiecare program. Deşi mai mici. generează un impuls pentru incrementarea numărătorului următor şi pentru resetarea sa. semnalul de "numărare încheiată" de la primul fiind utilizat ca intrare de numărare pentru al doilea şi ca reset pentru el însuşi. Programul este scris pentru un PLC-5. atunci valoarea finală este 23516457. . Dacă temporizatorul a fost pornit şi nu a ajuns la valoarea prestabilită. numărătoarele pot fi puse în cascadă. Presupunem că numărătorul 1 păstrează valorile 0-999 iar numărătorul 2 păstrează miile. Dacă este adăugat un buton de testare a becului.al acesteia pentru bec. Figura 4. Când temporizatorul atinge valoarea prestabilită. Când un numărător atinge valoarea prestabilită. pentru programarea mentenanţei. programele de la AP GEM-80 şi SIMATIC-S5 prezintă amândouă o mică problemă care nu se observă la o primă vedere. dar aceeaşi idee poate fi utilizată la orice AP. ventilatoarelor şi altor dispozitive similare. În acest caz. pentru ca operatorul să deplaseze încărcătura.11 este o variantă a ideii de legare în cascadă a numărătoarelor pentru a obţine o temporizare (contorizare) foarte mare. acest titlu fiind discutat în capitolul următor. se poate apăsa un buton de restart şi astfel se porneşte secvenţa din nou. Prima treaptă generează un impuls ce permite începerea funcţionării. apăsarea lui va cauza oprirea conveiorului. care resetează şi reporneşte temporizatorul din treapta întâi iar în treapta a doua se formează un impuls cu durata de un ciclu program. Impulsurile rezultate sunt numărate de numărătoare legate în cascadă pentru a furniza secundele/minutele/orele/zilele. În ambele cazuri acest lucru poate fi preîntâmpinat prin utilizarea unei memorii interne care să arate că "numărarea este completă". este generat semnalul DN. numărătoarele permit numărarea până la 32767.89 conveiorul este oprit şi becul de încărcare completă "Gata" este aprins.

b) AP GEM-80: c) AP SIMATIC-S5 .90 Figura 4. Aplicaţii ale numărătoarelor la: a) AP PLC-5.10.

parte a schemelor de comandă. Ele pot fi făcute fără reţinere prin resetarea numărătoarelor atunci când evenimentul de controlat este 0. Numărătoare în cascadă Temporizatoarele pentru durate mari.11. 4. de asemenea. Reprezentarea numerelor Până acum s-a discutat despre operaţii pe bit.4. pe zile.1.91 Figura 4. sunt în mod normal cu reţinere (îşi păstrează valoarea atunci când evenimentul controlat nu este 1). Asemenea operaţii necesită existenţa posibilităţii procesării datelor numerice.4. construite cu numărătoare. Uneori. Numerele sunt. . un AP trebuie să calculeze ritmul producţiei în unităţi pe oră. dar acestea sunt rar utilizate. Aplicaţii numerice 4. sau să furnizeze cantitatea de lichid existentă într-un rezervor.

acestea constau în două cuvinte de 16 biţi care conţin mantisa (partea numerică) şi exponentul. numite şi numere reale. b) întreg lung pe 32 biţi. şi anume IEEE format 32 biţi simplă precizie. care reprezintă 104. prezentat în figura 4.6 °C) poate fi utilizată o formă de reprezentare similară celei utilizate într-un calculator. Figura 4. inevitabil.12. dar există şi un standard care le reuneşte. Există. în complement faţă de 2. Reprezentări numerice: a) întreg pe 16 biţi standard. Acestea sunt numere în virgulă mobilă. în baza 10 numărul 74057 va avea mantisa 7.92 Majoritatea AP lucrează cu cuvinte pe 16 biţi permiţând reprezentarea numerelor în gama 0÷65535 sau. În general. pot fi utilizate două cuvinte de 16 biţi care permit o gamă de –2147483648 ÷ +2147483647. De exemplu. Unde sunt necesare numere cu zecimale (de exemplu. fiind 1 pentru numerele negative şi 0 pentru cele pozitive. În ultimul caz bitul cel mai semnificativ reprezintă semnul. în gama -32768 ÷ +32767.12. Reprezentarea în complement faţă de 2 este cea mai utilizată în AP. pentru o temperatură de 45. c) real IEEE 32 biţi .c. Numerele ca acestea se numesc întregi. AP lucrează în binar şi reprezintă mantisa şi exponentul în complement faţă de 2. Când este necesară procesarea unor întregi înafara domeniului menţionat.4057 şi exponentul 4. diferenţe de prezentare între producători. dar nu singura. 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 "cuvînt dublu").

A doua problemă apare atunci când testele (comparaţiile) sunt făcute cu numere reale.175E-38 pentru IEEE simplă precizie).175E-38 ÷ 3. Aceste echipamente utilizează formatul BCD. în consecinţă. totuşi. . AP F2 al firmei Mitsubishi. are instrucţiunile FRD (pentru BCD→binar) şi TOD (binar→BCD). AP PLC-5. de exemplu. Prima apare atunci când sunt utilizate împreună numere mari şi numere mici. Deoarece numărul mai mic este în afara gamei (0. numere întregi. Anumiţi producători au micşorat exponentul pentru o mai mare precizie în mantisă. ci doar 0÷9. Figura 4. Majoritatea AP au. instrucţiuni care convertesc formatul BCD în format binar intern şi invers. de exemplu.2E18). cu 4 biţi/decadă.4=9. La AP Master al firmei ABB. Această reprezentare produce o risipă de biţi. este utilizată pentru conectarea cu exteriorul a unor echipamente cum ar fi afişaje digitale sau comutatoare decadice.600 E1). ceea ce permite precizie sporită.4. în BCD.4 120 C=9. dar în general este mai bine ca pentru a realiza testele să se utilizeze.93 Aceasta dă o gamă de ±(1. Să presupunem că avem un sistem ce operează în baza 10 cu patru cifre semnificative. acesta va fi ignorat.00096E5). Este. Ultima reprezentare.o formă convenabilă de conectare cu exteriorul. pe cât posibil. În general. gama este ±(5. Majoritatea calculatoarelor păstreaza 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. un simplu "=" este foarte riscant. Tipurile numerelor disponibile în fiecare AP variază considerabil în funcţie de model (şi de preţ). şi că dorim să adunăm 857800 (scris ca 8.4 nu face=9.13 arată schematic o operaţie tipică. există două probleme. ci va executa linia 140. Conversia numerelor zecimale în numere binare poate fi făcută doar cu rezoluţia permisă de formatul în virgulă mobilă (1.578E5) şi 96 (scris ca 9.4"): GOTO 150 140 PRINT ("3+6.4E-20 ÷9. de exemplu.402E38). dând rezultatul 857800+96=857800. Operatorii ≥ sau ≤ sunt siguri. Numerele reale sunt foarte utile dar limitările lor trebuie clar înţelese. urmată de linia 150)! Dacă numerele reale trebuie utilizate pentru comparaţii. deoarece 6 numere (de la 10 la 15) nu se reprezintă.4 130 IF (A+B)=C THEN PRINT ("3+6. FACE = "): PRINT C 150 PRINT ("AI GRIJĂ CU NUMERELE REALE!") Acest program simplu nu face ceea ce vă asteptaţi să facă (adică nu va executa linia 130 şi salt la 150.

faţă de alte AP.a prezintă forma treptei. Sursa şi destinaţia pot fi oricare din locaţiile unde pot exista date numerice. comparări şi ieşiri ale datelor numerice de la numărătoare sau temporizatoare. AP PLC-5 al firmei Allen Bradley utilizează o treaptă de DS pentru fiecare operaţie de transfer şi este.2. Acest mod de lucru este valabil şi pentru toate operaţiile aritmetice pe care le vom considera. cel mai simplu de explicat pentru început. dar următorul model în gamă.14. poate procesa numere întregi de 16 şi 32 biţi şi numere în virgulă mobilă. aceasta făcând din el în esenţă un AP cu prelucrare de bit. Aceasta începe cu câteva condiţii binare. dacă toate acestea sunt 1. valoarea unui numărător să fie trimisă la un modul de ieşire pentru a fi indicată pe un afişaj digital.4. ieşirea MOV (pentru transfer) este executată. valoarea prescrisă a unui temporizator să fie modificată în funcţie de condiţiile procesului. transferând data de la sursă la destinaţie.94 permite doar transferuri.13. 4. de exemplu: . sau rezultatul unor calcule să fie utilizat în altă parte a programului. Posibilităţi asemănătoare pot fi întâlnite şi la firmele Allen Bradley şi ABB. Figura 4. Aplicaţii ale BCD La firma Siemens. Figura 4. modelul SIMATIC-S5 115U utilizează numere întregi pe 16 biţi. Transferul datelor Uneori este necesar ca numerele să fie transferate dintr-o locaţie în alta. probabil. dar poate conduce la utilizarea mai multor trepte de program pentru o operaţie dată. 135U.

se pot utiliza instrucţiunile FRD şi TOD (vezi figura 4. Firmele Siemens şi CEGELEC utilizează o abordare uşor diferită.14. • Figura 4. toţi cei 16 biţi) • Memorie internă de întregi. de exemplu. b) AP SIMATIC-S5. utilizând.PRE sau T4:52. C5:22. conversia este făcută automat. C5:17.PRE • Valoarea acumulată a unui numărător sau temporizator. Deci.13). F 8:32 Observaţi că toate aceste date sunt interpretate ca fiind numere binare.ACC • Cuvânt de dată de I/E. de exemplu.14. de exemplu. de exemplu. exemplul din figura 4. Transferul datelor la: a) AP PLC-5. dacă sunt necesare date în cod BCD. o cale de lucru mai puţin directă. de exemplu: I :23 (modulul 3 în SB 2. c) AP GEM-80 Dacă datele sunt transferate între forme de numere întregi şi între forme de numere în virgulă mobilă.ACC sau T4:6. Amândouă tratează un transfer de date cu două instrucţiuni separate. . care conduce la programe mai compacte şi cu mici îmbunătăţiri împotriva surselor de erori. toţi cei 16 biţi) O :47 (modulul 7 în SB 4. N 7:24 • Memorie internă în virgulă mobilă. Trebuie avut însă grijă la transferarea numerelor din virgulă mobilă în întregi deoarece pot apare erori dacă numărul în virgulă mobilă este în afara domeniilor întregilor.a transferă numărul din locaţia N7:34 la valoarea prestabilită a temporizatorului T4:6 atunci când condiţiile din treaptă sunt îndeplinite. însă. O ultimă remarcă: o constantă poate fi utilizată doar ca sursă.95 Valoarea prestabilită pentru un numărător sau temporizator.

A=B.un cuvânt de temporizator C .un cuvânt de numărător DW . şi Transfer (T) pentru a transfera date din acumulator la destinaţie.transferă numărul binar din locaţia specificată în treapta DS iar instrucţiunea-<OUT>. cu două intrări numerice corespunzătoare celor 2 valori ce vor fi comparate şi o ieşire binară. În figura 4.c şi figura 4. Aceste comparaţii sunt realizate de către elemente care au forma generală ca în figura 4.un cuvânt de intrare de 16 biţi QW . Data poate proveni (sau merge) din (în) orice zonă de memorie.c valoarea binară de la cuvântul de intrare de 16 biţi A12 este plasată într-o memorie internă de 16 biţi G24. 4. care indică faptul că o temperatură a urcat peste un nivel de siguranţă. Majoritatea AP asigură: A>B.14.14.4.14. cu instrucţiunea <BCDIN> şi <BCDOUT>. ca în figura 4.transferă valoarea din treaptă la adresa specificată. Instrucţiunea -<AND>. A ≤ B.a va deveni mai clară când vom discuta despre operaţii aritmetice în paragraful 4. câteva din ele fiind: IW . La AP Master al firmei ABB.14.3. care devine 1 dacă este îndeplinită o condiţie specificată.4.memorie de cuvinte pe 16 biţi Deci. Sunt posibile multe comparaţii. punctele între care trebuie transferată data sunt conectate simplu în DS. A<B . Compararea datelor Deseori este necesară compararea datelor în programele AP. sensul transferului fiind evident.14. figura 4. Diferenţa între figurile 4. A ≥ B . Se poate face conversia BCD/binar.b.b poate fi programată în felul următor: : L T113 (cuvânt de temporizator în acumulator) : T DW45 (conţinutul acumulatorului în memoria de cuvinte 45) Utilizarea acumulatorului nu este evidentă la AP GEM-80 al firmei CEGELEC.15.b.un cuvânt de ieşire de 16 biţi T .96 utilizând un acumulator separat (o locaţie de memorie de 1 cuvânt). Firma Siemens utilizează instrucţiunile Load (L) pentru a transfera data de la sursă în acumulator. Exemple tipice sunt: • un numărător de obiecte care arată dacă a fost livrat un anumit număr de obiecte • circuite de alarmă.4.

Figura 4.16 prezintă setarea şi resetarea unui fanion de alarmă B3/21 (pentru o DS a AP PLC-5) şi F21. De exemplu: 26732+ 8647 -30605 .15. Bitul de alarmă este setat dacă temperatura (citită de la un modul de intrări analogice în format nn. care testează dacă A este între B şi C iar firmele CEGELEC şi SIEMENS au testul "≠". b) la firma Siemens (simbol DBF) 4. Compararea datelor Figura 4. A şi B sunt date numerice. Toate AP pe care le-am luat în considerare (în afară de F2) permit realizarea a cel puţin 4 operaţii aritmetice(+.-. Utilizare a comparării datelor: a) la firma Allen Bradley. are instrucţiunea Limit.0 °C. La numere reale testul "=" trebuie evitat din raţiuni prezentate la paragraful 4.97 unde.02 (pentru o DBF a firmei Siemens). Dacă o operaţie aritmetică dă un rezultat în afara acestei game. Valorile unui număr în complement faţă de 2 pe 16 biţi sunt în gama -32758 ÷ + 32767. alarma este păstrată până când temperatura coboară sub 40°C. În paragraful 4.4./). Trebuie avut grijă la operaţii cu întregi.4.1.4. Sunt posibile multe alte comparaţii. Operaţii aritmetice Procesarea datelor numerice implică realizarea operaţiilor aritmetice. Odată setată. AP PLC-5.4. de exemplu.*.1 am discutat despre numere întregi şi în virgulă mobilă. Figura 4.n °C şi memorată în N7:15 la AP PLC-5 sau în DW42 la AP SIMATIC-S5 115U) trece de 50.16. acesta va fi greşit.

98 rezultatul corect fiind 35379. De aceea. Există o relatare adevărată despre o avertizare falsă la un atac cu rachete petrecută în S. însă. cu o instrucţiune Move). în anii 60. Figura 4. când un sistem radar a primit ecouri de la Lună. Distanţa ţintei (calculată prin înmulţirea întârzierii ecoului cu viteza luminii) era greşită cu mult.A. AP PLC-5 utilizează blocuri matematice cum ar fi ADD. iar facilităţile sunt limitate în general la 4 operaţii matematice plus rădăcină pătrată la cele mai scumpe AP.A. ceea ce înseamnă că este un număr negativ şi se face complementul faţă de 2. Precauţii şi mai mari trebuie luate la împarţire. Eroarea s-a produs în felul următor. Aceasta a cauzat intrarea S. ecoul corespunzând unei rachete ce se apropia. cu grade diferite de uşurinţă şi de claritate. câteva luni mai târziu. Programul AP calculează pe baza lui o întârziere 0. MULT şi DIV. este indicat ca înaintea fiecărei împărţiri vulnerabile să se verifice limitele variabilelor pentru a fi siguri că se obţine un rezultat corect. în alarmă de gradul I. Se cere să se măsoare viteza unui obiect.17 este un exemplu tipic. şi care din această cauză ar putea rămâne nedetectată. Totul a mers bine până când.18 arată cum poate fi realizat un calcul simplu pentru un program cu autocorectare folosit la corectarea lungimii de tăiere. Figura 4. După adunare se obţine MSB=1.a). afară din gamă cu mult). care produce o eroare prin divizare cu 0. personalul a intervenit după câteva minute. Fiecare producător de AP îndeplineşte operaţiile aritmetice în maniere uşor diferite.U. . O eroare de programare sau o condiţie eronată dinspre proces sau un modul de intrare defect pot conduce la o eroare prin divizare cu zero. obţinând un rezultat eronat. Trebuie să ne gândim şi la faptul că o depăşire poate apare datorită unui defect la un modul de intrări analogice. SUB. dar nu a fost făcută nici o verificare iar rezultatul a fost o distanţă aparent legitimă. Precauţii similare trebuie luate la scădere şi înmulţire (ultima fiind deosebit de vulnerabilă la depăşire: 200*200=40000. aceasta realizându-se prin măsurarea decalajului de timp T dintre acţionarea a două fotocelule (PEC1 şi PEC2) aflate la distanţa d. Din fericire. trasmiţând către AP un semnal "1" logic. Numerele sunt convertite în binar. la un senzor al procesului sau chiar la proces. rezultând un program simplu. viteza fiind v = d/T (vezi figura 4. nu sunt atât de simple ca şi un limbaj de nivel înalt cum ar fi BASIC sau Pascal. Aceasta conduce la oprirea multor AP cu o "eroare de program".17. AP au un fanion de depăşire care poate fi examinat şi utilizat pentru a semnaliza o alarmă sau pentru fixarea unui rezultat 0 (de exemplu. Nici unele.U. PEC2 s-a defectat.

Operaţii aritmetice la AP PLC-5 AP SIMATIC-S5 115U al firmei Siemens evaluează instrucţiunile aritmetice în format LI. O instrucţiune Load transferă conţinutul sursei în acumulatorul 1. . O a doua instrucţiune Load transferă conţinutul acumulatorului 1 în acumulatorul 2.19 adună. ca în figura 4. Figura 4.19. operaţia din figura 4. deci. Să ne amintim de discuţia referitoare la acumulator. ale cărui instrucţiuni de încărcare (L) şi transfer (T) utilizează un acumulator intern.99 Figura 4. O instrucţiune aritmetică (+. de fapt. În limbaj de nivel înalt.17. şi conţinutul sursei în acumulatorul 1. două acumulatoare.18 ar putea fi descrisă prin expresia: Lungime de tăiere=câştig∗(lungime cerută – lungime măsurată) + +lungime de tăiere Figura 4. Un exemplu de eroare prin divizare cu 0 Cele mai puternice PLC-5 (cum ar fi 5-40) au o instrucţiune de calcul pe bloc care permite evaluarea unei expresii matematice într-o singură instrucţiune (treaptă).) lucrează cu conţinutul ambelor acumulatoare.-.18.etc. două numere şi transferă rezultatul în memorie. Există.

b) MASTER al firmei ABB.100 Figura 4.19. Operaţii aritmetice la AP SIMATIC-S5 Figura 4. Variabilele sunt accesate prin nume de baze de date .20. Operaţii aritmetice la AP GEM-80 şi AP MASTER: a) LINCON de la AP GEM-80 este o funcţie aritmetică utilizată pentru evitarea erorilor de trunchiere în operaţiile cu întregi.

Toate operaţiile aritmetice. Acestea necesită o elaborare foarte simplă.20.20.a şi 4. este: L DW30 ( lungime cerută în Acc1) L DW31 ( lungime măsurată în Acc1 iar lungimea cerută în Acc2) SUB (eroarea rămâne în Acc1) L DW32 (factor de amplificare în Acc1 iar eroarea trece în Acc2) MULT (corecţia se obţine în Acc1) L DW40 (vechea lungime de tăiere în Acc1 iar corecţia în Acc2 ) ADD (adună modificarea pentru a avea noua lungime de tăiere ş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. sunt consumatoare de timp.b. folosind subrutine) şi să nu se piardă timp prin executarea lor în fiecare ciclu program. şi este indicat ca acestea să fie executate doar atunci când este nevoie (de exemplu. şi în particular cele care implică numere în virgulă mobilă. . folosind formatul LI. reprezentate în figura 4.18 la AP ale firmei Siemens.101 Echivalentul figurii 4.

102 CAPITOLUL 5 METODE DE PROGRAMARE 5.b.1. Y. b) descompunere în blocuri mai mici Un exemplu de logică combinaţională ar fi comanda robinetului de încărcare pentru o pompă hidraulică. Cea mai simplă din acestea este cea de-a doua. B.1. cu un set de ieşiri Z. Figura 5. C. Schema de comandă poate fi concepută fie prin tratarea în ansamblu a aplicaţiei (figura 5.a.1. a căror stare este determinată de către intrările A. ca în figura 5. X. în care schema poate fi descompusă în blocuri mai mici. Programarea logicii combinaţionale Orice sistem de control bazat pe semnale discrete poate fi reprezentat prin figura 5.1. W. ce trebuie activat atunci când: . D. starea fiecărei ieşiri fiind determinată numai de către stările intrărilor corespunzătoare.a). Logica combinaţională: a) privire la nivel general. fie prin descompunerea ei în blocuri mai mici. etc.. cu o ieşire pe bloc.1. etc.

Funcţionarea ieşirii Z poate fi acum transpusă direct în DS (figura 5. b) în DBF Aşa cum s-a amintit la început. neputându-se însă impune o metodă standard de realizare a programelor pentru logica combinaţională.b) sau în DBF (figura 5. Pentru fiecare ieşire se poate realiza aşa-numitul tabel de adevăr în care se scriu toate combinaţiile posibile ale stărilor intrărilor şi valorile ieşirii pentru fiecare din aceste combinaţii. unde fiecare ramură a unei trepte.a este dat un tabel de adevăr pentru o ieşire Z comandată de 4 intrări A. cea mai simplă cale constă în descompunerea sistemului de control într-un număr de blocuri mici. .2. Există 16 combinaţii posibile ale intrărilor iar Z este activată pentru 4 din acestea. D. În figura 5. Programarea logicii combinaţionale: a) în DS. C. respectiv fiecare poartă ŞI.3.c). fie cu DBF (figura 5. B. Figura 5. fiecare cu o ieşire şi câteva intrări. corespunde unui rând din tabelul de adevăr.2).3.3.103 Pompa merge ŞI (Este selectat "creştere" ŞI limitatorul de sus al robinetului nu este atins) SAU (Este selectat "scădere" ŞI limitatorul de jos al robinetului nu este atins) Funţionarea acestui robinet poate fi implementată fie prin DS.

Cu un program AP.4. însă. . Programarea logicii combinaţionale pe baza tabelului de adevăr: a) tabelul de adevăr. aşa cum este prezentat în figura 5. astfel încât scopul trebuie să fie claritatea programului. mai degrabă decât simplitatea lui. c) DBF corespunzătoare tabelului de adevăr Utilizarea metodei tabelului de adevăr la programarea circuitelor logice combinaţionale conduce la circuite de tip ŞI – SAU. b) DS corespunzătoare tabelului de adevăr.104 Figura 5. formă numită sumă de produse. Clarificarea logicii combinaţionale Apare o întrebare inevitabilă: "Este acesta cel mai simplu program?". costul contactelor suplimentare este 0. Când un circuit este construit din porţi logice sau relee este foarte important ca acesta să fie obţinut cu un număr minim de porţi sau contacte. Singura modificare care trebuie făcută întotdeauna (din nou pentru claritate) este plasarea contactelor comune în afara ramurilor. Tehnici ca diagramele Karnaugh şi teoremele algebrei booleene permit obţinerea unor soluţii mai simple. Răspunsul este: "Probabil că nu". pentru reducerea costurilor.4.3. Figura 5.

d) programul derivat din tabelul de adevăr.5. Tabelul de adevăr (figura 5. pornirea unor pompe (1.d.5.2. utilizând DS minimală se maschează modul de lucru al comutatorului. Pe de altă parte. c) tabel de adevăr. 2) de la un pupitru de comandă.e.105 Figura 5. 5.5.b.5.Minimizarea nu aduce claritate: a) comutatoarele pupitrului de comandă. e) programul minimal Să considerăm. b) conexiunile comutatoarelor. În logica secvenţială.5. ceea ce face mai dificilă detectarea defectelor.5. starea unei ieşiri depinde nu numai de . Soluţia este contraindicată pentru că un defect al sursei L va cauza pornirea ambelor pompe. cum este cel din figura 5.c) furnizează DS din figura 5. comutatorul tripoziţional a fost conectat la AP cu doar două blocuri de contacte (şi nu cu trei. ca în figura 5.a. cum ar fi trebuit). Pentru reducerea costurilor. dar DS minimală este cea din figura 5. pentru exemplificare. Programarea logicii secvenţiale Starea ieşirilor circuitelor combinaţionale era determinată numai de starea intrărilor.

c) tabelul ieşirii Dreptunghiurile reprezintă stările în care poate fi sistemul (motorul poate fi oprit sau pornit) iar săgeţile indică tranziţiile care determină schimbarea stării sistemului. de exemplu.b. care este iniţiată de către un buton de descărcare. dar nu obligatoriu. ci şi de ceea ce s-a întâmplat în prealabil. Figura 5.6. care este cunoscută ca diagrama stărilor. Acum se poate desena diagrama stărilor din figura 5. Amândouă defectele transferă comanda sistemului din modul automat în modul manual. După descărcare. Figura 5. circuitul de pornire a motorului din figura 5. gata pentru următoarea descărcare. Dacă nu se apasă nici un buton. Dacă motorul merge. în funcţie de ce s-a întâmplat ultima dată. Observaţi conectarea butonului STOP şi sensul semnalului. paleta se retrage şi dozatorul se reumple. În acel moment este coborâtă o paletă (pentru a reduce emisia de praf) şi varul este descărcat.6. Considerăm. b) diagrama stărilor.7. O cantitate prestabilită de var este încărcată într-un dozator.106 starea intrărilor. Este o convenţie utilă să se noteze stările cu numere şi tranziţiile cu litere. să se noteze stările care se succed prin numere . apăsarea butonului STOP va cauza oprirea motorului. motorul poate fi pornit sau oprit.a.6. nu este posibil să se întocmească o tabelă de adevăr din care să poată fi dedusă comportarea cerută. Prin urmare.b. Operaţia poate fi descrisă prin figura 5. Este indicat.7. Există două situaţii previzibile de defect: defectul de neîncărcare a dozatorului într-un timp dat (probabil din cauza blocării alimentatorului cu bucăţi de material) şi defectul de nerecepţionare a semnalului de "dozator gol" (din nou într-un timp dat şi probabil din nou din cauza unei bucăţi de material rămase în dozator). O bară deasupra unui semnal (de exemplu. O diagramă de stare: a) contactorul motorului. Un buton de Oprire opreşte descărcarea iar un comutator opreşte alimentarea cu var a dozatorului. pentru a permite determinarea cauzelor defectelor. STOP OK) înseamnă că semnalul (L) nu este prezent la intrarea AP.a este un exemplu mai complex (în timp real).

pentru că nu există intercondiţionare între semnalele din definiţia celor două tranziţii: A=X (5. nu sunt permise trasee paralele. Definirea tranziţiilor necesită precauţie deoarece. Acesta este dat în figura 5. .4) de unde reiese că A şi G nu pot fi 1 logic simultan. Următoarea etapă este trecerea de la diagrama stărilor la programul AP.2) Aceasta va genera o comportare anormală a procesului şi probleme pentru programator. Prima stare este aceea în care sistemul intră din modul manual în automat şi alegerea ei trebuie făcută cu atenţie. dar este posibil ca la un moment dat ambele tranziţii A şi G să fie active simultan. dozatorul va fi umplut. respectiv D şi H.107 consecutive iar tranziţiile prin litere succesive. sistemul va trece imediat în starea 1 (Semnalizare Gata).3) G=Y+Z (5.c. dacă nu. Consideraţii similare pot fi făcute şi pentru tranziţiile C şi F. dacă dozatorul este deja plin.1) G=Y+Z (5. Aici starea 0 (Comandă Alimentare) este alegerea optimă. în mod normal. Această manieră de definire dă prioritate tranziţiei de defectare faţă de tranziţia normală. Alegerea oricărei alte stări ca primă stare poate conduce la pierderea unui timp datorat trecerii prin toate stările fără a exista material în dozator. Dacă tranziţia A a fost definită ca "Alimentare completă" (X) iar tranziţia G ca "Întrerupere (Y) SAU Alimentare nepermisă (Z)" sistemul va lucra corect. Etapele de până acum sunt comune pentru toate metodele de programare a AP.7. Definirea corectă a tranziţiei A este: Alimentare completă ŞI nu este întrerupere ŞI este permisă alimentarea iar pentru tranziţia G: Întrerupere SAU Alimentare nepermisă adică: A =X⋅Y⋅Z (5. Acum se poate construi un tabel al ieşirilor în funcţie de stări. Următorul pas este realizarea programului complet (în format DS sau în alt limbaj).

Diagrama stărilor pentru un proces real: a) structura instalaţiei.108 Figura 5. b) diagrama stărilor.7. c) tabelul ieşirilor .

Figura 5. Figura 5. paleta este ridicată şi nu este apăsat butonul Manual.8.8. Aceasta este realizată prin treapta de program din figura 5. descris la paragraful 2. Selecţia AUT/MAN .9.9.5.8 nu este obligatorie. prin intermediul cărora se va evidenţia principiul folosit la programarea logicii secvenţiale. Prin descompunerea programului corespunzător diagramei noastre de stare în 4 zone. ca în figura 5. dar este esenţială pentru menţinerea separată a tranziţiilor şi stărilor şi neamestecarea lor. Structura actuală din figura 5.1. Ciclul program şi diagramele de stare Prima dată se face selecţia AUT/MAN. putem controla ordinea în care va opera fiecare stare. Modul automat este validat numai dacă nu există defecte (Permis Automat). Pentru exemplul discutat vor fi prezentate doar fragmente de program.109 Programul se bazează mult pe ideea ciclului program.

acţiunea sa nefiind clară deloc (acest stil de programare este cunoscut sub numele de "programare spaghetti"). Figura 5. Să considerăm următorul exemplu.9). Observaţi că aceste stări sunt setate şi resetate de către tranziţii. stări şi ieşiri în format DS. dar programarea în funcţie de ieşiri poate conduce la programe foarte întortocheate şi dificil de înţeles. astfel că intrările sunt examinate numai la momentul corect din secvenţă. Am descris ideile de bază pentru tranziţii.b). . Tehnica diagramei stărilor este foarte puternică. Observaţi că primul contact din fiecare treaptă este o stare. Acest lucru este adevărat. În final avem ieşirile.10. ca în figura 5. cât şi pentru selecţia AUT/MAN (vezi figura 5.110 Apoi urmează tranziţiile.12.7.11. Figura 5. primele trei dintre ele fiind prezentate în figura 5. dar poate conduce la confuzii dacă filozofia de bază nu este înţeleasă. Primele trei tranziţii Stările sunt date în figura 5. astfel că după o cădere a tensiunii de alimentare sistemul va fi adus la modul MAN. Cel mai amintit argument este acela că această tehnică determină un număr mai mare de trepte sau simboluri logice. Metoda este la fel de uşor de implementat şi în formatul DBF.10. Cu excepţia stării 0 au fost prevăzute automenţineri simple atât pentru stări. aceasta combină operarea manuală şi automată. decât o abordare directă programată după ieşiri [25].13 este o treaptă care corespunde pe undeva stării 2 din diagrama stărilor (figura 5. O ieşire este activată de starea (stările) corespunzătoare în modul automat sau de la un buton fără reţinere în modul manual.

b. Dacă nu este concepută cu . Trei din cele şase stări Figura 5.12. Două din ieşirile procesului Pot apare probleme atunci când tranziţiile au loc împotriva ciclului program.111 Figura 5. cum ar fi tranziţia E din figura 5.11.7.

Figura 5. Ventilatorul trebuie să meargă în starea 3 şi în starea 6. O instrucţiune RET încheie secvenţa. În practică stările şi tranziţiile trebuie redenumite pentru a păstra o ordine secvenţială a numerelor stărilor şi a literelor tranziţiilor. Modificările programului sunt simple: o nouă tranziţie J şi o nouă stare 6. . prin instrucţiuni STL (STepLadder = DS cu stări). modificări la starea 0 (adăugarea -⎪/⎪.pentru starea 6) şi la starea 4 (intrare în starea 4 prin J şi nu prin D). Noua diagramă de stare este prezentată în figura 5. înainte ca paleta să fie ridicată.6. dar sunt simple la o diagramă a stărilor. Să presupunem (aşa cum se poate întâmpla în realitate în această aplicaţie) că este necesar să adăugăm un ventilator de extragere a prafului.14. adăugarea unui temporizator de 1 minut (pentru tranziţia J) şi o nouă ieşire pentru contactorul ventilatorului. Acestea au prefixul S şi adresele între S600 şi S647. Chiar şi modelul simplu F2 al firmei Mitsubishi poate opera cu DSS.112 atenţie. o secvenţă de program construită doar în jurul ieşirilor poate sfârşi uşor prin a face simultan două lucruri sau nici unul. diagrama stărilor este atât de puternică încât majoritatea AP de dimensiune medie o includ în limbajul lor de programare. modificările sunt înşelătoare într-o abordare directă. pentru a reduce conţinutul de praf din incintă. Un exemplu de programare spaghetti corespunzătoare stării 2 De asemenea. toate celelalte sunt automat resetate. Conform paragrafului 3.13. Au caracteristic faptul că atunci când una sau mai multe sunt setate. datorită modului de operare al ciclului program. Acesta ar trebui să lucreze în timpul descărcării şi încă aproximativ un minut după terminarea descărcării. Tot ceea ce este necesar este o nouă stare 6 (Ventilaţie după descărcare).

secvenţa poate fi comandată cu un numărător care selectează pasul cerut (sau starea cerută). Numărătorul este acţionat atunci când sunt îndeplinite condiţiile pentru pasul curent (sau starea curentă).b. AP GEM-80 are o instrucţiune SEQR (secvenţă) care se comportă ca un uniselector de 16 paşi.a devine astfel DS din figura 5. Când nu există ramuri şi secvenţa este un inel simplu (operând asemeni unui selector).113 Figura 5. care poate fi programată în LI cu aceste prime instrucţiuni: LD X400 S S 601 STL S 601 OUT Y 431 LD X 401 S S 602 etc.15.14. .15. Modificări la diagrama stărilor Exemplu Diagrama stărilor din figura 5.

faptul că datele ce trebuie controlate sunt vizibile doar sub formă de tabel poate face depanarea mult mai dificilă. Acestea sunt numite Intrare Secvenţială (SQI) şi Ieşire Secvenţială (SQO) şi sunt comandate de către un numărător care dă pasul curent (sau starea curentă). DSS la F2 al firmei Mitsubishi: a) diagrama stărilor. Pentru SQI tabelul conţine intrările corespunzătoare tranziţiilor necesare pentru a ieşi din fiecare stare.15. Pentru SQO tabelul conţine numele ieşirii ce trebuie activată în fiecare stare.114 Figura 5. ca în figura 5. . b) parte a DS corespunzătoare începutului lui a) Figura 5. Instrucţiunile de secvenţiere de la firma Allen Bradley AP PLC-5 are două instrucţiuni care îndeplinesc acelaşi rol.16. Ieşirea SQI acţionează numărătorul SQO atunci când intrările corespunzătoare stării prezente sunt adevărate. Deşi SQI şi SQO dau programe foarte compacte.16. Fiecare instrucţiune are un tabel cu câte un rând corespunzător fiecărui număr de pas (de stare).

Programatorii implicaţi în software-ul comercial (pentru evidenţă contabilă. principiile se aplică la toate. Pe lângă aceasta. 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 condiţia pornirii pompelor principale? • Dacă pompa de antrenare se opreşte. hoteluri. de ce nu există. aceste cerinţe simple generează multe semne de întrebare: • Trebuie să meargă toate cele trei pompe. Furnizorul/programatorul sistemului AP trebuie să se întâlnească cu ceilalţi .115 5. rezervări în transporturi. trebuie să se oprească şi pompele principale? • Ce semnale de protecţie există (de exemplu. În acest paragraf vom examina factorii care trebuie luaţi în considerare în proiectarea sistemelor de control cu AP. trebuie ca pompa (pompele) neutilizată(e) să fie în aşteptare cu comutare automată? • Cum sunt pornite pompele. cum va (vor) fi selectată(e) pompa (pompele)? • Dacă sunt utilizate mai puţin de 3 pompe. este necesară alocarea de I/E semnalelor procesului şi comenzilor operatorului şi stabilirea modului de realizare a legăturii operator-proces.17 prezintă cele 6 etape prin care trebuie să treacă orice proiect software. cum ar fi următoarea: "sistemul hidraulic va avea trei pompe hidraulice plus o pompă de antrenare a uleiului". Deşi puţine proiecte sunt compartimentate atât de net ca şi acesta. etc. Figura 5. Ingineria software O specificaţie tipică pentru un sistem de control poate să se încheie cu o cerinţă simplă.3. Prima etapă este analiza problemei ce trebuie rezolvată. pornind de la ideile originale ale utilizatorului (probabil imprecise) şi ajungând la un sistem care funcţionează bine [46]. sau doar una.) întâmpină probleme similare şi au generat termenul de inginerie software pentru a descrie cum se realizează un proiect software. Proiectanţii de sisteme AP trebuie să realizeze un program care să expliciteze aceste cerinţe adeseori vag exprimate. sunteţi siguri că nu există? • Aceste protecţii ar trebui să oprească pompele sau doar să producă alarmă? Adeseori asemenea întrebări vor arăta că furnizorii s-au gândit doar la felul echipamentului necesar şi nu cum va fi utilizat acesta. temperatură/nivel)? • Dacă nu există. sau două? • Dacă trebuie să meargă mai puţin de trei. Ca şi majoritatea specificaţiilor.

17. cum ar fi comenzile operatorului. sau cu display sensibil la atingere. care s-a oprit dintr-un motiv oarecare. deoarece probabil ceilalţi 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. Un aspect important adeseori trecut cu vederea în această etapă este necesitatea existenţei unor comenzi manuale. butoane. pentru a testa sau repune în funcţiune un proces în întregime automatizat. Etapele unui proiect La sfârşitul etapei de analiză trebuie să se obţină o descriere a modului de lucru al procesului. Figura 5.116 furnizori de echipamente şi cu utilizatorul pentru a determina ce comenzi sunt necesare şi cum vor fi abordate aceste comenzi. ce comenzi ale operatorului sunt necesare (şi cum trebuie acestea implementate). Dintre toate etapele. ce facilităţi şi mijloace trebuie incluse . Specificaţiile neclare trebuie clarificate în această etapă (cum ar fi pompele hidraulice de mai înainte). În această etapă trebuie stabilite aspecte importante. cea mai dificilă este analiza.

punerea în funcţiune a sistemului de control va fi întotdeauna ultima etapă într-o instalaţie nouă. Dacă ambiguităţile şi problemele sunt rezolvate la început.117 pentru a ajuta mentenanţa/detecţia erorilor şi. on-line. a pupitrelor de comandă şi a structurii programului. . Programarea poate fi realizată pe baza structurii definite în etapa de proiectare. posibil după câţiva ani de la punerea în funcţiune a instalaţiei. cum se poate şti dacă procesul este conform cu cerinţele utilizatorului? Cea mai grea etapă fiind depăşită. să se obţină o listă completă a semnalelor de I/E. specificaţii şi planificare. Trebuie înregistrat tot ceea ce s-a stabilit în prima etapă. Următoarea etapă este cea de proiectare a sistemului. în ultimul rând. precum şi replici de genul "credeam că ştiţi despre asta" nu este calea de a asigura o punere în funcţiune rapidă şi fără incidente. este discutată în paragraful următor. Inevitabil. a dulapurilor. Programatorii comerciali estimează că această etapă înglobează nu mai mult de 10% din efortul total. şi ce teste pot fi făcute mai târziu. Nici un program nu trebuie conceput ad-hoc direct de la tastatură. A patra etapă este cea de programare şi realizare. aceste teste sunt sărite şi testarea generală este făcută doar atunci când apar anumite defecte ascunse (minore). este important să se stabilească ce teste trebuie realizate înainte de pornirea instalaţiei. în care proiectantul trebuie să specifice ce va conţine sistemul de control. Operaţiile trebuie verificate pentru a vedea dacă sunt îndeplinite specificaţiile determinate la etapa 2. cum va funcţiona şi cum va fi testat. ar fi un mare consum de timp să se verifice toate traseele şi acţiunile menţionate în specificaţii. următoarele etape sunt uşoare. fără a mai verifica opţiunile rar utilizate. Chiar şi cu cel mai simplu sistem. proiectul trece în etapa a doua. Deseori. astfel că inginerul care conduce această lucrare de automatizare va fi cel care va suporta întârzierile celorlalţi. Dificultăţile (şi importanţa) acestei prime etape nu pot fi neglijate. cu specificarea curentului/tensiunii pentru fiecare şi poziţia lor în proces. Tot în această etapă trebuie definite şi necesităţile de testare finală. Cu programarea încheiată şi cu instalaţia construită se poate trece la etapa de testare şi punere în funcţiune. Această ultimă acţiune cunoscută ca "proiectare top-down" (de sus în jos). De aceea. De exemplu. Dacă nu se ştie cum va fi testat procesul. aceasta ar genera programarea spaghetti. aflarea în faza de instalare a faptului că utilizatorul doreşte ventilatoare cu viteză variabilă şi o alarmă de presiune minimă. Există o presiune generală de a declara instalaţia ca fiind funcţională atunci când au fost testate operaţiile de bază.

17. Cea mai bună cale de obţinere a unei descompuneri convenabile este proiectarea top-down (de sus în jos). şi anume comanda unei instalaţii numită "furnal de distribuire". Ideal. Nici o instalaţie nu este fixă. programatorul nu trebuie să scrie un singur program lung. În programarea comercială se estimează că mentenanţa consumă aproximativ 50% din efortul depus într-un ciclu de viaţă al proiectului.118 Testarea on-line poate fi. cea de mentenanţă. chiar şi de către persoane care nu au fost implicate în primele cinci etape. . un segment de program nu ar trebui să conţină mai mult de 10 trepte (sau echivalentul într-un alt limbaj de programare). Proiectarea top-down Nu este un lucru neobişnuit ca programele de AP să conţină câteva mii de trepte de DS. sistemul său de control trebuie întreţinut.17. eventual. trebuie făcute schimbări (de dorit minore). deoarece acesta este maximul pe care creierul uman îl poate memora la un moment dat. Aceasta împarte sistemul de control în zone. foarte dificilă şi consumatoare de timp. şi. până când sunt obţinute blocuri de program de dimensiuni convenabile. totuşi. generate de modificarea modului de lucru a instalaţiei. Un program nestructurat de o asemenea lungime poate fi foarte dificil de scris şi foarte greu de urmărit (pentru mentenanţă şi detectarea defectelor). împărţite în subzone şi aşa mai departe. Nivele de jos pot fi programate prin câteva trepte. Aceste modificări necesită schimbări în strategia de control. Acesta este comandat de un singur AP cu aproximativ 1700 trepte de DS. care sunt. Odată ce instalaţia a fost predată la cheie. De aceea. toate se modifică de-a lungul vieţii lor ca răspuns la schimbările pieţei şi ale tehnologiilor. la rândul lor. De aceea. este. Ideea este prezentată cel mai bine printr-un exemplu. de multe ori. este esenţial ca strategia de control şi programul să fie concepute şi documentate astfel încât să poată fi schimbate şi modificate uşor într-o ultimă etapă. ci să-l descompună în mai multe segmente de program mai mici. Aici este prezentată doar structura programului corespunzător sistemului de alimentare. Ultima etapă menţionată în figura 5. 5.18. trecută cu vederea. Structura acestor segmente este unul din cele mai importante aspecte ale etapei de proiectare din figura 5. fiecare din ele putând fi descompuse la rândul lor. Controlul instalaţiei poate fi descompus în cele 10 zone din figura 5. Testele referitoare la siguranţa muncii nu trebuie sărite niciodată.4.

119 .

constă în două numărătoare comandate cu un impuls la 100 kwh de la un traductor de putere. cu semnale clar identificate. În realitate. Un avantaj.120 Figura 5. Figura 5.19. Structura programelor în diverse AP În limbajele de nivel înalt pentru calculatoare. este acela că o hartă structurată bine realizată.19 prezintă două blocuri de pe nivelele inferioare. . programatorii tind să prefere limbaje ca Pascal sau C care sunt inerent structurate prin construcţia lor şi privesc limbajele "nestructurate" (cum ar fi BASIC) cu o anumită doză de neîncredere. Ieşirea blocului constă din două totaluri utilizate de către alte blocuri pentru afişarea la operator şi pentru controlul automat. de exemplu. Blocul kwh.18 cu semnalele lor Structura rezultată a programului ar trebui înregistrată ca parte a documentaţiei sistemului de control şi utilizată ca bază pentru programare.5. Multe AP de dimensiune medie (şi toate cele de mici dimensiuni) nu conţin deloc elemente structurate. Observaţii similare sunt valabile pentru programele de AP. Două blocuri din figura 5. este posibil să scrii programe perfect structurate în BASIC şi programe spaghetti în Pascal sau C. Alegerea este a programatorului. cu semnalele interne şi de la instalaţiile specifice lor. atunci când alimentarea e pornită (un semnal intern de la un alt bloc). care nu este observat imediat. lăsând programatorul să decidă asupra structurii şi să urmeze o disciplină autoimpusă. poate fi uşor distribuită între mai mulţi programatori. 5. Ambele numărătoare sunt resetate la începutul tratamentului iar numărătorul de secvenţe este resetat la începutul unei noi secvenţe.

care este similar cu un limbaj de nivel înalt compilat.b.a. Astfel. For/Next. While do/End While. Structura propriu-zisă este flexibilǎ.20. în care toate variabilele şi toate procedurile trebuie declarate. În interiorul modulelor de control existǎ module de funcţii şi module de secvenţiere. există instrucţiuni Repeat/Until. Modul de structurare a programelor la AP Master al firmei ABB: a) structurǎ tipicǎ de program Master. b) vedere în arbore a programului .20. structura sa (asemănătoare unui arbore MS-DOS) fiind dată în figura 5. Într-o oarecare mǎsurǎ acestea constrâng programatorul în acelaşi mod în care un programator în Pascal sau C dispune de o mai micǎ libertate în a face greşeli. Cel mai structurat limbaj este. etc.121 AP mai mari şi mai moderne au elemente structurate încorporate. aceste AP oferǎ metode de descompunere a programului în module mici uşor de înţeles (la AP mai mari. aceste programe conţin module de control care pot fi validate/invalidate sau re-executate la intervale de timp specificate. fiecare program putând avea diferite viteze de scanare. Figura 5. un program complet poate fi vizualizat în figura 5. Apoi. probabil. ultimele conţinând paşi corespunzǎtori diagramei stǎrilor descrisǎ în paragraful 5. Programul AP este descompus într-unul sau mai multe programe denumite PC1.20.2. cum ar fi PLC5/520 al firmei Allen Brandley. Este recomandat ca fiecare din acestea să trateze o zonă diferitǎ a procesului. pentru a repeta acceaşi operaţie asupra unui bloc de date). modulele de funcţii pot conţine la rândul lor module de control şi permit construirea unei ierarhii master/slave. Elementele logice actuale sunt conţinute în modulele de funcţii sau în paşii secvenţiatorului. PC2. la AP Master al firmei ABB. În general.

şi trebuie declarate ca parte a construcţiei bazei de date. Acestea sunt programe mici. Fiecare pas şi tranziţie este un program DS mic. un exemplu tipic fiind prezentat în figura 5. de asemenea.2. Aceastǎ descriere este.2. . ca în figura 5. fişiere de subrutine.21. Figura 5.24). din care pot fi apelate PB sau FB. şi blocuri de secvenţiere (corespunzând DS). Atât firma Allen Brandley. AP începe execuţia programelor cu blocul de organizare OB1.122 Modulele sunt etichetate în ordine ierarhicǎ pânǎ la nivelul elementelor. Specificarea unei porţi logice la AP Master al firmei ABB Firma Siemens utilizeazǎ o structurǎ constând din blocuri de organizare (OB). Firma Allen Brandley utilizeazǎ la AP PLC-5 o idee similarǎ. blocuri program (PB). din figura 5.23. Când este pornit prima datǎ. Aceastǎ structurare şi etichetare impune o disciplinǎ asupra programatorului. pe care le vom discuta pe scurt. care pot fi apelate în repetate rânduri de cǎtre programele de nivel mai înalt (figura 5. Programatorul poate descompune nivelul superior al programului în module de programe mai mici. cât şi firma Siemens utilizeazǎ conceptul de subrutine (numite blocuri de funcţii FB la firma Siemens).3.21 este al doilea element logic în blocul funcţional 3 al modulului de control 2 din programul PC1. La AP PLC-5 programele pot fi legate între ele printr-o DSS. blocuri de funcţii (FB). Modulele de bazǎ sunt blocurile de programe care sunt executate la unităţile de jos în proiectarea top-down. care pot fi denumite după cum este necesar. simplificatǎ într-o oarecare mǎsurǎ. utilizate pentru a rezolva sarcini specifice.22. astfel cǎ poarta ŞI PC1.

tg) în mod direct.22.5) 3! 5! .123 Figura 5.23.. (5.. DSS la AP PLC-5 al firmei Allen Brandley De exemplu. Organizare tipicǎ în interiorul AP ale firmei Siemens Figura 5. puţine AP realizeazǎ funcţii trigonometrice (sin. Este relativ uşor sǎ se calculeze sinusul unui unghi utilizând dezvoltǎri serie: x3 x5 sin x = x − + − . cos.

124 Figura 5. obţinutǎ cu câteva trepte sau simboluri logice. În final. observând cǎ: . Observaţi cǎ aceasta are doar douǎ blocuri şi apeleazǎ subrutina Sin ( care face cea mai mare parte a lucrului ). Subrutine. Cosinusul unui unghi este dat de relaţia: (5.25. Ori de câte ori dorim sinusul unui unghi putem apela subrutina Sin. O subrutină pentru sin θ Variabile de intrare şi de ieşire sunt numite parametri. ca în figura 5. sinusul unui unghi θ (în grade) poate fi calculat cu o secvenţǎ similarǎ cu cea din figura 5.24. Pentru majoritatea aplicaţiilor primii 3 termeni dau suficientă precizie. Astfel. având la intrare unghiul în grade şi returnând sinusul cǎtre variabila desemnatǎ.26. disponibile la multe AP unde x este unghiul în radiani.6) cos θ = sin(90 − θ) unde θ este în grade. Putem merge mai departe.25. Aceasta poate fi declarată ca o subrutinǎ numitǎ Sin.a. astfel cǎ putem scrie acum o altǎ subrutinǎ pentru a calcula cosinusul unui unghi. Figura 5.

de exemplu.26. Aceasta apeleazǎ atât subrutina Sin. Aceste instrucţiuni ajutǎ la structurarea programelor în blocuri mici şi. totuşi. Ele pot. b) Tangentă Avantajele subrutinelor constau în economisirea memoriei procesorului şi în minimizarea efortului de programare. La AP PLC-5 al firmei Allen Brandley. Acestea permit ca un set de trepte sǎ fie sǎrite (ignorate) dacǎ instructiunea de control de la începutul blocului nu este adevǎratǎ. . conduc la îmbunǎtǎţirea timpului de rulare a programului prin ignorarea treptelor care nu sunt relevante la momentul curent. Subrutine ce utilizează subrutina Sin: a) Cos. comerciale sau de control) trebuie: a. De asemenea.b.27. cât şi subrutina Cos. crea confuzie în rândul personalului de întreţinere deoarece aceste instrucţiuni (comenzi) nu sunt imediat observabile. ca în figura 5.26. sǎ îşi îndeplineascǎ funcţiile în mod fiabil b. de asemenea. acest lucru poate fi fǎcut cu o instrucţiune MCR (Releu de Control Master) iar la AP GEM-80 poate fi utilizatǎ comanda Start/End Block. Apelarea unei subrutine de cǎtre alte subrutine se numeşte "nesting" (imbricare). 5. acestea fac programul mai uşor de urmǎrit. tgθ = Figura 5. sǎ se comporte într-o manierǎ dinainte cunoscutǎ atunci când datele de intrare sunt eronate (comportarea descrisǎ ca "robustǎ" în limbajul de specialitate) c. astfel cǎ personalul de întreţinere sau programatorul ce trebuie sǎ facǎ modificǎri are nevoie sǎ examineze o singurǎ subrutinǎ. ca în figura 5. Multe AP sunt prevăzute cu anumite instrucţiuni (comenzi) care permit ca unele blocuri (părţi) de program să fie executate numai în anumite situaţii. Întreţinerea şi practica software Toate programele (de procesare a datelor.6.125 sin θ (2. sǎ fie simplu de înţeles şi de întreţinut.3) cos θ putem construi o subrutinǎ Tangentǎ.

Celelalte două puncte. o aplicaţie. probabil. pe de altǎ parte. Figura 5. şi majoritatea AP îşi vor îndeplini sarcinile pentru care au fost proiectate.28 prezintǎ.126 Figura 5. Absenţa lor poate sǎ nu fie vizibilǎ pânǎ când apare pentru prima datǎ o problemǎ (dupǎ câteva luni sau ani de la punerea în funcţiune a instalaţiei). Operatorul introduce o greutate doritǎ în AP iar acesta o converteşte în lungime . descompletată sau dispersată. Software-ul robust are protecţie încorporatǎ împotriva datelor eronate provenite de la senzori defecţi sau de la intrări tastate greşit de cǎtre operator.27. când echipa de proiectare este. sunt adeseori trecute cu vederea. Exemplu de structurǎ cu comanda Start/End Block Prima din aceste cerinţe este evidentǎ. dar este tǎiat la lungime prin numǎrarea impulsurilor de la rolele de transport. pentru exemplificare. Materialul este furnizat la greutatea specificatǎ de cǎtre beneficiar.

poate.28 este dedicat operǎrii normale. . dacǎ nu este generatǎ o comandǎ de tǎiere pânǎ la trecerea timpului maxim fixat. Figura 5.28. Intrǎri greşite ale operatorului sau greutǎţile în afara domeniului sunt semnalizate ca alarme ale sistemului. Un sistem de tǎiere automatǎ Acest sistem conţine multe puncte unde pot apare date eronate: intrǎri greşite ale operatorului ce pot da greutǎţi ridicole. indicaţii care sunt într-un domeniu specificat. pentru a da operatorului şi personalului încredere în sistem. Operatorul din figura 5. Inevitabil. software-ul robust este mai lung şi mai complex. Funcţia de tăiere va utiliza doar indicaţiile de la sistemul de cântǎrire. Este esenţial sǎ se includǎ o formǎ de verificare. orice eroare fiind utilizatǎ pentru a corecta urmǎtoarea tǎiere. interferenţe electrice pe linia impulsurilor de la rolele de transport.28 poate introduce greutǎţi doar într-un domeniul specificat. cu tǎieri (iniţiate de un impuls) permise doar în interiorul acestui interval şi cu iniţierea unei alarme de "timp de tǎiere expirat". citiri incorecte ale greutǎţii. niciodatǎ). Protecţia este totuşi. ca sǎ numim doar trei. Oricare din acestea poate cauza probleme dacǎ datele eronate rezultate au fost tratate ca fiind corecte. sub forma unui procentaj din greutatea urmǎritǎ.127 echivalentǎ. Similar. necesarǎ. restul de 75% ocupându-se de condiţiile anormale care pot apare (vreodatǎ sau. poate fi calculat un interval de timp pentru tǎiere. aproximativ 25% din programul corespunzǎtor figurii 5. Materialul rezultat este cântǎrit şi verificat pentru a se vedea dacǎ este la greutatea doritǎ.

Figura 5. În funcţionare normalǎ operaţia nu poate fi urmǎritǎ. Acesta va funcţiona ca un comutator rotativ cu trei poziţii. dar trebuie remarcat cǎ cele douǎ trepte din figura 5. Majoritatea AP pot fi programate off-line (prin intermediul unui calculator PC) şi au facilitatea documentǎrii semnalelor individuale şi adǎugǎrii unor comentarii explicative care sǎ descrie cum lucreazǎ programul. Cuvântul de ordine trebuie să fie simplitatea. sǎ reflecte funcţionarea procesului. care lucreazǎ în memoria internǎ şi trimite ieşirile sale tot cǎtre memoria internǎ. Asemenea tendinţe trebuie respinse chiar mai tare decât în software-ul comercial. multiplexoarele comutând continuu pe procese diferite.e. Una din regulile de bazǎ utilizate în programare este "dacǎ ai depus o datǎ în memorie.5. nu a fost utilizat comutatorul cel mai indicat.29 prezintǎ un exemplu despre cum nu trebuie scris un program de AP. Buna documentaţie este esenţialǎ pentru claritate. multiplexoarele trebuie blocate pe procesul cu defect (oprind astfel procesele ce merg bine). astfel cǎ tot ce poate fi vǎzut pe terminalul de programare este ceva ambiguu. de asemenea.26 cu versiunea documentatǎ din figura 9. astfel cǎ programul se ocupǎ de procesul A în ciclul program 1. Când apare un defect la un proces. Programatorul începe prin realizarea unui multiplexor (MUX). care va copia toate intrǎrile procesului selectat în locaţii de memorie internǎ.d fac operaţia mai clarǎ pentru cel care se confruntǎ cu ea pentru prima datǎ. Această tehnicǎ este ingenioasǎ şi economiseşte memoria. Pentru economie. Nu trebuie utilizate metode complexe şi nici instrucţiuni neînţelese în întregime (existente în setul de instrucţiuni al AP). Cel mai simplu program este treapta din figura 5.128 La programatori există tendinţa de a face programele mai subtile şi de a reduce numǎrul de instrucţiuni utilizate. Figura 5.27. pentru a fi transmise cǎtre exterior prin intermediul unui demultiplexor software. noteazǎ locaţia unde ai depus-o".m. de procesul B în ciclul program 2.5 a prezentat o situaţie obişnuitǎ. A nu face acest lucru . în care oricare sau ambele motoare pot fi pornite. pentru a permite observarea modului de operare. dupǎ cum s-a selectat de la un comutator de pe pupitrul de comandǎ. dar este foarte dificil de înţeles programul şi de detectat erorile. Aceastǎ aplicaţie constǎ într-un AP care comandǎ 3 procese identice.a. Concluzia este că asemenea procedee trebuie evitate. Multiplexorul şi demultiplexorul sunt comandate de fiecare ciclu program.d.5. ş. Programul trebuie. comparaţi programul nedocumentat din figura 9. Existǎ un singur program (pentru toate cele 3 procese). Aceastǎ posibilitate trebuie utilizatǎ din plin. deoarece mentenanţa instalaţiei şi a programului va fi fǎcutǎ de cǎtre oamenii care vor cere o mare claritate a operaţiilor.

utilizată de două ori sau că harta memoriei prezintă o eroare undeva. b) operarea programului În acest scop producătorii de AP oferǎ formulare de alocare a adreselor de I/E şi de memorie similare celei din figura 5. Un obiectiv care trebuie sǎ fie întotdeauna urmărit este acela de a face cât mai uşoarǎ munca celor care vor utiliza efectiv AP.31. Cum nu trebuie scris un program AP: a) structura programului. veţi şti că aceeaşi adresă a fost. ca şi cea din figura 5. este mai bine sǎ se realizeze diagrame ale prelucrǎrii datelor. Dacǎ un . Dacǎ interacţiunea datelor într-un program este complexǎ.29. O cale de atingere a acestui scop este consecvenţa stilului de programare.30. atunci când o apelaţi în program şi notaţia "Pompa 1 oprită" este ataşată.129 este ca şi cum ai pune ceva într-un dulap iar dupǎ câteva sǎptǎmâni sǎ fii incapabil sǎ gǎseşti acel lucru. Aceste diagrame ajutǎ la planificarea programelor şi creeazǎ condiţii bune pentru detecţia erorilor şi mentenanţǎ. Acestea ar trebui utilizate cu meticulozitate. Dacă aţi ales o memorie internă de un bit care să reprezinte "Alarmă temperatură apă depăşită". probabil. Figura 5. I/E şi memoria internă utilizate trebuie înregistrate iar documentarea în etapa de programare este de mare importanţă.

Figura 5.30.130 contactor al unui motor a fost programat într-un anumit mod într-un loc din program (de exemplu. atunci acest mod trebuie repetat pentru toate celelalte contactoare. verificarea protecţiei motorului dacă a acţionat şi a contactelor auxiliare dacă s-au închis). Prima etapă a unui proiect: alocarea manuală a adreselor de I/E .

Program AP exprimat prin transfer de date Trebuie avută o grijǎ deosebitǎ la consecvenţǎ atunci când diferite pǎrţi ale programului sunt scrise de persoane diferite.131 Figura 5. discutat în capitolul 9. este un exemplu în acest sens. .31. şi este foarte indicat sǎ se dezvolte un "stil al casei". Conceptul "EDDI" al firmei Ford.

1986 5.. Borangiu T. 1992 4. P.C. Bacivarof I.. Barabas T. Prentice Hall. Militară. E... Bucureşti. Englewood Cliffs.132 BIBLIOGRAFIE Anderson T. 1999 6.. Ciorăscu F. Breeding J.1985 8. pp.. Universitatea Politehnica din Timişoara. ICPE Bucureşti.. IEEE CS Press. 2000 10. . E. All Educational. LNCS. pp.. Teoria transmiterii informaţiei. Synthesising controllers from real-time specifications. Berger H. Editura Academiei Bucureşti. Springer. Coroescu T. Proceedings of the Formal Methods Europe Symposium.. 1997. Dierks H. Stadiul actual al cercetărilor şi realizărilor în domeniul structurii MAP (protocol de automatizare a fabricaţiei) pentru hipersisteme robotizate CIM.. Siemens Aktiengesellschaft. Bucureşti.. K. Borda M. 1989 7. Automate programabile. Automating with the SIMATIC S5 115U. 126-133 1. Diagrams and programming languages for programmable controllers. 2nd edition.. Cătuneanu V. Munich. Proceedings of 10th International Symposium on system synthesis. Spânulescu I. Tourlas K. 1998 9. Universitatea din Petroşani. Elemente fundamentale ale reţelelor de calculatoare. Dobrescu R.. Traductoare şi senzori. Dacia. New Jersey.. Ed..M. Măsurări electrice şi electronice. Bucureşti.. Referat de doctorat nr. 1. 1973 11. Ed. Cluj-Napoca. 1997. Sisteme automate speciale. Cepişcă C. Digital Design Fundamentals. D. Chellis J. 1998 3. Fiabilitatea sistemelor de telecomunicaţii. 1999 12. 1-19 2.

All Educational. Computer Architecture. Present techniques for improving the reliability of the machine engineering control equipments. Fascicola Electrotehnică. Gavriş M.1998 25. 419-427 22. Institutul Politehnic "Traian Vuia" Timişoara. M. pp. 261-266 24. 35-41 21. 2000 14. Stadiul actual în tratarea fiabilităţii echipamentelor de automatizare din domeniul construcţiilor de maşini. I. 324-331 20. I. Gergely E. Dodescu Gh. Fascicola Electrotehnică. 1989 18.. The effect of programmable logic controllers programming techniques on the program cycle in the sequential logic .. 1996 15. Calculatoare. 1995 17. Gergely E. I. Fiabilitatea şi mentenanţa echipamentelor electrice. Analele Universităţii din Oradea. Gavriş M. Secţiunea C. Universitatea Politehnica din Timişoara. pp.. Boston-London. Automate programabile. 1. Simularea buclei de poziţie a unei maşini unelte cu automat programabil. Determinarea automată a mărimilor de referinţă din comanda adaptivă a maşinilor-unelte. Lito Universitatea din Oradea. Gergely E.. 1995 23. Analele Universităţii din Oradea... Proceedings of the A’96THETA 10 Automatic Control & Testing Conference Cluj-Napoca. Teză de doctorat.. Coroiu N. Bucureşti. 1993. Dolga V. pp. Jones and Bartlett Publishers. I. Gergely E. pp. Gergely E. Gergely E. Editura tehnică. Îndrumător de laborator. Fascicola Electrotehnică.. 1997. Analele Universităţii din Oradea. I. 1996. 1996. Referat de doctorat nr.I. On reliability assesment of programmable logic controllers – based control systems. Gergely E. I..133 13. 1995 19. 2001 16. Gergely M. Gavriş M. Fascicola Electrotehnică. Traductoare şi senzori. Comanda sincronă a semafoarelor de pe traseul Cele Trei Crişuri – Hotel Dacia – Magazin Crişul cu automatul programabil TI305. Analele Universităţii din Oradea.. Elemente fundamentale de structură. Felea I. Gavriş M. Iniţializarea în utilizarea PC-urilor... Gergely E.. Flynn J. Bucureşti....... Oradea. Gavriş M. Determinarea parametrilor unui regulator PID cu programul de modelare grafică ACSL. Pipelined and Parallel Processor Design. I.

. Fascicola Electrotehnică. pp. no. I. Nagy Z.. Bucureşti. I. Ninth annual control industry outlook. Analele Universităţii din Oradea.. 409-418 26.134 design. Fascicola Electrotehnică. 385-392 Maghiar T. Reglarea temperaturii CO2 gaz în limitele prestabilite la intrarea în motorul geotermal.. 32... Fascicola Electrotehnică. Gergely E. . no. 29. Traductoare şi măsurarea mărimilor neelectrice.. 1996 International Electrotechnical Comission. pp.. Fascicola Electrotehnică. pp. 1994. I. 50-57 Gergely E.. Analele Universităţii din Oradea. Ed. Analele Universităţii din Oradea. Analele Universităţii din Oradea. Gergely E. 377-384 Maghiar T.. 1999. pp. Antal C. 1994. 1989 Gould L. Secţiunea E. Universitatea Politehnica din Timişoara. Universitatea din Oradea. Intech Magazine. Gergely E. pp..1. Perspectives on the future of automation control. Teză de doctorat. Fascicola Electrotehnică.. Antal C... Analele Universităţii din Oradea. 2002 Gergely E.. pp... 1995 Ham J. Programming Languages. Cercetări privind dependabilitatea sistemelor de conducere a proceselor cu automate programabile. Gergely E. Programmable Controllers. 36. 33. 30. Managing Automation. I. Gavrilescu O. 1996 Heller A. 1994.. 9. Ştiinţifică şi Enciclopedică. Gavriş M. 28. 15-20 Gorodcov M.. 2000. 393-404 Maghiar T. Gavrilescu O. Part 3. Controlul şi menţinerea în domeniu a presiunii de intrare în motorul geotermal. Gavriş M... 1993. I.. Gavriş M. 35. 34... Analele Universităţii din Oradea. Fascicola Electrotehnică. I. Antal C. Gavrilescu O. 27.. September. 31. Gavriş M.. January. 1993 Maghiar T. Mod de implementare a schemei de automatizare a centralei geotermale cu controlerul programabil TI305. Mod de implementare pe controlerul TI305 a buclei de reglare a temperaturii CO2 lichid din instalaţia electrogeotermală. Interferenţa în lumea calculatoarelor. Gavriş M. Agile manufacturing emerges out of chaos. IEC International Standard 1131-3.

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

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

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

Sign up to vote on this title
UsefulNot useful