Sunteți pe pagina 1din 7

28

FUNCIONAREA AUTOMATELOR PROGRAMABILE

3. Funcionarea automatelor programabile


3.1 PRINCIPIUL DE FUNCIONARE
3.1.1 Scanarea programului i organizarea memoriei
Asemenea altor sisteme de calcul, i automatele programabile funcioneaz executnd
continuu un program stocat n memorie (Fig. 3.1-a). Exist totui particulariti care
deosebesc modul n care se realizeaz ciclul de execuie al programului, n cazul automatelor
programabile, de cel ntlnit n cazul altor sisteme de calcul (ex. sisteme de calcul bazate pe
microcontrolere). Specific anumitor sisteme de calcul este funcionarea n care intrrile sunt
citite atunci cnd trebuie evaluate n program, iar efectul lor este imediat, producnd
modificarea ieirilor n concordan. Acest mod de funcionare este caracterizat de
actualizarea continu a intrrilor i ieirilor.
Deoarece, n cazul actualizrii continue, se consum timp pentru procesul de interogare a
fiecrei intrri sau de actualizare a fiecrei ieiri, timpul necesar examinrii a sute de intrriieiri, cum se ntmpl n cazul automatelor programabile, poate deveni considerabil. Pentru a
crete viteza de execuie a programului, anumite zone din memoria RAM sunt utilizate pe
post de memorie tampon (buffer de stocare) ntre logica de control specificat prin program i
echipamentele de intrare-ieire. La nceputul fiecrui ciclu de execuie al programului,
procesorul citete toate intrrile i stocheaz starea lor n zona rezervat din memorie. Pe
msur ce programul se execut, datele de intrare sunt citite din memorie i sunt utilizate
producnd, conform programului, o serie de date de ieire. Datele rezultate sunt stocate n
zona rezervat din memoria RAM, iar la sfritul ciclului de execuie al programului sunt
tranferate spre ieire, producnd astfel actualizarea ieirilor fizice care vor rmne
neschimbate pn la urmtoarea actualizare. Acest mod de funcionare, specific automatelor
programabile, este caracterizat de transferul n mas al intrrilor i ieirilor i se desfoar n
trei etape, dup cum se poate vedea n Fig. 3.1-b.

Fig. 3.1. Ciclul de execuie al unui program n cazul sistemelor de calcul clasice (a)
i n cazul automatelor programabile (b)

Principiul de funcionare al automatului programabil este simplu i const din repetarea


continu a urmtoarelor etape:

FUNCIONAREA AUTOMATELOR PROGRAMABILE

29

1. Automatul programabil citete intrrile fizice i salveaz starea lor ntr-o zon special
a memoriei RAM, cunoscut sub denumirea de tabelul (regitrii) imagine al
intrrilor.
2. Programul stocat se execut instruciune cu instruciune, utiliznd intrrile din
memorie pentru evaluarea logicii de control implementate. Pe msur ce programul se
execut, n funcie de starea intrrilor i de logica programului, se produc ieiri, care
sunt stocate n zona alocat tabelului (regitrii) imagine al ieirilor din memoria
RAM.
3. Automatul programabil actualizeaz starea ieirilor fizice pe baza strii ieirilor
rezultate la pasul anterior. Dup aceast etap ciclul se reia de la pasul 1.
Procesul constnd din citirea strii intrrilor, execuia programului i actualizarea ieirilor
poart denumirea de scanare. Procesul de scanare se execut ciclic, asigurnd evoluia
secvenial a celor trei etape amintite.
Ciclul de scanare al programului scoate n eviden cteva aspecte privind organizarea
memoriei la automatele programabile. n Fig. 3.2 se prezint o reprezentare n acest sens:

Fig. 3.2. Scanarea programului i organizarea memoriei

