automate program a bile - curs

137
  Eugen Ioan GERGELY  AUTOMATE PROGRAMABILE CURS

Upload: florian-jurca

Post on 14-Jul-2015

563 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 1/137

 

 

Eugen Ioan GERGELY

 AUTOMATE PROGRAMABILE CURS

Page 2: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 2/137

 

2

 

CUPRINS

NOTAŢII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 

CAPITOLUL 1. SISTEMELE DE CALCUL ŞI CONTROLUL

INDUSTRIAL . . . . . . . . . . . . . . . . . . . . . . 61.1. Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.2. Contextul industrial . . . . . . . . . . . . . . . . . . . . . . . . . 71.3.  Noile reguli de producţie . . . . . . . . . . . . . . . . . . . . . . 8

1.4. Tipuri de strategii de control . . . . . . . . . . . . . . . . . . . . 91.4.1.  Subsisteme de monitorizare . . . . . . . . . . . . . . . . 101.4.2.  Subsisteme secvenţiale . . . . . . . . . . . . . . . . . . . 101.4.3.  Subsisteme de control în buclă închisă . . . . . . . . . . 121.4.4.  Echipamente de control . . . . . . . . . . . . . . . . . . . 13

1.5. Utilizarea calculatoarelor . . . . . . . . . . . . . . . . . . . . . . 141.5.1.  Arhitectura calculatoarelor . . . . . . . . . . . . . . . . . 151.5.2.  Programarea în cod maşină şi în limbaj de asamblare . . 171.5.3.  Limbaje de nivel înalt . . . . . . . . . . . . . . . . . . . . 171.5.4.  Programe de aplicaţie . . . . . . . . . . . . . . . . . . . . 19

1.6. Cerinţe ale controlului industrial . . . . . . . . . . . . . . . . . . 201.7. Automatele programabile . . . . . . . . . . . . . . . . . . . . . 24

1.7.1.  Scurt istoric . . . . . . . . . . . . . . . . . . . . . . . . . 241.7.2.    Normalizarea . . . . . . . . . . . . . . . . . . . . . . . . 281.7.3.  Tendinţe ale pieţei . . . . . . . . . . . . . . . . . . . . . 28

CAPITOLUL 2. STRUCTURA AUTOMATELOR 

PROGRAMABILE . . . . . . . . . . . . . . . . . . . 302.1. Prezentare generală a automatelor programabile . . . . . . . . . 302.2. Module de I/E . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

2.2.1. Module de intr ări discrete . . . . . . . . . . . . . . . . . . 322.2.2. Module de ieşiri discrete . . . . . . . . . . . . . . . . . . . 34

2.3. Identificarea adreselor de I/E . . . . . . . . . . . . . . . . . . . 382.3.1. Adresarea I/E la AP PLC-5 al firmei Allen Bradley . . . . 392.3.2. Adresarea I/E la AP SIMATIC S5 al firmei Siemens . . . 402.3.3. Adresarea I/E la AP GEM-80 al firmei CEGELEC . . . . 422.3.4. Adresarea I/E la AP Master al firmei ABB . . . . . . . . . 432.3.5. Adresarea I/E la AP F2 al firmei Mitsubishi . . . . . . . . 45

Page 3: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 3/137

 

3

2.3.6. Adresarea I/E la AP APC700 al firmei IPA S.A.Bucureşti . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

2.4. Adresarea memoriei interne de un bit . . . . . . . . . . . . . . . 45

2.5. Execuţia programelor . . . . . . . . . . . . . . . . . . . . . . . . 462.5.1. Ciclul program . . . . . . . . . . . . . . . . . . . . . . . . 472.5.2. Ramificaţii şi repetiţii . . . . . . . . . . . . . . . . . . . . 522.5.3. Subrutine . . . . . . . . . . . . . . . . . . . . . . . . . . . 532.5.4. Transferul prin întreruperi . . . . . . . . . . . . . . . . . . 54

2.6. Comanda la distanţă . . . . . . . . . . . . . . . . . . . . . . . . 542.7. Avantajele controlului cu AP . . . . . . . . . . . . . . . . . . . 56

CAPITOLUL 3. LIMBAJE DE PROGRAMARE . . . . . . . . . . . 583.1. Standardul IEC 1131-3 . . . . . . . . . . . . . . . . . . . . . . . 583.2. Diagrama scar ă . . . . . . . . . . . . . . . . . . . . . . . . . . . 613.3. Diagrama cu blocuri funcţionale . . . . . . . . . . . . . . . . . . 65

3.4. Lista de instrucţiuni . . . . . . . . . . . . . . . . . . . . . . . . . 673.5. Textul structurat . . . . . . . . . . . . . . . . . . . . . . . . . . . 703.6. Diagrama de stare secvenţială . . . . . . . . . . . . . . . . . . . 71

CAPITOLUL 4. FUNCŢII SPECIALE . . . . . . . . . . . . . . . . . 784.1. Programarea memoriei interne de un bit . . . . . . . . . . . . . 784.2. Temporizatoare . . . . . . . . . . . . . . . . . . . . . . . . . . . 824.3. Număr ătoare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 874.4. Aplicaţii numerice . . . . . . . . . . . . . . . . . . . . . . . . . 91

4.4.1. Reprezentarea numerelor . . . . . . . . . . . . . . . . . . . 914.4.2. Transferul datelor . . . . . . . . . . . . . . . . . . . . . . . 944.4.3. Compararea datelor . . . . . . . . . . . . . . . . . . . . . 964.4.4. Operaţii aritmetice . . . . . . . . . . . . . . . . . . . . . . 97

CAPITOLUL 5. METODE DE PROGRAMARE . . . . . . . . . . . 1025.1. Programarea logicii combinaţionale . . . . . . . . . . . . . . . . 1025.2. Programarea logicii secvenţiale . . . . . . . . . . . . . . . . . . 1055.3. Ingineria software . . . . . . . . . . . . . . . . . . . . . . . . . . 1155.4. Proiectarea top-down . . . . . . . . . . . . . . . . . . . . . . . . 1185.5. Structura programelor în diverse AP . . . . . . . . . . . . . . . 1205.6. Întreţinerea şi practica software . . . . . . . . . . . . . . . . . . 125

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

Page 4: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 4/137

 

4

 

NOTAŢII

AP - Automat(e) Programabil(e)ARQ - Automatic Transmission on Request = transmisie automată la

cerereAS - Actuator / Sensor = element de execuţie / senzor ASCII - American Standard Code for Information Interchange = Code

standard american pentru schimbul de informaţiiASK - Amplitude Shift Keying = modulaţie în amplitudineBCC - Block Check Character = caracter de verificare a bloculuiBCD - Binary Coded Decimal = zecimal codificat binar 

BS - British Standard = Standard BritanicCAN - Convertor(Conversie) Analog-Numeric(ă)CBB - Circuit(e) Basculant(e) BistabileCCITT - Comitetul Consultativ Internaţional de Telefonie şi TelegrafieCCM - Centru de Control al MotoruluiCRC - Cyclic Redundancy Code = cod ciclic de redundanţă CSMA - Carrier Sense Multiple Access = acces multiplu prin detectarea

 purtătoareiCSMA/CD – CSMA/ Colision Detection = acces multiplu prin detectarea

 purtătoarei cu detecţia coliziunilor DBF - Diagramă(e) cu Blocuri FuncţionaleDCE - Data Communication Equipment = echipament de comunicaţie a

datelor DS - Diagramă(e) Scar ă DSS - Diagramă(e) de Stare Secvenţială(e)DTE - Data Terminal Equipment = echipament terminal de dateEDDI - Error Detection and Diagnostic Indication = Indicator pentru

detectarea erorilor şi diagnosticareEIA - Electrical Industries Association = Asociaţia industriilor electriceESP - Extended Simple Protocol = protocol simplu extinsFEC - Forward Error Control = control în avans al erorilor FIMs - Functionally Identified Maintenance system = Sistem de

mentenanţă identificat funcţionalFSK - Frequency Shift Keying = modulaţie în frecvenţă HDLC - High level Data Link Control = protocol de comunicaţie de nivel

înaltHSE - Health and Safety Executive = Executivul de Sănătate şi Siguranţă I/E - Intrare/Ieşire, Intr ări/Ieşiri

Page 5: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 5/137

 

5

IEC - International Electrotechnical Comittee = Comitetul internaţionalde electrotehnică 

ISO - International Standards Organization = Organizaţia internaţională a

standardelor ITU - International Telecommunication Union = Uniunea Internaţională de Telecomunicaţii

LAN - Local Area Network = reţea locală (pe arie restrânsă)LI - Lista de InstrucţiuniLSB - Least Significant Bit = Bitul cel mai puţin semnificativMAP - Manufacturing Automation Protocol = protocol de automatizare a

 producţieiMMI - Man-Machine Interface = interfaţă om-maşină MT - Mentenance Time = durata mentenanţei (planificate)MTBF - Mean Time Between Failures = timpul mediu de bună funcţionareMTTF - Mean Time To Failure = timpul mediu până la defectare

MTTR - Mean Time To Repair = timpul mediu de reparare  ND - Normal Deschis  NI - Normal ÎnchisOSI - Open System Interconnection = (model de) interconectare a

sistemelor deschiseP - Propor ţionalPC - Personal Computer = calculator personalPI - Propor ţional-Integrator PID - Propor ţional – Integrator – DerivativPLC - Programmable Logic Controller = automat programabilPSK - Phase Shift Keying = modulaţie în fază PV - Process Variable = variabilă de procesRSU - Releu Stop de Urgenţă SB - Sertar(e) de Bază SDLC - Synchronous Data Link Control = protocol de comunicaţie sincronSNR - Signal to Noise Ratio = raportul semnal-zgomotSP - SetPoint = valoare prestabilită, referinţă SFC - Sequential FlowChart = DSSTDM - Time Division Multiplexing = multiplexare prin divizarea timpuluiTOF - Timer OFf (delay) = temporizare la declanşareTON - Timer ON (delay) = temporizare la anclanşareTS - Text StructuratUAL - Unitate Aritmetică şi Logică UART - Universal Asynchronous Receiver-Transmitter = Emiţător-receptor 

asincron universalUC - Unitate de Comandă UCP - Unitate Centrală de ProcesareWAN - Wide Area Network = reţea extinsă (pe arie largă)XOR - eXclusive-OR = (funcţia logică) SAU-EXCLUSIV

Page 6: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 6/137

 

6

 

CAPITOLUL 1SISTEMELE DE CALCUL ŞI CONTROLUL

INDUSTRIAL

1.1.  Introducere

Foarte puţine instalaţii industriale pot funcţiona singure şimajoritatea lor necesită o anume formă de sistem de control pentru a asigurao operare sigur ă şi eficientă. Figura 1.1 este o reprezentare a unei instalaţiitipice, care poate fi o uzină conectată la un sistem de control [27].

Figura 1.1. O imagine simplificată a unui sistem de control

Sistemul de control transformă comenzile operatorului uman înacţiuni necesare şi afişează starea instalaţiei către operator.

La cel mai simplu nivel, instalaţia poate fi un motor electric careacţionează un ventilator de r ăcire. Aici sistemul de control poate fi compusdin: un contactor electric, protecţii la scurtcircuit şi suprasarcină amotorului, respectiv a cablurilor. Controlul operatorului poate consta în

  butoane de START / STOP iar starea instalaţiei poate fi observată prinlămpi de semnalizare de PORNIT / OPRIT şi DEFECT.

La cealaltă extremă, uzina poate fi o vastă instalaţie petrochimică.Aici sistemul de control poate fi complex şi constă într-o combinaţie de

Page 7: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 7/137

 

7

tehnologii. Legătura cu operatorul uman poate fi la fel de variată, comenzilefiind date iar informaţiile fiind afişate prin intermediul diverselor echipamente.

În majoritatea cazurilor, operatorul va fi o parte a sistemului decontrol. Dacă se declanşează o alarmă care înseamnă "Nivel scăzut de ulei",operatorul trebuie să adauge ulei.

1.2. Contextul industrial

Din punct de vedere al gestiunii şi al automatizării, întreprinderileindustriale pot fi clasificate, în general, în două mari categorii: întreprindericu procese continue şi întreprinderi manufacturiere.

În primul caz producţia este descrisă în termenii debitului de

materiale. Tipice pentru acest caz sunt uzinele fizico-chimice şi  petrochimice. Procesul de producţie este caracterizat printr-o secvenţă dereacţii fizico-chimice ce se succed într-o manier ă continuă sau cvasi-continuă. Este clar că în aceste întreprinderi producţia este limitată strict,atât din punctul de vedere al naturii produselor, cât şi din punctul de vedereal utilajelor de producţie.

În cea de-a doua categorie de întreprinderi se fabrică produse de maimulte tipuri, care pot fi, evident, de complexitate diferită. Industriilemecanice, electrice şi electronice apar ţin acestei categorii. Procesul de

 producţie se prezintă, în general, ca o succesiune de operaţii de producere şiasamblare realizate manual sau cu ajutorul maşinilor.

Problemele cu care se confruntă actualmente întreprinderileindustriale pot fi explicate prin evoluţia pieţei. Cu puţin timp în urmă, piaţaera caracterizată prin faptul că producătorii erau cei ce determinau tipul şicantitatea produselor. Utilizatorii (clienţii) cumpărau ceea ce era disponibil.

Astăzi piaţa se caracterizează prin faptul că cerinţele producţiei suntdeterminate de către solicitările utilizatorilor (clienţilor). Concurenţa s-aînteţit şi mondializat considerabil iar exigenţele consumatorilor au sporit,îndeosebi în ceea ce priveşte calitatea produselor.

Ciclul de viaţă al produselor s-a redus considerabil: 3-4 ani pentru unautomobil şi mai puţin pentru un calculator PC. În termenii producţiei,aceasta înseamnă o mare varietate de produse cu un ciclu de viaţă scurt şi în

serii mici [50].Pentru a supravieţui, întreprinderile vor trebui să producă repede, de

calitate şi în concordanţă cu cerinţele pieţei, trebuind în acest sens să se poată adapta rapid la evoluţia produselor [29].

Page 8: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 8/137

 

8

1.3. Noile reguli de producţie

 Noile reguli de producţie pot fi rezumate, într-o manier ă sugestivă, prin cinci zerouri: zero defecte, zero întreruperi ale producţiei, zero stocuri,zero întârzieri şi zero documente.

Semnificaţia primelor patru zerouri este clar ă. Al cincilea indică dorinţa de a suprima mulţimea de documente ce trebuie întocmite, careadesea îngreunează munca personalului şi este sursa unor numeroase erori.În cazul ideal, ar trebui adăugate încă două zerouri: zero accidente şi zero

 probleme sociale.În termeni tehnici, aceste noi reguli de producţie relevă o filozofie

numită "fix-la-timp" (Just-in-Time) [30]. Este vorba de un principiu deorganizare industrială, apărut la începutul anilor ’80, care preconizacumpărarea sau producţia numai a produselor necesare, la momentuloportun. Acest principiu trebuia respectat atât la nivelul produselor finite (să se producă numai produse pentru care există comandă), cât şi la nivelulcomponentelor constitutive ale acestor produse.

Primul rezultat ar consta într-o reducere drastică a stocurilor, ce ar conduce la o îmbunătăţire a situaţiei financiare a întreprinderilor. Înrealitate, reducerea stocurilor nu este decât începutul unei reacţii în lanţ,care a condus la schimbări majore în profunzimea funcţionăriiîntreprinderilor.

Pentru a produce f ăr ă stocuri şi pentru a garanta livr ări la timp, estenecesar să existe timpi de fabricaţie foarte scur ţi, flexibilitate pentru a putea

urmări cererea de produse (în varietate şi în cantitate) şi o înaltă dependabilitate a producţiei.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ă evitedepozitările intermediare;

•  limitarea deplasărilor în vederea accceler ării producţiei;•  flexibilitatea celulelor menţionate anterior, ele trebuind să permită 

schimbarea rapidă a utilajelor şi a programelor de fabricaţie;•  controlul calităţii în fiecare etapă a fabricaţiei;•  fiabilitatea maşinilor, ceea ce înseamnă, printre altele, aplicarea unei

 politici riguroase de mentenanţă preventivă;•   polivalenţa calificării operatorilor, care devin responsabili atât de

cantitatea şi calitatea pieselor sau produselor fabricate, cât şi de bunafuncţionare a maşinilor;

Page 9: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 9/137

 

9

•  îmbunătăţirea relaţiilor cu furnizorii atât la nivelul livr ărilor la timp, câtşi la nivelul calităţii produselor furnizate.

O soluţie constă în analiza fluxului de materiale şi de informaţii

asociate procesului de producţie, în raţionalizarea lor şi în simplificarea lor la maxim. Apare, astfel, cu claritate oportunitatea automatizării şiinformatizării proceselor de producţie.

Automatizarea permite accelerarea fabricaţiei şi/sau garantareaconstanţei calităţii ei. Pentru motivele exprimate anterior, automatizareatrebuie să fie flexibilă. Această flexibilitate se traduce la nivelul structuriimaşinilor unelte prin faptul că ele trebuie să fie polivalente şi adaptabile şisă fie prevăzute cu o gestiune a uneltelor  şi a alimentării cu piese completautomatizate. Astfel, un robot, de exemplu, va apare ca o maşină flexibilă 

 prin excelenţă.Această flexibilitate trebuie să se regăsească şi la nivelul sistemelor 

de comandă a maşinilor, ale căror moduri de funcţionare trebuie să poată fimodificate foarte uşor. Acest aspect nu mai ridică în momentul de faţă 

  probleme reale, deoarece practic toate maşinile de producţie noi suntcomandate cu dispozitive bazate pe microprocesoare.

În plus, posibilităţile de comunicaţie existente permit transferul şimodificarea programelor nu numai de la sistemele de conducere proprii, cişi de la alte sisteme de calcul.

Informatizarea are ca obiectiv ameliorarea transferului de informaţiireferitoare la procesul de producţie. Aceste informaţii se refer ă nu numai lafabricaţia propriu-zisă, ci şi la concepţia produselor, la gestiunea tehnică,

financiar ă  şi administrativă a uzinei, la management, la marketing, etc.Aceste aspecte diferite ale producţiei au devenit, de câtva timp, obiectulunor dezvoltări infomatice specifice.

 Noile reguli de producţie evocate aici conduc, în mod natural, la ointegrare a mijloacelor informatice ale unei întreprinderi. Termenul"integrare" utilizat aici acoper ă nu numai interconectarea fizică acalculatoarelor în reţele de comunicaţie, dar şi interconectarea logică a lor.Pe de altă parte, integrarea ofer ă fiecăruia accesul direct la informaţiiledorite, la momentul dorit şi în locul dorit.

1.4. Tipuri de strategii de control

Este foarte simplu să fii derutat şi copleşit de dimensiunile şicomplexitatea unui proces industrial mare. Majoritatea acestora, dacă nutoate, pot fi simplificate prin considerarea lor ca fiind compuse din mai

Page 10: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 10/137

 

10

multe subprocese mici. Aceste subprocese pot fi diferenţiate, în general, întrei tipuri distincte.

1.4.1. Subsisteme de monitorizare

Acestea afişează starea procesului către operator  şi atrag atenţiaasupra situaţiilor anormale sau de defect. Starea instalaţiei este măsurată 

 prin senzori (traductori) corespunzători.Senzorii digitali evaluează parametrii cu stări distincte. Exemple

tipice sunt: PORNIT / OPRIT, MERS ÎNAINTE / MERS ÎNAPOI,DEFECT / BUN, BLOCAT / JOS / MEDIU / ÎNALT, NIVEL RIDICAT /

  NORMAL / SCĂZUT. Senzorii analogici măsoar ă parametrii care au undomeniu de variaţie continuu, cum ar fi temperatur ă, presiune, debit saunivel. Rezultatele acestor măsur ători sunt afişate către operator prinindicatori (pentru semnalele digitale) sau prin aparate de măsur ă şi contoare(pentru semnalele analogice).

Semnalele pot fi, de asemenea, verificate pentru situaţiile de alarmă.Un limitator de capăt de cursă sau un releu termic folosit pentrusuprasarcina unui motor sunt condiţii tipice digitale de alarmă. Otemperatur ă înaltă sau un nivel scăzut de lichid pot fi condiţii tipiceanalogice de alarmă. Operatorul trebuie informat asupra acestora prinechipamente de avertizare acustică şi vizuală.

Un sistem de monitorizare păstrează adeseori înregistr ări aleconsumului de energie şi materiale în scopul unor bilanţuri şi produce un

 jurnal de evenimente / alarme pentru analiza lui în etapa de mentenanţă. O pompă, de exemplu, poate necesita mentenanţă după 5000 de ore de operare.

1.4.2. Subsisteme secvenţiale

Multe procese urmăresc secvenţe predefinite, cum ar fi, de exemplu,sistemul de control secvenţial al cuptorului cu gaz din figura 1.2. Pentru

 pornirea arzătorului, secvenţa de comandă ar putea fi următoarea:a.  Se apasă butonul START. Dacă senzorii arată că nu este debit de aer 

şi nici flacăr ă, atunci secvenţa poate începe. b.  Se alimentează contactorul ventilatorului. Dacă contactorul a cuplat

(lucru verificat printr-un contact auxiliar al contactorului) şi debitulde aer s-a stabilizat (lucru verificat prin limitatorul de debit), atunci:

c.  Se aşteaptă două minute (pentru ca aerul să elimine gazele nearse) şiapoi:

Page 11: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 11/137

 

11

d.  Se deschide valva pilot şi se acţionează aprinzătorul. Se aşteaptă două secunde şi apoi se opreşte aprinzătorul şi:

e.  Dacă există flacăr ă (lucru verificat prin detectorul de flacăr ă) se

deschide valva de gaz principală.f.  Secvenţa este completă. 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.

Figura 1.2. Un cuptor de gaz cu sistem de control secvenţial

Secvenţa anterioar ă utilizează doar semnale discrete, dar poateutiliza şi semnale analogice. În figura 1.3 este prezentat un proces deamestecare a două substanţe.

Senzorii analogici sunt utilizaţi pentru a măsura greutatea şitemperatura pentru a da următoarea secvenţă:

a.  Se deschide valva V1 până sunt încărcate 250 kg din produsul A. b.  Se porneşte paleta de amestecare.c.  Se deschide valva V2 până sunt adăugate 310 kg din produsul B.d.  Se aşteaptă 120 secunde (pentru amestecare completă).

e.  Se încălzeşte amestecul la 80° C şi se menţine la 80° C timp de 10minute.

f.  Se opreşte încălzitorul. Se aşteaptă până când amestecul se r ăceşte la30° C.

Page 12: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 12/137

 

12

g.  Se opreşte paleta mixerului.h.  Se deschide valva de evacuare V3 până când greutatea amestecului

scade sub 50 kg.

Figura 1.3. Un proces de amestecare

1.4.3. Subsisteme de control în buclă închisă 

În multe sisteme analogice o variabilă ca temperatur ă, presiune saudebit este necesar să fie menţinută automat la o anumită valoare prestabilită sau să fie f ăcută să urmărească un alt semnal. În pasul e al secvenţei deamestecare anterioare, de exemplu, temperatura trebuie menţinută constant

la 80° C într-un domeniu foarte îngust timp de 10 minute. Asemeneasisteme pot fi reprezentate prin schema bloc din figura 1.4.

Aici, un parametru al instalaţiei (temperatura, notată prin PV – variabilă de proces) trebuie menţinut la o valoare prestabilită SP (referinţă).PV este măsurată printr-un senzor corespunzător şi comparată cu SP pentrua da semnalul de eroare:

abaterea = SP-PV (1.1)Dacă, de exemplu, este vorba despre un regulator de temperatur ă cu

SP = 80° C şi PV = 78° C, atunci abaterea este de 2° C.Acest semnal de eroare este aplicat unui algoritm de control. Există 

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 estenegativă opreşte încălzirea iar dacă este pozitivă porneşte încălzirea".

Ieşirea algoritmului de control este transmisă unui element deexecuţie care deserveşte instalaţia. Pentru controlul temperaturii, elementul

Page 13: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 13/137

 

13

de execuţie poate fi o rezistenţă electrică iar pentru controlul unui debitelementul de execuţie poate fi o valvă de control a debitului. Algoritmul decontrol va comanda elementul de execuţie astfel încât eroarea să fie zero,

adică PV = SP.

Figura 1.4. Un sistem de control în buclă închisă 

În figura 1.4 valoarea PV este transmisă înapoi pentru a fi comparată cu SP, ceea ce conduce la expresia "control cu reacţie negativă". Trebuie, deasemenea, observat că schema bloc formează o buclă, astfel că expresia"control în buclă închisă" este, de asemenea, întâlnită.

Deoarece procesul de corecţie este continuu, valoarea PV poate fif ăcută să urmărească un SP care se modifică. Propor ţia aer/gaz pentru uncuptor cu gaz (cum este cel din figura 1.2) poate fi, deci, menţinută în ciudamodificării funcţionării cuptorului.

1.4.4. Echipamente de control

Cele trei tipuri de strategii de control prezentate anterior pot fiimplementate pe mai multe căi. Sistemele de monitorizare / alarmă pot fideseori realizate prin conectarea senzorilor instalaţiei la afişaje, indicatoareşi dispozitive de alarmă. Uneori, sistemele de alarmă necesită o anumită logică. De exemplu, nu se poate genera o alarmă la presiune scăzută de uleiîn timpul pornirii unei pompe, deoarece este necesar un interval de timp laînceputul funcţionării pompei, pentru a se permite stabilizarea presiunii încircuit. După acest timp, o presiune scăzută va cauza oprirea pompei (încazul în care scăderea presiunii este cauzată de o scurgere).

Sistemele secvenţiale pot fi realizate cu relee, temporizatoare şi alteasemenea dispozitive electromagnetice. Circuitele logice (TTL sau CMOS,

în general) pot fi utilizate pentru sisteme mai complexe [17, 6]. Multeaplicaţii cu maşini-unelte sunt realizate în jurul unor blocuri logice: unităţilogice montate în sloturi (locaşuri prevăzute cu conectori), conţinând por ţilogice, elemente de memorare, temporizatoare şi număr ătoare, conectate

Page 14: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 14/137

 

14

 prin terminale la blocuri, pentru a realiza operaţia cerută. Ca şi la sistemelecu relee, modificările pot fi realizate relativ simplu.

Controlul în buclă închisă poate fi realizat prin intermediul unor 

regulatoare construite pe baza unor amplificatoare de c.c., cum ar fiobişnuitul 741. "Regulatorul cu trei termeni" (PID), descris în Capitolul 6,este un echipament care realizează funcţia din figura 1.4 şi este disponibil încomer ţ. În industria chimică (şi, în particular, în industria petrochimică),

 prezenţa unor atmosfere explozive a condus la utilizarea unor regulatoare  pneumatice, cu semnalele din figura 1.4 reprezentate prin presiuni pneumatice.

1.5. Utilizarea calculatoarelor

Un calculator este un dispozitiv care realizează operaţii

 predeterminate asupra unor date de intrare pentru a produce date de ieşire,aşa cum este reprezentat în figura 1.5.a.

Figura 1.5. Calculatorul în controlul industrial: a) privire generală asupracalculatorului; b) calculatorul ca parte a unui sistem

Pentru un calculator utilizat pentru calculul statelor de plată, datelede intrare vor fi numele angajaţilor, categoriile salariale şi orele lucrate.Aceste date vor fi operate în concordanţă cu instrucţiunile scrise astfel încâtsă includă impozitele şi asigur ările sociale, pentru a produce date de ieşiresub forma restului de plată (sau, mai modern, suma transferată într-un cont

 bancar).

Primele calculatoare au fost utilizate pentru operaţii comerciale: statede plată, contabilitate, operaţiuni bancare şi alte activităţi similare.

Schema bloc a unei instalaţii conduse de un calculator este oreprezentare apropiată de blocul de control din figura 1.1, care poate fi

Page 15: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 15/137

 

15

redesenat sub forma unui calculator care conţine blocurile de control, ca înfigura 1.5.b. Se observă că acţiunile operatorului nu sunt instrucţiuni, ci sunto componentă a datelor de intrare. Instrucţiunile vor defini care acţiuni

trebuie considerate ca date de intrare (de la instalaţie sau de la operator).Datele de ieşire sunt acţiunile de control asupra instalaţiei şi afişareainformaţiilor către operator.

Primele calculatoare au fost mari, scumpe şi lente. Viteza nu era atâtde importantă în aplicaţiile comerciale (programatorii comerciali vor fi,

  probabil, în dezacord), dar este de cea mai mare prioritate în aplicaţiileindustriale care trebuie conduse în timp real. Multe acţiuni şi alarmenecesită comenzi întreprinse în fracţiuni de secundă.

