Beim Öffnen einer Referenz auf ein VI, das asynchron aufgerufen werden soll, müssen Sie entscheiden, ob die Daten des VIs später erfasst werden sollen. In diesem Abschnitt wird beschrieben, wie Sie ein VI asynchron aufrufen und die Ausgabewerte später erfassen. In anderen Programmiersprachen wird dieses Prinzip als Fork-and-Forget bezeichnet. VIs können auch ohne Abfragen der Ausgangswerte aufgerufen werden.

Objekte

Mit Hilfe der folgenden Blockdiagrammobjekte können Sie einen asynchronen VI-Aufruf dynamisch starten und die Ausgabe des VIs zu einem späteren Zeitpunkt erfassen:

Vorgehensweise

Erstellen Sie zum asynchronen Aufrufen eines VIs und späteren Erfassen der Ausgabe das nachfolgend dargestellte Blockdiagramm.



Nachfolgend werden wichtige Einzelheiten zum dargestellten Blockdiagramm erläutert.

Hinweis Alle Options-Flags für die Funktion "VI-Referenz öffnen" sind in der LabVIEW-Hilfe im Hexadezimalformat aufgeführt. Ändern Sie daher das Anzeigeformat der numerischen Konstante in Hexadezimaldarstellung, um die Richtigkeit des übergebenen Werts prüfen zu können.

Empfehlungen und Warnungen

  • Abbrechen von VIs—Bei Anwendung dieser Option sind folgende Hinweise zum Abbrechen des VIs zu berücksichtigen:
    • Beim Abbrechen des VIs, das die Referenz zum Aufrufen eines Ziel-VIs mit Abfragen der Ausgangswerte erstellt hat, werden auch alle anderen ausgeführten Instanzen des VIs abgebrochen und die Referenz auf das Ziel-VI wird geschlossen.
    • Wenn Sie eine spezifische Instanz einer VI-Referenz abbrechen und diese auf Aufrufen und Abfragen der Ausgangswerte eingestellt ist, gibt ein Knoten des Typs "Asynchronen Aufruf abwarten" einen Fehler aus. Alle anderen Knoten des Typs "Asynchronen Aufruf abwarten" sind davon nicht betroffen und warten weiter.
    • Wenn Sie auf eine VI-Referenz zum Aufrufen des VIs und Abfragen der VI-Ergebnisse die Methode Abbrechen anwenden, bricht LabVIEW alle ausgeführten Instanzen des VIs ab. Entsprechend viele Knoten des Typs "Asynchronen Aufruf abwarten" geben Fehler aus.
  • Bei Ausführungsende des VIs, das die Referenz zum Aufrufen eines Ziel-VIs mit Abfragen der Ausgangswerte erstellt hat, werden alle anderen ausgeführten Instanzen des VIs abgebrochen und die Referenz auf das Ziel-VI wird geschlossen.
  • Bei mehreren asynchronen Aufrufen derselben VI-Referenz ist nicht ohne Weiteres erkennbar, welche Ausgangswerte an welchem Knoten des Typs "Asynchronen Aufruf abwarten" ausgegeben werden. Um zu erfahren, welche Instanz des VIs die Werte ausgegeben hat, müssen Sie dem VI-Aufruf eine Kennung zuweisen.

Variante: Abfragen der Ausgangswerte mehrerer VI-Aufrufe mittels eindeutiger Referenzen

Das folgende Blockdiagramm dient als Vorlage für das asynchrone Aufrufen mehrerer VIs mit anschließendem Abfragen der Ausgangswerte. Da jeder asynchrone Aufruf mit einer eindeutigen VI-Referenz verknüpft ist, wartet jeder Knoten des Typs "Asynchronen Aufruf abwarten" auf das Ausführungsende eines bestimmten VIs. Diese Vorlage ist besonders nützlich für das Erstellen eines Frontpanels mit mehreren Unterpaneln, in denen die Frontpanel von unterschiedlichen SubVIs angezeigt werden.



Beispiele

Ein Beispiel für das asynchrone Aufrufen eines VIs mit späterem Abfragen der Ausgangswerte finden Sie im VI "Asynchronous Call and Collect.vi" im Verzeichnis labview\examples\Application Control\VI Server\Asynchronous Call By Reference.