Documente Academic
Documente Profesional
Documente Cultură
Fig.11. Editorul LD
Elemente de execuie:
dou motoare cu dou sensuri de rotaie, unul pentru micarea
orizontal i unul pentru cea vertical;
Elemente de msur:
patru limitatoare de curs;
un buton de pornire.
2. Soluia de automatizare
Program main:
Intrare fizic
Pornire
l1
l2
l3
l4
Adres intern
I:1/1
I:1/2
I:1/3
I:1/4
I:1/5
Ieire fizic
M1S
M1D
M2S
M2J
Adres intern
O:3/1
O:3/2
O:3/3
O:3/4
Asocierea etapelor cu bii din fiierul de bit B3 i alegerea fiierului de timer este
pezentat n tabelul 1.2:
Tabelul 1.2.
Etapa
1
2
3
4
5
6
7
8
Adresa bit
B3/1
B3/2
B3/3
B3/4
B3/5
B3/6
B3/7
B3/8
Temporizare
Temporizare 1
Fiier de timer
T4:0
Comentarii:
Element de execuie:
un motor cu dou sensuri de rotaie
Elemente de msur:
dou limitatoare de curs
4 butoane
2. Soluia de automatizare
Pentru controlul acestei aplicaii se alege un automat programabil de
tip PEP Smart PLC pentru care se dezvolt un proiect ISaGRAF. Proiectul
conine dou programe, un program principal i un program fiu, numit Osc.
Programul Osc este pornit i oprit de ctre programul principal i este
Program main:
Program osc:
Pornire micare oscilatorie
1
ACTION (P):
IF NOT (L0) THEN
MD:=TRUE;
ELSE
MS:=TRUE;
END_IF;
END_ACTION;
100
100
MS=TRUE;
MD=TRUE;
201
Buton oprire
101
L0=TRUE;
202
L1=TRUE;
P=TRUE;
P=TRUE;
Schimbare sens
202
Schimbare sens
3
ACTION (P):
MS:=FALSE;
MD:=TRUE;
END_ACTION;
101
102
ACTION (P):
MD:=FALSE;
MS:=TRUE;
END_ACTION;
301
302
203
L0=TRUE;
Schimbare sens
Schimbare sens
100
102
100
302
ACTION (P):
MS:=FALSE;
oprit:=TRUE;
END_ACTION;
303
103
blocare
blocare
1<>1
1<>1
1
1
ACTION (P):
MD:=FALSE;
oprit:=TRUE;
END_ACTION;
Comentarii :
Propunere:
S se modifice programul n condiiile n care la apsarea butonului de
oprire, ciclul se ncheie totdeauna cnd mobilul ajunge prima dat n partea
dreapt.
Programul Timing:
IF (timp>t#5s) THEN
banda_2:=FALSE;
TSTOP(timp);
timp:=t#0s;
END_IF;
Programul Main:
Observaii:
seciunea de end (care conine programe ciclice) este necesar
deoarece timpul trebuie verificat la fiecare ciclu automat astfel nct
banda 2 s poat fi oprit n orice moment dac perioada ei de
activare a expirat;
contorizarea timpului este fcut cu ajutorul funciilor TSTART i
TSTOP;
dac o sticl trebuie s fie expulzat n timp ce o alta se gsete pe
conveiorul 2, timer-ul este resetat astfel nct contorizarea timpului
repornete de la 0 pentru a asigura i evacuarea acestei ultime sticle;
dac numrul de sticle evacuate consecutiv este 3, atunci vor ncepe
dou secvene de aciuni ce trebuie s aib loc simultan i anume:
o retragerea pistonului
o activarea dezactivarea alarmei.
Abia dup ncheierea ambelor secvene procesul poate reporni,
situaie reprezentat printr-un paralelism n cadrul diagramei.
Propuneri:
S se construiasc o diagram Ladder pentru un automat de tip Allen
Bradley, care s controleze acest proces.
S se modifice proiectul ISaGRAF dac aplicaia se schimb astfel:
o Dac pe band nu mai vin sticle timp de 2 minute, banda 1 va
fi oprit, se activeaz alarma, repornirea procesului avnd loc
la apsarea butonului Pc.
Dicionarul de variabile:
o
o
o
o
foto_1:
foto_2:
foto_3:
foto_4:
fotocelula postului 1;
fotocelula postului 2;
fotocelula postului 3;
fotocelula postului 4.
Program bariera:
Program start:
Program Post1:
Program Post2:
Program Post4:
Program Post3:
Observaii:
Toate programele dezvoltate sunt independente i ruleaz n paralel,
fapt ce uureaz foarte mult nelegerea i realizarea programului.
Determinarea faptului c mai exist sau nu maini pe band s-a fcut
cu ajutorul unei variabile de tip integer, nr_maini, o alt abordare
de genul testarea tuturor senzorilor de prezen fiind incorect,
putnd exista maini pe band dar ntre posturi, deci toi senzorii de
prezen putnd fi inactivi la un moment dat, dei exist maini pe
band.
Propunere:
S se modifice proiectul corespunztor situaiei n care pentru un
timp Tasteptare nu mai urc nicio main pe band, situaie n care
bariera va fi cobort iar reluarea procesului se poate face numai
prin apsarea unui buton, introdus suplimentar n sistem.
Program banda_0:
Program banda_1:
Program Cilin_A
Program Cilin_B
Cilindru B n ateptare
ACTION (P):
B_retras:=FALSE;
B_avans:=FALSE;
END_ACTION;
Pn apare pachet
1
ACTION (P):
B_avans:=TRUE;
END_ACTION;
Pn la limita B1
2
B1=TRUE;
Pornire banda 3
ACTION (P):
banda_3:=TRUE;
B_avans:=FALSE;
B_retras:=TRUE;
END_ACTION;
Pn la limita B0
B0=TRUE;
Oprire banda 3
4
ACTION (P):
banda_3:=FALSE;
END_ACTION;
4
Program Cilin_C:
Programul Convers:
Programul convers realizeaz conversia din uniti CAN
(Convertor Analog Numeric) n valori exprimate n uniti de msur
inginereti. Intrarea analogic a modulului de intrare lucreaz pe 12 bii i
msoar un curent de 0-20 mA, dar traductorul de la cntar genereaz un
curent de 4-20 mA. n aceast situaie trebuie fcut o translaie de scal. Se
observ c la valoarea minim a domeniului de msur traductorul
genereaz 4mA, corespunztoare valorii 819 citit de automat, valoare
pentru care automatul trebuie s indice valoarea minim a mrimii msurate.
Astfel formula de conversie este:
val_ing = (val_cit - 819) * (Ds - Di) / (4096 - 819)
unde:
val_ing valoarea n uniti inginereti
val_cit valoarea citit n uniti CAN
Di domeniul inferior de msur
Ds domeniul superior de msur
n cazul nostru: Ds = 100, Di = 0, astfel nct instruciunea n programul
convers se scrie:
cantar:=ANA(((REAL(traductor_cantar)-819)*100)/3277);
Observaii:
s-au folosit 2 variabile pentru memorarea tipului pachetelor deoarece
la un moment dat n instalaie pot exista 2 pachete neevacuate, unul
pe cntar sau pe banda 1 i altul n curs de evacuare;
comunicaia ntre programul banda_0 care determin tipul pachetului
i programul banda_1 se face prin intermediul variabile tip_det, cu
valoarea TRUE din momentul n care tipul unui pachet a fost
determinat pn cnd pachetul a ajuns deasupra planului elevator.
Propunere:
S se modifice programul n cazul n care nu exist un senzor de
prezen pachet n dreptul cntarului, aceasta determinndu-se prin
creterea greutii de pe cntar peste o valoare numit marja.
Identificarea tipului pachetului se va face dup un timp numit
Tstabilizare de la detectarea prezenei pachetului deasupra
cntarului.
Sistemul conine:
un malaxor pivotant care se poate roti n jurul axei sale i poate
pivota dreapta/ stnga;
dou containere pline cu substanele A, respectiv B, prevzute cu
robinei pentru golire;
o band transportoare pe care vin brichete solubile;
un senzor de detecie brichet poziionat sub banda transportoare,
activ atta timp ct prin dreptul su trece o brichet (d);
un cntar prevzut cu un robinet pentru golire, care transmite dou
semnale digitale A i B, corespunztoare anumitor valori ale
greutii, respectiv semnalul Z, atunci cnd cntarul este gol.
Elemente de msur:
trei senzori de greutate pentru referinele A, B i zero;
dou limitatoare de curs;
un detector de trecere.
2. Soluia de automatizare
Programul Main:
5
Pornire malaxor pentru 15 secunde
ACTION (P):
rotire:=TRUE;
timer:=t#0s;
TSTART(timer);
END_ACTION;
Pn expir timpul
6
lim_dreapta=TRUE;
Oprire malaxare i pivotare
ACTION (P):
rotire:=FALSE;
piv_dreapta:=FALSE;
piv_stanga:=TRUE;
END_ACTION;
lim_stanga=TRUE;
Oprire pivotare
ACTION (P):
piv_stanga:=FALSE;
END_ACTION;
9
Intrare fizic
START
A
B
Z
lim_dreapta
d
lim_stanga
Adres intern
I:1/1
I:1/2
I:1/3
I:1/4
I:1/5
I:1/6
I:1/7
Ieire fizic
Valva_A
Valva_B
Valva_C
Mt
Rotire
Pit_dreapta
Pit_stanga
Adres intern
O:3/1
O:3/2
O:3/3
O:3/4
O:3/5
O:3/6
O:3/7
Etapa
1
2
3
4
5
6
7
8
9
102
103
104
105
Adresa bit
B3/1
B3/2
B3/3
B3/4
B3/5
B3/6
B3/7
B3/8
B3/9
B3/10
B3/11
B3/12
B3/13
Temporizare
Temporizare 1
Fiier de timer
T4:0
Observaii:
n diagrama SFC se pot observa cele dou secvene paralele,
aducerea lichidelor i aducerea brichetelor n malaxor. Ieirea din
paralelism se face atunci cnd ambele secvene s-au ncheiat.
Pentru exemplificare, temporizarea a fost realizat cu instruciunea
TSTART dei n acest caz putea fi folosit variabila global
GS006.t. Nu s-a mai folosit funcia TSTOP pentru c n etapa 7
variabila timer este resetat, deci incrementarea ei va rencepe de
la 0 din acel moment, n alte etape sau tranziii variabila nefiind
folosit.
Propunere:
S se modifice programul pentru cazul n care aducerea brichetelor
ncepe odat cu golirea cntarului iar numrul de brichete aduse
este oarecare (egal cu n).
Programul main:
Observaii:
n program au fost folosite 2 paralelisme, fiecare avnd cte 2
secvene ce se execut simultan.
A doua secven paralel implementeaz condiia c o dat cu
umplerea unei sticle, alta s fie astupat.
Propunere:
S se modifice programul n situaia n care sticlele vin aleator pe
banda transportoare, iar umplerea i astuparea nu mai au loc
simultan.
S se modifice programul inndu-se cont de situaia n care nu
apar sticle simultan n cele 2 poziii semnificative. n acest caz s
fie declanat o alarm care s fie oprit i ciclul reluat abia cnd
nu mai exist sticle n niciuna din cele 2 poziii de pe band (sticla
este evacuat manual).
Program det_etj
but_int:=0;
but_ext:=0;
etaj_curent:=0;
IF bint1 = TRUE THEN
but_int = 1;
END_IF;
IF bint2 = TRUE THEN
but_int = 2;
END_IF;
IF bint3 = TRUE THEN
but_int = 3;
END_IF;
IF bint4 = TRUE THEN
but_int = 4;
END_IF;
IF bint5 = TRUE THEN
but_int = 5;
END_IF;
IF bint6 = TRUE THEN
but_int = 6;
END_IF;
IF bint7 = TRUE THEN
but_int = 7;
END_IF;
IF bint8 = TRUE THEN
but_int = 8;
END_IF;
IF bint9 = TRUE THEN
but_int = 9;
END_IF;
IF bint10 = TRUE THEN
but_int = 10;
END_IF;
IF bext1 = TRUE THEN
but_ext = 1;
END_IF;
IF bext2 = TRUE THEN
but_ext = 2;
END_IF;
IF bext3 = TRUE THEN
but_ext = 3;
END_IF;
IF bext4 = TRUE THEN
but_ext = 4;
END_IF;
IF bext5 = TRUE THEN
but_ext = 5;
END_IF;
IF bext6 = TRUE THEN
but_ext = 6;
END_IF;
IF bext7 = TRUE THEN
but_ext = 7;
END_IF;
IF bext9 = TRUE THEN
but_ext = 9;
END_IF;
IF bext10 = TRUE THEN
but_ext = 10;
END_IF;
IF etaj1 = TRUE THEN
etaj_curent = 1;
END_IF;
IF etaj2 = TRUE THEN
etaj_curent = 2;
END_IF;
IF etaj3 = TRUE THEN
etaj_curent = 3;
END_IF;
IF etaj4 = TRUE THEN
etaj_curent = 4;
END_IF;
IF etaj5 = TRUE THEN
etaj_curent = 5;
END_IF;
IF etaj6 = TRUE THEN
etaj_curent = 6;
END_IF;
IF etaj7 = TRUE THEN
etaj_curent = 7;
END_IF;
IF etaj8 = TRUE THEN
etaj_curent = 8;
END_IF;
IF etaj9 = TRUE THEN
etaj_curent = 9;
END_IF;
IF etaj10 = TRUE THEN
etaj_curent = 10;
END_IF;
Program Principal
Observaii:
S-a ales soluia folosirii unui program ciclic n seciunea Begin
deoarece starea butoanelor i etajul unde se afl liftul trebuie
actualizate la fiecare ciclu automat pentru a putea controla corect
liftul.
ncercarea de a nu folosi un program ciclic i de a testa starea
butoanelor i a senzorilor ntr-un program SFC ar duce la crearea
unei diagrame foarte mari i stufoase, n mod practic nici nu ar fi
posibil la un numr mare de butoane i senzori ntruct mediile de
programare logic permit un numr limitat de condiii de tranziie
ataate unei etape.
Propunere:
n cazul n care ar exista un buton de urgen n interiorul liftului,
s se modifice programul astfel nct liftul s se opreasc la
apsarea acestuia, miscarea fiind reluat la apsarea oricrui buton
de comand micare.
Elemente de execuie:
motorul benzii transportoare
motorul barierei
Elemente de msur:
dou limitatoare de curs
un senzor de prezen
un detector de metal
2. Soluia de automatizare
Pentru controlul acestei aplicaii s-a ales un automat programabil de tip PEP
Smart pentru care s-a dezvoltat un proiect ISaGRAF ce cuprinde dou
programe conform figurii 9.2.
Program bariera:
Program banda:
Observaii:
Se observ ca testarea impulsului de la butonul B este facut
folosind funcia REDGE, deoarece trebuie depistat tranziia
strii butonului i nu starea lui la un moment dat
S-au folosit 2 programe ce ruleaz n paralel ntruct bariera
i banda transportoare funcioneaz independent i nu pot fi
gestionate in aceeai diagram
Propuneri:
S se construiasc diagrama Ladder care simuleaz acest
proiect ISaGRAF
\
Elemente de msur:
un dispozitiv de identificare pies
5 senzori de prezen pies
1 buton
2. Soluia de automatizare
Pentru controlul acestei aplicaii se alege un automat programabil de
tip PEP Smart pentru care se dezvolt un proiect ISaGRAF, ce cuprinde 5
programe n seciunea sequential, aa cum este prezentat i n figura 10.2.
Variabile timer:
o const: tclapeta = t#2s;
Variabile interne de tip integer:
o variabile: rez, tip1, tip2, tip3, index1, index2, index3,
index_cit1, index_cit2, index_cit3, tip_citit1, tip_citit2,
tip_citit3
o constante: sir1=1; sir2=2; sir3=3;
Program identif:
Program Clapeta1:
Program clapeta2:
Program clapeta3:
Program clapeta4:
Observaii:
Soluia adoptat pentru a putea determina exact ce tip de pies
ajunge n dreptul senzorilor a fost de a crea 3 iruri de numere
ntregi, pentru primele 3 clapete (pentru a patra nu mai este necesar
deoarece aici nu pot ajunge dect piese de tipul 4). Fiecare ir este
modificat cnd o pies ajunge n dreptul senzorului de prezen
anterior. Exist cte o variabil index asociat fiecarui ir care indic
prime poziie liber din ir. irurile sunt de tip FIFO, tipul piesei
care se gsete in dreptul unui senzor este citit ntotdeauna de pe
Propuneri:
S se modifice programul pentru situaia n care nu mai exist
senzori de prezen n dreptul clapetelor, cunoscndu-se ns viteza
benzii transportoare i distanele ntre poziia de identificare i cele 4
clapete.
Programul main:
Deschidere valva A
7
ACTION (P):
valva_A:=TRUE;
END_ACTION;
Deschidere valva B
107
Temporizare
7
Etap de ateptare
ACTION (P):
valva_A:=FALSE;
END_ACTION;
ACTION (P):
valva_B:=FALSE;
END_ACTION;
108
Avans cilindru E
Pn n poziia 4
lim_4=TRUE;
ACTION (P):
E_retragere:=TRUE;
banda_2:=TRUE;
E_avans:=FALSE;
END_ACTION;
Pn poziia e liber
10
poz_A=FALSE;
Retragere cilindru D
11
ACTION (P):
D_retragere:=TRUE;
END_ACTION;
Pn poziia A i B ocupate
11
Oprire cilindru D
12
12
Etap de ateptare
ACTION (P):
E_avans:=TRUE;
END_ACTION;
ACTION (P):
D_retragere:=FALSE;
END_ACTION;
Deschidere valva C
207
Temporizare
107
ACTION (P):
valva_B:=TRUE;
END_ACTION;
ACTION (P):
valva_C:=TRUE;
END_ACTION;
Temporizare
207
108
ACTION (P):
valva_C:=FALSE;
END_ACTION;
12
Deschidere valva A
13
ACTION (P):
valva_A:=TRUE;
END_ACTION;
Deschidere valva B
113
Temporizare
13
Temporizare
113
Etap de ateptare
ACTION (P):
valva_A:=FALSE;
END_ACTION;
14
14
Avans cilindru E
15
ACTION (P):
E_avans:=TRUE;
END_ACTION;
Pn n poziia 4
15
lim_4=TRUE;
Retragere E
16
ACTION (P):
E_retragere:=TRUE;
E_avans:=FALSE;
END_ACTION;
Pn poziia A e liber
16
poz_A=FALSE;
Retragere cilindru D
17
ACTION (P):
D_retragere:=TRUE;
E_retragere:=FALSE;
END_ACTION;
Pn poziia A ocupat
17
poz_A;
18
ACTION (P):
D_retragere:=FALSE;
valva_A:=TRUE;
END_ACTION;
Temporizare
GS18.t > TA_container_3;
ACTION (P):
valva_B:=TRUE;
END_ACTION;
114
ACTION (P):
valva_B:=FALSE;
END_ACTION;
Observaii:
n cadrul secvenelor de deschidere a valvelor, temporizrile au fost
implementate prin testarea permanent a parametrului GSxxx.t
asociat unei etape. Acest parametru indic timpul de cnd o etap
este activ. O alt variant era folosirea unor variabile de tip Timer.
Umplerea containerelor este facut n paralel cu ajutorul
paralelismului diagramelor SFC.
dou ui, fiecare dintre ele micat cu ajutorul a cte dou motoare
cu dou sensuri de rotaie (micare stnga dreapta pentru fiecare
u);
cte doi senzori de capt cursa (deschis nchis) pentru fiecare
u;
un senzor de prezen persoan n dreptul uii.
Elemente de execuie:
Cele 4 motoare ale uilor.
Elemente de msur:
4 limitatoare de curs;
un senzor de prezen persoan.
2. Soluia de automatizare
Pentru controlul acestei aplicaii s-a ales un automat programabil de
tip PEP Smart pentru care s-a dezvoltat un proiect ISaGRAF ce cuprinde un
program principal n seciunea Sequential vezi fig. 12.2.
Program main:
Observaii:
nchiderea i deschiderea uilor trebuie facut neaprat intr-un
paralelism deoarece aciunile ncep n acelai moment, se
desfoar independent, dar procesul poate continua numai dup ce
ambele secvene s-au ncheiat.
Etapa 2, aparent inutil deoarece nu are aciuni asociate, a fost
introdus pentru a putea intra n paralelismul de deschidere a uilor
atunci cnd condiia 5 devine adevarat.
2. Soluia de automatizare
Pentru controlul acestei aplicaii s-a ales un automat programabil de
tip PEP Smart pentru care s-a dezvoltat un proiect ISaGRAF ce cuprinde
trei programe n seciunea Sequential conform figurii 13.2.
o
o
o
o
Program piston1
Program piston2:
Program Identif:
Pornire band
ACTION (P):
mt:=TRUE;
eroare:=FALSE;
index:=0;
nr_piese:=0;
END_ACTION;
ACTION (P):
mt:=FALSE;
END_ACTION;
101
nr_piese=2;
Activare semnal eroare
ACTION (P):
eroare:=TRUE;
END_ACTION;
102
Atept 1 secund
102
Pn se dezactiveaz reset
3
Identificarea tipului
103
ACTION (P):
IF (index = 1) THEN
IF tip=TRUE THEN
v2:=1;
ELSE v2:=2;
END_IF;
ELSE
IF tip = TRUE THEN
v1:=1;
ELSE v1:=2;
END_IF;
END_IF;
index:=index+1;
nr_piese:=nr_piese+1;
END_ACTION;
Observaii:
Pentru a determina corect tipul piesei care ajunge n dreptul
pistonului 1, au fost folosite 3 variabile: index, v1 i v2;
n programul Identif se observ folosirea funciei FEDGE, necesar
determinrii momentul cnd variabila reset trece din TRUE n
FALSE (corespunde ridicrii butonul dup ce a fost apsat).
Propuneri:
S se modifice programul pentru situaia n care numrul de piese
permis pe band este oarecare n;
Program main:
Program temper:
Program biscuit:
Program convers:
temp:= (tempcit -819)*500/ (4096-819)
Observaii:
S-a ales soluia unui proiect cu un program printe i doi fii deoarece
programele trebuie oprite n cazul apariiei unui anumit eveniment
(aici temperatura < temeperatura minim absolut), indiferent ce
etape sunt active la momentul respectiv. O alt soluie, care ar
complica diagramele foarte mult, ar fi testarea evenimentului n toate
etapele unui diagrame SFC.
Testarea faptului c o serie de 5 biscuii rebut apare de 2 ori la rnd
s-a fcut prin gestionarea unei singure variabile booleene, eroare.
S-a folosit funia FEDGE (Falling Edge Detection) deoarece trebuie
testat tranziia strii senzorului s0 din activ n inactiv.