Bei mehreren asynchronen Aufrufen desselben VIs werden die Aufrufe per Voreinstellung nacheinander abgearbeitet und ihre Ausführungsdauer addiert sich. Nachfolgend wird beschrieben, wie die VI-Instanzen parallel aufgerufen werden.

Objekte

Zum dynamischen asynchronen Aufrufen eines ablaufinvarianten VIs mit späterem Abfragen der Ausgangswerte des aufgerufenen VIs benötigen Sie die folgenden Blockdiagrammobjekte:

Vorgehensweise

Erstellen Sie zum Starten mehrerer asynchroner Aufrufe eines ablaufinvarianten VIs und zum Abfragen der Ausgangswerte das nachfolgend beschriebene 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.
Hinweis Wenn Sie die Ausgangswerte der asynchronen Aufrufe ignorieren möchten, verzichten Sie auf den Knoten „Asynchronen Aufruf abwarten“ und verwenden Sie das Options-Flag 0x80 anstelle des Options-Flags 0x100.

Empfehlungen und Warnungen

Die Eigenschaften und Methoden des VI-Servers sind nicht auf parallele Instanzen eines asynchronen VI-Aufrufs anwendbar. Wenn Sie also eine Eigenschaft oder Methode des VI-Servers mit einer VI-Referenz aufrufen, die mittels der Options-Flag 0x40 erstellt wurde, kann die Eigenschaft bzw. die Methode nicht auf die vom Knoten "Asynchronen Aufruf starten" tatsächlich aufgerufene VI-Kopie angewandt werden. Die Eigenschaft oder Methode gilt nur für das ursprüngliche Ziel-VI. Damit Eigenschaften und Methoden des VI-Servers auf die tatsächlich aufgerufene VI-Kopie angewandt werden, muss die Eigenschaft oder Methode innerhalb des Ziel-VIs aufgerufen werden.

Beispiele

Ein Beispiel für das asynchrone parallele Aufrufen mehrerer VI-Instanzen zum Steigern der Ausführungseffizienz finden Sie im VI "Asynchronous Call and Collect (Using Option 0x40).vi" im Verzeichnis labview\examples\Application Control\VI Server\Asynchronous Call By Reference.

Einen Vergleich mehrerer synchroner und asynchroner Lösungsansätze für eine Task finden Sie im "Benchmarking Asynchronous Calls.vi" ( Messung der Dauer asynchroner Aufrufe) im Verzeichnis labview\examples\Application Control\VI Server\Asynchronous Call By Reference.