Calculatoarele comerciale se bazau pe furnizarea datelor pe cartele perforate şi prin tastatur ă, şi pe trimiterea datelor de ieşire către imprimante.

Un proces industrial necesită , uneori, ca sute de dispozitive să fie

citite în timp real iar semnalele să fie trimise către echipamente ca valve,motoare, aparate de măsur ă, etc.

Există, de asemenea, problema mediului de funcţionare.Calculatoarele comerciale au fost proiectate să lucreze în atmosfere

  protejate, umiditatea şi temperatura trebuind menţinute în limite înguste.Aceste condiţii sunt imposibil de asigurat în procesele de producţie.

Prima aplicaţie industrială a calculatoarelor a fost, probabil, unsistem de monitorizare instalat într-o rafinărie de petrol în Port Arthur,SUA, în 1959. Fiabilitatea şi media timpilor între defectări alecalculatoarelor acelui timp au condus la o utilizarea redusă a lor în asemeneaaplicaţii.

1.5.1. Arhitectura calculatoarelor

Pentru a putea aprecia modul de utilizare al unui calculator încontrolul industrial, este utilă cunoaşterea păr ţilor componente ale sale. Înacest sens, figura 1.5.a poate fi extinsă pentru a ajunge la forma din figura1.6. Această figur ă (care reprezintă toată gama de calculatoare, de la cel maimic PC la cel mai complex) are şase blocuri [13, 16, 41, 49]:

1.  O unitate de intrare, prin care datele din exterior sunt introduse încalculator în vederea procesării.

2.  O memorie internă , care va păstra instrucţiunile programelor  şi

datele de operare. Aceste date pot fi informaţii venite din exterior sau rezultate intermediare şi/sau finale ale calculelor.

3.  Datele din memoria internă pot fi accesate foarte rapid, dar calculatoarele comerciale necesită, adeseori, rezerve mari de

Page 16: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 16/137

 

16

memorie pentru a reţine detalii cum ar fi: conturi bancare, nume şiadrese. Acest tip de date nu e necesar să fie furnizate rapid şi, deaceea, sunt păstrate în memoria externă . De obicei, aceasta constă în

discuri sau casete magnetice şi este numită memorie secundar ă.Aceste memorii sunt puţin utilizate la tipurile de calculatoare ce vor fi discutate.

Figura 1.6. Păr ţile componente ale unui calculator 

4.  O unitate de ie şire, prin care datele din calculator sunt transmisecătre exterior.

5.  O unitate aritmetică   şi logică  UAL, care realizează operaţii asupradatelor din memorie în concordanţă cu programul executat de cătrecalculator.

6.  O unitate de comand ă  UC , care face legătura între operaţiilecelorlalte cinci blocuri. Adeseori, UAL şi UC sunt cunoscuteîmpreună sub numele de unitate central ă de procesare sau UCP . Un

microprocesor este o UCP într-un singur circuit integrat.Instrucţiunile programului sunt păstrate în memorie şi, cu miciexcepţii, se succed în ordine secvenţială. Există surprinzător de puţine tipuride instrucţiuni. Cele disponibile la majoritatea microprocesoarelor sunt deforma:

1.  Transfer ă data dintr-un loc în altul. De exemplu, înscrie data într-olocaţie de memorie sau transfer ă data din memorie în UAL.

2.  Operaţii aritmetico-logice asupra a doi operanzi, unul în UAL iar celălalt într-o locaţie de memorie specificată. Operaţiile uzuale sunt:+, -, AND, OR.

3.  Salturi. Într-un program instrucţiunile se succed una după cealaltă,

secvenţial. Există, însă, situaţii când este necesar ă continuareaexecuţiei programului cu o altă instrucţiune decât cea imediaturmătoare (salt necondiţionat) sau când sunt necesare teste simple.Aceste din urmă operaţii utilizează salturi condiţionate. Acestea vor 

Page 17: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 17/137

 

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.

4.  Subrutine. Multe operaţii sunt executate de mai multe ori în acelaşi

  program. Într-un sistem de control industrial în care debitul estemăsurat cu o diafragmă, este apelată de multe ori funcţia radical deordinul doi (deoarece debitul este propor ţional cu r ădăcina pătrată adiferenţei de presiune pe diafragmă). Decât să se scrie aceeaşiinstrucţiune de mai multe ori (fapt care necesită efort şi spaţiu dememorie suplimentar), se utilizează o instrucţiune de apel desubrutină, care permite ca din diferite puncte ale programului

  principal să se transfere operaţiile la o subrutină specificată. După execuţia acesteia se revine în programul principal, la instrucţiuneaaflată după instrucţiunea de apel a subrutinei.

1.5.2. Programarea în cod maşină şi în limbaj de asamblare

Seria de instrucţiuni ce constituie programul trebuie scrisă  şiîncărcată în calculator. La nivelul cel mai scăzut, numit programare în cod ma şină , instrucţiunile sunt scrise în calculator sub formă numerică. Acestlucru este dificil de f ăcut, favorizează erorile şi este aproape imposibil demodificat ulterior.

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 pentrumicroprocesorul Z80, care începe la adresa 4000H. Dar, chiar  şi un

 programator experimentat pentru Z80 are nevoie de bibliografie (şi de multtimp) pentru a putea interpreta aceste 19 numere.

 Programarea în limbaj de asamblare utilizează mnemonice în loculcodurilor, permiţând programatorului să scrie rapid instrucţiunile, care suntuşor de urmărit. Un program separat, denumit asamblor , converteşte

  programul cu mnemonice (denumit  program sursă ) într-un program codmaşină echivalent (denumit cod obiect ), care poate fi lansat în execuţie.

Scrierea programelor în limbaj de asamblare este laborioasă, pentrucă există câte o instrucţiune în limbaj de asamblare pentru fiecareinstrucţiune în cod maşină.

1.5.3. Limbaje de nivel înalt

Programele în limbaj de asamblare pentru anumite aplicaţii sunt greude scris, aşa că au fost dezvoltate căi de scriere a programelor pentru

Page 18: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 18/137

 

18

calculator într-un stil apropiat de limba engleză. Acest lucru este realizat cuaşa-numitele “limbaje de nivel înalt”, dintre care cele mai cunoscute suntPASCAL, FORTRAN, BASIC (şi altele, cum ar fi RPG, FORTH, LISP,

CORAL, C), pentru a numi numai câteva din ele, fiecare având atracţiilesale.

Într-un limbaj de nivel înalt programatorul scrie instrucţiunile într-oformă apropiată de limba engleză. Programul PASCAL de mai jos, deexemplu, furnizează la imprimantă o tabelă a înmulţirii:

 program multtable(input,output);var deinmultit, inmultitor:integer

begin

readln ("Ce tabelă doriţi?",inmultitor);

for deinmultit=1 to 10 do

writeln (deinmultit,"ori",inmultitor,"egal",

deinmultit*inmultitor);end.(of program)

Chiar dacă cititorul nu cunoaşte limbajul PASCAL, operaţiile din program sunt clare (dacă se cere schimbarea tabelei de înmulţire până la 10cu o tabelă de înmulţire până la 20, este clar care linie trebuie schimbată).

Un program sursă în limbaj de nivel înalt poate fi lansat în execuţie prin două metode:•  Cu un compilator, care este un program care converteşte întregul

  program sursă în limbaj de nivel înalt, offline, într-un program codobiect. Programul cod obiect rezultat poate fi apoi rulat independent de

 programul sursă sau de compilator.•  Cu un interpretor. Programul sursă şi interpretorul există în calculator în

timpul execuţiei programului. Interpretorul parcurge fiecare linie acodului sursă  şi le converteşte în cod maşină echivalent, pe măsur ă cesunt executate. El nu generează program cod obiect.

Un program compilat este rulat mult mai rapid decât un program cuinterpretor (tipic de 5-10 ori mai repede, datorită lucrului suplimentar depusde interpretor) iar programul cod obiect compilat va fi mult mai mic decâtcodul unui program echivalent cu interpretor.

Compilatoarele sunt, totuşi, mai greu de utilizat, o secvenţă tipică delucru cu un compilator fiind următoarea:1.  Este lansat un editor de text (pentru a scrie programul sursă sau pentru

eventuale modificări ce trebuie aduse programului sursă).2.  Programul sursă este tastat sau este încărcat de pe hardisc (dischetă).3.  Dacă au fost f ăcute modificări, fişierul sursă rezultat este salvat pe

hardisc (dischetă).

Page 19: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 19/137

 

19

4.  Este încărcat de pe hardisc compilatorul şi este lansat în execuţie.5.  Este încărcat de pe hardisc (dischetă) fişierul sursă.6.  Începe compilarea, care poate dura câteva minute. Dacă este întâlnită cel

 puţin o eroare, se trece înapoi la etapa 1.7.  Este produs un program cod obiect, care poate fi salvat pe hardisc

(dischetă) şi/sau rulat. Dacă este întâlnită o eroare de execuţie, se treceînapoi la pasul 1.

Figura 1.7. Operarea unor limbaje de nivel înalt:a) compilate; b) interpretate

Un interpretor este mai uşor de utilizat şi pentru multe aplicaţiiminusul de viteză este nesemnificativ. BASIC este, în general, un limbaj

interpretat. PASCAL, C, FORTRAN sunt, de obicei, compilate. Figura 1.7 prezintă simplificat modul de operare al unor limbaje de nivel înaltcompilate sau interpretate.

1.5.4. Programe de aplicaţie

Pe măsur ă ce calculatoarele au devenit tot mai r ăspândite, au fostscrise multe programe pentru a permite utilizatorului să definească execuţiatask-urilor, f ăr ă a-şi face probleme despre cum va executa calculatorulaceste task-uri.

Acestea sunt cunoscute sub numele de programe de aplica ţ ie şi sunt

tipizate, cum ar fi Lotus 123, Visicalc şi programe de gestiune a bazelor dedate (cum ar fi DBASE şi Data Ease). În acestea, utilizatorul defineşteoperaţii matematice complexe sau operaţii asupra bazelor de date, f ăr ă a"programa" calculatorul într-un sens convenţional.

Page 20: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 20/137

 

20

  1.6. Cerinţe ale controlului industrial

Controlul industrial are mai multe cerinţe diferite decât alte aplicaţii.

Un calculator convenţional, reprezentat schematic în figura 1.8.a primeşteuzual datele de la tastatur ă şi transmite date de ieşire către un monitor saucătre o imprimantă. Datele procesate sunt, în general, caractere sau numere(de exemplu, numere de articole şi cantităţi existente într-o listă de stocuri aunui magazin).

Figura 1.8. Diferenţa dintre calculatoarele comerciale şi cele industriale:a) calculator comercial; b) calculator pentru control industrial

Calculatorul de control din figura 1.8.b este foarte diferit. Intr ărilesale provin de la un număr mare de dispozitive. Deşi câteva din acestea suntanalogice (debit, temperatur ă, presiune, etc.), majoritatea sunt bipoziţionale.

Similar, ieşirile sale pot fi semnale analogice şi discrete. Un sistemde control foarte mic poate avea în jur de 20 de conexiuni de I/E. Sistemelede dimensiuni medii au în jur de 200 de conexiuni de I/E.

Tastatura, imprimanta şi monitorul pot exista, dar nu e necesar, iar funcţiile lor vor fi, probabil, diferite de cele dintr-un calculator de birou sausistem.

Deşi există posibilitatea conectării acestor semnale la un calculator convenţional, acest lucru necesită conexiuni non-standard şi cutii externe.

Similar, deşi procesarea unui număr mare de semnale de I/E poate fi f ăcută în PASCAL, BASIC sau C, aceste limbaje sunt utilizate, în acest caz, înaplicaţii diferite de cele pentru care au fost proiectate, cu implicaţii negativeasupra rezultatelor.

Page 21: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 21/137

 

21

În figura 1.9.a, de exemplu, avem un simplu contactor al unui motor.Acesta poate fi conectat la un calculator, ca în figura 1.9.b. Cele două intr ărisunt identificate prin adresele 1 şi 2 iar ieşirii (contactorului K1) i s-a

atribuit adresa 10.

Figura 1.9. Comparaţie între conexiunile schemelor convenţionale şiale schemelor bazate pe calculator pentru acţionarea contactorului unui

motor: a) cu un circuit convenţional; b) cu un calculator 

Dacă consider ăm că există o funcţie logică de program (N), care dă starea 1/0 adresei N, şi o procedur ă de bit (M, var) care transmite stareavariabilei de program var la adresa M, putem reprezenta acţiunile dinfigura 1.9 prin secvenţa:

r epeatstart:=bitread(1);

stop:=bitread(2);

run:=((start) or (run))& stop;

bitwrite(10,run);

until hellfreezesoverunde start, stop  şi run sunt variabile binare. Programul nu este preaclar, deşi sunt doar trei conexiuni.

Un program de control industrial r ămâne rareori neschimbat de-alungul vieţii sale. Există întotdeauna modificări ale programelor survenitedatorită modificării funcţionării instalaţiei. Aceste modificări vor fi f ăcutede către personalul de întreţinere şi trebuie f ăcute cu întreruperi minime ale

 producţiei. Adăugarea unui al doilea buton de stop şi unui al doilea buton destart la schema din figura 1.9 nu este o sarcină uşoar ă pentru cei de laîntreţinere, dacă nu cunosc suficient de bine limbajul PASCAL ca să facă modificarea.

În general, controlul cu calculator este realizat în timp real, astfelîncât calculatorul are de r ăspuns la evenimente aleatoare, pe măsura apariţieilor. Un operator aşteaptă ca un motor să pornească (şi, mai important, să seoprească) la o fracţiune de secundă după apăsarea unui buton. Deşi calculele

Page 22: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 22/137

 

22

comerciale necesită calculatoare rapide, o diferenţă de o secundă sau două între timpii de calcul nu va fi observată de către utilizator. Asemeneadiferenţe sunt, însă, inacceptabile în controlul industrial [12, 47, 53, 54].

Timpul însuşi este o parte a strategiei de control (de exemplu, porneşte ventilatorul, aşteaptă 10 secunde să se cureţe cuptorul de gaze,deschide valva pilot, aşteaptă 0,5 secunde, porneşte aprinzătorul, dacă există flacăr ă deschide valva principală). Asemenea secvenţe sunt dificil de scriscu limbajele convenţionale.

Majoritatea defectelor sunt cauzate de factori externi (limitatoare,relee, etc.) şi nu de unitatea de comandă. Permisiunea de a porni instalaţia,de exemplu, se poate baza pe semnale externe care implică debite de apă der ăcire, presiune de ungere sau temperaturi în limite admise. Pentru găsirearapidă a defectelor, personalul de întreţinere trebuie să fie capabil să monitorizeze acţiunea programului în timp ce acesta este în execuţie. Dacă există 10 semnale de interblocare care permit pornirea motorului, personalulde întreţinere trebuie să fie capabil să le verifice repede în cazul unui defect.Cu un calculator convenţional, acest lucru se poate obţine doar prin mărireacomplexităţii programului.

Sursele de energie electrică dintr-un mediu industrial sunt utilizatede multe sarcini, care induc perturbaţii (de exemplu, motoare mari pornindşi oprindu-se sau acţionări cu tiristoare, care produc vârfuri şi armonice întensiunile de alimentare). Pentru un om, acestea sunt percepute ca niştelicăriri de lumină, dar într-un calculator acestea pot duce la deteriorareadatelor sau chiar la defectarea maşinii-unelte pe care o comandă 

calculatorul.Un calculator industrial trebuie să fie capabil să lucreze în mediifoarte neprietenoase şi să r ăspundă rapid în caz de întrerupere a alimentării.Unele ieşiri trebuie să r ămână în starea din acel moment iar altele trebuie să fie pornite sau oprite, până când operatorul ia măsurile de corecţie necesare.Proiectantul trebuie să aibă facilitatea de a defini ce se întâmplă atunci cândsistemul porneşte de la rece.

Ultimele consideraţii sunt legate de mediu. Un calculator de sistemmare lucrează într-o încă  pere cu aer condiţionat, la 20° C şi umiditatecontrolată. Un PC de birou lucrează într-un mediu constant, deoareceoamenii nu lucrează bine la extreme. Un calculator industrial va trebui să 

lucreze, probabil, departe de oameni, la temperaturi de -10° C iarna şi +40° C vara. Aceste variaţii de temperatur ă conduc la dilatarea şi contracţiaconstantă a componentelor, ceea ce poate conduce la defectări, dacă în fazade proiectare nu s-a ţinut cont de acest factor.

Page 23: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 23/137

 

23

La aceste modificări de temperatur ă se adaugă praful şi mizeria.Foarte puţine procese industriale sunt curate iar praful pătrunde pretutindeni(chiar  şi la un factor de protecţie IP55, deoarece acesta protejează numai

când uşile sunt închise). Praful va pătrunde în conectori şi, dacă aceştia nusunt de cea mai bună calitate, vor putea apare defecte intermitente, care suntfoarte greu de detectat.

În majoritatea aplicaţiilor în care se utilizează calculatoare, o eroarede programare sau un defect al calculatorului pot fi costisitoare şideranjante. Când un calculator ce conduce o instalaţie se defectează saucând programatorul nu înţelege modul de funcţionare al instalaţiei, rezultatul

 poate consta în pagube şi accidente.Cerinţele noastre în privinţa calculatoarelor din controlul industrial

sunt foarte ridicate şi merită reamintite:1.  Acestea trebuie proiectate astfel încât să reziste în medii industriale, cu

tot ceea ce implică aceasta pentru temperatur ă, murdărie şi slaba calitatea alimentării principale.

2.  Să fie capabile să proceseze semnale de I/E pe bit la tensiuni utilizate înindustrie (24 V c.c. sau 220 V c.a.) şi semnale de I/E analogice. Extensianumărului de I/E trebuie să fie simplă şi rapidă.

3.  Limbajul de programare trebuie să fie uşor de înţeles de către personalulde întreţinere (de exemplu, de către electricieni), care nu auantrenament pe calculator. Modificările de program trebuie să se poată face uşor pentru o instalaţie în modificare.

4.  Trebuie să existe posibilitatea monitorizării funcţionării instalaţiei în

timpul funcţionării (on-line), pentru a uşura detecţia defectelor. Trebuieştiut că majoritatea defectelor apar la echipamentele externe (cum ar fimicroîntrerupătoarele montate pe instalaţie, senzorii şi elementele deexecuţie) şi trebuie să fie posibilă observarea funcţionării acestora de lacalculatorul de comandă.

5.  Sistemul trebuie să opereze suficient de rapid pentru controlul în timpreal. În practică, "suficient de rapid" înseamnă un timp de r ăspuns deaproximativ 0,1 secunde, dar acesta poate varia în funcţie de aplicaţie şide calculatorul utilizat.

6.  Utilizatorul trebuie să fie protejat faţă de jargonul calculatorului, adică faţă de cuvintele pretenţioase specifice, împrumutate, de obicei, din alte

limbi, folosite de anumite categorii profesionale cu scopul de a sedistinge de masa vorbitorilor .

7.  Siguranţa personalului, echipamentelor, instalaţiei şi a mediuluiînconjur ător trebuie să fie prima prioritate.

Page 24: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 24/137

 

24

1.7. Automatele programabile

Automatele programabile constituie o clasă aparte în familia

echipamentelor utilizate pentru controlul industrial. Ele încorporează într-ostructur ă robustă o UCP (sau mai multe) şi dispozitivele de interfaţare cusemnalele din proces şi cu operatorul. UCP are astfel acces la toţi senzorii şielementele de execuţie ale procesului.

Ele asociază limbaje de programare adecvate modului de lucru al  practicienilor din acest domeniu şi un domeniu de aplicaţii industrialeextrem de vast. Se estimează că în producţia manufacturier ă, peste 80 % dinnecesităţile în materie de control pot fi acoperite de către AP!

1.7.1. Scurt istoric

La sfâr şitul anilor ’60 producătorul american de automobile GeneralMotors a fost interesat de utilizarea calculatoarelor la înlocuirea schemelor convenţionale cu relee utilizate în controlul uzinelor sale automate de

  producere a automobilelor. În 1969 a produs o specificaţie pentru uncalculator industrial similar celei expuse în paragraful anterior.

Două companii independente, Bedford Associates (devenită, ulterior,Modicon) şi Allen Bradley, au r ăspuns la specificaţia firmei GeneralMotors. Fiecare a produs câte un calculator ce corespundea specificaţiei,similar celui din figura 1.10.a, şi care avea puţine asemănări cucalculatoarele comerciale de astăzi. El a fost denumit automat programabil  şi avea 128 de I/E, 1koctet memorie program şi un set de instrucţiuni logice.

Calculatorul însuşi, numit  procesor central , a fost proiectat pentru aopera în mediu industrial şi a fost conectat cu exteriorul prin intermediulunor SB în care puteau fi montate modulele de I/E.

În aceste prime sisteme existau patru tipuri diferite de module: deintr ări discrete, de ieşiri discrete, de intr ări analogice şi de ieşiri analogice.Fiecare modul poate citi 16 intr ări sau poate acţiona 16 ieşiri.

Un SB cu 8 module poate fi astfel conectat la 128 de dispozitive.Este foarte important modul de alocare a modulelor la alegereautilizatorului, astfel încât să se permită o cât mai mare flexibilitate. În figura1.10.b utilizatorul a instalat un modul de intr ări de c.c., un modul de ieşiri dec.c., trei module de intr ări de c.a. şi două module de ieşiri de c.a., lăsând o

 poziţie de rezervă pentru extensii ulterioare. Acest SB poate fi astfelconectat la 16 semnale de intrare în c.c., 16 semnale de ieşire în c.c., 48semnale de intrare în c.a. şi 32 semnale de ieşire în c.a. Bineînţeles, nu esteobligatorie utilizarea tuturor acestora.

Page 25: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 25/137

 

25

Figura 1.10. Păr ţile componente ale unui sistem cu AP:a) unul din primele sisteme cu AP; b) un sertar de bază cu module

Cea mai radicală idee a fost realizarea unui limbaj de programare  bazat pe schemele cu relee şi contacte, cu intr ările (de la limitatoare, butoane, etc.) reprezentate prin contacte de releu, şi cu ieşirile (către bobine,contactoare, becuri, etc.) reprezentate prin bobine de relee. Figura 1.11 arată modul de comandă al unui cilindru hidraulic acţionat prin butoane.

Cursa sa este determinată de limitatoare care se deschid la sfâr şitulcursei şi de bobine care pot fi comandate doar dacă pompa hidraulică merge.Această funcţionare este controlată prin programul din figura 1.11.b, careeste identic cu circuitul cu relee necesar pentru a comanda cilindrul. Aceste

 programe arată ca treptele unei scări şi au fost denumite diagrame logice

 scar ă (de la Relay Ladder Logic).Programul este introdus printr-un terminal de programare (sau

consolă de programare), ale căror taste au simbolurile (contacte normaldeschise / normal închise, bobine, temporizatoare, număr ătoare, ramificaţii,

Page 26: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 26/137

 

26

etc.) cu care un electrician de întreţinere este familiarizat. Semnificaţiatuturor tastelor trebuie să fie evidentă. Programul, afişat pe display, vailumina contactele şi releele activate, permiţând utilizarea terminalului de

 programare la depanare.

Figura 1.11. O aplicaţie simplă cu AP: a) cilindru hidraulic comandatcu AP; b) diagrama logică scar ă pentru comanda cilindrului; aceasta este bazată pe simbolurile americane: simbolul -] [- arată că semnalul trebuiesă fie prezent iar simbolul -]/[- arată că semnalul nu trebuie să fie prezent

Memoria este protejată cu baterii, pentru a preveni deteriorarea sau pierderea programelor la căderea alimentării. Programele pot fi păstrate pesuport magnetic, fapt care permite utilizarea unor programe diferite asupraunor produse diferite.

 Numele dat acestor echipamente a fost "controler programabil" sau

"automat programabil" (de la Programmable Controller - PC). Numele de"controler logic programabil" sau PLC (de la Programmable LogicController) a fost de asemenea utilizat, dar este o marcă înregistrată a firmeiAllen Bradley. Din nefericire, în ultimii ani literele PC sunt utilizate pentru

Page 27: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 27/137

 

27

a desemna calculatoarele personale, producând confuzie în lumeaautomatelor programabile şi a calculatoarelor personale, deoarece acesteadin urmă pot fi utilizate acum ca şi terminale de programare. Pentru a

elimina confuzia vom utiliza denumirile "automat programabil" pentru PLCşi "calculator personal" pentru PC.

Se observă că AP au fost de la bun început şi r ămân în continuareechipamente concepute de automatişti pentru automatişti. Perfecta lor adaptare la nevoile industriale este consecinţa cea mai importantă.

Această adaptare acoper ă nu numai aspectul programării lor, ci şiaspectele materiale. AP sunt perfect adaptate mediilor industriale: I/E înconformitate cu standardele semnalelor industriale, protecţie la fenomeneleelectromagnetice, rezistenţă la şocuri, la vibraţii şi la coroziune, dispozitivede siguranţă în cazul variaţiilor sau întreruperilor tensiunii de alimentare.

Toate aceste consideraţii explică pătrunderea în for ţă a AP înindustrie, ritmul anual de creştere a utilizării lor în industrie fiind de 20-30% (!), acompaniat de o dinamică inovatoare remarcabilă.

Odată apărute primele microprocesoare, ele au fost utilizate pentrusimplificarea conceperii procesoarelor pentru AP. Constructorii de AP au

  putut astfel dezvolta familii omogene de AP, capabile să rezolve într-omanier ă eficientă  şi rentabilă o gamă largă de probleme de control, de lacele mai simple (câteva I/E) la cele mai complicate (sute sau mii de I/E).

Pe de altă parte, sub presiunea utilizatorilor, AP au ieşit rapid dincâmpul de aplicaţii iniţial (pur logic) prin integrarea operaţiilor aritmetice, aregulatoarelor PID, a comenzii axelor, a tehnicilor de manipulare a şirurilor 

de caractere, etc.Trebuie observat că, deşi posibilităţile AP sunt apropiate de cele alecalculatoarelor convenţionale, modul lor de programare a r ămas specific,apropiat modului de gândire al automatiştilor.

Şi AP au contribuit la deschiderea căii către controlul distribuit.Primele AP aveau UCP cablată  şi erau relativ scumpe. După apariţia AP

 bazate pe microprocesoare şi după scăderea, în consecinţă, a costului lor, aapărut tendinţa de a distribui sarcinile controlului între mai multe AP decapacitate mai mică, interconectate prin reţele de comunicaţie. Acest lucru acondus, la rândul său, la îmbunătăţirea fiabilităţii (defectarea unui AP areconsecinţe limitate), a vitezei (prin paralelismul operaţiilor) şi la reducerea

costului cablării (cu condiţia de a putea plasa fiecare AP în imediatavecinătate a procesului comandat de el).

Practic, toţi producătorii de AP şi-au creat propriile lor reţele decomunicaţie. Pe baza acestei experienţe, tot ei au devenit membrii cei mai

Page 28: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 28/137

 

28

activi ai proiectului MAP [2], de creare a unui standard internaţional decomunicaţie.

1.7.2. Normalizarea

La nivelul exploatării AP, până la începutul anilor ’90 a existat osituaţie similar ă celei apărute în informatică în anii '80, când fiecareconstructor propunea propriile sale limbaje de programare, propriul săumediu de programare, propriile sale reţele de comunicaţie, ş.a.m.d. Arezultat o "fidelizare" for ţată a utilizatorilor, deoarece trecerea de la o marcă de AP la alta necesită un efort mare în ce priveşte instruirea întregului

 personal implicat.Pentru a se depăşi această situaţie, au fost întreprinse eforturi în

direcţia normalizării (standardizării). Primele acţiuni au fost îndreptate

înspre sistemele de comunicaţie pentru a obţine compatibilitatea între APdiferite, sau cel puţin interoperabilitatea lor. Pe lângă proiectul MAP,menţionat anterior, au existat propuneri pentru reţele de teren, cum ar fiPROFIBUS, ASI, etc., care acum au devenit realitate (vezi capitolul 7).

În 1993, Comisia Internaţională de Electrotehnică (InternationalElectrotechnical Comission – IEC) a elaborat norme specifice automatelor 

  programabile în standardul IEC 1131. Aceste norme vizau următoareleaspecte:

- IEC 1131-1: informaţii generale- IEC 1131-2: specificaţia şi testarea echipamentelor - IEC 1131-3: limbajele de programare

- IEC 1131-4: recomandări pentru utilizatori- IEC 1131-5: specificaţii referitoare la comunicaţiiAceste standarde nu intenţionează să impună un stil rigid. Diferiţii

 producători de AP pot avea medii de programare diferite, dar elementeleconceptuale trebuie să fie aceleaşi.

1.7.3. Tendinţe ale pieţei

În ultimii ani, piaţa s-a decantat considerabil, r ămânând un număr relativ mic de firme constructoare de AP. Acum, 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).Pe lângă constructorii de AP recunoscuţi, normalizarea menţionată 

