Użycie grafów przejść to prawdopodobnie najbardziej funkcjonalny sposób opisu zachowania systemów automatyki. Szczególnie podczas projektowania złożonych systemów, w których występuje wiele rozmaitych zdarzeń.
Rys. 1. Klasyczny diagram stanów automatu sprzedającego wodę sodową. Przedstawiony na rysunku diagram składa się z pięciu stanów
i siedmiu tranzycji.
Grafy stanów (statecharts) stanowią bardzo zaawansowane narzędzie programowania. Dzięki cechom i mechanizmom, takim jak: hierarchiczność, zbieżność czy obsługa zdarzeń, język ten zyskuje olbrzymią łatwość programowania nawet bardzo złożonych zadań sterowania. Ten sposób jest szczególnie użyteczny podczas projektowania wbudowanych systemów sterowania czy rozległych systemów komunikacyjnych (sieciowych). Ten sposób modelowania jest coraz częściej wykorzystywany w połączeniu z innymi językami programowania sterowników ? sprawia to, że jego użycie jest jeszcze bardziej efektywne.
Statecharts (graf przejść / stanów) został wynaleziony przez Davida Harela z Weizmann Institute of Science w latach 80-ych ubiegłego wieku. Nazwa pochodzi od klasycznych diagramów stanu. Zgodnie z tym, co mówi Harel, głównym celem opracowania języka grafu stanów było rozszerzenie tradycyjnego diagramu stanów-tranzycji o funkcje obsługi zadań hierarchicznych, zbieżnych oraz komunikacji między zadaniami. W kolejnych latach na rynku pojawiło się kilka narzędzi programistycznych, w których możliwe jest projektowanie tego typu diagramów, jak na przykład Stateflow lub SimEvents dla programowania Matlab firmy Mathworks czy LabView Statechart Module National Instruments. Dość istotnym jest fakt, że język grafu stanów został zaadoptowany jako diagram zachowania układu w ramach języka UML (Unified Modelling Language). Pisaliśmy o nim między innymi w artykułach Agnieszki Lasoty w numerze listopadowym (?Odświeżanie UML?) orazgrudniowym (?UML: modelowanie procesu technologicznego montażu?). Język UML jest obecnie szeroko stosowany dla celów modelowania wbudowanych systemów sterowania.