Hallo Jungs Ich bin auf der Suche, nach einer Beschreibung einer solchen. Wie ist sowas aufgebaut und welche Aufgaben, kann ich damit erledigen? Wäre nett, wenn jemand einen Link hat. Im WWW finde ich zwar viele Dokumente, die den Begriff benutzen, aber niemand erklärt den Aufbau. Ist wahrscheinlich alles Basic Know-How, aber mir leider unbekannt. Danke
Eine Zustandsmaschine (als Software) hat einfach verschiedene Zustände und eine große Schleife mit vielen if-Abfragen, in denen steht, unter welchen Bedingungen sie von einem Zustand in den nächsten wechseln darf. Der Zustand selber wird einfach in einer Variablen gespeichert. Tank befüllen: Zustand = Warten do wenn Taste_Start = gedrückt und Tank nicht voll dann Wasser marsch und Zustand = befuellen. wenn Zustand = befuellen und Taste_Stop = gedrueckt, dann Zufluß abschalten und Zustand = Warten wenn Zustand = befuellen und Tank = voll, dann Zufluß abschalten und Zustand = voll. loop Das Ganze kann man auch noch grafisch darstellen, damit kann man schön sehen wann was passieren darf und was nicht. Benutzt wird das z.B. bei Steuerungen, bei Signalauswertung usw. usf. Markus
Danke Markus Ich hatte mir das etwas komplizierter vorgestellt. Aber ist ja auch schön, wenn mal was einfach ist.
Eine professionelle Beschreibung über State-Machines inklusive Source-Beispielen findet sich hier: http://www.embedded.com/shared/printableArticle.jhtml;jsessionid=UIDLBWV1415MWQSNDBCSKHY?articleID=10700829
"Ich hatte mir das etwas komplizierter vorgestellt. Aber ist ja auch schön, wenn mal was einfach ist." Das ist relativ. In der Informatik wird eine Zustandsmaschine sehr wohl formal mathematisch behandelt und dann ist das nicht mehr ganz so trivial. Es hängt halt davon ab, wofür Du das brauchst. Für eine Controller-Anwendung ist das sicherlich nicht notwendig.
Hallo, man kann sowas auch in Hardware bauen. Haben wir vor 14 Jahren im Studium noch gemacht und wurde Zustandsautomat genannt. Das Prinzip: Mittels Flip-Flops oder anderen diskreten Speichern merkt sich die Maschine den Zustand (als Bitset). Im Zustandsdiagramm sind die zulässigen Übergänge definiert - diese werden mittels diskreten Logikbausteinen geschaltet. Was dabei herauskommt lässt sich ähnlich wie das Beispiel von Markus umgangssprachlich beschreiben: wenn Zustand=0100 und Eingang_x=1 und Eingang_y=0 Wechsle in Zustand 0101 Über den Zustand kann man die Ausgänge beschalten, also z.B. eine Anzeige oder einen Motor steuern. Seit es Mikrocontroller zu erschwinglichen Preisen gibt, hat sich das Aufbauen mit diskreten Logikbausteinen aber wohl erledigt... Achim.
Der diskrete Aufbau hat sich garantiert nicht erledigt. Was meinst Du wozu die ganzen programmierbaren Logikbausteine gut sind? Allerdings werden für "langsame" Aufgaben heute sicher Mikrocontroller eingesetzt, wo früher diskrete Logik oder vielleicht ein PAL unumgänglich waren.
Das ist eine gute Methode, um in VHDL "Programme" auf einem FPGA zu programmieren. Ein gutes State-Machine-Beispiel für Mikrokontroller (AVR) ist das Programm, das auf dem AVR-Butterfly-Board läuft. Sourcen sind frei verfügbar. jörn
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.