în paragraful anterior deschide piaţa controlului industrial unor protagoniştinoi. În primul rând, normalizarea a consolidat poziţia proiectanţilor de

Page 29: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 29/137

 

29

 programe de AP, care dispun acum de o bază de lucru solidă şi recunoscută universal. Înainte de standardizare, aceştia trebuiau să conceapă ei înşişimetodologii de programare şi să convingă potenţialii clienţi să le accepte, cu

toate riscurile pentru aceştia din urmă în cazul dispariţiei firmelor de proiectare.Deşi scopul principal al acestor firme a r ămas programarea AP, în

  paralel ele au activat şi în domeniul programării calculatoarelor convenţionale, descoperind astfel avantajele simbiozei dintre AP şicalculatoarele convenţionale.

Avantajul acestei soluţii constă în faptul PC-urile sunt prevăzute cu periferice standard (discuri, monitoare, etc.) şi cu executive în timp real şi înmultitasking. Aceasta permite o asociere armonioasă a funcţiilor deautomatizare clasice şi a funcţiilor specifice programelor în limbaje de nivelînalt, fapt util în multe aplicaţii practice.

Page 30: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 30/137

 

30

 

CAPITOLUL 2STRUCTURA AUTOMATELOR 

PROGRAMABILE

2.1.  Prezentare generală a automatelor programabile

Aşa cum s-a menţionat în capitolul anterior, AP sunt sisteme decalcul special proiectate pentru controlul proceselor. Ele fac parte din mareafamilie a sistemelor de control distribuite şi sunt sisteme de control în timpreal.

Hardware-ul unui AP constă într-o UCP bazată pe microprocesor (sau microcontroler), o memorie, un număr de puncte de intrare (prin care se

 primesc semnalele ce parvin de la senzori şi de la operator), un număr de  puncte de ieşire (prin care sunt transmise comenzile spre elementele deexecuţie şi semnalizările spre operator) şi interfeţe seriale şi/sau paralele

 pentru conectarea AP cu dispozitive de programare, cu calculatoare PC sau

cu alte AP [39].UCP (+ memoria), punctele de I/E şi circuitele de interfaţă suntconstruite sub forma unor module de dimensiuni tipizate care se instalează în sloturile unui SB (rack, base). Acesta are rolul de a încorpora în sloturilesale modulele din configuraţia sistemului într-o formă compactă  şi de aasigura comunicaţia între acestea. Unele SB încorporează  şi sursele dealimentare necesare funcţionării modulelor. Alte modele de SB nu conţinaceste surse, dar permit instalarea unor module ce conţin aceste surse. Deasemenea, unele AP nu necesită modul de interfaţare, întrucât modulul UCîncorporează şi circuitele de interfaţă. Figura 2.1 ilustrează o structur ă tipică de AP.

În funcţie de gradul de flexibilitate, AP pot fi de trei tipuri:compacte, compacte extensibile şi modulare. AP compacte au o structur ă fixă, ce nu poate fi modificată sau extinsă de către utilizator. Este cazul APmici (cu număr mic de puncte de I/E, de ordinul zecilor). Un exemplu în

Page 31: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 31/137

 

31

acest sens îl reprezintă AP din familia Micrologix, produse de către AllenBradley.

AP compacte extensibile (de exemplu, cele din seria FX2N a firmei

Mitsubishi) permit adăugarea la un AP compact (denumit base unit) a unuinumăr limitat de module de I/E, pentru a adapta structura acestuia lanecesităţile aplicaţiei. AP de acest tip fac parte din clasa AP medii, cu unnumăr de puncte de I/E de ordinul sutelor.

Figura 2.1. Structur ă tipică de AP

AP modulare ofer ă cea mai mare flexibilitate. Există o marevarietate de module din fiecare tip (UCP, de I/E, etc) şi de SB, din care

 proiectantul poate "croi" un sistem cât mai apropiat de cerinţele aplicaţieiconsiderate. Exemple de AP din aceast

ăclas

ăsunt SIMATIC S5 al firmei

Siemens, PLC – 5 al firmei Allen Bradley, etc. Din punct de vedere alnumărului de puncte de I/E, AP modulare se înscriu în clasa AP medii şimari (cu mii de puncte de I/E).

Fiecare producător de AP pune la dispoziţia utilizatorului o gamă largă de surse de alimentare, SB, module UCP şi de interfaţare şi module deI/E. Aceştia din urmă vor alege acele componente ale sistemului carecorespund necesităţilor aplicaţiei considerate.

Operaţiunea de selecţie a modulelor  şi SB în funcţie de cerinţeleaplicaţiei se numeşte configurare. De aici reiese unul din marile avantajeale AP, şi anume flexibilitatea lor: ele pot fi configurate în funcţie de

specificul aplicaţiei.În continuarea capitolului sunt discutate în detaliu aspectele

  prezentate în acest paragraf, cu exemplificări pentru câteva tipuri de APconsiderate reprezentative [18, 56, 57, 58, 59, 63, 64, 67, 68, 69, 70, 71].

Page 32: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 32/137

 

32

  2.2. Module de I/E

După cum s-a ar ătat în primul capitol, modulele de I/E au rolul de a

asigura transferul semnalelor între AP şi instalaţie. Modulele de intrarecolectează semnalele ce provin de la senzorii instalaţiei şi de la comenzileoperatorului iar modulele de ieşire transmit comenzile generate de către

  programul AP către elementele de execuţie ale instalaţiei şi cătreconfirmările/semnalizările operatorului. Semnalele din proces se conectează la modulele de I/E prin cabluri individuale sau multifilare, utilizând şuruburisau conectori, în funcţie de tipul terminalelor modulelor de I/E.

În funcţiei de tipul semnalelor electrice transferate, modulele de I/E pot fi de două feluri: discrete şi analogice. În acest capitol vor fi discutatemodulele de I/E discrete, cele analogice f ăcând obiectul capitolului 6.

2.2.1. 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, limitatoare,microîntrerupătoare, etc. Semnalele sunt, de regulă, tensiuni continue saualternative, la diverse nivele (5 V, 24 V, 110 V, 220 V c.c. sau c.a.). În plus,aceste module realizează o conversie a semnalelor de intrare dinspre procesla nivelul semnalelor utilizate în interiorul AP şi o izolare electrică între APşi semnalele de intrare.

AP operează în interior la +5 Vcc iar dispozitivele ce furnizează semnalele de intrare pot opera la tensiuni diferite. Combinarea acestor două 

tensiuni poate cauza pagube mari şi, probabil, ireparabile în parteaelectronică a AP. Pot interveni probleme, mai puţin evidente, şi datorită zgomotelor electrice provenite de la vârfurile de tensiune pe liniile desemnal sau de la curenţii de pe liniile de Nul c.a. sau – c.c. Diferenţele de

 potenţial între masa AP şi a instalaţiei pot, de asemenea, cauza probleme.Problema zgomotelor va fi discutată în detaliu în capitolul 9. Există,

deci, suficiente motive pentru separarea tensiunilor de alimentare aleinstalaţiei şi ale AP printr-un fel de barier ă electrică, ca în figura 2.2.

Aceasta dă certitudinea că AP nu va fi afectat de nici un evenimentapărut în instalaţie. Chiar şi un defect de cablu care va pune 380 V c.a. pe unmodul de intr ări de c.c. va afecta doar modulul de intrare. AP şi celelalte

module de I/E nu vor avea de suferit.Acest lucru este realizat prin intermediul unor izolatori optici (un

LED şi un fototranzistor, care formează un optocuplor sau optoizolator, prezentaţi în figura 2.3.a). Când curentul trece prin dioda D1, aceasta emite

Page 33: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 33/137

 

33

lumină, cauzând comutarea tranzistorului TR1 din blocat în saturat.Deoarece nu există conexiuni electrice între diodă şi tranzistor, este obţinută o izolare electrică foarte bună (tipic 1-4 kV).

Figura 2.2. Protecţia AP faţă de defectele externe. Sursa de alimentarea AP (L1/N1) este separată faţă de alimentarea instalaţiei (L2/N2).

Figura 2.3. Izolarea optică a intr ărilor: a) un izolator optic; b) un modul de intr ări în c.c.; c) un modul de intr ări în c.a.

Page 34: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 34/137

 

34

O intrare de c.c. poate fi obţinută ca în figura 2.3.b. Când butonuleste apăsat, curentul va trece prin dioda D1, cauzând comutareatranzistorului TR1, transmiţând, astfel, prin buffer semnalul "1" către logica

internă a AP. Dioda D2 este un LED utilizat în detecţia defectelor externe şi pentru a ar ăta când este prezent semnalul de intrare. Rezistorul R1 fixează tensiunea intr ării. Modulele de intr ări în c.c. sunt disponibile, uzual, în treigame de tensiune: 5 V c.c. (TTL), 12-24 V, 24-50 V.

Figura 2.4. Un modul de intrare şi conectarea intr ărilor la modul

O structur ă posibilă de circuit de intrare în c.a. este prezentată înfigura 2.3.c. Puntea redresoare este utilizată pentru conversia curentuluialternativ în curent continuu complet redresat. Rezistorul R2 şicondensatorul C1 formează un filtru (cu o constantă de timp de aproximativ50 ms), pentru a se putea furniza un semnal "curat" către AP. Ca şi maiînainte, lampa LP1 lucrează ca un indicator de semnal de intrare pentrudetecţia defectelor iar rezistorul R3 fixează gama de tensiune.

Figura 2.4 prezintă un modul de intrare care poate recepţiona optsemnale de intrare.

2.2.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,

Page 35: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 35/137

 

35

contactoare, becuri de semnalizare, etc.), la nivelele de tensiune necesare.De regulă, aceste module necesită utilizarea unor surse externe pentrucomanda elementelor de execuţie.

Figura 2.5. Tipuri de module de ieşire: a) modul cu ieşiri cusursă comună; b) modul cu ieşiri cu surse separate

Page 36: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 36/137

 

36

Conexiunile de ieşire necesită, de asemenea, o barier ă pentru a limitaneajunsurile datorate defectelor inevitabile ale instalaţiei şi pentru a oprizgomotele electrice, care "deranjează" procesorul. Interferenţa poate fi o

mare problemă a ieşirilor, deoarece modulele de ieşire controlează curenţimari şi, deseori, sarcinile externe sunt inductive (de exemplu, bobine).Există două tipuri de bază de module de ieşire. În figura 2.5.a opt

ieşiri sunt alimentate de la o sursă comună, care este conectată la AP, dar este separată de sursa AP.

Această structur ă permite cea mai simplă  şi mai ieftină instalare.Fiecare ieşire are un fuzibil de protecţie propriu pe modul şi o siguranţă sauîntreruptor pe circuitul comun. Este important să se proiecteze sistemulastfel încât un defect pe terminalul 3, de exemplu, să ardă fuzibilul FS3 dar să nu deterioreze alimentarea întregului modul, dezactivând toate ieşirile.Acest aspect, denumit "selectivitate", este discutat în capitolul 9.

Frecvent, un AP trebuie să acţioneze ieşiri care au alimentări proprii.Un exemplu tipic este comanda din diferite locuri a unui motor, unde fiecarecontactor are o sursă internă de 110 V separată, derivată de la barele de 380V. Dispunerea din figura 2.5.a nu poate fi utilizată aici f ăr ă separareacontactelor releelor interne acţionate de AP.

Un modul de ieşiri izolate, prezentat în figura 2.5.b, are ieşiri şi protecţii individuale şi se comportă exact ca un comutator. Acesta poate ficonectat direct la orice circuit din exterior. Dezavantajul constă în faptul că modulul este mai complicat (două conexiuni/ieşire) şi trebuie luată înconsiderare protecţia muncii. De exemplu, un modul cu 8 ieşiri izolate poate

 primi pe terminalele sale tensiuni diferite din 8 direcţii diferite.

După cum reiese din figura 2.5, sunt disponibile ieşiri pe releu (caredau şi izolaţia dorită), dar ele nu sunt foarte utilizate. Un releu este undispozitiv electromagnetic cu păr ţi în mişcare şi, deci, cu o viaţă limitată.Un dispozitiv pur electronic este mult mai fiabil. Mai mult, o sarcină inductivă (bobina unui releu) poate cauza interferenţe (scântei), care conducla defectarea prematur ă a contactului.

În figura 2.6 este prezentat un circuit de ieşire pe tranzistor. Esteutilizată din nou izolarea optică pentru a obţine separarea între instalaţie şiAP.

Dioda D1 se comportă ca o diodă de tăiere a vârfurilor, care reduceamplitudinea vârfurilor întâlnite la sarcinile inductive. Figura 2.6.b arată 

acest efect. Starea ieşirii poate fi urmărită pe LED1. Figura 2.6.a prezintă oieşire care generează curent (source output). Dacă sunt utilizate tranzistoarenpn, rezultă un canal de ieşire care absoarbe curent (sink output), ca înfigura 2.6.c.

Page 37: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 37/137

 

37

Figura 2.6. Circuite de ieşire în c.c.: a) curentul de ieşire într-uncircuit de c.c.; b) tensiunea în punctul X – efectul diodei detăiere a vârfurilor; c) curentul de intrare prin circuit

Informaţia că o ieşire generează curent sau absoarbe curent estenecesar ă pentru a şti cum să se conecteze sarcina la sursa de c.c. externă:

-  în cazul gener ării de curent (figura 2.6.a) una din bornele sarciniise leagă la borna (-) a sursei de c.c. externe; cealaltă bornă asarcinii se leagă, evident, la modulul de ieşire;

-  în cazul absorbţiei de curent (figura 2.6.c) una din bornelesarcinii se conectează la borna (+) a sursei de c.c. externe.

Un modul de ieşiri în c.a. utilizează de obicei triace, un circuit tipicfiind prezentat în figura 2.7.a. Triacele au avantajul că se dezactivează latrecerea prin zero a curentului prin sarcină, aşa cum reiese din figura 2.7.b,ceea ce elimină interferenţele provocate la dezactivarea sarcinilor inductive.

Page 38: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 38/137

 

38

Dacă este posibil, toate sarcinile în c.a. ar trebui să fie acţionate cu triace, şimai puţin cu relee.

Figura 2.7. Circuit de ieşiri în c.a.: a) starea ieşirii în c.a. – faptulcă ieşirea generează/consumă curent este irelevant la

ieşirile în c.a.; b) efectul ieşirii pe triac

Un modul de ieşire va avea o limită maximă a curentului pe care îl poate suporta, determinat, mai degrabă, de traseele de pe cablajul imprimatdecât de dispozitivele de ieşire. Există fixat şi un curent maxim pe fiecareieşire (tipic 2A) şi un curent total pe modul (tipic 6A). Uzual, curentul total

 permis pe modul este mai mic decât suma curenţilor individuali permişi deieşiri. De aceea, în practică este bine să se reducă curentul total pe modul

  prin conectarea unor ieşiri care nu pot fi activate simultan (de exemplu,înainte/înapoi, rapid/încet, etc.).

2.3.  Identificarea adreselor de I/E

În programele de AP, punctele de I/E sunt "văzute" sub forma unor adrese. În general, acestea nu pot fi alocate direct de către proiectant

 punctelor de I/E. În prima fază, fiecărui modul de I/E îi revine un grup de

Page 39: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 39/137

 

39

adrese determinat de poziţia modulului în SB. De aceea, aceste adrese senumesc adrese hardware. Apoi, proiectantul va atribui fiecărui punct de I/Ecâ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, punctul de I/E prin care acesta este conectat la AP şi adresa de I/Ecare este utilizată în program pentru fiecare semnal. Prin urmare, un semnalde I/E este identificat prin poziţia sa fizică într-un anumit SB sau şir decleme, prin poziţia modulului în acest sertar  şi prin numărul de ordine al

 bornei modulului la care este conectat semnalul. Conectarea unui semnal laun alt punct de I/E atrage după sine modificarea adresei semnaluluirespectiv.

Deci, la majoritatea producătorilor adresarea I/E este uzual bazată peideea sertar de bază/modul/bit.În continuare vor fi prezentatecâteva exemple în acest sens.

2.3.1. Adresarea I/E la AP PLC-5 al firmei Allen Bradley

Acest AP poate avea până la 8 SB în versiunea 5/25. SB care conţine  procesorul este automat definit ca SB 0, adresele celorlalte SB (în gama1÷7) putând fi alocate de către proiectanţi prin switch-uri (comutatoare) desetare [58, 71]. Aceste SB sunt conectate la procesor la distanţă printr-uncablu de comunicaţie serială.

Există trei moduri diferite în care pot fi configurate SB AllenBradley. Aici va fi discutată cea mai simplă (şi, probabil, cea mai logică)

metodă.Fiecare SB conţine 16 poziţii pentru module, grupate în perechi, într-un locaş denumit  slot . Deci, un SB conţine 8 sloturi, numerotate 0÷7. Unslot poate conţine un modul de intrare pe 16 puncte şi un modul de ieşire pe16 puncte sau două module pe 8 puncte (nu neapărat de acelaşi tip). Deexemplu, în figura 2.8 slotul 1 conţine un modul de intrare pe 16 puncte şiun modul de ieşire pe 16 puncte iar slotul 2 conţine două module de ieşire

 pe 8 puncte.Motivele pentru care modulele pe 8 puncte pot fi preferabile celor pe

16 puncte sunt discutate în capitolul 9.Adresarea intr ărilor este:

I: Sertar Slot/Bitunde Bit este de două cifre. Allen Bradley utilizează adresarea biţilor înoctal, astfel că numerele disponibile sunt 00÷07 şi 10÷17. Adresa I: 27/14reprezintă intrarea 14 din slotul 7 al SB 2.

Page 40: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 40/137

 

40

Figura 2.8. Dispunerea modulelor de I/E la PLC-5 Allen Bradley

Ieşirile sunt adresate într-o manier ă similar ă:

O: Sertar Slot/Bitastfel că O:35/06 este ieşirea 6 din slotul 5 al SB 3. Se observă că dacă seutilizează module pe 16 puncte, o intrare şi o ieşire pot avea aceeaşi adresă Sertar Slot/Bit, fiind diferenţiate doar de "I:" sau de "O:". Cumodule pe 8 puncte adresele de I/E nu vor mai putea fi aceleaşi. Figura 2.9arată cum se adresează diverse semnale.

2.3.2. Adresarea I/E la AP SIMATIC S5 al firmei Siemens

În sistemele AP ale firmei Siemens I/E pe bit sunt aranjate în grupuride 8 biţi, numite octeţi [3, 69]. Un semnal este identificat prin numărul său

de bit (0÷7) şi numărul său de octet (0÷127). Intr ările suntnotate I<octet>.<bit> iar ieşirile sunt notate prinQ<octet>.<bit>. I 9.4 este, deci, intrarea cu adresa de bit 4 dinoctetul 9 iar Q 63.6 este ieşirea cu adresa de bit 6 din octetul 63.

Ca şi Allen Bradley, Siemens utilizează sloturi pentru instalareamodulelor într-unul sau mai multe SB. Modulele disponibile au 16 biţi (2octeţi) sau 32 biţi (4 octeţi). Un sistem poate fi construit cu SB localeconectate prin cablu de interfaţare paralelă sau cu SB comandate la distanţă 

 prin cablu serial.SB locale sunt mai rapide şi înlătur ă unele probleme datorate ciclului

 program, care apar la SB comandate la distanţă prin cablu serial, în cazul

aplicaţiilor de mare viteză, dar sunt totuşi locale. Ele nu pot fi mai departede câţiva metri de procesor.

Cea mai simplă formă de adresare este cu adresare fixă  a sloturilor , prezentată în figura 2.10.a. 4 octeţi sunt atribuiţi secvenţial fiecărui slot, 0÷3

Page 41: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 41/137

 

41

 pentru primul slot, 4÷7 pentru al doilea, ş.a.m.d. Intrarea I 12.4 este, deci, bitul 4 din primul octet al modulului din slotul 3 al primului SB. Dacă suntutilizate module de 16 biţi (2 octeţi) cu adresare fixă (4 octeţi), cei doi octeţi

mai semnificativi din fiecare slot sunt pierduţi. 

Figura 2.9. Identificarea semnalelor instalaţiei

Figura 2.10. Dispunerea modulelor la Siemens: a) adresare fixă a sloturilor; b) adresarea variabilă a sloturilor. Adresele şi numărulocteţilor (2 sau 4) pe modul sunt setate prin switch-uri. Adresarea

secvenţială nu este obligatorie, dar este recomandabilă.

Page 42: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 42/137

 

42

În toate sistemele utilizatorul are posibilitatea alegerii adreselor deoctet. Aceasta este cunoscută ca adresare variabil ă  a sloturilor  (figura2.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 pentrufiecare slot prin switch-urile din modulul adaptor al fiecărui SB. Deşi poatefi setată orice combinaţie din cele permise, este recomandată utilizarea uneiordonări logice, similar ă celei din figura 2.10.b.

Siemens utilizează notaţii diferite pentru ţări diferite, prin terminalede 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-uncablu serial [64]. Când este necesar un număr mic de I/E la distanţă pot fiutilizate unităţi compacte cu 8 intr ări/8 ieşiri. Figura 2.11 prezintă structuraunui sistem GEM-80.

Figura 2.11. Structura unui sistem GEM-80

Pe lângă structura de I/E de bază este, de asemenea, disponibilă omagistrală I/E de verificare, care permite procesorului să verifice stareadiverselor module cu ajutorul unei unităţi inteligente GEM.

Page 43: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 43/137

 

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 bitulde 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 maimică în alegerea adreselor, dar, de obicei, este mai bine să se utilizeze ologică 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 maicomplex decât oricare din cele discutate până acum [56]. Organizarea saaduce o apropiere între utilizator  şi calculator iar limbajul utilizat este maiapropiat de tehnicile utilizate de programatorii de calculatoare. Dacă APdiscutate 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 înfigura 2.13.a. Fiecare modul de I/E are în partea din spate doi conectori, cel

Page 44: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 44/137

 

44

de sus conectând modulul la magistrala procesorului iar cel de jos conectândmodulul la un bloc separat de terminale (unul pe modul, montat pe parteadin spate).

Modulele de I/E nu sunt identificate prin poziţia lor în SB, ci prinadresa 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 suntconectate la un procesor al bazei de date, dar, spre deosebire de APanterioare, proiectantul poate stabili diverse viteze de lucru pentru diferitemodule.

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 sistemMaster ABB; b) structura programului; c) o parte a bazei

de date (pentru modulul de intr ări discrete)

Page 45: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 45/137

 

45

Figura 2.13.c arată baza de date pentru un modul de intrare. Există două nivele de definire. Nivelul superior (1) dă detalii asupra plăcii însăşi,cum ar fi tipul modulului şi adresa (posibil şi rata de scanare), iar nivelele

inferioare (2) dau relaţii despre fiecare canal al plăcii, cum ar fi numele şidacă semnalul trebuie inversat sau nu. Baza de date conţine detalii despretoate I/E care pot fi adresate apoi în program fie prin identificatorul bazei dedate (de exemplu, DI 3.1), fie prin numele său unic (de exemplu, Pompă hidraulică 2 pornită prin butonul PB). 

2.3.5. Adresarea I/E la AP F2 al firmei Mitsubishi

F2 al firmei Mitsubishi este un exemplu tipic de AP mic, cuconexiuni de I/E, sursă de alimentare şi procesor, toate înglobate într-osingur ă unitate [67]. Cea mai mică unitate, F2-40M, are 24 de intr ări şi 16

ieşiri (este caracteristic proceselor unde propor ţia I/E este 3:2).Cele 24 de intr ări sunt notate X400÷X427, în octal, iar cele 16 ieşirisunt notate Y430÷Y447. Numerele, aparent arbitrare, corespund directlocaţiilor de memorie unde sunt păstrate imaginile intr ărilor  şi ieşirilor.Adrese similare sunt utilizate şi în sistemele mai mari ale seriei.

2.3.6. Adresarea I/E la AP APC700 al firmei IPA S.A. Bucureşti

Această famile de AP este constituită din următoarele modele [59]:a.  APC 700

 b.  APC 700 EXTENSIE

c.  APC 701d.  APC 701 EXTENSIEe.  APC 702f.  APC 702 EXTENSIE

APC 700 are 24 intr ări discrete, 16 ieşiri discrete, 1 intrare analogică şi o ieşire analogică. APC 700 EXTENSIE are 48 intr ări discrete, 32 ieşiridiscrete, 2 intr ări analogice şi 2 ieşiri analogice. Celelalte patru modele auun număr de I/E comparabil cu al primelor două modele.

Intr ările sunt adresate sub forma I <octet>:<bit> (de exemplu,I 2:3) iar ieşirile sub forma Q <octet>:<bit> (de exemplu, Q 1:7).

2.4.  Adresarea memoriei interne de un bit

Pe lângă I/E, un AP are nevoie să memoreze semnale interne pentrudate cum ar fi "pompa funcţionează", "sistem f ăr ă defect", "defect la partea

Page 46: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 46/137

 

46

de ungere", etc. Ar fi foarte costisitor să se aloce ieşiri adevărate pentruaceste semnale, astfel că toate AP ofer ă memorii interne de un bit. Acesteasunt cunoscute sub diverse nume, ca "relee auxiliare" (Mitsubishi),

"fanioane" (Siemens), "spaţiu general de lucru" (GEM-80) şi "memorie deun bit" (Allen Bradley). Adresele utilizate în programe variază, desigur, dela producător la producător.

Mitsubishi utilizează notaţia Mnnn  pentru adresă, cu nnn=100÷377în octal. Ca la majoritatea AP mici, structura memoriei este fixă şi nu poatefi definită de utilizator. În altele, mai mari, care vor fi discutate mai târziu,utilizatorul poate defini orice număr necesar de locaţii de memorie.

 Notaţia la Siemens este F octet.bit, de exemplu F 27.06.GEM-80 are o varietate de spaţii generale de lucru. Cel mai utilizat

este numit tabela G şi în program apare ca G cuvânt.bit (de exemplu,G 52.14). Tabela G este ştearsă când AP trece din starea "oprit" către starea"execuţie". Memoria din tabela R (de exemplu, R 12.03) memorează stareasa când procesorul este oprit sau când alimentarea este întreruptă.

Memoria de bit la PLC-5 este notată prin B 3/n (de exemplu,B 3/192), unde n desemnează semnalul (bitul), B înseamnă memoria de un

  bit iar 3 este obligatoriu şi apare atunci când PLC-5 memorează date înfişiere. Astfel:

-  memoriile de un bit sunt constituite în fişierul 3 (B3)-  temporizatoarele sunt constituite în fişierul 4 (T4)-  număr ătoarele sunt constituite în fişierul 5 (C5)

aşa cum se va vedea mai târziu.Limbajul de programare al AP Master al firmei ABB nu necesit

ă 

neapărat memorii interne de un bit, această funcţie fiind îndeplinită deelementele şi conexiunile din interiorul bazei sale de date şi de cătrelimbajul de programare.

La APC 700 al firmei IPA S.A. Bucureşti variabila de memorie deun bit este denumită  Marker . Notaţia este M octet:bit, undeoctet=0÷127 şi bit=0÷7.

2.5.  Execuţia programelor

În esenţă, programele de aplicaţie sunt executate de către toate AP

într-o manier ă ciclică, adică execuţiile aceluiaşi program se succed în timp.O execuţie a programului de aplicaţie se numeşte ciclu program. La primelemodele de AP execuţia programelor era liniar ă, ramificaţiile de programnefiind posibile. Ulterior, programele de aplicaţie au putut utiliza ramificaţii

Page 47: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 47/137

 

47

şi repetiţii. Modelele de AP moderne sunt prevăzute, în plus, cu posibilitateautilizării subrutinelor şi a transferului prin întreruperi. Totuşi, indiferent demodelul de AP discutat, caracteristica fundamentală a lor o reprezintă 

execuţia ciclică a programelor de aplicaţie.

2.5.1. Ciclul program

Un program de AP se comportă ca o buclă executată permanent, caîn figura 2.14.a. Instrucţiunile sunt executate succesiv şi, după execuţiaultimei instrucţiuni, operarea se reia cu execuţia primei instrucţiuni. Deci,un AP nu comunică continuu cu procesul, ci intermitent.

O execuţie completă a programului din figura 2.14.a se numeşteciclu program (program scan, scan cycle) iar timpul necesar execuţiei salese numeşte durata ciclului program. Aceasta depinde de dimensiunea

 programului şi de viteza procesorului, o valoare tipică fiind 2-5 ms/kcuvânt.Uzual, durata unui ciclu program este 10-50 ms.Figura 2.14.a poate fi extinsă la figura 2.14.b. AP nu citeşte intr ările

