2_vl.pdf
TRANSCRIPT
-
8/15/2019 2_VL.pdf
1/44
45
REPREZENTAREA CU RELEE
A VARIABILELOR LOGICE
2.1. Relee
Releul electromagnetic este format dintr-un solenoid (vezifigura 2.1) care, atunci când este alimentat cu tensiune, acţionează cu oforţă asupra unei armături mobile schimbând starea contactelor(contactele normal închise se deschid iar cele normal deschise se
închid).[22,1,18]
Contactele se află în starea “normală” atunci când bobina
releului nu este alimentată cu tensiune.Un releu are o parte din contacte normal închise (lasă curentul
să treacă) şi altele normal deschise, f ără legătură galvanică unul cualtul.
Tensiunea de alimentare a bobinei releului este de valoare mică (nepericuloasă pentru om) 5 V , 12 V sau 24 V .
Fig. 2.1.
22
-
8/15/2019 2_VL.pdf
2/44
46
Butoanele sunt acţionate manual (spre deosebire de relee),starea complementară celei normale menţinându-se cât timp butonuleste apăsat.
Starea contactului unui releu se menţine cât timp este alimentată cu tensiune bobina releului.
Contactele releului se pot afla în circuite de tensiune mare şi potcomuta curenţi de valori mai mari sau mai mici în funcţie deconstrucţia acestora. Spre exemplu contactele unui releu suportă curenţi de ordinul a 20 mA, iar contactele altui releu pot comutacurenţi de până la 5 A. Există relele care au contacte pentru curenţimici şi contacte („de forţă”) pentru curenţi de valori mari.
De fapt, aparatul care are rolul de a comuta, prin închiderea şideschiderea circuitului pe baza unei comenzi (de natură electrică),curenţi de valori mari se numeşte contactor (care poate fielectromagnetic sau static).
În aceeaşi ordine de idei aparatul care închide şi deschidecircuite electrice care nu sunt parcurse de curent se numeşteseparator. El are rolul de a specifica faptul că circuitul este subtensiune sau nu.
De regulă, un circuit electric care suferă dese intervenţii (spreexemplu pentru a fi recondiţionat) se cuplează la sursa de energie prinintermediul unui separator urmat de un contactor. Pornirea – oprireamaşinii (circuitului) se face cu contactorul. În caz de intervenţii lainstalaţia electrică se opreşte maşina cu contactorul şi apoi se deschide
circuitul prin acţionarea separatorului.D.p.d.v. constructiv diferenţa esenţială dintre contactor şiseparator este prezenţa camerei de stingere a arcului electric lacontactor. La deconectarea curenţilor mari între ploturi (elementelecontactorului prin care circulă curentul) apare un arc electric, care nutrebuie să se extindă în afară - se întrerupe în interiorul camerei.
Fig. 2.2.
-
8/15/2019 2_VL.pdf
3/44
47
În figura 2.2 sunt prezentate simbolurile folosite pentru
contactele releului, ND – normal deschise şi NI – normal închise.Comanda unui releu constă, în cazul releelor electromagnetice
în conectarea bobinei acestuia la sursa de alimentare sau în conectarea
tensiunii de comandă în cazul releelor electronice.În cazul releului electromagnetic (din figura 2.1) comanda seface prin închiderea comutatorului din circuitul bobinei releului, iar încazul releului electronic (cu optotriac din figura 2.3) comanda se faceprin acţionarea întrerupătorului din circuitul de alimentare al LED-ului. [22]
Prin convenţie un contact închis reprezintă starea „1” logic(permite circulaţia curentului) iar un contact deschis reprezintă starea
„0” logic (întrerupe circulaţia curentului).Ţinând seamă de această convenţie cu contacte ale releelor pot firealizate orice funcţii logice, în figurile 2.4,...,2.6 fiind prezentatecâteva implementări.
În figura 2.4 avem un circuit SAU realizat cu releele CRA şiCRB, a căror contacte sunt notate respectiv A şi B. Circuitul SAU arerolul de a comuta în zero ieşirea numai dacă toate intrările sunt în zero.
L1 şi L2 sunt liniile de alimentare ale becului, L1 fiind faza iar L2 nulul reţelei de alimentare cu energie electrică.
Ieşirea circuitului numită OUT este considerată în starea „1”
logic dacă becul se aprinde. Becul stins semnifică „0” logic la ieşireacircuitului logic.
Se constată că becul luminează dacă oricare din contacte este închis (sau amândouă) fiind conectat la sursa de alimentare. Se stingedacă ambele contacte sunt deschise, adică nici un releu nu este subtensiune (a se înţelege – bobină a releului).
Fig. 2.3.
-
8/15/2019 2_VL.pdf
4/44
48
În figura 2.5 este prezentat circuitul Ş I cu două intrări. Beculluminează (este în starea „1” logic) dacă ambele contacte A şi B sunt
închise, realizând astfel conectarea becului la liniile de alimentare cuenergie electrică. [23]
Pentru a realiza o negaţie (un circuit NU ) se foloseşte uncontact normal închis al releului, ca în figura 2.6.
Fig. 2.4.
Fig. 2.5.
-
8/15/2019 2_VL.pdf
5/44
49
Becul este aprins numai dacă releul nu este alimentat cutensiune, contactul A rămânând în starea normală (închis).
Pe lângă releele “normale”, prezentate mai sus, există o clasă derelee care îndeplinesc funcţii de protec ţ ie specifice şi o altă clasă careacţionează având drept variabilă de intrare atât comanda cât şi timpul,motiv pentru care se numesc relee de timp.Releele de protecţie au în componenţă un senzor (traductor) al uneimărimi supravegheate, un detector de valoare impusă (pentru mărimeaurmărită) şi un releu normal.În condiţiile în care mărimea monitorizată iese din domeniul impusbobina releului este alimentată şi contactele releului iniţiază o acţiune
specifică (spre exemplu semnalizează depăşirea limitelor).Principalele relee de protecţie sunt:
- relee maximale de curent, declanşează dacă curentul într-uncircuit depăşeşte valoarea impusă;
- relee minimale de tensiune, acţionează dacă tensiuneamonitorizată scade sub valoarea impusă;
- relee maximale de tensiune, acţionează dacă tensiuneamonitorizată depăşeşte valoarea impusă;
- relee de temperatură, acţionează când temperatura incintei
monitorizate scade sub o valoare (în cazul cuptoarelor) saucreşte peste o valoare impusă;
- relee de timp.
Releele de timp sunt de două tipuri- cu temporizare la conectare – contactele releului î şi schimbă
starea după un timp prestabilit măsurat din momentul cândbobina releului a fost alimentată cu energie;
Fig. 2.6.
-
8/15/2019 2_VL.pdf
6/44
50
- cu temporizare la deconectare - contactele releului rămân înstarea în care au fost un interval de timp prestabilit după cebobina releului a fost deconectată de la sursa de energie.
În figura 2.7 sunt prezentate contactele a două relee de timpa)
contactul normal deschis se închide la 5 secunde după alimentareabobinei,b) contactul care este închis pe durata alimentării bobinei, se deschidela 5 secunde după ce bobina nu mai este alimentată cu energie.
Releele pot fi utilizate în diferite scopuri (semnalizare, protecţie,condiţionare, reglare a mărimilor, ş.a.) în continuare fiind prezentatecâteva aplicaţii.
Exemplul 1. Circuitul "watchdog"
În aplicaţiile industriale sistemele de conducere trebuie să funcţioneze continuu, iar în caz de defect al sistemului să intre înfuncţiune sistemele de protecţie.
a) b)Fig. 2.7.
Fig. 2.8.
-
8/15/2019 2_VL.pdf
7/44
51
Circuitul "watchdog" semnalează oprirea programului rulat, pecalculatorul de proces prin închiderea unui contact, vezi figura 2.8.
Instrucţiunile programului se execută sincronizat cu o frecvenţă de tact. Dacă programul s-a oprit, frecvenţa de sincronizare ainstrucţiunilor nu va mai fi prezentă (lipseşte tensiunea cu frecvenţa de
sincronizare).Bobina releului este alimentată din tensiunea de sincronizare(impulsurile din figura 2.8) după redresare şi filtrare. Dacă programuls-a oprit lipseşte tensiunea de alimentare a releului şi contactul releuluise închide semnalizând starea sistemului sau alimentând circuitele deprotecţie.
Exemplul 2. Circuitul de control al funcţionării unui cuptor
Circuitele de autorizare sunt circuite care permit declanşarea unui
proces, în situaţia când sunt îndeplinite condiţiile impuse de siguranţaprocesului sau de modul de funcţionare al acestuia.
În figura 2.9 este prezentat circuitul de control al pornirii unuicuptor.
Cuptorul porneşte dacă sunt îndeplinite cele patru condiţii şianume:
- presiunea gazului de ardere este între limitele admise (contactelerelelor de presiune maximă şi minimă sunt închise, respectiv LM şi Lm);
- ventilatorul care furnizează aerul de amestec este pornit (releulde debit al aerului Lf este închis);
Fig. 2.9.
-
8/15/2019 2_VL.pdf
8/44
52
- coşul de evacuare a gazelor arse nu este obturat (releul de pecoşul de ardere Lc este închis).
Releele fiind în serie, alimentarea bobinei releului CR1 se facenumai dacă toate sunt închise. Contactul normal deschis CR1 se
închide şi becul verde semnalează pornirea corectă. Contactulnormal închis se deschide şi becul roşu se stinge.
Exemplul 3. Circuitul de pornire al unui motor de c.a.
În figura 2.10 este prezentată schema de forţă pentru schimbareasensului de rotire al unui motor de curent alternativ trifazat.
Pentru a inversa sensul de rotaţie al unui motor se impuneschimbarea sensului de rotaţie al câmpului magnetic învârtitor produsde înf ăşurările statorice ale maşinii. După cum se ştie rotaţia câmpuluimagnetic se produce în sensul succesiunii fazelor tensiunii de
alimentare a circuitului statoric ( R – S – T) . Pentru a schimba sensulde rotaţie al rotorului (antrenat în mişcare de rotaţie de câmpulmagnetic învârtitor) este suficient să se schimbe ordinea alimentării cutensiune a două din înf ăşurările statorice.
Pentru sensul direct ( în sensul de rotaţie al acelor ceasornicului)fazele R, S, T sunt conectate la înf ăşurările statorice notate cu 1, 2, 3
Fig. 2.10.
-
8/15/2019 2_VL.pdf
9/44
53
( astfel 1-R, 2-S, 3-T) de către contactele releului M 1 , iar pentrurotirea în sens invers releul M 2 conectează înf ăşurările motoruluiastfel 1-R, 3-S, 2-T (faza 2 a fost inversată cu faza 3).
Schema de comandă este prezentată în figura 2.11.
Constatăm că fiecare bobină de releu are, în serie, un contactnormal închis al celuilalt releu ( M 2a cu M 1 şi M 1a cu M 2 ). Contactulserie se numeşte contact de interblocare şi are rolul de a nu permitealimentarea cu tensiune a celuilalt releu (când unul dintre ele este subtensiune). Previne astfel manevrele greşite de conectare inversă aalimentării motorului când acesta se află în mişcare de rotaţie(operatorul apasă greşit butonul de inversare a sensului).
Conectarea releului de schimbare a sensului se impune să sefacă numai după ce motorul s-a oprit.Se impune această condiţie, pentru a nu solicita nici sarcina mecanică,
dar nici înf ăşurările maşinii – dacă rotorul maşinii are un sens derotaţie şi câmpul magnetic învârtitor alt sens, cresc solicitărilemecanice, creşte valoarea curentului prin înf ăşurări şi creştetemperatura înf ăşurării.
Contactele M1b, M2b, aflate, în paralel, cu butoanele de sens senumesc contacte de automen ţ inere.Butoanele de sens conectează alimentarea pe bobina releului, cât timpsunt apăsate, după care circuitul se deschide şi bobina releului este
Fig. 2.11.
-
8/15/2019 2_VL.pdf
10/44
54
scoasă de sub tensiune (iar acesta modifică contactele la stareanormală şi motorul, dacă a pornit se opreşte). În schimb, dacă există contact de automenţinere, la apăsarea butonului se alimentează bobinareleului şi aceasta închide contactul de automenţinere. După ce butonulnu mai este apăsat, curentul bobinei se închide prin contactul de
automenţinere ( M
1 se alimentează prin M
1b
, iar M
2 se alimentează prin M 2b ).
Releul RT este un releu de temperatură care, dacă temperatura înf ăşurărilor motorului a depăşit limita admisă, se deschide şi întrerupealimentarea cu tensiune a releelor, ceea ce conduce la tăiereaalimentării motorului şi la oprirea acestuia.
Pentru oprirea motorului se apasă butonul „stop” care scoate desub tensiune ambele relee.
2.2. Despre PLC
Controlerul PLC (Programmable Logic Controller ) este unsistem, care a apărut iniţial din necesitatea de a înlocui funcţia logică realizată cu releele electromagnetice cu un ansamblu de contactoarestatice comandate de un program memorat capabil să efectuezeconexiunile (care erau realizate de releele electromagnetice).Necesitatea se referă la creşterea fiabilităţii, la centralizarea sistemuluide comandă, la standardizarea şi modularizarea echipamentelor pentru
înlăturarea rapidă a defectelor.Primul PLC a apărut în 1968 (realizat de firma “ Bedford
Associates”) şi îndeplinea numai funcţia de control, prin program, ainstalaţiilor industriale. [24]Între timp controlerele PLC au fost dotate cu noi funcţii, pe lângă celedestinate controlului funcţionării instalaţiilor industriale, dintre carecea mai importantă este func ţ ia de reglare.
Reglarea se referă la posibilitatea sistemului de a elaboracomenzi prin intermediul cărora un proces să î şi menţină starea de
funcţionare impusă, indiferent de perturbaţiile care acţionează (pentrua scoate sistemul din starea dată).
Majoritatea producătorilor (ABB, Allen-Bradley, GE-Fanuc,Hitachi, Honeywell, LG Industrial Systems, Mitsubishi, Motorola,Omron, Rockwell Automation, Schneider Automation, Siemens,Toshiba, Yokogawa) de echipamente PLC au implementat funcţia dereglare după abatere prin algoritmi PID [25,18,19]. În literatura despecialitate se afirmă că numai 10% din buclele de reglare nu sunt
-
8/15/2019 2_VL.pdf
11/44
55
realizate cu regulatoare de tipul PID, ceea ce înseamnă că sistemelePLC dotate cu funcţia de reglare PID acoperă 90% din necesităţile dereglare ale industriei.
Comenzile sunt elaborate pe baza măsurării unor variabile ale
procesului, ceea ce înseamnă că sistemul este prevăzut cuintr
ă ri
analogice şi cu intră ri numerice (de la 4 la 40 intrări, în funcţie depreţ).
În cele mai multe cazuri intr ările analogice acceptă semnal deintrare standardizat (spre exemplu tensiuni din domeniul 0,.., 1 V , 0,..,5 V, -10,.., +10 V sau curenţi din domeniul 2,.., 10 mA, 4,.., 20 mA)dar uneori intrările sunt specializate pentru un anumit tip de traductor(spre exemplu are intrări pentru măsurarea temperaturii cu otermorezistenţă sau pentru măsurarea temperaturii cu un termocuplu).Specializarea implică dotarea intrării cu blocuri funcţionale (spre
exemplu amplificatoare sau atenuatoare de semnal) care să adaptezevalorile semnalului furnizat de traductor la domeniile standardizate,acceptate de controler.Spre exemplu, un termocuplu furnizează tensiuni de ordinul mV carevor fi amplificate de adaptor, pentru a se încadra într-unul dindomeniile tensiunilor de intrare standardizate ( de regulă în domeniul0,.., 5 V )
Intrările pot fi stări contact sau nivele de tensiune de diferitevalori cu variaţie lentă sau rapidă în timp(spre exemplu există domenii
de 12 Vcc , 24 Vcc, 5 Vcc, 100-120 Vac, 200-240 Vac, ş.a.).Observăm că, faţă de controlerele de început, controlereleactuale au pe lângă intrări de tip contact (de releu) atât intrări cât şiieşiri analogice. O parte din intrările analogice sunt folosite pentru aprelua semnale de la traductoare în scopul controlului şi protecţieiinstalaţiei şi o mică parte pentru a implementa funcţia de reglare a unorparametri (spre exemplu debit, temperatură, nivel ş.a.).
De remarcat faptul că tipul intrării şi domeniul valorilorsemnalului de intrare pot fi stabilite prin program, la iniţializareacontrolerului.
Comenzile, care reprezintă ieşiri ale controlerului, pot fi- numerice – de tipul stări ale unui contact (de releu) ;- analogice – un semnal de tensiune sau curent, cu domeniul
precizat de necesităţile procesului.Domeniul ieşirilor analogice se stabileşte prin program, iar în cazulsistemelor ieftine este fixat la un domeniu ( spre exemplu 0,.., 5 V ), decătre producătorul echipamentului.
-
8/15/2019 2_VL.pdf
12/44
56
Ieşirile pot fi stări contact sau nivele de tensiune de diferitevalori (spre exemplu 24 Vcc, 5 Vcc, 100-120 Vac, 230 Vac, ş.a.),adoptate în aşa fel încât să aibă suficientă energie pentru acţionareaunui element de execuţie.
Elementele de execuţie sunt dispozitive care pot modifica
controlat, fluxul de materie sau fluxul de energie într-un proces.Drept elemente de execuţie uzuale sunt motoare electrice,maşini hidraulice, maşini termice, contactoare statice, dispozitivemecanice ş.a.
Pentru prelucrarea numerică (de către microprocesorulcontrolerului) a mărimilor analogice, după adaptarea domeniuluisemnalul de intrare (în sensul că semnalul de la intrarea analogică esteconvertit – amplificat sau atenuat – într-un semnal care să se încadreze
în domeniul intrării convertorului analog – numeric CAN) acesta estetransformat într-un semnal numeric de către CAN.
Pe lângă intrările şi ieşirile accesibile din exterior (conectate laprocesul industrial) controlerul are implementate:
• relee interne, care sunt folosite pentru efectuarea unor operaţiilogice (releele interne se întâlnesc uneori sub numele demarkeri, flaguri);
• relee de timp, care permit iniţierea unor activităţi la momente detimp prestabilite;
• număr ătoare (care numără spre exemplu de câte ori s-a
modificat o intrare şi generează un semnal când numărătorul aajuns la o valoare prestabilită), regiştrii şi memorii;• oscilatoare, care permit sincronizarea în timp a unor activităţi;• comparatoare, care permit compararea a două semnale şi
evidenţierea egalităţii sau inegalităţii acestora;• sisteme de întrerupere a unui program şi comutarea pe o altă
secvenţă în cazul unor evenimente deosebite (spre exemplu încaz de defect al sistemului, în caz de nefuncţionare a unuitraductor ş.a.).
O altă funcţie este func ţ ia de comunicare a controlerului PLCcu alte echipamente (spre exemplu cu un microprocesor, cu uncalculator, cu un sistem de conducere centralizată, ş.a.).
Fiecare producător de echipamente PLC oferă un protocol decomunicare, prin intermediul căruia două (sau mai multe) PLC se
înţeleg şi pot schimba date între ele. Necazul este că rareori două PLC
-
8/15/2019 2_VL.pdf
13/44
57
ale unor producători diferiţi pot comunica între ele, datorită faptului că au protocoale de comunicaţie diferite.Notă: Prin termenul de protocol de comunica ţ ie se înţelege ospecificaţie a modului de codare a mesajelor schimbate între două entităţi. De fapt nu se referă numai la codarea datelor, ci şi la modul în
care decurge dialogul. Spre exemplu:- E1 trimite către E2 o cerere de conectare (connect request ),- E2 către E1 un răspuns la cerere prin care acceptă conectarea,- în continuare se transferă date de la E1 la E2 şi invers,- după ce E1 a terminat de transferat datele trimite către E2 o
cerere pentru eliberarea conexiunii (disconnect request ),- E2 trimite o confirmare (disconnect confirmation) şi legătura
este eliberată, canalul de comunicaţie putând fi utilizat de alteechipamente.
Comunicarea se poate face prin interfeţe standardizate (spreexemplu Ethernet, RS232, RS485), care permit integrarea PLC într-oreţea industrială sau chiar poate fi conectat la reţeaua Internet. Uneoricomunicarea poate fi wireless pe baza standardului IEEE 802.3.Notă: Termenul de interfa ţă standardizată se referă la o specificaţiecare precizează atât la mediul fizic (modul de legare între ele aechipamentelor, spre exemplu prin 3 fire, prin 8 conductori ş.a.),nivelele semnalelor, viteza de transfer cât şi protocolul de comunicaţiedintre echipamente (care transmite primul, cum răspunde celălalt şi în
ce ordine se transmit datele, câte date, ce semnificaţie au semnalelevehiculate pe liniile de conectare, ş.a.).Cea mai simplă interfaţă este RS232 care are avantajul că poate
fi conectată atât la PLC cât şi la orice calculator care dispune de unport serial. Dezavantajele interfeţei RS232 se referă la viteza detransfer de maximum 19,2 kbps şi la distanţa mică dintre echipamente( de maximum 15 m).
Datorită faptului că echipamentele lucrează în timp real,comunicarea trebuie să decurgă în deplină siguranţă, f ără erori şi cu
întârzieri cât mai mici. Din acest motiv se adoptă protocoale de
comunicaţie elaborate de diferite firme.Spre exemplu protocolul MAP al firmei General Motors este folosit înU.S.A. iar în Europa sunt folosite Profibus (cu posibilitatea detransmisie până la 1,2 km, rată de transfer de 9,6,.., 500 kbps, pentrumaximum 32 staţii) , Modbus Plus (cu posibilitatea de transmisie până la 450 m, rată de transfer de 1 Mbps la care se pot conecta maximum32 staţii) , FIP Bus, ş.a. [5]
-
8/15/2019 2_VL.pdf
14/44
58
Func ţ ia de diagnoză a controler-ului se referă la capacitateaacestuia de a-şi testa corecta funcţionalitate, de a elabora rapoarte laintervale de timp impuse, de a genera semnale de alarmare sauatenţionare la sesizarea unei anomalii.
Funcţia de diagnoză poate fi implementată prin program şi
extinsă pentru testarea funcţionării corecte a echipamentelor conectatela intrările şi la ieşirile sistemului. Pe lângă testarea hardware-uluisistemului, sistemele evoluate au posibilitatea de a verificafuncţionarea corectă a ansamblului de programe (soft-ul sistemului)prin rularea controlată a unor programe de autotestare, în sensul că segenerează intrări impuse şi se verifică corectitudinea comenzilor.
O altă clasă de programe de diagnoză au drept scop ajustarea parametrilor fizici ai sistemelor de măsur ă în scopul compensăriierorilor.Spre exemplu, datorită temperaturii mediului ambiant, parametrii
adaptorului se modifică (f ără voia noastră). În aceste condiţii semnalulnumeric, corespunzător mărimii măsurate va fi mai mic sau mai maredecât cel real. Controlerul generează la intrare un semnal care conducela o valoare numerică cunoscută. Dacă se obţine altă valoare,controlerul modifică factorul de amplificare al adaptorului pentru aobţine valoarea numerică corectă. Această caracteristică a sistemuluide a-şi modifica parametrii de funcţionare sau structura internă înscopul micşorării efectului perturbaţiilor se numeşte adaptabilitate.
Elaborarea programului pentru controler se face pe uncalculator oarecare utilizând:- scheme de conexiuni (leadder logic diagram), similare celor din
figurile 2.9, 2.11;- pe baza descrierii schemelor logice cu ajutorul unui program
specific controlerului, folosind instrucţiuni specifice;- pe baza descrierii schemelor logice într-un limbaj de
programare (spre exemplu în C) acceptat de controler;- pe baza unor limbaje standardizate pentru controlere, de cele
mai multe ori folosindu-se specificaţiile IEC 1131.
Pentru programe simple sau pentru modificarea unui program existent în memoria PLC se poate folosi interfaţa locală a controlerului.
Introducerea programului pentru controler, în memoria acestuia, seface prin intermediul unui conector, cu care este prevăzut sistemulPLC ( de regulă interfaţa asigură un transfer serial al datelor, fiind detipul RS232 sau USB - Universal Serial Bus ). Prin intermediulconectorului elementul de programare (un laptop, un calculator sau uncircuit specializat de programare) are acces la o magistrală.
-
8/15/2019 2_VL.pdf
15/44
59
Limbajele folosite de controlere nu au fost încă standardizate,
fiecare producător folosind alte instrucţiuni, care de fapt au acelaşiscop – de implementare, prin intermediul controlerului, a unor funcţiilogice.
Controlerele mai performante acceptă instrucţiuni în limbajeevoluate, spre exemplu în limbajul C.Sunt speranţe de unificare a limbajelor de programare a PLC
prin intermediul standardului IEC 1131 elaborat de ComisiaInternaţională de Electrotehnică IEC ( International ElectrotechnicalCommision) – vezi paragraful următor. De fapt producătorii deechipamente PLC nu au renunţat în totalitate la sistemul propriu deprogramare, ci au introdus suplimentar posibilitatea programării pebaza specificaţiilor standardului menţionat. Această facilitate esteindicată prin compatibilitatea echipamentului cu standardul ( IEC 1131
compliant ).Nu trebuie confundată funcţia de comunicare cu funcţia de
programare a controlerului. Cele două sunt separate atât fizic (pentruca să se evite reprogramarea accidentală a controlerului) cât şifuncţional.
Pentru programarea PLC şi testarea funcţionalităţii există soft-uri dedicate (CAD) puse la dispoziţie de producătorii deechipamente. Spre exemplu “ PicoSoft” cu ajutorul căruia se potdesena schemele şi se poate simula funcţionarea este pus la dispoziţie
gratuit (pentru platforme Windows) de firma Allen-Bradley. Poate fidescărcat de la adresa [25].
Tabelul 1.
TABEL COMPARATIV AL CARACTERISTICILOR UNITATILOR CENTRALE PLC
COD IC697CPX772 IC697CPX782 IC697CPX928 IC697CPX935INTRARI/IESIRI NUMERICE 2k 12k 12k 12kINTRAR/IESIRIANALOGICE 8k 8k 8k 8k
MEMORIA DISPONIBILAAPLICATIEI UTILIZATOR 512k 1 M 6 M
1 M (Fastmemory)
TIMPUL DE EXECUTIE AOPERATIILOR LOGICE 0.4ms/k 0.4ms/k 0.4ms/k 0.4ms/k
INDEX ALPERFORMANTEI
6.0 8.0 8.0 10.0
PROCESOR 486DX4 486DX4 486DX4 486DX4FRECVENTAPROCESORULUI 96MHz 96MHz 96MHz 96MHz
ARITMETICA IN VIRGULAMOBILA DA DA DA DA
-
8/15/2019 2_VL.pdf
16/44
60
În tabelul 1 sunt prezentate caracteristicile unităţilor centrale deprelucrare numerică din componenţa unor PLC iar în tabelul 2 suntprezentate comparativ performanţele PLC produse de patru firmereprezentative. S-au marcat cu steluţe facilităţile oferite de producătorprivind caracteristicile ( scăzută *, medie **, ridicată ***).[26]
Tabelul 2.
Firma ABB Siemens Allan Bradley GE Fanuc
Includerea in setul de instrucţiuni afuncţiilor trigonometrice
** * *** ***
Includerea blocurilor PID *** *** *** ***Posibilitatea includerii de subrutineparametrizate
- - ** ***
Structuri predefinite in C pentruutilizatori
* * *** **
Software compatibil cu actualelesisteme de operare ** ** *** ***
Comunicaţii prin cablu ** ** *** ***Furnizare piese de schimb (service) *** *** ** **Compatibilitate cu noile CPU ** ** ** ***Extensibilitate *** *** ** **Programare cu laptop standard ** ** ** ***Detectare si raportate defecte * * ** ***
În figura 2.12 este prezentat aspectul exterior al unui PLC.
Fig. 2.12.
-
8/15/2019 2_VL.pdf
17/44
61
Exemplul 1. Semnalizarea stării unui circuit electric
Circuitul din figura 2.13 are rolul de a semnaliza luminos (cu unLED) starea alimentării sarcinii de curent alternativ, notată cu R.
Precizăm, de la bun început, că situaţia prezentată nu va fi niciodată întâlnită în practică, datorită unor inconveniente printre care faptul că nu revine în starea iniţială f ără o comandă externă (vezi finalul logiciide comandă).Rezistorul R este alimentat cu ~220 V ca de la sursa AC dacă bobinareleului C este sub tensiune.Circuitul de comandă are două butoane f ără revenire (odată apăsate
rămân aşa) unul notat cu P – pentru pornire şi unul notat cu O – pentruoprire.
Dacă P este apăsat se alimentează bobina releului B, contactulacestuia se închide şi bobina releului C va fi conectată la sursa de c.c.notată V CC . Contactul releului C se închide şi sarcina este alimentată iar LED - ul se aprinde indicând prezenţa tensiunii în circuitul de forţă (de c.a.).
Fig. 2.13.
-
8/15/2019 2_VL.pdf
18/44
62
Dacă O este apăsat se alimentează bobina releului A, contactulacestuia se închide şi bobina releului C va fi deconectată la sursa dec.c. Contactul releului C se deschide şi sarcina este scoasă de subtensiune; iar LED-ul se stinge indicând faptul că sarcina nu estealimentată.
Pentru a aduce circuitul în starea iniţială se impune a debloca celedouă butoane.Constatăm că toată logica de comandă, inclusiv releele sunt
implementate de către PLC. În exteriorul acestuia se află numaibutoanele care constituie intrări ale PLC şi sarcina, conectată la unadin ieşirile controlerului.
Exemplul 2. Transferul programului în memoria unui PLC
În figura 2.14 la PLC s-au conectat la intrări 3 contacte ale unor
mărimi din proces, iar la o ieşire s-a conectat un bec.PLC- ul prezentat are 6 intrări (notate cu X ) , 6 ieşiri (notate cu Y ) ,două borne de alimentare L1 , L2 şi un conector pentru programare(Programming).
Contactele conectate la PLC pot avea orice nume, în schimb încadrul programului se vor folosi numai numele porţilor (ale bornelorPLC) la care este conectat contactul. Observăm că în cadrul schemei
Fig. 2.14.
-
8/15/2019 2_VL.pdf
19/44
63
de programare (din partea de jos a figurii ) apar notaţiile porţilor înscrise pe PLC ( X 1, X 2, X 3 pentru contactele de intrare şi Y 1 pentrubecul conectat la ieşire).
Se impune a face o distincţie clară între elementele fizice
conectate la PLC şi elementele din programul controler-ului asociateacestor elemente fizice, cu toate că pot avea aceeaşi denumire.În cazul figurii 2.14 programul din memoria controlerului
(exprimat prin schema din partea de jos a figurii) conţine contactulnotat X 1(element de programare) care este asociat elementului fizicconectat la prima bornă de intrare a PLC şi care ca element fizic sepoate numi tot X 1 sau altfel (spre exemplu START). De fapt,elementul de programare X 1 are alocat un registru (o zonă dememorie) în care se păstrează valoarea ON sau OFF. Programul vaprelua starea contactului din registrul asociat (şi tot acolo va face
actualizarea stării).
Execuţia programului controlerului
Programul controlerului se execută secven ţ ial spre deosebirede circuitele cu relee unde acţiunea contactelor este asincronă (apare laorice moment de timp şi rezultatul se obţine imediat ce s-a schimbatstarea unui contact).
După încheierea programului acesta este reluat ciclic, de la
început. Durata unui ciclu poate fi în domeniul 1,..., 100 ms.Etapele oricărui program sunt evidenţiate în continuare.A. Selftest
Controlerul efectuează o diagnosticare a stării sistemului şi în cazulfuncţionării corespunzătoare trece la etapa de preluare a mărimilorconectate la intrările PLC – ului.
B. Actualizarea st ării intr ărilor Secvenţialitatea înseamnă că la momente discrete de timp
controlerul execută o acţiune de testare a unui contact sau intrareanalogică, apoi al altui contact ş.a.m.d., până când efectuează
actualizarea stării tuturor elementelor conectate la intrărilecontrolerului . De fapt, actualizarea constă în memorarea stăriiintrărilor într-o memorie RAM.
B. Analiza circuitului şi actualizarea în memorie a st ăriiie şirilor
În faza următoare analizează prima ramură a circuitului,calculează rezultatele şi modifică în memorie starea ieşirilor.
-
8/15/2019 2_VL.pdf
20/44
64
Trece la analiza următoarei ramuri de circuit ş.a.m.d. până la sfârşitulschemei. Acesta este ordinea impusă în care se testează şi secalculează rezultatele acţiunii contactelor.Ordinea impusă este:- se începe din colţul stânga sus al diagramei,
- se parcurge prima ramură de la stânga la dreapta şi se memorează rezultatul (adică starea ieşirilor din ramura respectivă),- se trece la următoarea ramură în josul schemei, până la sfârşit.De reţinut faptul că se memorează, imediat ce se face calculul, stareaieşirilor circuitului (din simplul motiv că starea memorată va fiutilizată în restul calculelor, pe ramurile care urmează).Notă: Există posibilitatea, ca în calculele care se execută, să sefolosească date ale intrărilor neactualizate, prin specificarea explicită aacestei opţiuni. S-a prevăzut această posibilitate pentru a folosi încalcule date considerate sigure sau date care se eşantionează la
intervale mai mari de timp.C. Actualizarea st ării ie şirilor PLC În această ultimă etapă se face actualizarea ieşirilor propriu-zise
de la bornele controlerului PLC, după care se reia programul de lapunctul A.
Rezultă că pe parcursul analizei schemei (a derulăriiprogramului ) starea unei ieşiri se poate modifica de mai multe ori,dacă logica schemei o impune.
Această modalitate de parcurgere a schemei determină necesitatea de a nu schimba ordinea în care sunt poziţionate ramurilecircuitului, pentru că există probabilitatea ca să se obţină alte rezultate.Dacă un contact condiţionează funcţionarea altuia, prin schimbareapoziţiei se poate ca să fie testat mai întâi contactul al doilea – rezultă că primul contact nu va mai condiţiona funcţionarea celui de al doilea(la testarea celui de al doilea contact se va lua în considerare stareaneactualizată , veche, din memorie a primului contact). Se impuneconcluzia că o ramură de circuit nu poate condiţiona funcţionarea uneiramuri din amonte (microprocesorul nu se întoarce să reanalizeze
ramurile deja parcurse).
Exemplul 3. Realizarea unui generator de oscilaţiidreptunghiulare
Actualizarea stării intrărilor la momente discrete de timp, în ordineaprecizată, permite realizarea unui oscilator cu un singur releu şi uncontact al acestuia, ca în figura 2.15.
-
8/15/2019 2_VL.pdf
21/44
65
La prima testare C1 este închis şi PLC alimentează bobina releuluiC1care va fi în starea ON notată cu H. Bobina fiind alimentată contactul C1 se deschide.C1=H în intervalul de timp dintre testări, notat cu Ta.A doua testare găseşte C1 deschis şi PLC taie alimentarea bobinei
releului C1 care va fi în starea OFF, altfel scris C1=L. Contactul C1 se închide.C1=L în intervalul de timp dintre testări, Ta.
La a treia testare C1 este închis şi PLC alimentează bobina C1= H.Bobina fiind alimentată contactul C1 se deschide.C1=H în intervalul de timp dintre testări, Ta.
A patra testare găseşte C1 deschis şi PLC taie alimentarea şi C1=L.Contactul C1 se închide.C1=L în intervalul de timp dintre testări, Ta.Ş.a.m.d.
Constatăm că starea bobinei BC1 se modifică la fiecare testare,obţinând astfel o formă de undă dreptunghiulară de perioadă 2Ta şifactor de umplere de 50%.
Din punctul de vedere al programării, contactul C 1 reprezintă ointrare pentru PLC iar bobina CR1 reprezintă o ieşire a controlerului.Se justifică această afirmaţie prin faptul că intrarea C 1 determină
starea bobinei CR1 (alimentată sau nealimentată).Intrările PLC sunt prezente în instrucţiunile condiţionale ale
programului iar ieşirile PLC sunt instrucţiunile care stabilesc stareaieşirilor.
Structurile PLC pot implementa funcţii de memorare şiprelucrare matematică avansată a datelor (funcţii statistice, funcţiitrigonometrice, derivare, integrare, ş.a.).
C1 C1
L1 L2
Fig. 2.15.
-
8/15/2019 2_VL.pdf
22/44
66
Structura hadware a unui PLC
Din punct de vedere hardware, o instalaţie complexă poateconţine mai multe PLC de sine stătătoare sau grupate într-un rack, cu o
singură sursă de alimentare şi cu un bus de comunicaţie între ele şi cuexteriorul, vezi figura 2.16.
Uneori există mai multe rack-uri locale, în apropierea instalaţiei,care comunică cu un sistem centralizat de conducere şi supraveghere.Costul sistemelor PLC fiind în continuă scădere, există tendinţa de aimplementa câte un PLC sau un grup de PLC - uri pentru fiecareelement din sistem (maşină, instalaţie, ş.a.) care să preia funcţiilelocale de supraveghere şi conducere şi să comunice cu sistemulcentralizat prin intermediul unei magistrale de comunicaţie. Se poatevorbi, în această situaţie de sisteme de conducere distribuite pentru că funcţia de conducere nu mai este centralizată (o parte din decizii se iau
la nivel local).Orice controler PLC, indiferent de producător, are următoarele
componente (vezi figura 2.17):- sursă de alimentare cu energie electrică internă sau externă, care
poate fi de c.a. (120 V sau 220 V ) sau de c.c. ( 24 V );- unitate centrală de prelucrare CPU (Central Processing Unit );
Fig. 2.15
Fig. 2.16.
-
8/15/2019 2_VL.pdf
23/44
67
- memorii de tipul RAM şi memorii de tipul ROM (de obicei suntreinscriptibile electric, adică sunt EEPROM), blocul MEMORYdin figură;
- sistemul de preluare a semnalelor din proces INPUT;- sistemul comenzilor către proces OUTPUT;
- o interfaţă pentru programarea PLC, care poate fi integrată însistemul intrărilor;- una sau mai multe interfeţe pentru comunicarea cu alte
echipamente (o magistrală de comunicaţie cu exteriorul), carepoate fi integrată de blocurile I/O.
- un sistem de afişare (display şi LED - uri) a stărilorcontrolerului .
Intrările şi ieşirile sistemului sunt o parte digitale ( DISCRETE şi REGISTER) şi altele (mai puţine) analogice ( ANALOG).Semnalul analogic de la intrare este convertit în semnal numeric prinintermediul unui CAN convertor analog – numeric la ieşirea căruia seobţine o valoare pe 8, 10 sau 12 biţi în funcţie de rezoluţiaconvertorului.O caracteristică importantă a sistemului intrărilor analogice (condiţionată de CAN) este viteza de conversie, exprimată prin timpul
dintre momentul aplicării semnalului analogic şi momentul de timp lacare este disponibil semnalul digital corespunzător valorii analogice dela intrare. Dacă semnalele analogice din proces sunt rapid variabile întimp se impune ca PLC să dispună de un CAN performant, cu timp deconversie mic (spre exemplu de ordinul s µ ).Pentru că traductoarele conectate la intrările analogice au diferitedomenii de variaţie a semnalului se impune prezenţa unui adaptor
Fig. 2.17.
-
8/15/2019 2_VL.pdf
24/44
68
(înainte de CAN) care să modifice domeniul semnalului pentru a ficompatibil cu domeniul acceptat de CAN. Spre exemplu domeniile-10V ,...,+10V ; 0,...,10V ; 0,..., 100mV ; 2,...,10mA; 4,...,20mA trebuieconvertite la domeniul acceptat de CAN, adică la domeniul 0,...,5V .
Semnalele digitale de intrare, provenind de la traductoare, pot aveadiferite nivele de tensiune alocate cifrei zero logic şi cifrei unu logic.
Controlerul lucrează cu o singură reprezentare a semnalelor digitale,motiv pentru care în structura PLC sunt prezente, la fiecare intrareadaptoare de semnal digital. În figura 2.18 este prezentată o schemă aadaptorului pentru reprezentări în c.c. a semnalelor digitale din proces.
În figura 2.19 este prezentată o schemă a adaptorului pentrureprezentări în c.a. a semnalelor digitale din proces.
Fig. 2.18.
Fig. 2.19.
-
8/15/2019 2_VL.pdf
25/44
69
Constatăm că în ambele scheme se foloseşte optocuplarea în scopulseparării semnalelor din proces de controlerul sistemului, pentruprotecţia acestuia.În cadrul schemei din figura 2.18 diodele D1 şi D2 au rolul de limitare
a semnalului de la intrare.Scheme din figura 2.19 primeşte la intrare semnal de c.a. care esteredresat de puntea de diode PD, filtrat de grupul R1, R,C şi limitat cavaloare de dioda Zener D z.
Semnalele digitale de ieşire, sunt furnizate procesului prinintermediul unui adaptor cu funcţia de a converti semnalul digitalfurnizat de CPU în semnal compatibil cu elementul de execuţie care vafi conectat la respectiva ieşire.
Există elemente de execuţie la care PLC le furnizează un curent,
ceea ce înseamnă că elementul de execuţie se conectează între bornade ieşire a PLC şi masă (sourcing output ).
Există elemente de execuţie care dispun de o sursă proprie dealimentare şi se vor conecta între borna de ieşire a PLC şi sursa proprie(sinking output ).
Elementele numerice de execuţie lucrează unele cu semnale deintrare de c.c. iar altele cu semnale de intrare de c.a. [15]
Spre exemplu în figura 2.20 este prezentată o ieşire a PLC carefurnizează semnale digitale de c.c. echipamentului conectat la
respectiva ieşire.
În figura 2.21 este prezentat adaptorul pentru o ieşire cu semnaldigital în curent alternativ.
Fig. 2.20.
-
8/15/2019 2_VL.pdf
26/44
70
Semnalele analogice de comandă (de la ieşirile PLC) se obţinprin convertirea semnalului digital într-un semnal analogic cu ajutorulunui circuit electronic CNA numit convertor numeric – analogic.
2.3. Elemente de programare a PLC
Elaborarea programului de funcţionare al unui PLC se face prinintermediul unor instrucţiuni de programare specifice fiecăruiproducător de echipamente sau prin intermediul unor limbaje de
programare a PLC impuse de standardul IEC 1131 ( International Electrotechnical Commision).În continuare vor fi prezentate principalele elemente de
programare definite de IEC 1131, care standard datorită diferitelorrevizuiri este cunoscut şi sub numele IEC 61131.Standardul nu se referă numai la programarea PLC, fiind un manual dedefinire a sistemelor cu logică programabilă. Se compune din maimulte secţiuni, şi anume:
- informaţii generale (1);
- echipamente şi testarea acestora (2);- limbaje de programare, conţine o descriere a instrucţiunilor şi
informaţii privind standardele de programare (3);- indicaţii pentru utilizarea sistemelor PLC (4);- tehnici de comunicare (5);- control prin logică fuzzy (6).
Fig. 2.21.
-
8/15/2019 2_VL.pdf
27/44
71
În cadrul celei de a treia secţiuni sunt definite diferite modele (limbaje)de programare, şi anume:
LD ( Ladder Diagram) – limbaj grafic, pe baza schemelor(diagramelor) cu contacte;
FBD (Function Block Diagram) – limbaj grafic, pe baza
schemelor bloc (scheme logice);IL ( Instruction List ) – limbaj text, pe baza listelor demnemonici;
ST (Structured Text ) – limbaj text pe baza unui set deinstrucţiuni, similare celor din limbajul BASIC clasic de programare;
SFC (Sequential Function Charts) – este o metodă grafică,specificând fluxul de date prin blocuri funcţionale, in care se înscriuinstrucţiuni ale unui alt limbaj de programare. [17,27]
Tabelul 3.
Numele Tipul Numărul biţilor Domeniul
BOOL boolean 1 0 to 1SINT short integer 8 -128 la 127INT întreg 16 -32768 la 32767DINT double integer 32 -2.1e-9 la 2.1e9LINT long integer 64 -9.2e19 la 9.2e19USINT unsigned short
integer8 0 la 255
UINT unsigned integer 16 0 la 65536UDINT unsigned double
integer32 0 la 4.3e9
ULINT unsigned longinteger
64 0 la 1.8e20
REAL nr. real 32 -LREAL long reals 64 -TIME durată nespecificat -DATE dată nespecificat -TIME_OF_DAY, TOD timp nespecificat -DATE_AND_TIME, DT dată şi timp nespecificat -STRING şir variabil
-BYTE 8 bits 8 -WORD 16 bits 16 -DWORD 32 bits 32 -LWORD 64 bits 64 -
-
8/15/2019 2_VL.pdf
28/44
72
În cadrul tabelului 3 sunt prezentate tipurile de date acceptate de PLCcare pot fi folosite în cadrul programelor.
Înainte de a prezenta elementele principale ale celor cincilimbaje de programare se impun câteva consideraţii privind abordareaprogramării controlerelor.
Secvenţialitatea execuţiei instrucţiunilor conduce la foarte multestări succesive ale automatului şi o proiectare necorespunzătoaredetermină stări nedorite ale sistemului, ceea ce conduce la un efortconsiderabil pentru depanarea programelor. O proiectarenecorespunzătoare împarte bugetul de timp necesar implementăriiastfel : 10% stabilirea temei, 10% concepţie, 30% scrierea programului(softul), 40% testare şi depanare, 10% elaborarea documentaţiei.
O programare structurată determină un sistem fiabil, care poatefi cu uşurinţă completat (upgrade) şi care, de altfel, scurtează şi timpulnecesar implementării. Se afirmă [10]că o creştere la 30% a timpului
alocat concepţiei (structurării) va micşora timpul alocat scrieriiprogramului la 10% şi va scădea timpul necesar depanării la 10% (iată o economie de 30%, adică o scădere a timpului necesar implementăriiautomatului).
În figura 2.21 este prezentat modul orientativ de structurare şiindicaţii privind limbajul care ar trebui adoptat pentru sistemelesecvenţiale.
Limbajul IL ( Instruction List), poate fi considerat similarlimbajului de asamblare folosit de microprocesoare. Sunt puţine tipuri
Fig. 2.21.
-
8/15/2019 2_VL.pdf
29/44
73
de controlere care mai pot fi programate prin intermediul listelor deinstrucţiuni (limbajul IL) şi tendinţa este de a nu mai fi utilizat. Cauzaprincipală este faptul că celelalte limbaje sunt mai uşor deimplementat.
Limbajul ST(Structured Text) de text structurat este similarlimbajelor de nivel înalt C şi Visual Basic.
Există un program principal (între PROGRAM şi END_PROGRAM ) care apelează funcţii sau subrutine.În primele linii se declară tipul variabilelor într-un bloc (care se
încheie la END_VAR). Blocul începe cu una din combinaţiilespecificate în tabelul 4.
Tabelul 4.
Declaratia DescriereVAR Începutul blocului de declarare a
variabilelor (în general)END_VAR Sfârşitul blocului de declarare a
variabilelorVAR_INPUT Declararea variabilelor ce se vor transfera
unei funcţiiVAR_OUTPUT Declararea variabilelor ce se vor transfera
dintr-o funcţieVAR_IN_OUT Declararea variabilelor ce se vor transfera
între funcţie şi program apelant, atât ca
intrare cât şi ca ieşireVAR_EXTERNAL Variabile externeVAR_GLOBAL Variabile globaleVAR_ACCESS Variabile de acces
VAR_INPUT , VAR_OUTPUT şi VAR_IN_OUT declară variabile carevor fi argumente ale unor funcţii – prin intermediul respectivelorvariabile se transferă date între program şi funcţiile pe care le apelează.
Exemple de declaraţii pentru variabile:VAR A, B, C : INT ; END_VARVAR A : STRING[10] ; END_VARVAR A : STRING[10] := ‘mama’; END_VARVAR A : BOOL; END_VARVAR CONSTANT A : REAL := 6.12345 ; END_VARVAR RETAIN A : ARRAY[1..5,1..6] OF INT; END_VAR
-
8/15/2019 2_VL.pdf
30/44
74
În tabelul 5 sunt precizate cuvintele cheie asociate variabilelor,
prin intermediul cărora se fac precizări asupra proprietăţilor acestora.
Tabelul 5.
Declaratia DescriereRETAIN Variabila î şi menţine valoarea şi după întreruperea
alimentării PLCCONSTANT Valoare constantă ce nu poate fi modificată AT Specifică locaţia de memorie ce se alocă vatiabileiOF Pecizează tipul variabilei (INT, BOOL,...)
Funcţiile sunt încadrate de cuvintele cheie
FUNCTION nume_func ţ ie şi END_FUNCTION .
În tabelul 6 sunt prezentaţi operatorii aritmetici şi operatorii logici, începând cu cel mai prioritar.
Tabelul 6.
Operatoriaritmetici şi logici
Descriere
> Mai mare>= Mai mare şi egal= Egal
-
8/15/2019 2_VL.pdf
31/44
75
Tabelul 7.
Instrucţiunile DescriereIF-THEN-ELSIF-ELSE-END_IF;
IF
CASE-valoare:-ELSE-END_CASE; CASE
FOR-TO-BY-DO-END_FOR;
FOR
WHILE-DO-END_WHILE;
WHILE
Exemplu pentru IF:
Dacă bitul 02 al intrării I:000 (I:000/02) este OFF bitul 1 alieşirii O:001 (O:001/01) se setează ON, iar dacă 02 al intrării I:000 ON
nu modifică nimic.
IF (I:000/02 = 0) THENO:001/01 := 1;
END_IF;
Exemplu pentru IF complet:IF (I:000/00 = 1) THEN
O:001/00 := 1;ELSIF (I:000/01 = 1 AND T4:0/DN = 1) THEN
O:001/00 := 1;ELSE
O:001/01 := 1;END_IF;
Exemplu pentru CASE:
În funcţie de valoarea variabilei N7:0 unul sau mai mulţi biţi aiportului de ieşire O:000 se modifică. Se setează ON unul din biţii
00,...,03 iar dacă N7:0 este mai mare ca 3 se setează toţi biţii 04,...,07 în OFF.CASE N7:0 OF0:O:000/00 := 1;1:O:000/01 := 1;2:
-
8/15/2019 2_VL.pdf
32/44
76
O:000/02 := 1;3:O:000/03 := 1;ELSEO:000 := 0;
END_CASE;
Exemplu de buclă FOR:
Pentru domeniul 0,...,4 al variabilei N7:0 se adună la variabilaF8:10 valorile F8:[ 0],..., F8:[4].
F8:10 := 0;FOR (N7:0 := 0 TO 4) DO
F8:10 := F8:10 + F8:[N7:0];END_FOR;
Alt mod de a realiza o buclă.N7:0 := 0;
REPEATN7:0 := N7:0 + 1;
UNTIL N7:0 >= 10END_REPEAT;
Exemplu de buclă WHILE:
Vezi exemplul pentru FOR.
F8:10 := 0;N7:0 := 1;WHILE (N7:0 < 5) DO
F8:10 := F8:10 + F8:[N7:0];N7:0 := N7:0 + 1;
END_WHILE;
Exemplu de program principal:
PROGRAM MAINVAR
I: INT;END_VAR
-
8/15/2019 2_VL.pdf
33/44
77
I:= 0;REPEAT
I:=I+1;UNTIL I>= 10;
END_REPEAT
END_PROGRAMExemplu de funcţie pentru un bistabil RS:
FUNCTION_BLOCK SR(*Bistabilul RS*)
VAR_INPUTS: BOOL;R: BOOL;
END_VAR
VAR_OUTPUTQ: BOOL;
END_VARIF S OR R THEN
Q: = S;ELSE
(*nu se modifica starea ieşirii*)END_IF
END_FUNCTION_BLOCK
Instrucţiuni speciale:
IIN(); Se face reîmprospătarea valorii de intrare imediat(immediate input update);
EMPTY Variabilă neiniţializată.
Limbajul ST are implementate principalele funcţii matematice, spreexemplu:
ABS(A) – valoarea absolută;SQR(A) – radicalul de ordin doi;LN(A) – logaritmul natural;LOG(A) – logaritmul în baza zece;EXP(A) – exponenţiala;SIN(A), COS(A), TAN(A) – funcţii trigonometrice directe;ASN(A), ACS(A), ATN(A) – funcţii trigonometrice inverse;XPY(A,B) sau A**B – ridicarea la putere;
-
8/15/2019 2_VL.pdf
34/44
78
MAX(A,B) – furnizează valoarea maximă a celor două;
Pe lângă funcţiile matematice standardul IEC1131implementează o serie de funcţii pentru şiruri de caractere:
CONCAT(A,B,...) – concatenarea şirurilor (de caractere);DELETE(IN:=A, L:=n, P:=m) – şterge n caractere din şirul A
începând cu poziţia m;FIND( IN1:=A, IN2:=B) – caută şirul B în şirul A şi furnizează
poziţia unde începe şirul B în cadrul şirului A;INSERT( IN1:=A, IN2:=B, P:=C) înserează şirul B în şirul A
începând cu poziţia C;LEN(A) – furnizează lungimea şirului A;LEFT(IN:=A, L:=n) – furnizează n caractere din cadrul şirului
A, începând din partea stângă a şirului;
O altă serie de funcţii rezolvă problema setărilor sistemelor dincadrul PLC, spre exemplu setarea numărătoarelor se face cu funcţiile:CTD, CTU, CTUD.
Astfel :CTD(CD:=A, LD:=B, PV:=C) – setează nu numărător care î şi
scade valoarea registrului A (care iniţial este setat la valoarea B prinfuncţia LD - load preset ) cât timp A= C;
TON (IN:=A, PT:=B) - setează în ON un circuit detemporizare;
TOF (IN:=A, PT:=B) - setează în OFF un circuit detemporizare;
RS(A,B) - stabileşte intrările A şi B pentru un bistabil de tipulRS;
Sistemul are funcţii pentru manipularea biţilor din cadrul unuicuvânt, spre exemplu:
SHL(IN:=A, N:=m) - deplasează către stânga m biţi din A;SHR(IN:=A, N:=m) - deplasează către dreapta m biţi din A;ROR(IN:=A, N:=m) - roteşte către dreapta m biţi din A ;ROL(IN:=A, N:=m) - roteşte către stânga m biţi din A ;
-
8/15/2019 2_VL.pdf
35/44
79
De remarcat faptul că limbajul ST permite apelarea de subprogramescrise în alte limbaje.
Limbajul SFC (Sequential Function Charts) , spre deosebire
de celelalte limbaje, permite ca mai multe procese să fie active înacelaşi moment de timp. De fapt programele se activează concurenţial în sensul că se străduie să acapareze resursele sistemului, mai exact să preia din timpul de lucru al controlerului.Limbajul mai este cunoscut sub numele Grafcet sau IEC 848.Principalele elemente ale grafurilor SFC sunt prezentate în figurile2.22,...,2.27.
Prin intermediul liniilor se indică trecerea de la un pas la altul,adică tranziţia automatului dintr-o stare în alta.
Simbolul din figura 2.22 specifică o instrucţiune condiţională (de tipul IF sau WAIT) indicând faptul că se va trece la pasul următorcând condiţia este îndeplinită.Prin intermediul blocurilor (a dreptunghiurilor) se indică stareacircuitului. Spre exemplu simbolul din figura 2.23 indică prima stare acircuitului.
De regulă o stare ( un pas al circuitului) are asociată o acţiune,vezi figura 2.24.
Fig. 2.22. Fig. 2.23.
Stare (pas) Acţiune
Fig. 2.24.
-
8/15/2019 2_VL.pdf
36/44
80
Un macropas conţine un număr de instrucţiuni, cu simbolul în figura2.25. De regulă blocul este asociat subrutinelor şi funcţiilor.
În figura 2.26 este prezentat simbolul pentru selecţia unei căi.Programul va urma numai una din cele două căi.
Fig. 2.25.
Fig. 2.26.
Fig. 2.27.
-
8/15/2019 2_VL.pdf
37/44
81
În figura 2.27 este prezentat blocul care semnifică două ramurisimultane ( este vorba de un circuit ŞI).
În figura 2.28 este prezentat un exemplu de aplicare a metodei SFCpentru un sistem care are drept scop deblocarea (descuierea) a două uşi. Prima uşă se deschide dacă sunt introduşi corect 3 digiţi, iar a douase deschide dacă sunt introduşi corect 2 digiţi. Daca unul din digiţi este
incorect uşa rămâne blocată (se dă o nouă comandă de închidere, cutoate că uşa este deja blocată).
Limbajul FBD ( Function Block Diagram)
Principiul pe baza căruia a fost implementat limbajul FBDconstă în transferul datelor de la intrări către ieşiri prin intermediul
Fig. 2.28.
-
8/15/2019 2_VL.pdf
38/44
82
blocurilor funcţionale. De fapt limbajul forţează programatorul să evidenţieze transferul datelor prin sistem.Spre exemplu în figura 2.29 ieşirea O:000/01 este activă dacă laintrarea A avem o valoare mai mică decât la intrarea B (B=N7:2), undeintrarea A este determinată de variabilele N7:0 şi N7:1prin relaţia
)1:7(*)0:7sin( N la N A =.
Blocurile funcţionale ale limbajului FBD au un corespondent îninstrucţiuni scrise în limbajul ST(Structured Text ). Spre exemplublocul din figura 2.30 este implementat în ST cu instrucţiunea
):,:,:(: C MX B IN A MN LIM O ==== .
Există blocuri funcţionale definite (bistabili, timere, ş.a.), în cadrulunor biblioteci, dar pot fi definite noi blocuri funcţionale. După definirea blocului funcţional acesta poate căpăta oricâte instanţieri încadrul sistemului (folosind numele asociat blocului).Blocul divide din figura 2.31 permite implementarea funcţiei de
împărţire a două valori bac / = .În prealabil se face o verificare pentru eliminarea erorii de împărţire lao valoare nulă, caz în care ieşirea se aduce la zero.
Fig. 2.29.
Fig. 2.30.
-
8/15/2019 2_VL.pdf
39/44
83
Blocul funcţional este de fapt o unitate care conţine un set deinstrucţiuni care efectuează diferite prelucrări ale variabilelor deintrare pentru a genera valori ale variabilei de ieşire. De notat că se potfolosi, în cadrul prelucrării li variabile interne.Instrucţiunile (programul) cu care se implementează blocul funcţional
divide sunt:
FUNCTION_BLOCK divideVAR_INPUT
a: INT;b: INT;
END_VARVAR_OUTPUT
c: INT;END_VAR
IF b 0 THEN
c := a / b;ELSEc := 0;
END_IF;END_FUNCTION_BLOCK
Implementarea blocurilor funcţionale se poate face în oricare dinlimbajele definite de standardul IEC 1131.
Blocurile pot fi prevăzute cu intrări de autorizare EN care dacă sunt inactive blochează funcţionarea circuitului.
Conectarea ieşirii unui bloc la intrarea altuia se face prin unirea,cu o linie, a celor două elemente.
Salturile condiţionate sau necondiţionate se fac spre puncteleetichetate (LABEL a, etc.).
Dacă există mai multe reţele de blocuri fiecărei reţele îi esteasociat un număr şi ordinea execuţiei se face în ordinea crescătoare anumerelor asociate.
Fig. 2.31.
-
8/15/2019 2_VL.pdf
40/44
84
Sistemul permite implementarea subrutinelor din care revenirea poarefi condiţionată sau necondiţionată, vezi figura 2.32 [11].
În figura 2.33 [11] sunt prezentate modalităţile de ciclare.
Există blocuri pentru conversia valorilor din BCD în numere întregi şiinvers, pentru conversia valorilor din numere întregi în numere reale,pentru rotunjire sau pentru trunchere.
Fig. 2.32.
Fig. 2.33.
-
8/15/2019 2_VL.pdf
41/44
85
Limbajul LD ( Ladder Diagram)
Într-o traducere aproximativă LD reprezintă diagrame în scară.Explicaţia constă în faptul că diagrama are pe laterale alimentarea cuenergie L1 şi L2 (în care L1 este faza – firul cald, iar L2 este masa) între
care se găsesc reţele electrice (rânduri , linii) conectate în paralel.Rândurile au în componenţă temporizatoare, numărătoare, contactenormal închise sau normal deschise - de intrare şi bobine ale unor releesau elemente de execuţie - de ieşire (vezi figurile 2.11, 2.13, 2.14).Execuţia şi actualizarea se face de jos în sus şi pe linie de la stânga ladreapta (un exemplu se află în figura 2.15) – fiecare linie fiindnumerotată pentru ca execuţia să se facă conform numărului de ordine.În cadrul diagramelor pot fi intercalate blocuri funcţionale.
Figura 2.34 prezintă simbolizarea contactului normal deschis (IN001)şi a contactului normal închis (IN002, IN003 )
Elementele de ieşire sunt bobinele (OUT001, OUT002) şi bobinelenegate (OUT003).
Temporizatoarele sunt elemente care modelează funcţionarea releelor detimp şi a contactelor temporizate.Temporizatoarele, a căror reprezentare se află în figura 2.36, permitrealizarea unei acţiuni întârziate cu un anumit interval de timp ce poate fiprogramat.
a) b)
IN001 IN002 IN003
Fig. 2.35.
a) b)
OUT 001 OUT 002 OUT 003
Fig. 2.34.
-
8/15/2019 2_VL.pdf
42/44
86
Iniţializarea porneşte temporizarea. Baza de timp stabileşte
valoarea cu care se incrementează timpul (0,01s; 0,1s sau 1s). Numărulde cuante de timp la care se termină temporizarea este specificat prinprogram.
În figura 2.37 este prezentat un numărător.
Pentru desenarea schemelor cu contacte ( Ladder Diagram) se folosesceditoare puse la dispoziţie, de obicei, de către firmele producătoare de
echipamente PLC.Exemple de editoare J-Ladder [31], DELMIA Automation LL1 [32],ISaGRAF, TRiLOGY [33], ş.a.
Validare
Iniţializare
Ieşire
Nr. temporizator
Baza de timp
Valoareaprestabilită
Fig. 2.36.
Numărare Ieşire
Ieşire negată
Nr. numărător
Valoareprestabilită
Iniţializare
Fig. 2.37.
-
8/15/2019 2_VL.pdf
43/44
87
Tabel din “ Introduction to Programmable Logic Controllers”
Number Description Link/info
1 PLC book http://claymore.engineer.gvsu.edu/~jackh/books/plcs2 PLC website http://www.plcs.net/3 PLC tutorial http://www.plcs.net/chapters/whatis1.htm
4Quick PLCdescription
http://support.automationdirect.com/docs/whatisaplc.html
5 PLC History http://www.softplc.com/history.php6 Online Encyclopedia http://en.wikipedia.org/wiki/Programmable_logic_controller7 PLC online Forum http://www.plctalk.net/qanda/8 Course example http://claymore.engineer.gvsu.edu/~jackh/eod/egr450.html9 Course example http://www.pueblocc.edu/tec/auto_023.htm10 Course example http://www.cede.psu.edu/StudentGuide/EET220.htm
11 Course examplehttp://www.tech.mtu.edu/courses/eet3370/EET3370%20Class%20Schedule%202.htm
12 Course example http://www.utexas.edu/cee/petex/training/courses/iplc.html13
PLC simulationsoftware
http://www.tri-plc.com/trilogi.htm
14PLC simulationsoftware
http://www.ab.com/plclogic/pico/picosoft.html
15 Mitsubishi http://www.meau.com/eprise/main/sites/public/PRODUCTS/default16 Toshiba http://www.tic.toshiba.com/productgroups.php?family=PLCs17 Siemens https://pia.khe.siemens.com/index.asp?Nr=214018 Sprecher & Schuh http://www.ssusa.cc/pages/mainpg/prodmainall.html19 Allen Bradley http://www.ab.com/plclogic/
20 PLC bookProgrammable Logic Controllers An Introduction Third Edition W.Bolton 2003 Newnes Publications
21PLC application
websitehttp://www.fbk.com/control-instrumentation/plctran.asp?menu=3
22Verification of PLCApplications
http://wwwhome.cs.utwente.nl/~mader/DEMOS/IPA2001.ppt
23 PLC Applications http://www.entertron.com/application.htm24 PLC help thread http://www.plctalk.net/qanda/showthread.php?s=&threadid=1223525 PLC Tutorial site http://www.freestudy.co.uk/plc.htm
26 PLC Tutorial sitehttp://www.mikroelektronika.co.yu/english/product/books/PLCbook /plcbook.htm
27 PLC info and tutorial http://www.mrplc.com/kb/28 Modicon http://www.modicon.com/Default.htm29 PLC history http://www.barn.org/FILES/historyofplc.html30 PLC primer http://www.industrialtext.com/freestuff.htm
31 PLC information
http://www.control.com/links_page#PLCs%20and%20related%20q
uestions.32 PLC example http://www.htservices.com/Tutorials/plc_tutorial_2.htm
33 Siemens PLC primerhttp://www.sea.siemens.com/step/templates/lesson.mason?plcs:1:2:1
34 AB Pico Solutions http://www.ab.com/plclogic/pico/picosolutions.html
35Applicationsexamples
http://public.modicon.com/nRepository/index.nsf/aa_getdocs?OpenAgent&prod=nanocus
36 TSX PLC manualhttp://www.modicon.com/nRepository/index.nsf/aa_getdocs?OpenAgent&prod=nanopro#
37 BORS oil application http://www.modicon.com/85256AE8006D78AB/all/AFB0118DEA9
-
8/15/2019 2_VL.pdf
44/44
9C0AC85256BFA004F60F3!OpenDocument
38 PLC overviewhttp://www.mavrinac.com/technical/howto_plc_programming_for_beginners.txt
39 PLC intro http://www.canadu.com/hjhtml/plcs1-4.html40 RTU vs PLC http://www.tetragenics.com/Articles/RTUvsPLC.htm41 Ladder Logic Ideas http://xtronics.com/toshiba/Ladder_logic.htm42 Ladder Logic editor http://home.scarlet.be/~dc11cd/dciplc.html
43Ladder Logicexamples http://www.ibiblio.org/obp/electricCircuits/Digital/DIGI_6.html
44 PLC tutorial site http://www.plcman.co.uk/45 Intro to IEC 61131 http://www.plcopen.org/TC1/intro_iec_61131-8.htm46 IEC 61131-3 FAQ http://www.holobloc.com/stds/iec/sc65bwg7tf3/html/faq.htm
47Thread on PLC Scantime
http://www.plctalk.net/qanda/showthread.php?t=8220&highlight=scan+cycle+time
48Seamans on scantime
http://www.sea.siemens.com/step/templates/lesson.mason?plcs:71:1
49 PLC operation www.crakker.com/PLC_Primer.PDF
50 Info on Grafcethttp://www.lurpa.ens-cachan.fr/grafcet/generalites/presentation_uk.html
51 PLC failure info http://www.processwest.ca/Past_Issues.htm?ID=354
52 Programmable LogicControllers ThirdEdition
W. Bolton Linacre House, Jordan Hill Oxford 2003
53picture of industrialmixer
http://www.monoequip.com/images/Equipment/ind_cake_mixer.jpg
54 PicoSoft http://www.ab.com/plclogic/pico/PicoSoftWeb6L.exe
55
GX-Developer
http://www.meau.com/eprise/main/sites/public/DOWNLOADS/-search_results?SType=0&DocType=035&SessionNum=&UserID=&Division=00015&Opt1=Yes&submit1=Search&Family=0001520010&Series=000152001020030
56 picture of relay timer http://web.mit.edu/cjoye/www/ebay/RelayTimer/
57picture of relaycounter
http://www.icc-gb.com/lc4h.html
58 picture of box PLC http://www.controltech.cz/images/clanky/image30.jpg59 picture of optoisolator http://searchnetworking.techtarget.com/WhatIs/images/optoisol.gif60 plc shipment article http://www.drives.co.uk/news/worldnews/news_worldnews352.htm
61 Honeywell contactor
http://customer.honeywell.com/Honeywell/CatalogNavigator.aspx?Definition=Product&Catalog=Homes&Category=DP2030_10180&Product=DP2030B5011&ChannelID={2EB2F178-20ED-44E0-97FB-CCFB4218DD64}#LiteratureDownload
62Price on startrelay/mounting $20
http://www.mstores.umich.edu/catalog/grainger/electrical/relays/reay_sockets/2A584.html
63Price on timed relay-$48-$70
http://www.mstores.umich.edu/catalog/grainger/electrical/relays/time_delay_relays/5YZ86.html
643 phase powerconverter example
http://www.metalwebnews.com/howto/phase-converter/phase-converter.html
65 ladder logic manual http://www.iu.hio.no/~georgm/pls/doc/s7kop__b.pdf66
3 phase converterdata sheet
http://www.phase-a-matic.com/PDF/RPL-2005-C.pdf
67 PLC presentation http://www.kwandong.ac.kr/~sylee/cadcam_s/chap5Plc.ppt