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

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

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

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ă. care poate fi o uzină conectată la un sistem de control [27]. protecţii la scurtcircuit şi suprasarcină a motorului. 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. respectiv a cablurilor.6 CAPITOLUL 1 SISTEMELE DE CALCUL ŞI CONTROLUL INDUSTRIAL 1. La cel mai simplu nivel. Figura 1. instalaţia poate fi un motor electric care acţionează un ventilator de răcire. La cealaltă extremă.1. Aici sistemul de control poate fi compus din: un contactor electric.1. 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. Aici sistemul de control poate fi complex şi constă într-o combinaţie de .1 este o reprezentare a unei instalaţii tipice. uzina poate fi o vastă instalaţie petrochimică.

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

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

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

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

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

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

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

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

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

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

După execuţia acesteia se revine în programul principal. 4. care poate fi lansat în execuţie. permiţând programatorului să scrie rapid instrucţiunile.5. chiar şi un programator experimentat pentru Z80 are nevoie de bibliografie (şi de mult timp) pentru a putea interpreta aceste 19 numere. Programarea în limbaj de asamblare utilizează mnemonice în locul codurilor. aşa că au fost dezvoltate căi de scriere a programelor pentru .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. care începe la adresa 4000H. la instrucţiunea aflată după instrucţiunea de apel a subrutinei. Un program separat. 1. La nivelul cel mai scăzut. Acest lucru este dificil de făcut. care permite ca din diferite puncte ale programului principal să se transfere operaţiile la o subrutină specificată.5. Scrierea programelor în limbaj de asamblare este laborioasă. se utilizează o instrucţiune de apel de subrutină. numit programare în cod maşină. favorizează erorile şi este aproape imposibil de modificat ulterior.2. Dar. 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. care sunt uşor de urmărit. Decât să se scrie aceeaşi instrucţiune de mai multe ori (fapt care necesită efort şi spaţiu de memorie suplimentar). converteşte programul cu mnemonice (denumit program sursă) într-un program cod maşină echivalent (denumit cod obiect). 1. instrucţiunile sunt scrise în calculator sub formă numerică. denumit asamblor. pentru că există câte o instrucţiune în limbaj de asamblare pentru fiecare instrucţiune în cod maşină. Programarea în cod maşină şi în limbaj de asamblare Seria de instrucţiuni ce constituie programul trebuie scrisă şi încărcată în calculator.3. Într-un sistem de control industrial în care debitul este măsurat cu o diafragmă. Subrutine. 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ă). Limbaje de nivel înalt Programele în limbaj de asamblare pentru anumite aplicaţii sunt greu de scris.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Circuite de ieşire în c. aşa cum reiese din figura 2. un circuit tipic fiind prezentat în figura 2. . la modulul de ieşire.6.în cazul generării de curent (figura 2.c.7. 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. externă: .c. evident.c.7..c. b) tensiunea în punctul X – efectul diodei de tăiere a vârfurilor. externe.a.: a) curentul de ieşire într-un circuit de c.a. ceea ce elimină interferenţele provocate la dezactivarea sarcinilor inductive. externe. .37 Figura 2. Un modul de ieşiri în c.a) una din bornele sarcinii se leagă la borna (-) a sursei de c.6.c) una din bornele sarcinii se conectează la borna (+) a sursei de c. Triacele au avantajul că se dezactivează la trecerea prin zero a curentului prin sarcină.6.b.în cazul absorbţiei de curent (figura 2. cealaltă bornă a sarcinii se leagă.c. utilizează de obicei triace.

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

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

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

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

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

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

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

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

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

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

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

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

Figura 2.3. construite în această manieră în scopul apelării lor în mod recursiv. care va apare o singură dată în memoria program (figura 2. Devine astfel posibilă structurarea ierarhică a modulelor ce compun . În principiu. 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. amplasată întro altă zonă de memorie. 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. Există o tendinţă naturală de a descompune aceste aplicaţii în subansamble mai simple.5. subrutinele sunt utilizate în două scopuri: pentru economisirea spaţiului de memorie şi pentru structurarea programelor. dacă o secvenţă de instrucţiuni trebuie utilizată de mai multe ori într-un program. Subrutine Subrutinele sunt secvenţe de instrucţiuni (asemeni programelor) destinate rezolvării unor probleme specifice. 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. Utilizarea subrutinelor: a) principiul execuţiei subrutinelor. Această secvenţă se încheie cu o instrucţiune de revenire în programul principal. există tot interesul transformării acestei secvenţe într-o subrutină. În conformitate cu primul scop.53 2.a).20.20.

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. execuţia programului principal este reluată din punctul în care a fost întrerupt.5.d. 2. care va defini interacţiunile dintre modulele aflate la nivelul ierarhic inferior. Fiecare din aceste din urmă module va putea fi descompus la rândul său.5. 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. cărora le corespund prin construcţie patru rutine de servire a întreruperilor. prin urmare. După aceasta.20. Va exista un modul de organizare. Modul în care subrutinele permit structurarea programelor este ilustrat în figura 2. 2. Sursele posibile de întreruperi sunt conectate (individual sau prin intermediul unor porţi SAU) la liniile de întreruperi ale AP. . OB2÷OB5. OB2 fiind cea mai prioritară (în cazul întreruperilor multiple).6. De exemplu.a. IRD ). corespunzătoare evenimentului care a generat întreruperea. Printr-o organizare judicioasă a descompunerii. AP SIMATIC S5-115U al firmei Siemens este prevăzut cu patru linii de întrerupere ( IRA . ş. Există. Aşa cum s-a amintit în paragraful 2. IRB . o misiune bine definită. 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. Fiecare modul va avea. Dacă detectează o cerere de întrerupere. IRC . Odată executată această subrutină.b. însă.4.1.54 programul de aplicaţie. 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.m. Procesorul UC analizează automat starea acestor linii după execuţia fiecărei instrucţiuni. Este cazul aşa-numitelor evenimente urgente. 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. una din cele mai eficiente soluţii de tratare a lor o reprezintă transferul prin întreruperi. procesorul UC trece la execuţia unei subrutine aparte.

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

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

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

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

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. Detaliile referitoare la modul în care un anume AP realizează operaţiile de I/E şi managementul memoriei nu fac parte din standard. în acest limbaj se scriu relaţii dintre valorile stării curente şi a variabilelor de intrare. 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". Toate limbajele utilizează acelaşi set de caractere şi sunt în conformitate cu standardele ISO şi cu convenţiile pentru codificarea timpului.59 Standardul începe cu o descriere a configuraţiei şi resurselor hardware şi software ale sistemului pe care vor fi executate programele. el însuşi un rezultat al compatibilităţii retroactive cu schemele electrice convenţionale (cu relee). declaraţiile tipurilor de date compuse. sunt permise şi variabile "direct reprezentate". pe de o parte. . În esenţă. Standardul defineşte tipurile de date elementare. ieşirilor sau variabilelor interne. existând posibilitatea transferului de date între aceste elemente. Cazul cel mai simplu este cel în care un singur program este executat pe un singur AP. etc. care sunt abstracţii ale protocoalelor de comunicaţie. care sunt adresate în locaţiile de memorie destinate intrărilor. Variabilele pot fi locale sau globale. pe de altă parte. scrise în oricare din cele cinci limbaje. 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. Un program este construit dintr-un număr de elemente software diferite. calculează starea sa şi actualizează ieşirile sale. 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. DS este un limbaj grafic conceput pentru compatibilitate retroactivă cu formalismul diagramelor logice scară (relay ladder logic). fie este configurat să fie executat periodic. şi valorile stărilor următoare şi ale ieşirilor. Suplimentar faţă de variabilele abstracte "uzuale". 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. plus câteva specificaţii referitoare la ordinea evaluării condiţiilor implicate. iniţializările. Un astfel de program citeşte intrările sale.

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

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

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

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

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

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

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

pentru o combinaţie SAU/ŞI poate fi utilizat în programul Master blocul SAU/ŞI din figura 3.67 Figura 3.7. şi este la fel de uşor de urmărit ca şi DS sau DBF.3. din figura 3.6. Porţile compuse ale AP Master al firmei ABB: a) poarta ŞI/SAU (echivalentă cu figura 3.4. b) poarta SAU/ŞI Ieşirea Z a unei porţi SAU. Poate fi testat şi inversul semnalului. şi blocuri de combinaţii logice. 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. Figura 3. Simbolul "≥" din poartă înseamnă "ieşirea este adevărată dacă una sau mai multe intrări sunt adevărate".c este o combinaţie ŞI/SAU.7.b.8 prezintă o operaţie simplă atât în formatul DS. este adevărată dacă oricare din intrări sunt adevărate. pe lângă porţi logice de bază. corespunzător aceleiaşi operaţii). În figura 3.b.6. Limbajul LI este cea mai flexibilă formă de programare pentru utilizatorul experimentat. este adevărată dacă A este adevărat sau B este fals sau C este adevărat.a este un bloc Master corespunzător celui din figura 3. 3. Circuitul din figura 3.a.6.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. . AP Master al firmei ABB are. cât şi în DBF pentru un AP al firmei Siemens (foarte asemănătoare cu secvenţele de program realizate pentru APC 700. ca în cazul precedent.6. În figura 3.6. printr-un cerc mic. Similar.7.c (cu un program Master care se referă la nume în baza sa de date). Ieşirea Z a porţii din figura 3.6.c).

