Sunteți pe pagina 1din 47

Automate programabile

Limbajul de programare
de tip Scheme cu
contacte (LD)

Originile limbajului LD

Limbajul bazat pe scheme cu contacte


- Ladder Diagram (LD) provine de la
reprezentarea grafic folosit pentru
schemele electrice de comand

Comenzile erau realizate cu ajutorul


releelor

Limbajul LD a fost dezvoltat pentru a


uura crearea programelor i
meninerea facil a acestora

reprezentri realizate cu calculatorul


bazate pe reprezentarea grafic a
schemelor cu contacte care erau uor
de neles
se reduc costurile de nvare a
limbajului i de suport tehnic

Scrierea programului n LD

Scrierea unui program n limbajul LD presupune desenarea unei


diagrame (diagram LD) similare unei scheme electrice cu contacte.
Elementele componente ale diagramei LD modeleaz funcionarea
elementelor unei scheme cu contacte.
Interpretarea funcionrii diagramei LD este similar interpretrii
schemelor electrice cu contacte.
Elementele de baz utilizate pentru scrierea unui program n limbaj LD
sunt:

contactele,
bobinele,
temporizatoarele,
numrtoarele i
blocurile funcionale (funciile).

Contactele
Contactele

sunt elemente de programare


care modeleaz contactele aparatelor
electrice de comutaie.
Ca i n cazul acestora din urm, contactele
pot fi de tip n.d. (a) i n.i. (b).

IN 0 0 1
a)

IN 0 0 2

IN 0 0 3
b)

Contactele

n cadrul unui program LD, contactele pot fi asociate


intrrilor AP, ieirilor AP sau unor variabile interne.
La intrri pot fi conectate dispozitive care au dou
stri de funcionare cum ar fi:

contactele auxiliare ale contactoarelor i releelor,


contactele n.. sau n.d. ale butoanelor de comand,
contactele n.. sau n.d. ale limitatoarelor de curs,
contactele n.. sau n.d. ale detectoarelor de mrimi fizice,
contactele n.. sau n.d. ale elementelor de protecie,
ieirile digitale ale unor aparate de msur, protecie sau
comand,
ieirile digitale ale altor AP sau sisteme de comand etc.

Contactele

Pe lng contactele obinuite, unii productori pun


la dispoziia programatorilor i alte elemente de
programare corespunztoare intrrilor AP, ntlnite,
ndeosebi, n cazul circuitele numerice, cum ar fi:
intrri cu memorie (latch),
intrri active pe frontul cresctor
intrri active pe frontul descresctor.

Bobinele

Bobinele sunt elemente de programare care


modeleaz funcionarea bobinele contactoarelor i
releelor electromagnetice.
Ca i n cazul bobinelor din schemele electrice,
bobinele din programele LD pot avea dou stri:
alimentate sau nealimentate.

Bobinele

Ele pot fi asociate ieirilor automatului dar i unor variabile


interne modelnd astfel releele auxiliare din cadrul schemelor
electrice cu contacte. Bobinele sunt elemente de programare
care modeleaz funcionarea bobinele contactoarelor i
releelor electromagnetice.
Ca i n cazul bobinelor din schemele electrice, bobinele din
programele LD pot avea dou stri: alimentate sau
nealimentate.
Ele pot fi asociate ieirilor automatului dar i unor variabile
interne modelnd astfel releele auxiliare din cadrul schemelor
electrice cu contacte.

Bobinele

Fiecare ieire este de identificat n mod unic, modul de


identificare diferind de la un productor la altul.
Fiecrei ieiri i se asociaz o singur bobin i unul sau mai
multe contacte ce pot fi utilizate n schem n mod asemntor
contactelor auxiliare ale contactoarelor i releelor.
La aceste ieiri pot fi conectate dispozitive care au dou stri
de funcionare cum ar fi:

bobinele contactoarelor sau releelor,


elemente de semnalizare acustic sau luminoas,
sarcini de putere mic,
intrrile digitale ale unor aparate de msur, protecie sau
comand,
intrrile digitale ale altor AP sau sisteme de comand etc.

Temporizatoarele

Temporizatoarele sunt elemente de programare


