Sunteți pe pagina 1din 44

 


REPREZENTAREA CU RELEE
A VARIABILELOR LOGICE

2.1.  Relee

Releul  electromagnetic este format dintr-un solenoid (vezi


figura 2.1) care, atunci când este alimentat cu tensiune, acţionează cu o
forţă  asupra unei armături mobile schimbând starea contactelor
(contactele normal închise se deschid iar cele normal deschise se
 închid).[22,1,18]

Fig. 2.1.

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 cu
altul.
Tensiunea de alimentare a bobinei releului este de valoare mică 
(nepericuloasă pentru om) 5 V , 12 V  sau 24 V .

  45
 

Butoanele  sunt acţionate manual (spre deosebire de relee),


starea complementară  celei normale menţinându-se cât timp butonul
este 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 pot
comuta curenţi de valori mai mari sau mai mici în func ţie de
construcţia acestora. Spre exemplu contactele unui releu suportă 
curenţi de ordinul a 20 mA,  iar contactele altui releu pot comuta
curenţi de până  la 5  A. Există  relele care au contacte pentru curen ţi
mici şi contacte („de forţă”) pentru curenţi de valori mari.
De fapt, aparatul care are rolul de a comuta, prin închiderea şi
deschiderea circuitului pe baza unei comenzi (de natur ă  electrică),
curenţi de valori mari se numeşte contactor (care poate fi
electromagnetic sau static).
În aceeaşi ordine de idei aparatul care închide şi deschide
circuite electrice care nu sunt parcurse de curent se nume şte
separator. El are rolul de a specifica faptul c ă  circuitul este sub
tensiune sau nu.
De regulă, un circuit electric care suferă  dese intervenţii (spre
exemplu pentru a fi recondiţionat) se cuplează la sursa de energie prin
intermediul unui separator urmat de un contactor. Pornirea – oprirea
maşinii (circuitului) se face cu contactorul. În caz de interven ţii la
instalaţ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 şi
separator este prezenţa camerei de stingere a arcului electric la
contactor. La deconectarea curenţilor mari între ploturi (elementele
contactorului prin care circulă curentul) apare un arc electric, care nu
trebuie să se extindă în afară - se întrerupe în interiorul camerei.

Fig. 2.2.
  46
 

 
Î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 se
face prin închiderea comutatorului din circuitul bobinei releului, iar în
cazul releului electronic (cu optotriac din figura 2.3) comanda se face
prin acţionarea întrerupătorului din circuitul de alimentare al LED-
ului. [22]

Fig. 2.3.

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 fi
realizate orice funcţii logice, în figurile 2.4,...,2.6 fiind prezentate
câteva implementări.
În figura 2.4 avem un circuit SAU   realizat cu releele CRA  şi
CRB, a căror contacte sunt notate respectiv  A  şi  B. Circuitul SAU   are
rolul 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şirea
circuitului logic.
Se constată  că  becul luminează  dacă  oricare din contacte este
 închis (sau amândouă) fiind conectat la sursa de alimentare. Se stinge
dacă  ambele contacte sunt deschise, adică  nici un releu nu este sub
tensiune (a se înţelege – bobină a releului).

  47
 

Fig. 2.4.

În figura 2.5 este prezentat circuitul  Ş  I   cu două  intrări. Becul


luminează (este în starea „1” logic) dacă ambele contacte  A  şi  B sunt
 închise, realizând astfel conectarea becului la liniile de alimentare cu
energie electrică. [23]

Fig. 2.5.

Pentru a realiza o nega ţie (un circuit  NU   ) se foloseşte un


contact normal închis al releului, ca în figura 2.6.

  48
 

Fig. 2.6.

Becul este aprins numai dacă  releul nu este alimentat cu


tensiune, contactul A rămânând în starea normală (închis).
Pe lângă releele “normale”, prezentate mai sus, exist ă o clasă de
relee care îndeplinesc funcţii  de protec ţ ie specifice şi o altă clasă care
acţ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 unei
mărimi supravegheate, un detector de valoare impus ă (pentru mărimea
urmărită) şi un releu normal.
În condiţiile în care mărimea monitorizată  iese din domeniul impus
bobina 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-un
circuit depăşeşte valoarea impusă;
-  relee minimale de tensiune, acţionează  dacă  tensiunea
monitorizată scade sub valoarea impusă;
-  relee maximale de tensiune, acţionează  dacă  tensiunea
monitorizată depăşeşte valoarea impusă;
-  relee de temperatură, acţionează  când temperatura incintei
monitorizate scade sub o valoare (în cazul cuptoarelor) sau
creş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ând
bobina releului a fost alimentat ă cu energie;
  49
 

-  cu temporizare la deconectare - contactele releului rămân în


starea în care au fost un interval de timp prestabilit dup ă  ce
bobina releului a fost deconectat ă de la sursa de energie.

În figura 2.7 sunt prezentate contactele a două relee de timp


a) contactul normal deschis se închide la 5 secunde dup ă alimentarea
bobinei,
b) contactul care este închis pe durata aliment ării bobinei, se deschide
la 5 secunde după ce bobina nu mai este alimentată cu energie.

a) b)
Fig. 2.7.

Releele pot fi utilizate în diferite scopuri (semnalizare, protec ţie,


condiţionare, reglare a mărimilor, ş.a.) în continuare fiind prezentate
câ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 în
funcţiune sistemele de protecţie.

Fig. 2.8.

  50
 

Circuitul "watchdog " semnalează oprirea programului rulat, pe


calculatorul 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 a
instrucţ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ă programul
s-a oprit lipseşte tensiunea de alimentare a releului şi contactul releului
se închide semnalizând starea sistemului sau alimentând circuitele de
protecţ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ţa
procesului sau de modul de funcţionare al acestuia.
În figura 2.9 este prezentat circuitul de control al pornirii unui
cuptor.

Fig. 2.9.

Cuptorul porneşte dacă  sunt îndeplinite cele patru condi ţii şi