se pot utiliza paranteze pentru a defini precis operaţia. Aici A înseamnă AND.2. Figura 3.1 Q 4:1 Comentariu Buton înainte Limitator faţă OK Bobină retragere Bobină avansare Figura 3. LI echivalentă programelor din figura 3.2 Q 4:2 Q 4.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.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. LI echivalentă programelor din figura 3. iar "=" transferă rezultatul către ieşirea Q 4.8. Acest lucru este similar cu utilizarea parantezelor în programarea convenţională. LI echivalentă este dată în tabelul 3.68 LI echivalentă pentru un AP al firmei Siemens şi pentru un AP APC 700 este prezentată în tabelul 3.2. Echivalentul porţii SAU în notaţia Siemens Tabel 3.7 I 2:7 F 3. Aici ON înseamnă OR NOT iar O înseamnă OR.2 Q 4.1.1. AN (ANDN) înseamnă AND NOT.7 I 3:7 I 3.1.6 Q 4. unde secvenţa 3+5/2 poate fi . DS şi DBF în notaţia Siemens Tabel 3.2 I 3:2 Q 4.9.9 prezintă o operaţie SAU.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. Figura 3.

0 I 2. deşi manualul de utilizare recomandă construirea într-o primă fază a DS şi apoi translaţia ei în LI. Figura 3.69 scrisă (3+5)/2=4 sau 3+(5/2)=5.3.4.3 F 3. Programul DS al AP prezentat în figura 3.3. Programatorii vor recunoaşte această operaţie ca fiind similară lucrului cu o stivă. LI echivalentă programelor din figura 3.11 cu notaţia Mitsubishi corespunde programului LI din tabelul 3.10. O DS a firmei Mitsubishi . Figura 3. Programul LI echivalent este dat în tabelul 3. Deşi ultima variantă este cea implicită. parantezele fac ca operaţia să fie clară pentru cititor. Program mai complex în limbajele DS şi DBF Tabel 3.6 I 2:0 I 2:1 I 4:1 Q 5:5 Q 5:6 Operand (Adresa) Siemens APC 700 F 3.5.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.5 Q 5.10 arată o operaţie tipică în format DS şi DBF. Figura 3.1 Q 5.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.1 I 4.11.