în ordinea specificată de program (cum s-ar putea înţelege din figura 2.14.a).La începutul fiecărui ciclu program AP citeşte starea tuturor intr ărilor şi omemorează în memoria sa. Când programul adresează o intrare, va fi citită valoarea memorată a acesteia la începutul ciclului program, şi nu valoareacurentă a ei.

Figura 2.14. Ciclul program şi organizarea memoriei: a) execuţia programului; b) secvenţierea programului; c) organizarea memoriei

Pe de altă parte, ieşirile nu sunt modificate în momentul în care suntcalculate. O zonă de memorie a AP, corespunzătoare ieşirilor, estemodificată de program şi, apoi, toate ieşirile sunt actualizate simultan lasfâr şitul ciclului program curent. Prin urmare, operaţiile majore ce

Page 48: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 48/137

 

48

alcătuiesc un ciclu program sunt (în ordine): citire intr ări, execuţie program,actualizare ieşiri.

Se poate considera că memoria AP constă din patru zone, aşa cum

apare în figura 2.14.c. Intr ările sunt citite şi memorate într-o zonă imagine aintr ărilor la începutul ciclului program iar ieşirile sunt calculate şi memorateîntr-o zonă imagine a ieşirilor, de unde sunt actualizate (transferate spre

 punctele de ieşire) la sfâr şitul fiecărui ciclu program. Există  şi o zonă dememorie utilizator, rezervată semnalelor (variabilelor) interne, care suntutilizate de program dar nu sunt conectate direct cu exteriorul(temporizatoarele, număr ătoarele, memoriile de un bit, de un octet,semnalele de defect, etc.). Aceste trei zone de memorie sunt denumite "zonadatelor" (la Allen Bradley) sau "baza de date" (la ABB).

Această zonă de date este mai mică decât cum ar fi de aşteptat.Pentru un AP cu 1000 de I/E discrete, această zonă ar consta din 26 locaţiide memorie de 16 biţi (un cuvânt). O valoare analogică va necesita uncuvânt. Temporizatoarele şi număr ătoarele necesită câte două cuvinte (unul

 pentru valoarea curentă şi unul pentru valoarea prestabilită) iar 16 memoriiinterne de un bit necesită un cuvânt. Majoritatea memoriei este alocată, defapt, celei de-a patra zone, zona programului.

Evident, ciclul program limitează viteza semnalelor la care APtrebuie să r ăspundă. În figura 2.15.a, un AP este utilizat pentru numărareaunei secvenţe de impulsuri rapide, cu frecvenţa mai mică decât cea deexecuţie a ciclului program. Se observă că AP număr ă corect.

Figura 2.15. Efectul ciclului program asupra impulsurilor rapide

În figura 2.15.b frecvenţa impuilsurilor este mai mare decâtfrecvenţa de execuţie a ciclului program şi AP începe să piardă impulsuri. Încazul extrem din figura 2.15.c, blocuri întregi de impulsuri pot fi total

Page 49: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 49/137

 

49

ignorate. De aceea, în general, orice semnal de intrare citit de AP trebuie să fie prezent un timp mai mare decât durata ciclului program. Impulsurile maiscurte pot fi citite corect numai dacă se întâmplă ca ele să fie prezente la

momentele potrivite, lucru care nu poate fi garantat însă. În cazul trenurilor de impulsuri, frecvenţa impulsului trebuie să fie mai mică decât 1/(2 xdurata ciclului program). De exemplu, un AP cu o durată a ciclului programde 40 ms poate urmări (teoretic) un tren de impulsuri cu frecvenţa 1/(2 x0,04 s)=12,5 Hz. În practică există, însă, şi alţi factori de care trebuie să seţină cont la stabilirea acestei frecvenţe (cum ar fi filtrele modulelor deintrare). Prin urmare, se recomandă o mare atenţie la estimarea acestor viteze.

Mai puţin evident, un ciclu program poate cauza un decalaj aleator între intr ări şi ieşiri. În figura 2.16 este prezentată o intrare care trebuie să determine activarea imediată a unei ieşiri. În cazul cel mai bun (figura

2.16.a), intrarea apare la începutul ciclului program, ducând la activareaieşirii după un ciclu program. În figura 2.16.b intrarea a apărut imediat după citirea intr ărilor, fiind văzută de AP abia la începutul celui de al doilea ciclu

 program. Prin urmare, ieşirea va fi activată cu o întârziere de două cicluri program faţă de momentul activării intr ării. Astfel, timpul de r ăspuns poatevaria între 1 şi 2 durate de ciclu program.

Figura 2.16. Efectul ciclului program asupra timpului de r ăspuns: a) cazulcel mai favorabil; b) cazul cel mai defavorabil

În majoritatea aplicaţiilor acest decalaj de câteva ms nu esteimportant. De exemplu, nu poate fi văzut în r ăspunsul unei instalaţii laapăsarea unui buton. Totuşi, în aplicaţiile unde sunt necesare acţiuni rapide,

Page 50: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 50/137

 

50

acest decalaj poate fi critic. Într-un exemplu tipic, un material ce trecea cuviteza de 15 m/s trebuia tăiat de către o instalaţie comandată de un AP pe

 baza semnalului de la o fotocelulă. Cele 30 ms ale duratei ciclului program

au condus la variaţii ale lungimii de tăiere de 0,03 s x 15 m/s = 0,45 m.Pentru a putea aborda cu succes asemenea aplicaţii, producătorii de

AP ofer ă o gamă largă de module speciale, cum ar fi, de pildă, cele descriseîn paragraful 6.9.

Însăşi redactarea programului poate conduce la întârzieri nedorite,dacă logica programului lucrează împotriva execuţiei programului. APîncepe fiecare ciclu program cu prima instrucţiune şi procesează toateinstrucţiunile următoare într-o manier ă secvenţială, către sfâr şitul

  programului. Apoi actualizează ieşirile, citeşte intr ările, execută instrucţiunile, ş.a.m.d. În figura 2.17.a o intrare determină o ieşire, dar nudirect, 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). Logica programului decurge, înacest caz, împotriva ciclului program.

Figura 2.17. Decalaje datorate programului: a) logica este împotrivaexecuţiei programului (5 cicluri program între citirea intr ării şi generarea

ieşirii); 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. Înurmătorul ciclu program evenimentul A determină evenimentul B. Şi tot aşa

 până când, după cinci cicluri program de la activarea intr ării, evenimentul Ddetermină activarea ieşirii. Dacă programul este realizat ca în figura 2.17.b,întreaga secvenţă are loc într-un singur ciclu program.

Erorile din figura 2.17.a sunt evidente, dar aceste efecte pot aparedeseori atunci când realizarea programului nu este gândită cu grijă.Asemenea efecte pot fi utilizate pentru a produce deliberat impulsuri cu

durata de un ciclu program, aspect abordat în paragraful 8.4.Efectele duratei ciclului program devin mai complexe în cazul

existenţei unor SB de I/E comandate la distanţă  şi conectate prin cabluserial. În general, starea acestor I/E este citită de către un scaner de I/E , ca

Page 51: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 51/137

 

51

în figura 2.18, care, uzual, nu este sincronizat cu ciclul program. Deexemplu, cu o durată a ciclului program de 30 ms şi cu un ciclu de comandă la distanţă a I/E de 50 ms, cel mai scurt timp de r ăspuns poate fi de 30 ms,

dar cel mai mare poate fi de 130 ms (cu o I/E pierzând la limită ciclul I/E iar ciclul I/E pierzând la limită ciclul program).

Figura 2.18. Efectul ciclurilor program şi de I/E

Pentru reducerea efectului duratei ciclului program, producătorii deAP ofer ă mai multe facilităţi. Tipic, există posibilitatea utilizării unor module de I/E inteligente şi independente (discutate în paragrafele 6.8 şi6.9) şi există posibilitatea secţionării programelor în zone cu timpi de

execuţie diferiţi. De exemplu, becurile de la panoul de comandă necesită untimp de r ăspuns de 0,5 s – 1 s, permiţând ca alte zone ale programului să seexecute mai rapid.

Pentru a reduce timpul de r ăspuns la unele semnale de intrareconsiderate foarte importante, care necesită acţiuni urgente (cum suntsemnalele de avarie, de exemplu) există posibilitatea transferului prinîntreruperi (vezi paragraful 2.5.4). Aceasta permite citirea intr ării şiactivarea ieşirii independent de ciclul program, cu avantajul dat de un timpde r ăspuns minim, dar cu implicaţii asupra ciclului program. Un transfer 

  prin întreruperi va determina mărirea duratei ciclului program curent, cuimplicaţii asupra celorlalte semnale de I/E. De asemenea, o programare

defectuoasă a transferului prin întreruperi poate conduce la intrarea programului în buclă infinită. Pentru evitarea buclelor infinite, AP au fost prevăzute cu un ceas de gardă (watchdog timer). Acesta este resetat laînceputul fiecărui ciclu program şi măsoar ă timpul în care se execută fiecare

Page 52: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 52/137

 

52

ciclu program. Valoarea prestabilită a sa este fixată de către producător, ţinecont de timpii de citire a intr ărilor şi de actualizare a ieşirilor şi corespundecelui mai lung program posibil (dat de dimensiunea memoriei program) care

utilizează instrucţiunile cele mai mari consumatoare de timp. Manualeletehnice ce însoţesc AP conţin, printre altele, şi timpii necesari execuţieifiecărei instrucţiuni. Dacă valoarea măsurată a duratei ciclului programcurent este mai mică decât valoarea prestabilită a ceasului de gardă, acesta

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

2.5.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.Pot fi distinse următoarele tipuri de salturi: absolute (înainte, înapoi, la oadresă dată) sau relative (peste un număr dat de instrucţiuni). Principiulexecuţiei acestor salturi este ilustrat în figurile 2.19.a-c. De exemplu, APSIMATIC S5-115U al firmei Siemens recunoaşte următoarele instrucţiunide salt: salt condiţionat (JC, JZ, JN, JP, JM, JO), salt necondiţionat (JU) şisalt relativ (JUR).

Figura 2.19. Ramificaţii şi repetiţii: a) salt absolut înainte; b) salt absolutînapoi; c) salt relativ; d) buclă DO

Repetiţiile permit execuţia în mod repetat a unui grup de instrucţiuni

de un număr predeterminat de ori. Cea mai utilizată structur ă repetitivă estecea de tip DO (figura 2.19.d). Ea are forma generală DO n ... END şidetermină execuţia de n ori a instrucţiunilor cuprinse între instrucţiunile DOşi END.

Page 53: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 53/137

 

53

2.5.3. Subrutine

Subrutinele sunt secvenţe de instrucţiuni (asemeni programelor)

destinate rezolvării unor probleme specifice, construite în această manier ă înscopul apelării lor în mod recursiv. 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ă).

O astfel de instrucţiune are ca efect abandonarea execuţieiinstrucţiunii următoare din programul principal în schimbul execuţieisecvenţei de instrucţiuni corespunzătoare subrutinei apelate, amplasată într-o altă zonă de memorie. Această secvenţă se încheie cu o instrucţiune derevenire în programul principal, care determină reluarea execuţiei acestuiadin punctul în care a fost întrerupt de către instrucţiunea de apel desubrutină.

În principiu, subrutinele sunt utilizate în două scopuri: pentrueconomisirea spaţiului de memorie şi pentru structurarea programelor. Înconformitate cu primul scop, dacă o secvenţă de instrucţiuni trebuie utilizată de mai multe ori într-un program, există tot interesul transformării acesteisecvenţe într-o subrutină, care va apare o singur ă dată în memoria program(figura 2.20.a).

Figura 2.20. Utilizarea subrutinelor: a) principiul execuţiei subrutinelor; b) structurarea programelor cu ajutorul subrutinelor 

A doua utilizare apare îndeosebi în cazul aplicaţiilor complexe.Există o tendinţă naturală de a descompune aceste aplicaţii în subansamblemai simple, cărora le corespund programe mai scurte şi mai uşor de urmărit.Devine astfel posibilă structurarea ierarhică a modulelor ce compun

Page 54: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 54/137

 

54

  programul de aplicaţie. Va exista un modul de organizare, care va definiinteracţiunile dintre modulele aflate la nivelul ierarhic inferior. Fiecare dinaceste din urmă module va putea fi descompus la rândul său, ş.a.m.d.

Fiecare modul va avea, prin urmare, o misiune bine definită. Printr-oorganizare judicioasă a descompunerii, se poate ajunge chiar la situaţii încare programele corespunzătoare diferitelor module să aibă dimensiuni caresă permită sesizarea dintr-o singur ă privire a întregului conţinutinformaţional al programelor corespunzătoare modulelor. Modul în caresubrutinele permit structurarea programelor este ilustrat în figura 2.20.b.

2.5.4. Transferul prin întreruperi

Din cele prezentate până acum reiese că un AP poate lua înconsiderare evenimentele externe numai pe acea por ţiune a ciclului program

în care efectuează citirea intr ărilor. Există, însă, aplicaţii în care este necesar din partea AP un timp de reacţie mai rapid decât cel dat de către durataciclului program. Este cazul aşa-numitelor evenimente urgente.

Aşa cum s-a amintit în paragraful 2.5.1, una din cele mai eficientesoluţii de tratare a lor o reprezintă  transferul prin întreruperi. Sursele

 posibile de întreruperi sunt conectate (individual sau prin intermediul unor  por ţi SAU) la liniile de întreruperi ale AP.

Procesorul UC analizează automat starea acestor linii după execuţiafiecărei instrucţiuni. Dacă detectează o cerere de întrerupere, 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ăriiulterioare a execuţiei programului întrerupt în acelaşi context. După aceasta, procesorul UC trece la execuţia unei subrutine aparte,corespunzătoare evenimentului care a generat întreruperea. Odată executată această subrutină, execuţia programului principal este reluată din punctul încare a fost întrerupt.

De exemplu, AP SIMATIC S5-115U al firmei Siemens este prevăzutcu patru linii de întrerupere ( IRA IRB IRD, , ,IRC ), cărora le corespund

  prin construcţie patru rutine de servire a întreruperilor, OB2÷OB5, OB2fiind cea mai prioritar ă (în cazul întreruperilor multiple).

2.6.  Comanda la distanţă 

Primele AP au fost organizate sub forma unui procesor  şi a unuinumăr de module de I/E montate în SB locale.

Page 55: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 55/137

 

55

Însă, într-o uzină mare, cu distribuire mare a instalaţiilor, utilizândaceastă structur ă toate semnalele ar trebui aduse la un punct central încabluri multifilare lungi şi costisitoare.

De asemenea, punerea în funcţiune şi depanarea ar deveni mult maidificile, deoarece semnalele pot fi vizualizate doar la o anumită distanţă deinstalaţia testată.

De aceea, pentru toate sistemele mici şi mari, 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) cabluriecranate cu două fire sau prin cabluri cu fibre optice. Astfel, SB pot fimontate la depărtare de kilometri de procesor.

Există numeroase avantaje ale acestei tehnici. În mod evident, sereduce costul cablurilor prin plasarea SB la locul aplicaţiei, fiind necesaredoar cabluri multifilare scurte.

Cabluri de lungime mare vor fi necesare doar pentru cablurile decomunicaţie (care sunt ieftine) şi pentru semnalele de avertizare/alarmă (care nu trebuie transmise prin cablul de comunicaţie, aspect discutat încapitolul 9).

Mai puţin evident, comanda la distanţă permite realizarea unor unităţi compacte, conectate la un SB dispus în imediata apropiere ainstalaţiei, care pot fi testate înaintea livr ării şi instalării.

De exemplu, un sistem conţine trei SB comandate la distanţă (slave),conectate la un AP de comandă (master), montat într-o substaţie la 500 mdistanţă, printr-un cablu de comunicaţie la distanţă. La aceasta se adaugă 

cabluri pentru surse şi conexiuni pentru semnalele de alarmă. Aceasta permite ca instalaţia, împreună cu SB locale (slave), să fie testată înainte dea fi adusă la locul unde va funcţiona.

Idei similare pot fi aplicate la orice instalaţie ale cărei semnale de I/Etrebuie conectate la un AP.

Dacă este utilizată comanda la distanţă, trebuie prevăzută o ieşiresuplimentar ă la SB pentru a putea conecta terminale de programare.

Se pot pierde toate avantajele dacă proiectantul poate monitorizaoperaţiile doar dintr-un punct central de comandă aflat la sute de metri deinstalaţie.

Din fericire, producătorii şi-au dat seama despre aceste avantaje şi

majoritatea au prevăzut posibilitatea conectării terminalelor de programarela procesor local, prin cabluri ecranate cu două fire.

Aspectele referitoare la comunicaţia serială vor fi discutate încapitolul 7.

Page 56: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 56/137

 

56

2.7.  Avantajele controlului cu AP

Fiecare sistem de control parcurge patru etape de la concepţie la

 punerea în funcţiune a instalaţiei. Un sistem cu AP aduce avantaje la fiecareetapă.

1.  Prima etapă este proiectarea. Instalaţia este studiată şi sunt stabilitestrategiile de control. Utilizând sisteme convenţionale (de exemplu,cu relee), proiectarea trebuie finalizată înaintea începerii realizăriidulapului de comandă. Cu un sistem cu AP, tot ceea ce este necesar este o idee aproximativă despre dimensiunile sistemului şi desprenumărul şi tipul semnalelor de I/E. În această etapă stabilireanumărului de module de I/E se poate face cu o rezervă, pentrueventualele omisiuni şi extensii ulterioare.

2.  Urmează  realizarea. Utilizând scheme convenţionale, fiecare paseste deosebit de ceilalţi, cu costuri şi întârzieri inevitabile. Un sistemcu AP este alcătuit din componente standard. În acest timp esteîncepută scrierea programului de AP (sau cel puţin a unei specificaţiidetaliate de program).

3.  Următorul pas este instalarea, cu costuri mari datorate conectăriisenzorilor, a elementelor de execuţie, a comenzilor  şi confirmărilor operatorului. Un sistem de AP distribuit (discutat în capitolul 7),utilizând legături seriale şi ansambluri gata construite şi testate,

  poate simplifica instalarea şi poate aduce uriaşe beneficii.Majoritatea programelor de AP sunt scrise în această etapă.

4.  Ultima etapă este punerea în funcţiune. Aici apar adevărateleavantaje. Nici o instalaţie nu merge bine din prima încercare.Modificările ce trebuie aduse sistemelor convenţionale consumă timp şi sunt scumpe. Deoarece proiectantul sistemului cu AP a

 prevăzut memorie de rezervă, canale de I/E suplimentare şi câtevafire de legătur ă suplimentare în cabluri, majoritatea modificărilor potfi f ăcute rapid şi relativ ieftin. Un alt avantaj este că toatemodificările sunt înregistrate în programul AP şi, deci, modificărilela punerea în funcţiune nu vor r ămâne neînregistrate, aşa cum seîntâmplă deseori în sistemele convenţionale.Există o a cincea etapă, suplimentar ă,  întreţinerea. Aceasta începe

odată cu funcţionarea instalaţiei şi are implicaţii asupra producţiei. Toateinstalaţiile au defecte, fiecare din ele cu un mod propriu de manifestare. Unsistem cu AP ofer ă o unealtă foarte puternică pentru realizarea diagnozei.Acest aspect este discutat în capitolul 9.

Page 57: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 57/137

 

57

O instalaţie suportă, de asemenea, o serie de modificări pe parcursultimpului, în vederea măririi producţiei, a eliminării căderilor sau datorită necesităţilor de modificare. Un sistem cu AP poate fi modificat foarte uşor 

iar programul AP va reflecta automat schimbările f ăcute.

Page 58: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 58/137

 

58

 

CAPITOLUL 3LIMBAJE DE PROGRAMARE

În acest capitol va fi ilustrat modul de programare al AP. Desigur,fiecare producător are particularităţile sale şi ar fi mai degrabă restrictiv să 

se trateze aspecte referitoare la un singur tip de AP. Din acest motiv se vaface referire la modelele folosite în capitolul 2. Între aceste modele există diferenţe semnificative. Prin intermediul lor vor fi acoperite majoritatea

 particularităţilor altor producători decât cei menţionaţi.

3.1. Standardul IEC 1131-3

Standardul IEC 1131-3 defineşte cinci limbaje de programare a AP[32, 52]:1.  Diagrama Scar ă (Ladder Diagram), care este inspirată din schemele

electrice convenţionale;2.  Lista de Instrucţiuni (Instruction List), care este un limbaj de asamblareinspirat din limbajele utilizate în diversele platforme hardware existente;

3.  Textul Structurat (Structured Text), care este un limbaj de programareasemănător limbajului Pascal;

4.  Diagrame cu Blocuri Funcţionale (Function Blocks Diagrams), careconstituie un formalism de procesare a datelor prin reţele de blocurifuncţionale conectate prin semnale;

5.  Diagrame de Stare Secvenţiale (Sequential Function Charts), carereprezintă un formalism grafic inspirat din standardul francez Grafcet,

 bazat pe o variantă sincronă şi etichetată de reţele Petri.

LI şi TS fac parte din limbajele tradiţionale de programare acalculatoarelor. DS şi DBF imită structura predecesoarelor lor (implementări hardware ale regulatoarelor discrete şi continue, paralele prinnatura lor). DSS combină secvenţialitatea cu paralelismul.

Page 59: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 59/137

 

59

  Standardul începe cu o descriere a configuraţiei şi resurselor hardware şi software ale sistemului pe care vor fi executate programele.Cazul cel mai simplu este cel în care un singur program este executat pe un

singur AP. Un astfel de program citeşte intr ările sale, calculează starea sa şiactualizează ieşirile sale. Detaliile referitoare la modul în care un anume APrealizează operaţiile de I/E şi managementul memoriei nu fac parte dinstandard. Se presupune că valorile citite de la senzori şi valorile scrise laieşiri sunt transferate cu mediul extern prin intermediul unor locaţii dememorie specifice şi că programul de aplicaţie nu trebuie să se ocupe cuaceste detalii.

Standardul conţine structuri care permit programelor diferite să fieîncărcate şi executate pe acelaşi AP (separat sau în multi-tasking) şi maimultor AP să funcţioneze în paralel şi să comunice prin "căi de acces", caresunt abstracţii ale protocoalelor de comunicaţie.

Un program este construit dintr-un număr de elemente softwarediferite, scrise în oricare din cele cinci limbaje, existând posibilitateatransferului de date între aceste elemente. Ele pot fi concepute în paralel şi

  pot fi apelate numai după ce au fost asignate unui task  şi taskul fie estelansat de către un eveniment, fie este configurat să fie executat periodic.

Toate limbajele utilizează acelaşi set de caractere şi sunt înconformitate cu standardele ISO şi cu convenţiile pentru codificareatimpului. Standardul defineşte tipurile de date elementare, declaraţiiletipurilor de date compuse, iniţializările, etc. Variabilele pot fi locale sauglobale. Suplimentar faţă de variabilele abstracte "uzuale", sunt permise şi

variabile "direct reprezentate", care sunt adresate în locaţiile de memoriedestinate intr ărilor, ieşirilor sau variabilelor interne.DS este un limbaj grafic conceput pentru compatibilitate retroactivă 

cu formalismul diagramelor logice scar ă (relay ladder logic), el însuşi unrezultat al compatibilităţii retroactive cu schemele electrice convenţionale(cu relee).

În esenţă, în acest limbaj se scriu relaţii dintre valorile stării curenteşi a variabilelor de intrare, pe de o parte, şi valorile stărilor următoare şi aleieşirilor, pe de altă parte, plus câteva specificaţii referitoare la ordineaevaluării condiţiilor implicate.

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.Interacţiunea dintre funcţiile bloc este reprezentată prin "conductori" careconectează variabilele de ieşire de la un bloc cu variabilele de intrare alealtui bloc.

Page 60: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 60/137

 

60

O compunere de mai multe funcţii bloc poate fi încapsulată într-un bloc mai mare, încurajându-se prin aceasta un stil de programare modular şiierarhizat. Totuşi, există structuri care nu sunt uşor de exprimat prin notaţii

grafice. Acestea include buclele FOR, operaţiile cu matrici, întreruperile şialgoritmii complecşi în general.O buclă FOR începe cu instrucţiunea for, se termină cu

instrucţiunea end şi are forma generală:for x=expresie

.

.

.end

unde x este contorul de ciclu. Dacă  expresie este un scalar, atunci bucla se execută o singur ă dată, cu x=valoarea scalar ă. Dacă expresie este un vector sau o matrice, atunci instrucţiunile dintre for  şi end suntexecutate câte o dată pentru fiecare element al vectorului sau coloană amatricii expresie. La fiecare iteraţie contorului de ciclu x i se atribuievaloarea corespunzătoare următorului element din vectorul expresie,respectiv valorile conţinute în următoarea coloană a matricii expresie.Instrucţiunea end are rolul de a ar ăta că liniile de program dintre for  şiend sunt executate iterativ, pentru fiecare valoare a contorului de ciclu x.După ce acesta ia ultima valoare posibilă, se iese din buclă  şi execuţia

 programului se continuă cu instrucţiunea de după end. Prin urmare, o buclă FOR permite repetarea unei secvenţe de un număr de ori fix şi

 predeterminat.Limbajele LI şi TS sunt în esenţă limbaje imperative şi secvenţiale

clasice. Primul este un limbaj de asamblare de nivel inferior iar al doileaeste un limbaj de nivel înalt asemănător PASCAL.

Utilizând întreaga putere a acestor limbaje (de exemplu, bucleleWHILE), este posibil să se scrie proceduri al căror timp de execuţie estenecunoscut, nelimitat şi chiar infinit.

O buclă WHILE evaluează o expresie în mod repetat, până cândaceasta este adevărată, numărul de iteraţii nefiind cunoscut iniţial.Terminarea buclei are loc la îndeplinirea condiţiei impuse prin expresiaevaluată, care este testată la începutul fiecărui ciclu. Forma generală a unei

 bucle WHILE este:while expresie

.

.

Page 61: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 61/137

 

61

.

.end

unde, la fel ca şi în cazul buclelor for instrucţiunea end are rolul de a ar ătacă instrucţiunile cuprinse între while şi end sunt executate iterativ. Buclawhile este executată atât timp cât expresie este adevărată. De obicei,expresie conţine o condiţie exprimată printr-un operator relaţional.Această condiţie este testată la începutul fiecărui ciclu. Cât timp ea esteadevărată, instrucţiunile dintre while  şi end sunt executate. Cândcondiţia este falsă, se trece la următoarea instrucţiune de după end.

Desigur, încorporarea unor asemenea programe în aplicaţiile decontrol nu este o practică sănătoasă. Pe de altă parte, este posibil să seimpună restricţii sintactice care pot garanta un timp de r ăspuns limitat. Deexemplu, se pot admite numai programe care nu au salturi înapoi sau bucleFOR cu delimitatori constanţi.

Un alt dezavantaj al acestor limbaje este dat de caracterul lor secvenţial. Acesta le face neadecvate pentru scrierea programelor de controlcare implică paralelisme. Prin urmare, concurenţa poate fi realizată fie prinmultitasking, fie prin considerarea programelor scrise în aceste limbaje ca

  blocuri funcţionale în programe scrise în alte limbaje care acceptă  paralelismul (DBF sau DSS).

DSS constituie un formalism care combină operaţiile secvenţiale şi paralele. Considerarea sa ca un al cincilea limbaj IEC sau ca o unealtă destructurare de nivel superior este o chestiune de terminologie.

3.2. Diagrama scară 

Primele AP, proiectate pentru industria automobilelor, au înlocuitschemele de de comandă cu relee. Simbolurile utilizate în DS, -] [- pentrucontact normal deschis (ND), -]/[- pentru contact normal închis (NI) şi –( )-

 pentru o ieşire a procesului, au constituit baza acestui limbaj.În continuare se va prezenta, prin intermediul a patru exemple

simple, modul de programare cu DS, folosind adresarea I/E de la diferite AP prezentate în paragraful 2.3.

Exemplul 1

Presupunem că la un bloc hidraulic dorim să comandăm o lampă desemnalizare pentru "Funcţionare normală" când:

Page 62: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 62/137

 

62

1.  Pompa merge (lucru ar ătat de un contact auxiliar al contactorului pompei).

2.  Există ulei în rezervorul de ulei (lucru ar ătat de un indicator de nivel).

3.  Există presiune de ulei (lucru ar ătat de un presostat).Utilizând relee convenţionale, se poate realiza un circuit ca în figura

3.1.a. Pentru utilizarea unui AP, se conectează semnalele de intrare la unmodul de intr ări, iar lampa de semnalizare la un modul de ieşiri, ca în figura3.1.b. Pentru adresarea I/E s-a utilizat notaţia Allen Bradley.

Figura 3.1. De la circuitul cu relee la DS: a) Circuit cu relee; b) conexiune la AP; c) DS

