1.elemente de teoria automatelor

Upload: jesse-graham

Post on 30-Oct-2015

102 views

Category:

Documents


4 download

TRANSCRIPT

CAPITOLUL 1

CAPITOLUL 1

ELEMENTE DE TEORIA AUTOMATELOR

1.1. Definitia automatelor, clasificare

1.2. Alegerea tipului de automat WLC / PLC

1.3. Elemente de comutatie

1.4. Operatii si functii logice

1.5. Automatul ca sistem cu stari finite

1.6. Reprezentarea automatelor prin tabele de tranzitie sau grafuri

1.7. Reprezentarea automatelor prin scheme logice

1.8. Reprezentarea automatelor prin retele Petri

1.1. Definitia automatelor. ClasificareNotiunea de automat provine din constrangerea cuvintelor autonomous action care exprima calitatea unui sistem tehnic de a functiona in mod autonom, adica fara interventia nemijlocita a operatorului uman. Sistemele de acest gen se numesc sisteme automate.

Partea dintr-un sistem automat care conduce instalatia sau procesul se numeste dispozitiv de automatizare. Exista o categorie de dispozitive de automatizare care elaboreaza comenzi discrete de genul pornit/oprit, inchis/deschis, actionat/blocat etc. Acestea se numesc automate discrete. Ele realizeaza decizii secventiale sau algoritmi decizionali.

Asa cum arata si denumirea, un automat are proprietatea ca realizeaza un anumit algoritm, parcurgand un numar de etape in vederea realizarii obiectivului sau. In general un automat are urmatoarele proprietati:

este realizat din elemente discrete (de comutatie);

are un algoritm ce parcurge un numar finit de stari.

O clasificare a automatelor se poate face in raport cu modul de realizare a elementelor de comutatie si a algoritmului de lucru.

Din acest punct de vedere automatele pot fi: automate in logica cablata sau automate in logica programata.

Automatele in logica cablata au propritatea ca folosesc elemente de comutatie cu structura simpla, iar algoritmul de lucru se realizeaza pe baza unei scheme cablata interior.

Automatele in logica programata folosesc ca elemente de comutatie circuite electronice programabile, iar algoritmul de lucru se realizeaza prin program care se introduce in memoria automatului.

O clasificare mai detaliata este urmatoarea:

Automate in logica cablata (WLC Wired Logic Control)

cu elemente in comutatie dinamica

cu elemente in comutatie statica

Automate in logica programata (PLC Programmed Logic Control)

cu microprocesor

cu microcontroller

cu PLD-embedded

WLC in comutatie dinamica folosesc ca elemente logice: relee, contactoare, comutatoare, butoane. Avantajele WLC in comutatie dinamica sunt: rezista la curenti mari (industriali) si nu sunt sensibili la perturbatii. Se folosesc foarte rar.

WLC in comutatie statica realizeaza comutatia pe principiul electronic, avand avantajul robustetei si compactitatii si dezavantajul lipsei de flexibilitate.

Automatele in logica programata au avantaje ca: o mare flexibilitate, posibilitatea realizarii unor functiuni complexe, usurinta de adaptare a unui automat la diverse procese tehnologice. Sunt utilizate acolo unde viteza de executie nu e critica (acesta este principalul dezavantaj). Folosesc ca element programabil microprocesorul sau microcontrollerul.

Automatul poate fi definit ca un obiect matematic astfel:

Se cunoaste spatiul de intrare U, numit multimea semnalelor de intrare;

Se cunoaste spatiul de iesire Y, numit multimea semnalelor de iesire;

Se cunoaste spatiul de stare X, numit multimea starilor;

Se cunoaste functia de tranzitie a starilor f;

Se cunoaste functia de iesire g.

Cu notatiile de mai sus un automat A este un quintruplu de forma:

Dupa modul in care sunt reprezentate multimile U, X, Y si functiile f, g avem diverse reprezentari ale automatelor.

Aceste reprezentari pot fi:

tabele de tranzitie si grafuri de tranzitie;

scheme logice algoritmice;

retele Petri.

1.2. Alegerea tipului de automat WLC / PLC

Asa cum s-a vazut, automatele pot avea algoritmul realizat intern prin cablare (Wired Logic Controller) sau pe scurt WLC sau realizat prin program (Programmed Logic Controller) sau PLC.

Cu toate ca in momentul de fata automatele PLC domina sunt situatii in care este nevoie de un automat WLC.

Alegerea intre WLC si PLC este dictata de patru factori, si anume:

complexitatea automatului

viteza de actiune

flexibilitatea

capacitatea de memorare

Complexitatea automatului este dictata de complexitatea instalatiei sau procesului care trebuie automatizat, de necesitatea efectuarii unor calcule complexe sau operatii logice complexe etc. si se impune o logica programata. Daca complexitatea este redusa si nu se efectueaza calcule adesea o logica cablata poate oferi o alternativa acceptabila.

Viteza de lucru