Întrucât toate reprezentările de date sunt manipulate prin intermediul unor variabile.12.5. Figura 3. variabilele de intrare sunt A şi B. utilizarea limbajului TS în operaţiile logice şi de I/E pe bit nu oferă claritatea şi simplitatea necesare. b) declararea textuală Cuvintele-cheie FUNCTION şi END_FUNCTION delimitează declaraţia. Corespondenţa dintre DBF şi TS pentru un bloc funcţional DIVIDE: a) declararea grafică. şi anume "/" pentru împărţire şi INT_TO_REAL.4. din întreg în real. În cazul acestui exemplu. în care DIVIDE este numele funcţiei iar REAL este tipul rezultatului produs de ea. respectiv INT. 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. Aşa cum reiese din cele discutate în paragraful 1.6. LI echivalentă programului din figura 3. de tipul REAL. Corpul blocului funcţional este definit prin invocarea altor două funcţii. Figura 3.b este un exemplu în acest sens. .70 Tabelul 3. Acestea sunt specificate în secţiunea dintre cuvintele-cheie VAR_INPUT şi END_VAR.12. lista parametrilor acestui bloc funcţional este o listă a variabilelor de intrare. Textul structurat Limbajul TS prezintă o sintaxă şi o funcţionalitate asemănătoare limbajului PASCAL.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.

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

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

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

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