anume:
-  presiunea gazului de ardere este între limitele admise (contactele
relelor de presiune maximă şi minimă sunt închise, respectiv LM  
şi Lm);
-  ventilatorul care furnizează aerul de amestec este pornit (releul
de debit al aerului Lf  este închis);
  51
 

-  coşul de evacuare a gazelor arse nu este obturat (releul de pe


coşul de ardere Lc este închis).

Releele fiind în serie, alimentarea bobinei releului CR1  se face


numai dacă  toate sunt închise. Contactul normal deschis CR1 se
 închide şi becul verde semnalează  pornirea corectă. Contactul
normal î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 schimbarea


sensului de rotire al unui motor de curent alternativ trifazat.

Fig. 2.10.
Pentru a inversa sensul de rotaţie al unui motor se impune
schimbarea sensului de rotaţie al câmpului magnetic învârtitor produs
de înf ăşurările statorice ale maşinii. După cum se ştie rotaţia câmpului
magnetic se produce în sensul succesiunii fazelor tensiunii de
alimentare a circuitului statoric ( R – S – T) . Pentru a schimba sensul
de rotaţie al rotorului (antrenat în mi şcare de rotaţie de câmpul
magnetic învârtitor) este suficient s ă se schimbe ordinea alimentării cu
tensiune 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

  52
 

( astfel 1-R, 2-S, 3-T) de către contactele releului  M 1  , iar pentru
rotirea în sens invers releul  M 2  conectează  înf ăşurările motorului
astfel 1-R, 3-S, 2-T (faza 2 a fost inversată cu faza 3).

Schema de comandă este prezentată în figura 2.11.

Fig. 2.11.

Constatăm că  fiecare bobină  de releu are, în serie, un contact


normal închis al celuilalt releu ( M 2a cu M 1 şi M 1a  cu M 2 ). Contactul
serie  se numeşte  contact de interblocare  şi are rolul de a nu permite
alimentarea cu tensiune a celuilalt releu (când unul dintre ele este sub
tensiune). Previne astfel manevrele gre şite de conectare inversă  a
alimentă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 ă  se
facă 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 de
rotaţie şi câmpul magnetic învârtitor alt sens, cresc solicitările
mecanice, creşte valoarea curentului prin înf ăşurări şi creşte
temperatura înf ăşurării.
Contactele M1b, M2b, aflate, în paralel, cu butoanele de sens se
numesc contacte de automen ţ inere.
Butoanele de sens conectează alimentarea pe bobina releului, cât timp
sunt apăsate, după  care circuitul se deschide şi bobina releului este
  53
 

scoasă  de sub tensiune (iar acesta modific ă  contactele la starea


normal ă  şi motorul, dacă a pornit se opreşte). În schimb, dacă  există 
contact de automenţinere, la apăsarea butonului se alimentează bobina
releului şi aceasta închide contactul de automenţinere. După ce butonul
nu 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 întrerupe
alimentarea cu tensiune a releelor, ceea ce conduce la t ăierea
alimentării motorului şi la oprirea acestuia.
Pentru oprirea motorului se apas ă butonul „stop” care scoate de
sub tensiune ambele relee.

2.2.  Despre PLC

Controlerul PLC  (Programmable Logic Controller ) este un


