Hi
So ich wusste jetzt nicht wirklich wohin mit dem Thema - deswegen einfach mal hier.
Anbei sind 2 Beispielprogramme für eine kleine Statemaschine. Das ganze kann noch durch mehrere States ausgebaut werden und somit ziemlich effektiv eingesetzt werden.
Die Programme unterscheiden sich nur durch die "Queue-Funktion" (Element Einfügen) und (Element am Anfang Einfügen) im State (Dateibearbeitung).
Wenn ich nun im Frontpanel die Taste (nächste Messung) z.B. 10 mal schnell hintereinander drücke möchte ich das der "State" (Messwertvorgabe) immer zwingend nach dem "State" (Dateibearbeitung) abläuft. Deswegen auch die "Queue-Funktion (Element am Anfang Einfügen).
Beim Statemachine.vi funktioniert das auch so was man am blinken der LED's sieht. Zum Vergleich bei Statemachine2.vi läuft das völlig unkoordiniert ab.
Meine Frage nun zur Diskussion:
Wie kann ich mit solch einer Struktur sicherstellen das ein bestimmter State "immer" und "zwingend" nach einem anderen State abläuft. Es könnten ja theoretischer Weise bei größeren Programmen noch weitere Elemente in die Queue verschoben werden die dann auch wieder die Reihenfolge durcheinander bringen.
Ist das überhaupt möglich oder muss man solchen Code besser in einen State programmieren - z.B. als Sequenzstruktur?
Bei einem weit komplexeren Code - denn ich hier leider nicht einstellen kann - hab ich nämlich genau das Problem das die State unkoordiniert angefahren werden was nicht der Fall sein darf.
Ok - hoffe ich habe mich deutlich ausgedrückt und freu mich auf eure Antworten.
Viel Spass mit denn Codes. Ist vielleicht auch so für den ein oder anderen nützlich.
Statemachine.vi (Größe: 18,89 KB / Downloads: 290)
Statemachine2.vi (Größe: 18,86 KB / Downloads: 234)
Das braucht Ihr eventuell noch -
StateEnum_short_.ctl (Größe: 4,25 KB / Downloads: 234)
Gruß Martin