Documente Academic
Documente Profesional
Documente Cultură
Obiectivele lucrării
Breviar teoretic
20
Fig.3.1. Interfața grafică a mediului de simulare Visual Object Net
Dacă este selectată o poziție, fereastra de proprietăți conține informații precum nume,
variabilă, tip (continuu sau discret), jeton inițial, dimensiune.
Dacă este selectată o tranziție atunci fereastra specifică: nume, întârziere, tip (continuu
sau discret), culoare, dimensiune, prioritate și informație rezervată [22].
Visual Object Net++, versiunea de evaluare a programului, impune o restricție în ceea
ce privește elementele componente; acesta are o limită maximă de 500 de elemente
componente ale unei rețele Petri.
21
Fig. 3.2. Interfața programului PIPE
Pentru a crea o nouă rețea Petri există următoarele modalități: dând click pe butonul
„Create a new Petri net” ( ) din bara de taskuri, prin apăsarea combinației de taste Ctrl+N
sau prin selectarea opțiunii New din meniul File. Noua rețea Petri va fi încărcată în spațiul de
lucru și va avea un nume unic dat în mod implicit (pentru a-i schimba numele aceasta va
trebui salvată). Atunci când în program sunt deschise mai multe rețele Petri, ele vor apărea în
bara de tab-uri de deasupra spațiului de lucru, selectarea unui tab echivalând cu selectarea
uneia dintre rețelele Petri deschise.
Deschiderea unei rețele Petri salvată anterior se realizează prin apăsarea butonului
“Open” ( ) din bara de taskuri sau prin apăsarea combinației de taste Ctrl+O. Programul
PIPE salvează rețelele Petri create în fișiere în format XML prin alegerea opțiunii Save din
meniul File sau dând click pe butonul “Save” ( ) din bara de taskuri. Bara de taskuri
22
Pentru a adăuga sau pentru a elimina un jeton dintr-o poziție va trebui să se selecteze
butonul “Add a token” ( ), respectiv “Delete a token” ( ) din bara de taskuri și să se dea
click pe poziția în care se dorește adăugarea, respectiv ștergerea jetonului..
Programul PIPE permite folosirea jetoanelor colorate. Pentru a putea alege un anumit
tip de jeton va trebui ca mai întâi să se dea click pe butonul “Specify tokens” ( ) din bara de
taskuri și să se activeze respectivul tip, din fereastra care va apărea pe ecran (figura.3.4a).
Pentru a selecta ce tip de jeton se introduce/se șterge într-o/dintr-o poziție, va trebui să se dea
click pe meniul de tip “drop-down” plasat în bara de taskuri lângă butonul “Delete a token”
(figura 3.4b).
a) b)
Fig.3.4. Alegerea tipului de jeton
Similar, poate fi adăugată o nouă tranziție, selectând din bara de taskuri fie
23
Fig.3.5. Editarea unei tranziții
taskuri arcul normal (săgeata cu vârful ascuțit - ), sau arcul inhibitor (săgeata cu vârful
rotund - ) si apoi se dă click pe componentele care trebuie sa fie unite prin arcul respectiv.
Cu ajutorul arcului normal se poate conecta fie o poziție de o tranziție, fie o tranziție
de o poziție. Cu autorul arcului inhibitor se poate doar conecta o poziție de o tranziție, iar
aceasta se va executa doar în cazul în care poziția nu conține nici un jeton.
Când se adaugă un arc și se dă click într-un spațiu gol, automat se vor adăuga puncte
de-a lungul traseului arcului, iar prin apăsarea butonului Shift se vor crea puncte de curbură
ale arcului. Un exemplu de desenare un arc este prezentat în figura 3.6a. Când se apasă tasta
ESC în timpul creării arcului, acesta va fi anulat. Ponderea unui arc poate fi un număr static
sau o funcție. Se poate edita ponderea arcelor dând click dreapta pe arc și selectând opțiunea
“Edit weight”; pe ecran se deschide o fereastră de dialog cu ponderea respectiva (figura 3.6b).
a) b)
Fig. 3.6. Editarea ponderilor
24
Modul animație
Pentru a putea executa tranzițiile dintr-o rețea Petri se comuta în modul animație -
click pe butonul “Toggle Animation Mode” ( ) din bara de taskuri. Pentru a reveni din
modul animație trebuie să se dea din nou click pe butonul “Toggle Animation Mode”.
Tranzițiile active sunt evidențiate cu roșu (figura 3.7); există trei moduri de executie:
click pe tranziția care se dorește a fi executată;
Mediul de simulare PIPE oferă diferite module de analiză a rețelelor Petri. Acestea se
găsesc în zona din stânga a ecranului.
Caracteristicile principalelor module de analiză ale programului PIPE vor fi prezentate
in sectiunea de aplicații.
Aplicații
Se consideră rețeaua Petri simplă, care conține 3 poziții și 3 tranziții (figura 3.8).
25
Rezultatele analizei retelei Petri folosind modulul Classification sunt prezentate in
figura 3.9; pe baza conexiunii dintre poziții și tranziții, acest modul clasifică rețeaua Petri în
următoarele categorii: State Machine, Marked Graph, Free Choice Net, Extended Free
Choice Net, Simple Net și Extended Simple Net (figura 3.9).
Modulul Comparison realizează o comparație între două rețele Petri, pe baza fișierelor
lor XML. În funcție de opțiunile de comparare selectate initial, vor fi indicate componentele
identice și componentele diferite.
În figura 3.10 a fost realizată o comparație între rețeaua Petri din figura 3.7 și rețeaua
Petri din figura 3.8. Opțiunile de comparare au fost numărul de jetoane ale pozițiilor,
capacitatea maximă a pozițiilor, numele tranzițiilor și prioritatea tranzițiilor.
26
Fig. 3.11. Rezultatele modulului Reachability graph
State space analysis (figura 3.12) oferă informații referitoare la rețeaua Petri:
conectivitatea (bounded state), existența interblocărilor (deadlock state) și siguranța (safe
state), care ajută la determinarea proprietăților calitative ale rețelei Petri. În cazul existenței
interblocărilor, modulul va afișa cea mai scurtă cale care duce la această situație.
27
3. Piesa este descărcată de pe M1, cu ajutorul lui R1, în D1;
4. Piesa așteaptă în D1;
5. Piesa este luată din D1 și încărcată automat pe M2;
6. Piesa este prelucrată pe M2;
7. Piesa este descărcată de pe M2 cu ajutorul lui R2 și transportată la ieșire.
La ieșirea 1, PF1 este desprinsă de pe paletă, iar paleta goală este trimisă la intrarea 1.
Fluxul tehnologic de prelucrare a pieselor PB2 constă în următoarea succesiune de
operații, care produce piese finite PF2, livrate la ieșirea 2:
1. Piesa fixată pe o paletă este încărcată automat pe M1;
2. Piesa este prelucrată pe M1;
3. Piesa este descărcată de pe M1 cu ajutorul lui R1 în depozitul D2;
4. Piesa așteaptă în D2;
5. Piesa este luată din D2 și încărcată automat pe M3;
6. Piesa este încărcată pe M3;
7. Piesa este descărcată de pe M3 cu ajutorul lui R2 și transportată la ieșire.
La ieșirea 2, PF2 este desprinsă de pe paletă, iar paleta goală este trimisă la intrarea 2.
Intrare 1 Intrare 2
Fixare pe Fixare pe
Mașina 1 palete
palete M1
Depozit1 Depozit2
D1 D2
Palete goale Palete goale
Robot 1
Mașina 2 Mașina 3
M2 M3
Robot 2
28
Etapa 1 – Sinteza descendentă
Fig. 3.14. Modelul global al succesiunii operaţiilor, considerat punct de plecare în rafinarea poziţiilor
Se rafinează poziţiile p1a, p1c, p2a, p2c utilizând blocuri P de tipul modulelor standard
prezentate în figura 3.15, astfel:
Poziţia p1a este înlocuită prin blocul P de operaţii paralele din figura 3.15 a)
Poziţia p2a este înlocuită prin blocul P de operaţii secvenţiale din figura 3.15 b)
Poziţia p1c este înlocuită prin blocul P de operaţii secvenţiale din figura 3.15 c)
Poziţia p2c este înlocuită prin blocul P de operaţii secvenţiale din figura 3.15 d).
Fig. 3.15. Blocurile P utilizate în rafinarea poziţiilor reţelei Petri din figura 3.14
a) Rafinarea lui p1a; b) Rafinarea lui p2a; c) Rafinarea lui p1c; d) Rafinarea lui p2c
29
În urma acestor rafinări rezultă modelul complet al succesiunii operaţiilor reprezentat
prin reţeaua Petri din figura 3.16.
Poziţiile p1b şi p2b din figura 3.14, care modelează aşteptarea în depozitele D1 şi D2,
nu necesită nici o rafinare, ele fiind redenumite, în figura 3.16, drept p13 şi respectiv p23,
pentru a utiliza o notaţie uniformă.
Fig. 3.16. Modelul complet al succesiunii operaţiilor, rezultat în urma etapei de sinteză descendentă,
prin rafinarea poziţiilor reţelei din figura 3.2 cu ajutorul blocurilor P din figura 3.15
A doua etapă (sinteza ascendentă) permite ataşarea poziţiilor care modelează resursele.
Pasul 1. Se ataşează resursele specifice nepartajate:
Pentru fluxul PB1 → PF1: M2 (modelată prin p14r);
Pentru fluxul PB2 → PF2: M3 (modelată prin p24r).
Pasul 2. Se ataşează resursele de stocare.
Subpasul 2.1. Se ataşează resursele de stocare nepartajate D1 (modelată prin p13r) şi
D2 (modelată prin p23r), rezultând reţeaua Petri din figura 3.17, care este viabilă,
mărginită şi reversibilă.
Pasul 3. Se ataşează resursele specifice partajate.
Subpasul 3.1. Se ataşează resursele specifice partajate paralel, în maniera următoare:
Maşina M1, modelată prin p1, împreună cu perechile de tranziţii {(t11, t13), (t21, t23)}
formează o excludere mutuală paralelă;
Robotul R1, modelat prin p2, împreună cu perechile de tranziţii {(t12, t13), (t22, t23)}
formează o excludere mutuală paralelă;
30
Robotul R2, modelat prin p3, împreună cu perechile de tranziţii {(t15, t16), (t25, t26)}
formează o excludere mutuală paralelă. Rezulta reteaua reprezentată în figura 3.18.
Fig. 3.17. Modelul rezultat după Paşii 1 şi 2 ai etapei de sinteză ascendentă (ataşarea resurselor
nepartajate M2, M3 şi de stocare D1, D2)
Fig. 3.18. Modelul rezultat după Subpasul 3.1 al etapei de sinteză ascendentă (ataşarea resurselor
specifice partajate paralel, M1, R1 şi R2)
31
Pentru t12:
IF (Prelucrare pe M1 este completă and R1 este disponibil) THEN (alocă R1 and începe
Descărcare de pe M1)
Pentru t13:
IF (Descărcare de pe M1 este completă and Spaţiu în D1 este disponibil) THEN
(eliberează M1 and eliberează R1 and alocă Spaţiu în D1 and începe Stocare în D1)
Pentru t14:
IF (M2 este disponibilă) THEN (eliberează Spaţiu în D1 and alocă M2 and începe
Prelucrare pe M2)
Pentru t15:
IF (Prelucrare pe M2 este completă and R2 este disponibil) THEN (alocă R2 and începe
Descărcare de pe M2 şi eliberare paletă)
Pentru t16:
IF (Descărcare de pe M2 şi eliberare paletă este completă) THEN (eliberează M2 and
eliberează R2 and eliberează Paletă 1)
Pentru t21:
IF (Paletă 2 este disponibilă and M1 este disponibilă) THEN (alocă Paletă 2 and alocă
M1 and începe Prelucrare pe M1)
Pentru t22:
IF (Prelucrare pe M1 este completă and R1 este disponibil) THEN (alocă R1 and începe
Descărcare de pe M1)
Pentru t23:
IF (Descărcare de pe M1 este completă and Spaţiu în D2 este disponibil) THEN
(eliberează M1 and eliberează R1 and alocă Spaţiu în D2 and începe Stocare în D2)
Pentru t24:
IF (M3 este disponibilă) THEN (eliberează Spaţiu în D2 and alocă M3 and începe
Prelucrare pe M3)
Pentru t25:
IF (Prelucrare pe M3 este completă and R2 este disponibil) THEN (alocă R2 and începe
Descărcare de pe M3 şi eliberare paletă)
Pentru t26:
IF (Descărcare de pe M3 şi eliberare paletă este completă) THEN (eliberează M3 and
eliberează R2 and eliberează Paletă 2)
32
Fig. 3.19. Implementarea SFF în PIPE
33
Probleme propuse
1. Pe baza analizei reţelei Petri obţinute, comentaţi situaţiile contextuale care pot
genera blocaje, experimentând diverse scenarii.
2. Modificaţi descrierea funcţionării SFF considerând timpi caracteristici pentru:
- operaţiile de prelucrare efectuate pe cele trei maşini M1, M2 si M3;
- operaţiile de transport a pieselor de către roboţii R1,R2 intre depozitele
interoperaţionale D1, D2 și masinile de lucru M1, M2, M3;
- posibile defectări ale maşinilor, roboţilor sau benzilor transportoare;
Construiţi reţelele Petri temporizate aferente fiecarui scenariu și refaceţi simularea in
mediile Visual Object Net++ si PIPE.
34