Sunteți pe pagina 1din 31

Capitolul 3.

MODALITĂŢI DE PROGRAMARE ALE


AUTOMATELOR PROGRAMABILE

3.4. Limbajul de tip „Scheme de contact” – Ladder


Diagram (LD)
Acest limbaj de programare în cazul automatelor programabile a apărut
datorită necesității de a exista un mod facil de programare care să permită
realizarea de aplicații fără a fi nevoie de cunoștințe complexe de programare.
Diagramele ladder provin de la reprezentarea grafică folosită pentru schemele
electrice de comandă (comenzile fiind realizate cu ajutorul releelor) şi
„moștenesc” anumite denumiri şi reprezentări caracteristice acestora.

1 / 31
Principalele aspecte care stau la baza acestui limbaj de programare sunt:
 scrierea unui program în limbajul LD presupune desenarea unei diagrame
(Ladder Diagram) similare unei scheme electrice cu contacte;
 elementele componente ale diagramei LD modelează funcţionarea
elementelor unei scheme cu contacte;
 interpretarea funcţionării diagramei LD este similară interpretării
schemelor electrice cu contacte;
 elementele de bază utilizate pentru scrierea unui program în limbajul LD
sunt:
o contactele;
o bobinele;
o temporizatoarele;
o numărătoarele;
o blocurile de funcţii.
Programele sunt organizate în reţele în cadrul cărora sunt poziționate
elementele de bază. Majoritatea elementelor sunt identificate printr-o adresă (ex:
I0.2 pentru intrări sau Q0.4 pentru ieşiri) sau prin etichete (ex: start, buton
pornire etc.), nefiind permisă o realizare de tip paralel legată de o altă reţea.
2 / 31
Atunci când se realizează un program în limbajul LD, trebuie să se ţină
seama de limitările pe care acest limbaj le poate avea:
 limitări în privinţa formatului diagramei LD;
 limitări impuse de modul de execuţie a programului.
Limitările de foarte multe ori se datorează soluţiilor tehnice adoptate de
companiile producătoare pentru implementarea diverselor elemente ale
limbajului, cum ar fi:
 toate contactele trebuie să fie pe direcţie orizontală;
 o bobină trebuie să fie alimentată întotdeauna prin intermediul unui
contact;
 bobina trebuie să fie introdusă întotdeauna la capătul din dreapta al liniei;
 numărul contactelor pe o linie de alimentare a unei bobine este limitat prin
program;
 un grup de contacte poate alimenta o singură bobină;
 sensul curentului prin circuit este de la stânga la drepta diagramei.
Este important să specificăm faptul că în scrierea unui program în
limbajul LD trebuie avut în vedere şi modul în care este interpretat programul
3 / 31
conceput. În privinţa asta există două moduri de interpretare a unui program
scris în limbajul LD:
 citirea se face pe linie - se citesc contactele pe linie, de la stânga la dreapta,
linie cu linie, de la prima linie până la ultima.
 citirea se face pe coloană - se citesc contactele pe coloană, câte unul. De
sus în jos, coloană cu coloană, începând cu prima coloană din stânga şi
terminând cu ultima din dreapta.
În ceea ce priveşte execuţia unui program scris în limbajul LD trebuie
menţionate următoarele aspecte:
 liniile programului sunt evaluate de la stânga la dreapta şi de sus în jos;
 ramificaţiile din cadrul liniilor sunt evaluate de la stânga sus la dreapta jos.

4 / 31
Standardul IEC 61131-3 furnizează un set de instrucţiuni de bază prin
care se pot realiza operaţiile de bază – 81 de insrucţiuni LD:
 Operaţiile aritmetice – Add, Sub, Mul, Div, Mod, Move, Exp;
 Operaţiile booleene: Bit Test, Bit Set, One Shot etc.;
 Operaţiile logice: And, Or, Xor, Not;
 Temporizatoare/Numărătoare: Ton, Tp, Tof, Ctu, Ctd, Ctud;
 Diferite operaţii matematice: Abs, Sqrt, Ln, Log, Exp, Sin, Cos, Tan, Asin,
Acos, Atan etc.;
 Comparaţie: GT, GE, EQ, LE, LT, NE;

5 / 31
 Șiruri de caractere: Len, Left, Right, Mid, Concat, Insert, Delete, Replace,
Find;
 Control: JMP, LBL, JSR, RET;
 Deplasări de biţi: Shl, Shr, Ror, Rol;
 Conversii ale tipurilor de date: Trunc, Int_to_Sint, Dint_to_Real etc.
 Contacte