Fiecare intrare i ieire are alocat cte o adres n memoria RAM, n zona
corespunztoare, putnd fi accesat direct. Intrrile sunt mapate n tabelul imagine al
intrrilor, iar ieirile sunt mapate n tabelul imagine al ieirilor. Figura de mai sus scoate n
eviden i o zon a memoriei RAM care este rezervat diferitelor date intermediare
(variabile, contoare, numrtoare etc.) care se pot ntlni n decursul execuiei oricrui
program. De asemenea, Fig. 3.2 mai pune n eviden i zona de memorie n care se stocheaz
programul.
Acest mod de organizare al memoriei a fost anticipat i n capitolul 1, n exemplul
referitor la principiul de funcionare al automatului programabil, n care datele de intrare (I),
ieire (Q) i cele intermediare (M) puteau fi accesate direct prin specificarea zonei n care se
gseau i a adresei lor.
Exemplu: Pornirea unui motor. Fig. 3.3 prezint modul n care se realizeaz execuia unui
program simplu, realizat n limbaj Ladder, i interaciunea sa cu intrrile i ieirile. n acest
exemplu, se consider cazul pornirii unui motor ca urmare a acionrii unui buton (btn_Start)
aflat pe un panou de comand.
n timpul fazei de citire a intrrilor, starea fizic a butonului de pornire aflat pe panoul de
comand este stocat ntr-un bit din memoria RAM, aflat n zona alocat regitrilor imagine ai
intrrilor. Altfel spus acest bit va reflecta (va fi imaginea) strii butonului de pornire. n

30

FUNCIONAREA AUTOMATELOR PROGRAMABILE

continuare, se execut logica din program care va realiza comanda motorului prin intermediul
releului de ieire, a crui stare este salvat ntr-un bit din memoria RAM situat n zona alocat
regitrilor imagine ai ierilor. Ulterior, n faza de actualizare a ieirilor, starea acestui bit va fi
transferat ieirii, realiznd astfel comanda efectiv a motorului.

Fig. 3.3. Execuia unui program i interaciunea sa cu intrrile i ieirile

3.1.2 Scanarea perifericelor


Scanarea programului este nsoit i de o scanare a perifericelor. Acest proces are loc n
timpul fazei 1 (citirea strii intrrilor) i 3 (actualizarea ieirilor) a ciclului de scanare a
programului i se realizeaz sub controlul procesorului.
Pentru a nelege mai bine scanarea perifericelor trebuie s ne oprim asupra structurii
modulelor de intrare-ieire. n general, diferitele uniti de intrare-ieire (ex. intrri digitale,
ieiri digitale, intrri analogice etc.) ale sistemelor cu automate programabile sunt organizate
sub form de module de extensie de sine stttoare, care sunt deseori dotate cu procesoare
proprii care le coordoneaz activitatea. De asemenea, aceste module sunt dotate n mod tipic
cu buffere de intrare sau de ieire, dup caz.
Astfel, sub controlul procesorului propriu, n cadrul modulelor de intrare-ieire, starea
intrrilor fizice va fi periodic actualizat n bufferele de intrare, respectiv ieirile fizice vor fi
periodic actualizate n funcie de bufferele de ieire. Acest lucru se va realiza independent de
ciclul de scanare al programului.
n faza 1 (citirea strii intrrilor) a ciclului de scanare a programului procesorul central al
automatului programabil va parcurge pe rnd fiecare modul de intrare i va copia bufferele
respective n memorie, realiznd n acest fel imaginea intrrilor fizice la un moment dat,
capturat sub forma datelor stocate n zona de memorie rezervat intrrilor.
n mod asemntor, n faza 3 (actualizarea ieirilor) a ciclului de scanare a programului se
va transfera n bufferele modulelor, imaginea ieirilor din memorie.
Acest proces de citire i actualizare a bufferelor de intrare i ieire caracterizeaz scanarea
perifericelor.
Exist i implementri ale sistemelor cu automate programabile la care bufferele de
intrare-ieire sunt parte integrant a memoriei RAM, mai exact sunt parte a zonelor rezervate
regitrilor imagine ai intrrilor i ieirilor. n aceast situaie procesorul central al automatului
programabil determin eantionarea intrrilor fizice i stocarea lor n memorie n faza 1 a
ciclului de scanare a programului, respectiv comand actualizarea ieirilor fizice conform
imaginii ieirilor n faza 3 a ciclului de scanare a programului.

FUNCIONAREA AUTOMATELOR PROGRAMABILE

31

n Fig. 3.4 se pun n eviden cele dou scanri care au loc n timpul funcionrii
automatelor programabile: scanarea programului i a perifericelor.

Fig. 3.4. Scanarea programului i scanarea perifericelor

3.1.3 Comunicaia i auto-diagnoza