Sistemele in logica programata, chiar si cele de mare viteza, daca trebuie sa execute programe complexe, pot duce la intarzieri care nu permit sincronizarea cu desfasurarea procesului. Se spune ca nu pot lucra in timp-real. In acest caz este obligatorie o logica cablata care functioneaza in timp-real.

Flexibilitatea echipamentului

Echipamentele de automatizare necesita adesea o anumita flexibilitate in sensul ca acelasi echipament sa se poata adapta la diverse instalatii, eventual cu modificari minime. De asemenea sa poata fi dezvoltat in viitor, daca procesul sufera unele modificari sau perfectionari. In cazul unor instalatii sau procese simple flexibilitatea nu este critica si se poate folosi logica cablata.

Capacitatea de memorare

Sistemele care functioneaza in timp-real au nevoie de a prelua date din proces si apoi sa le prelucreze, sa emita comenzi si semnalizare pentru operatorul uman. Cand cantitatea de date este redusa, logica cablata poate rezolva o asemenea problema. Daca se solicita multe date memorate si/sau stari logice stocate este necesara o logica programata.

Trebuie precizat ca atat logica cablata cat si cea programata se utilizeaza frecvent si coexista simultan la nivelul aceluiasi proces.

In fig.1.1 este prezentata o schema logica ce sintetizeaza alegerea tipului de automat WLC sau PLC.

Fig.1.1. Alegerea tipului de automat

Asa cum se vede, in general WLC sunt preferate in doua cazuri:

sisteme complexe de mare viteza

sisteme simple, dedicate si putina memorie

Sistemele PLC sunt cerute in toate celelalte cazuri, cum ar fi:

sisteme complexe cu viteza necritica

sisteme simple dar flexibile

sisteme cu mare capacitate de memorie

Referindu-ne la automatizarile de tip WLC, acestea pot fi realizate in doua variante: in comutatie dinamica sau in comutatie statica.

WLC in comutatie dinamica se justifica mai ales la puteri mari, in domeniul sistemelor energetice sau a actionarilor electrice. In momentul de fata peste tot unde este posibil se prefera WLC in comutatie statica.

1.3. Elemente de comutatie

Faptul ca automatele sunt realizate din elemente de comutatie impune definirea unor notiuni de teoria comutatiei.

Spunem despre un element ca este in comutatie, daca acesta are un numar finit de stari stabile, trecerea de la o stare la alta facandu-se sub actiunea marimii de intrare.

In general exista elemente cu 2, 3, ..., n stari stabile, insa in practica cele mai folosite au 2, 3 stari stabile.

In fig.1.2.a se prezinta spre exemplificare un releu cu un contact comutator cu 2 stari stabile, iar in fig.1.2.b unul cu 3 stari stabile, avand in plus starea intermediara, acesta fiind sensibil la polaritatea tensiunii.

Fig.1.2.

Comutatia cu doua stari poate fi reprezentata grafic ca in fig.1.2.c, iar cu 3 stari ca in fig.1.2.d. Elementele din fig.1.2 realizeaza comutatia printr-o miscare mecanica a contactelor si se numesc elemente de comutatie dinamica.

Elementele de comutatie se pot realiza si din componente electronice, in acest caz comutatia este realizata in tensiune sau curent.

Elementul de baza in comutatia electronica este tranzistorul T.

In fig.1.3.a, b se prezinta un element de comutatie cu 2 stari utilizand tranzistorul Q precum si caracteristica sa. Marimea care comuta este curentul de colector Ic sub actiunea curentului din baza Ib produs de tensiunea u.

In fig.1.3.c, d se prezinta un element de comutatie cu 3 stari utilizand 3 tranzistori, Q1 si Q2 functioneaza in contratimp si sunt comandati de catre tensiunile de intrare u1, u2. Intrarea u1=+V produce starea +I0, intrarea u2=+V produce starea I0, iar cazul u1=u2=0 produce starea I0=0, numita a treia stare.

Fig.1.3.

Comutatia electronica se realizeaza fara elemente in miscare si se numeste comutatie statica.

In continuare vom considera elementele de comutatie cu 2 stari, acestea fiind cele mai folosite in constructia automatelor.

Elementele de comutatie avand 2 stari, pot fi puse in corespondenta cu valorile logice de adevarat sau fals din logica matematica.

Daca un element de comutatie nu este parcurs de curent, acesta corespunde valorii de fals, iar daca este parcurs de curent corespunde valorii de adevarat.

Pentru simplificare vom spune ca un element de comutatie x, care nu este parcurs de curent are valoarea x=0=fals, iar daca este parcurs de curent x=1=adevarat.

Datorita acestei corespondente se mai spune ca un element de comutatie se poate gasi in 2 stari LOGIC=0 (nu este parcurs de curent) sau LOGIC-1 (parcurs de curent).

Comutatia reprezinta trecerea unei marimi discrete de la o stare la cealalta stare stabila.