Contactele sunt elemente de programare care modelează contactele
aparatelor electrice de comutaţie. În cadrul unui program scris în limbajul LD,
contactele pot fi asociate intrărilor AP, ieşirilor AP sau unor variabile interne , iar
prin conectarea lor în serie (AND) sau paralel (OR) pot fi realizate operaţii
logice asupra stării semnalelor. Ca şi notaţie cea mai des utilizată este folosind
litera „I”.
Similar contactelor aparatelor electrice de comutaţie şi în cazul acestor
elemente se definesc 2 tipuri de contacte:
 contact normal deschis (n.d.);
 contact normal închis (n.i.).

6 / 31
contact normal deschis contact normal închis
Cele normal deschise sunt testate pentru valoarea 1 logic (ADEVĂRAT) a
semnalului reprezentat de contactul respectiv, în timp ce cele normal închise
sunt testate pentru valoarea 0 logic (FALS) a semnalului de intrare.
La intrările AP pot fi conectate dispozitive care pot avea două stări de
funcţionare, cum ar fi:
 contactele auxiliare ale comutatoarelor şi releelor;
 contactele n.d. sau n.i. ale limitatoarelor de cursă;
 contactele n.d. sau n.i. ale elementelor de protecţie;
 contactele n.d. sau n.i. ale butoanelor de comandă;
 contactele n.d. sau n.i. ale detectoarelor de mărimi fizice;
 ieşirile digitale ale unor aparate de măsură, protecţie sau de comandă.
Pe lângă contactele obişnuite, unii producători pun la dispoziţia
utilizatorilor şi alte elemente de programare corespunzătoare întrărilor
automatelor programabile, întâlnite îndeosebi în cazul circuitelor numerice:
7 / 31
 întrări active pe frontul crescător;
 întrări active pe frontul descrescător;

contact de sesizare pe front crescător contact de sesizare pe front descrescător

 contact normal deschis – validează linia de program la dreapta


elementului dacă linia este validată în stânga acestuia şi bitul
corespunzător este 1 logic;
 contact normal înschis – validează linia de program la dreapta
elementului dacă linia este validată în stânga acestuia şi bitul
corespunzător este în 0 logic;

 contact activ pe frontul crescător – validează partea dreaptă a liniei


de program pentru un ciclu când partea stângă este validată;

8 / 31
 contact activ pe frontul descrescător – validează partea dreaptă a
liniei de program pentru un ciclu când partea stângă este nevalidată.

Exemplu 1:
Contactul de sesizare pe front crescător realizează o operaţie booleană
între starea elementului din stânga şi frontul crescător al variabilei booleene
asociate.

Dacă luăm drept exemplu progamul de pe figura de mai sus, starea


elementului din dreapta (Q0.0) contactului de sesizare pe front crescător va fi
ADEVĂRAT când starea elementului din stânga (I0.0) sa este ADEVĂRAT
şi variabila asociată contactului trece din FALS în ADEVĂRAT.

9 / 31
Exemplu 2:
Contactul de sesizare pe front descrescător realizează o operaţie
booleană între starea elementului din stânga şi frontul descrescător al
variabilei booleene asociate.

Dacă luăm drept exemplu progamul de pe figura de mai sus, starea


elementului din dreapta (Q0.0) contactului de sesizare pe front descrescător
va fi ADEVĂRAT când starea elementului din stânga (I0.0) sa este
ADEVĂRAT şi variabila asociată contactului trece din ADEVĂRAT în
FALS.
 Bobine
Aceste elemente de programare modelează funcţionarea bobinelor
contactoarelor şi releelor electromagnetice.

10 / 31
Bobinele în general sunt atribuite ieşirilor din automatul programabil, spre
proces. Ca şi notaţie cea mai des utilizată este litera „Q”.
De asemenea, pe lângă ieşiri ele mai pot fi asociate şi unor variabile
interne modelând astfel releele auxiliare din schemele electrice de comutaţie.
Similar bobinelor din schemele electrice, aceste elemente de programare
LD pot avea două stări:
 alimentat;
 nealimentat.

simboluri bobină alimentată simbol bobină nealimentată


Fiecare ieşire este identificată în mod unic, lucru care diferă de la un
producător la altul. Fiecărei ieşiri i se asociază o singură bobină şi unul sau mai
multe contacte. La aceste ieşiri pot fi conectate dispozitive care pot avea două
stări de funcţionare:
 elemente de semnalizare luminoasă sau acustică;
 bobinele releelor sau contactoarelor;
