LabVIEWForum.de
Statemaschine - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Statemaschine (/Thread-Statemaschine)



Statemaschine - logitech1975 - 05.12.2007 20:27

Hallo,

ich habe ein paar Fragen zu einer Statemaschine. Meine gebaute Statemaschine habe ich als Anhang eingefügt.

Ich möchte mit der Statemaschine SUB VI´s öffnen. Dies klappt auch soweit. Wenn ich aber den Stopp Buttom drücke passiert nichts. Wie kann ich es hinkriegen, das mein SUB VI´s sofort stoppt, wenn ich den Stopp Buttom drücke?

Mit einem anderem SUB VI´s öffne ich eine .exe Datei. Meine Frage dazu, ist es möglich die .exe Datei auch wieder mit dem Haupt VI zu schließen, oder bleibt mir nur die Möglichkeit das Programm von Hand zu schließen?

Ist es richtig, das ich in den Cases die Ereignisse "Starten.... bei Wertänderung" eingeben habe? Als bei Starten der SUB VI´s bei Knopfdruck?

Ich habe die SUB VI´s nicht angehängt.

Das wäre es ersteinmal.
Wie immer vielen Dank für die Arbeit die Ihr Euch macht.

Gruss

(VI LV 8.2)


Statemaschine - jg - 05.12.2007 22:28

Mal was Generelles: Mehrere Event-Structures innerhalb eines VI's sind mit extremer Vorsicht zu geniessen und sogar von NI selber nicht empfohlen. In der Regel handelt man sich da immer irgendwelche Hänger ein, da sich garantiert irgendwo die Event-Strukturen untereinander in die Quere kommen. ALSO, Finger davon lassen.

MfG, Jens


Statemaschine - IchSelbst - 05.12.2007 22:52

' schrieb:Wenn ich aber den Stopp Buttom drücke passiert nichts.
Würde ich auch so sehen. Beachte, was Jens G. geschrieben hat. Ob es weiterhin überhaupt geht, dass in unterschiedlichen Eventcases das selbe Ereignis - hier STOPP - steht, das möchte ich anzweifeln.

Zitat:Wie kann ich es hinkriegen, das mein SUB VI´s sofort stoppt, wenn ich den Stopp Buttom drücke?
Frage: Der Stopp-Button befindet sich nicht in dem SubVI, das aber solange laufen soll, wie der Stopp-Button nicht gedrückt wurde? Dann musst du den Button im SubVI abfragen. Was bedeutet, dass du z.B. die Referenz des Stopp-Buttons an das SubVI übergeben musst.

Zitat:Meine Frage dazu, ist es möglich die .exe Datei auch wieder mit dem Haupt VI zu schließen?
Im Prinzip ja: WM_QUIT an die Anwendung senden - was aber nicht im Sinne von LV ist. Also bleibt dir nur das manuelle beenden. [*denk*] Es sein die EXE ist eine LV-Applikation. Dann ginge da was.


Statemaschine - Lucki - 06.12.2007 09:20

Mehrere Ereignisknoten in einem Vi funktionieren spätestens dann nicht, wenn bei einem dieser Knoten - oder wie hier bei Dir sogar bei allen - timeout = unendlich gesetzt ist.
Das "funktioniert" dann so: Es wird bei einem Knoten auf ein entsprechendes Eregnis gewartet, und während dieser Zeit wird der Rest des VIs- und darunter fallen auch die anderen Ereigniskoten mit ihren in dieser Zeit anfallenden Ereignissen - blockiert. Und wenn das Stop-Ereignis nicht zufällig in dem Knoten ist, bei dem gewartet wird, dann funktioniert nicht einmal das.
Überigens: Jeder, der mit Ereignisknoten anfängt zu üben, macht denselben Fehler: Er denkt, bei nicht angeschlossener Sanduhr in der linken oberen Ecke hat man timeout=0. Falsch, dann ist es unendlich, und der Rest des VIs ist immer - solange kein Ereignis entrifft - blockiert.


Statemaschine - logitech1975 - 06.12.2007 15:32

Danke,

hat schon ein weiter geholfen. Werde noch ein wenig ändern müssen.

Gruss