s n h m r u
i

Vom Automat zum Programm

Wie mache ich aus dem Automatenmodell ein MakeCode-Programm?

Ausgangspunkt ist jetzt das fertige und funktionierende Automatenmodell des Personenzählers. Alle funktionalen Entscheidungen sind im Modell berücksichtigt. Was passiert z.B., wenn eine Person in der Tür wieder umdreht?

Hier kannst du nochmals das komplette System simulieren und dich davon überzeugen, dass alle "Sonderfälle" abgedeckt sind.

Der komplette Personenzähler als Automatensimulation

Zustände nummerieren und Übergänge ignorieren

Für die Umsetzung im Programm müssen alle Zustände zunächst eine Nummer bekommen. Der Startzustand bekommt dabei die Nummer 0. Die aktuelle Zustandsnummer des Systems kann dann später in MakeCode in einer Variablen "Zustand" gespeichert werden.

Bild des vereinfachten Automatenmodells

Modell vereinfacht

Zudem können die Übergänge, bei denen sich der Zustand nicht ändert, ignoriert werden, da das System letztendlich nur auf Zustandsänderungen wartet. Dadurch wird das Automatenmodell deutlich vereinfacht.

Umsetzung in MakeCode

Modellübergang Z0 nach Z1 Das Automatenmodell muss nun 1:1 in MakeCode umgesetzt werden. Der hier abgebildete Ausschnitt des Automatenmodells soll dies verdeutlichen. Er ist wie folgt zu lesen: "Wenn der Automat im Zustand Z0 ist und der linke Sensor einen Wert kleiner als z.B.80 meldet (L_nah tritt ein), dann geht der Automat in den Zustand Z1 über."
Daraus ergibt sich direkt der abgebildete MakeCode-Block für den Zustandsübergang. Das Programm muss dabei ständig (in einer Dauerhaft-Schleife) prüfen, ob die Bedingungen gerade eintreten.

MakeCode Z0 nach Z1 Beachte dabei, dass der linke Sensor mit der Datenleitung P2 verbunden ist. Beim rechten Sensor wäre entsprechend C16 (rechter Grove-Anschluß) zu wählen. Da der Übergang keine Ausgabe hat ("-"), muss an der Variablen, die die Personen zählt, hier nichts verändert werden.

Aufgabe: Programmblock im Modell zuordnen

Ordne den abgebildeten MakeCode-Block dem passenden Übergang im Automatenmodell zu. Begründe dabei auch die Änderung an der Variablen "personen". MakeCode Z3 nach Z0

Suche

v
14.1.7.11.1.3 Vom Automat zum Programm
Kopieren durch Anklicken

Rückmeldung geben