Programul care realizează funcţia este prezentat în figura 3.1.c. Liniadin stânga poate fi considerata o sursă (fază c.a. sau + c.c.) iar linia dindreapta un nul (-). Ieşirea este reprezentată printr-o bobină -( )- şi esteactivată când există cale de curent de la stânga la dreapta. Ieşirea O: 22/01va fi 1 logic când semnalele I: 21/00, I: 21/01, I: 21/02 vor fi toate 1 logic.

Programul este introdus de la un terminal (sau consolă de  programare [65]) prevăzut cu taste care reprezintă diversele simboluriutilizate. Terminalul poate fi utilizat de asemenea la monitorizarea stăriisemnalelor de I/E, cele activate fiind iluminate pe display.

Page 63: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 63/137

 

63

Exemplu 2

În figura 3.2 un cilindru hidraulic poate fi avansat sau retras prin

acţionarea a două butoane. Adresarea I/E utilizată în acest caz corespundeAP GEM-80.

Figura 3.2. DS în notaţia AP GEM-80: a) conexiunile la AP; b) DS

Este nedorită activarea simultană a celor două bobine. Aceasta duceaproape întotdeauna la arderea unor siguranţe la sursele modulului de ieşire,astfel că este necesar ă o formă de protecţie. Programul care realizează acestlucru este prezentat în figura 3.2.b.

Aici au fost utilizate contacte normal închise. Ieşirea B2.9, bobina deavansare, va fi activată atunci când butonul de avansare este apăsat,limitatorul faţă nu este atins şi bobina de retragere B2.10 nu este activată.

Există două aspecte de remarcat în figura 3.2.b. Pot fi utilizate atâtcontacte ale intr ărilor cât şi ale ieşirilor, iar contactele pot fi utilizate de câteori este nevoie în program. Figura 3.2.b arată, de asemenea, de unde vinenumele de "DS". Un program de această formă arată ca o scar ă, fiecare liniecu instrucţiuni formând o treaptă iar barele verticale ale alimentării formândsuportul treptelor. Termenul "treaptă" este invariabil aplicat contactelor carecontribuie la definirea unei ieşiri.

Exemplu 3

Să ne întoarcem la lampa de semnalizare "Funcţionare normală" din

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; nu permite doar testarea lămpii,ci permite şi verificarea bunei funcţionări a AP). Pentru aceasta, conectămla AP butonul de testare a lămpii şi modificăm programul ca în figura 3.3.

Page 64: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 64/137

 

64

Figura 3.3. Adăugarea unei ramuri

Aici am adăugat o ramur ă iar ieşirea se va activa dacă cele treisemnale de la proces sunt 1 sau dacă butonul de testare lampă este apăsat.Modul în care este programată ramura nu ne interesează acum, acestavariind de la producător la producător. Unii utilizează taste de "Început de

ramur ă" şi de "Sfâr şit de ramur ă". Alţii utilizează o abordare de forma"Ramur ă de la/la". Toate sunt simplu de utilizat.

Exemplu 4

O altă utilizare a ramurii este prezentată în figura 3.4. Probabil estecel mai frecvent exemplu de circuit, comanda unui motor cu un contactor,care utilizează adresarea I/E de la firma Siemens.

Operaţia este simplă. Apăsarea butonului Start determină activareaieşirii Q 8.2 iar un contact al ieşirii este plasat în ramur ă pentru a menţineieşirea activată până când se apasă butonul Stop. Programul, ca şi

echivalentul său cu relee, ţine cont care este ultimul buton apăsat.Există o observaţie foarte importantă referitoare la conectarea

 butoanelor la AP şi la programul acestuia. Pentru siguranţă, a fost utilizatun buton de Stop normal închis, furnizând un semnal de intrare pe I 12.5atunci când butonul Stop nu este apăsat. Pierderea alimentării unui buton,sau un defect de cablu, sau murdărie sub contacte la butonul Stop, vor cauza

 pierderea semnalului, f ăcând ca programul să acţioneze ca şi cum butonulStop a fost apăsat, cauzând oprirea motoului. Dacă se utilizează un buton deStop normal deschis, AP va lucra corect, dar un defect la butonul Stop sau lacircuitul său va determina funcţionarea continuă a motorului, pentru oprirealui fiind posibile două soluţii: oprirea AP sau oprirea alimentării motorului.

Acest aspect este discutat în paragraful 9.2, dar observaţi efectul săuîn programul din figura 3.4. Acţiunea intr ării I 12.5 a butonului de stop îninteriorul programului este opusă celei dintr-o schemă clasică cu relee.Intrarea I 12.5 permite să meargă, mai degrabă decât să oprească.

Page 65: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 65/137

 

65

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

3.3. Diagrama cu blocuri funcţionale

Circuitele integrale logice din familiile TTL şi CMOS sunt largutilizate în sistemele digitale (incluzând şi plăcile din interiorul AP). Acestecircuite sunt reprezentate prin blocuri funcţionale (sau simboluri logice).Aceste simboluri pot fi utilizate pentru a descrie operaţiile unui program deAP. Iniţial vom utiliza notaţia Siemens [3].

Ieşirea unei por ţi ŞI, prezentată în figura 3.5.a este adevărată dacă (şinumai dacă) toate intr ările sunt adevărate. Operarea por ţii din figura 3.5.a

 poate fi reprezentată prin tabelul din figura 3.5.b. În figura 3.5.c avem lampade semnalizare "Funcţionare normală" a pompei din figura 3.1 conectată laun AP al firmei Siemens programat utilizând blocuri funcţionale.

Blocul ieşirii, notat prin "=", este activat când intrarea sa este 1, aşacă lampa Q 8.2 este activată când toate intr ările în poarta ŞI sunt adevărate.

Adeseori trebuie f ăcute teste pentru a vedea dacă un semnal nu esteadevărat. Acest lucu este reprezentat printr-un cerc mic "o". Ieşirea Z a

 por ţii ŞI din figura 3.5.d este adevărată dacă (şi numai dacă) A şi C suntadevărate şi B nu este adevărat.

În figura 3.2 am ilustrat comanda unui cilindru hidraulic cu un  program care a evitat acţionarea simultană a bobinelor de avansare şiretragere. Aceasta este redesenată pentru un AP al firmei Siemens în figura3.5.e.

Page 66: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 66/137

 

66

Figura 3.5. Programe de AP utilizând blocuri funcţionale(bazate pe notaţia Siemens): a) o poartă ŞI; b) tabela de adevăr 

 pentru poarta ŞI; c) lampa de "funcţionare normală" din figura 3.1 cu DBF;d) o intrare inversată; e) cilindrul hidraulic din figura

3.2 cu DBF

Figura 3.6. Utilizări ale blocului funcţional SAU: a) poarta SAU; b) poarta SAU cu intrare inversată; c) testul lămpii este prevăzut

suplimentar faţă de figura 3.5.c

Page 67: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 67/137

 

67

Figura 3.7. Por ţile compuse ale AP Master al firmei ABB:

a) poarta ŞI/SAU (echivalentă cu figura 3.6.c); b) poarta SAU/ŞI

Ieşirea Z a unei por ţi SAU, din figura 3.6.a, este adevărată dacă oricare din intr ări sunt adevărate. Simbolul "≥" din poartă înseamnă "ieşireaeste adevărată dacă una sau mai multe intr ări sunt adevărate". Poate fi testatşi inversul semnalului, ca în cazul precedent, printr-un cerc mic. Ieşirea Z a

 por ţii din figura 3.6.b. este adevărată dacă A este adevărat sau B este falssau C este adevărat. În figura 3.6.c am utilizat o poartă SAU pentru a adăugaun test de lampă la becul de semnalizare "Funcţionare normală" a bloculuihidraulic prezentat şi în figura 3.3.

Circuitul din figura 3.6.c este o combinaţie ŞI/SAU. AP Master al

firmei ABB are, pe lângă por ţi logice de bază, şi blocuri de combinaţiilogice. În figura 3.7.a este un bloc Master corespunzător celui din figura3.6.c (cu un program Master care se refer ă la nume în baza sa de date).Similar, pentru o combinaţie SAU/ŞI poate fi utilizat în programul Master 

 blocul SAU/ŞI din figura 3.7.b.

3.4. Lista de instrucţiuni

O listă de instrucţiuni este un set de instrucţiuni care seamănă cuinstrucţiunile unui limbaj de asamblare. Limbajul LI este cea mai flexibilă formă de programare pentru utilizatorul experimentat, şi este la fel de uşor 

de urmărit ca şi DS sau DBF.Figura 3.8 prezintă o operaţie simplă atât în formatul DS, cât şi în

DBF pentru un AP al firmei Siemens (foarte asemănătoare cu secvenţele de program realizate pentru APC 700, corespunzător aceleiaşi operaţii).

Page 68: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 68/137

 

68

LI echivalentă pentru un AP al firmei Siemens şi pentru un AP APC700 este prezentată în tabelul 3.1. Aici A înseamnă AND, AN (ANDN)înseamnă AND NOT, iar "=" transfer ă rezultatul către ieşirea Q 4.1.

Figura 3.8. DS şi DBF în notaţia Siemens

Tabel 3.1. LI echivalentă programelor din figura 3.8Operaţie Operand (Adresa) Număr 

instrucţiune Siemens APC 700 Siemens APC 700Comentariu

0001

0203 

:A:A

:AN:=

ANDAND

ANDN=

I 3.7I 3.2

Q 4.2Q 4.1

I 3:7I 3:2

Q 4:2Q 4:1

Buton înainteLimitator faţă OK 

Bobină retragereBobină avansare

Figura 3.9 prezintă o operaţie SAU. LI echivalentă este dată întabelul 3.2. Aici ON înseamnă OR NOT iar O înseamnă OR.

Figura 3.9. Echivalentul por ţii SAU în notaţia Siemens

Tabel 3.2. LI echivalentă programelor din figura 3.9Operaţie Operand (Adresa) Număr 

instrucţiune Siemens APC 700 Siemens APC 700Comentariu

00

01

0203 

:ON

:O

:ON:=

ORN

OR 

ORN=

I 2.7

F 3.6

Q 4.2Q 4.4

I 2:7

M 3:6

Q 4:2Q 4:4

Pompa locală auxiliar ă nu mergeFanion "merge pompade la distanţă"Contactor pompa locală Bec "Funcţionare nor-mală a pompei de ladistanţă"

Când un set de instrucţiuni nu este clar, se pot utiliza paranteze  pentru a defini precis operaţia. Acest lucru este similar cu utilizarea  parantezelor în programarea convenţională, unde secvenţa 3+5/2 poate fi

Page 69: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 69/137

 

69

scrisă (3+5)/2=4 sau 3+(5/2)=5,5. Deşi ultima variantă este cea implicită, parantezele fac ca operaţia să fie clar ă pentru cititor.

Figura 3.10 arată o operaţie tipică în format DS şi DBF. Programul

LI echivalent este dat în tabelul 3.3. Programatorii vor recunoaşte această operaţie ca fiind similar ă lucrului cu o stivă.

Figura 3.10. Program mai complex în limbajele DS şi DBF

Tabel 3.3. LI echivalentă programelor din figura 3.10Operaţie Operand (Adresa) Număr 

instrucţiune Siemens APC 700 Siemens APC 700Comentariu

00010203

04

0506

07

080910 

:A(:O:O:)

:A(

:O:O

:)

:A:AN:=

AND(OR OR )

AND(

OR OR 

)

ANDANDN=

F 3.3F 3.4

I 2.0I 2.1

I 4.1Q 5.5Q 5.6

M 3:3M 3:4

I 2:0I 2:1

I 4:1Q 5:5Q 5:6

Primul set de parantezeÎnainte manualÎnainte automatRezultatul primului setde parantezeSI logic al rezultatuluicu al doilea set de parantezeMotor 1 selectatMotor 2 selectatAcum suntem în punctul XLimitator faţă OK Contactor înapoiContactor înainte

AP al firmei Mitsubishi utilizează de asemenea limbajul LI, deşimanualul de utilizare recomandă construirea într-o primă fază a DS şi apoitranslaţia ei în LI. Programul DS al AP prezentat în figura 3.11 cu notaţiaMitsubishi corespunde programului LI din tabelul 3.4.

Figura 3.11. O DS a firmei Mitsubishi

Page 70: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 70/137

 

70

Tabelul 3.4. LI echivalentă programului din figura 3.11Linie Instrucţiune Comentariu

0

1234567

LD

ANDANILDANIOR ANDOUT

X401

X402X403Y430M100BM101Y430

LD începe o treaptă sau o ramur ă 

Xnnn sunt intr ăriANI este ŞI-NULD începe o nouă ramur ă Mnnn sunt memorii interneSAU între două ramuri

Sfâr şitul treptei

3.5. Textul structurat

Limbajul TS prezintă o sintaxă  şi o funcţionalitate asemănătoarelimbajului PASCAL. Aşa cum reiese din cele discutate în paragraful 1.6,

utilizarea limbajului TS în operaţiile logice şi de I/E pe bit nu ofer ă claritatea şi simplitatea necesare.Una din utilizările acestui limbaj o reprezintă declararea textuală a

 blocurilor funcţionale. Figura 3.12.b este un exemplu în acest sens.

Figura 3.12. Corespondenţa dintre DBF şi TS pentru un bloc funcţionalDIVIDE: a) declararea grafică; b) declararea textuală 

Cuvintele-cheie FUNCTION şi END_FUNCTION delimitează declaraţia, în care DIVIDE este numele funcţiei iar REAL este tipulrezultatului produs de ea. Întrucât toate reprezentările de date suntmanipulate prin intermediul unor variabile, lista parametrilor acestui blocfuncţional este o listă a variabilelor de intrare. Acestea sunt specificate însecţiunea dintre cuvintele-cheie VAR_INPUT şi END_VAR. În cazul

acestui exemplu, variabilele de intrare sunt A şi B, de tipul REAL, respectivINT. Corpul blocului funcţional este definit prin invocarea altor două funcţii, şi anume "/" pentru împăr ţire şi INT_TO_REAL, care este o funcţie

 predefinită de conversie a tipului unei variabile, din întreg în real.

Page 71: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 71/137

 

71

Reprezentarea grafică a blocului funcţional corespunzător exemplului din figura 3.12.b este dată în figura 3.12.a. Partea superioar ă afigurii defineşte interfaţa grafică a funcţiei, prin numele ei, numele şi tipul

variabilelor de intrare şi tipul rezultatului. Partea inferioar ă defineşte înformă grafică corpul funcţiei. Ca şi în figura 3.12.b, toate declaraţiile suntdelimitate prin cuvintele-cheie FUNCTION şi END_FUNCTION.

Deşi exemplul din figura 3.12 este unul simplu, el lasă să seîntrevadă capabilităţile limbajului TS, care permite utilizatorului, printrealtele, să-şi definească propriile blocuri funcţionale. Pe de altă parte, însă,există blocuri funcţionale pentru care se specifică clar că nu există uncorespondent în TS [1, 26].

Având în vedere cele expuse în acest paragraf, se poate spune că limbajul TS este adecvat îndeosebi în aplicaţiile ce implică procesarea unuivolum mare de date numerice, şirurilor de caractere, etc.

3.6. Diagrama de stare secvenţială 

În esenţă, o DSS constă într-un set de  pa şi interconectaţi prinleg ă turi direc ţ ionate, pe baza unor  tranzi ţ ii. Fiecare pas poate avea asociatun număr (nul sau nenul) de acţiuni şi fiecare tranziţie are asociată ocondi ţ ie de tranzi ţ ie. Controlul se desf ăşoar ă prin parcurgerea paşilor înlungul legăturilor, atunci când condiţiile asociate tranziţiilor întâlnite suntsatisf ăcute. Poate exista un singur pas iniţial, de la care începe controlul.

Vom ilustra elementele tipice ale unei DSS pe baza unui exemplu.

DSS din figura 3.13 este o parte a unui program mai mare, ce comandă deplasarea unui cărucior între două limite. El este pus în mişcare prin două semnale de comandă, Motor înainte  şi Motor înapoi, care în

 programul de AP sunt reprezentate prin două variabile booleene cu acelaşinume. Există două limitatoare de cursă care sesizează atingerea de cătrecărucior a capetelor de cursă din stânga şi din dreapta. Valorile citite de laaceste limitatoare sunt reprezentate prin variabilele booleene Limită 

dreapta  şi Limită stânga. Rolul DSS din figura 3.13 este de acontrola efectuarea unui singur ciclu stânga-dreapta şi dreapta-stânga.

În figura 3.13 paşii sunt Aşteptare, Deplasare dreapta,Deplasare stânga  şi Gata. Pasul iniţial este Aşteptare, lucru

indicat prin dreptunghiul realizat cu linie dublă. Tranziţiile sunt reprezentate prin segmentele orizontale plasate pe legăturile direcţionate verticale.

La pornire controlul este atribuit pasului Aşteptare. Deoareceacesta nu are asociate acţiuni, se comportă similar cu o "stare de aşteptare".

Page 72: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 72/137

 

72

Controlul r ămâne la acest pas până când este validată tranziţia de la pasulAşteptare la pasul Deplasare dreapta. Condiţia asociată acesteitranziţii este ca valoarea variabilei Începere ciclu (ce reprezintă un

semnal de la operator) să devină adevărată.La satisfacerea acestei condiţii controlul păr ăseşte pasul

Aşteptare şi avansează în pasul Deplasare dreapta. Acest pas areataşată o singur ă acţiune, aceea de trecere în "1" logic a valorii variabilei

 booleene Motor Înainte, lucru care se petrece atâta timp cât controlulr ămâne la pasul Deplasare dreapta.

Atunci când limitatorul dreapta detectează sosirea căruciorului,valoarea variabilei Limită dreapta devine adevărată. Acest lucruvalidează tranziţia de la pasul Deplasare dreapta la pasulDeplasare stânga. Secvenţa de evenimente ce urmează poate fi uşor 

dedusă pe baza celor prezentate. Un ultim aspect ce trebuie menţionat esteacela că, la sfâr şitul unui ciclu complet (reprezentat prin condiţia Sfârşitde ciclu), controlul revine la pasul Aşteptare, pentru a puteareîncepe un nou ciclu. Astfel de bucle sunt des întâlnite în programele înlimbaj DSS.

Figura 3.13. DSS pentru comanda unui cărucior 

Exemplul prezentat permite introducerea unor noi elemente ale DSS.Deci, fiecare pas are asociate 0, 1 sau mai multe acţiuni. Un pas poate fiactiv sau inactiv. În accepţiunea standardului IEC 1131-3, un pas este activatunci când "are controlul", aşa cum s-a putut observa şi în exemplul

Page 73: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 73/137

 

73

anterior. Pasul iniţial este singurul pas activ la începutul execuţiei şi înfiecare DSS poate exista un singur pas iniţial.

Pentru fiecare pas există o structur ă de variabile corespunzătoare,

care au acelaşi nume cu pasul. Această structur ă are două elemente: fanionul  pasului şi timpul acumulat . Primul este un element boolean care indică dacă  pasul este activ sau inactiv. Al doilea este un element de tip TIME (timp),care memorează timpul scurs de la ultima activare a pasului. De exemplu,dacă un pas este denumit S, atunci S.X este fanionul pasului S iar S.T estetimpul acumulat al pasului S. La fiecare dezactivare a pasului S valoarea luiS.T este memorată. La o nouă activare a pasului S această valoare esteresetată.

În programele în limbaj DSS, legăturile direcţionate conectează paşiila tranziţii şi tranziţiile la paşi. Între un pas şi o tranziţie, respectiv între otranziţie şi un pas, poate exista o singur ă conexiune. Orice alte conexiuni

(pas cu pas, tranziţie cu tranziţie, etc.) sunt interzise.De exemplu, în figura 3.14.a există două legături: de la pasul S3 latranziţia t şi de la tranziţia t la pasul S4. S3 este pasul predecesor al lui t iar S4 este pasul succesor al lui t.

Deşi standardul IEC 1131-3 nu prevede utilizarea săgeţilor pentru aspecifica direcţia unei legături, săgeţile pot fi folosite opţional pentruîmbunătăţirea clarităţii.

Tranziţia ce separ ă doi paşi reprezintă condiţia pentru care are loctransferul controlului de la un predecesor la un succesor. De aceea, fiecaretranziţie are asociată o condi ţ ie de tranzi ţ ie, care este o expresie booleană.Atunci când o condiţie este evaluată "1" logic, are loc execuţia tranziţieicorespunzătoare ei.

Standardul IEC 1131-3 furnizează şi regulile pentru realizarea unor DSS corecte. Acestea sunt denumite reguli de evolu ţ ie şi sunt reprezentateîn figura 3.14.

Cazul din figura 3.14.a este o  secven ţă  liniar ă  simpl ă . Controlulevoluează de la S3 la S4 dacă S3 este activ şi dacă condiţia asociată tranziţiei t este adevărată. După execuţia tranziţiei t, S3 este dezactivat şi S4devine pasul activ.

Figura 3.14. Reguli de evoluţie ale DSS

Page 74: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 74/137

 

74

Combinaţia din figura 3.14.b este denumită  divergen ţă  a selec ţ iei secven ţ ei. Controlul evoluează de la S5 la S6 dacă S5 este activ şi se execută tranziţia t1, sau de la S5 la S7, dacă S5 este activ şi se execută tranziţia t2.

Opţional, ramurilor le pot fi alocate priorităţi. Dacă nu sunt specificate priorităţi, atunci programatorul trebuie să se asigure că toate condiţiile detranziţie sunt mutual exclusive.

Cazul ilustrat în figura 3.14.c se numeşte convergen ţă  a selec ţ iei secven ţ ei  şi reprezintă sfâr şitul unei selecţii de secvenţă. În acest caz,controlul evoluează de la S7 la S10 dacă S7 este activ şi se execută t1, saude la S9 la S10 dacă S9 este activ şi se execută t2.

În toate cazurile prezentate până acum evoluţia controlului trebuie să conducă la activarea unui singur pas. Structura din figura 3.14.d înlătur ă această restricţie, permiţând activarea simultană a mai multor paşi. Aceastase numeşte divergen ţă  a secven ţ elor simultane. Controlul trece de la S3 la

S4, S5, ... dacă S3 este activ şi este executată tranziţia t. După activarea lor simultană, secvenţele ce încep cu S4, S5, ... evoluează independent.Structura din figura 3.14.e se numeşte convergen ţă  a secven ţ elor 

 simultane  şi este utilizată pentru a încheia secvenţele simultane. Controlultrece de la S10, S11, ... la S12 dacă toţi paşii S10, S11, ... sunt activi şi esteexecutată tranziţia t.

Figura 3.15 prezintă două aplicaţii mai interesante ale acestor reguli.Cea din figura 3.15.a este un caz particular de selecţie a secvenţei, utilizat

 pentru a "sări" peste o anumită secvenţă. Situaţia din figura 3.15.b este unalt caz particular de selecţie a secvenţei, utilizat pentru readucereacontrolului într-un pas precedent.

Paşii în sine nu realizează funcţii de control. În esenţă, ei servesc laalocarea unor nume "stărilor" în care se află sistemul considerat. Funcţiilede control sunt realizate de către acţiunile asociate paşilor. În standardul IEC1131-3 o acţiune poate fi:

•  o variabilă booleană, de tipul BOOL•  un fragment de program scris în TS•  o structur ă exprimată prin DBF sau DS•  o DSS.

În continuare, vom utiliza pentru acţiunile din primul tip denumireade ac ţ iuni booleene. Este posibil ca acestora să nu li se atribuie numeexplicite atunci când sunt declarate, fie textual, fie grafic. Toate celelalte trei

tipuri de acţiuni trebuie denumite explicit. Numele unei acţiuni booleenetrebuie să fie acelaşi cu al variabilei pe care o conţine.

Paşii care nu au asociate acţiuni pot fi consideraţi puncte în caresistemul aşteaptă îndeplinirea unei condiţii. În notaţia grafică, o acţiune

Page 75: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 75/137

 

75

ACT este asociată pasului S prin intermediul unui bloc ac ţ iune, ca în figura3.16. Asocierea unor acţiuni multiple ACT1, ACT2, ... aceluiaşi pas S serealizează prin concatenarea blocurilor acţiune, ca în figura 3.16.b.

Figura 3.15. Cazuri particulare de reguli de evoluţie a DSS

Figura 3.16. Blocuri acţiune

Acţiunile sunt entităţi complet separate de paşi. În consecinţă, oaceeaşi acţiune poate fi asociată la două sau mai mulţi paşi diferiţi. Din acestmotiv, acţiunile nu pot fi "anonime". Dreptunghiul ce desemnează un blocacţiune este împăr ţit în două, trei sau patru zone. Figura 3.16 arată cazul celmai simplu, cu două zone. Literele din regiunile din extrema stângă senumesc calificatori. Fiecare asociere pas – acţiune poate avea un altcalificator. Standardul IEC 1131-3 defineşte setul de calificatori elementari.Aceştia sunt prezentaţi în tabelul 3.5.

Calificatorii N, R  şi S sunt f ăr ă parametri. Calificatorii L, D şi Pacceptă un singur parametru, de tipul TIME (timp). Standardul defineşte şiurmă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.

Rolul unui calificator în asocierea acţiunii A cu pasul S este de adetermina când trebuie iniţiată sau terminată execuţia acţiunii A în raport cuactivarea sau dezactivarea pasului S. Pentru a clarifica rolul fiecăruicalificator, vom considera că acţiunea A nu este asociată nici unui alt pasînafar ă de S, dacă nu se specifică altfel.

Page 76: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 76/137

 

76

Tabelul 3.5. Calificatorii elementari ai standardului IEC 1131-3Calificator (Q) Semnificaţie

-

 NR SLDP

Calificatorul nul (null qualifier)

Făr ă memorare (Non-stored)ResetSet (Stored-memorat)Limitat în timp (time Limited)Întârziat în timp (time Delayed)Impuls (Pulse)

•  R cauzează terminarea execuţiei acţiunii A la activarea pasului S,indiferent de asocierile acţiunii A cu alţi paşi. Aceasta explică de cecalificatorul 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. Execuţia lui A este terminată ulterior, prinactivarea unui alt pas în care A este asociată cu calificatorul R.

•  L(t) determină ca la activarea pasului S să se iniţieze execuţiaacţiunii A, care va avea loc cel mult pe perioada de timp t. Dacă 

  pasul S r ămâne activ mai mult decât t, atunci execuţia lui A seopreşte înainte ca pasul S să devină inactiv. Dacă controlul pleacă din pasul S înainte de expirarea timpului t, se opreşte şi execuţiaacţiunii A.

•  D(t) specifică faptul că execuţia acţiunii A va fi iniţiată numai laexpirarea unui timp t de la activarea pasului S.

•  P arată că acţiunea A va fi executată pe durata unui singur ciclu

 program de la activarea pasului S.Calificatorii combinaţi DS, SD şi SL pot fi interpretaţi într-o manier ă 

similar ă.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-omanier ă strict separată. Lucrurile devin mult mai complicate atunci când Aeste asociată mai multor paşi. În general, în asemenea situaţii va exista ointeracţiune între efectele diferiţilor calificatori. De exemplu, să consider ămcă acţiunea A este asociată cu paşii S1 şi S2, cu calificatorii L(t), respectivS. Să mai presupunem că mai întâi se activează S1 şi că S2 se activează înainte de expirarea timpului t. Deşi rolul lui L(t) este de a opri acţiunea A

după timpul t, de fapt A va fi executată în continuare, datorită efectuluicalificatorului S din asocierea sa cu pasul S2.

Pentru exemplificarea modului de utilizare a DSS să consider ămimplementarea unei secvenţe de semnalizare a unui defect [66]. Apariţia

Page 77: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 77/137

 

77

unui defect (materializat prin închiderea limitatorului L2) provoacă emitereaunui semnal sonor (printr-o hupă) şi aprinderea intermitentă a unei lămpi desemnalizare (prin comanda lămpii în conjuncţie cu un oscilator implementat,

de regulă, software). DSS corespunzătoare este ilustrată în figura 3.17.Acţionarea butonului b3 determină anularea semnalizării acustice.

Acţionarea butonului b4 determină:-  aprinderea continuă a lămpii de semnalizare dacă defectul persistă 

(L2=1)-  stingerea lămpii de semnalizare dacă defectul a dispărut (L2=0).

Figura 3.17. DSS pentru semnalizarea unui defect

Acţionarea butonului b5 determină anularea semnalizării optice.Datorită utilizării convergenţei simultane, schema este reiniţializată numaidacă au fost acţionate ambele butoane b3 şi b5 (nu neapărat simultan).

Din cele prezentate pe parcursul acestui paragraf reiese că DSSreprezintă un limbaj puternic, foarte util pentru procesele care combină aspectele secvenţiale şi paralele.

Page 78: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 78/137

 

78

 

CAPITOLUL 4FUNCŢII SPECIALE

4.1. Programarea memoriei interne de un bit