n realitate, ciclul de scanare al programului cuprinde pe lng cele trei etape menionate,
nc dou etape (care nu au fost reprezentate n Fig. 3.1) n care se realizeaz procesarea
comunicaiilor i auto-diagnoza sistemului. Automatul programabil realizeaz comunicarea
continu cu subsistemele sale, aflate local sau la distan, efectund n timpul fazei de
comunicare a ciclului de scanare, procesarea mesajelor care provin de la modulele de
intrare/ieire sau a mesajelor care sosesc pe porturile de comunicaie.
Pe parcursul etapei de auto-diagnoz. automatul programabil realizeaz verificarea
integritii programului, testeaz funcionarea corect a modulelor de intrare-ieire i a
procesorului. n cazul detectrii unor erori automatul programabil va semnaliza defectele,
indicnd operatorului uman funcionarea defectuoas a sistemuui. n acest sens, anumite
automate programabile dispun de relee speciale pentru semnalizarea defectelor care se
activeaz n momentul n care se ndeplinesc una sau mai multe condiii asociate unor defecte.
Contactele acestor relee funcioneaz sub controlul unui watchdog timer. Astfel, la sfritul
fiecrui ciclu de scanare procesorul va trimite un impuls indicnd funcionarea corect a
sistemului. n cazul apariiei unor erori sau defecte acest impuls nu va mai fi trimis,
temporizarea va expira, iar releu de semnalizare se va activa.
Unele automate programabile ofer utilizatorului accesul din program la informaiile
rezultate din auto-diagnoz. Astfel, utilizatorul poate decide i implementa strategia de
gestionare a eventualelor defecte care pot aprea n timpul funcionrii sistemului.
3.2 EFECTUL SCANRII ASUPRA RSPUNSULUI SISTEMULUI
Timpul necesar realizrii unui ciclu program poart denumirea de timp de scanare (en.
Scan Time). Durata acestui parametru este determinat de mai muli factori:
1. Procesorul automatului programabil utilizat
2. Dimensiunea programului scanat
3. Numrul de intrri i ieiri care trebuie citite, respectiv actualizate

32

FUNCIONAREA AUTOMATELOR PROGRAMABILE

4. Funciile sistem utilizate. De exemplu, monitorizarea aplicaiilor crete durata scanrii


programului, deoarece procesorul trebuie s trimit starea contactelor i bobinelor spre
un echipament de monitorizare (ex. un PC).
Pentru cuantificarea timpului de scanare, productorii de automate programabile specific
un parametru, denumit rat de scanare, care exprim timpul necesar execuiei unei
instruciuni program (de obicei se specific timpul necesar execuiei unei instruciuni logice.
Instruciunile bloc sau funcionale vor dura n general mai mult). De exemplu, n cazul
automatelor programabile Siemens din familia S7-200, rata de scanare specificat variaz
ntre 0.22s / instruciune logic (la automatele programabile S7-200, dotate cu CPU 22x) i
1.2s (la automatul programabil S7-200, CPU 212), n funcie de modelul ales. Astfel, odat
cu creterea complexitii programului va crete i durata timpului de scanare.
O alt modalitate de a exprima rata de scanare presupune specificarea timpului necesar
execuiei unui program cu dimensiunea de 1kB.
Un alt parametru important al unui automat programabil este timpul total de rspuns.
Acesta este determinat de timpul de rspuns la intrare, timpul de execuie al programului i
timpul de rspuns la ieire. Avnd n vedere c unui automat programabil i trebuie un anumit
timp pentru a reaciona la schimbrile valorilor de intrare, se poate studia efectul pe care l are
ciclul de scanare al programului asupra rspunsului sistemului. Fig. 3.5 exemplific acest
lucru.

Fig. 3.5. Efectul scanrii asupra rspunsului. Situaii posibile de variaie a intrrilor
Cazul favorabil (a), Cazul nefavorabil (b), Semnal de intrare nedetectat (c)

Conform principiului de funcionare, automatul programabil nu poate vedea dac o intrare


