LabVIEWForum.de
SubVI unabhängig ausführen ? * neuer Thread - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: SubVI unabhängig ausführen ? * neuer Thread (/Thread-SubVI-unabhaengig-ausfuehren-neuer-Thread)

Seiten: 1 2


SubVI unabhängig ausführen ? * neuer Thread - gottfried - 25.11.2010 16:58

Hallo,

ich fange einen neuen Thread an weil ich glaube das ich mit dem Thread "SubVI unabhängig ausführen" mit der Fragestellung daneben geschossen habe (nicht das machen kann was ich wollte).

Also mein Grundproblem: ich möchte dem Nutzer in einer Situation (Fehler, Einstellung überarbeiten, ...) ein Fenster mit einer Message (ähnlich OneButtonDialog nur größer) zeigen. Außerdem soll der Siganlturm angesteuert werden (via Optokoppler zB. Blau geblinkt werden mit einem Digitalausgang). So weit so einfach.

Manchmal soll aber das Programm nicht auf die Userreaktion warten sondern einfach weiterlaufen und die Message (oder mehrere) bleiben am Bildschirm bis zur Quittierung stehen. Diese möglichen Messages können von den verschiedensten Programmebenen kommen.

Mein erster Ansatz war ein VI das ganz konventionell wartet auf das User-OK und damit den Ablauf des restlichen Programms stoppt.

Mein zweiter Ansatz - siehe "SubVI unabhängig ausführen"
1. ich starte das "alte" Message VI via "unabhängig ausführen" (siehe unten - bringe ich nicht zusammen Error 1000)
2. der User sagt irgendwann OK
3. aber wer beendet dann diese VI?

Und da habe ich zunächst ein basic Problem da ich das VI nicht erfolgreich rufen kann weil ich immer "The VI is not in a state compatible with this operation." bekomme

Ich glaube ich denke viel zu kompliziert, da muss es etwas einfacheres geben.

Bitte um einen Hinweis

Danke

Gottfried

PS.: inzwische sehe ich auch
http://lavag.org/topic/2986-calling-a-vi-u...this-operation/
aber ich verstehe das nicht wie ich da Parameter übergebe
ditto
http://digital.ni.com/public.nsf/allkb/DE4...62565FB00592B31


SubVI unabhängig ausführen ? * neuer Thread - Martin Heller - 26.11.2010 08:36

' schrieb:Mein zweiter Ansatz - siehe "SubVI unabhängig ausführen"
1. ich starte das "alte" Message VI via "unabhängig ausführen" (siehe unten - bringe ich nicht zusammen Error 1000)
2. der User sagt irgendwann OK
3. aber wer beendet dann diese VI?


Was ist wenn du eine while-Schleife mit deinem OK-Button beendest und dann das sub programmatisch beendest/schliesst

lg Martin


SubVI unabhängig ausführen ? * neuer Thread - Matze - 26.11.2010 08:56

Ich habe beim anderen Thema aufgehört zu lesen, da das einen so verwirrenden Verlauf genommen hat. Ich kann daher nicht genau sagen, was dort genannt wurde.

Ich würde folgendes machen:
Du nimmst eine parallele While-Schleife, die nichts macht außer die Dialoge anzuzeigen, die das Programm nicht unterbrechen sollen.
Über Melder/Queues kannst du von außen mitteilen, dass die Schleife einen Dialog anzeigen soll. Dann wird u.U. diese Schleife bis zur Quittierung unterbrochen, aber das Programm selbst läuft weiter, da es parallel zur Dialog-Schleife ausgeführt wird.


SubVI unabhängig ausführen ? * neuer Thread - gottfried - 26.11.2010 09:26

Das ist gut - werde ich probieren.

Was mich wundert ist dass man da relativ tief in die Trickkiste greifen muss. Die Problemstellung ist doch nicht exotisch - oder?


SubVI unabhängig ausführen ? * neuer Thread - Achim - 26.11.2010 09:48

' schrieb:Was mich wundert ist dass man da relativ tief in die Trickkiste greifen muss. Die Problemstellung ist doch nicht exotisch - oder?

Ich mache das über VI Server immer so:
http://www.labviewforum.de/index.php?s=&am...ost&p=12335

Das gestartete SubVI ist völlig frei zu gestalten...d.h. du kannst es mit "OK" beenden oder über einen Timer oder z.B. auch über einen Notifier aus deinem Hauptprogramm..

A.


SubVI unabhängig ausführen ? * neuer Thread - unicorn - 26.11.2010 10:14

Möchtest Du nur ein Pop-Up VI haben, das immer nur die letzte Meldung anzeigt? Dann müss das VI über eine Queue Meldungen sammeln und anzeigen. Zusätzlich muss das VI sein FP öffnen, falls es zu ist und eine neue Meldung kommt. Das VI wird zu Beginn des Hauptprogramms mit geschlossenen FP gestartet.

Sollen alle Meldungen verfügbar sein, so müsste das VI die Meldungen sammeln und in einer Liste anzeigen, Wenn der Benutzer nun ein Element in der Liste anklickt, werden Details gezeigt. Jetzt braucht es noch eine paar Regeln oder Knöpfe, um die Meldungen wieder aus der Liste zu bekommen.

Wenn jede Meldung in einem eigenen Pop-Up-VI erscheinen soll, so müsste man das VI mit jeder Meldung klonen, so dass viele Kopie im Speicher mit eigenen Zuständen existieren können. Das müsste über die VI-Properties einzurichten sein.


SubVI unabhängig ausführen ? * neuer Thread - unicorn - 26.11.2010 10:17

' schrieb:Sollen alle Meldungen verfügbar sein, so müsste das VI die Meldungen sammeln und in einer Liste anzeigen, Wenn der Benutzer nun ein Element in der Liste anklickt, werden Details gezeigt. Jetzt braucht es noch eine paar Regeln oder Knöpfe, um die Meldungen wieder aus der Liste zu bekommen.

lässt sich mit

' schrieb:Ich würde folgendes machen:
Du nimmst eine parallele While-Schleife, die nichts macht außer die Dialoge anzuzeigen, die das Programm nicht unterbrechen sollen.
Über Melder/Queues kannst du von außen mitteilen, dass die Schleife einen Dialog anzeigen soll. Dann wird u.U. diese Schleife bis zur Quittierung unterbrochen, aber das Programm selbst läuft weiter, da es parallel zur Dialog-Schleife ausgeführt wird.

kombinieren und als Infobereich unten am Fenster des HauptVIs einbauen.


SubVI unabhängig ausführen ? * neuer Thread - gottfried - 06.12.2010 20:53

Ja, das habe ich gemacht - allerdings finde ich es nervig in den Applikationen immer eine frei laufende Schleife für die Meldungen einzubauen - aber es läuft.

Wenn jemand Zeit hat würde mich nochj interessieren wie man denn nun wirklich eine unabhängig laufendes VI mit Parametern startet....

Danke Euch

Gottfried


SubVI unabhängig ausführen ? * neuer Thread - dimitri84 - 06.12.2010 23:08

' schrieb:Wenn jemand Zeit hat würde mich nochj interessieren wie man denn nun wirklich eine unabhängig laufendes VI mit Parametern startet....
Das mit dem Starten ist doch geklärt, oder?

Das mit den Paramtern geht auch mit 'ner Node (musst nur den Namen des Controls kennen).
[attachment=31082]





Gruß dimitri


SubVI unabhängig ausführen ? * neuer Thread - gottfried - 07.12.2010 09:13

OK ich versuche es

Danke

Gottfried