sistem, care a apărut iniţial din necesitatea de a înlocui func ţia logică 
realizată  cu releele electromagnetice cu un ansamblu de contactoare
statice comandate de un program memorat capabil s ă  efectueze
conexiunile (care erau realizate de releele electromagnetice).
Necesitatea se referă la creşterea fiabilităţii, la centralizarea sistemului
de 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, a
instalaţiilor industriale. [24]
Între timp controlerele PLC au fost dotate cu noi func ţii, pe lângă cele
destinate controlului funcţionării instalaţiilor industriale, dintre care
cea mai importantă este func ţ ia de reglare.
Reglarea se referă  la posibilitatea sistemului de a elabora
comenzi prin intermediul cărora un proces să  î şi menţină  starea de
funcţionare impusă, indiferent de perturbaţiile care acţionează (pentru
a 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 de
reglare după  abatere prin  algoritmi PID  [25,18,19]. În literatura de
specialitate se afirmă că  numai 10% din buclele de reglare nu sunt
  54
 

realizate cu regulatoare de tipul PID, ceea ce înseamn ă  că  sistemele


PLC dotate cu funcţia de reglare PID acoperă 90% din necesităţile de
reglare ale industriei.

Comenzile sunt elaborate pe baza măsurării unor variabile ale


procesului, ceea ce înseamnă  că  sistemul este prevăzut cu intră ri 
 analogice  şi cu intră ri numerice  (de la 4 la 40 intr ări, în funcţie de
preţ).
În cele mai multe cazuri intr ările analogice acceptă semnal de
intrare 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 o
termorezistenţă 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 ă  adapteze
valorile semnalului furnizat de traductor la domeniile standardizate,
acceptate de controler.
Spre exemplu, un termocuplu furnizează tensiuni de ordinul mV care
vor fi amplificate de adaptor, pentru a se încadra într-unul din
domeniile tensiunilor de intrare standardizate ( de regul ă în domeniul
0,.., 5 V )
Intrările pot fi stări contact sau nivele de tensiune de diferite
valori 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, controlerele
actuale au pe lângă  intrări de tip contact (de releu) atât intrări cât şi
ieşiri analogice. O parte din intr ările analogice sunt folosite pentru a
prelua semnale de la traductoare în scopul controlului şi protecţiei
instalaţiei şi o mică parte pentru a implementa func ţia de reglare a unor
parametri (spre exemplu debit, temperatur ă, nivel ş.a.).
De remarcat faptul că  tipul intrării şi domeniul valorilor
semnalului de intrare pot fi stabilite prin program, la ini ţializarea
controlerului.

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 cazul
sistemelor ieftine este fixat la un domeniu ( spre exemplu 0,.., 5 V ), de
către producătorul echipamentului.
  55
 

Ieşirile pot fi stări contact sau nivele de tensiune de diferite


valori (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ţionarea
unui 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, dispozitive
mecanice ş.a.
Pentru prelucrarea numerică  (de către microprocesorul
controlerului) a mărimilor analogice, după  adaptarea domeniului
semnalul de intrare (în sensul c ă semnalul de la intrarea analogic ă este
convertit – amplificat sau atenuat – într-un semnal care s ă se încadreze
 în domeniul intr ării convertorului analog – numeric CAN) acesta este
transformat într-un semnal numeric de c ătre CAN.

Pe lângă  intrările şi ieşirile accesibile din exterior (conectate la


procesul industrial) controlerul are implementate:
  relee interne, care sunt folosite pentru efectuarea unor opera ţii

logice (releele interne se întâlnesc uneori sub numele de


markeri, flaguri);
  relee de timp, care permit iniţierea unor activităţi la momente de

timp 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 a


ajuns 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 în


caz de defect al sistemului, în caz de nefuncţionare a unui
traductor ş.a.).

O altă funcţie este  func ţ ia de comunicare a controlerului PLC


cu alte echipamente (spre exemplu cu un microprocesor, cu un
calculator, cu un sistem de conducere centralizată, ş.a.).
Fiecare producător de echipamente PLC oferă  un protocol de
comunicare, prin intermediul căruia două  (sau mai multe) PLC se
 înţeleg şi pot schimba date între ele. Necazul este că rareori două PLC

  56
 

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 o
specificaţ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 alte
echipamente.

Comunicarea se poate face prin interfe ţe standardizate (spre


exemplu Ethernet, RS232, RS485), care permit integrarea PLC într-o
reţea industrială sau chiar poate fi conectat la re ţeaua Internet. Uneori
comunicarea poate fi wireless pe baza standardului IEEE 802.3.
Notă: Termenul de interfa ţă standardizată se referă la o specificaţie
care precizează  atât la mediul fizic (modul de legare între ele a
echipamentelor, spre exemplu prin 3 fire, prin 8 conductori ş.a.),
nivelele semnalelor, viteza de transfer cât şi protocolul de comunicaţie
dintre echipamente (care transmite primul, cum r ăspunde celălalt şi în
ce ordine se transmit datele, câte date, ce semnifica ţie au semnalele
vehiculate 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 un
port serial. Dezavantajele interfeţei RS232 se referă  la viteza de
transfer 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 în
U.S.A. iar în Europa sunt folosite  Profibus  (cu posibilitatea de
transmisie până la 1,2 km, rată de transfer de 9,6,.., 500 kbps, pentru
maximum 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 maximum
32 staţii) , FIP Bus, ş.a. [5]

  57
 

 Func ţ ia de diagnoză  a controler-ului se referă  la capacitatea


acestuia de a-şi testa corecta funcţionalitate, de a elabora rapoarte la
intervale de timp impuse, de a genera semnale de alarmare sau
atenţionare la sesizarea unei anomalii.
Funcţia de diagnoză  poate fi implementată  prin program şi
extinsă pentru testarea funcţionării corecte a echipamentelor conectate
la intrările şi la ieşirile sistemului. Pe lângă  testarea hardware-ului
sistemului, sistemele evoluate au posibilitatea de a verifica
funcţionarea corectă  a ansamblului de programe (soft-ul sistemului)
prin rularea controlată a unor  programe de autotestare, în sensul că se
generează 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ării
erorilor.
Spre exemplu, datorită  temperaturii mediului ambiant, parametrii
adaptorului se modifică (f ără voia noastră). În aceste condi ţii semnalul
numeric, corespunzător mărimii măsurate va fi mai mic sau mai mare
decât cel real. Controlerul generează la intrare un semnal care conduce
la o valoare numerică  cunoscută. Dacă  se obţine altă  valoare,
controlerul modifică  factorul de amplificare al adaptorului pentru a
obţine valoarea numerică  corectă. Această  caracteristică  a sistemului
de a-şi modifica parametrii de func ţionare sau structura internă  în
scopul micşorării efectului perturbaţiilor se numeşte adaptabilitate. 

Elaborarea programului  pentru controler se face pe un


calculator 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, se
face prin intermediul unui conector, cu care este prev ăzut sistemul
PLC ( de regulă interfaţa asigură un transfer serial al datelor, fiind de
tipul RS232  sau USB -  Universal Serial Bus  ). Prin intermediul
conectorului elementul de programare (un laptop, un calculator sau un
circuit specializat de programare) are acces la o magistrală.
  58
 

 
Limbajele folosite de controlere nu au fost încă standardizate,
fiecare producător folosind alte instruc ţiuni, care de fapt au acelaşi
scop – de implementare, prin intermediul controlerului, a unor func ţii
logice.
Controlerele mai performante acceptă  instrucţiuni în limbaje
evoluate, spre exemplu în limbajul C.
Sunt speranţe de unificare a limbajelor de programare a PLC
prin intermediul standardului IEC 1131  elaborat de Comisia
Internaţională  de Electrotehnică  IEC (  International Electrotechnical
Commision) – vezi paragraful următor. De fapt producătorii de
echipamente PLC nu au renunţat în totalitate la sistemul propriu de
programare, ci au introdus suplimentar posibilitatea program ării pe
baza specificaţiilor standardului menţionat. Această  facilitate este
indicată 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 (pentru
ca să  se evite reprogramarea accidentală  a controlerului) cât şi
funcţional.
Pentru programarea PLC şi testarea funcţionalităţii există 
soft-uri dedicate (CAD) puse la dispozi ţie de producătorii de
echipamente. Spre exemplu “ PicoSoft” cu ajutorul căruia se pot
desena schemele şi se poate simula funcţionarea este pus la dispoziţie
gratuit (pentru platforme Windows) de firma Allen-Bradley. Poate fi
descărcat de la adresa [25].

Tabelul 1.

TABEL COMPARATIV AL CARACTERISTICILOR UNITATILOR CENTRALE PLC


COD IC697CPX772 IC697CPX782 IC697CPX928 IC697CPX935
INTRARI/IESIRI NUMERICE 2k 12k 12k 12k
INTRAR/IESIRI
ANALOGICE 8k 8k 8k 8k
MEMORIA DISPONIBILA 1 M (Fast
APLICATIEI UTILIZATOR 512k 1M 6M
memory)
TIMPUL DE EXECUTIE A
OPERATIILOR LOGICE 0.4ms/k 0.4ms/k 0.4ms/k 0.4ms/k
INDEX AL
PERFORMANTEI
6.0 8.0 8.0 10.0
PROCESOR 486DX4 486DX4 486DX4 486DX4
FRECVENTA
PROCESORULUI 96MHz 96MHz 96MHz 96MHz
ARITMETICA IN VIRGULA
MOBILA DA DA DA DA

  59
 

În tabelul 1 sunt prezentate caracteristicile unităţilor centrale de


prelucrare numerică  din componenţa unor PLC iar în tabelul 2 sunt
prezentate comparativ performan ţele PLC produse de patru firme
reprezentative. S-au marcat cu stelu ţe facilităţile oferite de produc ător
privind caracteristicile ( scăzută *, medie **, ridicată ***).[26]

Tabelul 2.

Firma ABB Siemens Allan Bradley GE Fanuc


Includerea in setul de instruc ţiuni a
** * *** ***
funcţiilor trigonometrice
Includerea blocurilor PID *** *** *** ***
Posibilitatea includerii de subrutine
- - ** ***
parametrizate
Structuri predefinite in C pentru
* * *** **
utilizatori
Software compatibil cu actualele
** ** *** ***
sisteme 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.

  60
 

Exemplul 1. Semnalizarea stării unui circuit electric

Circuitul din figura 2.13 are rolul de a semnaliza luminos (cu un


LED) starea alimentării sarcinii de curent alternativ, notat ă cu R.

Fig. 2.13.

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 logicii
de comandă).
Rezistorul R este alimentat cu ~220 V ca  de la sursa AC dacă bobina
releului 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 – pentru
oprire.
Dacă  P  este apăsat se alimentează bobina releului  B, contactul
acestuia 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.).

  61
 