Comutatia de la LOGIC-0 la LOGIC-1 reprezinta frontul pozitiv al semnalului iar de la LOGIC-1 la LOGIC-0 reprezinta frontul negativ al semnalului. Sa consideram 2 contacte care au o functionare inversa unul altuia (fig.1.4.a). Primul este un contact care in repaus este deschis. Cand releul comuta, contactul normal-deschis se va inchide, iar celalalt se va deschide. Contactul normal-deschis (ND) realizeaza in repaus LOGIC-0 iar la comutatie LOGIC-1, cel normal-inchis (NI) realizeaza in repaus LOGIC-1 iar la comutatie LOGIC-0.

Sa notam starea celor 2 contacte cu variabila u, respectiv pe care o putem reprezenta sub forma unui tabel logic, denumit tabel de adevar (fig.1.4.b).

Fig.1.4. Operatiile logice DA, NU

Un contact ND se spune ca realizeaza operatia logica DA iar cel NI realizeaza operatia logica NU (NEGATIE, INVERSARE).

Pentru elementele de comutatie statica operatia DA sau NU se reprezinta ca in fig.1.4.c.

1.4. Operatii si functii logice

Pentru analiza automatelor se considera ca elementele de comutatie sunt reprezentate prin variabile ui care pot lua numai doua valori 0, 1. Marimile si se mai numesc variabile binare.

Cu ajutorul variabilelor binare se pot realiza 3 operatii fundamentale denumite NU, SI, SAU (NOT, AND, OR). Aceste operatii sunt definite pe baza tabelelor de adevar din fig.1.5.a.

Fig.1.5. Operatii logice fundamentale: a) tabele de adevar; b) reprezentare simbolica

Operatia logica NU se reprezinta prin , operatia logica SI prin iar operatia logica SAU prin +.

Cum se observa din tabelele de adevar, operatia NU inverseaza valoarea logica a marimii de intrare u, operatia SI are valoarea logica-1 daca si numai daca intrarile u1 si u2 au valoarea logica-1 iar operatia SAU are valoarea logica-1 daca intrarile u1 sau u2 sau ambele au valoarea logica-1. Aceste operatii se simbolizeaza ca in fig.1.5.b.

Cu ajutorul variabilelor binare se pot realiza operatii matematice respectand anumite reguli sau proprietati. Totalitatea acestor proprietati formeaza algebra logicii sau algebra BOOLE. Algebra logicii are 11 proprietati definite in continuare.

1. Proprietatea de comutativitate:

2. Proprietatea de asociativitate:

3. Proprietatea de distributivitate:

4. Proprietatea de absorbtie:

5. Proprietatea de idempotenta:

6. Proprietatea de necontradictie:

7. Proprietatea tertului exclus:

8. Proprietatea valorii logic-0:

9. Proprietatea valorii logic-1:

10. Proprietatea negatiei:

11. Proprietatile DeMorgan:

Operatia logica se realizeaza cu una sau maximum 2 variabile.

Urmatoarele expresii logice realizate cu operatiile fundamentale NU, SI, SAU se mai numesc operatii logice derivate:

1. SAU EXCLUSIV:

(Are valoarea logic-1 cand u1, u2 sunt inverse una alteia)

2. ECHIVALENTA:

(Are valoarea logic-1 cand u1, u2 au aceeasi valoare)

3. INTERDICTIE:

(Are valoarea lui u1 cand u2=0)

4. IMPLICATIE:

(Valoarea logic-0 a lui u1 produce numai logic-1 la iesire)

5. NICI:

(Exista logic-1 la iesire cand ambele intrari sunt logic-0)

6. NUMAI:

(Exista logic-0 la iesire cand ambele intrari sunt logic-1)

CONVENTIA SHANNON afirma ca operatia logica SI corespunde legarii in serie a elementelor de comutatie, operatia logica SAU corespunde legarii in paralel a elementelor de comutatie, operatia DA corespunde contactului normal-deschis, iar operatia NU corespunde contactului normal-inchis.

Operatiile logice se pot realiza si cu ajutorul elementelor de comutatie statica, dar si cu elemente de comutatie dinamica daca ne bazam pe conventia lui SHANNON.

Functia logica este o expresie formata din mai multe variabile binare utilizand operatiile logice fundamentale sau derivate.

Expresia urmatoare este formata din 3 variabile u1, u2, u3 si constituie o functie logica:

Aceasta se poate realiza ca in fig.1.6.a, b.

Fig.1.6.

1.5. Automatul ca sistem cu stari finite

Din punct de vedere a teoriei sistemelor automatul se poate considera un sistem cu stari finite (SSF) definit de ecuatiile generale:

Se poate reprezenta sub forma schemei bloc din fig.1.7.

Fig.1.7. Schema bloc a unui automat cu stari finite

Partea realizata de functia de iesire g nu depinde de timp fiind un sistem logic fara memorie (combinational).

Sisteme logice combinationale

Sisteme discrete fara memorie a caror marimi pot lua doar valori binare (0, 1) au proprietatea ca iesirea yi depinde doar de combinatia valorilor marimilor (0, 1) de la intrare si se numesc sisteme logice combinationale, sau pe scurt sisteme logice.

In acest caz, functia g se numeste functie logica si este descrisa de tabela de adevar.

