Documente Academic
Documente Profesional
Documente Cultură
2
Chișinau 2023
Lucrare de laborator 9
Tema: Implementarea temporizărilor
Introducere
- Consideratii teoretice –
Un automat finit (AF) sau o "maşină cu un număr finit de stări" este un model de
comportament compus din stări, tranziţii şi acţiuni. O stare stochează informaţii
despre trecut, adică reflectă schimbările intrării de la iniţializarea sistemului până în
momentul de faţă. O tranziţie indică o schimbare de stare şi este descrisă de o condiţie
care este nevoie să fie îndeplinită pentru a declanşa tranziţia. O acţiune este o
descriere a unei activităţi ce urmează a fi executată la un anumit moment.
Există câteva tipuri de acţiuni:
Acţiune de intrare
o executată la intrarea într-o stare
Acţiune de ieşire
o executată la ieşirea dintr-o stare
Acţiune de intrare de date
o acţiune executată în funcţie de starea prezentă şi de datele de intrare
Acţiune de tranziţie
o acţiune executată în momentul unei tranziţii
3
Ca si o clasificare putem distinge două grupuri de automate finite:
Acceptoare
Transductoare
Maşina Acceptoare,dă o ieşire binară, fie da, fie nu, reprezentând răspunsul la
întrebarea "Intrarea este acceptată sau nu de maşină?". Maşina poate fi descrisă şi ca
definitorie pentru un limbaj, în cazul de faţă limbajul definit ar conţine toate cuvintele
acceptate de maşină şi nici unul din cele neacceptate. Toate stările automatului se
clasifică în stări acceptante (finale) sau neacceptante. Dacă la momentul terminării
procesării întregului şir de intrare automatul este într-o stare finală, atunci intrarea este
acceptată, altfel nu. Ca o regulă, intrarea este compusă din simboluri (caractere); nu se
folosesc acţiunile. Exemplul din figura de mai jos arată un automat finit care acceptă
cuvântul "bine". În acest AF, singura stare finală este starea Succes.
Masinile Transductoare, generează ieşire pe baza unei intrări date şi/sau a unei
stări, folosind acţiuni. Ele sunt folosite în controlul aplicaţiilor.
4
La masinile Transductoare se disting două tipuri:
Maşina Moore
Maşina Mealy
Automatul Moore, foloseşte doar acţiuni de intrare, şi deci ieşirea depinde doar de stare.
Avantajul modelului Moore este simplificarea comportamentului. Exemplul din figura de
mai jos arată automatul Moore care controlează uşa unui ascensor. Maşina de stare
recunoaşte două comenzi: "cmd_deschide" şi "cmd_închide" care declanşează schimbări ale
stării. Acţiunea de intrare (1) în starea "Deschis" porneşte un motor care deschide uşa,
acţiunea de intrare în starea "Închis" declanşează motorul în direcţie opusă, închizând uşa.
Stările "Deschis" şi "Închis" nu efectuează nici o acţiune. Ele doar semnalizează celor din
exterior (eventual altor automate finite) situaţia curentă: "uşa este deschisă" respectiv "uşa
este închisă".
Maşina Mealy foloseşte doar acţiuni de intrare de date, adică ieşirea depinde de
intrare şi de starea curentă. Utilizarea unui AF Mealy conduce adesea la o reducere a
numărului de stări. Exemplul din figura 4 arată un automat Mealy care implementează
acelaşi comportament ca şi cel din exemplul Moore (comportamentul depinde de
modelul de execuţie al AF implementat şi va funcţiona de exemplu pentru AF
virtuale, dar nu pentru AF conduse de evenimente). Există două acţiuni (I:): "porneşte
5
motorul care închide uşa dacă soseşte comanda cmd_închide" şi "porneşte motorul
în direcţie opusă pentru a deschide uşa dacă soseşte comanda cmd_deschide".
6
Aplicaţii FSM (AF)
7
Aplicaţiile software pentru Automate Finite sunt multiple şi de diversitate foarte
largă. În general, pentru a construi aplicaţii software cu automate finite, se folosesc
următoarele concepte:
O aplicaţie software creată pentru a realiza şi simula automate finite, este aplicaţia
Hades JavaFSM, implementată de Universitatea de Informatică din Hamburg.
8
Sistem automat pentru controlul unei parcari, cu semafoare
Pe străzile de acces sunt prevăzute afişoare care indică dacă sunt locuri libere în parcare.
În cazul în care sunt locuri libere iar semaforul indică culoarea verde (acest lucru arată
faptul că nu este loc în parcare), maşina poate înainta. Când automobilul ajunge înaintea
semaforului şi bariera este coborâtă, înseamnă că nu mai sunt locuri în parcare, implicit
culoarea semaforului va fi roşu. După ce a ieşit o maşină, se ridică bariera, semaforul
devine verde, şoferul poate înainta iar în momentul în care acesta ajunge în parcare,
bariera începe să coboare.
9
Implementarea cu aplicaţia Hades Java Webstart
10
Conexiunile se realizează din meniul Edit, cu submeniul Autoconnect object...
Iar setările staţiilor şi tranziţiilor precum şi valorile de intrare se setează din meniul edit
de pe blocul FSM:
11
La conectarea ieşirilor, care se ralizează la fel ca şi intrările, este important să setăm şi
valoarea de ieşire, precum şi (în cazul nostru culoarea LED ului), care indică culoarea
semaforului:
12
Schema finală cu toate componentele incluse, funcţionale arată astfel:
Proiectul se poate dezvolta, astfel încât bariera să aibă rol mai important în sistem
(momentan doar rol de siguranţă şi funcţionare în cazul defectării sistemului), de
exemplu, realizarea unui sistem automat de tarifare (bazat pe card cu microcip), în acest
caz timpul de balansare roşu - verde, trebuie prelungit din program.
13
Concluzie:
Bibliografie
14