LabVIEWForum.de
Aufruf über Referenz - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Aufruf über Referenz (/Thread-Aufruf-ueber-Referenz)

Seiten: 1 2 3


Aufruf über Referenz - finalr - 29.08.2013 07:01

Hallo,

ich hab ein kleines Problem mit dem VI "Aufruf über Referenz".
Das Szenario:
Ein Prüfablauf-VI wird mittels Aufruf über Referenz gestartet. Das klappt auch.

Nun möchte ich gerne vom aufrufenden VI über einen Cancel-Button den Prüfablauf stoppen können. Mein Problem ist jedoch, dass das aufrufende VI während der Abarbeitung des Prüfablaufs nicht gereagiert. Erst nach Ablauf des Prüfablaufs kann ich das abrufende VI wieder bedienen.

Gibt es eine Einstellung, sodass das aufrufende VI während der Abarbeitung bedienbar ist? Bzw. vielleicht hat jemandeine Idee, wie ich den Prüfablauf noch stoppen könnte.

Gruss Daniel


RE: Aufruf über Referenz - Y-P - 29.08.2013 07:14

Hab hier schnell mal ein altes "Call by Reference" - Bsp. um einen Stop-Knopf erweitert.
Hoffentlich meintest Du auch "Call by Reference". Ich habe die deutsche Version nämlich nicht.

[attachment=46059][attachment=46060][attachment=46061]

Gruß Markus


RE: Aufruf über Referenz - finalr - 29.08.2013 07:41

Vielen Dank für deine Antwort. So ähnlich habe ich das auch gelöst. Smile
Das Problem ist nicht das Beenden an sich, sondern das sich das Haupt-VI nicht bedienen lässt, in der Zeit, wo der Prüfablauf abläuft.
Konkrekt: Das Haupt-VI reagiert nicht auf Buttonklicks oder sonst was. Erst wenn der Prüfablauf fertig ist, dann kann ich den Button wieder drücken bzw. er reagiert wieder.

Im Prüfablauf wird über eine Sequenzstruktur mehrere Messungen abgearbeitet. Ohne While-Schleife oder sonstiges.

Gruss Daniel


RE: Aufruf über Referenz - Y-P - 29.08.2013 07:58

Dann lad' mal Deine VIs hoch.

Gruß Markus


RE: Aufruf über Referenz - finalr - 29.08.2013 08:41

Ich habe dir mal Screenshots gemacht. Es macht glaube ich wenig Sinn, die einzelnen VI's hochzuladen, weil dazu enorm viele andere Sub-VI's nötig wären.

Ich hoffe damit kann man was anfangen.

Gruss Daniel


RE: Aufruf über Referenz - Trinitatis - 29.08.2013 09:14

Hallo Daniel,

in deinem Aufruf über Call by reference könntest du noch die Referenz eines Stop-Knopfes mit übergeben, oder du fragst deine globale Variable in diesem aufgerufenen VI auch mit ab, um darauf zu reagieren.

Gruß, Marko


RE: Aufruf über Referenz - finalr - 29.08.2013 09:21

Hallo Marko,

der Button Exit wird im Prüfablauf via globale Variabel abgefragt. Funktioniert auch aber ich kann das Haupt_VI nicht bedienen, sobald der Prüfablauf läuft (eingefroren).

Gruss Daniel


RE: Aufruf über Referenz - jg - 29.08.2013 09:24

So wird das nichts. "Call by Reference" ist wie ein normaler SubVI Aufruf, du bleibst solange in der Event-Struktur hängen (MERKE: Lange andauernde Prozesse gehören NICHT in die Event-Struktur), bis das VI beendet ist. Deshalb wird im Aufrufer-VI auch nichts mehr abgearbeitet.

Lösungen:
1) Der SubVI Aufruf wird parallel zur Event-Struktur in einer eigenen Schleife aufgerufen.
2) Start des VI per Invoke Node "Run VI"
[attachment=46068]
3) Ab LabVIEW gibt es auch asynchrones Aufrufen von VIs: http://zone.ni.com/reference/de-XX/help/371361H-0113/lvconcepts/asynchronous_vi_calls/

Gruß, Jens


RE: Aufruf über Referenz - Trinitatis - 29.08.2013 09:39

(29.08.2013 09:21 )finalr schrieb:  Hallo Marko,

der Button Exit wird im Prüfablauf via globale Variabel abgefragt. Funktioniert auch aber ich kann das Haupt_VI nicht bedienen, sobald der Prüfablauf läuft (eingefroren).

Gruss Daniel

Hallo Daniel,

du kannst dem Event (Startknopf gedrückt) per Haken sagen, dass das FrontPanel eingefroren sein soll. Ich tippe mal, dass diese Einstellung gewählt ist.

Gruß, Marko


RE: Aufruf über Referenz - jg - 29.08.2013 09:46

@Marko: Haken oder nicht, das nützt bei dem Aufbau nichts. Wie schon gesagt, Call by Reference ist identisch zu einem SubVI Aufruf. Die Node wartet also, bis das SubVI abgearbeitet ist. Erst dann wird die Event Struktur beendet und erst danach kann ein weiteres Event verarbeitet werden.

THINK Dataflow.

Gruß, Jens