Dacă  O este apăsat se alimentează bobina releului  A, contactul


acestuia se închide şi bobina releului C va fi deconectat ă la sursa de
c.c. Contactul releului C se deschide şi sarcina este scoasă  de sub
tensiune; iar LED-ul se stinge indicând faptul c ă  sarcina nu este
alimentată.
Pentru a aduce circuitul în starea ini ţială  se impune a debloca cele
două butoane.
Constatăm că  toată  logica de comandă, inclusiv releele sunt
implementate de către PLC. În exteriorul acestuia se afl ă  numai
butoanele care constituie intrări ale PLC şi sarcina, conectată  la una
din 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).

Fig. 2.14.

Contactele conectate la PLC pot avea orice nume, în schimb în


cadrul programului se vor folosi numai numele por ţilor (ale bornelor
PLC) la care este conectat contactul. Observ ăm că în cadrul schemei
  62
 

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 pentru
becul conectat la ieşire).

Se impune a face o distincţie clară  între elementele fizice


conectate la PLC şi elementele din programul controler-ului asociate
acestor 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 contactul
notat  X 1(element de programare) care este asociat elementului fizic
conectat la prima bornă  de intrare a PLC şi care ca element fizic se
poate numi tot  X 1 sau altfel (spre exemplu START). De fapt,
elementul de programare  X 1 are alocat un registru (o zonă  de
memorie) în care se păstrează  valoarea ON sau OFF. Programul va
prelua starea contactului din registrul asociat ( şi tot acolo va face
actualizarea stării).

Execuţia programului controlerului

 Programul controlerului se execută secven ţ ial   spre deosebire


de circuitele cu relee unde acţiunea contactelor este asincronă (apare la
orice moment de timp şi rezultatul se obţine imediat ce s-a schimbat
starea 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 cazul
funcţionării corespunzătoare trece la etapa de preluare a mărimilor
conectate 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 intrare
analogică, apoi al altui contact ş.a.m.d., până  când efectuează 
actualizarea stării tuturor elementelor conectate la intr ările
controlerului . De fapt, actualizarea constă  în memorarea stării
intrărilor într-o memorie RAM.
B.  Analiza circuitului  şi actualizarea în memorie a st ării
ie şirilor  
În faza următoare analizează  prima ramură  a circuitului,
calculează rezultatele şi modifică în memorie starea ieşirilor.

  63
 

Trece la analiza următoarei ramuri de circuit ş.a.m.d. până la sfârşitul


schemei. Acesta este ordinea impusă  în care se testează  şi se
calculează 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, starea
ieşirilor circuitului (din simplul motiv c ă  starea memorată  va fi
utilizată în restul calculelor, pe ramurile care urmează).
Notă:  Există  posibilitatea, ca în calculele care se execută, să  se
folosească date ale intrărilor neactualizate, prin specificarea explicită a
acestei opţiuni. S-a prevăzut această  posibilitate pentru a folosi în
calcule 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 la
punctul A.

Rezultă  că  pe parcursul analizei schemei (a derul ării


programului ) 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 ramurile
circuitului, pentru că există probabilitatea ca să se obţină alte rezultate.
Dacă  un contact condiţionează  funcţionarea altuia, prin schimbarea
poziţ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 starea
neactualizată  , veche, din memorie a primului contact). Se impune
concluzia că o ramură de circuit nu poate condiţiona funcţionarea unei
ramuri din amonte (microprocesorul nu se întoarce s ă  reanalizeze
ramurile deja parcurse).

Exemplul 3. Realizarea unui generator de oscilaţii


dreptunghiulare

Actualizarea stării intrărilor la momente discrete de timp, în ordinea


precizată, permite realizarea unui oscilator cu un singur releu şi un
contact al acestuia, ca în figura 2.15.
  64
 

La prima testare C1 este închis şi PLC alimentează  bobina releului


C1care 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.

C1 C1

L1 L2

Fig. 2.15.

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 şi
factor de umplere de 50%.
Din punctul de vedere al programării, contactul C 1 reprezintă o
intrare 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 starea
ieşirilor.

Structurile PLC pot implementa funcţii de memorare şi


prelucrare matematică  avansată  a datelor (func ţii statistice, funcţii
trigonometrice, derivare, integrare, ş.a.).
  65
 

 
Structura hadware a unui PLC

Din punct de vedere hardware, o instalaţie complexă  poate


conţ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 cu
exteriorul, vezi figura 2.16.

Fig. 2.15

Fig. 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 a
implementa câte un PLC sau un grup de PLC - uri pentru fiecare
element din sistem (maşină, instalaţie, ş.a.) care să  preia funcţiile
locale de supraveghere şi conducere şi să  comunice cu sistemul
centralizat prin intermediul unei magistrale de comunica ţie. Se poate
vorbi, î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 );

  66
 

-  memorii de tipul RAM şi memorii de tipul ROM (de obicei sunt


reinscriptibile electric, adică sunt EEPROM), blocul MEMORY
din figură;
-  sistemul de preluare a semnalelor din proces INPUT;
-  sistemul comenzilor către proces OUTPUT;
-  o interfaţă  pentru programarea PLC, care poate fi integrat ă  în
sistemul intrărilor;
-  una sau mai multe interfeţe pentru comunicarea cu alte
echipamente (o magistrală  de comunicaţie cu exteriorul), care
poate fi integrată de blocurile I/O.
-  un sistem de afişare (display şi LED - uri) a stărilor
controlerului .

Fig. 2.17.
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 prin
intermediul unui CAN convertor analog – numeric la ie şirea căruia se
obţine o valoare pe 8, 10 sau 12 bi ţi în funcţie de rezoluţia
convertorului.
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 la
care este disponibil semnalul digital corespunzător valorii analogice de
la intrare. Dacă semnalele analogice din proces sunt rapid variabile în
timp se impune ca PLC să dispună de un CAN performant, cu timp de
conversie mic (spre exemplu de ordinul  µ s ).
Pentru că  traductoarele conectate la intrările analogice au diferite
domenii de variaţie a semnalului se impune prezenţa unui adaptor

  67
 

(înainte de CAN) care să  modifice domeniul semnalului pentru a fi


compatibil cu domeniul acceptat de CAN. Spre exemplu domeniile
-10V ,...,+10V ; 0,...,10V ; 0,..., 100mV ; 2,...,10mA; 4,...,20mA  trebuie
convertite la domeniul acceptat de CAN, adic ă la domeniul 0,...,5V .

Semnalele digitale de intrare, provenind de la traductoare, pot avea


diferite 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 intrare
adaptoare de semnal digital. În figura 2.18 este prezentat ă o schemă a
adaptorului pentru reprezentări în c.c. a semnalelor digitale din proces.

Fig. 2.18.

În figura 2.19 este prezentat ă  o schemă  a adaptorului pentru


reprezentări în c.a. a semnalelor digitale din proces.

Fig. 2.19.

  68
 

 
Constatăm că  în ambele scheme se foloseşte optocuplarea în scopul
separării semnalelor din proces de controlerul sistemului, pentru
protecţ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 este
redresat de puntea de diode PD, filtrat de grupul  R1, R,C   şi limitat ca
valoare de dioda Zener D z.

Semnalele digitale de ieşire, sunt furnizate procesului prin


intermediul unui adaptor cu funcţia de a converti semnalul digital
furnizat de CPU în semnal compatibil cu elementul de execuţie care va
fi 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 borna
de ieşire a PLC şi masă (sourcing output ).
Există  elemente de execuţie care dispun de o sursă  proprie de
alimentare ş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 de
intrare 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 care
furnizează  semnale digitale de c.c. echipamentului conectat la
respectiva ieşire.

Fig. 2.20.

În figura 2.21 este prezentat adaptorul pentru o ie şire cu semnal


digital în curent alternativ.

  69
 

Fig. 2.21.

Semnalele analogice de comandă  (de la ieşirile PLC) se obţin


prin convertirea semnalului digital într-un semnal analogic cu ajutorul
unui circuit electronic CNA numit convertor numeric – analogic.

2.3.  Elemente de programare a PLC

Elaborarea programului de funcţionare al unui PLC se face prin


intermediul unor instrucţiuni de programare specifice fiecărui
producă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 ă  diferitelor
revizuiri este cunoscut şi sub numele IEC 61131.
Standardul nu se referă numai la programarea PLC, fiind un manual de
definire a sistemelor cu logică  programabilă. Se compune din mai
multe 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).

  70
 

Î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 de
mnemonici;
ST  (Structured Text ) – limbaj text pe baza unui set de
instrucţ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 înscriu
instrucţiuni ale unui alt limbaj de programare. [17,27]

Tabelul 3.

Numele Tipul Numărul biţilor Domeniul


BOOL boolean 1 0 to 1
SINT short integer 8 -128 la 127
INT întreg 16 -32768 la 32767
DINT double integer 32 -2.1e-9 la 2.1e9
LINT long integer 64 -9.2e19 la 9.2e19
USINT unsigned short 8 0 la 255
integer
UINT unsigned integer 16 0 la 65536
UDINT unsigned double 32 0 la 4.3e9
integer
ULINT unsigned long 64 0 la 1.8e20 
integer
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  -

  71
 

În cadrul tabelului 3 sunt prezentate tipurile de date acceptate de PLC


care pot fi folosite în cadrul programelor.
Înainte de a prezenta elementele principale ale celor cinci
limbaje de programare se impun câteva considera ţii privind abordarea
programării controlerelor.
Secvenţialitatea execuţiei instrucţiunilor conduce la foarte multe
stări succesive ale automatului şi o proiectare necorespunzătoare
determină  stări nedorite ale sistemului, ceea ce conduce la un efort
considerabil pentru depanarea programelor. O proiectare
necorespunzătoare  împarte bugetul de timp necesar implement ării
astfel : 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 poate
fi cu uşurinţă completat (upgrade) şi care, de altfel, scurtează şi timpul
necesar implementării. Se afirmă [10]că o creştere la 30% a timpului
alocat concepţiei (structurării) va micşora timpul alocat scrierii
programului 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ării
automatului).
În figura 2.21 este prezentat modul orientativ de structurare şi
indicaţii privind limbajul care ar trebui adoptat pentru sistemele
secvenţiale.

Fig. 2.21.

Limbajul IL ( Instruction List),  poate fi considerat similar


limbajului de asamblare folosit de microprocesoare. Sunt pu ţine tipuri
  72
 

de controlere care mai pot fi programate prin intermediul listelor de


instrucţiuni (limbajul IL) şi tendinţa este de a nu mai fi utilizat. Cauza
principală  este faptul că  celelalte limbaje sunt mai uşor de
implementat.

Limbajul ST(Structured Text)  de text structurat este similar


limbajelor 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 ţiile
specificate în tabelul 4.

Tabelul 4.

Declaratia Descriere
VAR Începutul blocului de declarare a
variabilelor (în general)
END_VAR Sfârşitul blocului de declarare a
variabilelor
VAR_INPUT Declararea variabilelor ce se vor transfera
unei funcţii
VAR_OUTPUT Declararea variabilelor ce se vor transfera
dintr-o funcţie
VAR_IN_OUT Declararea variabilelor ce se vor transfera
 între funcţie şi program apelant, atât ca
intrare cât şi ca ieşire
VAR_EXTERNAL Variabile externe
VAR_GLOBAL Variabile globale
VAR_ACCESS Variabile de acces

VAR_INPUT , VAR_OUTPUT şi VAR_IN_OUT   declară variabile care


vor fi argumente ale unor funcţii – prin intermediul respectivelor
variabile se transferă date între program şi funcţiile pe care le apelează.

Exemple de declaraţii pentru variabile:


VAR A, B, C : INT ; END_VAR
VAR A : STRING[10] ; END_VAR
VAR A : STRING[10] := ‘mama’; END_VAR
VAR A : BOOL; END_VAR
VAR CONSTANT A : REAL := 6.12345 ; END_VAR
VAR RETAIN A : ARRAY[1..5,1..6] OF INT; END_VAR

  73
 

 
În tabelul 5 sunt precizate cuvintele cheie asociate variabilelor,
prin intermediul cărora se fac precizări asupra proprietăţilor acestora.

Tabelul 5.

Declaratia Descriere
RETAIN Variabila î şi menţine valoarea şi după  întreruperea
alimentării PLC
CONSTANT Valoare constantă ce nu poate fi modificată 
AT Specifică locaţia de memorie ce se alocă vatiabilei
OF 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.

Operatori Descriere
aritmetici şi logici
> Mai mare
>= Mai mare şi egal
= Egal
<= Mai mic şi egal
< Mai mic
<> Diferit
AND(A,B) ŞI
OR(A,B) SAU
XOR(A,B) SAU EXCLUSIV
NOT(A) NU
! NU

În cadrul tabelului 7 sunt prezentate structurile de control a


secvenţialităţii programului (de fapt cele care modific ă  execuţia
secvenţială a programului).

  74
 

Tabelul 7.

Instrucţiunile Descriere
IF-THEN-ELSIF-ELSE- IF
END_IF;
CASE-valoare:-ELSE-END_CASE; CASE
FOR-TO-BY-DO- FOR
END_FOR;
WHILE-DO- WHILE
END_WHILE;

Exemplu pentru IF:

Dacă  bitul 02 al intr ării I:000 (I:000/02) este OFF bitul 1 al


ieş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) THEN
O: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 ai


portului 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 OF
0:
O:000/00 := 1;
1:
O:000/01 := 1;
2:
  75
 

O:000/02 := 1;
3:
O:000/03 := 1;
ELSE
O:000 := 0;
END_CASE;

Exemplu de buclă FOR:

Pentru domeniul 0,...,4 al variabilei N7:0 se adun ă la variabila


F8: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;
REPEAT
N7:0 := N7:0 + 1;
UNTIL N7:0 >= 10
END_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 MAIN
VAR
I: INT;
END_VAR
  76
 

I:= 0;
REPEAT
I:=I+1;
UNTIL I>= 10;
END_REPEAT
END_PROGRAM

Exemplu de funcţie pentru un bistabil RS:

FUNCTION_BLOCK SR
(*Bistabilul RS*)
VAR_INPUT
S: BOOL;
R: BOOL;
END_VAR
VAR_OUTPUT
Q: BOOL;
END_VAR
IF 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, spre


exemplu:
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;
  77
 

MAX(A,B) – furnizează valoarea maximă a celor două;

Pe lângă  funcţiile matematice standardul IEC1131


implementează 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 din


cadrul 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 prin
funcţia LD - load preset ) cât timp A<= C;
CTU(CU:=A, R:=B, PV:=C)  – setează  nu numărător care î şi
creşte valoarea registrului  A (care iniţial este setat la valoarea  B prin
funcţia R - reset ) cât timp A>= C;
TON (IN:=A, PT:=B)  - setează  în ON un circuit de
temporizare;
TOF (IN:=A, PT:=B)  - setează  în OFF un circuit de
temporizare;
RS(A,B) - stabileşte intrările  A  şi  B pentru un bistabil de tipul
RS;

Sistemul are funcţii pentru manipularea biţilor din cadrul unui


cuvâ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 ;

  78
 

 
De remarcat faptul că  limbajul ST permite apelarea de subprograme
scrise în alte limbaje.

Limbajul SFC (Sequential Function Charts) , spre deosebire


de celelalte limbaje, permite ca mai multe procese să  fie active în
acelaş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 figurile
2.22,...,2.27.
Prin intermediul liniilor se indic ă trecerea de la un pas la altul,
adică tranziţia automatului dintr-o stare în alta.

Fig. 2.22. Fig. 2.23.


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ător
când condiţia este îndeplinită.
Prin intermediul blocurilor (a dreptunghiurilor) se indic ă  starea
circuitului. Spre exemplu simbolul din figura 2.23 indic ă prima stare a
circuitului.
De regulă o stare ( un pas al circuitului) are asociată o acţiune,
vezi figura 2.24.

Stare (pas) Acţiune

Fig. 2.24.

  79
 

Un macropas conţine un număr de instrucţiuni, cu simbolul în figura


2.25. De regulă blocul este asociat subrutinelor şi funcţiilor.

Fig. 2.25.
Î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.26.

Fig. 2.27.

  80
 

În figura 2.27 este prezentat blocul care semnific ă  două  ramuri


simultane ( este vorba de un circuit ŞI).

Fig. 2.28.

În figura 2.28 este prezentat un exemplu de aplicare a metodei SFC


pentru 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 doua
se 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, cu
toate că uşa este deja blocată).

Limbajul FBD ( Function Block Diagram)

Principiul pe baza căruia a fost implementat limbajul FBD


constă  în transferul datelor de la intr ări către ieşiri prin intermediul
  81
 

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ă  la
intrarea A avem o valoare mai mică decât la intrarea B (B=N7:2), unde
intrarea  A  este determinată  de variabilele N7:0 şi N7:1prin relaţia
 A sin( N 7 : 0) * la ( N 7 : 1) .
 =

Fig. 2.29.

Blocurile funcţionale ale limbajului FBD  au un corespondent în


instrucţiuni scrise în limbajul ST(Structured Text ). Spre exemplu
blocul din figura 2.30 este implementat în ST cu instrucţiunea
O :=  LIM ( MN  :=  A
  ,  IN  :=  B,  MX  := C ) .

Fig. 2.30.
Există  blocuri funcţionale definite (bistabili, timere, ş.a.), în cadrul
unor biblioteci, dar pot fi definite noi blocuri func ţionale. După 
definirea blocului funcţional acesta poate căpăta oricâte instanţieri în
cadrul sistemului (folosind numele asociat blocului).
Blocul divide  din figura 2.31 permite implementarea func ţiei de
 împărţire a două valori c a / b . =

În prealabil se face o verificare pentru eliminarea erorii de împ ărţire la


o valoare nulă, caz în care ieşirea se aduce la zero.

  82
 

Fig. 2.31.

Blocul funcţional este de fapt o unitate care conţine un set de


instrucţiuni care efectuează  diferite prelucrări ale variabilelor de
intrare pentru a genera valori ale variabilei de ieşire. De notat că se pot
folosi, în cadrul prelucrării li variabile interne.
Instrucţiunile (programul) cu care se implementeaz ă blocul funcţional
divide sunt:

FUNCTION_BLOCK divide
VAR_INPUT
a: INT;
b: INT;
END_VAR
VAR_OUTPUT
c: INT;
END_VAR
IF b <> 0 THEN
c := a / b;
ELSE
c := 0;
END_IF;
END_FUNCTION_BLOCK 

Implementarea blocurilor funcţionale se poate face în oricare din


limbajele 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 punctele
etichetate (LABEL a, etc.).
Dacă  există  mai multe reţele de blocuri fiecărei reţele îi este
asociat un număr şi ordinea execuţiei se face în ordinea crescătoare a
numerelor asociate.

  83
 

Sistemul permite implementarea subrutinelor din care revenirea poare


fi condiţionată sau necondiţionată, vezi figura 2.32 [11].

Fig. 2.32.
În figura 2.33 [11] sunt prezentate modalităţile de ciclare.

Fig. 2.33.
Există blocuri pentru conversia valorilor din BCD în numere întregi şi
invers, pentru conversia valorilor din numere întregi în numere reale,
pentru rotunjire sau pentru trunchere.

  84
 

Limbajul LD ( Ladder Diagram)

Într-o traducere aproximativ ă  LD reprezintă diagrame în scară.


Explicaţia constă în faptul că diagrama are pe laterale alimentarea cu
energie 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, contacte
normal închise sau normal deschise - de intrare şi bobine ale unor relee
sau 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 la
dreapta (un exemplu se afl ă  în figura 2.15) – fiecare linie fiind
numerotată 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 )

IN001   IN002   IN003

a)   b)  

Fig. 2.34.
Elementele de ieşire sunt bobinele (OUT001, OUT002) şi bobinele
negate (OUT003).

OUT 001 OUT 002 OUT 003

a) b)  

Fig. 2.35.

Temporizatoarele sunt elemente care modelează funcţionarea releelor de


timp şi a contactelor temporizate.
Temporizatoarele, a căror reprezentare se află  în figura 2.36, permit
realizarea unei acţiuni întârziate cu un anumit interval de timp ce poate fi
programat.
  85
 

 
Ieşire
Validare
Nr. temporizator

Baza de timp

Iniţializare Valoarea
prestabilit ă
 

Fig. 2.36.
Iniţializarea porneşte temporizarea. Baza de timp stabileşte
valoarea cu care se incrementează timpul (0,01s; 0,1s sau 1s). Numărul
de cuante de timp la care se termină temporizarea este specificat prin
program.
În figura 2.37 este prezentat un numărător.

  Ieşire
Numărare
Nr. numărător

Ieşire negată

Iniţializare Valoare
prestabilită

Fig. 2.37.

Pentru desenarea schemelor cu contacte ( Ladder Diagram) se folosesc


editoare 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.

  86
 

 
Tabel din “ Introduction to Programmable Logic Controllers”

Num
ber Description Link/info
1 PLC book http://claymore.engineer.gvsu.edu/~jackh/books/plcs
2 PLC website http://www.plcs.net/
3 PLC tutorial http://www.plcs.net/chapters/whatis1.htm
Quick PLC
4 http://support.automationdirect.com/docs/whatisaplc.html
description
5 PLC History http://www.softplc.com/history.php
6 Online Encyclopedia http://en.wikipedia.org/wiki/Programmable_logic_controller
7 PLC online Forum http://www.plctalk.net/qanda/
8 Course example http://claymore.engineer.gvsu.edu/~jackh/eod/egr450.html
9 Course example http://www.pueblocc.edu/tec/auto_023.htm
10 Course example http://www.cede.psu.edu/StudentGuide/EET220.htm
http://www.tech.mtu.edu/courses/eet3370/EET3370%20Class%20
11 Course example
Schedule%202.htm
12 Course example http://www.utexas.edu/cee/petex/training/courses/iplc.html
PLC simulation
13 http://www.tri-plc.com/trilogi.htm
software
PLC simulation
14 http://www.ab.com/plclogic/pico/picosoft.html
software
15 Mitsubishi http://www.meau.com/eprise/main/sites/public/PRODUCTS/default
16 Toshiba http://www.tic.toshiba.com/productgroups.php?family=PLCs
17 Siemens https://pia.khe.siemens.com/index.asp?Nr=2140
18 Sprecher & Schuh http://www.ssusa.cc/pages/mainpg/prodmainall.html
19 Allen Bradley http://www.ab.com/plclogic/
Programmable Logic Controllers An Introduction Third Edition W.
20 PLC book
Bolton 2003 Newnes Publications
PLC application
21 http://www.fbk.com/control-instrumentation/plctran.asp?menu=3
website
Verification of PLC
22 http://wwwhome.cs.utwente.nl/~mader/DEMOS/IPA2001.ppt
Applications
23 PLC Applications http://www.entertron.com/application.htm
24 PLC help thread http://www.plctalk.net/qanda/showthread.php?s=&threadid=12235
25 PLC Tutorial site http://www.freestudy.co.uk/plc.htm
http://www.mikroelektronika.co.yu/english/product/books/PLCbook
26 PLC Tutorial site
 /plcbook.htm
27 PLC info and tutorial http://www.mrplc.com/kb/
28 Modicon http://www.modicon.com/Default.htm
29 PLC history http://www.barn.org/FILES/historyofplc.html
30 PLC primer http://www.industrialtext.com/freestuff.htm
http://www.control.com/links_page#PLCs%20and%20related%20q
31 PLC information
uestions.
32 PLC example http://www.htservices.com/Tutorials/plc_tutorial_2.htm
http://www.sea.siemens.com/step/templates/lesson.mason?plcs:1:
33 Siemens PLC primer
2:1
34 AB Pico Solutions http://www.ab.com/plclogic/pico/picosolutions.html
Applications http://public.modicon.com/nRepository/index.nsf/aa_getdocs?Ope
35
examples nAgent&prod=nanocus
http://www.modicon.com/nRepository/index.nsf/aa_getdocs?Open
36 TSX PLC manual
Agent&prod=nanopro#
37 BORS oil application http://www.modicon.com/85256AE8006D78AB/all/AFB0118DEA9

  87
 

9C0AC85256BFA004F60F3!OpenDocument
http://www.mavrinac.com/technical/howto_plc_programming_for_b
38 PLC overview
eginners.txt
39 PLC intro http://www.canadu.com/hjhtml/plcs1-4.html
40 RTU vs PLC http://www.tetragenics.com/Articles/RTUvsPLC.htm
41 Ladder Logic Ideas http://xtronics.com/toshiba/Ladder_logic.htm
42 Ladder Logic editor http://home.scarlet.be/~dc11cd/dciplc.html
Ladder Logic
43 http://www.ibiblio.org/obp/electricCircuits/Digital/DIGI_6.html
examples
44 PLC tutorial site http://www.plcman.co.uk/
45 Intro to IEC 61131 http://www.plcopen.org/TC1/intro_iec_61131-8.htm
46 IEC 61131-3 FAQ http://www.holobloc.com/stds/iec/sc65bwg7tf3/html/faq.htm
Thread on PLC Scan http://www.plctalk.net/qanda/showthread.php?t=8220&highlight=sc
47
time an+cycle+time
Seamans on scan http://www.sea.siemens.com/step/templates/lesson.mason?plcs:7:
48
time 1:1
49 PLC operation www.crakker.com/PLC_Primer.PDF
http://www.lurpa.ens-
50 Info on Grafcet
cachan.fr/grafcet/generalites/presentation_uk.html
51 PLC failure info http://www.processwest.ca/Past_Issues.htm?ID=354
Programmable Logic
52 Controllers Third W. Bolton Linacre House, Jordan Hill Oxford 2003
Edition
picture of industrial
53 http://www.monoequip.com/images/Equipment/ind_cake_mixer.jpg
mixer
54 PicoSoft http://www.ab.com/plclogic/pico/PicoSoftWeb6L.exe
http://www.meau.com/eprise/main/sites/public/DOWNLOADS/-
search_results?SType=0&DocType=035&SessionNum=&UserID=
55
&Division=00015&Opt1=Yes&submit1=Search&Family=00015200
GX-Developer 10&Series=000152001020030
56 picture of relay timer http://web.mit.edu/cjoye/www/ebay/RelayTimer/
picture of relay
57 http://www.icc-gb.com/lc4h.html
counter
58 picture of box PLC http://www.controltech.cz/images/clanky/image30.jpg
59 picture of optoisolator http://searchnetworking.techtarget.com/WhatIs/images/optoisol.gif
60 plc shipment article http://www.drives.co.uk/news/worldnews/news_worldnews352.htm
http://customer.honeywell.com/Honeywell/CatalogNavigator.aspx?
Definition=Product&Catalog=Homes&Category=DP2030_10180&
61 Honeywell contactor
Product=DP2030B5011&ChannelID={2EB2F178-20ED-44E0-
97FB-CCFB4218DD64}#LiteratureDownload
Price on start http://www.mstores.umich.edu/catalog/grainger/electrical/relays/rel
62
relay/mounting $20 ay_sockets/2A584.html
Price on timed relay- http://www.mstores.umich.edu/catalog/grainger/electrical/relays/ti
63
$48-$70 me_delay_relays/5YZ86.html
3 phase power http://www.metalwebnews.com/howto/phase-converter/phase-
64
converter example converter.html
65 ladder logic manual http://www.iu.hio.no/~georgm/pls/doc/s7kop__b.pdf
3 phase converter
66 http://www.phase-a-matic.com/PDF/RPL-2005-C.pdf
data sheet
67 PLC presentation http://www.kwandong.ac.kr/~sylee/cadcam_s/chap5Plc.ppt

  88

S-ar putea să vă placă și