11 / 31
 sarcini;
 intrări digitale de la aparate de măsură, comandă sau de protecţie.
În cazul bobinelor simple bitul de la adresa bobinei este setat dacă
rezultatul este 1 logic (ADEVĂRAT), în timp ce în cazul bobinelor cu simboluri
apare o funcţie suplimentară (control timer, numărătoare, salt la o etichetă etc.)

simbol bobină simplă simbol bobine cu funcţii atribuite


Conform standardului IEC 61131 există următoarele tipuri de bobine:

 bobină (alimentată) – pune bitul pe 1 logic când linia


este evaluată la 1 logic şi pe 0 când linia este evaluată la 0 logic;

 bobină negată (nealimentată) – pune bitul pe 0 logic când linia


este evaluată la 1 logic şi pe 1 când este evaluată la 0 logic;

12 / 31
 bobină SET (Latch) – pune bitul pe 1 logic când linia este evaluată la
1 logic şi nimic când linia este evaluată la 0 logic;
 bobină RESET (Unlatch) – pune bitul pe 0 logic când linia este
evaluată la 1 logic şi nimic când linia este evaluată la 0 logic;
 bobină activată pe frontul positiv – pune bitul pe 1 logic atunci când
linia din stânga trece din starea invalidă în starea validă;
 bobină activată pe frontul negativ – pune bitul pe 0 logic atunci când
linia din stânga trece din starea validă în stare invalidă. Bitul va rămâne în
această stare.
 Temporizatoare

Temporizatoarele sunt elemente de programare care modelează


funcţionarea releelor de timp şi a contactelor temporizate.
Aceste elemente e programare sunt utilizate pentru a realiza acţiuni
întârziate sau acţiuni care durează doar un anumit interval de timp.
Temporizatoarele utilizate în programarea echipamentelor de logică programată
au o flexibilitate şi funcţionalităţi mai mari decât cele folosit în schemele
13 / 31
electrice. Producătorii automatelor programabile de regulă pe lângă funcţiile
elementare de temporizare furnizează şi funcţii mai complexe.
Temporizatoarele simple permit realizarea unei acţiuni întârziate cu un
anumit interval de timp ce poate fi prestabilită, iar cele complexe au în vedere
obţinerea unor temporizări variabile în funcţie de anumite condiţii care pot
apărea la un moment dat. În cazul majorităţii producătorilor valoare prestabilită
poate fi exprimată în unităţi de timp [s].
Temporizatoarele au cel puţin o intrare de iniţializare, la activarea căreia
începe temporizarea, respectiv o ieşire. Există situaţii însă când temporizatoarele
sunt prevăzute şi cu o intrare de validare şi încă o ieşire care reprezintă negata
primei ieşiri.

În cadrul standardului IEC 6113-3 există trei tipuri de temporizatoare:


14 / 31
 TP – temporizator tip impuls;
 TON – temporizator la conectare;
 TOF – temporizator la deconectare.
Pentru toate tipurile de temporizatoare baza de timp este de 1 ms
(1/1000 s) şi de regulă valorile prestabilite sunt introduse folosind formatul
literal.
Exemple:

Această metode de utilizare necesită elemente adiţionale de programare


dacă se doreşte utilizarea stării temporizatorului în alte linii de program.

15 / 31
Această metodă asociază o variabilă de tip boolean ieşirii Q, ce ulterior
poate fi utilizat în alte linii de program.
Funcţionarea celor 3 tipuri de temporizatoare se poate studia pe figurile de
mai jos:

16 / 31
unde:
 IN - reprezintă linia de intrare în temporizator;
 Q - ieşirea, care diferă în funcţie de tipul temporizatorului;
 PT - valoarea prestabilită;
 ET - timpul scurs de la activarea temporizatorului.

17 / 31
 Numărătoare

Sunt elemente de programare care pot primi o serie de impulsuri,


analizate în cadrul programului pentru a detecta numărul de apariţii ale unor
evenimente:
 numărul de conectări şi deconectări ale unui aparat;
 numărul de paşi efectuaţi de un motor pas cu pas;
 numărul de cutii etichetate pe o linie de producţie etc.
Există mai multe tipuri de numărătoare:
 unidirecţionale descrescător;
 unidirecţionale crescător;
 bidirecţionale - pot număra atât crescător cât şi descrescător.
Ca şi în cazul temporizatoarelor şi în acest caz pentru fiecare numărător
se precizează o valoare prestabilită, aceasta reprezentând valoarea maximă pe
care o va atinge înainte de a activa ieşirea.