care modeleaz funcionarea releelor de timp i a
contactelor temporizate.
Sunt utilizate pentru a realiza aciuni ntrziate sau
ce dureaz un anumit interval de timp.

Temporizatoarele

Productorii de AP furnizeaz att funcii elementare


de temporizare ct i funcii mai complexe.
Temporizatoarele utilizate n programele LD au o
flexibilitate i o funcionalitate mult mai mare dect
temporizatoarele utilizate n schemele electrice.
Temporizatoarele simple permit realizarea unei
aciuni ntrziate cu un anumit interval de timp ce
poate fi programat.
Temporizatoarele complexe au n vedere obinerea
unor temporizri variabile, funcie de anumite condiii
care apar la un moment dat.

Temporizatoarele

Fiecare temporizator din schem este identificat n mod unic,


modul de identificare fiind diferit de la un productor la altul.
n cazul n care baza de timp este aceeai pentru toate
temporizatoarele, precizat n manualul de programare a AP,
aceasta este omis.
Valoarea prestabilit poate fi exprimat n uniti de timp (s).
Temporizatoarele au cel puin o intrare de iniializare, la
activarea creia ncepe temporizarea i o ieire.
n unele variante, temporizatoarele sunt prevzute i cu o intrare
de validare i nc o ieire care reprezint negata primei ieiri.

Numrtoarele

Numrtoarele sunt elemente de programare care poate


primi o serie de impulsuri care sunt analizate n cadrul
programului LD pentru a detecta numrul de apariii ale
unor evenimente cum ar fi:

numrul de pai efectuai de un motor pas cu pas,


numrul de conectri-deconectri ale unui aparat.
numrul de sticle care au fost umplute ntr-o staie de mbuteliere,
etc.

Numrtoarele

Numrul de evenimente poate fi comparat cu anumite valori


prestabilite i n funcie de rezultatul acestor comparaii pot fi
luate anumite decizii i date comenzile corespunztoare.
Exist mai multe tipuri de numrtoare, printre cele mai uzuale
fiind:

numrtoarele unidirecionale cresctoare


numrtoarele unidirecionale descresctoare i
numrtoarele bidirecionale care pot numra att descresctor
ct i cresctor.

Fiecare numrtor din schem este identificat n mod unic,


modul de identificare fiind diferit de la un productor la altul.

Numrtoarele

Pentru fiecare numrtor se precizeaz valoarea


prestabilit, aceasta reprezentnd valoarea maxim
pe care o va numra numrtorul dup care va
activa ieirea.
Numrtorul are cel puin dou intrri, una de
numrare i una de iniializare (la activarea acesteia
numrtorul ncepe s numere impulsurile sosite la
intrarea de numrare) i o ieire.
Alte variante de numrtoare sunt prevzute i cu o
intrare de validare i o ieire care reprezint negata
primei ieiri.

Blocurile funcionale

Pentru materializarea unor funcii mai complexe menite


s uureze scrierea programelor n limbaj LD sunt
utilizate blocurile funcionale (BF).
BF modeleaz diverse categorii de funcii cele mai
utilizate fiind:

funcii de ncrcare a unor constante numerice,


funcii aritmetice,
funcii logice pe 8 sau 16 bii,
funcii de conversie a informaiei din diferite formate (binar,
BCD, Gray etc),
funcii de tratare a ntreruperilor,

Blocurile funcionale

funcii pentru detectarea fronturilor cresctoare sau


descresctoare a semnalelor,
funcii pentru realizarea controlerelor i secveniatoarelor,
funcii pentru actualizarea rapid a intrrilor i ieirilor,
funcii pentru comanda numrtoarelor de mare vitez.

Formatul i modul de funcionare a blocurilor


funcionale difer de la un automat la altul, fiind
specific fiecrui productor n parte.

Restricii n scrierea programelor


orientate pe scheme de contacte
Atunci

cnd se realizeaz scrierea unui


program LD pentru un automat programabil
concret, trebuie s se in seama de limitrile
pe care pachetul de programe le poate avea:

limitri privitoare la formatul diagramei LD


limitri legate de modul de execuie a programului

Limitri privitoare la formatul


diagramei LD
Limitrile

in de:

proprietile intrinseci ale limbajului;