Partea logica combinationala a automatului se poate reprezenta ca in fig.1.8.a, unde s-a renuntat la indicele i care reprezenta timpul.

Intr-o tabela de adevar se enumera in binar toate combinatiile marimilor de intrare, care sunt 2p (p=numarul intrarilor). Pentru fiecare combinatie se atribuie o vloare logica marimii de iesire conform specificatiei functiei g.

Pentru a exemplifica sa presupunem ca functia g depinde de marimile u, x si genereaza logic-1 atunci cand o singura intrare are valoarea logic-1. Se obtine tabela de adevar din fig.1.8.b.

Fig.1.8. Reprezentarea sistemelor logice prin tabele de adevar

Sisteme logice secventiale

Sistemele discrete cu memorie a caror marimi de intrare si iesire au doua valori (0, 1) se numesc sisteme logice secventiale. Sistemele secventiale au in structura lor elemente de memorie a starilor care asigura si functia de timp T.

Partea logica secventiala in automat este data de functia de tranzitie a starii f si asigura marimea de stare xi+1 (fig.1.9.a). Functia f se poate reprezenta prin tabela de tranzitie a starilor care ne arata starea viitoare xi+1 in care ajunge automatul sub actiunea unei secvente de intrare, plecand din starea curenta xi.

Pentru a exemplifica cele de mai sus, presupunem ca functia f depinde de marimea de stare xi care poate lua valorile 0, 1, 2, 3 si de marimea de intrare logica u (cu valorile 0, 1). Sub actiunea intrarii u=1 are loc tranzitia starii din una inferioara in urmatoarea stare in ordinea 0, 1, 2, 3, 0, 1, ... Daca u=0 starea xi ramane neschimbata. Se obtine tabela de tranzitie din fig.1.9.b.

Fig.1.9. Reprezentarea sistemelor secventiale prin tabela de tranzitie

1.6. Reprezentarea automatelor prin tabele de tranzitie sau grafuri

Un automat se mai poate reprezenta ca un sistem cu stari finite format din doua parti, si anume: o parte avand logica combinationala ce asigura transferul intrare-iesire si a doua parte avand logica secventiala (cu memorie) ce asigura transferul pe reactie (feedback) iesire-intrare, ca in fig.1.10.

Fig.1.10. Structura logica a unui automat

Structura automatului prezentat in fig.1.10 ne permite o reprezentare a functiilor f si g sub forma tabelara.

Astfel functia f este reprezentata prin tabela de tranzitie iar g prin tabela de adevar.

In acest sens un automat se poate reprezenta printr-o tabela complexa (tabela de tranzitie-iesire) formata din alaturarea la tabela de tranzitie a tabelei de iesire.

Automatul se mai poate reprezenta prin graful de tranzitie din fig.1.11.c. Graful se obtine din tabela de tranzitie si de iesire astfel:

fiecare stare xi se reprezinta printr-un nod;

se traseaza un arc daca are loc o tranzitie de la starea xi la xi+1;

daca tranzitia nu are loc se figureaza o bucla;

se trece pe fiecare arc valoarea logica a intrarii care a produs tranzitia si valoarea logica a iesirii sub forma u/y.

Sa consideram cazul unui automat care are tabela de tranzitie cu 4 stari, o singura marime de intrare u si o singura marime de iesire y (fig.1.11.a).

Marimea de iesire y va fi y=1 atunci cand starile xi+1 sunt impare (1 si 3) si y=0 cand sunt pare (0 si 2) ca in fig.1.11.b.

Pe intrarea u se aplica semnale logice (u=0 sau u=1) avand loc o tranzitie succesiva in inel. Acest automat reprezinta un registru de deplasare in inel.

Fig.1.11. Automat cu 4 stari (registru de deplasare)

Sa consideram acum cazul automatului definit de un numarator binar de 4 biti.

Sub actiunea impulsului pe intrarea u numaratorul va numara in ordinea 0, 1, 2, 3, 0, 1, ... Numaratorul are 2 iesiri y0, y1 si 4 stari date de secventele de numarare (fig.1.12.a, b, c).

Fig.1.12. Automat de numarare binara

1.7. Reprezentarea automatelor prin scheme logice

In general este foarte comod de lucru cu tabele de adevar respectiv cu tabelele de tranzitie, dar acestea nu pun in evidenta in mod explicit functionarea automatului.

Functionarea unui automat poate fi descrisa printr-un procedeu care prezinta pas cu pas toate etapele prin care trec starile acestuia. Acesta este algoritmul de functionare al automatului. Un algoritm poate fi reprezentat printr-o schema logica.

Este nevoie de a defini o modalitate prin care plecand de la tabelele de adevar sau tranzitie sa putem descrie algoritmul sub forma unei scheme logice. Deoarece intr-o tabela de adevar avem semnale binare, algoritmul va lucra cu decizii de tip binar, ceea ce simplifica mult problema.

Algoritmi liniari

In cazul unui algoritm simplu, acesta trebuie sa aiba doar doua tipuri de blocuri si anume un bloc de test si unul de atribuire.