18 / 31
Numărătoarele au cel puţin două intrări, una de numărare şi cealaltă de
iniţializare - la activarea căreia începe să numere impulsurile primite pe prima
intrare - şi o ieşire.
Există numărătoare care sunt prevăzute şi cu o intrare de validare şi o
ieşire care reprezintă negata primei ieşiri.
Conform standardului IEC 61131 există trei tipuri de numărătoare:
 CTU – numărător în sens crescător;
 CTD – numărător în sens descrescător;
 CTUD – numărător bidirecţional.
Constructiv aceste elemente de programare arată în felul următor:

Funcţionarea celor 3 tipuri de numărătoare se poate studia pe figurile de


mai jos:

19 / 31
unde:
 CU/CD – numărare crescător / descrescător;
 Q/QU/QD – ieşirea comparatorului;
 R – aducere la valoare 0;
 LD – încărcare CV cu PV;
 PV – valoarea prestabilită;
 CV – valoarea numărată de la momentul activării.
20 / 31
 Bloc-funcţiile

Datorită existenţei funcţiilor mai complexe, pentru a uşura scrierea


programelor în limbajul de programare LD au apărut aceste elemente noi de
programare numite bloc-funcţii. Aceste elemente modelează diverse categorii de
funcţii, cum ar fi:
 funcţii aritmetice;
 funcţii logice de 8 sau 16 biţi;
 funcţii de tratare a întreruperilor;
 funcţii de încărcare a unor constante numerice;
 funcţii pentru detectarea fronturilor crescătoare sau descrescătoare a
semnalelor etc.
Modul lor de funcţionare şi formatul lor diferă de la un producător la
altul.

21 / 31
3.4.1. Studiu de caz

În vederea asigurării continuității în alimentarea cu energie electrică a


consumatorilor, se prevede alimentarea acestora de la două surse diferite.
La funcționarea normală consumatorii se alimentează de la una din
surse, iar în caz de avarie a acesteia sau a căii de alimentare, ei sunt trecuți
automat pe cea de a doua sursă după un timp de așteptare (necesar deconectării
selective prin protecții a elementului avariat), cu ajutorul instalației de
anclanșare automată a alimentării de rezervă (AAR).
Schema instalaţiei de anclanșare automată a alimentării de rezervă se
prezintă pe figura următoare.

22 / 31
unde:
 A, B – surse de alimentare cu energie electrică;
 C – consumator;
 IA, IB, I1, I2 – întreruptoare;
 L1, L2 – liniile de alimentare;
 1 – releu cu temporizare la revenire;
23 / 31
 2 – releu minimal de tensiune;
 3 – releu maximal de tensiune;
 4 – releu cu temporizare la acţionare;
 5 – releu intermediar;
 BD – bobină de declanşare;
 BA – bobină de anclanşare;
 TT – transformator de tensiune.
Modalităţile de funcţionare sunt următoarele:
 funcționare normală: stația C de unde pleacă consumatorii, este
alimentată prin linia L1, întreruptoarele IA, I1 fiind închise, releul 1 este
acționat prin contactele 23-24 ale lui I1. Releul minimal de tensiune 2 este
de asemenea acționat (sesizează tensiune corespunzătoare pe C), având
deci contactul deschis. Dacă există tensiune şi pe linia de rezervă L2
(întreruptorul IB închis), atunci şi releul maximal de tensiune 3 este
acționat, având deci contactul închis;
 declanșează voit I1: contactele 23-24 se deschid, releului 1 i se întrerupe
alimentarea, dar prin contactul său inferior cu temporizare la revenire, prin

24 / 31
contactele 11-12 ale lui I1 (care s-au închis), şi prin contactele 11-12 ale lui
I2, se alimentează bobina de anclanșare BA a lui I2, astfel C se alimentează
prin L2;
 declanșează IA, sau tensiunea pe C scade: releul minimal de tensiune 2
revine, îşi închide contactul şi dacă există tensiune pe L2, prin contactul
releului maximal de tensiune 3 se alimentează releul cu temporizare la
acționare 4 care, după timpul reglat (timp de așteptare AAR) acționează şi
alimentează releul intermediar 5. Acesta, la rândul său alimentează bobina
de declanșare BD a întreruptorului I1 (contactele 13-14 ale lui I1 fiind încă
închise). Acesta se declanșează şi apoi, în modul descris anterior, se
comandă anclanșarea întreruptorului I2, C fiind alimentat prin L2.