implementrile specifice ale diferitelor pachete de
programe comerciale

Sunt

datorate soluiilor tehnice adoptate de


firmele productoare pentru implementarea
diverselor elemente ale limbajului.

Limitri privitoare la formatul


diagramei LD

O parte a acestor limitri sunt prezentate n


continuare:

o bobin trebuie s fie alimentat ntotdeauna prin


intermediul unui contact;
bobina trebuie s fie introdus ntotdeauna la captul din
dreapta al liniei;
toate contactele trebuie s fie pe direcie orizontal;
numrul contactelor pe o linie de alimentare a unei bobine
este limitat prin program;

Limitri privitoare la formatul


diagramei LD

un grup de contacte poate alimenta o singur bobin;


realizarea buclelor poate fi realizat ntr-un singur mod sau
poate s nu fie permis;
sensul curentului prin circuit este de la stnga la dreapta
diagramei.

De obicei manualele de utilizare ale programelor


conin toate informaiile necesare pentru ca
utilizatorul s poat scrie programul n formatul
acceptat de AP.

Limitri legate de modul de execuie a


programului

Funcionarea AP se bazeaz pe execuia repetat a


programului pe care l are nscris n memorie.
Fiecare ciclu de execuie a programului cuprinde 3
etape separate:

citirea intrrilor
execuia instruciunilor din program
actualizarea ieirilor

Durata unui astfel de ciclu depinde att de viteza


procesorului cu care este dotat AP, ct i de
lungimea programului utilizatorului.

Limitri legate de modul de execuie a


programului

Etapa de citire a intrrilor, se citesc strile terminalelor de


intrare n AP i conform acestora se nscrie informaia n tabelul
intrrilor.
Etapa de execuie a instruciunilor din program, valorile
intrrilor sunt folosite pentru execuia instruciunilor, rezultatul
acestora fiind nscrise n tabela ieirilor.
Etapa de actualizare a ieirilor const n transferarea
informaiei din tabela ieirilor ctre terminalele de ieire a
automatului.
Cele trei etape amintite mai sus se execut separat,
modificarea semnalelor de la intrrile AP n etapa a doua
nu are efect asupra valorilor intrrilor folosite pentru
execuia instruciunilor. Ele vor fi folosite doar dup ce vor fi
citite n urmtoarea etap de citire a intrrilor.

Limitri legate de modul de execuie a


programului

Dac n etapa a doua, n urma execuiei uneia sau


mai multor instruciuni se modific valoarea unei
ieiri n tabela de ieiri, aceast modificare nu va
apare efectiv la terminalul de ieire corespunztor,
dect n etapa a treia. Atunci se realizeaz
actualizarea ieirilor pe baza tabelei ieirilor
calculat n etapa de execuie a instruciunilor care a
precedat-o.
n scrierea unui program n limbajul LD trebuie avute
n vedere i modul n care este interpretat programul
scris.

Interpretarea programelor LD
Exist

dou moduri de interpretare a unui


program LD:

citirea se face pe linie - se citesc contactele pe


linie, de la stnga la dreapta, linie cu linie,
ncepnd cu prima linie i terminnd cu ultima;
citirea se face pe coloan - se citesc contactele
pe coloan, cte unul, de sus pn jos, coloan
cu coloan, ncepnd cu prima coloan din
stnga i terminnd cu ultima din dreapta.

Interpretarea programelor LD

n ambele situaii trebuie s se aib n vedere diferena fa de


schemele de comand cu relee:

Relee: O modificare n starea unui contact din circuitul de


alimentare a bobinei unui contactor poate duce la modificarea
imediat a strii acesteia indiferent dac mai exist sau nu alte
elemente legate n serie sau paralel cu acel contact.
Program LD: starea bobinei nu va fi modificat dect dup ce
se va citi starea tuturor elementelor prin care aceasta este
alimentat.

Datorit vitezei mari de execuie a procesorului, acest lucru nu


pune n general nici o problem. Ea trebuie considerat n
cazurilor unor aplicaii critice unde ar putea s apar o
funcionare diferit de cea dorit.

Interpretarea programului LD - Citirea


pe linie

Interpretarea programului LD - Citirea