o aceeaşi acţiune poate fi asociată la două sau mai mulţi paşi diferiţi. acţiunile nu pot fi "anonime". R şi S sunt fără parametri. . ca în figura 3.. Calificatorii N. Figura 3. ca în figura 3. Asocierea unor acţiuni multiple ACT1. Calificatorii L.16. aceluiaşi pas S se realizează prin concatenarea blocurilor acţiune. Aceştia sunt prezentaţi în tabelul 3. Fiecare asociere pas – acţiune poate avea un alt calificator. trei sau patru zone. Cazuri particulare de reguli de evoluţie a DSS Figura 3..b. D şi P acceptă un singur parametru. Literele din regiunile din extrema stângă se numesc calificatori.15. .75 ACT este asociată pasului S prin intermediul unui bloc acţiune.16.5. ACT2. În consecinţă. de tipul TIME (timp).16. Dreptunghiul ce desemnează un bloc acţiune este împărţit în două. 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. cu două zone. Figura 3. Pentru a clarifica rolul fiecărui calificator. Standardul IEC 1131-3 defineşte setul de calificatori elementari.16 arată cazul cel mai simplu. dacă nu se specifică altfel. Din acest motiv. vom considera că acţiunea A nu este asociată nici unui alt pas înafară de S. Blocuri acţiune Acţiunile sunt entităţi complet separate de paşi. 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.

prin activarea unui alt pas în care A este asociată cu calificatorul R. respectiv S. indiferent de asocierile acţiunii A cu alţi paşi. să considerăm că acţiunea A este asociată cu paşii S1 şi S2. cu calificatorii L(t). atunci execuţia lui A se opreşte înainte ca pasul S să devină inactiv. Să mai presupunem că mai întâi se activează S1 şi că S2 se activează înainte de expirarea timpului t. se opreşte şi execuţia acţiunii A. Pentru exemplificarea modului de utilizare a DSS să considerăm implementarea unei secvenţe de semnalizare a unui defect [66]. Calificatorii combinaţi DS. SD şi SL pot fi interpretaţi într-o manieră similară. • 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. De exemplu. Apariţia • . Dacă controlul pleacă din pasul S înainte de expirarea timpului t. Dacă pasul S rămâne activ mai mult decât t. • P arată că acţiunea A va fi executată pe durata unui singur ciclu program de la activarea pasului S. Aceasta explică de ce calificatorul R se mai numeşte şi "reset prioritar". • S specifică faptul că execuţia acţiunii A trebuie să continue şi după dezactivarea pasului S. • L(t) determină ca la activarea pasului S să se iniţieze execuţia acţiunii A. 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ă. în asemenea situaţii va exista o interacţiune între efectele diferiţilor calificatori. 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. datorită efectului calificatorului S din asocierea sa cu pasul S2.5. În general. care va avea loc cel mult pe perioada de timp t.76 Tabelul 3. Execuţia lui A este terminată ulterior. de fapt A va fi executată în continuare. Deşi rolul lui L(t) este de a opri acţiunea A după timpul t.

DSS corespunzătoare este ilustrată în figura 3.aprinderea continuă a lămpii de semnalizare dacă defectul persistă (L2=1) . software). foarte util pentru procesele care combină aspectele secvenţiale şi paralele. Figura 3. Acţionarea butonului b4 determină: . Din cele prezentate pe parcursul acestui paragraf reiese că DSS reprezintă un limbaj puternic.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. DSS pentru semnalizarea unui defect Acţionarea butonului b5 determină anularea semnalizării optice. Acţionarea butonului b3 determină anularea semnalizării acustice. Datorită utilizării convergenţei simultane.17. . de regulă.17. schema este reiniţializată numai dacă au fost acţionate ambele butoane b3 şi b5 (nu neapărat simultan).stingerea lămpii de semnalizare dacă defectul a dispărut (L2=0).

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

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.

