- Konečný stavový automat (Finite-State Machine)
- Výpočetní matematický model s konečným počtem stavů, vstupy, výstupy a přechody.
- Může se nacházet v právě jednom aktivním stavu.
- Stav
- Aktuální krok výpočtu, uložen v paměti obvodu
- Má právě jeden počáteční stav, ve kterém se nachází po spuštění (znázorněn šipkou z puntíku).
- Stavy jsou znázorněny „bublinami“ s názvem (a případně číslem stavu a hodnotami výstupů).
- Přechod
- Reakce na určitou kombinaci vstupů (+ případně hodinový impuls) v aktuálním stavu.
- Znázorněn šipkou mezi stavy s popisem události, která jej spustí (např. kombinace vstupů).
- V praxi realizován jako kombinační logika + klopné obvody (paměť) – jedná se tedy o sekvenční obvod.
- Často využíván při návrhu programů.
- Lze použít na většinu základních řídících úloh.
- Nemusí být postačující na některé složitější výpočetní úlohy neboť jeho paměť je omezena počtem jeho stavů.
- Lze je zanořovat.
- Je možné mít uvnitř stavů další stavové automaty.
- Příklad:
- Hlavní stavový automat – pracovní režimy stroje (automat, manuál, stop, …)
- Vnořený stavový automat – automatický chod stroje v režimu „automat“
- Pro zájemce:
- Podrobnější vysvětlení např. na Wiki.
- Existují složitější výpočetní modely – Zásobníkový automat a Turingův stroj.
Příklad – dopravník s lisem
Jedná se o Moorův automat. Přechody jsou spouštěny změnou vstupu do požadované úrovně. Stavy drží výstupy ve správných logických úrovních.
Příklad – průchod bludištěm
Jedná se o Mealyho automat – výstup je zde závislý jak na aktuálním stavu, tak na vstupní hodnotě. Přechody jsou spouštěny stavem „detektoru stěny“. Každý přechod je zde reprezentován dvojicí „Stav snímače (vstupu) | Hodnota výstupu“ – je-li splněna kombinace „stav + vstup“, dojde k přechodu a po dobu jeho trvání je na výstupu vygenerován příkaz (impulz) k otočení nebo kroku.
Příklad – kódový zámek
Jedná se o Moorův automat. Přechody jsou spouštěny stiskem klávesy.