Sunteți pe pagina 1din 92

CAP 1.

CARACTERISTICI I PERFORMANE ALE AUTOMATELOR


PROGRAMABILE
Un AP (Automat Programabil) este un dispozitiv aprut pentru a nlocui releele i
schemele secveniale necesare pentru controlul sistemelor automate [Borangiu, 1986].
Principiul de baz al unui AP este urmtorul: verific starea intrrilor i, n funcie de acestea,
activeaz sau dezactiveaz ieirile. Utilizatorul introduce un program, care face ca automatul s
dea rezultatele dorite.
1.1 Structura automatelor programabile
Un AP este compus n principal din: unitate central (UC), zon de memorie i circuite
pentru recepionarea datelor de intrare/ieire (fig 1. 1). Putem considera AP-ul ca o cutie plin de
relee individuale, numrtoare, ceasuri i locaii de memorare a datelor. n general
componentele unui automat programabil sunt:

Unitate central
Module de intrare / ieire
Regitrii de intrare / ieire
Memorie de date
Regitrii interni
Circuite de temporizare
Circuite de numrare

Funcionarea lor este urmtoarea:


Unitatea central : conine un procesor, o unitate de calcul aritmetic i diferite tipuri de
memorie. Gama de procesoare folosite de ctre productorii de automate programbile
este foarte diversificat, cteva exemple ar putea fi procesoarele Motorola, Intel,
Siemens. Procesoarele folosesc o memorie de lucru de tip RAM pentru execuia
instruciunilor, programul de executat fiind , de obicei memorat ntr-o memone de tip
Flash. Dimensiunile memoriilor difer de la un tip de automat la altul, influennd
performanele i costul automatului programabil.
Module de intrare : conin unul sau mai multe circuite de intrare. Acestea exist fizic,
sunt conectate la lumea exterioar i recepioneaz semnale de la comutatoare, senzori
-2-

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-

o Intrri de curent continuu


Sunt disponibile circuite care funcioneaz la 5, 12, 24 i 48 de voli. Modulele de intrare
permit conectarea unor dispozitive de tip tranzistor PNP sau NPN. n cazul unui comutator nu
se pune problema conectrii de tip NPN sau PNP. Fotocuploarele sunt folosite pentru a izola
circuitele interne ale AP-ului de intrri. Acest lucru este necesar pentru a elimina zgomotele i
se realizeaz prin conversia semnalului de intrare din form electric in form luminoas i
apoi invers.
o Intrri de curent alternativ
Modulele de intrare obinuite funcioneaz la 24, 48, 110, 220 voli. Dispozitivele legate la
intrarea de curent alternativ sunt sesizate mai greu de ctre AP. De cele mai multe ori acest
lucru nu are importan pentru cel care programeaz AP-ul, dar este bine de tiut c se pierde
timp din cauz c dispozitivele pe baz de curent alternativ sunt de obicei dispozitive
mecanice, care sunt mai lente, n plus apare i o ntrziere de cel puin 25 ms datorit filtrrii
care are loc la intrarea n AP. De reinut c AP-urile funcioneaz la cel mult 5 VCC.
o Ieiri cu relee
Ieirile cele mai obinuite sunt cele de tip releu. Releele pot fi folosite att cu sarcin de
curent alternativ, ct i continuu. Metoda standard de conectare a sarcinilor la ieirile AP-ului
presupune folosirea unei surse de curent alternativ, ns poate fi folosit i curentul continuu.
Releele se afl n interiorul automatului programabil. Atunci cnd programul care
ruleaz n automat indic ieirii s devin activ (adevrat), AP-ul va aplica o tensiune
bobinei releului, care va nchide contactul corespunztor. La nchiderea contactului ncepe s
circule curent prin circuitul extern. Atunci cnd programul indic dezactivarea ieirii, AP-ul
va ntrerupe tensiunea aplicat bobinei releului, circuitul extern va fi deschis, deci inactiv.
1.3 Funcionarea automatelor programabile
Automatele programabile funcioneaz scannd (executnd) continuu un program. Putem spune
c un ciclu de scanare are trei pai importani (fig. 1. 2 ).

o Pasul 1-TESTAREA INTRRILOR-AP-ul cerceteaz starea intrrilor (activ/inactiv n


cazul intrrilor numerice sau valoarea unei intrri analogice) i o copiaz, n form
binar, n anumii regitri asociai intrrilor.
o Pasul 2-EXECUTAREA PROGRAMULUI-AP-ul execut programul instruciune cu
instruciune. n funcie de starea intrrilor si de logica programului, schimb
configuraia registrilor de ieire, n form binar.
-4-

o Pasul 3-ACTUALIZAREA IEIRILOR-n final AP-u actualizeaz i starea ieirilor


fizice pe baza strii ieirilor rezultate din pasul anterior. Dup cel de-al treilea pas,
AP-ul revine la pasul 1 i reia ciclul. Un ciclu de scanare este definit ca timpul n care
se execut cei trei pai de mai sus.
De fapt sunt mai mult de trei pai. Mai au loc verificarea sistemului i actualizarea valorilor
curente ale ceasului i numrtorului intern.
Timpul de rspuns
Timpul total de rspuns este un parametru important al unui automat programabil. Unui
automat programabil i trebuie un anumit timp pentru a reaciona la schimbrile valorilor de
intrare. n unele aplicaii viteza nu este important, n altele da.

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-

CAP. 2 LIMBAJE DE PROGRAMARE A AUTOMATELOR


PROGRAMABILE
Datorit diversitii firmelor productoare i tipurilor de automate programabile, exist mai
multe variante de programare a unui automat programabil, dintre care pot fi amintite:
Programarea cu ajutorul limbajelor grafice, de tip (Grafcet sau Isagraf)
Programarea prin diagrama Ladder
Programarea in limbaje de nivel nalt (C, Pascal)
2.1 Limbajul Grafcet
Limbajul Grafcet reprezint o modalitate de descriere grafic a unui sistem logic secvenial, fiind
util datorit generalitii i facilitilor de care dispune, spre exemplu posibilitatea descrierii
secvenelor paralele [Arzen, 1994].
Elementele constitutive ale unei diagrame Grafcet sunt urmtoarele:
o Etape: corespund unei stri stabite a sistemului automat i sunt identificate printr-un
numr unic

Etapele pot fi:


iniiale: aceste etape sunt active iniial (etapa I din fig. 2. 1)
normale: sunt celelalte etape care nu sunt active iniiale (prima etap 3 din fig. 2.
1). Ele se pot activa la un moment dat (etapa 3 cu un punct ataat din fig. 2. 1).
o Tranziii: o tranziie indic posibilitatea evoluiei dintr-o stare activ ntr-o nou stare.
Fiecrei tranztii i este asociat o condiie logic, n funcie de valorile logice ale unor
variabile de intrare sau de starea activ sau inactiv a altor etape. Condiia de tranziie
nu este validat dect dac etapele imediat precedente sunt active.

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 deschiderea unei vane


o oprirea sau pornirea unui motor (fig. 2. 3) o
incrementarea unui contor
o pornirea unei temporizri

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.

o Macro-etape: macro-etapa este o reprezentare unic a unui ansamblu de etape i de


tranziii. Sunt caracterizate de o etap iniial i una finala. Etapa iniial se supune
regulilor cunoscute. Etapa final nu poate avea aciuni asociate. Ct timp macro-etapa
este activ, evoluia Grafcet-ului respect regulile obinuite de evoluie. Macro-etapa
devine activ cnd etapa anterioar etapei iniiale este activ i condiia de tranziie a
sa devine adevrat. Ea este dezactivat cnd etapa final este activ i condiia de
tranziie asociat este adevrat. Strile unei macro-etape pot fi:
o de repaus:
nici o etap component nu este activ
o activ:
cel puin o etap component este activ, n afar de etapa final
o de sfrit:
etapa final este activ.
O macro-etap poate conine una sau mai multe etape iniiale. Aceste etape pot fi
activate la punerea sub tensiune sau prin program.
Dinamica unei diagrame Grafcet este urmtoarea: dac o etap este activ i una din
condiiile de tranziie ataate este adevrat, etapa actual se dezactiveaz i se activeaz
etapa urmtoare (sau etapele urmtoare, n cazul unui paralelism).
Un exemplu de diagram Grafcet este prezentat n fig. 2. 6

-8-

2.2 Ladder Diagram


Cea mai rspndita modalitate de construire a unui program ce va fi executat de ctre un
automat programabil este varianta construiri unei diagrame n trepte, numit Ladder
diagram.
O astfel de diagram este format din ramuri, pe fiecare ramur existnd instruciuni
specifice automatului respectiv (fig. 2. 7). ntruct instruciunile pot fi mprite n dou mari
categorii, de intrare i de ieire, pe orice ramur trebuie s existe cel puin o instruciune de
ieire. Fiecare instruciune are asociat un simbol grafic.

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

Se obinuiete construcia a dou module software ce ruleaz simultan, unul n


calculator i celalalt n controller. Schimbul de informaii ntre cele dou dispozitive se poate face
prin intermediul unor structuri de date definite n ambele module, acestea putnd fi
citite/scrise cu funcii specifice.
Setul de instruciuni C specifice automatului programabil de tip Microdac
Pentru a putea nelege cum se poate construi un pachet software de control n limbajul
C, va fi prezentat pe scurt o parte a coleciei de funcii specifice lucrului cu modulele de
intrare/ieire pentru un automat programbil de tip Microdac, construit de firma Grayhill.
Aceste funcii sunt implementate cu ntreruperi disponibile din Microdac [Grayhill, 1995].