Practic, toate programele AP necesită circuite de memorie de un bit.Un exemplu tipic este contactorul ce comandă un motor din figura 3.4, undetreapta de DS memorează care dintre butoanele Start sau Stop a fost apăsatultima dată. Acestea sunt cunoscute, din motive evidente, ca şi circuite dememorie de un bit.

Cea mai întâlnită formă este prezentată în DS şi în reprezentareaDBF din figura 4.1.a. Aici ieşirea C este activată când intrarea A esteactivată, şi r ămâne activată până când intrarea B este dezactivată. Intrarea Beste prevăzută din motive de securitate; ea "permite activarea semnalului",aşa cum s-a discutat în paragrafele 3.2 şi 9.2. Operaţia este reprezentată în

diagrama temporală din figura 4.1.b.Aşa cum se poate observa, intrarea B condiţionează intrarea A,aceasta fiind funcţionarea necesar ă a unui circuit de start/stop. Totuşi, înanumite circuite, intrarea de start trebuie să fie prioritar ă faţă de intrarea destop. Un exemplu tipic se poate întâlni la automobile: ştergătoarele de

  parbriz pornesc atunci când se dă comanda start, chiar dacă se află pelimitatorul de cursă. DS şi reprezentarea DBF echivalentă sunt date în figura4.1.c, unde A este buton de start, B este limitatorul poziţiei de repaus iar Ceste motorul ştergătorului. Diagrama temporală aferentă este dată de figura4.1.d.

În logica cablată, memoria de un bit este realizată cu CBB,

reprezentate în figura 4.2.a. Acestea au două intr ări, S (pentru set) şi R (pentru reset).

Circuitul memorează care intrare a fost ultima pe 1 logic. Dacă ambele intr ări sunt 1 simultan, intrarea set este prioritar ă. Acest circuit este

Page 79: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 79/137

 

79

numit CBB SR. Dacă circuitul este reprezentat cu intrarea R sus, ca în figura4.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şnuitcircuit de memorare, unde intrarea de Stop B condiţionează intrarea

de start A; b) diagrama temporală corespunzătoare; c) circuitde 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.aeste reprezentat un contactor comandat de un AP al firmei Siemens. Se

Page 80: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 80/137

 

80

observă că a fost utilizată varianta RS pentru a avea siguranţa că logica destop este prioritar ă faţă de logica de start, iar semnalul de stop realizează ovalidare a funcţionării.

Figura 4.3. Memorie cu CBB: a) programul cu DBF; b) programulcu 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ă (pentruDBF).

Simbolul CBB este deseori întâlnit în DS. Figura 4.3.a este unexemplu 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 STOPnormal închise. Observaţi cum apar acestea în program şi faceţi ocomparaţie cu DS din figura 4.1. Această diferenţă se datorează funcţionăriiCBB 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 esteCBB SR uzual, reprezentat în figura 4.2. Celelalte variante se bazează pefaptul că CBB sunt precedate de combinaţii ŞI/SAU (figura 4.3.c este unexemplu). 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 peintrarea Set şi o poartă SAU pe intrarea Reset. Alte tipuri sunt SRAA(AND/AND-ŞI/ŞI), SROA (OR/AND-SAU/ŞI) şi SROO (OR/OR-SAU/SAU).

Page 81: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 81/137

 

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. Acestealucrează 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 peambele se primeşte 0 logic, bitul r ămâne la valoarea corespunzătoare ultimeistă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 suntdenumite S(et) şi R(eset), ca în figura 4.4.b. Aceasta poate fi transpusă într-oLI, ca în tabelul 4.1.

Tabelul 4.1. Programul LI corespunzător programului din figura 4.4.bLinie Instrucţiune Comentariu

012345

LDOR SLDIORIR 

X400X401Y432X402X403Y432

 

Setează ieşirea

Resetează ieşirea

Atât cu Set/Reset (latch/unlatch) al firmei Allen Bradley, cât şi cuSet/Reset al firmei Mitsubishi, prioritatea apar ţine ultimei trepte din

 program (dintre cele două), datorită ciclului program. Ambele exemple dinfigura 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

Page 82: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 82/137

 

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; omaş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 decătre program. Bobina din figura 4.1 este f ăr ă reţinere, iar latch/unlatch dinfigura 4.4 este cu reţinere.

Alte AP diferenţiază memoriile de un bit prin adresele alocate lor. LaAP 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ă dememorare a biţilor, G, este f ăr ă reţinere, în timp ce tabela similar ă R este cureţ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 aalimentării.

AP Master al firmei ABB utilizează un limbaj foarte structurat şiimpune un stil de programare meticulos. Natura sub-elementelor, cum ar fimemoriile, ş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 prezentaoscilaţ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 prinalocarea eronată a adreselor de bit. Utilizarea tabelei R la GEM-80 este înmod particular convenabilă, dar se recomandă o mare atenţie, în general, laalegerea adreselor.

4.2. Temporizatoare

Timpul intervine aproape în toate sistemele de control. Un exemplutipic este: "La oprirea liftului, aşteaptă 0,5 secunde pentru frânarea

(încetinirea) liftului, avansează până la limitatorul de nivel şi opreştemotorul, 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 lacontactor"; dacă acesta este 1, aşteaptă 2 secunde şi acţionează robinetul de

Page 83: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 83/137

 

83

admisie; dacă presiunea hidraulică nu este OK în 3 secunde, semnalizează "defect hidraulic" şi opreşte pompa". Din acest motiv un sistem AP trebuiesă 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, dinfigura 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 intraremai scurt decât T este ignorat. AP GEM-80 are doar acest tip detemporizator, numit întârzietor .

Temporizatorul la declanşare din figura 4.5.b trece ieşirea din 0 în 1instantaneu 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 decontact ale unui semnal de intrare. Un temporizator la declanşare poate fiobţinut dintr-un temporizator la anclanşare prin utilizarea semnalului deintrare inversat şi luând în considerare inversul semnalului de ieşire altemporizatorului (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 ăriitemporizatorului. AP PLC-5 are un temporizator de un ciclu program care

 produce un impuls la un ciclu program (o singur ă dată). Impulsurile suntutile la resetarea număr ătoarelor sau la transferul unor informaţii dintr-olocaţ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 semăsoar ă timpul). Unităţile uzuale sunt 10 ms, 100 ms, 1 s, 10 s şi 100 s.

Page 84: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 84/137

 

84

Unităţile utilizate nu afectează precizia temporizatorului. În mod normal precizia este în legătur ă cu durata ciclului program.

Următoarea valoare definită este durata temporiz ă rii (adeseori

numită  preset ). Aceasta este dată, de obicei, în valori ale bazei de timp. Deexemplu, un temporizator cu un preset de 150 şi o bază de timp de 10 ms vaîntîrzia 1,5 s. În AP mici preset-ul poate fi fixat de către programator; în APmari durata temporizării poate fi modificată din interiorul programului. Deexemplu, un temporizator la declanşare utilizat la frânarea unui lift poateavea diferite durate ale temporizării, după cum liftul se deplasează cu viteză mare sau cu viteză mică.

Fiecare temporizator este prevăzut cu câteva semnale, ce pot fiutilizate în program. Figura 4.6 arată semnalele generate de către untemporizator la anclanşare al AP PLC-5 (numit TON) şi de către untemporizator 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.

Figura 4.6. Notaţiile firmei Allen Bradley pentru temporizatoare:a) temporizator TON; b) temporizator TOF

În AP mari, timpul scurs (numit deseori timp acumulat ) poate fiaccesat prin program pentru utilizarea lui în altă parte (se poate întîmpla caun program să trebuiască să înregistreze cât timp a durat o anumită operaţie).

Tehnica programării temporizatoarelor este diferită de la producător la producător. Unii, cum ar fi la AP GEM-80, tratează temporizatorul ca un

  bloc de întârziere similar celui din figura 4.5.a, cu valoarea prestabilită memorată în blocul VALUE (valoare).

Page 85: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 85/137

 

85

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

c) notaţia DBF a firmei Siemens

Page 86: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 86/137

 

86

Firma Siemens utilizează o idee similar ă dar are diferite tipuri detemporizatoare. AP PLC-5 utilizează temporizatoarele la sfâr şitul treptelor de program, semnalele temporizatoarelor fiind disponibile sub formă de

constante, pentru a putea fi utilizate în altă parte.Figura 4.7 este o aplicaţie tipică programată pentru un AP PLC-5, unGEM-80 şi un SIMATIC S5-115U (cu DBF). Programul comandă contactorul unui motor care este pornit şi oprit prin butoane. Contactorul areun contact auxiliar care se închide atunci când contactorul anclanşat şi carespune efectiv când merge motorul. Dacă contactorul se declanşează datorită unei suprasarcini, sau datorită apăsării unui buton de Avarie-Stop, saudatorită căderii tensiunii de alimentare, semnalul de la contactul auxiliar vafi pierdut. Acest contact nu poate fi verificat mai devreme de 1,5 s după anclanşarea contactorului, pentru a lăsa timp pentru comutarea contactului.Figura 4.7 verifică contactul auxiliar şi semnalizează un defect de acţionare

dacă sunt probleme. Observaţi diferenţele de utilizare a temporizatoarelor şide procesare a semnalului de defect.

Figura 4.8. Temporizatoare: a) temporizator f ăr ă reţinere; b) temporizator cu reţinere; c) simbolurile firmei Allen Bradley pentru

temporizatorul din figura b; d) simbolul firmei Siemens pentrutemporizatorul din figura b

Valoarea acumulată a temporizatoarelor discutate până acum devine0 de fiecare dată când intrarea trece în 0, aşa cum s-a reprezentat în figura4.8.a. Acesta este cunoscut sub numele de temporizator f ă r ă  re ţ inere.Majoritatea temporizatoarelor AP sunt de acest fel. Uneori este util, însă, să 

Page 87: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 87/137

 

87

dispunem de temporizatoare care să păstreze valoarea curentă, chiar dacă semnalul de intrare este 0. Când intrarea este 1 din nou, temporizatorulcontinuă de la valoarea la care s-a oprit, ca în figura 4.8.b.

Acesta se numeşte temporizator cu re ţ inere. Trebuie utilizat unsemnal separat pentru aducerea temporizatorului la 0. Dacă la un anumit tipde AP nu sunt disponibile temporizatoare cu reţinere, această funcţie poatefi realizată cu un număr ător, aspect discutat în paragraful următor.

Un temporizator obişnuit poate număra până la 32767 de unităţi ale bazei de timp (corespunzător la 16 biţi). Câteva AP mai vechi, care lucrează în BCD, pot număra doar până la 999. Cu o bază de timp de 1 sec timpulmaxim ce poate fi măsurat este de max 546 min sau aproximativ 9h (dacă temporizatorul număr ă până la 32767). Dacă trebuie măsuraţi timpi maimari (sau timpi cu o rezoluţie mai mică de 1 s) pot fi utilizate împreună temporizatoare şi număr ătoare, aspect descris în paragraful următor.

4.3. Numărătoare

În multe programe de AP număr ătoarele sunt componentefundamentale. AP trebuie să poată număra obiectele ce trec pe o bandă sausă numere de câte ori se petrece un eveniment. La motoarele mari, deexemplu, trebuie înregistrat numărul de porniri. În consecinţă, toate APinclud anumite tipuri de număr ătoare.

Un număr ător poate fi reprezentat ca în figura 4.9, deşi nu toate APvor avea aceleaşi facilităţi pe care le vom descrie. Vor fi două numereasociate fiecărui număr ător. Primul este valoarea acumulat ă , care va fi

incrementată la fiecare tranziţie 0→1 a intr ării de numărare înainte sau va fidecrementată la fiecare tranziţie 0→1 a intr ării de numărare înapoi.Valoarea acumulată poate fi adusă la 0 prin aplicarea unui 1 pe intrarea deReset. Ca şi la un temporizator, valoarea acumulată poate fi citită şi utilizată în alte păr ţi ale programului.

Al doilea număr este valoarea prestabilit ă , care poate fi considerată ca valoarea destinaţie a număr ătorului. Dacă valoarea acumulată atingevaloarea prestabilită, este generat un semnal de "Numărare terminată".Valoarea prestabilită poate fi modificată prin program. De exemplu, într-un

  proces în care se efectuează transportul unor obiecte, poate fi necesar caoperatorul să modifice numărul obiectelor din proces   prin tastatura unui

calculator sau cu un terminal de programare. Similar, semnalul "valoareazero" este deseori disponibil, comportându-se ca în figura 4.9.b.

Producătorii de AP au realizat mai multe tipuri de număr ătoare, la felca şi în cazul temporizatoarelor. AP PLC-5 şi ale firmei Mitsubishi

Page 88: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 88/137

 

88

utilizează număr ătoare cu numărare înainte (CTU), numărare înapoi (CTD)şi reset (RES) ca terminatori de treaptă în program. La atingerea valorii

 prestabilite număr ătoarele generează un semnal de "Numărare încheiată" (de

exemplu, C5:4.DN), care poate fi utilizat ca un contact.

Figura 4.9. Număr ător reversibil:a) schema internă a număr ătorului; b) operaţia de numărare

AP SIMATIC-S5 al firmei Siemens, Master al firmei ABB şi GEM-80 tratează un număr ător ca un bloc intermediar  într-o DBF sau treaptă în

DS, de la care se pot utiliza semnalele de ieşire.Figura 4.10 prezintă o aplicaţie de numărare simplă , realizată cu AP

PLC-5, GEM-80 şi SIMATIC-S5. Obiectele ce trec pe un conveior suntdetectate printr-o fotocelulă şi numărate. Când o încărcătur ă este completă,

Page 89: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 89/137

 

89

conveiorul este oprit şi becul de încărcare completă "Gata" este aprins, pentru ca operatorul să deplaseze încărcătura. După ce operatorul face acestlucru, se poate apăsa un buton de restart şi astfel se porneşte secvenţa din

nou. Deşi mai mici, programele de la AP GEM-80 şi SIMATIC-S5 prezintă amândouă o mică problemă care nu se observă la o primă vedere.Dacă este adăugat un buton de testare a becului, apăsarea lui va cauzaoprirea conveiorului. În ambele cazuri acest lucru poate fi preîntâmpinat

  prin utilizarea unei memorii interne care să arate că "numărarea estecompletă". Atunci se va utiliza un contact -⎪/⎪- al acesteia pentru conveior şi un contact -⎪ ⎪- al acesteia pentru bec.

Aceasta va adăuga o treaptă la fiecare program. Consideraţii caaceasta sunt cunoscute sub numele de "inginerie software", acest titlu fiinddiscutat în capitolul următor.

Ca şi temporizatoarele, număr ătoarele permit numărarea până la32767. Când se doresc valori mai mari, număr ătoarele pot fi puse încascadă, semnalul de "numărare încheiată" de la primul fiind utilizat caintrare de numărare pentru al doilea şi ca reset pentru el însuşi. Presupunemcă număr ătorul 1 păstrează valorile 0-999 iar număr ătorul 2 păstrează miile.Dacă număr ătorul 2 conţine valoarea 23516 iar număr ătorul 1 conţinevaloarea 457, atunci valoarea finală este 23516457.

Figura 4.11 este o variantă a ideii de legare în cascadă anumăr ătoarelor pentru a obţine o temporizare (contorizare) foarte mare.Programul este scris pentru un PLC-5, dar aceeaşi idee poate fi utilizată laorice AP.

Prima treaptă generează un impuls ce permite începerea funcţionării,cu durata de un ciclu program, cu distanţa între impulsuri fixată printr-untemporizator. Dacă temporizatorul a fost pornit şi nu a ajuns la valoarea

 prestabilită, semnalul DN din treapta a doua nu este prezent. Cândtemporizatorul atinge valoarea prestabilită, este generat semnalul DN, careresetează şi reporneşte temporizatorul din treapta întâi iar în treapta a douase formează un impuls cu durata de un ciclu program.

Impulsurile rezultate sunt numărate de număr ătoare legate în cascadă  pentru a furniza secundele/minutele/orele/zilele. Când un număr ător atingevaloarea prestabilită, generează un impuls pentru incrementareanumăr ătorului următor  şi pentru resetarea sa. Această tehnică este des

utilizată la înregistrarea orelor de mers ale pompelor, ventilatoarelor şi altor dispozitive similare, pentru programarea mentenanţei. În acest caz,evenimentul din treapta a doua este un contact auxiliar de la un contactor cecomandă un motor.

Page 90: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 90/137

 

90

Figura 4.10. Aplicaţii ale număr ătoarelor la:a) AP PLC-5; b) AP GEM-80: c) AP SIMATIC-S5

Page 91: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 91/137

 

91

Figura 4.11. Număr ătoare în cascadă 

Temporizatoarele pentru durate mari, construite cu număr ătoare,sunt în mod normal cu reţinere (îşi păstrează valoarea atunci cândevenimentul controlat nu este 1). Ele pot fi f ăcute f ăr ă reţinere prin resetareanumăr ătoarelor atunci când evenimentul de controlat este 0, dar acestea suntrar utilizate.

4.4. Aplicaţii numerice4.4.1. Reprezentarea numerelor

Până acum s-a discutat despre operaţii pe bit. Numerele sunt, de

asemenea, parte a schemelor de comandă. Uneori, un AP trebuie să calculeze ritmul producţiei în unităţi pe or ă, pe zile, sau să furnizezecantitatea de lichid existentă într-un rezervor. Asemenea operaţii necesită existenţa posibilităţii procesării datelor numerice.

Page 92: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 92/137

 

92

Majoritatea AP lucrează cu cuvinte pe 16 biţi permiţândreprezentarea numerelor în gama 0÷65535 sau, în complement faţă de 2, îngama -32768 ÷ +32767. În ultimul caz bitul cel mai semnificativ reprezintă 

semnul, fiind 1 pentru numerele negative şi 0 pentru cele pozitive.Reprezentarea în complement faţă de 2 este cea mai utilizată în AP, dar nusingura.

  Numerele ca acestea se numesc întregi. Când este necesar ă  procesarea unor întregi înafara domeniului menţionat, pot fi utilizate două cuvinte de 16 biţi care permit o gamă de –2147483648 ÷ +2147483647.Acest tip de întreg este disponibil la AP Master al firmei ABB (unde estedenumit "întreg lung") şi la modelele SIMATIC-S5 135U şi 155U ale firmeiSiemens (unde este utilizat termenul "cuvînt dublu").

Unde sunt necesare numere cu zecimale (de exemplu, pentru otemperatur ă de 45,6 °C) poate fi utilizată o formă de reprezentare similar ă celei utilizate într-un calculator. Acestea sunt numere în virgulă mobilă,numite şi numere reale. În general, acestea constau în două cuvinte de 16

 biţi care conţin mantisa (partea numerică) şi exponentul. De exemplu, în  baza 10 numărul 74057 va avea mantisa 7,4057 şi exponentul 4, carereprezintă 104. AP lucrează în binar şi reprezintă mantisa şi exponentul încomplement faţă de 2. Există, inevitabil, diferenţe de prezentare între

 producători, dar există şi un standard care le reuneşte, şi anume IEEE format32 biţi simplă precizie, prezentat în figura 4.12.c.

Figura 4.12. Reprezentări numerice: a) întreg pe 16 biţi standard; b) întreg lung pe 32 biţi; c) real IEEE 32 biţi

Page 93: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 93/137

 

93

Aceasta dă o gamă de ±(1,175E-38 ÷ 3,402E38). Anumiţi producători au micşorat exponentul pentru o mai mare precizie în mantisă.La AP Master al firmei ABB, de exemplu, gama este ±(5,4E-20 ÷9,2E18),

ceea ce permite precizie sporită.  Numerele reale sunt foarte utile dar limitările lor trebuie clar 

înţelese. În general, există două probleme. Prima apare atunci când suntutilizate împreună numere mari şi numere mici. Să presupunem că avem unsistem ce operează în baza 10 cu patru cifre semnificative, şi că dorim să adunăm 857800 (scris ca 8,578E5) şi 96 (scris ca 9,600 E1). Deoarecenumărul mai mic este în afara gamei (0,00096E5), acesta va fi ignorat, dândrezultatul 857800+96=857800.

A doua problemă apare atunci când testele (comparaţiile) suntf ăcute cu numere reale. Conversia numerelor zecimale în numere binare

  poate fi f ăcută doar cu rezoluţia permisă de formatul în virgulă mobilă (1,175E-38 pentru IEEE simplă precizie). Majoritatea calculatoarelor 

 păstreaza numerele în virgulă mobilă iar efectul conversiei din zecimal învirgulă mobilă poate fi demonstrat cu un program BASIC simplu :

100 A=3110 B=6.4120 C=9.4130 IF (A+B)=C THEN PRINT ("3+6.4=9.4"): GOTO 150140 PRINT ("3+6.4 nu face=9.4, FACE = "): PRINT C150 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, ci va executa linia 140, urmată de linia150)! Dacă numerele reale trebuie utilizate pentru comparaţii, un simplu "="este foarte riscant. Operatorii ≥ sau ≤ sunt siguri, dar în general este mai

 bine ca pentru a realiza testele să se utilizeze, pe cât posibil, numere întregi.Ultima reprezentare, în BCD, este utilizată pentru conectarea cu

exteriorul a unor echipamente cum ar fi afişaje digitale sau comutatoaredecadice. Aceste echipamente utilizează formatul BCD, cu 4 biţi/decadă.Această reprezentare produce o risipă de biţi, deoarece 6 numere (de la 10 la15) nu se reprezintă, ci doar 0÷9. Este, totuşi,o formă convenabilă deconectare cu exteriorul. Majoritatea AP au, în consecinţă, instrucţiuni careconvertesc formatul BCD în format binar intern şi invers. AP PLC-5, de

exemplu, are instrucţiunile FRD (pentru BCD→ binar) şi TOD(binar →BCD). Figura 4.13 arată schematic o operaţie tipică.

Tipurile numerelor disponibile în fiecare AP variază considerabil înfuncţie de model (şi de preţ). AP F2 al firmei Mitsubishi, de exemplu,

Page 94: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 94/137

 

94

  permite doar transferuri, compar ări şi ieşiri ale datelor numerice de lanumăr ătoare sau temporizatoare, aceasta f ăcând din el în esenţă un AP cu

 prelucrare de bit.

Figura 4.13. Aplicaţii ale BCD

La firma Siemens, modelul SIMATIC-S5 115U utilizează numereîntregi pe 16 biţi, dar următorul model în gamă, 135U, poate procesanumere întregi de 16 şi 32 biţi şi numere în virgulă mobilă. Posibilităţiasemănătoare pot fi întâlnite şi la firmele Allen Bradley şi ABB.

4.4.2. Transferul datelor

Uneori este necesar ca numerele să fie transferate dintr-o locaţie înalta, valoarea prescrisă a unui temporizator să fie modificată în funcţie decondiţiile procesului, valoarea unui număr ător să fie trimisă la un modul deieşire pentru a fi indicată pe un afişaj digital, sau rezultatul unor calcule să fie utilizat în altă parte a programului.

AP PLC-5 al firmei Allen Bradley utilizează o treaptă de DS pentrufiecare operaţie de transfer  şi este, probabil, cel mai simplu de explicat

  pentru început. Acest mod de lucru este valabil şi pentru toate operaţiilearitmetice pe care le vom considera, dar poate conduce la utilizarea maimultor trepte de program pentru o operaţie dată, faţă de alte AP.

Figura 4.14.a prezintă forma treptei. Aceasta începe cu câtevacondiţii binare; dacă toate acestea sunt 1, ieşirea MOV (pentru transfer) esteexecutată, transferând data de la sursă la destinaţie. Sursa şi destinaţia pot fioricare din locaţiile unde pot exista date numerice, de exemplu:

Page 95: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 95/137

 

95

•  Valoarea prestabilită pentru un număr ător sau temporizator; deexemplu, C5:17.PRE sau T4:52.PRE

•  Valoarea acumulată a unui număr ător sau temporizator; de exemplu,

C5:22.ACC sau T4:6.ACC•  Cuvânt de dată de I/E; de exemplu:

I :23 (modulul 3 în SB 2, toţi cei 16 biţi)O :47 (modulul 7 în SB 4, toţi cei 16 biţi)

•  Memorie internă de întregi; de exemplu, N 7:24•  Memorie internă în virgulă mobilă; de exemplu, F 8:32

Observaţi că toate aceste date sunt interpretate ca fiind numere  binare; dacă sunt necesare date în cod BCD, se pot utiliza instrucţiunileFRD şi TOD (vezi figura 4.13).

Figura 4.14. Transferul datelor la:

a) AP PLC-5; b) AP SIMATIC-S5; c) AP GEM-80

Dacă datele sunt transferate între forme de numere întregi şi întreforme de numere în virgulă mobilă, conversia este f ăcută automat. Trebuieavut însă grijă la transferarea numerelor din virgulă mobilă în întregideoarece pot apare erori dacă numărul în virgulă mobilă este în afaradomeniilor întregilor. O ultimă remarcă: o constantă poate fi utilizată doar ca sursă.

Deci, exemplul din figura 4.14.a transfer ă numărul din locaţia N7:34la valoarea prestabilită a temporizatorului T4:6 atunci când condiţiile dintreaptă sunt îndeplinite.

Firmele Siemens şi CEGELEC utilizează o abordare uşor diferită,care conduce la programe mai compacte şi cu mici îmbunătăţiri împotrivasurselor de erori, utilizând, însă, o cale de lucru mai puţin directă.Amândouă tratează un transfer de date cu două instrucţiuni separate,

Page 96: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 96/137

 

96

utilizând un acumulator separat (o locaţie de memorie de 1 cuvânt). FirmaSiemens utilizează instrucţiunile Load (L) pentru a transfera data de la sursă în acumulator, şi Transfer (T) pentru a transfera date din acumulator la

destinaţie, ca în figura 4.14.b. Data poate proveni (sau merge) din (în) oricezonă de memorie, câteva din ele fiind:

IW - un cuvânt de intrare de 16 biţiQW - un cuvânt de ieşire de 16 biţiT - un cuvânt de temporizator C - un cuvânt de număr ător DW - memorie de cuvinte pe 16 biţiDeci, figura 4.14.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. Instrucţiunea -<AND>- transfer ă numărul binar din locaţiaspecificată în treapta DS iar instrucţiunea-<OUT>- transfer ă valoarea dintreaptă la adresa specificată. În figura 4.14.c valoarea binar ă de la cuvântulde intrare de 16 biţi A12 este plasată într-o memorie internă de 16 biţi G24.Se poate face conversia BCD/binar, cu instrucţiunea <BCDIN> şi<BCDOUT>, sensul transferului fiind evident.

Diferenţa între figurile 4.14.b,c şi figura 4.14.a va deveni mai clar ă când vom discuta despre operaţii aritmetice în paragraful 4.4.4.

La AP Master al firmei ABB, punctele între care trebuie transferată data sunt conectate simplu în DS.

4.4.3. Compararea datelor

Deseori este necesar ă compararea datelor în programele AP.Exemple tipice sunt:

•  un număr ător de obiecte care arată dacă a fost livrat un anumitnumăr de obiecte

•  circuite de alarmă, care indică faptul că o temperatur ă a urcat pesteun nivel de siguranţă.Aceste comparaţii sunt realizate de către elemente care au forma

generală ca în figura 4.15, cu două intr ări numerice corespunzătoare celor 2

valori ce vor fi comparate şi o ieşire binar ă, care devine 1 dacă esteîndeplinită o condiţie specificată.

Sunt posibile multe comparaţii. Majoritatea AP asigur ă:A>B, A ≥ B , A=B, A ≤ B, A<B

Page 97: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 97/137

 

97

unde, A şi B sunt date numerice. La numere reale testul "=" trebuie evitatdin raţiuni prezentate la paragraful 4.4.1. Sunt posibile multe altecomparaţii. AP PLC-5, de exemplu, are instrucţiunea  Limit , care testează 

dacă A este între B şi C iar firmele CEGELEC şi SIEMENS au testul "≠".

Figura 4.15. Compararea datelor 

Figura 4.16 prezintă setarea şi resetarea unui fanion de alarmă B3/21(pentru o DS a AP PLC-5) şi F21.02 (pentru o DBF a firmei Siemens). Bitulde alarmă este setat dacă temperatura (citită de la un modul de intr ări

analogice în format nn,n °C şi memorată în N7:15 la AP PLC-5 sau înDW42 la AP SIMATIC-S5 115U) trece de 50,0 °C. Odată setată, alarmaeste păstrată până când temperatura coboar ă sub 40°C.

Figura 4.16. Utilizare a compar ării datelor:

a) la firma Allen Bradley; b) la firma Siemens (simbol DBF)4.4.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 realizareaa cel puţin 4 operaţii aritmetice(+,-,*,/).

