Documente Academic
Documente Profesional
Documente Cultură
Unitate central
Module de intrare / ieire
Regitrii de intrare / ieire
Memorie de date
Regitrii interni
Circuite de temporizare
Circuite de numrare
etc. Semnalele de citite pot fi de dou tipuri: digitale sau analogice. De regul
circuitele de intrare sunt implementate cu relee sau tranzistori.
Module de ieire : conin unul sau mai multe circuile de ieire. Acestea exist fizic,
sunt conectate la lumea exterioar i transmit semnale digitale sau analogice ctre
diferite elemente de execuie. Ca variant constructiv pot fi alei tranzistorii, releele
sau triacele.
Regitri de intrare : sunt regiiri asociai intrrilor fizice. Valoarea semnalelor de
intrare este convertit n form binara de ctre circuitele de intrare i memorat n
aceti regitri. Pentru intrrile de tip digital, un singur bit dintr-un registru poate
memora starea activ/inactiv a intrrii, dar n cazul unei intrri analogice sunt
necesari mai mult bii pentru memorarea valorii n format numeric.
Regitri de ieire : sunt regitri asociai ieirilor fizice. Valoarea semnalelor de ieire
este scris aici n form binar, coversia ntr-un semnal electric de o anumit valoare
fiind fcut de ctre circuitele de ieire (convertoare digital-analogice). Pentru ieirile
de tip digital, un singur bit dintr-un registru poate memora starea activ/inactiv a
ieirii, dar n cazul unei ieiri analogice sunt necesari mai mult bii pentru scrierea
valorii n format binar.
Regitri interni : nu recepioneaz semnale din mediul extern, nici nu exist fizic.
Conin relee simulate prin biii din regitri i au fost introduse pentru a elimina releele
interne fizice. Exist i regiiri speciali care sunt dedicai unui anumit scop. Unele
relee sunt intotdeauna deschise, altele sunt ntotdeauna nchise. Unele sunt deschise
numai o dat la pornire i sunt folosite pentru iniializarea dalelor memorate.
Numrtoare : nici acestea nu exist fizic. Sunt numrtoare simulate i pot fi
programate s contorizeze impulsuri. De obicei, aceste numrtoare pot numra
cresctor, descresctor i n ambele sensuri. Anumii productori includ i
numrtoare de mare vitez implementate hard, pe care am putea s le considerm ca
existente fizic. i acestea pot numra cresctor, descresctor sau n ambele sensuri.
Circuite de temporizare : nici circuitele de temporizare nu exist fizic. Sunt simulate
software i contorizeaz perioadele timp. Pot fi gsite n diverse variante n ceea ce
privete parametrii. Pasul de incrementare variaz de la 1ms pn la 1s.
Memoria de date : n mod normal este vorba de simpli regitri care memoreaz date.
De obicei sunt folosii pentru aplicaii matematice sau pentru manipularea datelor. Pot
fi folosii i pentru memorarea datelor ct timp AP-ului i se ntrerupe alimentarea. La
pornire, vor avea acelai coninut ca nainte de oprire.
1.2 Module de intrare-ieire
Exist o mare varietate de module de intrare-ieire ce pot intra n componena unui AP. Exist dou
categorii mari de module:
1. Module I/O analogice:
semnalul pe care l transmit sau l recepioneaz are o valoare
analogic
2. Module l/O digital:
semnalul este de tip digital, putnd avea doar dou valori.
n funcie de mrimile fizice citite sau de semnalele transmise, iat cteva exemple de module ce
pot fi ataate unui AP:
intrri/ieiri de curent continuu
intrri/ieiri de curent alternativ
intrri/ieiri de tensiuni continui sau alternative
module de citit temperaturi
module de reglare PID
module de control Fuzzy
-3-
AP-ul poate vedea dac o intrare este activi sau inactiv doar dac o citete. Cu alte
cuvinte, el testeaz intrrile doar in poriunea corespunztoare a ciclului de scanare (fig. 1. 3).
n diagrama de mai sus, intrarea I nu este vzut nainte de ciclul 2. Acest lucru se
ntmpl deoarece atunci cnd s-a activat intrarea I, ciclul 1 terminase deja de testat intrrile.
Intrarea 2 nu este vzut nainte de ciclul 3. Acest lucru are loc deoarece ciclul 2 deja
terminase de testat intrrile.
Intrarea 3 nu este vzut niciodat, deoarece cnd ciclul 3 testa intrrile, semnalul 3 nu era
nc activ, iar la nceputul ciclului 4 era deja inactiv.
Pentru a evita acest lucru trebuie ca intrarea s fie activ pentru cel puin un timp de
rspuns la intrare + un timp de scanare.
Dac nu este posibil ca intrrile s fie active att de mult timp, AP-ul nu mai poate citi
intrrile active nemaiputnd implementa corect o aplicaie de control. Exist o cale de a
rezolva acest neajuns (mai precis dou):
Funcia de extindere a impulsului. Aceast funcie extinde lungimea (durata) unui semnal de
intrare pn la momentul la care AP-ul testeaz intrrile, n ciclul urmtor.
Funcia de ntrerupere. Aceast funcie ntrerupe ciclul de scanare pentru a rula o rutin
special scris de utilizator. Cnd se activeaz o intrare, indiferent de starea ciclului de
scanare, AP-ul oprete execuia programului principal i execut rutina de ntrerupere (fig. 4).
O rutin poate fi privit ca un mini-program n afara programului principal. Dup ce a
terminat execuia rutinei de ntrerupere, se ntoarce n punctul n care se oprise i continu
norma procesul de scanare.
-5-
-6-
o Aciuni asociate etapelor: deoarece o etapa poate fi activ sau inactiv la un moment
dat, exist aciuni asociate etapelor, care se execut numai la activarea acestora. Pot
exista i aciuni condiionate, ce se execut dac, suplimentar, mai este adevrat alt
condiie logic.
Aciunile pot fi diverse:
-7-
o Ramificaii (divergene): au loc ntre mai multe secvene posibile, atunci cnd
condiiile de tranziie se exclud ntre ele. Convergena diferitelor ramuri are loc atunci
cnd sunt ndeplinite condiiile de tranziie pe fiecare ramur. Se pot stabili prioriti
dac nu se exclud condiiile de tranziie.
o Secvene simultane (paralelism): mai multe secvene pot fi activate simultan, plecnd
de la o condiie de tranziie. Evoluia, pe flecare ramur, se efectueaz simultan.
Jonciunea nu se poate efectua dect atunci cnd toate secvenele sunt terminate.
-8-
-9-
Prima ramur din diagrama de mai sus nu este corect, ntruct conine dou
instruciuni de intrare i nici una de ieire. Celelalte ramuri sunt corect editate, cu observaia c
ultima ramur are doar o instruciune de ieire, situaie ntlnit doar atunci cnd acea
instruciune trebuie executata la fiecare ciclu automat.
De obicei programul este editat pe un calculator personal, sau cu ajutorul unui panou
special (numit Teach sau Handheld Pendant) ataat automatului, apoi programul este
transformat in instruciuni specifice procesorului de AMP i descrcat n memoria
automatului. n momentul execuiei, automatul scaneaz programul ramur cu ramur, iar pe
fiecare ramur execut instruciunile gsite de la stnga la dreapta. Programul este executat
ciclic, deci se trece la scanarea primei ramuri dup scanarea ultimei ramuri.
Exist i varianta rulrii programului din memoria calculatorului, dar timpul pierdut cu
transferul datelor ntre calculator i controller poate afecta performanele programului.
ntruct tipurile de instruciuni folosite ntr-o diagram Ladder sunt practic aceleai indiferent de
productorul automatului programabil, ele vor fi descrise n capitolul dedicat automatelor de tip
Allen Bradley.
2.3 Programarea n limbaje de nivel nalt
n ultima vreme a existat o puternic preocupare pentru integrarea performanelor de
conducere i control a automatelor programabile cu posibilitile de calcul i de memorie ale
calculatoarelor personale. De aceea majoritatea automatelor programabile posed un port de
comunicaie cu un PC, de tip RS-232 sau RS-485, putndu-se stabili o legtur cu PC-ul chiar n
timpul execuiei unui program de ctre AP.
De asemenea, pentru a profita de larga rspindire a limbajelor de nivel nalt, cum ar fi C
sau Pascal, unii productori au echipat AP-urile cu procesoare compatibile Intel, acestea putnd
executa setul de instruciuni al procesoarelor Intel, extins cu instruciuni specifice automatelor
programabile. n plus muli productori au dezvoltat compilatoare C pentru procesoarele pe
care le folosesc n automatele programabile.
Exista dou variante de construire a unui program n limbaj de nivel nalt.
Prima variant const n crearea unui program n limbajul de programare C (Borland sau
Microsoft), integrnd funciile specifice ale automat programabil i funciile de
comunicaie ntre calculator i automat. n acest caz programul ruleaz n calculator, acesta dnd
permanent comenzi controllerului i primind rspunsuri n legtur cu executarea acestora.
Avantajul unui aslfel de program ar fi capacitatea mare de memorie i puterea de calcul a unui
calculator personal i deci posibilitatea crerii unor module software complexe folosind
numeroase variabile.
Atunci cnd un numr mare de automate sunt legale mpreun la un singur calculator,
timpul necesar computerului s primeasc i s proceseze toate informaiile de I/O poate
produce scderea semnificativ a rspunsului sistemului, fcnd astfel dificil controlul
procesului. Pentru a evita acest neajuns, programele trebuiesc implementate n fiecare automat i
rulate independent de computer.
Aceast capabilitate de partajare a aciunilor permite utilizatorului s determine ce
decizii de control vor fi luate de computer i care de ctre automat. Aceast facilitate poate
elibera calculatorul pentru a efectua operaii de supervizare cum ar fi mprosptarea ecranului,
generarea de rapoarte sau monitorizarea performantelor sistemului.
Din acest motiv reiese i utililatea celei de-a doua variante, de altfel i cea mai des
uzitat, care const n crearea unor programe de control ce pot rula direct n memoria
automatului. Programele se construiesc i se compileaz n C pe un calculator personal, apoi
programul executabil este convertit n formatul de fiier Intel HEX cu ajutorul unui program
utilitar, dup care este descrcat n memoria de tip FLASH EPROM a automatului, de unde poate
rula de sine stttor. Un oarecare dezavantaj l constituie limitarea dimensiunii codului i a datelor
programului.
- 10 -
Aceste funcii sunt definite ntr-o bibliotec specific Mdac.lib i nu pot fi apelate
dect din automat. Exist funcii analogice, definite n fiierul header proware.h ce pot fi
apelate din programul calculatorului, dar viteza de execuie este evident mult mai sczut.
Schimbul de date cu calculatorul este realizat prin apelarea unei funcii speciale.
proware(&err, &addr, &cmd, posn, mod, pointer)
- 11 -
5: Counter :
6: Control:
7: ntregi :
8: Rezervat
9: Folosit n reea
10 - 255 :
n scopul adresrii, diferena ntre fiierele menionate mai sus se face folosid un indicator de
fiier ( o liter ) i un numr ai fiierului. Modul de alocare al identificatorului pentru fiecare tip de
fiier este urmtorul:
Tabel 3 1 Adresarea filierelor de date
Tip fiier
Identificator
a-pentru fiierele predefinite
Output
0
Input
I
Stare
S
Bit
B
Timer
T
Counter
C
Control
R
Integer
N
b-pentru fiierele definite de ulitlizator
Bit
B
Timer
T
Counter
C
Control
R
Integer
N
Numr fiier
0
1
2
3
4
5
6
7
9-255 fiiere adiionale
Fiierele de date conin elemente. Elementele pot fi de 1 cuvnt sau de 3 cuvinte. Un cuvnt
are 16 bii. n consecina este necesar adresarea la nivel de :
I)
element
II)
cuvnt
III)
bit
In cele ce urmeaz va fi exemplificat fiecare din cele trei tipuri de adresare :
Adresarea la nivel de element: N7:15
unde : N - tip fiier, 7 - numr fiier,: - delimitator de element, 15 - numr element
Adresarea la nivel de cuvnt: T4:7 .ACC
unde: T7:4 au aceeai semnificaie ca n cazul I), - delimitator de cuvnt, ACC cuvnt adresat.
Adresarea la nivel de bit: B3:64/15
unde : B3:64 au aceeai semnificaii ca n cazul II), /-delimitaor de bit, 15-bitul
adresat.
- 13 -
13
DN
Cuvnt
0
1
2
Exemple:
T4:0.ACC
T4:1/DN
15
CU
PRE
ACC
cu semnificaia:
CU = Count Up
CD = Count Down
DN = Done
OV = Overflow
UN = Underflow
UA = Update Accumulated Value
|7-0
Cuvnt
0
1
2
Formatul general de adesare este: Cf:e.s sau Cf:e/b. semnificaiile fiind cele de la fiierele de tip
Timer.
Observaie: Pentru fiierele care au o anumit notaie pentru bii sau cuvinte constituente,
adresarea se poate face folosind notaia respectiva. Astfel, de exemplu, C5:0.PRE <=> C5:0.1.
e) Fiierele de tip Control
Aceste fiiere conin elemente de 3 cuvinte, avnd maxim 256 de elemente. Un element tipic are
structura din tabelul 3. 4:
Tabel 3. 4 Element al fiierului de Control
15 14 13 12 11 10 9
8
EN EU DN EM ER UL IN FD
Lungimea ariei de bii sau a fiierului (LEN)
7-0
Cuvnt
Uz intern 0
1
2
Semnificaie
cuvnt de stare
cuvnt ce indic lungimea
datelor stocate
Formatul general de adresare este Rf:e.s sau Rf:e/b cu semnificaiile deja cunoscute
f) Fiierele de tip Integer
Acest tip de fiier conine elemente de 1 cuvnt, maxim 255 de elemente.
Formatul de adresare este Nf:e, unde e = 255 reprezint numrul elementului
3.3 Programarea automatului Allen Bradley prin metoda Ladder Diagram
Programarea automatului Allen-Bradley SLC 500 se face folosind metoda Ladder
Diagram, explicat n capitolul anterior. Programul ncrcat in memoria automatului conine
instruciuni; o parte din aceste instruciuni reprezint lucrul cu dispozitive de intrare/ieire
externe.
Pe msur ce programul este scanat de automat (controller), modificrile on/off ale
strilor intrrilor externe se aplic programului, dezactivnd ieiri externe, conform logicii
Ladder programate. Pentru a prezenta bazele programrii Ladder am ales instruciuni pe bit (cu
logic tip releu). Cele trei instruciuni utilizate n continuare sunt:
Tabel 3.5 Instruciuni pe bit
SIMBOL Ladder
---] [-----]/[-----( )---
SEMNIFICAIE I MNEMONICA
XIC (Examine if Closed) -procesorului i
se cere sa examineze dac (contactul este)
deschis (contactul normal nchis)
XIO (Examine if Open) -procesorului i se
cere s examineze daca (contactul este)
nchis (contactul normal deschis)
OTE (Output Energize)
-procesorul
seteaz aceasta instruciune la valoarea
adevrat atunci cnd exist o secven de
instruciuni XIC si XIO adevrate n
cmpul de intrri din ramura Ladder
respectiv.
XIC
XIO
OTE
Instruciuni de intrare
Instruciuni de ieire
Fiecare instruciune din ramura precedent are adresa fiierului unde sunt stocate
strile ON(1) / OFF(0) ale biilor. Adresele instruciunilor de mai sus indic fiierul Bit 3
(B3), biii 10, 11, 12.
Parcurgerea unei astfel de diagrame se face de sus in jos (ramur cu ramur) i de la
stnga la dreapta (n cadrul unei ramuri). Execuia instruciunilor se face prin testarea
condiiilor logice ale ramurilor.
Starea logic a unei instruciuni poate fi adevrat (TRUE T) sau fals (FALSE F).
Ansamblul strilor logice ale instruciunilor de intrare determin continuitatea logic a
ramurii. n funcie de strile logice ale datelor stocate n biii adresai, strile logice ale
instruciunilor pot fi:
Tabel 3. 6 Strile logice ale instruciunilor din ramura
Stare logica bit
Stare logica a instructiunilor
XIC
XIO
0 logic
Fals (F)
Adevrat (T)
1 logic
Adevrat (T) Fals (F)
OTE
Fals (F)
Adevrat (T)
Dac B3/10 = 1 i B3/11 = 0, deci dac este gsit o cale continu de instruciuni de
intrare adevrate, atunci instruciunea de ieire devine sau rmne adevrat. n
acest caz condiiile ramurii sunt adevrate.
b)
Modul de variaie al strii bitului B3/12 n funcie de strile biilor B3/10 si B3/11 este:
Tabel 3. 6 Variaia valorii bitului B3/12
B3/10
B3/11
0
0
1
0
1
1
1
1
B3/12
0
1
0
0
O posibil variaie n timp a strilor logice ale instruciunilor XIC, XIO i OTE este:
Tabel 3. 7 Variaie marilor Ionice ale Instruciunilor
Timp
Instr. de intrare
tl(initial)
F
T
t2
T
T
t3
T
F
t4
F
F
Instr. de ieire
F
devine T
devine F
rmne F
Avnd n vedere cele prezentate se poate trage concluzia c o ramur din diagrama Ladder este
echivalent cu o instruciune de tipul:
If condiie then ieire.
- 17 -
D = ( A AND B ) OR C
n mod asemntor poate avea loc i o ramificare a instruciunilor de ieire. De asemenea se
poate impune i o condiie suplimentar pentru emisia unei anumite ieiri.
Ex:
F = ( ( A AND B ) ) OR C ) AND E
D = (A AND B) OR C
n exemplul precedent, dac (A AND B) AND E sau C AND E sunt adevrate , atunci F este
adevrat.
3.4 Tipuri de instruciuni
Pentru procesoarele folosite de ctre automatul SLC500, instruciunile folosite n diagramele
Ladder se mpart n:
- 18 -
a) instruciuni pe bit
b) instruciuni de timer/counter
c) instruciuni de I/O i ntreruperi
d) instruciuni de comparare
e) instruciuni matematice
f) instruciuni logice i de mutare
g) instruciuni pentru lucrul cu fiiere
h) instruciuni de shiftare
i) instruciuni de secveniere
j) instruciuni de control
k) blocuri funcionale
n continuare sunt prezentate cele mai utilizate tipuri de instruciuni ntr-o diagram Ladder
o Instruciuni pe bit
XIC --] [-- (Examine If Dosed ). Instruciune de intrare. Este TRUE cnd bitul
testat este 1 (on )
XIO --] / [-- (Examine if Open). Instruciune de intrare. Este TRUE cnd bitul
testat este 0 (off)
OTE --( )-- (Output Energize). Instruciune de ieire. Este TRUE (seteaz bitul
de ieire) cnd toate condiiile precedente din ramur sunt TRUE. Reseteaz
bitul altfel.
OTL --( L )-- (Output Latch). Instruciune de ieire. Bitul adresat devine TRUE
(1) cnd condiiile precedente de pe ramur sunt TRUE. Cnd condiiile devin
FALSE, OTL rmne TRUE pn cnd o ramur ce conine o instruciune OTU
cu aceeai adres devine TRUE.
OTU --( U )-- (Output Unlatch). Instruciune de ieire. Bitul adresat devine
FALSE (0) cnd condiiile precedente de pe ramur sunt TRUE. Rmne
FALSE pn cnd o alt ramur ce conine o insiruciune OTU cu aceeai
adres devine TRUE.
OSR --[OSR]-- (One-Shot Rising). Instruciune de intrare. Trece ramura n
TRUE pentru o scanare, la fiecare tranziie din FALSE-TRUE a condiiilor
precedente din ramur.
Toate instruciunile pe bit necesit ca parametru adresa unui bit dintr-un fiier de date.
OSR este o instruciune de intrare util activrii unei instruciuni de ieire o singur data i
anume la prima scanare a programului de ctre automat. Este des folosit pentru activarea
unei etape iniiale dintr-o diagram Grafcet (vezi problemele rezolvate). Necesit ca
parametru adresa unui bit care va fi folosit intern de ctre instruciune.
Exemplu :
- 19 -
o Instruciuni de Timer/Counter
TON (Timer On-Delay). Instruciune de ieire. Numr intervalele de timp ct timp
condiiile precedente din ramur sunt TRUE. Necesit ca parametri adresa unui
element dintr-un fiier de tip Timer, cu valoare presetat (numr de intervale de timp)
i o valoare acumulat iniial (de obicei 0). Valoarea acumulat este incrementat la
fiecare scanare a programului dac condiiile din ramur sunt TRUE. Bitul DN devine
1 cnd valoarea acumulat egaleaz valoarea presetat, ( ACC ) = ( PRE ). Cnd
condiiile devin FALSE, acumulatorul este resetat: ( ACC ) = 0. Simbolul grafic este
prezentat n figura 3. 1.
CTD (Count Down ). Instruciune de ieire. Numr tranziiile din TRUE n FALSE
ale ramurii, incrementnd valoarea acumulata. Counter-ul trebuie resetat cu o
instruciune RES, cu aceeai adres. Cnd ( ACC ) > ( PRE ) bitul DN devine 1.
Necesit ca parametri adresa unui element dintr-un fiier de Counter precum i o
valoare presetat i una iniial pentru acumulator.
RES (Reset). Instruciune de ieire. Reseteaz un anumit Timer sau Counter.
Timer : ACC 0. DN 0, TT 0, EN 0.
Counter : ACC 0, CU 0, CD 0, OV 0, UN 0, DN 0.
HSC (High Speed Counter). Numrtorul de mare vitez HSC este un numrtor
hardware i opereaz asincron fa de scanarea programului ladder. Spre deosebire de
celelalte numrtoare USC nu contorizeas tranziiile FALSE-TRUE ale ramurii ci
tranziiile intrrii i:0/0. Frecvena maxim acceptat este de 8 kHz
Aceast instruciune este valabil numai pentru controlere I/O fixe cu 24 intrri VDC. O
singur instruciune HSC este permis pe un singur controler.
- 20 -
Aceast instruciune are asociat un fiier de 3 cuvinte (octei). Cuvntul 0 este cuvntul de
control i conine biii de stare:
- bitul 10 (UA)
actualizeaz acumulatorul pentru a reflecta starea imediat a
numrtorului cnd HSC devine activ;
- bitul 12 (OV)
indic o depire a numrtorului;
- bitul 13 (DN)
indic egalarea presetului de ctre acumulator;
- bitul 15 (CU)
arat starea de activ/inactiv a instruciunii HSC.
Cuvntul 1 conine valoarea de preset n gama 1-32.767, iar cuvntul 2 valoarea acumulat.
Funcionare:
- fiecare tranziie a intrrii 1:0/0 face ca acumulatorul s se incrementeze;
- cnd acumulatorul egaleaz valoarea presetului bitul Done (C5:0/DN) este setat i
acumulatorul pus pe zero;
Pentru a afla starea HSC-ului, programul ladder trebuie s interogheze bitul Done
(C5:0/DN). Imediat cum acesta a fost detectat activ trebuie dezactivat (cu instruciunea OTU)
nainte ca acumulatorul (C5:0. ACC) s egaleze valoarea presetului (C5:0. PRE) pentru ca altfel
bitul Overflow (C5:0/OV) este setat.
Valoarea acumulatorului (C5:0. ACC) de obicei este actualizat de fiecare dat cnd
ramura cu HSC este evaluat, actualizarea nsemnnd transferarea valorii acumulatorului
hardware n acumulatorul HSC software. Dup actualizare instruciunea HSC reseteaz bitul
C5:0/UA.
Dac se dorete testarea C5:0. ACC n programul ladder dup rung-ul care conine
instruciunea HSC, trebuie mai inti s se seteze bitul C5:0/UA. Acest lucru este necesar
nlruct intrarea 1:0/0 poate s tranziteze de cteva ori de la ultima evaluare a lui HSC.
o Instruciuni de comparare
Sunt instruciuni de intrare.
EQU (Equsil), Compara (A) cu (B), unde A si B sunt adrese. Dac (A) = (B), atunci
instruciunea devine TRUE.
NEQ (Not Eqnal). Devine TRUE dac (A) diferit de (B).
LES (LessThan) Devine TRUE daca (A) < (B).
LEQ (Less Than or Eqnal) Devine TRUE dac (A) =< (B),
GRT (Greater Than) Devine TRUE dac (A) > (B).
GEQ (Greater than or Equal) Devine TRUE daca (A) => (B).
MEQ (Masked Comparison for Equal). Permite testarea egalitii dup aplicarea unei
mti (poate fi o valoare hexa).
Parametrii necesari acestor instruciuni sunt:
Source
= adresa valoare
Compare
= o constant ntreag sau adresa unei referine.
LIM (Limit Test)
Permite testarea ncadrrii unei valori ntre dou limite.
Low Limit = val. /adr limit inferioara Test = vaLadr. val. lest.
High Limit = val./adr. limit superioar. Este TRUE cnd Low
Lini =< High Lim.
- 21 -
o Instruciuni matematice
O instructiue matematic accept doi operanzi, dintre care maxim unu poate fi o constant. Sunt
instruciuni de ieire
ADD (ADD)
Dest = A + B
SUB (Subtract)
Dest = A-B
MUL (Multiply)
Dest = A * B
DIV (Divide)
Dest = A/B
NEG (Negate)
Dest = (complement fa de 2) Sursa
CLR (Clear)
Dest 0
SQR (Square Root) Dest =
Sursa
SCL (Scale Data)
Dest (Sursa): Rate.
- 22 -
Variabila de Proces PV este adresa unui element care stocheaz valoarea intrrii din
proces. Aceasta adres poate fi un cuvnt rezervat unei intrri analogice unde va fi
stocat valoarea respectivei intrri. Aceast valoare poate fi un ntreg dac se alege
scala 0-16383.
Variabila de Control CV este adresa unui element care stocheaz valoarea ieirii
instruciunii PID. Domeniul de ieire este 0-16383 (16383 corespunde unui nivel de
100 din ieire)
Tabel 3. 8 Structura blocului de control
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
EN DN FV SP LL UL DB DA TF SC RG OL CM AM TM
* Gain Kc
* Reset Ti
* Rate Td
* Deadband
INTERNAL USE DO
NOT CHAMGE
* Output Max
10
* Output Min -
12
* Loop Update
13
14
11
*Scaled Error SE
15
16
INTERNAI. USE DO
NOT CHANGE
17
18
19
20
21
22
Dup ce au fost introduse adresele pentru CB, PV i CV, va apare urmtorul ecran cu ajutorul
cruia se vor introduce datele necesare configurrii i acordrii modulului.
- 24 -
[FI] Auto/Manual AM (word 0 bit 1) se face alegerea ntre Auto i Manual, Auto
arat c PID controleaz ieirile automat Manual arat c utilizatorul controleaz
ieirile (seteaz);
[F2] Mode TM (word 0, bit 0) se face alegerea ntre modurile eantionat i STI. ;
[F3] Control CM (word 0, bit 2) se face alegerea ntre E = SP-PV i E = PV-SP.
Varianta E = PV-SP presupune incrementarea ieirii CV cnd intrarea PV > SP, iar
varianta E = SP-PV presupune incrementarea CV cnd intrarea PV < SP.
Setpoint SP (word 2) este punctul de control dorit pentru proces. Se introduce
valoarea dorit i se tasteaz ENTER. Valoarea se poate schimba n programul
ladder prin instruciuni;
Gain Kc (word 3) este factorul de amplificare. Proporional, n gama 0.1-25.5. O
regul este setarea lui la o valoare egal cu 1.5 din valoarea necesar pentru a
determina la ieire oscilaii cnd reset = 0 i rate terms = 0;
Reset Ti (word 4) este factorul de timp al integratorului, avnd valori n gama 0.
1-25.5 min. O regul este setarea lui la perioada natural msurat naintea
calibrrii;
Rate Td (word 5) este termenul derivativ, putnd lua valori n gama 0.01-2.55
min. O regul este setarea lui la l/8 din Ti; .
Maximum Scaled Smax (word 7) dac setpoint este citit n mrimi inginereti,
acest parametru corespunde valorii setpoint cnd intrarea atinge 16383;
Minimum Scaled Smin (word 8) dac setpoint este citit n mrimi inginereti,
acest parametru corespunde valorii setpoint cnd intrarea atinge valoarea 0;
Deadband DB (word 9) este o valoare pozitiv. DB este centrat n jurul valorii
SP, avnd limea introdus de utilizator, DB este introdus cnd PV i SP trec
prin zero. DB are efect numai dup ce PV intr n DB i trece de SP;
Loop Update (word 13) este un intervalul de timp ntre calculele PID. O regul
este setarea lui la o valoare de 5-10 ori mai mic dect perioada natural de
ncrcare;
Scaled Process PV (word 14) este pentru afiare
Scaled Error (word 15) este pentru afiare
- 25 -
Output CV % (word 16) afieaz ieirea CV n procente (pentru intervalul 016383). Dac este n mod Auto, aceast setare este numai pentru afiare. Dac
este n mod Manual valoarea CV se poate schimba, iar noua valoare ajunge la
ieire;
[F4] Output (CV) Limit OL (word 0, bit 3) se poate atege ntre YES (se limiteaz
ieirea ntre valorile min i max) i NO (nu se limiteaz ieirea);
- 27 -
Ieire
Ol
02
03
Adres ieire
0:3/7
0:3/8
0:3/9
Asocierea etapelor Grafcet cu bii din fiierul de Bit B3 se poate face conform tabelului 3. 10:
Tabel 3. 10 Asocierea etapelor cu bii din fiierul B3
Etap
Bit asociat
Etap
1
B3/1
101
2
B3/2
102
3
B3/3
103
Bit asociat
B3/7
B3/8
B3/9
Bitul B3/0 va fi rezervat instruciunii OSR ca parametru intern. Se poate trece acum la
scrierea ramurilor diagramei Ladder, conform algoritmului descris anterior.
Etapa 1 va fi activat iniial cu ajutorul instruciunii OSR astfel:
Deoarepe n etapa 1 nu au loc aciuni, nu se mai scrie nici o ramur de tip 1) pentru etap, n
schimb, deoarece are loc o divergen pornind din etapa 1, trebuiesc scrise dou ramuri de tip
2) pentru cele dou condiii de tranziie ce se exclud:
Pentru tranziia cu condiia i1:
- 28 -
Etapa 3 nu are aciuni asociate, iar tranziia din aceast etap este condiionat de activarea
etapei 103, astfel nct pentru etapa 3 se scrie o singur ramur de tip 2) si anume:
Aceast ramur este valabil ca ramur de tip 2) i pentru trazia din etapa 103, fiind
suficient editarea ei o singura dat.
Pentru etapa 101 se scriu cele dou ramuri tipice:
- 30 -
Programele seciunii Functions sunt subprograme ce pot fi apelate de ctre oricare alt
program al aplicaiei. Programele principale i programele fiu (child programs) trebuie s fie
descrise n limbajele SFC sau FC, Programele seciunilor ciclice, (begin i end), nu pot fi
descrise n SFC sau FC. Orice program al oricrei seciuni poate avea unul sau mai multe
programe fiu, n conformitate cu limbajul fiecruia. Subprogramele nu pot fi deserse n SFC
sau FC.
Programele seciunii Begin sunt de obicei folosite pentru descrierea operaiunilor
preliminare n scopul citirii corecte a unor valori de la dispozitivele de intrare. Variabile de
intrare citite sunt utilizate de ctre programele seciunii Sequentiat pentru ca dup o eventual
prelucrare valorile variabilelor de ieire s fie transmise dispozitivelor de ieire. Programele
seciunii End sunt utilizate pentru a descrie operaiuni de protecie nainte de a trimite o
variabil ctre un dispozitiv de ieire.
o Programe SFC / FC child
Orice program SFC al seciunii secveniale poate controla alte programe SFC. Acest
tip de programe, situate pe un nivel ierarhic inferior, se numesc program SFC child ele fiind
programe paralele ce pot, fi pornite (started), oprite (killed), ngheate (frozen), repornite
(restarted) de ctre programul printe. Important eiste ca ambele programe, printe i fiu, s
fie scrise in SFC. Un program SFC fiu poate conine variabile locale i cuvinte cheie.
Atunci cnd un program printe pornete un program SFC fiu, transmite un jeton SFC,
(SFC token), fiecrui pas iniial al programului fiu, n cazul opririi sunt eliminate toate
jetoanele existente. Dac este ngheat, un program fiu SFC i pstreaz jetoanele pentru o
eventual repornire.
i n cazul programelor FC ale seciunii secveniale pot exista programe FC fiu, dar un
printe FC este blocat n timpul execuiei unui subprogram FC. Astfel nu sunt posibile
operaiuni simultane n programul FC printe i subprogramul FC.
o Funcii i subprograme
Execuia unui subprogram sau a unei funcii este condus de ctre programul printe.
Execuia programului printe este suspendat pn la terminarea funciei sau a
subprogramului. Un subprogram poate fi controlat numai de ctre printele su. El poate
conine variabile locale. Pentru descrierea unui subprogram fiu pot fi utilizate limbajele SFC
i FC.
Programele seciunii Functions sunt subprograme ce pot fi apelate de orice program al
aplicaiei. Spre deosebire de alte subprograme acestea nu sunt dedicate programului printe i pot
apela programe ale aceleiai seciuni. Pentru o mai mare flexibilitate pot fi grupate n librrii de
fiincii.
o Reguli de execuie
ISAGRAF este un sistem sincron. Toate operaiunile sunt declanate de ctre ceas. Intervalul
dedicat-execuiei se numete durata ciclului (the cycle timing):
- 31 -
Nivelul 2 conine descrierea aciunilor ce au loc n etapa respectiv i este referit ntr-o
fereastr, separat. n momentul rulrii un jeton arat c etapa este activ
Starea iniial a unui program SFC se expune cu ajutorul etapelor iniiale, reprezentate
grafic printr-un ptrat cu margine dubl. Cnd programul este pornit automat se plaseaz cte un
jeton n interiorul fiecrei etape iniiale.
Un program SFC trebuie s conin cel puin o etap iniial. Fiecare etap are dou
atribute ce pot fi utilizate de celelalte limbaje:
- GSnnn.x starea pasului: activ/inactiv (variabila booleana)
- GSnnn.t ct timp este activ pasul (timp) (nnn este numrul de referin al
pasului).
o Tranziii (transitions):
Tranziiile sunt reprezentate printr-o bar orizontal ce taie linia de legtur dintre doi pai.
Similar etapelor, tranziiile sunt referite printr-un numr i au aceeai organizare pe nivele:
- 33 -
o Divergene i convergene
Divergenele sunt conexiuni multiple de la un simbol SFC (pas sau tranziie) ctre mai
multe simboluri SFC. Convergenele sunt conexiuni multiple de la mai multe simboluri SFC
ctre un singur alt simbol. Structurile de acest tip pot fi simple sau duble, dup cum urmeaz;
Divergene simple: Legturi multiple de la un pas la mai multe tranziii. Aceasta permite
trecerea jetonului activ ctre mai multe ramuri.
Convergene simple: Legturi multiple de la mai multe tranziii ctre acelai pas. Sunt
folosite n general pentru a grupa ramuri ce s-au desnrit de la aceeai traziie.
- 34 -
(1/0
o Operaii SFC
O operaie SFC este o secven SFC fiu pornit sau oprit dup cum se schimb starea
pasului. Poate avea unul din atributele: N (non stored), S (set), R (reset).
Sintaxa operaiilor:
<prog_fiu>(N);
prog_fiu este pornit cnd pasul devine activ oprit cnd pasul devine
inactiv
acelai efect, atributul N fiind opional
prog_fiu este pornit cnd pasul devine activ i i pstreaz starea cnd
pasul devine inactiv
prog_fiu este oprit cnd pasul devine activ i pstreaz starea cnd
pasul devine inactiv
<prog_fiu>;
<prog_fiu>(S)
<prog_fiu>(R);
Secvena SFC fiu prog_fiu trebuie s fie un program SFC fiu al programului curent :
O serie de operaii (fie c sunt sau nu de acelai tip) pot fi descrise n acelai pas. Opiunile sunt
urmtoarele:
o Apelul funciilor i al funciilor bloc: Subprograme, funcii sau funcii bloc
(scrise nST, IL, LD sau FDB) sau funcii C i funcii bloc C pot fi direct
apelate din interiorul unei operaii dup cum urmeaz:
-Pentru sub programe, funcii i funcii C:
ACTION(P):
result:=sub_prog();
END_ACTION;
sau
ACTION(N):
result:=sub_prog();
END_ACTION;
- 36 -
<var_o>:=<var_l>
<var_o>:=-<var_l>
Operaii booleene:
-AND
I
-OR
SAU
-XOR
SAU EXCLUSIV
<var_o>:=<var_l>AND<var_2>
<var_o>:=<var_l>OR<var_2>
<var_o>:=<var_l>XOR<var_2>
Operaii aritmetice:
- +, -, *, / adunare, scdere, nmulire, mprire
Comparaii:
- <, <=, >, >=, =, <> mai mic, mai sau egal, mai mare, mai mare sau egal, egal, diferit
- 39 -
Operaii logice:
-AND_MASK
-OR_MASK
-XORMASK
-NOTMASK
I bit cu bit
SAU bit cu bit
SAU EXCLUSIV bit cu bit
Negaie bit cu bit
Conversia datelor:
-BOO conversie n valoare de tip boolean
-ANA conversie n valoare de tip ntreg
-REAL conversie n valoare de tip real
-TMR conversie n valoare de tip timer
-MSG conversie n valoare de tip mesaj
Altele:
-CAT
concatenarea mesajelor
-SYSTEM
acces la resursele sistemului
-OPERATE operaii cu canalele I/O
Proceduri standard suportate de sistemul ISAGRAF. Aceste proceduri sunt predefinite i nu
trebuie declarate ntr-o librrie.
Proceduri pentru variabile booleene:
-SR
setare bistabil
-RS
resetare bistabil
-R_TRIG
detectare front cresctor
-F_TRIG
detectare front descresctor
-SEMA
semafor
Proceduri pentru numrtoare:
-CTU
numrtor cresctor
-CTD
numrtor descresctor
-CTUD
numrtor reversibil
Proceduri pentru numrtoare:
-TON incrementeaz un timer intern pn la o anumit valoare de la detectarea
frontului cresctor al semnalului declanator pn la detectarea frontului descresctor
-TO incrementeaz un timer intern pn la o anumit valoare de la detectarea
frontului descresctor al semnalului declanator pn la detectarea frontului cresctor
-TP incrementeaz un timer intern pn la o anumit valoare de la detectarea
frontului cresctor al semnalului declanator un interval de timp determinat .
Proceduri pentru ntregi:
-CMP
comparaie
-STACKINT gestioneaz o stiv de ntregi
Proceduri pentru valori ntregi:
-AVERAGE media n eantioane
-INTEGRAL integrare n timp
-DERIVATE derivare n timp
- 40 -
Funcii matematice:
-ABS
valoare absolut
-EXPT
funcia exponenial
-LOG
funcia logaritm
-POW
funcia putere
-SQRT
rdcin ptrat
-TRUNC
trunchierea prii zecimale
Funcii trigonometrice:
-ACOS
-ASIN
-ATAN
-COS
-SIN
-TAN
caractere
-MID
extrage un numr specificat de caractere dintr-un ir pornind de la o
poziie specificat
-REPLACE nlocuire subir de caractere
-RlGTH
extrage un numr specificat de caractere din partea dreapt a unui ir de
caractere
-DAY_TIME ntoarce data/timpul ca un ir de caractere
Funcii pentru vectori:
-ARCREATE creaz un vector
-ARREAD
citete un elemet al unui vector
-ARWR1TE scrie un element ntr-un vector
o Extensii ale limbajului ST:
Funcii pentru controlul variabilelor de tipTimer
-TSTART (timer)
pornete incrementarea unei variabile de tip Timer, fr a-i
reseta valoarea
-TSTOP (timer)
oprete incrementarea unei variabilei de tip Timer
4.4 Variabile i constante
Variabilele sunt grupate dup domeniu i tip. Numai variabilele de acelai tip i din acelai
domeniu fac parte din aceeai grila de intrare.
Domeniile variabilelor:
GLOBAL: variabilele din acest domeniu pot fi utilizate de orice program al
aplicaiei curente;
LOCAL :
variabilele din acest domeniu pot fi utilizate numai de un singur
program;
Tipuri de variabile:
-BOOLEAN valori binare de tipul TRUE/FALSE;
-ANALOG valori ntregi (INTEGER) sau reale (REAL);.
-TIMER
valori de tip timer;
-MESSAGE iruri de caractere.
O variabil este identificat prin nume, comentariu atribut, adres i alte cmpuri specifice.
Tipurile de atribute ale variabilelor:
-INTERNAL
variabil din memorie (intern);
-INPUT
variabil conectat la un dispozitiv de intrare;
-OUTPUT
variabil conectat la un dispozitiv de ieire;
-CONSTANT
variabil din memorie cu atributul de read-only si valoare
iniial.
Variabilele de tip Timer sunt ntotdeauna variabile interne Variabile de Input i Output fac parte
din domeniul Global.
o CONSTANTE
Nu exist dect dou constante de tip Boolean i anume:
-TRUE:
reprezint echivalentul numrului ntreg 1
-FALSE :
reprezint echivalentul numrului ntreg 0
- 42 -
O constant de tip INTEGER este un numr ntreg, cuprins ntre valorile -232 i +232
Constantele de tip INTEGER pot fi exprimate i n alte baze de numeraie i trebuie s
nceap cu un prefix care s identifice baza folosit.
Baz
ZECIMAL
HEXAZECIMAL
OCTAZECIMAL
BINAR
Prefix
(none)
16#
8#
2#
Exemplu
-908
16#1A2B3C4D
8#1756402
2#1101_0001_0101_110
Hour
Minute
Second
Milliseconds
O constant de tip Timer trebuie s nceap cu prefixul T# sau TIME#. Unele uniti pot
s nu apar.
Exemple:
T#1H45OMS 1 or, 450 milisecunde
time#5s
5 secunde
4. 5 Descrierea automatelor programabile volante de tip Smart PLC
n scopul proiectrii unei platforme performante, hardware i software, pentru
controlul sistemelor discrete, o alegere foarte bun poate fi automatul de lip Smart PLC,
fabricat de firma PEP Modular Computere [Pep, 1998]. Este un bun exemplu de automat
programabil evoluat, cu o configuraie hardware i software extrem de performant.
Pricipalele elemente hardware din componena sa sunt:
procesor standard Motorola 68***
procesor comunicaie
memorie pentru firmware (EPROM)
memorie pentru software de aplicaie (RAM)
memorie pentru reinere date la pierderea alimentrii de la reea (SRAM)
port pentru comunicaii sub protocol PROFIBUS (RS485)
port pentru comunicaii RS212 pentru consola operator local
- 43 -
- 44 -
Elemente de execuie:
2 motoare cu 2 sensuri de rotaie, unul pentru micarea orizontal i unul pentru cea
vertical
Elemente de msur:
4 timifatoare de curs
1 buton de pornire
2. Soluia de automatizare
o Varianta 1: implementarea n mediul ISAGraf
Prima soluie pentru controlul acestei aplicaii o reprezint un automat programabil de tip
PEP Smart pentru care s-a dezvoltat un proiect Isagraf ce cuprinde un program principal
secvenial.
Dicionarul de variabile globale:
Variabile de intrare booleene:
Pornire : buton de pornit ciclu
l1: limitator jos
12: limitator sus
13: limitator stnga
14: limitator dreapta
- 46 -
Asocierea intrrilor i ieirilor fizice cu bii din registru de intrare/ieire este prezentat n
tabelul 5.1:
Tabelul 5.1
Intrare fizic
Adres intern
Ieire fizic
Adres intern
Pornire
I : 1/1
M1S
0 : 3/1
l1
I : 1/2
M1D
0 : 3/2
l2
I : 1/3
M2S
0 : 3/3
l3
I : 1/4
M2J
0 : 3/4
l4
I : 1/5
- 47 -
Asocierea etapelor cu bii din fiierul de bit B3 i alegerea fiierului de timer este pezentat n
Tabelul 5. 2
Etapa
Adresa bit
Temporizare
Fiier de timer
B3/1
Temporizare 1
T4:0
B3/2
B3/3
B3/4
B3/5
B3/6
B3/7
B3/8
- 48 -
- 49 -
Element de execuie:
1 motor cu 2 sensuri de rotaie
Elemente de msur:
2 limitatoare de curs
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 2 programe, un program principal i
un program copil, numit Osc. Programul Osc este pornit i oprit de ctre programul
principal i este responsabil cu realizarea micrii oscilatorii i sesizarea apsrii butoanelor
conform specificaiilor aplicaiei.
- 51 -
- 52 -
Comentarii:
Funia REDGE este folosit pentru detectarea impulsurilor produse prin apsarea
butoanelor
Comunicaia ntre programe este realizat prin intermediul variabilei oprit
Programul principal oprete execuia programului copil Osc atunci cnd variabila
oprit are valoarea TRUE sau micarea este ntrerupt de apsarea butonului E
Propunere:
S se modifice programul n condiiile n care la apsarea butonului de oprire, ciclul s
se ncheie totdeauna cnd mobilul ajunge prima dat in partea dreapt.
- 53 -
Procesul este iniiat prin apsarea butonului M, care produce pornirea benzii
transportoare 1. Atunci cnd se detecteaz o sticl fr dop, este oprit banda 1 i este pornit
banda transportoare 2 (dac era oprit). n momentul n care sticla fr dop se gsete n zona de
expulzare, este activat mecanismul de expulzare. Banda 1 va fi repornit n momentul n care
sticla fr dop nu se mai gsete n zona de expulzare (practic semnalul transmis de
detectorul fotoelectric are valoarea logic fals). Banda 2 va fi oprit dup 5 secunde de la
nceperea expulzrii ultimei sticle.
Elemente de execuie:
2 motoare care acioneaz 2 benzi transportoare
1 dispozitiv de expulzare a sticlelor fr dop
Elemente de msur:
1 detector inductiv pentru dopuri.
1 detector fotoelectric pentru sticle
- 54 -
2. Soluia de automatizare:
Pentru controlul acestei aplicaii se alege un automat programabil de tip PEP Smart
pentru care se dezvolt un proiect Isagraf, cu un singur program principal, dar cu 2 seciuni
programate i anume seciunea secvenial i seciunea de sfrit, end section ca n figura 5.9.
Observaii:
seciunea de end este necesar pentru ca banda 2 s poate fi oprit n orice moment dac
perioada ei de activare a expirat
deoarece seciunea de end se execut la fiecaie ciclu automat, testarea timerului se va
face la fiecare ciclu automat
contorizarea timpului este fcut cu ajutorul funciilor TSTART i TSTOP
dac o sticl trebuie s fie expulzat n timp ce o alt sticl se gsete pe conveiorul 2,
timer-ul este resetat i este reactivat incrementarea timer-ului
Propuneri:
S se construiasc o diagram Ladder pentru un automat de tip Allen Bradley, care s
controleze acest proces
- 55 -
- 56 -
- 57 -
2. Soluia de automatizare:
Pentru controlul acestei aplicaii se alege un automat programabil de tip PEP Smart
pentru care se dezvolt un proiect Isagraf, proiect ce const din 6 programe SFC ce ruleaz n
paralel. Structura proiectului Isagraf este prezentat n figura 5.13.
- 59 -
- 60 -
Elemente de execuie:
3 cilindri cu dublu efect (A, B, C)
bascul nsrcinat cu clasificarea pachetelor
4 benzi transportoare
Elemente de msur
6 limitatoare decurs
2 detectoare de poziie
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 5 programe secveniale ce ruleaz n
paralel i un program n seciunea de Begin, program ce se execut la nceputul fiecrui ciclu
automat. Structura proiectului Isagraf este prezentat n figura 5.21
- 61 -
- 62 -
- 63 -
Elemente de execuie:
1 pomp cu motorul su
1 motor al echipamentului de pompat aerul
2 electrovalve
1 rezisten
Elemente de msur:
2 senzori de nivel
1 traductor de temperatur
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, Main i
programul seciunii de Begin, numit Convers.
Dicionarul de variabile globale:
o Variabile de intrare booleene:
senzor_plin : are valoarea TRUE cnd depozitul 2 este plin
senzor_gol : are valoarea TRUE cnd depozitul 2 este gol
- 65 -
- 66 -
- 67 -
Elemente de execuie:
3 electrovalve (Va, Vb, Vc)
Motorul benzii transportoare cu un singur sens de rotaie
Motorul de rotaie al malaxorului
Motorul de pivotare al malaxorului, cu dou sensuri de rotaie
Elemente de msur:
3 senzori de greutate, pentru referinele A, B i zero
2 limitatoare de curs
1 detector de trecere
- 68 -
2. Soluii de automatizare:
2.1 Varianta 1 : implementarea n mediul Isagraf
Aceast variant presupune utilizarea unui automat programabil de tip PEP Smart,
pentru care s-a dezvoltat un proiect Isagraf ce cuprinde 1 program principal.
Dicionarul de variabile globale:
o Variabile de intrare booleene:
Start : buton de pornire
d : detector de trecere brichete solubile
A : detectorul greutii produsului A
B : detectorul greutii produselor A + B
Lim_stanga : limitator stnga malaxor
Lim_dreapta : limitator dreapta malaxor
o Variabile de ieire booleene
Valva_A : comand deschiderea / nchiderea valvei A
Valva_B : comand deschiderea / nchiderea valvei B
Valva_C : comand deschiderea / nchiderea valvei C
Mt : comand motorul benzii transportoare
Rotire : comand rotaia malaxorului
Piv_dreapta : comand pivotarea ctre dreapta a malaxorului
Piv_ stnga : comand pivotarea ctre stnga a malaxorului
o Variabile globale de tip timer:
Timer : temporizare folosit la rotaia malaxorului
- 69 -
- 70 -
- 71 -
- 72 -
Asocierea etapelor cu bii din fiierul de bit B3 i alegerea fiierului de timer este
prezentat n tabelul 5.4.
Tabelul 5.3
Intrare fizic
Adres intern
Ieire fizic
Adresa intern
START
1:1/1
Valva A
0:3/1
A
1:1/2
Valva B
0:3/2
B
1:1/3
Valva C
0:3/3
Z
1:1/4
Mt
0:3/4
lim_dreapta
1:1/5
Rotire
0:3/5
d
1:1/6
Piv_dreapta
0:3/6
lim stnga
1:1/7
Piv_stanga
0:3/7
Tabelul 5.4
Etapa
l
2
3
4
5
6
7
8
9
101
102
103
104
Adres 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
- 73 -
Fiier de timer
T4:0
- 74 -
- 75 -
Comentarii:
n diagrama SFC se pot observa cele 2 secvene paralele, aducerea lichidelor i
aducerea brichetelor n malaxor. Ieirea din paralelism se face atunci cnd ambele
secvene s-au ncheiat
Temporizarea a fost realizat cu instruciunile TSTART i TSTOP
Propunere:
S se modifice diagrama Ladder folosind pentru activarea ieirilor instruciunea OTE
(acolo unde este posibil)
- 76 -
Elemente de execuie:
1 cilindru (A) ce regleaz dozatorul volumetric
1 cilindru de avans (B) cu 3 poziii
1 cilindru (C) ce reprezint mecanismul de transfer al capacelor
motorul bezii transportoare
un mecanism de nurubare dopuri
Elemente de msur:
6 lmitatoare de curs
1 detector de poziie
1 fotocelul pentru detecie sticl de umplut
1 fotocelul pentru detecie sticl plin
- 77 -
2. Soluia de automatizare
Pentru controlul acestei aplicaii s-a ales un utomat programabil de tip PEP Smart
pentru care s-a dezvoltat un proiect Isagraf ce cuprinde un program principal, numit Main.
Dicionarul de variabile globale:
o Variabile de intrare booleene:
F1 : Limitator sus cilindru A
F2 : Limitator jos cilindru A
F3 : Limitator sus cilindru B
F4 : Limitator jos cilindru B
F5 : Limitator stnga cilindru C
F6 : Limitator dreapta cilindru C
F7 : Detector poziie de preluat dop
senzor_rotire : Limitator rotire dispozitiv de nurubare
st_de_reumplut : Senzor detecie sticl de umplut
st_plina : Senzor detecie sticl plin
o Variabile de ieire booleene:
Banda : comand pornire / oprire band
A_avans : comand avans cilindru A
A_retragere : comand retragere cilindru A
B_avans : comand avans cilindru B
B_retragere : comand retragere cilindru B
C_avans: comand avans cilindru C
C_retragere : comand retragere cilindru C
Insurubare : comand de nurubare a dopului
Comentarii:
n program au fost folosite 2 paralelisme, fiecare avnd cte 2 secvene ce se execut
simultan
A doua secven paralel implementeaz condiia ca 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
- 78 -
- 79 -
- 80 -
n cadrul sistemului exist o band transportoare pe care vin, unul dup altul, cele trei
containere A, B, C. Primul dintre ele care ajunge la platform este containerul C apoi B i
ultimul cel de tip A. Cilindrul E este responsabil cu evacuarea recipienilor cu ajutorul celei
de-a doua benzi transportoare. Iniierea procesului se face prin pornirea benzii transportoare 1
pe care sunt aduse containerele. n momentul n care un container de tip C se gsete pe
platform, banda 1 va fi oprit iar cilindrul D va avansa o poziie. Cnd containerul C
activeaz detectorul 2, banda 1 va fi din nou activat iar cilindrul D va fi oprit; banda 1 se va
opri din nou cnd containerul B ajunge la platform i n consecin cilindrul D va avansa din
nou pn cnd containerul C activeaz detectorul 3 iar containerul B activeaz detectorul 2. n
acest moment banda 1 este repornit pn cnd containerul A atinge platforma, moment n
care banda este oprit. n acel moment cele trei valve vor fi deschise simultan, fiecare fiind
meninut deschis un anumit timp, astfel nct contaienrul A se va umple cu lichid A timp de
5 secunde, containerul B cu lichid de tip B timp de 7 secunde iar containerul C timp de 3
secunde cu lichid de tip C. Cnd toate aceste temporizri au expirat, valvele vor fi nchise,
cilindrul E va avansa pentru a evacua containerul A pn activeaz detectorul 4. n acest
moment cilindrul E se retrage. Dup ce a ajuns n poziia de retragere, cilindrul D va fi retras
pn activeaz detectoarele 1 i. 2. Apoi containerele B i C vor fi umplute cu lichid de tip A,
respectiv B, dup care urmeaz evacuarea containerului B, n final containerul C va fi umplut
cu lichid de tip A i va fi evacuat. Dup evacuare cilindrul D va fi retras i un nou ciclu poate
ncepe.
- 81 -
Elemente de execuie:
3 electrovalve
2 cilindri cu dublu efect
2 motoare ale benzilor transportoare
Elemente de msur:
4 detectoare de poziie
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.
Dicionarul de variabile globale:
Variabile de intrare booleene:
Poz_A : detectorul de poziie A
Poz_B : detectorul de poziie B
Poz_C : detectorul de poziie C
Lim_4 : limitatorul de avans al cilindrului E
Variabile de ieire booleene:
Banda_l : activare / dezactivare banda l
Banda_2 : activare / dezactivare banda 2
D_avans : avans cilindru D
D_retragere : retragere cilindru D
E_avans : avans cilindru E
E_retragere : retragere cilindru E
Valva_A : comanda de deschidere / nchidere valva A
Valva_B : comanda de deschidere / nchidere valva B
Valva_C : comanda de deschidere / nchidere valva C
Constante interne de tip INTEGER:
TA_container_I : perioada de timp pentru umplerea containerului 1 cu lichid de tip A
TB_container_2 : perioada de timp pentru umplerea containerului 2 cu lichid de tip B
TC_container_3 : perioada de timp pentru umplerea containerului 3 cu lichid de tip C
TA_container_2 : perioada de timp pentru umplerea containerului 2 cu lichid de tip A
TB_container_3 : perioada de timp pentru umplerea containerului 3 cu lichid de tip B
TA_container_3 : perioada de timp pentru umplerea containerului 3 cu lichid de tip A
Comentarii:
n cadrul secvenelor de deschidere a valvelor, temporizrile au fost implementate prin
tastarea 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 fcut n paralel cu ajutorul elementului de paralelism al
diagramelor SFC
- 82 -
- 83 -
- 84 -
- 85 -
- 86 -
- 87 -
2. Soluia de automatizare
Pentru implementarea acestei aplicaii s-a ales un automat programabil de tip PEP
Smart pentru care s-a dezvoltat un proiect Isagraf, a crui structur ierarhic poate fi
vizualizat n figura 5.37 i ale crui seciuni standard sunt descrise n continuare.
Iniializrile de constante, msurile, filtrrile, adaptrile, evaluarea existenei
condiiilor de funcionare, interfaa cu utilizatorul, sunt realizate n afara regulatorului de ctre alte
taskuri care se ocup doar de aceste lucruri. Comanda se adapteaz i se transmite n afara
regulatorului.
Numele de variabile s-au ales pentru varianta cu identificatori proprii. Pentru o
versiune generic, impersonal, se lucreaz cu array-uri (vectori de variabile), iar accesul se face
prin indexul la variabila respectiv.
n cadrul seciunii BEGIN, care se execut la nceputul fiecrui ciclu de automat, au loc
urmtoarele aciuni:
Msuri, filtrri, testare de ncadrare n limite, evaluare alarme, avarii, contorizri
Adaptri, pregtire variabile de lucru
Citirea variabilelor de control de la interfaa operator
n cadrul seciunii SEQUENTIAL, adic acolo unde este implementat logica de funcionare a
programului, au loc, n principal, urmtoarele aciuni:
- 88 -
secvena de iniializare, n care sunt iniializate anumite constante i este pornit timerul pentru perioada de eantionare
algoritmul de reglare, a crui descriere detaliata este prezentat n subcapitolul
urmtor
Nu ntmpltor seciunea secvenial are o singur stare pentru fiecare regim de lucru.
Aceast necesitate a aprut datorit faptului c automatul (care poate lucra multitasking) nu trece
la o alt activitate dect dup terminarea unui ciclu main. ntr-un ciclu main se execut
seciunea de BEGIN, cea de END i un anumit numr de stri din seciunea
SEQUENTIAL, ct permite durata unui ciclu main. Dac pentru execuia aciunilor asociate unei
stri, procesorului i-ar lua un timp mai ndelungat dect perioada unui ciclu predefinit, ciclul va
fi prelungit pn cnd toate aciunile asociate strii sunt executate.
Cu aceast metod ciclul de reglare devine constant i ct mai mic posibil. Durata
ciclului poate fi fixat i altfel (software), dar oricum, perioada va avea o valoare mai mare,
pierzndu-se astfel din timpul de rspuns al regulatorului. Mai mult, in cazul n care ar exista mai
multe etape, apare posibilitatea ca comanda ce se d elementului de execuie s nu fie consecina
ultimei citiri, ceea ce face s se piard chiar noiunea de cauzalitate.
Seciunea END, care se execut la sfritul fiecrui ciclu automat, dup seciunea
secvenial, realizeaz n principal urmtoarele aciuni:
Adaptri de valori
Actualizare ieiri: concret, n cazul algoritmului de reglare ce respect condiiile de
mai sus, ieirea este comanda ctre elementul de execuie calculat conform
algoritmului la ultimul ciclu main i ca urmare a ultimei valori a intrrii
Transmiterea ctre interfaa utilizator a valorilor calculate, pentru vizualizare
Diagrama logic de funcionare a regulatorului (Sequential Function Chart), n care pot
fi identificate etapele n care se poate gsi automatul i tranziiile pe care le poate efectua, sunt
ilustrate n figura 5. 38.
- 89 -
Se observ c diagrama conine 3 etape i pot fi efectuate 4 tranziii ntre aceste etape.
Etape:
Etapa 1 : iniializare regulator
Etapa 2 : se execut un pas de reglare n regim automat
Etapa 3 : se execut un pas de reglare n regim manual
Tranziii:
Tranziia 1 - S1S2 : se execut dac sunt condiii de trecere n starea de calcul PID
(regimul automat)
Tranziia 2 - S1S3 : se execut dac sunt condiii de trecere n starea de comand
manual. (regimul manual)
Tranziia 3 - S2S1 : salt necondiionat n etapa iniial
Tranziia 4 - S3S1 : salt necondiionat n etapa iniial
Variabilele declarate n cadrul proiectului sunt prezentate n tabelul 5.5:
Tabel 5.5
Variabil
Run
ModRT
timer_ pi
cycle1
banda1
Td1
Tint1
kp1
deriv1
w
T_pv
T_pvl
T_pv2
T_sp
Err1
Comand
ventil
xo1
Tip
Descriere
Real
n etapa 1 (Init) se actualizeaz (dac e nevoie) valorile variabilelor de lucru (dac
regulatorul funcioneaz n alte regimuri de lucru, spre exemplu n cascad, sau n regim de
selecie).
- 90 -
timer_pl := t#0s
kpl := 100.0/banda1
deriv1:=Td1*1000.0*(T_pv-2.0*T_pvl+T_pv2)/real(cycle1)
T_pv2:=T_pv1; T_pv1:=T_pv;
w:=(T_sp-T_pv)+(T_sp-T_pv)*real(cycle1)/(Tint1*1000.0)err1-deriv1
Comanda ventil:=Comanda ventil+Kp1*w;
if(Comanda ventil>100.0) then Comanda ventil:=l00.0;
end_if;
if(Comanda ventil<0.0) then Comanda ventil:=0.0;
end_if;
Err1:=T_sp-T_pv;
xo1:=Comanda ventil;
- 91 -
- 92 -