Blocul de test face testarea unui bit si in functie de valoarea sa ia o decizie de ramificatie.

Astfel, daca notam cu Bi un bit si cu Aj, Ak, Ax trei adrese (etichete), atunci acest bloc poate fi reprezentat ca in fig.1.13 si se realizeaza printr-o singura instructiune.

Ax : TEST Bi JNZ Aj JMP AkFig.1.13. Blocul de test

Altfel spus un bit Bi care soseste de la adresa Ax va fi evaluat (TEST) si daca are valoarea 1 algoritmul continua la adresa Aj (JNZ), altfel algoritmul continua la adresa Ak (JMP).

De remarcat prezenta cerculetului la iesirea din dreapta a blocului care semnifica valoarea 0 a lui Bi.

Blocul de atribuire va atribui un numar binar marimii de iesire si apoi va face un salt neconditionat la o adresa de continuare a algoritmului.

Sa notam cu Yi un vector de iesire, cu Nj un numar binar si cu Ak, Ax doua adrese, atunci acest bloc se reprezinta ca mai jos si poate fi reprezentat printr-o singura instructiune.

Ax : MOV Yi,Nj JMP AkFig.1.14. Blocul de atribuire

Altfel spus la adresa Ax are loc incarcarea (MOV) in registrul Yi a unui numar binar Nj dupa care algoritmul continua la adresa Ak.

Pentru intocmirea algoritmului se parcurg urmatoarele etape:

se realizeaza tabela de adevar a automatului;

se intocmeste arborele primitiv si se simplifica;

se reprezinta schema logica a algoritmului;

se scrie microprogramul algoritmului cu cele 2 tipuri de instructiuni.

Sa consideram un automat cu n intrari si o singura iesire Y.

Arborele primitiv va avea n+1 nivele, iar pe fiecare nivel vor fi 2n blocuri. Pe primul nivel vom avea 20=1 blocuri de decizie, pe al doilea 21=2 blocuri de decizie, etc, iar pe ultimul nivel vom avea 2n blocuri de atribuire.

Arborele primitiv se simplifica in sensul ca blocul cu iesiri identice se elimina transmitand semnalul de iesire la blocul superior. De asemenea daca doua blocuri sunt identice se utilizeaza unul singur, concentrand cele doua intrari in acelasi bloc.

Schema logica a algoritmului se obtine din arborele simplificat, caruia i se adauga o legatura de reactie de la iesire la intrare si adrese la intrarea in fiecare bloc. Se scrie apoi microprogramul folosind cale 2 microinstructiuni.

Pentru exemplificare vom considera din nou schema de comanda la distanta cu doua butoane O, P si un releu Y. Autoretinerea comenzii se face prin contactul xi al releului Y.

Sunt 3 intrari O, P, xi si o singura iesire Y (fig.1.15).

Fig.1.15.

Arborele algoritmului va avea 4 nivele, pe primele 3 vom pune blocuri de decizie pentru intrarile O, P, xi. Pe ultimul nivel vor fi blocuri de atribuire pentru Y cu valorile din ultima coloana a tabelei de adevar (fig.1.16).

Pentru cele 4 nivele, avem respectiv 1, 2, 4 blocuri, iar pe ultimul nivel 8 blocuri de atribuire. Arborelui primitiv i s-au atribuit si adresele de intrare si iesire pentru fiecare bloc.

Fig.1.16

Blocurile de adrese A7, A8, A9, A10 au aceleasi iesiri, deci se transmite valoarea 0 pana la intrarea blocului A1, iar blocurile aferente se elimina. Din aceleasi motive se elimina si blocurile cu intrarile A5, A11, A12.

In final se conecteaza intre ele iesirile avand aceeasi valoare logica, se ataseaza noile adrese si se inchide arborele prin legatura de feedback obtinand schema logica a algoritmului din fig.1.17.

Fig.1.17.

Pe baza schemei logice simplificate scriem microprogramul algoritmului folosind cele2 tipuri de instructiuni.

A0 : TEST O JNZ A1 JMP A2A1 : MOV Y,0 JMP A0A2 : TEST P JNZ A5 JMP A0A5 : MOV Y,1 JMP A0A6 : TEST xi JNZ A5 JMP A1Acesta este microprogramul ce descrie algoritmul de functionare a schemei de comanda la distanta.

Algoritmi cu subrutine

Sunt deseori cazuri cand intr-un algoritm se repeta de un numar de ori acelasi tip de secventa. Aceasta inseamna ca si in microprogram vor exista portiuni care se vor repeta.

Daca se utilizeaza aceasta metoda se spune ca am realizat un algoritm (microprogram) liniar. Exista si o alta metoda mult mai practica. Aceasta inseamna sa scriem si sa memoram microprogramul care se repeta o singura data si sa-l solicitam (apelam) oricand este necesar. Un asemenea microprogram se mai numeste microsubrutina. Folosirea subrutinelor in general este foarte indicata din motive de economie a spatiului de memorie, de flexibilitate a programului in detrimentul micsorarii vitezei de lucru.

Pentru a putea utiliza subrutine sunt necesare cateva elemente si anume:

subrutina se va depune la o alta adresa As si se va incheia cu o instructiune speciala RET, care asigura revenirea in programul principal la instructiunea imediat urmatoare din program;

organizarea in memorie a unei zone speciale numita STIVA (STACK) unde sa fie depozitata adresa de revenire Ar;

intrucat se poate lucra cu subrutine indexate trebuie sa se asigure un anumit protocol de lucru cu stiva in sensul ca ultima adresa depusa trebuie sa fie prima extrasa. Acest protocol se numeste LIFO (Last In First Out) si permite rularea corecta a stivei;

folosind principiul LIFO inseamna ca la introducerea unei adrese in stiva toate celelalte se vor deplasa cu o unitate in jos (PUSH), iar la extragerea din stiva toate adresele vor avansa in sus (POP).

Exemplu de apel a unei subrutine:

An

: CALL AsAn+1 : continua

.................................

As

: Microsubrutina

.................................

RET

De precizat ca in momentul folosirii instructiunii CALL si RET lucrul cu stiva se declanseaza automat.

Sa consideram un numarator binar de 2 biti care realizeaza trecerea succesiva de la secventa 00 la secventa 11 la comutarea pulsului ( din 0 in 1 (pe front pozitiv). In fig.1.18 se prezinta modul de functionare a numaratorului, graful sau si algoritmul de determinare a frontului pozitiv.

Fig.1.18. Numarator binar de 2 biti

Pentru a putea folosi subrutine vom defini cele doua instructiuni necesare astfel:

An : CALL AsAk : RET

Prima instructiune inseamna ca se apeleaza (CALL) microsubrutina de la adresa As, se depune in stiva prin procedeul PUSH adresa de revenire An+1, se executa apoi microsubrutina si la intalnirea instructiunii RET se extrage din stiva An+1 (POP) si programul continua de la aceasta adresa.

Microsubrutina ce simuleaza testarea frontului pozitiv al semnalului de clock este:

As : TEST ( JNZ As JMP As+1As+1 : TEST ( JNZ As+2 JMP As+1As+2 : RET

Folosind blocurile de test TEST si de atribuire MOV se poate reprezenta arborele primar al numaratorului binar.

Fig.1.19. Schema logica a algoritmului numaratorului binar

In loc sa folosim de patru ori blocul de testare a clock-ului ( se poate realiza o subrutina si apoi sa fie apelata de 4 ori.

Fig.1.20. Schema logica: a) subrutina de testare a ceasului; b) algoritmului numaratorului

Folosind cele 4 instructiuni: TEST, MOV, CALL si RET se poate realiza microprogramul care sa realizeze algoritmul numaratorului binar de 2 biti.

A0 : CALL A8A1 : LD Q0Q1,00 JMP A2A2 : CALL A8

A3 : LD Q0Q1,01 JMP A4A4 : CALL A8A5 : LD Q0Q1,10 JMP A6A6 : CALL A8A7 : LD Q0Q1,11 JMP A0A8 : BIT ( JNZ A8 JMP A9A9 : BIT ( JNZ A10 JMP A9A10 : RET

1.8. Reprezentarea automatelor prin Retele Petri

Introducere

Retelele Petri au fost introduse de germanul Carl Adam Petri, in teza de doctorat, sustinuta in 1962. De atunci, retelele Petri si conceptele lor au fost extinse, dezvoltate si aplicate intr-o mare varietate de domenii. Prezentam la inceput aspectele grafice care descriu functionarea retelelor Petri.

O retea Petri este o colectie de noduri circulare, numite pozitii (P), noduri dreptunghiulare, numite tranzitii (T) si arce orientate ce conecteaza pozitiile cu tranzitiile sau invers. Pozitiile pot contine oricate simboluri numite adesea jetoane (token). Starea de marcaj a unei retele este data de distributia de simboluri in pozitii. In fig.1.21.a se prezinta o retea simpla continand toate elementele componente ale unei retele Petri.

Marcajul acestei retele este .

Fig.1.21.

Arcele au capacitatea 1 implicit; daca este diferita de 1, capacitatea este marcata pe arc. Pozitiile au capacitate infinita implicit (deci pot stoca oricate simboluri), tranzitiile nu au nici o capacitate (nu pot stoca nici un simbol). Precizam ca numarul de arce care pot intra sau iesi in/din pozitii sau tranzitii este nelimitat. Intr-o retea Petri simbolurile circula intre pozitii atunci cand sunt realizate conditiile: tranzitiile se activeaza si apoi se executa.

O tranzitie este activata cand numarul de simboluri din fiecare dintre pozitiile sale de intrare este cel putin egal cu capacitatea arcului ce merge de la pozitie la tranzitie. Marcajul initial al retelei din fig.1.22 este . O tranzitie activata poate fi executata in orice moment. Cand este executata, simbolurile din pozitiile de intrare sunt mutate in pozitiile de iesire, in concordanta cu capacitatile arcelor si ale pozitiilor. Aceasta duce la o noua marcare a retelei, . (Fig.1.22.)

Fig.1.22.

Cand arcele au capacitati diferite, avem ceea ce ar parea la inceput o comportare incerta deoarece dupa executie numarul de simboluri de iesire difera de cele de intrare. In fig.1.23.a se prezinta o retea similara celei din fig.1.22, gata de executie, iar in fig.1.23.b dupa executie.

Fig.1.23.

In T1 au intrat 4 simboluri iar la iesire s-au distribuit 6 simboluri.

Cand se executa o tranzitie, aceasta preia din pozitiile de intrare simbolurile care au activat-o; apoi distribuie simbolurile la pozitiile de iesire in functie de capacitatile arcelor. Daca toate arcele au aceeasi capacitate, se creeaza impresia ca simbolurile doar parcurg nodul de tranzitie. Daca arcele au capacitati diferite, se creeaza impresia ca simbolurile pot disparea sau pot fi create. Aceasta este situatia reala, tranzitiile sterg simbolurile de activare si produc simboluri de iesire in functie de capacitatea arcelor.

O categorie aparte de arce, arcele de inhibare, este folosita pentru a inversa logica unei pozitii de intrare. Cu un arc de inhibare, absenta si nu prezenta unui simbol in pozitia de intrare activeaza tranzitia. Lipsa simbolului din P1 (fig.1.24.a) activeaza tranzitia T1 si daca este executata, un simbol apare in P2.

Fig.1.24.

Tranzitia din fig.1.24.b nu se poate executa, deoarece simbolul din P2 o inhiba.

Primitive

In fig.1.25 se prezinta o colectie de structuri primitive care se regasesc in retelele Petri cu efecte specifice.

Fig.1.25. Structuri primitive: a) secventa; b) conflict; c) concurenta; d) sincronizare;