5. cum ar fi la AP GEM-80. un temporizator la declanşare utilizat la frânarea unui lift poate avea diferite durate ale temporizării. un temporizator cu un preset de 150 şi o bază de timp de 10 ms va întîrzia 1. ce pot fi utilizate în program. în AP mari durata temporizării poate fi modificată din interiorul programului. b) temporizator TOF În AP mari. după cum liftul se deplasează cu viteză mare sau cu viteză mică. Tehnica programării temporizatoarelor este diferită de la producător la producător. . În AP mici preset-ul poate fi fixat de către programator.a.5 s. 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. De exemplu. Fiecare temporizator este prevăzut cu câteva semnale. Următoarea valoare definită este durata temporizării (adeseori numită preset). În mod normal precizia este în legătură cu durata ciclului program. de obicei.84 Unităţile utilizate nu afectează precizia temporizatorului. Figura 4. De exemplu. Notaţiile firmei Allen Bradley pentru temporizatoare: a) temporizator TON. Aceasta este dată. cu valoarea prestabilită memorată în blocul VALUE (valoare). Figura 4.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. tratează temporizatorul ca un bloc de întârziere similar celui din figura 4. Unii.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Să ne amintim de discuţia referitoare la acumulator. În limbaj de nivel înalt. de fapt. . două numere şi transferă rezultatul în memorie.etc. operaţia din figura 4. Există. 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ă). O a doua instrucţiune Load transferă conţinutul acumulatorului 1 în acumulatorul 2.17. şi conţinutul sursei în acumulatorul 1. două acumulatoare.-.18.99 Figura 4. ale cărui instrucţiuni de încărcare (L) şi transfer (T) utilizează un acumulator intern.19. ca în figura 4. O instrucţiune aritmetică (+. deci. Operaţii aritmetice la AP PLC-5 AP SIMATIC-S5 115U al firmei Siemens evaluează instrucţiunile aritmetice în format LI.18 ar putea fi descrisă prin expresia: Lungime de tăiere=câştig∗(lungime cerută – lungime măsurată) + +lungime de tăiere Figura 4.19 adună. O instrucţiune Load transferă conţinutul sursei în acumulatorul 1.) lucrează cu conţinutul ambelor acumulatoare.

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.20. Variabilele sunt accesate prin nume de baze de date . Operaţii aritmetice la AP SIMATIC-S5 Figura 4.19. b) MASTER al firmei ABB.100 Figura 4.

20.a şi 4. folosind subrutine) şi să nu se piardă timp prin executarea lor în fiecare ciclu program. reprezentate în figura 4. sunt consumatoare de timp.101 Echivalentul figurii 4. folosind formatul LI. şi este indicat ca acestea să fie executate doar atunci când este nevoie (de exemplu.20. . Toate operaţiile aritmetice.18 la AP ale firmei Siemens. Acestea necesită o elaborare foarte simplă.b. şi în particular cele care implică numere în virgulă mobilă. 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.

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

Figura 5.3.2. fiecare cu o ieşire şi câteva intrări. C. În figura 5. corespunde unui rând din tabelul de adevăr. cea mai simplă cale constă în descompunerea sistemului de control într-un număr de blocuri mici. Funcţionarea ieşirii Z poate fi acum transpusă direct în DS (figura 5.a este dat un tabel de adevăr pentru o ieşire Z comandată de 4 intrări A.3. . fie cu DBF (figura 5. B. Există 16 combinaţii posibile ale intrărilor iar Z este activată pentru 4 din acestea.b) sau în DBF (figura 5.3.2).c). neputându-se însă impune o metodă standard de realizare a programelor pentru logica combinaţională. b) în DBF Aşa cum s-a amintit la început. Programarea logicii combinaţionale: a) în DS. 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.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. D. respectiv fiecare poartă ŞI.

Singura modificare care trebuie făcută întotdeauna (din nou pentru claritate) este plasarea contactelor comune în afara ramurilor. Programarea logicii combinaţionale pe baza tabelului de adevăr: a) tabelul de adevăr. astfel încât scopul trebuie să fie claritatea programului. Figura 5. 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. . Cu un program AP.4.3. pentru reducerea costurilor. Clarificarea logicii combinaţionale Apare o întrebare inevitabilă: "Este acesta cel mai simplu program?". formă numită sumă de produse. însă.104 Figura 5.4. mai degrabă decât simplitatea lui. b) DS corespunzătoare tabelului de adevăr. Tehnici ca diagramele Karnaugh şi teoremele algebrei booleene permit obţinerea unor soluţii mai simple. costul contactelor suplimentare este 0. aşa cum este prezentat în figura 5. Răspunsul este: "Probabil că nu". 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.

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

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

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

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

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

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

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