În paragraful 4.4.1 am discutat despre numere întregi şi în virgulă mobilă. Trebuie avut grijă la operaţii cu întregi. Valorile unui număr încomplement faţă de 2 pe 16 biţi sunt în gama -32758 ÷ + 32767. Dacă ooperaţie aritmetică dă un rezultat în afara acestei game, acesta va fi greşit.

De exemplu: 26732+8647

-30605

Page 98: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 98/137

 

98

rezultatul corect fiind 35379.Eroarea s-a produs în felul următor. Numerele sunt convertite în

 binar. După adunare se obţine MSB=1, ceea ce înseamnă că este un număr 

negativ şi se face complementul faţă de 2, obţinând un rezultat eronat. APau un fanion de depăşire care poate fi examinat şi utilizat pentru a semnalizao alarmă sau pentru fixarea unui rezultat 0 (de exemplu, cu o instrucţiuneMove). Precauţii similare trebuie luate la scădere şi înmulţire (ultima fiinddeosebit de vulnerabilă la depăşire: 200*200=40000, afar ă din gamă cumult). Trebuie să ne gândim şi la faptul că o depăşire poate apare datorită unui defect la un modul de intr ări analogice, la un senzor al procesului sauchiar la proces, şi care din această cauză ar putea r ămâne nedetectată. Există o relatare adevărată despre o avertizare falsă la un atac cu rachete petrecută în S.U.A. în anii 60, când un sistem radar a primit ecouri de la Lună.

Distanţa ţintei (calculată prin înmulţirea întârzierii ecoului cu viteza

luminii) era greşită cu mult, dar nu a fost f ăcută nici o verificare iar rezultatul a fost o distanţă aparent legitimă, ecoul corespunzând unei rachetece se apropia. Aceasta a cauzat intrarea S.U.A. în alarmă de gradul I. Dinfericire, personalul a intervenit după câteva minute.

Precauţii şi mai mari trebuie luate la împar ţire. O eroare de programare sau o condiţie eronată dinspre proces sau un modul de intraredefect pot conduce la o eroare prin divizare cu zero. Aceasta conduce laoprirea multor AP cu o "eroare de program". De aceea, 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.Figura 4.17 este un exemplu tipic. Se cere să se măsoare viteza unui

obiect, aceasta realizându-se prin măsurarea decalajului de timp T dintreacţionarea a două fotocelule (PEC1 şi PEC2) aflate la distanţa d, vitezafiind v = d/T (vezi figura 4.17.a).

Totul a mers bine până când, câteva luni mai târziu, PEC2 s-adefectat, trasmiţând către AP un semnal "1" logic. Programul AP calculează 

 pe baza lui o întârziere 0, care produce o eroare prin divizare cu 0.Fiecare producător de AP îndeplineşte operaţiile aritmetice în

maniere uşor diferite, cu grade diferite de uşurinţă şi de claritate. Nici unele,însă, nu sunt atât de simple ca şi un limbaj de nivel înalt cum ar fi BASICsau Pascal, iar facilităţile sunt limitate în general la 4 operaţii matematice

 plus r ădăcină pătrată la cele mai scumpe AP.

AP PLC-5 utilizează blocuri matematice cum ar fi ADD, SUB,MULT şi DIV, rezultând un program simplu. Figura 4.18 arată cum poate firealizat un calcul simplu pentru un program cu autocorectare folosit lacorectarea lungimii de tăiere.

Page 99: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 99/137

 

99

Figura 4.17. Un exemplu de eroare prin divizare cu 0

Cele mai puternice PLC-5 (cum ar fi 5-40) au o instrucţiune decalcul pe bloc care permite evaluarea unei expresii matematice într-osingur ă instrucţiune (treaptă). În limbaj de nivel înalt, operaţia din figura

4.18 ar putea fi descrisă prin expresia:Lungime de tăiere=câştig∗(lungime cerută – lungime măsurată) ++lungime de tăiere

Figura 4.18. Operaţii aritmetice la AP PLC-5

AP SIMATIC-S5 115U al firmei Siemens evaluează instrucţiunilearitmetice în format LI. Să ne amintim de discuţia referitoare la acumulator,ale cărui instrucţiuni de încărcare (L) şi transfer (T) utilizează un acumulator intern. Există, de fapt, două acumulatoare. O instrucţiune Load transfer ă conţinutul sursei în acumulatorul 1. O a doua instrucţiune Load transfer ă 

conţinutul acumulatorului 1 în acumulatorul 2, şi conţinutul sursei înacumulatorul 1, ca în figura 4.19. O instrucţiune aritmetică (+,-,etc.)lucrează cu conţinutul ambelor acumulatoare. Figura 4.19 adună, deci, două numere şi transfer ă rezultatul în memorie.

Page 100: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 100/137

 

100

Figura 4.19. Operaţii aritmetice la AP SIMATIC-S5

Figura 4.20. Operaţii aritmetice la AP GEM-80 şi AP MASTER:a) LINCON de la AP GEM-80 este o funcţie aritmetică utilizată pentru

evitarea erorilor de trunchiere în operaţiile cu întregi; b) MASTER al firmeiABB. Variabilele sunt accesate prin nume de baze de date

Page 101: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 101/137

 

101

Echivalentul figurii 4.18 la AP ale firmei Siemens, folosind formatulLI, 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, reprezentate în figura 4.20.a şi4.20.b. Acestea necesită o elaborare foarte simplă.

Toate operaţiile aritmetice, şi în particular cele care implică numereîn virgulă mobilă, sunt consumatoare de timp, şi este indicat ca acestea să fie executate doar atunci când este nevoie (de exemplu, folosind subrutine)şi să nu se piardă timp prin executarea lor în fiecare ciclu program.

Page 102: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 102/137

 

102

 

CAPITOLUL 5METODE DE PROGRAMARE

5.1. Programarea logicii combinaţionale

Orice sistem de control bazat pe semnale discrete poate fi reprezentat  prin figura 5.1.a, cu un set de ieşiri Z, Y, W, X, etc., a căror stare estedeterminată de către intr ările A, B, C, D, etc. Schema de comandă poate ficoncepută fie prin tratarea în ansamblu a aplicaţiei (figura 5.1.a), fie prindescompunerea ei în blocuri mai mici.

Cea mai simplă din acestea este cea de-a doua, în care schema poatefi descompusă în blocuri mai mici, ca în figura 5.1.b, cu o ieşire pe bloc,starea fiecărei ieşiri fiind determinată numai de către stările intr ărilor corespunzătoare.

Figura 5.1. Logica combinaţională: a) privire la nivel general;

 b) descompunere în blocuri mai mici

Un exemplu de logică combinaţională ar fi comanda robinetului deîncărcare pentru o pompă hidraulică, ce trebuie activat atunci când:

Page 103: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 103/137

 

103

Pompa merge ŞI (Este selectat "creştere" ŞI limitatorul de sus alrobinetului 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, fie cuDBF (figura 5.2), neputându-se însă impune o metodă standard de realizarea programelor pentru logica combinaţională.

Figura 5.2. Programarea logicii combinaţionale: a) în DS; b) în DBF

Aşa cum s-a amintit la început, cea mai simplă cale constă îndescompunerea sistemului de control într-un număr de blocuri mici, fiecarecu o ieşire şi câteva intr ări. Pentru fiecare ieşire se poate realiza aşa-numitultabel 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. În figura5.3.a este dat un tabel de adevăr pentru o ieşire Z comandată de 4 intr ări A,

B, C, D. Există 16 combinaţii posibile ale intr ărilor iar Z este activată pentru4 din acestea. Funcţionarea ieşirii Z poate fi acum transpusă direct în DS(figura 5.3.b) sau în DBF (figura 5.3.c), unde fiecare ramur ă a unei trepte,respectiv fiecare poartă ŞI, corespunde unui rând din tabelul de adevăr.

Page 104: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 104/137

 

104

Figura 5.3. Programarea logicii combinaţionale pe baza tabelului

de adevăr: a) tabelul de adevăr; b) DS corespunzătoare tabeluluide adevăr; 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, formă numită 

 sumă de produse.

Figura 5.4. Clarificarea logicii combinaţionale

Apare o întrebare inevitabilă: "Este acesta cel mai simplu program?".R ăspunsul este: "Probabil că nu". Tehnici ca diagramele Karnaugh şiteoremele algebrei booleene permit obţinerea unor soluţii mai simple. Cândun circuit este construit din por ţi logice sau relee este foarte important caacesta să fie obţinut cu un număr minim de por ţi sau contacte, pentrureducerea costurilor. Cu un program AP, însă, costul contactelor suplimentare este 0, astfel încât scopul trebuie să fie claritatea programului,

mai degrabă decât simplitatea lui.Singura modificare care trebuie f ăcută întotdeauna (din nou pentru

claritate) este plasarea contactelor comune în afara ramurilor, aşa cum este prezentat în figura 5.4.

Page 105: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 105/137

 

105

Figura 5.5.Minimizarea nu aduce claritate: a) comutatoarele pupitruluide comandă; b) conexiunile comutatoarelor; c) tabel de adevăr; d) programul derivat din tabelul de adevăr; e) programul minimal

Să consider ăm, pentru exemplificare, pornirea unor pompe (1, 2) dela un pupitru de comandă, cum este cel din figura 5.5.a. Pentru reducereacosturilor, comutatorul tripoziţional a fost conectat la AP cu doar două 

  blocuri de contacte (şi nu cu trei, cum ar fi trebuit), ca în figura 5.5.b.Soluţia este contraindicată pentru că un defect al sursei L va cauza pornireaambelor pompe. Tabelul de adevăr (figura 5.5.c) furnizează DS din figura5.5.d, dar DS minimală este cea din figura 5.5.e. Pe de altă parte, utilizândDS minimală se maschează modul de lucru al comutatorului, ceea ce facemai dificilă detectarea defectelor.

5.2. Programarea logicii secvenţiale

Starea ieşirilor circuitelor combinaţionale era determinată numai destarea intr ărilor. În logica secvenţială, starea unei ieşiri depinde nu numai de

Page 106: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 106/137

 

106

starea intr ărilor, ci şi de ceea ce s-a întâmplat în prealabil. Prin urmare, nueste posibil să se întocmească o tabelă de adevăr din care să poată fi dedusă comportarea cerută.

Consider ăm, de exemplu, circuitul de pornire a motorului din figura5.6.a. Dacă nu se apasă nici un buton, motorul poate fi pornit sau oprit, înfuncţie de ce s-a întâmplat ultima dată. Operaţia poate fi descrisă prin figura5.6.b, care este cunoscută ca diagrama st ă rilor .

Figura 5.6. O diagramă de stare: a) contactorul motorului; 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. Dacă motorul merge, apăsarea butonului STOPva cauza oprirea motorului. O bar ă deasupra unui semnal (de exemplu,STOP OK) înseamnă că semnalul (L) nu este prezent la intrarea AP.Observaţi conectarea butonului STOP şi sensul semnalului. Este o convenţieutilă să se noteze stările cu numere şi tranziţiile cu litere.

Figura 5.7.a este un exemplu mai complex (în timp real). O cantitate prestabilită de var este încărcată într-un dozator, gata pentru următoareadescărcare, care este iniţiată de către un buton de descărcare. În acelmoment este coborâtă o paletă (pentru a reduce emisia de praf) şi varul estedescărcat. După descărcare, paleta se retrage şi dozatorul se reumple. Un

  buton de Oprire opreşte descărcarea iar un comutator opreşte alimentareacu var a dozatorului.

Există două situaţii previzibile de defect: defectul de neîncărcare adozatorului î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 dematerial r ămase în dozator). Amândouă defectele transfer ă comanda

sistemului din modul automat în modul manual, pentru a permitedeterminarea cauzelor defectelor.

Acum se poate desena diagrama stărilor din figura 5.7.b. Esteindicat, dar nu obligatoriu, să se noteze stările care se succed prin numere

Page 107: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 107/137

 

107

consecutive iar tranziţiile prin litere succesive. Prima stare este aceea în caresistemul intr ă din modul manual în automat şi alegerea ei trebuie f ăcută cuatenţie.

Aici starea 0 (Comandă Alimentare) este alegerea optimă; dacă dozatorul este deja plin, sistemul va trece imediat în starea 1 (SemnalizareGata); dacă nu, dozatorul va fi umplut. Alegerea oricărei alte stări ca primă stare poate conduce la pierderea unui timp datorat trecerii prin toate stărilef ăr ă a exista material în dozator.

Definirea tranziţiilor necesită precauţie deoarece, în mod normal, nusunt permise trasee paralele. Dacă tranziţia A a fost definită ca "Alimentarecompletă" (X) iar tranziţia G ca "Întrerupere (Y) SAU Alimentarenepermisă (Z)" sistemul va lucra corect, dar este posibil ca la un moment datambele tranziţii A şi G să fie active simultan, pentru că nu există intercondiţionare între semnalele din definiţia celor două tranziţii:

A=X (5.1)G=Y+Z (5.2)Aceasta va genera o comportare anormală a procesului şi probleme

 pentru programator.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ă:ZYXA ⋅⋅= (5.3)

ZYG += (5.4)de unde reiese că A şi G nu pot fi 1 logic simultan.

Această manier ă de definire dă prioritate tranziţiei de defectare faţă de tranziţia normală. Consideraţii similare pot fi f ăcute şi pentru tranziţiile Cşi F, respectiv D şi H.

Acum se poate construi un tabel al ieşirilor în funcţie de stări. Acestaeste dat în figura 5.7.c.

Următoarea etapă este trecerea de la diagrama stărilor la programulAP. Etapele de până acum sunt comune pentru toate metodele de

  programare a AP. Următorul pas este realizarea programului complet (înformat DS sau în alt limbaj).

Page 108: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 108/137

 

108

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

Page 109: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 109/137

 

109

Programul se bazează mult pe ideea ciclului program, descris la paragraful 2.5.1. Prin descompunerea programului corespunzător diagrameinoastre de stare în 4 zone, ca în figura 5.8, putem controla ordinea în care va

opera fiecare stare. Structura actuală din figura 5.8 nu este obligatorie, dar este esenţială pentru menţinerea separată a tranziţiilor  şi stărilor  şineamestecarea lor. Pentru exemplul discutat vor fi prezentate doar fragmente de program, prin intermediul cărora se va evidenţia principiulfolosit la programarea logicii secvenţiale.

Figura 5.8. Ciclul program şi diagramele de stare

Prima dată se face selecţia AUT/MAN. Aceasta este realizată printreapta de program din figura 5.9. Modul automat este validat numai dacă nuexistă defecte (Permis Automat), paleta este ridicată  şi nu este apăsat

 butonul Manual. 

Figura 5.9. Selecţia AUT/MAN

Page 110: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 110/137

 

110

Apoi urmează tranziţiile, primele trei dintre ele fiind prezentate înfigura 5.10. Observaţi că primul contact din fiecare treaptă este o stare,astfel că intr ările sunt examinate numai la momentul corect din secvenţă.

Figura 5.10. Primele trei tranziţii

Stările sunt date în figura 5.11. Cu excepţia stării 0 au fost prevăzuteautomenţineri simple atât pentru stări, cât şi pentru selecţia AUT/MAN(vezi figura 5.9), astfel că după o cădere a tensiunii de alimentare sistemulva fi adus la modul MAN. Observaţi că aceste stări sunt setate şi resetate decătre tranziţii.

În final avem ieşirile, ca în figura 5.12. 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.

Am descris ideile de bază pentru tranziţii, stări şi ieşiri în format DS.Metoda este la fel de uşor de implementat şi în formatul DBF.

Tehnica diagramei stărilor este foarte puternică, dar poate conduce laconfuzii dacă filozofia de bază nu este înţeleasă. Cel mai amintit argumenteste acela că această tehnică determină un număr mai mare de trepte sausimboluri logice, decât o abordare directă programată după ieşiri [25]. Acestlucru este adevărat, dar programarea în funcţie de ieşiri poate conduce la

 programe foarte întortocheate şi dificil de înţeles.Să consider ăm următorul exemplu. Figura 5.13 este o treaptă care

corespunde pe undeva stării 2 din diagrama stărilor (figura 5.7.b); aceastacombină operarea manuală  şi automată, acţiunea sa nefiind clar ă deloc(acest stil de programare este cunoscut sub numele de "programarespaghetti").

Page 111: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 111/137

 

111

Figura 5.11. Trei din cele şase stări

Figura 5.12. Două din ieşirile procesului

Pot apare probleme atunci când tranziţiile au loc împotriva ciclului program, cum ar fi tranziţia E din figura 5.7.b. Dacă nu este concepută cu

Page 112: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 112/137

 

112

atenţie, o secvenţă de program construită doar în jurul ieşirilor poate sfâr şiuşor prin a face simultan două lucruri sau nici unul, datorită modului deoperare al ciclului program.

Figura 5.13. Un exemplu de programare spaghetti corespunzătoare stării 2

De asemenea, modificările sunt înşelătoare într-o abordare directă,dar sunt simple la o diagramă a stărilor. Să presupunem (aşa cum se poateîntâmpla în realitate în această aplicaţie) că este necesar să adăugăm unventilator de extragere a prafului, pentru a reduce conţinutul de praf dinincintă. Acesta ar trebui să lucreze în timpul descărcării şi încă aproximativun minut după terminarea descărcării, înainte ca paleta să fie ridicată.

 Noua diagramă de stare este prezentată în figura 5.14. Tot ceea ceeste necesar este o nouă stare 6 (Ventilaţie după descărcare). În practică 

stările şi tranziţiile trebuie redenumite pentru a păstra o ordine secvenţială anumerelor stărilor şi a literelor tranziţiilor. Ventilatorul trebuie să meargă înstarea 3 şi în starea 6. Modificările programului sunt simple: o nouă tranziţieJ şi o nouă stare 6, modificări la starea 0 (adăugarea -⎪/⎪- pentru starea 6) şila starea 4 (intrare în starea 4 prin J şi nu prin D), adăugarea unuitemporizator de 1 minut (pentru tranziţia J) şi o nouă ieşire pentrucontactorul ventilatorului.

Conform paragrafului 3.6, diagrama stărilor este atât de puternică încât majoritatea AP de dimensiune medie o includ în limbajul lor de

 programare.Chiar şi modelul simplu F2 al firmei Mitsubishi poate opera cu DSS,

 prin instrucţiuni STL (STepLadder = DS cu stări). Acestea au prefixul S şiadresele între S600 şi S647. Au caracteristic faptul că atunci când una saumai multe sunt setate, toate celelalte sunt automat resetate. O instrucţiuneRET încheie secvenţa.

Page 113: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 113/137

 

113

Figura 5.14. Modificări la diagrama stărilor 

Exemplu

Diagrama stărilor din figura 5.15.a devine astfel DS din figura5.15.b, care poate fi programată în LI cu aceste prime instrucţiuni:

LD X400S S 601STL S 601OUT Y 431LD X 401S S 602etc.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ă). Număr ătorul este acţionat atuncicând sunt îndeplinite condiţiile pentru pasul curent (sau starea curentă). APGEM-80 are o instrucţiune SEQR (secvenţă) care se comportă ca ununiselector de 16 paşi.

Page 114: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 114/137

 

114

Figura 5.15. DSS la F2 al firmei Mitsubishi:a) diagrama stărilor; b) parte a DS corespunzătoare începutului lui a)

Figura 5.16. Instrucţiunile de secvenţiere de la firma Allen Bradley

AP PLC-5 are două instrucţiuni care îndeplinesc acelaşi rol. Acesteasunt numite Intrare Secvenţială (SQI) şi Ieşire Secvenţială (SQO) şi suntcomandate de către un număr ător care dă pasul curent (sau starea curentă).Fiecare instrucţiune are un tabel cu câte un rând corespunzător fiecăruinumăr de pas (de stare). Pentru SQI tabelul conţine intr ările corespunzătoaretranziţiilor necesare pentru a ieşi din fiecare stare. Pentru SQO tabelulconţine numele ieşirii ce trebuie activată în 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.16. Deşi SQI şi SQO dau programefoarte compacte, faptul că datele ce trebuie controlate sunt vizibile doar subformă de tabel poate face depanarea mult mai dificilă.

Page 115: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 115/137

 

115

5.3. Ingineria software

O specificaţie tipică pentru un sistem de control poate să se încheie

cu o cerinţă simplă, cum ar fi următoarea: "sistemul hidraulic va avea trei pompe hidraulice plus o pompă de antrenare a uleiului". Ca şi majoritateaspecificaţiilor, aceste cerinţe simple generează multe semne de întrebare:

•  Trebuie să meargă toate cele trei pompe, sau doar una, sau două?•  Dacă trebuie să meargă mai puţin de trei, cum va (vor) fi selectată(e)

 pompa (pompele)?•  Dacă sunt utilizate mai puţin de 3 pompe, trebuie ca pompa

(pompele) neutilizată(e) să fie în aşteptare cu comutare automată?•  Cum sunt pornite pompele, individual sau toate împreună?•  Butonul STOP DE AVARIE le va opri pe toate? (dacă nu, de ce nu?)

• 

Va porni pompa de antrenare a uleiului împreună cu pompele principale sau pornirea ei va fi condiţia pornirii pompelor principale?•  Dacă pompa de antrenare se opreşte, trebuie să se oprească  şi

 pompele principale?•  Ce semnale de protecţie există (de exemplu, temperatur ă/nivel)?•  Dacă nu există, de ce nu există, 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.Proiectanţii de sisteme AP trebuie să realizeze un program care să 

expliciteze aceste cerinţe adeseori vag exprimate. Pe lângă aceasta, estenecesar ă alocarea de I/E semnalelor procesului şi comenzilor operatorului şistabilirea modului de realizare a legăturii operator-proces.

Programatorii implicaţi în software-ul comercial (pentru evidenţă contabilă, hoteluri, rezervări în transporturi, etc.) întâmpină problemesimilare şi au generat termenul de inginerie software pentru a descrie cum serealizează un proiect software, pornind de la ideile originale aleutilizatorului (probabil imprecise) şi ajungând la un sistem care funcţionează 

  bine [46]. În acest paragraf vom examina factorii care trebuie luaţi înconsiderare în proiectarea sistemelor de control cu AP.

Figura 5.17 prezintă cele 6 etape prin care trebuie să treacă orice

 proiect software. Deşi puţine proiecte sunt compartimentate atât de net ca şiacesta, principiile se aplică la toate.

Prima etapă este analiza problemei ce trebuie rezolvată.Furnizorul/programatorul sistemului AP trebuie să se întâlnească cu ceilalţi

Page 116: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 116/137

 

116

furnizori de echipamente şi cu utilizatorul pentru a determina ce comenzisunt necesare şi cum vor fi abordate aceste comenzi. În această etapă trebuiestabilite aspecte importante, cum ar fi comenzile operatorului. Specificaţiile

neclare trebuie clarificate în această etapă (cum ar fi pompele hidraulice demai înainte).

Dintre toate etapele, cea mai dificilă este analiza, deoarece probabilceilalţi furnizori nu au luat în considerare toate aspectele complicate alestrategiei de control şi nu au suficientă experienţă pentru a decide dacă unobiect al procesului este mai bine să fie comandat prin joystick-uri, butoane,sau cu display sensibil la atingere.

Un aspect important adeseori trecut cu vederea în această etapă estenecesitatea existenţei unor comenzi manuale, pentru a testa sau repune înfuncţiune un proces în întregime automatizat, care s-a oprit dintr-un motivoarecare.

Figura 5.17. Etapele unui proiect

La sfâr şitul etapei de analiză trebuie să se obţină o descriere amodului de lucru al procesului, ce comenzi ale operatorului sunt necesare (şicum trebuie acestea implementate), ce facilităţi şi mijloace trebuie incluse

Page 117: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 117/137

 

117

 pentru a ajuta mentenanţa/detecţia erorilor şi, în ultimul rând, să se obţină olistă completă a semnalelor de I/E, cu specificarea curentului/tensiunii

 pentru fiecare şi poziţia lor în proces.

Dificultăţile (şi importanţa) acestei prime etape nu pot fi neglijate.Dacă ambiguităţile şi problemele sunt rezolvate la început, următoareleetape sunt uşoare. De exemplu, aflarea în faza de instalare a faptului că utilizatorul doreşte ventilatoare cu viteză variabilă şi o alarmă de presiuneminimă, precum şi replici de genul "credeam că  ştiţi despre asta" nu estecalea de a asigura o punere în funcţiune rapidă şi f ăr ă incidente.

Tot în această etapă trebuie definite şi necesităţile de testare finală.Dacă nu se ştie cum va fi testat procesul, cum se poate şti dacă procesul esteconform cu cerinţele utilizatorului?

Cea mai grea etapă fiind depăşită, proiectul trece în etapa a doua,specificaţii şi planificare, în care proiectantul trebuie să specifice ce va

conţine sistemul de control, cum va funcţiona şi cum va fi testat. Trebuieînregistrat tot ceea ce s-a stabilit în prima etapă.

Următoarea etapă este cea de proiectare a sistemului, a dulapurilor,a pupitrelor de comandă şi a structurii programului. Această ultimă acţiunecunoscută ca "proiectare top-down" (de sus în jos), este discutată în

 paragraful următor.A patra etapă este cea de programare şi realizare. Programarea

 poate fi realizată pe baza structurii definite în etapa de proiectare. Nici un program nu trebuie conceput ad-hoc direct de la tastatur ă; aceasta ar genera programarea spaghetti. Programatorii comerciali estimează că această etapă 

înglobează nu mai mult de 10% din efortul total.Cu programarea încheiată şi cu instalaţia construită se poate trece laetapa de testare şi punere în funcţiune. Operaţiile trebuie verificate pentrua vedea dacă sunt îndeplinite specificaţiile determinate la etapa 2. Chiar  şicu cel mai simplu sistem, ar fi un mare consum de timp să se verifice toatetraseele şi acţiunile menţionate în specificaţii. Există o presiune generală dea declara instalaţia ca fiind funcţională atunci când au fost testate operaţiilede bază, f ăr ă a mai verifica opţiunile rar utilizate. Deseori, aceste teste suntsărite şi testarea generală este f ăcută doar atunci când apar anumite defecteascunse (minore), posibil după câţiva ani de la punerea în funcţiune ainstalaţiei. Inevitabil, punerea în funcţiune a sistemului de control va fi

întotdeauna ultima etapă într-o instalaţie nouă, astfel că inginerul careconduce această lucrare de automatizare va fi cel care va suporta întârzierilecelorlalţi. De aceea, este important să se stabilească ce teste trebuie realizateînainte de pornirea instalaţiei, şi ce teste pot fi f ăcute mai târziu, on-line.

Page 118: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 118/137

 

118

Testarea on-line poate fi, totuşi, foarte dificilă  şi consumatoare de timp.Testele referitoare la siguranţa muncii nu trebuie sărite niciodată.

Ultima etapă menţionată în figura 5.17, cea de mentenanţă, este, de

multe ori, trecută cu vederea. Odată ce instalaţia a fost predată la cheie,sistemul său de control trebuie întreţinut, şi, eventual, trebuie f ăcuteschimbări (de dorit minore), generate de modificarea modului de lucru ainstalaţiei. Nici o instalaţie nu este fixă, toate se modifică de-a lungul vieţiilor ca r ăspuns la schimbările pieţei şi ale tehnologiilor. Aceste modificărinecesită schimbări în strategia de control.

În programarea comercială se estimează că mentenanţa consumă aproximativ 50% din efortul depus într-un ciclu de viaţă al proiectului. Deaceea, este esenţial ca strategia de control şi programul să fie concepute şidocumentate astfel încât să poată fi schimbate şi modificate uşor într-oultimă etapă, chiar şi de către persoane care nu au fost implicate în primele

cinci etape.

5.4. Proiectarea top-down

 Nu este un lucru neobişnuit ca programele de AP să conţină câtevamii de trepte de DS. Un program nestructurat de o asemenea lungime poatefi foarte dificil de scris şi foarte greu de urmărit (pentru mentenanţă  şidetectarea defectelor).

De aceea, programatorul nu trebuie să scrie un singur program lung,ci să-l descompună în mai multe segmente de program mai mici. Ideal, unsegment de program nu ar trebui să conţină mai mult de 10 trepte (sau

echivalentul într-un alt limbaj de programare), deoarece acesta este maximul pe care creierul uman îl poate memora la un moment dat. Structura acestor segmente este unul din cele mai importante aspecte ale etapei de proiectaredin figura 5.17.

Cea mai bună cale de obţinere a unei descompuneri convenabile este  proiectarea top-down (de sus în jos). Aceasta împarte sistemul de control înzone, care sunt, la rândul lor, împăr ţite în subzone şi aşa mai departe, până când sunt obţinute blocuri de program de dimensiuni convenabile. Ideea este

 prezentată cel mai bine printr-un exemplu, şi anume comanda unei instalaţiinumită "furnal de distribuire". Acesta este comandat de un singur AP cuaproximativ 1700 trepte de DS.