este activ sau inactiv doar dac o citete. Aceast testare a intrrilor are loc doar n etapa
corespunztoare a ciclului de scanare.
Astfel, conform Fig. 3.5 se identific trei situaii posibile de variaie a intrrilor care
afecteaz direct rspunsul sistemului.
n cazul a) intrarea se modific chiar naintea nceperii unui nou ciclu de scanare. Starea
intrrii va fi luat n calcul n acel ciclu de scanare, dar efectul intrrii asupra ieirii se va face
simit abia n urmtorul ciclu de scanare al programului. Aceast situaie marcheaz cazul
favorabil n care timpul total de rspuns este comparabil cu durata unui ciclu program. Altfel
spus, efectul intrrii se face simit la ieire dup o ntrziere aproximativ egal cu timpul de
scanare.
n cazul b) intrarea se modific imediat dup nceperea unui nou ciclu de scanare. Starea
intrrii va fi luat n calcul abia n urmtorul ciclu de scanare, iar efectul ei asupra ieirii se va

FUNCIONAREA AUTOMATELOR PROGRAMABILE

33

face simit n al treilea ciclu de scanare al programului. Aceast situaie marcheaz cazul
nefavorabil n care timpul total de rspuns este comparabil cu durata a dou cicluri program.
Altfel spus, efectul intrrii se face simit la ieire dup o ntrziere aproximativ egal cu
dublul timpului de scanare.
Cele dou situaii marcheaz faptul c timpul total de rspuns al sistemului la modificarea
intrrilor variaz, n funcie de momentul apariiei modificrii, ntre unu i doi timpi de
scanare.
Cazul c) evideniaz situaia n care modificarea intrrii nu este detectat niciodat,
deoarece modificarea semnalului de intrare este mai scurt dect durata unui ciclu de scanare,
semnalul schimbndu-i starea de dou ori. Acest caz indic faptul c este imposibil
detectarea, pe cile obinuite, a modificrilor semnalelor de intrare avnd durata mai scurt
dect timpul de scanare.
Dac nu este posibil ca intrrile s fie active mai mult timp, automatul programabil nu va
putea implementa corect logica de control. Exist totui cteva ci care pot rezolva acest
neajuns:
Extinderea impulsului. Aceast funcie extinde lungimea (durata) unui semnal de
intrare pn la momentul n care automatul programabil va testa intrrile, n ciclul
urmtor. Totui, utilizarea acestei funcionaliti este limitat la semnalele de
intrare care produc cel mult un impuls la dou cicluri de scanare. Aceast condiie
va asigura posibilitatea citirii tuturor impulsurilor aprute. Dac este necesar
citirea unui numr mare de impulsuri ntr-un timp mai scurt dect timpul de
scanare se pot utiliza module de intrare dotate cu numrtoare de mare vitez (en.
HSC - High Speed Counters) care pot contoriza toate impulsurile i pot pune direct
aceast informaie la dispoziia UCP-ului automatului programabil. n Fig. 3.6-a se
prezint funcia de extindere a impulsului, iar n Fig. 3.6-b se scoate n eviden
necesitatea utilizrii unor numrtoare de mare vitez pentru contorizarea
impulsurilor, deoarece nici citirea direct, nici extinderea impulsurilor nu va
permite detectarea tuturor impulsurilor de intrare.

Fig. 3.6. Extinderea impulsurilor (a) i necesitatea utilizrii de numrtoare de mare


vitez la detectarea impulsurilor (b)

Instruciunile cu efect imediat asupra intrrilor i ieirilor. Utilizarea acestor


instruciuni n cadrul aplicaiei va permite citirea imediat a strii intrrilor, fr a
se mai atepta etapa de citire a intrrilor din ciclul urmtor de scanare. De
asemenea, utilizarea instruciunilor de ieire cu efect imediat va determina
modificarea direct a ieirilor nainte de etapa de actualizare a ieirilor a ciclului de
scanare. Fig. 3.7 prezint principiul acestei soluii.

34

FUNCIONAREA AUTOMATELOR PROGRAMABILE

Fig. 3.7. Utilizarea instruciunilor cu efect imediat asupra intrrilor i ieirilor

ntreruperile. La apariia unui eveniment se suspend execuia programului


principal i se execut o rutin de tratare a ntreruperii. Prin utilizarea
ntreruperilor se pot evita ntrzierile cauzate de testarea intrrilor doar la nceputul
ciclului de scanare al programului, existnd posibilitatea ca perifericul (ex.
modulul de intrare) s anune modificarea strii sale. Fig. 3.8 evideniaz
funcionarea automatului programabil n regim de ntrerupere.

Fig. 3.8. Funcionarea automatului programabil n regim de nterupere