diagrama stărilor este atât de puternică încât majoritatea AP de dimensiune medie o includ în limbajul lor de programare. Modificările programului sunt simple: o nouă tranziţie J şi o nouă stare 6. pentru a reduce conţinutul de praf din incintă.13. modificări la starea 0 (adăugarea -⎪/⎪. datorită modului de operare al ciclului program.14. 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. dar sunt simple la o diagramă a stărilor. O instrucţiune RET încheie secvenţa. . toate celelalte sunt automat resetate. 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. Chiar şi modelul simplu F2 al firmei Mitsubishi poate opera cu DSS. prin instrucţiuni STL (STepLadder = DS cu stări). Noua diagramă de stare este prezentată în figura 5. adăugarea unui temporizator de 1 minut (pentru tranziţia J) şi o nouă ieşire pentru contactorul ventilatorului.6. modificările sunt înşelătoare într-o abordare directă. înainte ca paleta să fie ridicată.112 atenţie. Tot ceea ce este necesar este o nouă stare 6 (Ventilaţie după descărcare). Un exemplu de programare spaghetti corespunzătoare stării 2 De asemenea. Acesta ar trebui să lucreze în timpul descărcării şi încă aproximativ un minut după terminarea descărcării. Acestea au prefixul S şi adresele între S600 şi S647.pentru starea 6) şi la starea 4 (intrare în starea 4 prin J şi nu prin D). Au caracteristic faptul că atunci când una sau mai multe sunt setate. Ventilatorul trebuie să meargă în starea 3 şi în starea 6. Conform paragrafului 3. Figura 5. Î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.

a devine astfel DS din figura 5.15.14. Numărătorul este acţionat atunci când sunt îndeplinite condiţiile pentru pasul curent (sau starea curentă).15.113 Figura 5. Când nu există ramuri şi secvenţa este un inel simplu (operând asemeni unui selector). . secvenţa poate fi comandată cu un numărător care selectează pasul cerut (sau starea cerută).b. AP GEM-80 are o instrucţiune SEQR (secvenţă) care se comportă ca un uniselector de 16 paşi. 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. Modificări la diagrama stărilor Exemplu Diagrama stărilor din figura 5.

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

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

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

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

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

119 .

Figura 5.120 Figura 5. este acela că o hartă structurată bine realizată. Un avantaj.19. Blocul kwh. Ieşirea blocului constă din două totaluri utilizate de către alte blocuri pentru afişarea la operator şi pentru controlul automat. lăsând programatorul să decidă asupra structurii şi să urmeze o disciplină autoimpusă. cu semnale clar identificate. Alegerea este a programatorului. Două blocuri din figura 5. . care nu este observat imediat. este posibil să scrii programe perfect structurate în BASIC şi programe spaghetti în Pascal sau C. Multe AP de dimensiune medie (şi toate cele de mici dimensiuni) nu conţin deloc elemente structurate.5. Structura programelor în diverse AP În limbajele de nivel înalt pentru calculatoare. cu semnalele interne şi de la instalaţiile specifice lor. Ambele numărătoare sunt resetate la începutul tratamentului iar numărătorul de secvenţe este resetat la începutul unei noi secvenţe.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. În realitate. 5. constă în două numărătoare comandate cu un impuls la 100 kwh de la un traductor de putere.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. de exemplu. Observaţii similare sunt valabile pentru programele de AP. poate fi uşor distribuită între mai mulţi programatori. atunci când alimentarea e pornită (un semnal intern de la un alt bloc).

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

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

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

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