Controlul instalaţiei poate fi descompus în cele 10 zone din figura5.18, fiecare din ele putând fi descompuse la rândul lor. Aici este prezentată doar structura programului corespunzător sistemului de alimentare. Nivelede jos pot fi programate prin câteva trepte.

Page 119: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 119/137

 

119

 

Page 120: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 120/137

 

120

Figura 5.19 prezintă două blocuri de pe nivelele inferioare, cusemnalele interne şi de la instalaţiile specifice lor. Blocul kwh, de exemplu,constă în două număr ătoare comandate cu un impuls la 100 kwh de la un

traductor de putere, atunci când alimentarea e pornită (un semnal intern dela un alt bloc). Ambele număr ătoare sunt resetate la începutul tratamentuluiiar număr ătorul de secvenţe este resetat la începutul unei noi secvenţe.Ieşirea blocului constă din două totaluri utilizate de către alte blocuri pentruafişarea la operator şi pentru controlul automat.

Figura 5.19. Două blocuri din figura 5.18 cu semnalele lor 

Structura rezultată a programului ar trebui înregistrată ca parte adocumentaţiei sistemului de control şi utilizată ca bază pentru programare.Un avantaj, care nu este observat imediat, este acela că o hartă structurată 

 bine realizată, cu semnale clar identificate, poate fi uşor distribuită între maimulţi programatori.

5.5. Structura programelor în diverse AP

În limbajele de nivel înalt pentru calculatoare, programatorii tind să  prefere limbaje ca Pascal sau C care sunt inerent structurate prin construcţialor şi privesc limbajele "nestructurate" (cum ar fi BASIC) cu o anumită doză de neîncredere. În realitate, este posibil să scrii programe perfect structurateîn BASIC şi programe spaghetti în Pascal sau C. Alegerea este a

 programatorului.

Observaţii similare sunt valabile pentru programele de AP. MulteAP de dimensiune medie (şi toate cele de mici dimensiuni) nu conţin delocelemente structurate, lăsând programatorul să decidă asupra structurii şi să urmeze o disciplină autoimpusă.

Page 121: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 121/137

 

121

AP mai mari şi mai moderne au elemente structurate încorporate.Într-o oarecare mǎsur ǎ acestea constrâng programatorul în acelaşi mod încare un programator în Pascal sau C dispune de o mai micǎ libertate în a

face greşeli. În general, aceste AP ofer ǎ metode de descompunere a programului în module mici uşor de înţeles (la AP mai mari, cum ar fi PLC-5/520 al firmei Allen Brandley, există instrucţiuni Repeat/Until, Whiledo/End While, For/Next, pentru a repeta acceaşi operaţie asupra unui blocde date).

Cel mai structurat limbaj este, probabil, la AP Master al firmei ABB,care este similar cu un limbaj de nivel înalt compilat, în care toatevariabilele şi toate procedurile trebuie declarate. Programul AP estedescompus într-unul sau mai multe programe denumite PC1, PC2, etc. Esterecomandat ca fiecare din acestea să trateze o zonă diferitǎ a procesului,fiecare program putând avea diferite viteze de scanare.

Apoi, aceste programe conţin module de control care pot fivalidate/invalidate sau re-executate la intervale de timp specificate. Îninteriorul modulelor de control existǎ module de funcţii şi module desecvenţiere, ultimele conţinând paşi corespunzǎtori diagramei stǎrilor descrisǎ în paragraful 5.2. Elementele logice actuale sunt conţinute înmodulele de funcţii sau în paşii secvenţiatorului. Astfel, un programcomplet poate fi vizualizat în figura 5.20.a, structura sa (asemănătoare unuiarbore MS-DOS) fiind dată în figura 5.20.b. Structura propriu-zisă esteflexibilǎ; modulele de funcţii pot conţine la rândul lor module de control şi

 permit construirea unei ierarhii master/slave.

Figura 5.20. Modul de structurare a programelor la AP Master alfirmei ABB: a) structur ǎ tipicǎ de program Master;

 b) vedere în arbore a programului

Page 122: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 122/137

 

122

Modulele sunt etichetate în ordine ierarhicǎ pânǎ la nivelulelementelor, astfel cǎ poarta ŞI PC1.2.3.2. din figura 5.21 este al doileaelement logic în blocul funcţional 3 al modulului de control 2 din programul

PC1, şi trebuie declarate ca parte a construcţiei bazei de date. Aceastǎ structurare şi etichetare impune o disciplinǎ asupra programatorului.

Figura 5.21. Specificarea unei por ţi logice la AP Master al firmei ABB

Firma Siemens utilizeazǎ o structur ǎ constând din blocuri deorganizare (OB), blocuri program (PB), blocuri de funcţii (FB), fişiere desubrutine, pe care le vom discuta pe scurt, şi blocuri de secvenţiere

(corespunzând DS). Modulele de bazǎ sunt blocurile de programe care suntexecutate la unităţile de jos în proiectarea top-down. Când este pornit primadatǎ, AP începe execuţia programelor cu blocul de organizare OB1, din care

  pot fi apelate PB sau FB, ca în figura 5.22. Aceastǎ descriere este, deasemenea, simplificatǎ într-o oarecare mǎsur ǎ.

Firma Allen Brandley utilizeazǎ la AP PLC-5 o idee similar ǎ.Programatorul poate descompune nivelul superior al programului în modulede programe mai mici, care pot fi denumite după cum este necesar. La APPLC-5 programele pot fi legate între ele printr-o DSS. Fiecare pas şitranziţie este un program DS mic, un exemplu tipic fiind prezentat în figura5.23.

Atât firma Allen Brandley, cât şi firma Siemens utilizeazǎ conceptulde subrutine (numite blocuri de funcţii FB la firma Siemens). Acestea sunt

 programe mici, utilizate pentru a rezolva sarcini specifice, care pot fi apelateîn repetate rânduri de cǎtre programele de nivel mai înalt (figura 5.24).

Page 123: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 123/137

 

123

Figura 5.22. Organizare tipicǎ în interiorul AP ale firmei Siemens

Figura 5.23. DSS la AP PLC-5 al firmei Allen Brandley

De exemplu, puţine AP realizeazǎ funcţii trigonometrice (sin, cos,

tg) în mod direct. Este relativ uşor sǎ se calculeze sinusul unui unghiutilizând dezvoltǎri serie:

...!5!3

sin53

−+−= x x

 x x (5.5)

Page 124: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 124/137

 

124

Figura 5.24. Subrutine, disponibile la multe AP

unde x este unghiul în radiani. Pentru majoritatea aplicaţiilor primii 3termeni dau suficientă precizie. Astfel, sinusul unui unghi θ (în grade) poatefi calculat cu o secvenţǎ similar ǎ cu cea din figura 5.25, obţinutǎ cu câtevatrepte sau simboluri logice. Aceasta poate fi declarată ca o subrutinǎ numitǎ Sin, având la intrare unghiul în grade şi returnând sinusul cǎtre variabiladesemnatǎ.

Figura 5.25. O subrutină pentru sin θ 

Variabile de intrare şi de ieşire sunt numite  parametri. Ori de câteori dorim sinusul unui unghi putem apela subrutina Sin.

Putem merge mai departe. Cosinusul unui unghi este dat de relaţia:)90sin(cos θ−=θ (5.6)

unde θ este în grade, astfel cǎ putem scrie acum o altǎ subrutinǎ pentru acalcula cosinusul unui unghi, ca în figura 5.26.a. Observaţi cǎ aceasta aredoar douǎ blocuri şi apeleazǎ subrutina Sin ( care face cea mai mare parte alucrului ). În final, observând cǎ:

Page 125: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 125/137

 

125

θ

θ=θ

cos

sintg (2.3)

 putem construi o subrutinǎ Tangentǎ, ca în figura 5.26.b. Aceasta apeleazǎ 

atât subrutina Sin, cât şi subrutina Cos. Apelarea unei subrutine de cǎtre altesubrutine se numeşte "nesting" (imbricare).

Figura 5.26. Subrutine ce utilizează subrutina Sin: a) Cos; b) Tangentă 

Avantajele subrutinelor constau în economisirea memoriei

 procesorului şi în minimizarea efortului de programare. De asemenea,acestea fac programul mai uşor de urmǎrit, astfel cǎ personalul de întreţineresau programatorul ce trebuie sǎ facǎ modificǎri are nevoie sǎ examineze osingur ǎ subrutinǎ.

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 anumitesituaţii. La AP PLC-5 al firmei Allen Brandley, de exemplu, acest lucru

 poate fi f ǎcut cu o instrucţiune MCR (Releu de Control Master) iar la APGEM-80 poate fi utilizatǎ comanda Start/End Block. Acestea permit ca unset de trepte sǎ fie sǎrite (ignorate) dacǎ instructiunea de control de laînceputul blocului nu este adevǎratǎ, ca în figura 5.27. Aceste instrucţiuni

ajutǎ la structurarea programelor în blocuri mici şi, de asemenea, conduc laîmbunǎtǎţirea timpului de rulare a programului prin ignorarea treptelor carenu sunt relevante la momentul curent. Ele pot, totuşi, crea confuzie în rândul

  personalului de întreţinere deoarece aceste instrucţiuni (comenzi) nu suntimediat observabile.

5.6. Întreţinerea şi practica software

Toate programele (de procesare a datelor, comerciale sau de control)trebuie:

a.  sǎ îşi îndeplineascǎ funcţiile în mod fiabil

 b.  sǎ se comporte într-o manier ǎ dinainte cunoscutǎ atunci când datelede intrare sunt eronate (comportarea descrisǎ ca "robustǎ" înlimbajul de specialitate)

c.  sǎ fie simplu de înţeles şi de întreţinut.

Page 126: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 126/137

 

126

Figura 5.27. Exemplu de structur ǎ cu comanda Start/End Block 

Prima din aceste cerinţe este evidentǎ, şi majoritatea AP îşi vor îndeplini sarcinile pentru care au fost proiectate. Celelalte două puncte, pede altǎ parte, sunt adeseori trecute cu vederea. Absenţa lor poate sǎ nu fievizibilǎ pânǎ când apare pentru prima datǎ o problemǎ (dupǎ câteva luni sauani de la punerea în funcţiune a instalaţiei), când echipa de proiectare este,

 probabil, descompletată sau dispersată.Software-ul robust are protecţie încorporatǎ împotriva datelor 

eronate provenite de la senzori defecţi sau de la intr ări tastate greşit de cǎtre

operator. Figura 5.28 prezintǎ, pentru exemplificare, o aplicaţie. Materialuleste furnizat la greutatea specificatǎ de cǎtre beneficiar, dar este tǎiat lalungime prin numǎrarea impulsurilor de la rolele de transport. Operatorulintroduce o greutate doritǎ în AP iar acesta o converteşte în lungime

Page 127: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 127/137

 

127

echivalentǎ. Materialul rezultat este cântǎrit şi verificat pentru a se vedeadacǎ este la greutatea doritǎ, orice eroare fiind utilizatǎ pentru a corectaurmǎtoarea tǎiere.

Figura 5.28. 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, citiri incorecte alegreutǎţii, interferenţe electrice pe linia impulsurilor de la rolele de transport,ca sǎ numim doar trei. Oricare din acestea poate cauza probleme dacǎ dateleeronate rezultate au fost tratate ca fiind corecte.

Este esenţial sǎ se includǎ o formǎ de verificare. Operatorul dinfigura 5.28 poate introduce greutǎţi doar într-un domeniul specificat.Funcţia de tăiere va utiliza doar indicaţiile de la sistemul de cântǎrire,indicaţii care sunt într-un domeniu specificat, sub forma unui procentaj dingreutatea urmǎritǎ.

Intr ǎri greşite ale operatorului sau greutǎţile în afara domeniului suntsemnalizate ca alarme ale sistemului. Similar, poate fi calculat un interval detimp pentru tǎiere, cu tǎieri (iniţiate de un impuls) permise doar în interiorulacestui interval şi cu iniţierea unei alarme de "timp de tǎiere expirat", dacǎ nu este generatǎ o comandǎ de tǎiere pânǎ la trecerea timpului maxim fixat.

Inevitabil, software-ul robust este mai lung şi mai complex;

aproximativ 25% din programul corespunzǎtor figurii 5.28 este dedicatoper ǎrii normale, restul de 75% ocupându-se de condiţiile anormale care potapare (vreodatǎ sau, poate, niciodatǎ). Protecţia este totuşi, necesar ǎ, pentrua da operatorului şi personalului încredere în sistem.

Page 128: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 128/137

 

128

La programatori există tendinţa de a face programele mai subtile şide a reduce numǎrul de instrucţiuni utilizate. Asemenea tendinţe trebuierespinse chiar mai tare decât în software-ul comercial, deoarece mentenanţa

instalaţiei şi a programului va fi f ǎcutǎ de cǎtre oamenii care vor cere o mareclaritate a operaţiilor. Cuvântul de ordine trebuie să fie simplitatea. Nutrebuie utilizate metode complexe şi nici instrucţiuni neînţelese în întregime(existente în setul de instrucţiuni al AP).

Figura 5.29 prezintǎ un exemplu despre cum nu trebuie scris un program de AP. Aceastǎ aplicaţie constǎ într-un AP care comandǎ 3 proceseidentice. Programatorul începe prin realizarea unui multiplexor (MUX).Acesta va funcţiona ca un comutator rotativ cu trei poziţii, care va copiatoate intr ǎrile procesului selectat în locaţii de memorie internǎ.

Existǎ un singur program (pentru toate cele 3 procese), care lucreazǎ în memoria internǎ şi trimite ieşirile sale tot cǎtre memoria internǎ, pentru a

fi transmise cǎtre exterior prin intermediul unui demultiplexor software.Multiplexorul şi demultiplexorul sunt comandate de fiecare ciclu program,astfel cǎ programul se ocupǎ de procesul A în ciclul program 1, de procesulB în ciclul program 2, ş.a.m.d. Această tehnicǎ este ingenioasǎ  şieconomiseşte memoria, dar este foarte dificil de înţeles programul şi dedetectat erorile. În funcţionare normalǎ operaţia nu poate fi urmǎritǎ, astfelcǎ tot ce poate fi vǎzut pe terminalul de programare este ceva ambiguu,multiplexoarele comutând continuu pe procese diferite. Când apare undefect la un proces, multiplexoarele trebuie blocate pe procesul cu defect(oprind astfel procesele ce merg bine), pentru a permite observarea moduluide operare. Concluzia este că asemenea procedee trebuie evitate.

Programul trebuie, de asemenea, sǎ reflecte funcţionarea procesului.Figura 5.5 a prezentat o situaţie obişnuitǎ, în care oricare sau ambelemotoare pot fi pornite, dupǎ cum s-a selectat de la un comutator de pe pupitrul de comandǎ. Pentru economie, nu a fost utilizat comutatorul cel maiindicat. Cel mai simplu program este treapta din figura 5.5.e, dar trebuieremarcat cǎ cele douǎ trepte din figura 5.5.d fac operaţia mai clar ǎ pentrucel care se confruntǎ cu ea pentru prima datǎ.

Buna documentaţie este esenţialǎ pentru claritate. Majoritatea AP  pot fi programate off-line (prin intermediul unui calculator PC) şi aufacilitatea documentǎrii semnalelor individuale şi adǎugǎrii unor comentariiexplicative care sǎ descrie cum lucreazǎ programul. Aceastǎ posibilitate

trebuie utilizatǎ din plin; comparaţi programul nedocumentat din figura 9.26cu versiunea documentatǎ din figura 9.27.

Una din regulile de bazǎ utilizate în programare este "dacǎ ai depuso datǎ în memorie, noteazǎ locaţia unde ai depus-o". A nu face acest lucru

Page 129: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 129/137

 

129

este ca şi cum ai pune ceva într-un dulap iar dupǎ câteva sǎ ptǎmâni sǎ fiiincapabil sǎ gǎseşti acel lucru. I/E şi memoria internă utilizate trebuieînregistrate iar documentarea în etapa de programare este de mare

importanţă. Dacă aţi ales o memorie internă de un bit care să reprezinte"Alarmă temperatur ă apă depăşită", atunci când o apelaţi în program şinotaţia "Pompa 1 oprită" este ataşată, veţi şti că aceeaşi adresă a fost,

  probabil, utilizată de două ori sau că harta memoriei prezintă o eroareundeva.

Figura 5.29. Cum nu trebuie scris un program AP:a) structura programului; b) operarea programului

În acest scop producătorii de AP ofer ǎ formulare de alocare aadreselor de I/E şi de memorie similare celei din figura 5.30. Acestea ar trebui utilizate cu meticulozitate.

Dacǎ interacţiunea datelor într-un program este complexǎ, este mai  bine sǎ se realizeze diagrame ale prelucr ǎrii datelor, ca şi cea din figura5.31. Aceste diagrame ajutǎ la planificarea programelor  şi creeazǎ condiţii

 bune pentru detecţia erorilor şi mentenanţǎ.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. O cale deatingere a acestui scop este consecvenţa stilului de programare. Dacǎ un

Page 130: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 130/137

 

130

contactor al unui motor a fost programat într-un anumit mod într-un loc din program (de exemplu, verificarea protecţiei motorului dacă a acţionat şi acontactelor auxiliare dacă s-au închis), atunci acest mod trebuie repetat

 pentru toate celelalte contactoare.

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

Page 131: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 131/137

 

131

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

Page 132: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 132/137

 

  132

 

BIBLIOGRAFIE

1.  Anderson T., Tourlas K.,   Diagrams and programming languages for 

  programmable controllers, Proceedings of the Formal Methods EuropeSymposium, LNCS, Springer, 1997, pp. 1-19

2.  Barabas T., Stadiul actual al cercet ă rilor  şi realiz ă rilor în domeniul 

  structurii MAP (protocol de automatizare a fabrica ţ iei) pentruhipersisteme robotizate CIM , Referat de doctorat nr. 1, UniversitateaPolitehnica din Timişoara, 1998

3.  Berger H.,   Automating with the SIMATIC S5 115U , SiemensAktiengesellschaft, 2nd edition, Munich, 1992

4.  Borangiu T., Dobrescu R.,  Automate programabile, Editura AcademieiBucureşti, 1986

5.  Borda M. E., Teoria transmiterii informa ţ iei, Ed. Dacia, Cluj-Napoca,1999

6.  Breeding J. K.,   Digital Design Fundamentals, Prentice Hall,

Englewood Cliffs, New Jersey, 19897.  Cătuneanu V.M., Bacivarof I.C.,   Fiabilitatea sistemelor de

telecomunica ţ ii, Ed. Militar ă, Bucureşti,19858.  Cepişcă C., Traductoare  şi senzori, ICPE Bucureşti, 19989.  Chellis J.,   Elemente fundamentale ale re ţ elelor de calculatoare, All

Educational, Bucureşti, 200010.  Cior ăscu F., Spânulescu I., M ă  sur ă ri electrice  şi electronice, E. D. P.

Bucureşti, 197311.  Coroescu T., Sisteme automate speciale, Universitatea din Petroşani,

199912.  Dierks H., Synthesising controllers from real-time specifications,

Proceedings of 10th International Symposium on system synthesis,IEEE CS Press, 1997, pp. 126-133

Page 133: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 133/137

 

  133

13.  Dodescu Gh., Calculatoare. Elemente fundamentale de structur ă .

 Ini ţ ializarea în utilizarea PC-urilor , All Educational, Bucureşti, 200014.  Dolga V., Traductoare  şi senzori, Universitatea Politehnica din

Timişoara, 199615.  Felea I., Coroiu N.,  Fiabilitatea  şi mentenan ţ a echipamentelor 

electrice, Editura tehnică, Bucureşti, 200116.  Flynn J. M., Computer Architecture, Pipelined and Parallel Processor 

 Design, Jones and Bartlett Publishers, Boston-London, 199517.  Gavriş M.,   Determinarea automat ă  a mă rimilor de referin ţă  din

comanda adaptivă  a ma şinilor-unelte, Teză de doctorat, InstitutulPolitehnic "Traian Vuia" Timişoara, 1989

18.  Gavriş M., Gergely E. I.,   Automate programabile, Îndrumător de

laborator, Lito Universitatea din Oradea, 199519.  Gavriş M., Gergely E. I.,   Determinarea parametrilor unui regulator 

 PID cu programul de modelare grafică ACSL, Analele Universităţii dinOradea, Fascicola Electrotehnică, 1996, pp. 324-331

20.  Gavriş M., Gergely E. I., Simularea buclei de pozi ţ ie a unei ma şini

unelte cu automat programabil , Analele Universităţii din Oradea,Fascicola Electrotehnică, Secţiunea C, 1997, pp. 35-41

21.  Gavriş M., Gergely M., Gergely E. I., Comanda sincronă  a

 semafoarelor de pe traseul Cele Trei Cri şuri – Hotel Dacia – Magazin

Cri şul cu automatul programabil TI305, Analele Universităţii din

Oradea, Fascicola Electrotehnică, 1993, pp. 419-42722.  Gergely E. I., Stadiul actual în tratarea fiabilit ăţ ii echipamentelor de

automatizare din domeniul construc ţ iilor de ma şini, Referat de doctoratnr. 1, Oradea, 1995

23.  Gergely E. I.,   Present techniques for improving the reliability of the

machine engineering control equipments, Proceedings of the A’96-THETA 10 Automatic Control & Testing Conference Cluj-Napoca,1996, pp. 261-266

24.  Gergely E.I., On reliability assesment of programmable logic

controllers – based control systems, Analele Universităţii din Oradea,Fascicola Electrotehnică,199825.  Gergely E. I., The effect of programmable logic controllers

  programming techniques on the program cycle in the sequential logic

Page 134: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 134/137

 

  134

design, Analele Universităţii din Oradea, Fascicola Electrotehnică,Secţiunea E, 1999, pp. 50-57

26.  Gergely E. I., Cercet ă ri privind dependabilitatea sistemelor de

conducere a proceselor cu automate programabile, Teză de doctorat,Universitatea din Oradea, 2002

27.  Gergely E. I., Gavriş M., Nagy Z.,   Perspectives on the future of 

automation control , Analele Universităţii din Oradea, FascicolaElectrotehnică, 2000, pp. 15-20

28.  Gorodcov M.,  Interferen ţ a în lumea calculatoarelor , Ed. Ştiinţifică  şiEnciclopedică, Bucureşti, 1989

29.  Gould L.,   Agile manufacturing emerges out of chaos, ManagingAutomation, no. 9, September, 1995

30. Ham J.,  Ninth annual control industry outlook , Intech Magazine, no.1,January, 1996

31.  Heller A., Traductoare  şi mă   surarea mă rimilor neelectrice,Universitatea Politehnica din Timişoara, 1996

32.  International Electrotechnical Comission,   IEC International Standard 

1131-3, Programmable Controllers, Part 3, Programming Languages,1993

33.  Maghiar T., Gavriş M., Antal C., Gergely E. I., Gavrilescu O.,Controlul  şi men ţ inerea în domeniu a presiunii de intrare în motorul 

 geotermal , Analele Universităţii din Oradea, Fascicola Electrotehnică,

1994, pp. 377-38434.  Maghiar T., Gavriş M., Antal C., Gergely E. I., Gavrilescu O., Reglarea

temperaturii CO2 gaz în limitele prestabilite la intrarea în motorul 

 geotermal , Analele Universităţii din Oradea, Fascicola Electrotehnică,1994, pp. 385-392

35.  Maghiar T., Gavriş M., Antal C., Gergely E. I., Gavrilescu O., Mod de

implementare pe controlerul TI305 a buclei de reglare a temperaturii

CO2 lichid din instala ţ ia electrogeotermal ă , Analele Universităţii dinOradea, Fascicola Electrotehnică, 1994, pp. 393-404

36. Maghiar T., Gavriş M., Gergely E. I., Mod de implementare a schemeide automatizare a centralei geotermale cu controlerul programabil 

TI305, Analele Universităţii din Oradea, Fascicola Electrotehnică,1993, pp. 409-418

Page 135: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 135/137

 

  135

37.  Maghiar T., Gavriş M., Gergely E. I.,   Reglarea tura ţ iei motorului

  geotermal a unei instala ţ ii geotermale, Analele Universităţii dinOradea, Fascicola Electrotehnică, Secţiunea C, 1995, pp. 92-97

38.  Maghiar T., Gavriş M., Gergely E. I., Urmă rirea parametrilor 

  principali, identificarea şi achizi ţ ia defectelor provenite de la o

central ă  geotermal ă , Analele Universităţii din Oradea, FascicolaElectrotehnică, Secţiunea C, 1995, pp. 98-102

39.   Nagy Z., Gergely E. I., Gavriş M.,   Automation possibilities of small 

complexity industrial processes, Analele Universităţii din Oradea,Fascicola Electrotehnică, 2000, pp.33-36

40.   Nise S. N., Control Systems Engineering , The Benjamin/CummingsPublishing Company Inc., Redwood City, California, 1995

41.   Norton P., Goodman J., Totul despre calculatoare personale, Ed.Teora, Bucureşti, 2000

42.  Oprean D.,  Proiectarea  şi exploatarea sistemelor informatice,Universitatea Independentă "Dimitrie Cantemir", Cluj-Napoca, 1999

43.  Parr E. A., Programmable controllers. An engineer’s guide, Clays Ltd.UK, 1993

44.  Păunescu F., Sisteme cu prelucrare distribuit ă   şi aplica ţ iile lor , Ed.Tehnică, Bucureşti, 1993

45.  Pertesco M., Automatiz ă ri industriale continue, Ed. Tehnică, Bucureşti,1991

46.  Popa I.,   Inginerie software pentru conducerea proceselor industriale,All Educational, Bucureşti, 1998

47.  Popescu D.,  Identificare  şi comand ă  pentru aplica ţ ii în timp real ,Universitatea Politehnică Bucureşti, 1995

48.  Pribeanu C., Interac ţ iunea om-calculator , E. D. P. Bucureşti, 199949.  Slavici T., Conducerea cu calculatorul a sistemelor tehnologice,

Universitatea Politehnica Timişoara, 199650.  Teresko J., Mass costumization or mass confusion?, Industry Week,

no.6, june, 199451. 

Tomai N.,  Re ţ ele de calculatoare cu aplica ţ ii în timp real , Risoprint,Cluj-Napoca, 199852.  Tourlas K.,  An assessement of the IEC 1131-3 standard on languages

 for programmable controllers, SafeComp '97, 1997, pp. 210-219

Page 136: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 136/137

 

  136

53.  Vasilievici Al., Bălaşiu F., Gal S., Făgăr ăşan T.,  Implementarea

echipamentelor digitale de protec ţ ie  şi comand ă pentru re ţ ele electrice,Ed. Tehnică, Bucureşti, 2000

54.  Vasilievici Al., Frigur ă-Iliasa F. M.,   Exemple de implementare a

automatelor programabile în instala ţ iile de comand ă  ale marilor 

consumatori industriali, Analele Universităţii din Oradea, Fascicola deEnergetică, Oradea, 2002, pp. 56-64

55.  Wu J.,   Distributed System Design, CRC Press, London – New York – Washington DC, 1999

56.  xxx - ABB Programmable Logic Controllers, Technical Catalogue,1993

57.  xxx - Advanced Programming Software (APS), Cat. No. 1474-PARE,

Allen Bradley, 199458.  xxx - Allen-Bradley Automation Systems, USA, 199459.  xxx - APC700 – Manual de utilizare, IPA S.A. Bucureşti60.  xxx - Automatul programabil AP-Micro, Manual de utilizare,

Automatica Bucureşti61.  xxx - Automatul programabil AP117, Manual de utilizare, Automatica

Bucureşti62.  xxx - Automat programabil PMC, Manual de utilizare, Karl Marx Stadt,

Germania63.  xxx - Automat programabil TI305, Manual de utilizare, Texas

Instruments64.  xxx - CEGELEC, GEM-80 Programmable Logic Controller User 

Manual, 199265.  xxx - Consolă de programare CPP 286, Manual de utilizare, Automatica

Bucureşti66.  xxx - Manual de utilizare al automatului programabil AP 101, IPA,

Automatica Bucureşti67.  xxx - Mitsubishi Electric Europe B. V. , Programmable logic

controllers, Technical catalogue, Germany, 199968. 

xxx - Schneider Electric, Automation solutions catalogue, 199969.  xxx - Siemens, Automation & Drives catalogue, 199970.  xxx – SLC 500TM Analog I/O Modules, User manual, Allen Bradley,

1994

Page 137: Automate Program a Bile - Curs

5/12/2018 Automate Program a Bile - Curs - slidepdf.com

http://slidepdf.com/reader/full/automate-program-a-bile-curs 137/137

 

  137

71.  xxx - SLC 500TM Modular Hardware Style, Installation and OperationManual, Allen Bradley, 1994

72.  xxx - Standard Român SR EN60617-7, CEI260617-7, 1999