e) confuzie; f) fuzionare; g) prioritate/inhibare

In fig.1.25.a avem o retea numita secventa, aici fiecare tranzitie avanseaza jetonul spre pozitia finala P3.

In fig.1.25.b toate tranzitiile T1, T2, T3 sunt activate de pozitia P1. Daca una dintre ele se executa, celelalte doua sunt dezactivate si nu se mai pot activa. Daca se transmite executia simultana, intarzierile ce pot apare intre executii nu pot garanta executia tuturor tranzitiilor si nu stim care tranzitie s-a executat. Aceasta situatie se numeste conflict.

Cazul din fig.1.25.c se numeste concurenta si este evident; multe sisteme lucreaza cu activitati concurente, cand T1 se executa apar 3 procese noi P1, P2, P3. Acestea pot fi prelucrate in paralel cu jutorul tranzitiilor T2, T3, T4.

In fig.1.25.d avem trei pozitii care activeaza o tranzitie. Cand T1 se executa toate pozitiile sunt sterse, iar P4 primeste un simbol, retea numita sincronizare. Cand procesele care conduc la P1, P2 si P3 sunt terminate se produce executia T1 si toate trei sunt sincronizate prin inceperea lui P4.

Combinata intre conflict si concurenta creaza o constructie mai complicata numita confuzie. P1 activeaza atat T1 cat si T2, dar daca T1 se executa, T2 nu mai este activata. La fel P2 activeaza T2 si T3, daca T3 se executa T2 nu mai este activata.

Fuzionarea este definita de sincronizare, daca nu exista restrictii ca cele trei tranzitii sa se execute in acelasi moment, sau ca toate trei sa se execute inaintea lui T4, deci acest caz produce fuzionarea a trei procese paralele.

Constructia prioritate/inhibare foloseste arcul de inhibare intre P1 si T2 pentru a controla tranzitia T2. Atata timp cat P1 are un simbol, T2 nu se poate executa. Este obligatorie tranzitia T1 urmata de T2, deci T1 are prioritate fata de T2.

Folosind aceste primitive se pot dezvolta structuri logice de comanda foarte sofisticate.

Automat cu jetoane

In fig.1.26 se prezinta o retea Petri pentru comanda unui automat pentru vanzare.

Acest automat stocheaza in P4 cinci articole simbolizate prin jetoane. Tranzitia T1 este executata de o moneda, iar cand este acceptata se poate distribui un singur articol. Dupa 5 monede au fost distribuite toate articolele, iar pozitia P5 de cerere de reumplere primeste un simbol, si tranzitia T5 de reumplere reincarca automatul cu alte 5 articole.

Fig.1.26. Schema de simulare in starea initiala

Daca se introduce o moneda gresita sau inacceptabila atunci se executa T1 si T2 iar moneda revine in P2. Daca introducem moneda necesara in T1 atunci simbolul din P2 trece in P1, se executa T3 si simbolul ajunge in P3. Acum T4 este activata si cand se executa un simbol este sters din P4 si apare cate un simbol in P2 si P6

Fig.1.27. Simularea automatului la distribuirea unui articol

Acum ciclul poate fi reluat prin introducerea unei alte monede. Dupa ce s-au introdus 5 monede, suntem in situatia din fig.1.28, cand P4 este gol iar P6 contine 5 simboluri corespunzator celor 5 articole vandute.

