26.03.2013, 00:57
Ich möchte ein Konzept für einen Zustandsautomaten vorstellen und würde mich freuen, wenn Ihr mir an der einen oder anderen Stelle ein paar Tipps oder Hinweise geben könntet, wenn etwas an dem Ansatz nicht glücklich gelöst ist.
Stellen wir uns eine Maschine vor, die mehrere Sensoren hat und ein Steuergerät besitzt.
Die LabView-Bedienoberfläche soll mehrere Aufgaben erfüllen - zum einen das Steuern des Steuergerätes (hauptsächlich Eiin- und Ausschalten), zum anderen sollen die Messwerte der Sensoren erfasst, auf dem Bildschirm angezeigt und gespeichert werden.
Mein Ansatz sieht wie folgt aus
Mehrere "Unter"-VI
- zum Bedienen des Steuergerätes
- zum Aufzeichnen der Messwerte aus Sensor 1
- zum Anzeigen der Messwerte von Sensor 2 in einem Graph
In diesen "Unter"-VIs hängen Melder/Queues, mit denen aus dem Basis-VI die einzelnen Prozesse gestartet oder beendet werden können.
Mein Ansatz für den Zustandsautomaten sieht so aus, dass ich im Initialisierungsprozess die drei "Unter"-VIs starte und in separaten Threads laufen (es könnten auch separate while-Schleifen innerhalb des Basis-VI sein, die nicht im Zustandsautomaten sind). Wird z.B. die Taste "Aufzeichnung starten" gedrückt, dann wird der Melder "Aufzeichnung starten" auf TRUE gesetzt. Bei Aufzeichnung beenden analog der Wert auf FALSE.
Das angefügte Bild soll ein "Entwurfsmuster" eines solchen "Unter"-VI darstellen.
Würdet Ihr das mit verschiedenen Prozessen ähnlich handhaben?
Stellen wir uns eine Maschine vor, die mehrere Sensoren hat und ein Steuergerät besitzt.
Die LabView-Bedienoberfläche soll mehrere Aufgaben erfüllen - zum einen das Steuern des Steuergerätes (hauptsächlich Eiin- und Ausschalten), zum anderen sollen die Messwerte der Sensoren erfasst, auf dem Bildschirm angezeigt und gespeichert werden.
Mein Ansatz sieht wie folgt aus
Mehrere "Unter"-VI
- zum Bedienen des Steuergerätes
- zum Aufzeichnen der Messwerte aus Sensor 1
- zum Anzeigen der Messwerte von Sensor 2 in einem Graph
In diesen "Unter"-VIs hängen Melder/Queues, mit denen aus dem Basis-VI die einzelnen Prozesse gestartet oder beendet werden können.
Mein Ansatz für den Zustandsautomaten sieht so aus, dass ich im Initialisierungsprozess die drei "Unter"-VIs starte und in separaten Threads laufen (es könnten auch separate while-Schleifen innerhalb des Basis-VI sein, die nicht im Zustandsautomaten sind). Wird z.B. die Taste "Aufzeichnung starten" gedrückt, dann wird der Melder "Aufzeichnung starten" auf TRUE gesetzt. Bei Aufzeichnung beenden analog der Wert auf FALSE.
Das angefügte Bild soll ein "Entwurfsmuster" eines solchen "Unter"-VI darstellen.
Würdet Ihr das mit verschiedenen Prozessen ähnlich handhaben?