crea confuzie în rândul personalului de întreţinere deoarece aceste instrucţiuni (comenzi) nu sunt imediat observabile. La AP PLC-5 al firmei Allen Brandley. conduc la îmbunǎtǎţirea timpului de rulare a programului prin ignorarea treptelor care nu sunt relevante la momentul curent. Acestea permit ca un set de trepte sǎ fie sǎrite (ignorate) dacǎ instructiunea de control de la începutul blocului nu este adevǎratǎ. totuşi. ca în figura 5.26. Ele pot. cât şi subrutina Cos. 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. b) Tangentă Avantajele subrutinelor constau în economisirea memoriei procesorului şi în minimizarea efortului de programare. sǎ îşi îndeplineascǎ funcţiile în mod fiabil b. Apelarea unei subrutine de cǎtre alte subrutine se numeşte "nesting" (imbricare). Aceste instrucţiuni ajutǎ la structurarea programelor în blocuri mici şi. de asemenea.26. .3) cos θ putem construi o subrutinǎ Tangentǎ. Întreţinerea şi practica software Toate programele (de procesare a datelor. Aceasta apeleazǎ atât subrutina Sin. 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. De asemenea.125 sin θ (2. acestea fac programul mai uşor de urmǎrit. astfel cǎ personalul de întreţinere sau programatorul ce trebuie sǎ facǎ modificǎri are nevoie sǎ examineze o singurǎ subrutinǎ. sǎ fie simplu de înţeles şi de întreţinut. ca în figura 5.b.27. 5.6. comerciale sau de control) trebuie: a. 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. tgθ = Figura 5. Subrutine ce utilizează subrutina Sin: a) Cos. de exemplu.

27. când echipa de proiectare este. şi majoritatea AP îşi vor îndeplini sarcinile pentru care au fost proiectate. Materialul este furnizat la greutatea specificatǎ de cǎtre beneficiar. Operatorul introduce o greutate doritǎ în AP iar acesta o converteşte în lungime . sunt adeseori trecute cu vederea.126 Figura 5. 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. o aplicaţie. 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). descompletată sau dispersată. pentru exemplificare. dar este tǎiat la lungime prin numǎrarea impulsurilor de la rolele de transport. probabil. pe de altǎ parte. Exemplu de structurǎ cu comanda Start/End Block Prima din aceste cerinţe este evidentǎ. Figura 5. Celelalte două puncte.28 prezintǎ.

necesarǎ.28 este dedicat operǎrii normale. indicaţii care sunt într-un domeniu specificat. Inevitabil. Protecţia este totuşi.127 echivalentǎ. Figura 5. restul de 75% ocupându-se de condiţiile anormale care pot apare (vreodatǎ sau. citiri incorecte ale greutǎţii. Oricare din acestea poate cauza probleme dacǎ datele eronate rezultate au fost tratate ca fiind corecte. Operatorul din figura 5. interferenţe electrice pe linia impulsurilor de la rolele de transport. . 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. ca sǎ numim doar trei. Intrǎri greşite ale operatorului sau greutǎţile în afara domeniului sunt semnalizate ca alarme ale sistemului. Funcţia de tăiere va utiliza doar indicaţiile de la sistemul de cântǎrire.28. dacǎ nu este generatǎ o comandǎ de tǎiere pânǎ la trecerea timpului maxim fixat. orice eroare fiind utilizatǎ pentru a corecta urmǎtoarea tǎiere. poate fi calculat un interval de timp pentru tǎiere. Similar. software-ul robust este mai lung şi mai complex. sub forma unui procentaj din greutatea urmǎritǎ. niciodatǎ). poate. Este esenţial sǎ se includǎ o formǎ de verificare. 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". pentru a da operatorului şi personalului încredere în sistem.28 poate introduce greutǎţi doar într-un domeniul specificat. 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ǎ.

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

31. Acestea ar trebui utilizate cu meticulozitate. 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.30. veţi şti că aceeaşi adresă a fost. ca şi cea din figura 5. probabil. Cum nu trebuie scris un program AP: a) structura programului. Dacǎ un .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ţǎ. O cale de atingere a acestui scop este consecvenţa stilului de programare.29. utilizată de două ori sau că harta memoriei prezintă o eroare undeva. 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. Dacă aţi ales o memorie internă de un bit care să reprezinte "Alarmă temperatură apă depăşită". Dacǎ interacţiunea datelor într-un program este complexǎ. este mai bine sǎ se realizeze diagrame ale prelucrǎrii datelor. atunci când o apelaţi în program şi notaţia "Pompa 1 oprită" este ataşată. I/E şi memoria internă utilizate trebuie înregistrate iar documentarea în etapa de programare este de mare importanţă.

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

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. este un exemplu în acest sens. şi este foarte indicat sǎ se dezvolte un "stil al casei". Conceptul "EDDI" al firmei Ford.131 Figura 5.31. . discutat în capitolul 9.

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

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful