Sunteți pe pagina 1din 39

2

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).[1,7,8]

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.

41
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.
42
Î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.

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ă zero 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).

43
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ă.

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.

44
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;
45
- 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.

46
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 în 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);
47
- 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

48
( 1-R, 2-S, 3-T) de către contactele releului M1 , iar pentru rotirea în
sens invers releul M2 conectează înfăşurările motorului 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 (M2a cu M1 şi M1a cu M2 ). Contactul
serie se numeşte contact de interblocare şi are rolul de a nu permite
alimentarea cu tensiune a celuilalt releu când unul 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ă
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
49
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 (M1 se alimentează prin M1b, iar M2 se alimentează
prin M2b ).

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.
Î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 [4,8,9]. În literatura de
specialitate se afirmă că numai 10% din buclele de reglare nu sunt
50
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
termorezistenţă, sau pentru măsurarea temperaturii cu 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.
51
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 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

52
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 codate 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, la viteza de transfer cât şi la 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 le 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. [5]

53
Funcţia de diagnoză a controlerului 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 hrdware-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). Prin intermediul conectorului elementul de
programare (un laptop, un calculator sau un circuit specializat de
programare) are acces la o magistrală a controlerului.
54
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 [3].

Tabelul 1.

TABEL COMPARATIV AL CARACTERISTICILOR UNITATILOR CENTRALE PLC


COD IC697CPX772 IC697CPX782 IC697CPX928 IC697CPX935
INTRAR/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 EXECUTIA 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
ROCESORULUI
96MHz 96MHz 96MHz 96MHz
ARITMETICA IN VIRGULA
MOBILA
DA DA DA DA

55
Î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ă ***).[4]

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.

56
Exemplul 1. Semnalizarea stării unui circuit electric

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


LED-ul) 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 Vca 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 sa alimentează bobina releului B, contactul
acestuia se închide şi bobina releului C va fi conectată la sursa de c.c.
notată VCC. 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.).

57
Dacă O este apăsat sa 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
58
de programare (din partea de jos a figurii ) apar notaţiile porţilor
înscrise pe PLC (X1,X2, X3 pentru contactele de intrare şi Y1 pentru
becul conectat la ieşire).

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


conectate la PLC şi elementele din programul controlerului 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 X1(element de programare) care este asociat elementului fizic
conectat la prima bornă de intrare a PLC şi care element fizic se poate
numi tot X1 sau altfel (spre exemplu START). De fapt elementul de
programare X1 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.

59
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 obţ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.
60
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 C1 reprezintă o
intrare pentru PLC iar bobina CR1 reprezintă o ieşire a controlerului.
Se justifică această afirmaţie prin faptul că intrarea C1 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.).
61
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 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);

62
- 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 IMPUT;
- 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. Daca 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

63
(î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.

64
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 Dz.

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

65
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).
De fapt SFC organizează subprogramele, scrise în celelalte limbaje, ca
să formeze structura programului controlerului.

66
Î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.

Tabelul 3.

Numele Tipul Numărul biţilor Domeniul


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

67
Î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.22 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
68
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 pp atât ca
intrare cât şi ca ieşire
VAR_EXTERNAL Variabile externe
VAR_GLOBAL Variabile globale
VAR_ACCESS

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

69
VAR CONSTANT A : REAL := 6.12345 ; END_VAR
VAR RETAIN A : ARRAY[1..5,1..6] OF INT; END_VAR

Î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

70
Î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).

Tabelul 7.

Instrucţiunile Descriere
IF-THEN-ELSIF-ELSE- IF
END_IF;
CASE-valoare:-ELSE- CASE
END_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.

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

72
Exemplu de program principal:

PROGRAM MAIN
VAR
I: INT;
END_VAR
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;

73
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;
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


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:

74
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 ;

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

75
Stare (pas) Acţiune

Fig. 2.24.

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.

76
Fig. 2.27.
În figura 2.27 este prezentat blocul care semnifică două ramuri
simultane ( este vorba de un circuit ŞI).

Fig. 2.27.

77
Î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)

FBF pag 500 cap 21

Cap 10 ladder + 15.1. pag 368 va fi primul

1. *** http://www.allaboutcircuits.com, Lesson in electric circuits,


Vol. I,…,VII, 2003;
2. *** Introduction to Programmable Logic Controllers, 2005;
3. *** http://www.ab.com/plclogic/;
4. *** Revista de Politică şi Scientologie, ISSN -1582-1218, 2005;
5. *** AEG, PLC Communications in a Process Control System,
2002;
6. J.R. Hackworth, F.D. Hackworth, Programmable Logic
Controllers, Prentice Hall, 2004;
7. L.A. Bryan, E.A. Bryan, Programmable Controllers, Industrial
Text Company, 1997;
8. S. Larionescu, Algotitmi de reglare PID, UTCB 2003;
9. S. Larionescu, D. Popescu, Regulator numeric PID, UTCB 2003;
10. Hugh Jack, Automating Manufacturing Systems with PLC,

78
Vers. 4.9, Grand Valley State University, Michigan, USA, 2007;

79

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