Program Studiu_de_caz
VAR
S0 AT%IX0.0:Bool; (*Deconectare I1*)
S1 AT%IX0.1:Bool; (*Conectare I1*)
S2 AT%IX0.2:Bool; (*Deconectare IA*)
S3 AT%IX0.3:Bool; (*Conectare IA*)
S4 AT%IX0.4:Bool; (*Deconectare IB*)

25 / 31
S5 AT%IX0.5:Bool; (*Conectare IB*)
S6 AT%IX0.6:Bool; (*Deconectare I2*)
BA AT%MX0.0:Bool;
BD AT%MX0.1:Bool;
R2 AT%MX0.2:Bool;
R3 AT%MX0.3:Bool;
R5 AT%MX0.4:Bool;
RI AT%MX0.5:Bool;
I1 AT%QX0.1:Bool; (*LED1*)
I2 AT%QX0.2:Bool; (*LED2*)
IA AT%QX0.3:Bool; (*LED3*)
IB AT%QX0.4:Bool; (*LED4*)
T1:TIME:=T#2s;
T2:TIME:=T#15s;
Durata:TIME:=T#10s;
R1:TOFF;
R4:TON;
REPUNE:RS;
END_VAR

26 / 31
27 / 31
28 / 31
Se observă faptul că întreruptoarele IA, I1 si IB se automenţin prin
schemă, iar I2, pentru a folosi şi aceasta posibilitate, prin instrucţiunea Set.
Transformatoarele de tensiune (TT) n-au mai fost introduse, s-a acceptat
că tensiunea controlată de ele este cea corespunzătoare prin faptul că,
întreruptoarele prin care se asigură aceasta tensiune, sunt închise (linia de cod
11).

29 / 31
Temporizarea la revenire T1 a lui R1 poate fi scurtă, este necesară doar
pentru a asigura acționarea sigură a lui I2. Temporizarea la acționare se rezolvă,
ca o posibilitate alternativă, prin instrucţiunea GE (mai mare sau egal) a
timpului trecut de la activarea bloc-funcţiei R4 de tip TON, accesibilă la ieșirea
operandului ET a acesteia, cu un timp prescris, variabila DURATA (deci
temporizarea lui va trebui să fie T2 >= DURATA) . În acest caz, deoarece bloc-
funcţia de tip TON nu se poate reseta, ieșirea ET păstrează timpul realizat, adică
un timp care satisface în continuare condiția mai mare sau egal cu DURATA. Ca
urmare, ieșirea acesteia nu poate fi direct comanda lui R5 cum cere schema căci,
în continuare după o anclanșare automată a rezervei, la orice încercare de
reconectare a lui I1, R5 prin BD, totdeauna l-ar şi deconecta (linia de cod 3). Se
va folosi variabila intermediară RI ca ieșire a blocului de comparare, dar aceasta
se va aplica intrării SET a unui bistabil cu reset dominant, REPUNE (de tip R-
S). Doar ieșirea acestui bloc va fi R5. Aplicând la intrarea RESET comanda S1
de conectare a lui I1, R5 se va reseta, indiferent cât este RI, adică indiferent cât a
rămas operandul ET din etapa anterioară şi deci BD rămâne neactivat, adică I1
rămâne conectat.

30 / 31
Dacă în timpul de așteptare DURATA, IA revine (L1 se reconectează),
atunci I1 nu se va mai deconecta şi I2 nu se va mai conecta.
Cu acest program se pot realiza următoarele manevre:
 funcționare normală, C se alimentează prin L1: prin IA (S3) si prin I1
(S1) conectate; apoi se conectează L2 prin IB (S5). Ledurile 3 (IA), 1 (I1)
şi 4 (IB) se aprind;
 declanșarea voita a lui I1 (se apasă S0): I1 se declanșează, I2 se
anclanșează, C este alimentat prin linia L2; ledul 1 (I1) se stinge, ledul 2
(I2) se aprinde;
 repunerea lui L1: se declanșează I2 (S6 de la panoul automatului) şi se
anclanșează I1 (S1), C este alimentat prin linia L1; se stinge ledul 2 (I2) şi
se aprinde 1 (I1);
 declanșează IA (S2): ledul 3 (IA) se stinge;
o dacă în intervalul de timp DURATA = 10s se reconectează IA (S3), ledul
3 (IA) se reaprinde, C este alimentat în continuare prin linia L1;
o dacă în intervalul de timp DURATA = 10s nu se reconectează IA (S3), I1
va declanşa, I2 va anclanșa, C va fi alimentat prin L2; ledul 1 (I1) se
stinge, ledul 2 (I2) se aprinde;
31 / 31

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