pe coloan

Limbajul LD n standardul IEC 61131-3


Prin

introducerea acestui limbaj n standardul


IEC 61131-3 s-a cutat uniformizarea unui
ntreg set de limbaje care se proclamau a fi
de tip scheme cu contacte.

Execuia programului
Linie a programului

Liniile programului sunt


evaluate de la stnga la
dreapta i de sus n jos
Ramificaiile din cadrul
unei linii sunt evaluate
de la stnga sus la
dreapta jos

Faz

Ramificaie
H

B
F
I

Nul

Bobine fr memorie

Bitul

corespunztor elementului este pus n 0 cnd


tensiunea de alimentare este oprit

Bobin -( ) Pune

bitul n 1 cnd linia este evaluat la 1 logic i pus n 0


cnd linia este evaluat la 0 logic

Bobin negat -( / ) Pune

bitul n 0 cnd linia este evaluat la 1 logic i pus n 1


cnd linia este evaluat la 0 logic
n general nu e folosit datorit confuziei pe care o poate
introduce

Bobine fr memorie

Bobin Set (Latch) -(S) Pune

bitul n 1 cnd linia este evaluat la 1 logic i nimic


cnd linia este evaluat la 0 logic

Bobin Reset (Unlatch) -(R) Pune

bitul n 0 cnd linia este evaluat la 1 logic i nimic


cnd linia este evaluat la 0 logic

Contacte
Contact

Valideaz linia de program la dreapta elementului


dac linia este validat n stnga acestuia i bitul
corespunztor e n 1 logic.

Contact

normal deschis -| |-

normal nchis -|/|-

Valideaz linia de program la dreapta elementului


dac linia este validat n stnga acestuia i bitul
corespunztor este n 0 logic

Contacte
Contact

Valideaz partea dreapt a liniei de program


pentru un ciclu cnd partea stng este validat

Contact

activ pe frontul cresctor -|P|-

activ pe frontul descresctor -|N|-

Valideaz partea dreapt a liniei de program


pentru un ciclu cnd partea stng este invalidat

Operaii cu memorare sau fr


memorare

Definiie
Valorile cu memorare i menin valoarea i dup un
ciclu deconectare-reconectare la sursa de alimentare
Valorile fr memorare iau valoarea iniial (de obicei
0) dup un ciclu deconectare-reconectare la sursa de
alimentare
IEC 61131-3 permite valorilor s fie definite ca fiind cu
memorare
n majoritatea AP-urilor doar temporizatoarele i
bobinele sunt elemente cu memorare.

Bobine cu memorare

Bitul din memorie corespunztor rmne nemodificat dup


ntreruperea i reconectarea alimentrii
Bobin cu memorie -(M) Pune

bitul n 1 cnd linia este valid i o pune n 0 cnd este


invalid.

Bobin Set cu memorare (Latch) -(SM) Pune

bitul n 1 cnd linia este valid i nu face nimic cnd este

fals

Bobin Reset cu memorare (Unlatch) -(RM) Pune

fals

bitul n 0 cnd linia este valid i nu face nimic cnd este

Bobine activate pe front


Bobin

Pune bitul n 1 logic cnd linia din stnga trece din


starea invalid n starea valid
Bitul rmne n aceast stare

Bobin

activat pe frontul pozitiv -(P)-

activat pe frontul negativ -(N)-

Pune bitul n 0 logic cnd linia din stnga trece din


starea valid n starea invalid
Bitul rmne n aceast stare

Temporizatoare in LD

Exist 3 instruciuni ce realizeaz funciile de


temporizare n cadrul standardului IEC 61131-3

TP Temporizator tip impuls


TON Temporizator la conectare
TOF Temporizator la deconectare

Valorile timpului

Baza de timp este de 1ms (1/1000 s)


Valorile sunt introduse folosind formatul literal

Temporizatoare in limbajul LD

Dou variante de
vizualizare n funcie de
folosirea ieirilor EN/ENO

Pump_Tmr

IN
T#200ms

prima metod necesit elemente


suplimentare de programare dac
este necesar utilizarea strii
temporizatorului n alte linii de
program
a doua metod asociaz un bit lui
Q ce poate fi apoi folosit de alte
linii de program, ENO=EN