Uint md_read_dio_status(Uchar group) citete starea de ON/OFF a unui grup de


module digitale
char md_read_dio_point(Uchar point) citete starea de ON/OFF a unui singur modul
digital
void md_write_dout(Uint value 0, Uint value l) nscrie toate ieirile digitale (max. 32)
printr-un singur apel
char md_activate_dout_point (Uchar point) activeaz o singur ieire digital
char md_deactivate_dout_point (Ucaher point) deactiveaz o ieire digital
Uint md_read_ain (Uchar chanel) citete valoarea unei intrri analogice
void md_write_aout(Uchar chatmel, Uint value) seteaz ieirea analogic channel cu
valoarea value
void md_delay (Uint msec) oprete execuia programului pentru un numr dat de
milisecunde
Ulong md_get_counter (void) ntoarce valoarea timer-ului
void md_set_counter (Ulong counter) seteaz timer-ul cu valoarea count
Uchar md_get_ctr_res (void) ntoarce rezoluia curent a timer-ului care poate fi 1ms
sau 5Os

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 -

CAP. 3 AUTOMATELE PROGRAMABILE ALLEN-BRADLEY


n capitolul ce urmeaz vor fi prezentate pricipalele caracteristici ale automatelor
programabile produse de firma Allen Bradley, ntruct aceste tipuri de automate sunt
recunoscute pentru performanele i fiabilitatea lor, ocupnd un important segment de pia n
domeniul sistemelor de control industrial.
Structura i programarea acestor automate va fi prezentat n mod particular pentru
modelul SLC500, de uz didactic, principalele caracteristici fiind ns comune tuturor
automatelor produse de firma Allen Bradley [Allen-Bradley, 1992].
Automatul SLC500 prezint o structur standard de automat programabil, cu
meniunea c modulele de intrare-ieire au n componen, n general 16 circuite de intrare sau de
ieire, mai multe module putnd fi montate pe rack-uri avnd un numr standard de sloturi, 4, 6 sau
10 module putnd fi ataate unitii centrale.
Sloturile sunt numerotate, slotul 0 fiind ntotdeauna rezervat unitii centrale, celelalte fiind
atribuite modulelor de intrare / ieire. Numrul slotului este important pentru adresarea corect a
intrrilor i ieirilor.
Automatul dispune de o interfa serial de tip RS-232 prin care poate fi cuplat la un
calculator personal i o interfa de tip RS-485 prin care pot legate mai multe automate ntr-o reea
de automate.
Editarea programelor se face cu ajutorul calculatorului personal, prin intermediul unui
mediu de programare integrat care permite i transferul programului n memoria automatului, de
unde va putea rula. Programarea se face prin metoda Ladder Diagram, realizarea unui
program necesitnd cunoaterea organizrii memoriei acestui tip de automat.
3.1 Organizarea memoriei i moduri de adresare
La baza adresrii si organizrii memoriei st noiunea de file (fiier). Memoria este mprit n
fiiere, care sunt de 2 tipuri:
fiiere program
fiiere de date
Fiecare program creat pentru acest automat are asociat att fiiere program, ct i fiiere de
date.
Fiierele program sunt numerotate si pot fi maxim 256. Implicit sunt create doar 3 fiiere
program i anume:
fiierul 0 ce cuprinde informaii referitoare la configuraia hardware a automatului
fiierul 1 este rezervat
fiierul 2 conine diagrama Ladder realizat de ctre utilizator
Celelate posibile fiiere program sunt create numai n situaia n care utilizatorul folosete
subrutine.
Fiierele de date conin informaii asociate cu intrrile i ieirile (externe) precum i cu toate
celelalte instruciuni care compun diagram Ladder. n plus, ele mai conin informaii cu
privire la operaiile procesorului. Fiierele de date sunt numerotate i pot fi maxim 256.
Implicit sunt create primele 10 fiiere.
Structura acestor fiiere de date este prezentat mai jos:
0: Imagine ieiri :
1: Imagine intrri :
2: Stare :
3: Bit :
4: Timer :

conine valorile intrrilor n format binar


conine valorile ieirilor n format binar
conine informaii de stare
utilizat pentru variabile booleene
utilizat n instruciuni de timer
- 12 -

5: Counter :
6: Control:
7: ntregi :
8: Rezervat
9: Folosit n reea
10 - 255 :

utilizat n instruciuni de counter


utilizat n instruciuni de stiv, shiftare, secveniere etc.
folosit pentru memorarea operanzilor de tip Integer
pot fi create de utilizator atunci cnd fiierele create implicit nu sunt
suficiente i pot fi de tipul Bit, Timer, Counter, Control sau Integer.

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 -

3.2 Structura intern a fiierelor de date implicite


a) Fiierele de imagine a intrrilor i ieirilor
Biii din aceste fiiere corespund ieirilor i intrrilor fizice ale automatului.
Formatul general de adresare pentru aceste fiiere este:
O:s/b , respectiv I:s/b
Unde:
O - ieire
I - intrare
s - numr slot pe care se gsete modulul de I/O / delimitator de bit
b - numrul intrrii adresate
Ex:exmplu:
O:4/6 : ieirea 6 de pt slotul 4
1:1/7 : intrarea 7 de pt slotul 1
b) Fiierele de tip Bit
Formatul general de adresare pentru acesle fiiere este:
Bf:e/b sau Bf/b unde
B - identifica tipul fiierului
f - numrul fiierului
e - cuvntul din cadrul fiierului
b - bitul adresat
Exemplu:
B3:1/5 - bitul 5 din cuvntul 1 al fiierului de bit B3
B3/18 - bitul 18 al fiierului B3
c) Fiiere de tip Timer
Aceste fiiere conin elemente de 3 cuvinte, avnd maxim 256 de elemente. Un element tipic are
structura din tabelul 3. 2:
15
14
EN TT
PRE
ACC

13
DN

Tabel 3. 2 Element al fiierului de Timer


12 | 11
10 | 9
8
| 7-0
Uz intern

Cuvnt
0
1
2

Semnificaia elementelor va fi prezentat n cadrul instruciunilor de Timer. Formatul de


adresare este : Tf:e.s sau Tf:e/b, unde:
T - identific tipul fiierului (Timer)
f - numrul fiierului
e - elementul din cadrul fiierului
s - cuvntul din cadrul elementului
b - bitul adresat
- 14 -

Exemple:
T4:0.ACC
T4:1/DN

- cuvntul ACC din elementul 0 al fiierului de Timer 4


- bitul DN din elementul 1 al fiierului de Timer 4

d) Fiierele de tip Counter


Aceste fiiere conin elemente de 3 cuvinte, avnd maxim 256 de elemente. Un element tipic are
structura din tabelul 3. 3:
Tabel 3.3 Element al fisierului de Counter
14
13
12
11
10
9
|8
CD
DN
OV
UN
UA
/Uz intern

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

Pointer de bit sau poziie ( POS )


cu semnificaia:
EN = Enable
EU = Unload Enable
DN = Done
EM = Stack Empty
ER = Error
UL = Unload
IN = Inhibit
FD = Found
- 15 -

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.

Constricia programelor folosind metoda Ladder-diagram


O diagram Ladder este format dinrr-un anumit numr de ramuri, fiecare coninnd cel
puin o insiuciune de ieire i una sau mai multe instruciuni de intrare. Fiecare
instruciune are ataat o valoare logic, TRUE sau FALSE.
Ramura Ladder prezentat n exemplul urmtor conine dou instruciuni de intrare i o
instruciune de ieire. O instruciune de iere este situat n dreapta ramurii, lng bara
vertical dubl dreapta. Instruciunile de intrare sunt ntotdeauna situate la stnga
instruciunilor de ieire.
Ex:

XIC
XIO
OTE

Instruciuni de intrare

Instruciuni de ieire

= Examine if Closed - examineaz bitul de la adresa B3/10


= Examine if Opened - examineaz bitul de la adresa B3/11
= Output Eenergize - aetivez bitul de la adresa B3/12
- 16 -

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)

n exemplul precedent, pentru a executa instruciuitea de ieire OTE (care va avea ca


efect setarea bitului B3/12 ), trebuie s nu se ntrerup continuitatea logic pe ramur, adic
trebuie ca starea XIC = TRUE ^ starea XTO = TRUE. Concret, conform tabelului precedent:
a)

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)

Cnd NU este gsit aceast continuitate logic a instruciunilor de intrare, atunci


instruciunea de ieire OTE devine sau rmne fals.
n acest caz condiiile ramurii sunt false.

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 -

Cmpul condiie din model poate nsemna:


1) testarea unei intrri sau
2) testarea unei anumite combinaii logice ntre variabilele de intrare.
n exemplul precedent s-a prezentat un bloc AND ( i logic), ntre valoarea bitului B3/10 i
valoarea negat a bitului B3/11. n cazul general un bloc AND reprezint un bloc de tipul

Dac A i B sunt adevrate atunci C devine sau rmne adevrat.


SAU (OR) logic poate fi format, de exemplu, prin ramificarea instruciunilor.

Tabela de adevr pentru acest tip de bloc este prezentat n tabelul 3. 8:


Tabel 3. 8 OR logic inlre 2 instruciunide intrare
A
B
C
0
0
0
0
1
1
1
0
1
1
1
1
Pentru a mri flexibilitatea realizrii programelor, exist posibilitatea de a introduce expresii
logice complexe pe o ramur, mrind astfel complexitatea blocului logic generat:

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 :

Cnd instruciunea de intrare trece din FALSE (o scanare) n TRUE (urmtoarea


scanare), instruciunea OSR condiioneaz ramura astfel nct ieirea trece n TRUE pentru o
scanare a programului, apoi ieirea devine sau rmne FALSE pentru urmtoarele scanri, pn
cnd intrarea face o noua tranziie din FALSE n TRUE.

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

TOF (Timer OfT-Delay). Instruciune de ieire. Analog cu TON, dar incrementarea


valorii din acumulator are loc atta timp ct n ramur condiiile sunt FALSE. Cnd
condiiile devin TRUE, ( ACC ) = 0.
RTO (Retentive Timer). Instruciune de ieire. Analog cu TON, dar dac condiiile de
pe ramura trec din TRUE n FALSE nainte ca ( ACC ) = ( PRE ), atunci ( ACC )
rmne la ultima valoare.
CTU (Count Up ). Instruciune de ieire. Numr tranziiile din FALSE n TRUE ale
ramurii, incrementnd valoarea acumulat. Numrtoarea se oprete cnd condiiile
devin FALSE. 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.

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.

o Instructiuni logice i de mutare


Sunt instruciuni de ieire. Instruciunile logice se aplic bit ci bit datelor stocate Ia adresele
surs. Cnd condiiile de pe ramur sunt TRUE, atunci :
MOV (Move)
(Dest) (Sursa): .
MVM (Masked Move) Analog cu MOV, dar dup ce sursa a fost trecut prin
Mask (masc, mica poate fi o valoare hexa (o
constant).
AND (And)
(Dest) = A AND B
OR (Or)
(Dest) = A OR B
XOR (Exclusive Or)
(Dest) = A XOR B
o Instruciuni de lucru cu stiva
Instruciunile FFL (FIFO Load) i FFU (FIFO Untoad) se folosesc mpreun. Instruciunea FFL
ncarc octei ntr-un fiier creat de utilizator numit stiv FIFO. Instruciunea FFU descarc
octei din stiva FIFO n aceeai ordine n care au fost introdui.
Pentru folosirea acestor instruciuni sunt necesari urmtorii parametrii:
Source reprezint o adres de cuvnt sau o constant (-32, 768 pn la 32. 767) n care
se afl valoarea de introdus n stiva FIFO.
Destination reprezint o adres de cuvnt care memoreaz valoarea extras din stiva
FIFO.
FIFO reprezint adresa stivei. Trebuie s fie o adres indexat de cuvnt dintr-unul
din fiierele de intrare, ieire, stare, bit, sau ntregi. Pentru ambele instruciuni FFL i
FFU trebuie s avem aceeai stiv.
Length reprezint numrul de elemente din stiv (maxim 128). Ambele instruciuni
FFL i FFU trebuie s aib acelai numr de elemente.
Position reprezint urmtoarea locae disponibil din stiva unde se poat ncrca date.
Aceast valoare se schimb dup fiecare operaie de ncrcare sau descrcare. Acelai
numr este folosit pentru ambele instruciuni FFL i FFU.
Control reprezint adresa fiierului de control, fiier n care sunt stocate date despre
biii de stare, lungimea stivei i valoarea poziiei. Aceast adres nu trebuie folosit
pentru nici o alt instruciune.

- 22 -

Biii de stare din elementul de control sunt folosii astfel:


Bitul Empty EM (bitl2) este setat de instruciunea FFU indicnd c stiva e goal
Bitul Done DN (bit 13) este setat de instruciunea FFL pentru a indica faptul c stiva e
plin. Aceasta inhib ncrcarea stivei
Bitul FFU Enable (bit 14) este setat la tranziia din fals n adevrat a FFU i resetat la
tranziia invers
Bitul FFL Enable (bit 15) este setat la tranziia din FALSE n TRUE a ramurii FFL i
resetat la tranziia invers.
o Blocul funcional PID
Un bloc funcional nseamn un set de instruciuni (invizibile utilizatorului) care,
avnd cunoscut un anumit numr de parametri de intrare, sunt capabile s obin nite valori
de ieire, calculate dup un anumit algoritm, care nu este transparent utilizatorului.
Utilizatorul poate doar s configureze blocul funcional introducnd valorile parametrilor de
intrare.
PID este un bloc funcional apelat ca o instruciune de ieire cu ajutorul creia se pot
conduce procese dup temperatur, presiune, nivel sau debit folosind bucle de reglare.
Instruciunile PID controleaz n mod normal o bucl nchis folosind intrrile de la un modul
analogic i furniznd nite ieiri pentru un modul analogic de ieire.
Aceste instruciuni pot opera n modul eantionat sau n modul STI (Selectable Timed
Intettupts - ntreruperi de Timp Reglabile). n modul eantionat, instruciunile actualizeaz
periodic ieirile la o rat ce poate fi aleas. n modul ST, instruciunilie trebuie s fie plasate n
subrutine de ntrerupere STI; ieirile vor fi actualizate n momentele de scanare ale STI.
Intervalui STI i rata de actualizare a buclei trebuie s fie la fel pentru a executa corect
ecuaia. Blocu funcional PID (flg. 3. 5) folosete urmtoarea formul:
Ieire = K [( E ) + T ( E )dt + TD ( PV )/ dt ] + deviatie
1/
C

Instruciunile PID se pun pe o ramur fr conditionari logice. Dac ramura nu este


parcurs ieirile rmn la valorile anterioare, iar termenul integral este resetat. n timpul
programrii se introduc adresele Blocului de Control, a Variabilelor de Proces, a Variabilelor de
Control dup ce instruciunile PID au fost puse pe ramur:
Blocul de Control este un fiier, care memoreaz datele necesare instruciunior pentru
operare. Mrimea fiierului este fixata la 23 de cuvinte i poate fi introdusa ca o adres
de fiier pentru ntregi. De exemplu: N10:0 va aloca elementele de la N10:0 pn ia N
10:20.
- 23 -

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

* PID Sub Error Code


(MSbyte)
* Setpoint SP

* Gain Kc

* Reset Ti

* Rate Td

* Feed Torward Bias

* Setpoint Max (Smax)

* Setpoint Hin (Smin)

* Deadband

INTERNAL USE DO
NOT CHAMGE
* Output Max

10

* Output Min -

12

* Loop Update

13

*Scaled Process Variable

14

11

*Scaled Error SE
15
16

*Output CVS (0-100)


*LSH Integral Sum
*MSW Integral Sum

5/03 MSW Integral


Sum
5/03 LSW Integral
Sum

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 -

In partea stng sunt parametri instruciunii PID care trebuie introdui:

[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);

n coloana din dreapta sunt indicatorii (flags) asociai instruciunii PID:


Time Moile Bit TM (word 0, bit 0) specific modul PID; este setat de ctre modul
TIMED i este resetat de ctre modul STI; poate fi setat/resetat prin instruciuni n
programele ladder;
Auto / Manual Bit AM (word 0, bit 01) arat c operaiile sunt automate cnd este
resetat i manuale cnd este setat;poate fi setat/resetat prin instructiuni n programele
ladder;
Control Mode Bit CM (word 0, bit 02) este resetat dac controlul este E=PV-SP;
poate fi setat/resetat prin instruciuni n programele ladder;
Output Limiting Enabled Bit OL (word 0, bit 03) este setat cnd a fost selectat o
limit pentru CV prin [F4]; poate fi setat/resetat prin instruciuni n programele ladder;
Reset aud Gain Range Enhancement Bit RG (word 0, bit 04) dac este setat face ca
valoarea Reset Minute/Repeat i factorul de amplificare s fie multiplicat de 10 ori;
Scale Setpoint Flag SC (word 0, bit 05) este resetat cnd se specifica o scal pentru
setpoint;
Loop Update Time Too Fast TF (word 0 bit 06) este setat de ctre algoritmul PID
dac timpul de actualizare al buclei, care a fost dat, nu poate fi atins de ctre program
(din cauza limitrilor temporale de scanare). Dac acest bit este setat se poate ncerca
corectarea problemei prin actualizarea buclei la o rat mai mic sau mutarea
instruciunii ntr-o subrutin STI;
Derivitive (Rate) Action Bit DA (word 0, bit 07) dac este setat face ca Derivitive
Rate s fie evaluat dup eroare n loc de PV; dac este resetat, Derivitive Rate
funcioneaz ca procesorul 5/02;
DB, Set When Error is n DB (word 0, bit 08) este setat cnd PV este n DB n 0;
Output Alarm, Upper Limft UL (word 0, bit 09) este setat cnd ieirea CV
depete limita superioar;
Output Alarm, Lower Urnit LL (word 0, bit 10) este setat cnd ieirea CV depete
limita inferioara;
Setpoin Out of Range SP (word 0, bit 11) este setat cnd setpoint nu se ncadreaz n
scala dat;
Process Var Out of Range PV (word 0, bit 12) este setat cnd PV nu se ncadreaz n
intervalul 0-16383;
PID Donie DN (word 0, bit 13) este setat cnd algoritmul PID a terminat calculele;
PID Enable EN (word 0, bit 15) este setat cnd ramura instruciunii PID este
adevrata;
3.5 Dezvoltarea unei diagrame Ladder pornind de la o diagram Grafcet
Pentru ca un program de control conceput sub forma unei diagrame Ladder s
funcioneze corect i s fie dezvoltat uor, o soluie foarte eficien este ridicarea iniial a unei
diagrame de tip Grafcet pornind de la specificaiile procesului.
Elementele principale ale unei diagrame Grafcet sunt etapele, tranziiile, aciunile
asociate etapelor, divergene, paralelisem etc, i au fost descrise n capitolul 2. Etapele de
creare ale unei diagrame Ladder pentru un automat Allen Bradley SLC 500 sunt urmtoarele:
- 26 -

Se construiete diagrama Grafcet de control logic al procesului


Se identific intrrile, ieirile necesare automatului, precum i numrul de temporizri,
contorizri necesare.
Se asociaz intrrile i ieirile cu bii din fiierele de imagine a intrrilor i ieirilor.
Se asociaz fiecare etap a diagramei Grafcet cu cte un bit dintr-un fiier de tip BIT
al automatului Allen Bradly ( spre exemplu din fiierul B3).
Se aloc pentru fiecare temporizare sau contorizare cte un element dintr-un fiier de
tip Timer sau Counter.
Pentru fiecare etap se scriu, n principiu dou ramuri de tipul:
1. Dac (etapa e activ).........................................atunci (aciuni asociate etapei)
2. Dac (etapa e activ) i (condiia de tranziie) atunci (dezactivare etap curent)
(oprire aciuni asociate etapei)
(activare etape urmtoare)
Etapele initiale simt activate cu ajutorul instruciunii OSR (vezi problemele rezolvate). Mici
modificri apar atunci cnd n diagrama Grafcet exist divergene i paralelisme (vezi probleme
rezolvate).
n cazul n care dintr-o etap se poate tranzita n diferite alte etape din cauza existenei mai
multor condiii de tranziie, trebuie editat cte o ramur de tip 2) pentru fiecare condiie de
tranziie. Starea de activare a unei etape se testeaz cu instructiunea XIC aplicat bitului asociat
etapei.
Dac ulterior activrii unei tranziii urmeaz un paralelism n care mai multe secvene vor
rula simultan, o dat cu dezactivarea etapei curente vor fi activate toate etapele iniiale ale tuturor
secvenelor paralele.
Ieirile digitale pot fi activate i dezactivate att cu instruciunea OTE ct i cu
instruciunile pereche OTL i OTU. Instruciunea OTE se folosete atunci cnd o aciune este
activ numai n etapa curent i va trebui dezactivat o dat cu dezactivarea etapei. Dac o ieire
trebuie s i menin valoarea i in etapele urmtoare, ea trebuie activat obligatoriu cu
instruciunea OTL.
Exemplu: S considerm c avem de controlat un proces a crui diagram Grafcet este
reprezenat n figura 3. 7:

- 27 -

Pentru a construi diagram Ladder pornind de la diagrama Grafcet. n primul rnd


trebuiesc stabilite poziiile intrrilor i ieirilor, precum i asocierea etapelor din diagrama
Grafcet cu bii din fiierul de bit B3.
Presupunnd c pe slotul 1 al automatului se gsete un modul de intrri digitale cu 16
intrri iar pe slotul 3 un modul de ieiri digitale cu 24 ieiri, putem conecta intrrile din proces i
ieirile ctre proces conform tabelului 3. 9:
Tabel 3. 9 Adresele intrrilor i ieirilor
Intrare
Adres intrare
i1
1:1/1
i2
1:1/2
i3
1:1/3

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:

Pentru tranziia cu condiia i2:

- 28 -

Pentru etapa 2 trebuiesc scrise cele 2 ramuri tipice:

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:

Analog pentru etapa 102:

Programe mai complexe sunt prezentate n cadrul capitolului de probleme rezolvate.


- 29 -

CAP 4. MEDIUL DE PROGRAMARE LOGICA ISAGRAF


ISAGRAF este un mediu de programare dezvoltat de CJ Intenationai destinat
aplicaiilor pentru automate programabile. Acest mediu permite programarea, simularea,
testarea aplicaiilor folosind limbajele standardului IEC 1131-3 [CJ International, 1998].
Caracteristici:
Mediu de dezvoltare complet
Independen fat de configuraia hardware a unui AP
Limbaje de programare specificate n standardul JEC 1131-3
Faciliti de simulare
ON si OFF line debugger
Dezvoltarea de biblioteci software
4.1 Structura unei proiect Isagraf
O aplicaie (proiect) ISAGRAF este compus din mai multe uniti numite programe. Un
program este considerat a fi o unitate logica de programare, care descrie operaiile dintre
variabilele procesului. Programele aplicaiei sunt conectate ntr-o structur arborescent i pot fi
implementate folosind limbaje grafice sau literale, programatorul avnd la dispoziie
urmtoarele opiuni:
Sequnntial Function Chart (SFC) pentru programare la nivel nalt
Flow Chart (FC) pentru programare la nivel nalt
Function Block Diagram (FBD) pentru operaii ciclice complexe
Structured Text (ST) pentru operaii booleene
Instruction List (IL) pentru operaii la nivel jos
Limbajul utilizat pentru scrierea unui program se alege la crearea acestuia i nu poate fi
schimbat mai trziu. Exceptie se poate face n cazul n care se combin FBD i LD.
o Operaiuni ciclice i secveniale
Programele descriu operaii ciclice sau secveniale. Programele ciclice sunt executate la
fiecare ciclu al sistemului int. Execuia programelor secveniale urmeaz regulile
dinamice ale limbajului SFC, fie ale limbajului FC.
Programele sunt legate ntre ele ntr-o structur arborescent. Programele aflate n
vrful ierarhiei sunt activate de ctre sistem. Subprogramele (nivele mai jos n ierarhie) sunt
activate de ctre programul printe.
Structura ierarhic a unui program se descompune n patru seciuni sau grupuri:
Begin
programe executate la inceputul fiecrui ciclu al sistemului int
Sequential programe ce urmeaz regulile SFC sau FC
End
programe executate la sfritul fiecrui ciclu al sistemului inta
Functions
set de subprograme nededicate
Programele din seciunile Begin i End descriu operaii ciclice i nu sunt dependente de
timp. Programele principale sunt executate la nceputul, respectiv sfritul, fiecrui ciclu de
execuie.
Programele seciunii Sequential descriu operaii secveniale, unde variabila timp
sincronizeaz operaiunile primare. Execuia programelor principale ale acestei seciuni se face
conform regulilor SFC sau FC.

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

Operaiile de baz ce se execut pe durata unui ciclu sunt:


citirea variabilelor de intrare;
tratarea programelor seciunii Begin;
tratarea programelor seciunii Sequential n conformitate cu regulile dinamicii
SFC/FC;
tratarea programelor seciunii End;
actualizarea variabilelor de ieire;
Acest sistem face posibile:
garantarea unor valori constante pe durata unui ciclu pentru variabile;
stabilitatea ieirilor, acestea nefiind modificate dect o singur dat ntr-un ciclu de
execuie;
accesul sigur la aceleai variabile globale al mai multor programe;
estimarea i controlul timpului de rspuns al ntregii aplicaii;

4.2 Descrierea limbajul SFC (Sequential Function Chart)


Sequentia Function Chart (SFC) este un limbaj grafic utilizat pentru a descrie operaii
secveniale. Procesul este reprezentat de o succesiune de pai de finii explicii, legai prin
tranziii. Fiecrei tranziii i este ataat o condiie de tip boolean. Aciunile ce au loc la
fiecare pas sunt descrise folosind celelalte limbaje (ST, IL, LD sau FDB).
Un program SFC se reprezint ca un graf orientat cu noduri de tip etape (steps) i
tranziii (transitions). Legturile multiple sunt utilizate pentru a reprezenta convergene i
divergene. Unele pri ale programului pot fi descrise separat i reprezentate n program
printr-un simbol. Aceste pri sunt cunoscute sub denumirea de macro steps (eng).
Regulile de baz ale SFC:
Un nod de tip etap nu poate fi urmat de un nod de acelai tip.
Un nod de tip tranziie nu poate fi urmat de un nod de acelai tip.
Componentele de baza (simbolurile grafice) ale limbajului SFC sunt: o
Etapele i etapele iniiale (steps and initial steps) :
O etap este reprezentat printr-un ptrat. Fiecare etap este referit de un numr
nscris n interiorul ptratului. Descrierea etapei se face n interiorul dreptunghiului legat de
ptrat. Aceasta este cunoscuta ca nivelul I al etapei (level 1 of the step).
- 32 -

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:

o Legturi orientate (Oriented links):


Liniile simple sunt utilizate pentru legturile dintre pai i tranziii. Atunci cnd nu este
specificata explicit orientarea se consider a fi de sus n jos:

- 33 -

o Salt ctre un pas (Jump to a step):


Simbolul de salt poate fi utilizat pentru a indica o legtura dintre o tranziie i un pas, fr
a fi nevoie s se deseneze linia de conexiune. Saltul trebuie referit cu numrul pasului destinaie.
Saltul nu poate ft utilizat pentru a lega un pas i o tranziie.

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.

Divergene duble: Legturi multiple de la o tranziie ctre mai muli pai. Au


corespondene n execuia n paralel a operaiunilor ntr-un proces.
Convergene duble: Legturi multiple de la mai muli pai ctre aceeai tranziie.
Folosite in general pentru a grupa ramuri ce s-au desprit prin aceeai dubl
divergen.

- 34 -

o Pai Macro (Macro steps)


Macro-urile sunt un mod de reprezentare a unei succesiuni de pai i tranziii. Corpul
unui macro este descris separat n programul SFC, el aprnd ca un singur simbol n
reprezentarea SFC principal. Numrul de referin ce apare n simbolul macro-ului este
referina pentru primul pas din corpul unui macro. Acest prim pas trebuie s fie de tipul pas de
nceput (beginning step). Corespondentul su la terminarea reprezentrii este pasul de sfrit
(ending step).
Reprezentarea unui macro trebuie s fie independent, neexistnd legturi n nici o
direcie, Simbolul unui macro poate f indus n reprezentarea altui macro. Deoarece un macro este
reprezentat printr-un set unic de pai i tranziii, nu poate fi folosit mai mult dect o dat n
programul SFC.
o Operaii n cadrul etapelor
Nivelul 2 al unei etape SFC conine descrierea detaliat a operaiilor ce se execut n
timpul activrii. Aceasta se face utiliznd facilitile literale ale SFC i celelalte limbaje cum ar fi
Structured Text (ST). Tipurile de operaii ce sunt accesibile la acest nivel sunt:
Operaii asupra variabilelor booleene:
Atribuirea de valori unor Variabile booleene n timpul activrii unui pas. Aceste
variabile pot fi de ieire sau interne. Valorile se stabilesc la activarea sau dezactivarea
pasului:
<var_bool>(s);

variabila primete valoarea TRUE cnd pasul devine activ.

Sintaxa acestor operaii:


<var_bool>(N);
asociaz starea pasului activ/inactiv cu TRUE/FALSE
logice) valoarea variabilei
<var_bool>;
acelai efect atributul a fiind opional
/<var_bool>;
asociaz negatul strii pasului cu valoarea variabilei
<var_bool>(s);
variabila primete valoarea TRUE cnd pasul devine activ
<var_bool>(r);
variabila primete valoarea FALSE cnd pasul devine activ

(1/0

o Operaii de tipul pulse actions:


Succesiunea de instruciuni ST sau IL se execut numai o singur dat la activarea
pasului indiferent de numrul de cicluri de execuie ce se efectueaz pn la dezactivarea
pasului.
Sintaxa operaiilor:
ACTION(P):
(*instruciuni ST*)
END_ACTION;
- 35 -

o Operaii de tipul non-stored actions:


Succesiunea de instruciuni ST sau IL se execut la fiecare ciclu de execuie pe toat
perioada n care pasul este activ.
Sintaxa operaiilor:
ACTION(N):
(*instruciuni ST*)
END_ACTON;

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 -

Pentru funcii bloc C, ST, IL, LD, FDB:


ACTION(P):
Fb(inl, in2);
result1:=Fb.out1;
result2:=Fb. out2;
END_ACTION;
sau
ACTION(N):
Fb(inl, in2);
resut1:=Fb.outl;
result2:=Fb.out2;
END_ACTON;
o Convenia IL:
Codul IL poale fi introdus dup cum urmeaz:
ACTION(P):
(*sau N*)
#info=lL
<instruciune>
<instruciune>
END_ACTION;
o Condiii ataate tranziiilor
Fiecrei tranziii i este ataat o expresie booleana ce condiionez trecerea la pasul
urmtor. Aceasta condiie este de obicei implementat n limbajele ST sau LD la nivelul 2 al
tranziiei. Pot fi utilizate i alte modaliti de implementare:
o Convenia ST:
Limbajul ST poate descrie condiia ataat tranziiei. Expresia final a acesteia trebuie s fie
de tip boolean i s se termine cu punct i virgul. Expresia poate conine constante TRUE
sau FALSE, o singur variabil de intrare sau o variabil intern booleana, sau o combinaie
de variabile ce conduce la o valoare boolean.
o Conventia IL:
Condiia este descris conform urmtoarei sintaxe:
#info=IL
<iustructiune>
<instructiune>
#endinfo;
Valoarea coninut n registrul IL (current result) la sfritul secvenei condiionnd tranziia:
current result=0
conditia este FALSE
current result=0
condiia este TRUE
o Apelul unei funcii
Orice subprogram sau funcie (scris n FBD, LD, ST sau IL), sau funcie C poate fi
apelat pentru a evalua condiia ataata tranziiei conform sintaxei: <subprogram>();
- 37 -

Valoarea returnat trebuie s fie de tip boolean i s returneze un rezultat ce va fi evaluat


astfel:
val_ret=0 condiia este FALSE
val_ret<>0 condiia este TRUE
Dac nu este ataat nici o expresie tranziiei, se consider implicit valoarea TRUE
SFC - Regulile dinamicii limbajului
Cele cinci reguli ale dinamicii limbajului SFC sunt:
Starea iniial: Caracterizat prin pai iniiali (initial steps) care prin definiie, sunt n
stare activ la nceputul operaiilor. Fiecare program SFC trebuie s conin ce puin un
pas iniial.
Depirea unei tranziii: tranziia poate fi validat cnd toi paii care o preced direct sunt
activi, n caz contrar fiind invalidat. Tranziia nu poate fi depit dect dac:
- este validat i
- condiia asociat este TRUE
Schimbarea strii pailor: depirea unei tranziii conduce simultan la activarea pailor
care o succed i la dezactivarea imediat a pailor precedeni
Depirea simultan a tranziiilor: Tranziiile care trebuiesc depite simultan pot fi
indicate prin dou linii. Dac aceste tranziii sunt descrise separat, indicatorul de stare al
pailor precedeni (GSnnn.x) poate fi utilizat pentru descrierea condiiilor de trecere.
Activarea i dezactivarea simultana a unui pas: Dac n timpul operaiilor, un pas este
simultan activat i dezactivat, se d prioritate activrii.
o SFC-Ierarhizarea programelor
Sistemul ISAGRAF permite descrierea pe vertical a structurii programelor SFC. Acestea sunt
organizate ntr-o ierarhie arborescent. Fiecare program SFC poate controla (porni, opri) alte
programe SFC. Acestea din urm se numesc fii ai programului care le controleaz.
Regulile pe care le implic structura ierarhizat:
Programele SFC care nu au un ptinte se numesc programe SFC principale.
Programele SFC principale sunt activate de sistem la nceputul aplicaiei.
Un program poale avea mai multe programe fiu.
Un program fiu nu poate avea mai mult dect un printe.
Un program fiu nu poate fi controlat dctt de printele su.
Un program nu poate controla fiii unui program fiu al su.
Operaiile pe care le poate efectua un printe pentru controlul fiilor si sunt:
Start (GSTART) Pornete programul fiu: activeaz fiecare pas iniial al su. Fii
progamului fiu nu sunt pornii automat.
Kill (GKILL) Oprete programul fiu, dezactivnd fiecare pas activ. Toi fiii
programului fiu sunt de asemenea oprii.
Freeze (GFREEZE) Suspend execuia programului (dezactivnd fiecare pas activ i
suspendnd verificarea condiitor de depire a tranziiilor), i salveaz starea pailor
programului astfel nct programul s poal fi repornit. Toi fii programului fiu sunt
suspendai din execuie.
Restart (GRST) Repornete un progam SFC suspendat reactivndu-i toi paii
dezactivai la suspendarea din execuie. Programele fiu nu sunt automat repornite.
Get status (GSATUS) Obine starea curenta (activ, inacliv, suspendat) a unui program
fiu.
- 38 -

4.3 Descreierca limbajului ST (Structured Text)


ST (Struciured text) este un limbaj structurat de nivel nalt proiectat pentru procesele de
automatizare. Acest limbaj este utilizat in special pentru a implementa proceduri complexe ce nu
pot fi uor exprimate ntr-un limbaj grafic, ST este limbajul implicit pentru descrierea operaiilor
din interiorul pailor i a condiiilor ataate tranziiilor din limbajul SFC.
o ST-Elemcnte de sintax
Un program ST este o list de declaraii ST. Fiecare declaraie se termin cu
separatorul punct i virgula (;). Cuvintele utilizate n codul surs (identificatori de variabile,
constante, cuvinte cheie) sunt desprite de separatori, inactivi (space, eol, tab) sau de
separatori activi ce au o semnificaie bine definit
(> scmmfic mai mare, operatie de
comparaie). Comentariile pot fi incluse oriunde n text dar trebuiesc ncadrate ntre
(*i*). Pentru o mai bun lizibilitate a codului se recomand cteva reguli: s nu se scrie mai
mult de o declaraie pe un rnd, s se foloseasc indentarea declaraiilor complexe, inserarea
de comentarii.
Tipurile de baza ale declaraiilor ST:
Atribuire de valori (variabila:=expresie)
Apelare de subprograme i fimcii
Apelare de funcii bloc
Instruciuni de selecie(IF, THEN, ELSE, CASE...)
Instruciuni de iteraie (FOR, WHILE, REPEAT...)
Instruciuni de control (RETURN, EXIT...)
Instruciuni dedicate legturilor cu alte limbaje, cum ar fi SFC
o Expresii i paranteze
Expresiile ST combin operatori ST cu operanzi variabile sau constante. Pentru fiecare
expresie tipul operanzilor trebuie s fie acelai. Parantezele sunt folosite pentru a separa pri ale
expresiei i pentru a stabili explicit prioritile operaiilor. Cnd o expresie complex nu are
paranteze, succesiunea operaiilor este dat de prioritile implicite ntre operatorii ST. O expresie
poate conine maxim opt nivele de paranteze.
o ST-operatori standard, funcii, proceduri
Operatori standard:
Transferul datelor:
-atribuirea
-negaia analogic

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

Proceduri pentru generare de semnale:


-BLINK
genereaz un semnal boolean n pulsuri
-SIG_GEN genereaz o varietate de semnale (boolean, pulsatoriu, incremental,
sinusoidal)
Funcii standard suportate de sistemul ISAGRAF. Aceste funcii sunt predefinite i nu
trebuiesc declarate ntre librrie.

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

Funcii de control a irurilor de bii:


-ROL rotire la stnga
-ROR rotire la dreapta
-SHL deplasare la stnga
-SHR deplasare la dreapta

Funcii de control a datelor:


-MIN
minimul a dou valori ntregi
-MAX
maximul a dou valori ntregi
-LIMIT
limiteaz valoarea unei variabile ntr-un interval precizat
-MOD
modulul unei valori ntregi
-MUX4
multiplexeaz 4 ntregi
-MUX8
multiplcxeaz 8 ntregi
-ODD
testeaz paritatea unui ntreg
-RAND
genereaz o valoare aleatoare ntr-un interval determinat
-SEL
selector binar: selecteaz o valoare dintre 2 valori ntregi

Funcii de conversie a datelor:


-ASCII
returneaz codul ASCII al unui caracter
-CHAR
nscrie ntr-jug sring caracterul cu codul ASCII dat ca parametru
funciei

Funcii pentru iruri de caractere:


-DELETE ergere subir de caractere
-INSERT
inserare ir de caractere
-FIND
gsire subir de caractere
-MLEN
obinere lungime ir de caractere
-LEFT
extrage un numr specificat de caractere din partea stng a unui ir de
- 41 -

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

Constantele analogice reale pot fi scrise att n reprezentare zecimal ct i n reprezentare


tiinific. Punctul zecimal este folosit pentru a diferenia o constant real de una de tip
Integer. Reprezentarea tiinific folosete E sau F pentru a separa mantisa de exponent.
Dedesubt sunt prezentate cteva exemple de constante reale :
3. 14159
1. 0F-15
-789. 56
Numrul 123 nu reprezint o constant real, reprezentarea ei corect este 123, 0.
Constantele de tip Timer sunt vaiori cuprinse ntre 0 i 23h59m59s999ms. Cea mai mic
unitate permis este milisecunda. Unitile de timp standard folosite n expresii de tip Timer
sunt:

Hour
Minute
Second
Milliseconds

- litera h trebuie s fie urmat de or


- litera m trebuie s fie urmat de numrul de minute
- litera s trebuie s fie urnat de numrul de secunde
- literele ms trebuie s fie urmate de numrul de milisecunde

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 -

port pentru comunicaii RS232 pentru terminal OS9 i ISAGRAF Debugger


intrri analogice
intrri digitale
ieiri analogice
ieiri digitale

De asemenea dispune de module software rezidente n memoria nevolatil :


Sistem de operare OS-9: este un sistem de operare performant, independent de
hardware, multitasking, multiuser, cu funcionare n ntreruperi, planificare taskuri,
control I/O n timp real etc
Sistem integrat de interpretare i execuie local a programelor generate prin
intermediul pachetului software de inginerie asistat ISAGRAF, precum i de
comunicaie cu acesta
Sistem de comunicaii n reele industriale deschise, conform specificaiilor de
standard PROFIBUS
Profibus Layer_2 i Layer_7 client i server ;
Pachet PROFIBUS pentru administrare si monitorizare
Sistem de comunicaii seriale n standard RS232
Manager de comunicaii seriale
Driver de comunicaii seriale pentru consola OS9 i ISaGRAF Debugger
Driver de comunicaii seriale pentru consola operator local
Sistem de drivere pentru modulele de I/O
Un program Isagraf este numai unul din taskurile care ruleaz la un moment dat pe
automatul Smart PLC. Alte cteva task-uri sunt ncrcate la punerea sub alimentare a
aparatului. Unul dintre task-uri permite o comunicaie permanent ntre programul Isagraf ce
ruleaz pe automat i mediul de dezvoltare, Isagraf Workbench, de pe calculatorul personal.
Astfel pot fi urmrite on-line, pe ecranul computerului, dinamica diagramelor SFC i valorile
tuturor variabilelor declarate.
Dac se dorete crearea unui program Isagraf care s comunice anumite date pe portul
serial ctre o alt aplicaie din computerul personal (nu Isagraf Workbench) acest task de
debug trebuie oprit prin comenzi specifice sistemului de operare OS9 al automatului Smart PLC
[Ivanescu, 1999].
Acest tip de automat programabil a fost ales n exemplele din capitolul 2.

- 44 -

CAP 5. PROBLEME REZOLVATE


Problema 1: Controlul unei macarale
1. Descrierea procesului:
Aplicaia const n controlul unei macarale care trebuie s realizeze cele 2 cicluri de
micare reprezentate n figura 5.1. Iniial macaraua se gsete n poziia de repaus 1. La
apsarea butonului de pornire, macaraua pornete i se realizeaz ciclul 1, pn se ajunge n
poziia de repaus 2, unde rmne pentru un anumit timp cunoscut (3 s), nainte de a porni
ciclul 2; cnd ajunge n poziia de repaus 1, macaraua se va opri. Un nou ciclu va pomi dup
reapsarea butonului de pornire.

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

Variabile de ieire booleene:


M1S: acionare motor 1 stnga
M1D: acionare motor 1 dreapta
M2S: acionare motor 2 sus
M2J: acionare motor 2 jos
- 45 -

Programul principal este prezentat n figura 5.2

o Varianta 2: implementarea n limbajul Ladder Diagram


Pentru controlul acestei aplicaii s-a ales un automat programabil de tip Allen Bradley pentru
care s-a dezvoltat o diagram Grafcet (fig 5.3) i un program de tip Ladder Diagram (fig. 5.4)

- 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

Diagrama Ladder este prezentat n continuare:

- 48 -

- 49 -

Problema 2: Comanda micrii oscilatorie a unui mobil


1. Descrierea procesului:
Un mobil alunec pe un urub micat de un motor acionat de 2 contactoare ( Cd dreapta i Cs -stnga). Mobilul trebuie s realizeze o micare oscilatorie continu din
momentul n care se primete comanda (impuls) de la butonul M. Un impuls de la butonul P
trebuie s opreasc motorul, dar nu imediat, ci la finalul micrii ncepute. Un impuls de la
butonul E produce o retragere imediat a mobilului n poziia de origine, iar sistemul se mai
poate pune n micare doar apsnd butonul R.

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.

Dicionarul de variabile globale:


Variabile de intrare digitale:
M : buton de pornire micare oscilatorie
P : buton de oprire motor
E : buton de retragere n poziia de origine
RST : buton de repornire
L0 : limitator stnga
L1 : limitator dreapta
- 50 -

Variabile de ieire digitale:


MS : comand motor stnga
MD : comand motor dreapta
Variabile interne de tip Boolean:
oprit : are valoarea TRUE cnd mcarea oscilatorie este oprit
v_redge : necesar funciei REDGE
Programul Main este prezentat n figura 5.6.

- 51 -

Programul fiu Osc este prezentat n figura 5.7.

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

Problema 3: Detecia i expulzarea automat a sticlelor fr dop


3. Descrierea procesului:
Una din fazele de producie ntr-o linie de mbuteliere const n aezarea unui dop, ca
urmare a ncheierii secvenei de umplere. Sticlele se deplaseaz pe banda 1, separate de
aceeai distan i cu vitez constant. Scopul aplicaiei este detectarea i extragerea sticlelor
care ies din faza de nchidere fr dopul corespunztor; pe lng aceasta, dac ntr-o perioad
determinat de timp (n acest caz 7 sticle), sunt rejectate mai mult de 3 sticle consecutive,
trebuie activat o alarm. Repornirea ciclului se face prin apsarea butonului Pc. Pentru
detecia sticlei defecte se conjug aciunile unui senzor inductiv, care detecteaz prezena
dopului i un echipament foto electric care semnaleaz prezena unei sticle.

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.

Dicionarul de variabile globale:


o Variabile de intrare booleene:
M : buton de pornire
R : buton de rearmare
I : detector inductiv
F : detector fotoelectric
Pc : buton de punere la zero i oprire alarm
o Variabile de ieire booleene:
Banda_1 : comand pornire/oprire band
Banda_2 : comand pornire/oprire band 2
Alarm : comand alarm
Expulzare : comand dispozitiv de evacuare a sticlelor fr dop
o Variabile interne de tip Integer:
Nr_sticle : contorizeaz numrul de sticle fr dop expulzate consecutiv
o Variabile interne de tip timer:
Timer : folosit la contorizarea celor 5 secunde de activare a conveiorului 2
Programul timing din seciunea de end este prezentat n figura 5.11

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 -

Programul principal main este prezentat n figura 5.10

- 56 -

Problema 4: Staie automat de splat autovehicule


4. Descrierea procesului:
Scopul proiectrii acestui sistem de control l reprezint automatizarea unei staii de
splat autovehicule. Vehiculele vor trebui s treac succesiv prin 4 posturi de lucru, nmuiere,
splare cu detergent, cltire i uscare. Procesul este iniiat de apsarea unui buton de pornire,
care determin activarea benzii transportoare iar vehiculele vor trece succesiv prin cele 4
posturi. Bariera, n condiii normale, trebuie s stea ridicat i semaforul dezactivat. Cnd n
staie sunt detectate 4 vehicule, cte unul n fiecare post, bariera trebuie cobort i semaforul
activat, indicnd faptul c nu se mai poate trece. Att bariera ct i semaforul rmn n aceast
stare pn cnd cele 4 vehicule au prsit staia, moment n care bariera trebuie ridicat i
semaforul dezactivat.

n momentul n care se activeaz celula fotoelectric 1, se va activa postul 1. Cnd se


activeaz fotocelula 2 iar fotocelula 1 nu mai este activat, se dezactiveaz postul 1. In
momentul activrii fotocelulei 2 se activeaz postul 2. Acesta va fi dezactivat cnd fotocelula 2 nu
este activ dar fotocelula 3 este activ. Analog pentru postul 3. Postul 4 se dezactiveaz cnd
fotocelula 4 se dezactiveaz iar fotocelula 5 se activeaz
Elemente de execuie:
motorul benzii transportoare
motorul barierei cu 2 sensuri de rotaie
1 semafor
4 posturi de lucru
Elemente de msur:
5 celule fotoelectrice
2 limitatoare de curs ale barierei

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

Dicionarul de variabile globale:


o Variabile de intrare booleene:
Start : contact de pornire
Limita_SUS : limitator de curs sus pentru barier
Limita_JOS : limitator de curs jos pentru barier
Foto_l : fotocelula postului 1
Foto_2 : fotocelula postului 2
Foto_3 : fotocelula postului 3
Foto_4 : fotocelula postului 4
Foto_5 : fotocelula postului 5
o Variabile de ieire booleene:
Banda : comand pornire/oprire band
Bariera_sus : comand ridicare barier
Bariera_jos : comand coborre barier
Semafor : comand activare/dezactivare semafor
nmuiere : comand activare dezactivare post nmuiere
Detergent : comand activare dezactivare post detergent
Cltire : comand activare dezactivare post cltire
Uscare : comand activare dezactivare post uscare
Comentarii:
Toate programele dezvoltate sunt independente i ruleaz n paralel, fapt ce uureaz
foarte mult nelegerea programului
Propunere:
S se modifice programul n cazul n care bariera se va ridica atunci cnd se elibereaz
primul post de lucru.
S se modifice proiectul astfel nct s se dezvolte im singur program care s
automatizeze acest proces
Programul Bariera este prezentat n figura 5.14
Programul Start este prezentat n figura 5.15
Programul Post1 este prezentat n figura 5.16
Programul Post2 este prezentat n figura 5.17
Programul Post3 este prezentat n figura 5.18
Programul Post4 este prezentat n figura 5.19
- 58 -

- 59 -

- 60 -

Problema 5: Elevator clasificator de pachete


1. Descrierea procesului
Pe o band transportoare vin 2 tipuri de pachete (mic i mare). Tipul pachetului este
determinat de un cntar, ulterior pachetele fiind transportate n direcii diferite n funcie de tipul
pachetului. Procesul pornete cu transportul unui pachet ctre cntar; aici pachetul este cntrit
fiind astfel identificat n funcie de greutatea citit. n continuare pachetul este transportat
pe banda 1 pn la planul elevator. Cilindrul C ridic pachetele. Apoi pachetele sunt transportate
diferit; pachetele mici sunt plasate pe banda 2 de cilindrul A, iar pachetele mari sunt aezate pe
banda 3 de cilindrul B. Cilindrul elevator C se retrage doar cnd cilindrii A i B au atins poziia
final.

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 -

Dicionarul de variabile globale:


o Variabile de intrare booleene:
Foto_0 : fotocelula 0
Foto_1 : fotocelula 1
A0 : Limit retragere cilindru A
Al : Limit avans cilindru A
B0 : Limita retragere cilindru B
Bl : Limit avans cilindru B
C0 : Limita coborre cilindru C
C1 : Limit ridicare cilindru C
o Variabile de ieire booleene:
Banda_0 : activare / dezactivare banda 0
Banda_1 : activare / dezactivare banda 1
Banda_2 : activare /dezactivare banda2
Banda_3 : activare / dezactivare banda 3
A_avansat : avans cilindru A
A_retras : retragere cilindru A
B_avansat : avans cilindru B
B_retras : retragere cilindru B
C_ridicare : ridicare cilindru C
C_coborre : coborre cilindru C
o Variabile interne booleene:
eroare : cod de eroare la cntrirea pachetelor
o Variabile globale analogice
Cntar : variabil intern, reprezint valoarea real a greutii de pe cntar (integer)
traductor_cantar : variabli de intrare, valoarea primit de la traductorul cntarului
(integer, ntre 0-4096)
pachet_actual : variabil intern, n care se memoreaz tipul pachetului actual ce
urmeaz a fi transportat
pachet_viitor : variabil intern, n care se memoreaz tipul pachetului de pe cntar
(urmtorul ce va fi transportat)
lim_inf : constant, greutatea minim a pachetului mic
lim_sup_mic : greutatea maxim a pachetului mic
mic : constant cu valoarea 1
mare : constant cu valoarea 2
Programul Banda_0 este prezentat n figura 5.22
Programul Banda_1 este prezentat n figura 5.23
Programul Cilin_A este prezentat n figura 5.24
Programul Cilin_B este prezentat n figura 5.25
Programul Cilin_C este prezentat n figura 5.26

- 62 -

- 63 -

Programul convers din seciunea Begin


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 - 20mA. n aceast situaie trebuie fcut o translaie de scal. Se
observ c la valoarea minim a domeniului de msur traductorul genereaz 4 mA,
corespunztoare valorii 819 citit de automat, valoare pentru care automatul trebuie s indice
vloarea minim a mrimii msurate. Astfel formula de conversie este:
Val _ing = (Val_cit-819)*(Ds-Di)/(4095-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=l00, Di=0, astfel nct instruciunea executat n programul convers este
cntar := INT(((REAL(traductor_cantar) - 819)*100.0) / (3276);
Propunere:
S se modifice programul de conversie n cazul n care traductorul de temperatur are
ca domeniu -15 +150 grade i genereaz un curent n gama 2-10 mA
- 64 -

Problema 6: Controlul temperaturii unui lichid


1. Descrierea procesului:
Problema const n meninerea temperaturii unui lichid ntre 2 valori determinate (60
i 65 grade), n timp ce nivelul n cele 2 rezervoare pstreaz o capacitate determinat. Dac
temperatura se gsete ntre limitele fixate, valva 1 se va deschide iar valva 2 se va deschide
pn cnd rezervorul 2 ajunge la capacitatea fixat; n acel moment, valva 2 se va nchide i
va rmne aa pn cnd lichidul din rezervorul 2 se va gsi sub limita fixat. Cnd
temperatura atinge marginile de temperatur fixat, valvele de intrare i de ieire se vor
nchide (indiferent dac rezervorul 2 i-a recuperat nivelul) i vor rmne nchise pn cnd
temperatura va fi reglat. Totdeauna va fi prioritar variaia temperaturii fa de variaia
nivelului de lichid.

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 -

o Variabile de ieire booleene:


valva_l : comanda electrovalvei 1, atunci cnd are valoarea TRUE electrovalva 1 se
nchide
valva_2 : comanda electrovalvei 2, atunci cnd are valoarea TRUE electrovalva 2 se
nchide
rezistenta : comand cuplarea / decuplarea rezistenei
rcire : comand dispozitivul de pompat aer
pompa : comand motorul pompei
o Variabile analogice:
temp : variabil intern de tip Real, reprezint temperatura apei n grade Celsius
temp_citita : variabil de intrare de tip Real ce reprezint valoarea analogic (ntre 0 i
4095) primit de la traductorul de temperatur
Programul Convers al seciunii de Begin
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 4 mA,
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) / (4095-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 executat n programul convers este
temp := INT(((REAL(temp_citita)-819)*100.0) / (3276);
Comentarii:
Programul folosete variabile analogice deoarece evenimentele ce produc modifcri n
sistem depind de o mrime cu variaie continu (temperatura)
Programul Main este prezentat n figura 5.28

- 66 -

- 67 -

Problema 7: Dozare i malaxare automat


1. Descrierea procesului:
Un malaxor pivotant primete produsele A i B cntrite de bascula C i brichete
solubile aduse una cte una pe band transportoare. Automatizarea permite realizarea unei
amestecri a celor 3 produse. Ciclul de realizat este urmtorul: la acionarea butonului de
alimentare se pornete cntrirea i alimentarea produselor n urmtorul mod:
cntrirea produsului A prin deschiderea valvei Va, pn la referina A
cntrirea produsului B prin deschiderea valvei Vb, pn la referina B
apoi, golirea basculei n malaxor prin deschiderea valvei Vc pn la referina zero
simultan cu precedentele operaii are loc alimentarea malaxorului cu
2 brichete
solubile
Ciclul se termin cu rotaia malaxorului un anumit timp t i apoi pivotarea lui,
meninndu-se rotaia n timpul golirii

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 -

Programul principal Main este prezentat n figura 5.30

- 70 -

- 71 -

2.2 Varianta 2 : implementarea n limbajul Ladder Diagram


Aceast variant presupune folosirea unui automat programabil Allen Bradley, tip
SLC500, pentru care se dezvolt o diagram de tip Grafcet i o diagram de tip Ladder
Diagrama Grafcet este prezentat in figura 5.31:

- 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

Diagrama Ladder este prezentat n continuare:

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

Problema 8: Umplerea i astuparea automat a sticlelor


1. Descrierea procesului:
Scopul acestei aplicaii l constituie controlul unui sistem de umplere i astupare a unor
sticle. La conectarea sistemului, se pornete motorul benzii transportoare. Acesta se va opri cnd
exist sticle n situaia de a fi umplute i n situaia de a fi astupate. Se cere ca simultan cu
umplerea unei sticle alta deja umplut s fie astupat, aciune posibil datorit configuraiei
sistemului. Cilindrul A este responsabil cu umplerea sticlelor, deplasndu-se ntre limitatoarele
F1 i F2. Cilindrul C aduce dopurile din stiva de dopuri, pentru a fi mpinse de ctre cilindrul B
pentru astuparea unei sticle. Astuparea sticlei se face de ctre un dispozitiv de rotire, a crui
micare este limitat de un limitator. Sticlele de umplut i cele de astupat sunt detectate de cte
dou fotocelule.

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 -

Programul principal este prezentat n figura 5.33

- 79 -

- 80 -

Problema 9: Umplerea automat a unor containere


1. Descrierea procesului:
Aplicaia const n umplerea cu lichid a 3 containere (A, B, C) i evacuarea lor pe o band
transportoare. Umplerea containerelor trebuie fcut n urmtoarea manier:
containerul A : 5 secunde cu lichid de tip A
containerul B : 7 secunde cu lichid de tip A i 7 secunde cu lichid de tip B
containerul C : 3 secunde cu lichid de tip C, 5 secunde cu lichid de tip B i 8 secunde
cu lichid de tip A

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 -

Programul principal este prezentat n figurile urmtoare:

- 83 -

- 84 -

- 85 -

- 86 -

Problema l0: Proiectarea unui regulator PID pentru reglarea unei


temperaturi
1. Descrierea procesului:
Problema const n meninerea unei anumite temperaturi ntr-o instalaie de granulare prin
reglarea debitului de abur, dar, ca orice regulator, se poate acorda pentru o mare varietate de
procese. Regulatorul PID trebuie s funcioneze n dou regimuri de lucru, automat i manual,
cu posibilitatea de a fi conectat n diferite scheme de reglare.
Temperatura este msurat cu un traductor de temperatur avnd semnal de ieire 420mA, msura se filtreaz iar valoarea real se transmite regulatorului n procente. Referina
se citete de la un panou operator care comunic cu automatul prin interfaa serial 232.
Regulatorul face parte dintr-o schem n care se intenioneaz meninerea constant a
temperaturii unui agent termic (n cazul acesta abur de joas presiune 4-6 bar) prin comanda
debitului de intrare al gazului metan.
Bucla de reglare n aceast situaie este compus din:
termocuplu (pentru msurarea temperaturii) care genereaz milivoli dup o curb care
nu este liniar (ca alternativ la aceast soluie se poate utiliza orice alt traductor al
crui semnal este n curent unificat). Soluia cu automate programabile este destul de
flexibil i din faptul c ele au module de intrare pentru toate tipurile de termocuple,
eliminnd astfel din bucl convertorul milivoli - curent unificat, dar alegerea ntre
cele dou metode se face strict economic
convertor 4-20 mA (pentru conversia n miliamperi a semnalului de la termocuplu
(mV) i liniarizarea curbei valorilor)
automat programabil SmartPLC cu module de intrri analogice, respectiv n
termocuple i modul de ieiri analogice care la rndul lor sunt nite convertoare
analog-numerice i invers (pentru realizarea algoritmului de reglare)
electroventil comandat n curent de 420mA, reprezentnd elementul de execuie (se
mai poate folosi i un ventil pneumatic mpreun cu un convertor electropneumatic
dac este necesar)
n fig. 4.12 este prezentat schematic bucla de reglare pentru varianta cu convertor,
cealalt fiind mai simpl (ieirea termocuplului intrnd direct n automat):

- 87 -

Regulatorul se acordeaz prin:


banda de proporionalitate [n procente]
timp de integrare [n secunde]
timp de derivare [n secunde]
Valorile de acordare se citesc i ele de la interfaa operator odat cu referina.
n regim manual regulatorul transmite valoarea absolut a poziiei elementului de
execuie (comanda direct), venit tot de la consola operator, de unde se citete i regimul de
lucru.
Trecerea din regim manual n regim automat i invers trebuie s se fac fr variaii
brute de comand, pentru a se evita intrarea sistemului n regimuri de lucru improprii. La
comutarea regimurilor de lucru, pe ct posibil comanda va trebui s rmn aceeai.
Elementul de execuie primete la intrare valoarea absolut a poziiei. Meninerea
acestei valori este o problem a elementului de execuie. Dac e necesar se poate insera un
regulator de poziie ntre regulatorul de temperatur i elementul de execuie.

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

Exist condiii generate de funcionare pentru regulatorul PID, evaluate n


exterior
OK, adic sunt msuri bune, elementele de execuie funcioneaz,
0
resurse energetice OK, etc
not OK, nu se face reglare cu regulatorul PID
1
Logic Regimul de lucru al reglatorului, evaluat n exterior
regim AUTOMAT (PID)
0
regim MANUAL (comand direct)
1
Timer Timer de ciclu de eantionare
Perioada de eantionare, constant [ms]
Timer Band de proporionalitate, inversul amplificrii, n %
Constant de timp pentru efectul de derivare, valoare de acord
Real Constant de timp pentru efectul de integrare, valoare de acord
Real Amplificarea, valoare calculat, dac banda este valoarea de acord
Real Componenta derivativ, variabil de calcul
Real Calcul parial pentru incrementul de comand, variabil de lucru
Real Valoarea curent a temperaturii reglate, n %
Real Valoarea curent, la pasul anterior, a temperaturii reglate, n %
Real Valoarea curent, la pasul anteanterior, a temperaturii reglate, n %
Real Valoarea impus pentru temperatur, n %
Real Eroarea (t_sp - t_pv) la pasul anterior
Real Comand curent, poziia absolut a elementului de execuie, n %
Real
Real Comand manual, poziia absolut a elementului de execuie, n %
Logic

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 -

Aciunile asociate etapei 2 (Regim automat) sunt descrise n tabelul 5.6:


Tabel 5. 6
iniializeaz ciclul
calcul amplificare
calcul component derivativ
salvare valori pv anterioare
calcul noua comand (pt timpi,
se lucreaz n [ms]=[s]/1000)
limitri la 0% i 100%
salvare eroare
pregtire trecere n regim
manual

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;

n etapa 3 (Regim manual) este iniializat ciclul i pregtete trecerea n regim


automat:
Tranziia 1 (intrare n regulator automat S1S2) are loc dac s-a epuizat timpul
pentru perioada de eantionare i sunt condiii de reglare n regim automat:
timer_pl>cycle1 i Run i ModRT
Tranziia 1 (intrare n regulator manual S1S3) are loc dac s-a epuizat timpul
pentru perioada de eantionare i sunt condiii de reglare n regim manual:
timcr_pl>cycle1 i Run i notModRT
E important s se efectueze toate calculele necesare ntr-o singur stare (un sigur ciclu
IsaGRAF) i, pentru uniformitate, e de dorit ca pe oricare ramur (automat sau manual),
durata unui ciclu de reglare sa fie aceeai, ct mai scurt, adic dou cicluri IsaGRAF
(init+automal sau init +manual), pentru ca modul de funcionare a IsaGRAF-ului (la un ciclu
main execut seciunea de BEGIN, din seciunea SEQUENTIAL cte stri i permite ciclul
main i apoi seciunea END) s nu influeneze (mreasc) perioada de eantionare.
Un ciclu de eantionare, pentru valorile cu care se lucreaz la reglare, se calculeaz
innd cont c un ciclu activ nseamn stare - calcul - comand + stare init (2 isa) iar un ciclu
pasiv nseamn stare init (1 isa) unde se ateapt epuizarea timpului ales pentru ciclul de
reglare. Daca ciclul isa se fixeaz, atunci se poate alege ca perioada de eantionare pentru
reglare un multiplu de ciclu isa mai mare sau egal cu 2 i se introduc n secven etape lipsite de
aciuni care asigur implicit realizarea perioadei. Dac sunt necesare regulatoare
suplimentare (de exemplu de poziie) va trebuie asigurat o sincronizare.
Oricum, secvena n dou stri pe ramur este cea mai convenabil n cazul n care se
adopt aceast soluie. Soluia corect de realizare a unui regulator este aceea n care funcia de
reglare este descris ca o funcie C ce se va apela chiar n seciunea de BEGIN i va fi
executat cu siguran cte un pas incremental la fiecare ciclu main.

- 91 -

Diagrama SFC a programului principal de reglare este prezentat n figura 5, 39.

- 92 -

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