Fig.1.28. Reincarcarea automatului

Acum T6 este activata si dupa executie apare un simbol in P5 care va activa T5. Prin executia lui T5 simbolurile din P5, P6 sunt sterse iar P4 va primi 5 simboluri ce corespund reumplerii automatului cu 5 noi articole.

Modelarea elementelor de comutatie cu retele Petri

In fig.1.29 se prezinta cateva exemple de retele Petri ce modeleaza diferite elemente de comutatie.

In fig.1.29.a este modelat un bistabil R-S. Tranzitia T1 este activata iar T2 nu, deci daca executam tranzitia T1 jetonul din P1 ajunge in P2, cand T2 este activata si prin executia lui R jetonul revine in P1.

In fig.1.29.b se prezinta un numarator infinit, deoarece tranzitia T1 este activata si cand T1 se executa un simbol trece in P2 si de asemenea P1 va fi reumplut activand din nou T1. In felul acesta fiecare tranzitie executata adauga cate un jeton la P2.

In fig.1.29.c se prezinta un numarator inainte/inapoi (UP/DOWN), aici este particularizat pentru 4 pozitii. In P1 avem 4 jetoane, T1 este activata iar T2 nu si daca T1 se executa, un jeton ajunge in P2, daca executam din nou T1 al doilea jeton ajunge in P2, P1 ramanand cu 2 jetoane.

Acum putem continua pana ce toate jetoanele ajung in P2, cand T1 este blocata. Acum T2 este activata si la fiecare tranzitie va trimite cate un jeton in P3 scazandu-l din P2. Dupa 4 tranzitii se face RESET si P2 se va goli, P1 reumplandu-se.

Fig.1.29. Exemple de retele Petri: a) bistabil RS; b) numarator; c) numarator up-down;

d) comanda bidirectionala; e) numarator par-impar; f) bistabil RS; g) registru de deplasare

In fig.1.29.d avem o retea Petri care modeleaza comanda bidirectionala printr-un automat de comutatie.

Intrucat un jeton in P1 valideaza simultan T1, T2 inseamna ca executia unei tranzitii va bloca executia celeilalte, asa cum este necesar in cazul comenzii bidirectionale (PS, PD). O noua comanda se va putea executa numai dupa ce s-au executat tranzitiile T1 si T3 prin comanda de STOP, cand jetonul ajuns in P2 sau P3 este trimis in P1.

In fig.1.29.e este o retea Petri care numara din 2 in 2 in P1 adunandu-se numerele impare iar in P2 cele pare. Comanda se poate da simultan pe T1, T2. Numararea incepe cu numerele impare deoarece in P1 avem un jeton. Aici folosim 2 arce de inhibare, astfel P1 inhiba T1, deci tranzitia T2 este activata si cand se executa jetonul ajunge din P1 in P3, precum si in P2. Acum T2 este inhibata si T1 activa iar la executie jetonul din P2 ajunge in P4. Acest proces poate continua la nesfarsit, pana cand validandu-se T3 se face reset (RES) si P3, P4 se golesc.

In fig.1.29.f se prezinta un circuit bistabil de tip T, care la executia tranzitiei activate T1 jetonul trece din P1 in P2, acum executam pe T2 si are loc tranzitia jetonului din P2 in P1.

In fig.1.29.g este reteaua Petri a unui registru de deplasare spre dreapta. Cand se incearca executia numai o tranzitie este activata si anume la inceput T2, care va duce jetonul din P1 in P2. Urmatoarea tranzitie activata este T3 care va duce jetonul in P3, iar urmatoarea il va readuce in P1.

In fig.1.29.h este reteaua Petri a unui numarator binar de 2 biti. Reteaua are la inceput 2 jetoane in P1. La inceput T1 este activa si dupa executie un jeton ajunge in P2, care activeaza pe T2 si blocheaza pe T1. Cand T2 se executa jetonul din P2 ajunge in P3 acesta blocand pe T2, dar P2 activeaza T1. Tranzitia activa T1 se executa si ultimul jeton din P1 ajunge in P2. Acum T1, T2 sunt blocate dar T3 este activa si dupa ce T3 se executa cele 2 jetoane din P2, P3 trec prin arcul de capacitate 2 din nou in P1.

Cu retelele Petri se pot modela si simula automate oricat de complexe, avand avantajul ca functionarea acestora se poate urmari mai usor, datorita prezentei si circulatiei jetoanelor in retea.

_1097690614.unknown

_1097690734.unknown

_1097691082.unknown

_1097691176.unknown

_1097745129.unknown

_1097745685.unknown

_1098716012.unknown

_1097745603.unknown

_1097691460.unknown

_1097691137.unknown

_1097690953.unknown

_1097691009.unknown

_1097690876.unknown

_1097690732.unknown

_1097690733.unknown

_1097690688.unknown

_1097690725.unknown

_1097690437.unknown

_1097690551.unknown

_1097690577.unknown

_1097690477.unknown

_1097689643.unknown

_1097690073.unknown

_1097689391.unknown

_982831659.unknown