PT

TON

Q
ET

178

Pump_Tmr
TON
IN
ENO
Q
T#200ms

PT

ET

Pump_Tmr_DN

178

Funcionarea temporizatoarelor

IN = condiia de intrare a
liniei
Q = ieirea comparatorului

difer n funcie de tipul de


temporizator

PT = valoarea prestabilit
ET = timpul scurs de la
activarea temporizatorului

Temporizare tip impuls (TP)


IN
Q
ET

PT
|
0

Temporizare la conectare (TON)


IN
Q
ET

PT
|
0

Temporizare la deconectare (TOF)


IN
Q
ET

PT
|
0

Numrtoare n LD

Trei instruciuni cu funcii de numrtor


n IEC 61131

CTU Numrtor cresctor


CTD Numrtor descresctor
CTUD Numrtor bidirecional

Toate trei contorizeaz tranziiile liniei

Numrtoare n LD

Dou vizualizri
posibile n funcie de
utilizarea ieirilor
EN/ENO

prima metod necesit


elemente de programare
suplimentare dac starea
temporizatorului este necesar
n alte linii de program
a doua metod asociaz ieirii
Q un bit care poate fi folosit n
alte linii de program, ENO=EN

Load_Cnt
CTU
IN
ENO

200

PV

CV

Load_Cnt_DN

178

Load_Cnt
CTU
IN

R
200

PV

CV

178

Funcionarea numrtoarelor
Numrtor cresctor (CTU)

Parametri
CU/CD = Numrare
cresctoare/descresctoare
Q/QU/QD = Ieirea
comparatorului
R = Aducere n Zero
LD = ncrcarea CV cu PV
PV = Valoarea prestabilit
CV = Valoarea numrat de
la momentul activrii

IN
Q

...

...

PV
|
0

CV

Numrtor descresctor (CTD)


IN
Q
PV
|
0

CV

LD

...

...

Funcionarea numrtoarelor

Parametri
CU/CD = Numrare
cresctoare/descresctoare
Q/QU/QD = Ieirea
comparatorului
R = Aducere n Zero
LD = ncrcarea CV cu PV
PV = Valoarea prestabilit
CV = Valoarea numrat de
la momentul activrii

Numrtor bidirecional (CTUD)


CU
QU
CD
QD
PV
|
0

CV

R
LD

...

...

Setul de instruciuni IEC1131-3

IEC 61131-3 furnizeaz un set de baz de instruciuni care s realizeze


operaiile de baz (81 instruciuni LD)

Conversii ale tipurilor de date - Trunc, Int_to_Sint, Dint_to_Real, Bcd_To_Int


Operaii Booleene - Bit Test, Bit Set, One Shot, Semaphores
Temporizatoare / Numrtoare - Ton, Tp, Ctu, Ctd, Ctud
Operaii aritmetice simple - Add, Sub, Mul, Div, Mod, Move, Expt
Diferite operaii matematice - Abs, Sqrt, Ln, Log, Exp, Sin, Cos, Tan, Asin, Acos, Atan
Deplasri de bii - Shl, Shr, Ror, Rol
Operaii logice - And, Or, Xor, Not
Selecie - Sel, Max, Min, Limit, Mux
Comparaie - GT, GE, EQ, LE, LT, NE
iruri de caractere - Len, Left, Right, Mid, Concat, Insert, Delete, Replace, Find
Control - JMP, LBL, JSR, RET

Extinderea setului de instruciuni


IEC1131-3
Toate

operaiile complexe sunt lsate pentru


a fi definite de productor sau utilizator

Operaiile cu fiiere, PID, diagnostic, bucle


For/Next, cutrile, sortrile nu sunt n IEC1131-3
Sunt permise extensii astfel nct productorii s
vin n ntmpinarea cerinelor clienilor
Toi productorii au definite propriile lor extensii

Bibliografie
Ron

Bliss, Introduction to IEC1131-3 Ladder


Diagram, Allen-Bradley
SR EN 61131-3, Automate programabile.
Partea 3. Limbaje de programare
C.G.Haba, Sisteme de comand a mainilor
electrice, Ed. Gh.Asachi, Iai

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