Erfordert: VI-Skripte

Komplexe VIs können zwar mit der Funktion Neues VI-Objekt oder der Methode Anschluss:Anschlüsse verbinden Stück für Stück programmatisch erstellt werden, aber das dafür erforderliche Skript ist umfangreich und schwer verständlich. Häufig ist es einfacher, eine VI-Vorlage zu erstellen, die dem zu erstellenden VI in möglichst vielen Aspekten ähnelt. Anschließend können Sie mittels VI-Skript eine Kopie der VI-Vorlage erstellen und kleine Teile des kopierten Codes ändern, bis das endgültige VI Ihren Vorstellungen entspricht.

Objekte

Zum Erstellen des Skripts benötigen Sie folgende Objekte:

Vorgehensweise

Bevor Sie beginnen: Öffnen Sie das VI "Creating New VI From Template.vi" im Verzeichnis labview\examples\Application Control\VI Scripting\Creating VIs. In diesem Beispiel-VI wird jeder Schritt der folgenden Vorgehensweise dargestellt.

  1. Erstellen Sie eine VI-Vorlage, die dem gewünschten VI möglichst nahekommt.

    Fügen Sie folgende Bestandteile in die Vorlage ein:

    • Alle Objekte, die nicht programmatisch einzeln erstellt werden sollen
    • Alle Verbindungen, die nicht programmatisch von Grund auf neu erstellt werden sollen
    • Platzhalterobjekte für Objekte, die während der Ausführung angezeigt werden sollen. Platzhalterobjekte geben Daten aus, anhand deren Sie die Anschlüsse des Platzhalters in der VI-Vorlage verbinden können. So müssen Sie die Verbindungen nicht von Grund auf im Skript-VI erstellen.
    • Sichtbare Beschriftungen aller Objekte, deren Position das Skript-VI abfragen soll oder die im Skript-VI verändert werden sollen

    Details zum Beispiel

    Das Beispiel zeigt ein VI mit einem Eingangs-Array, einer numerischen Ausgabe, einem Platzhalter-SubVI und den Verbindungen zwischen diesen Objekten. Während der Ausführung kann ein Skript-VI das Platzhalter-SubVI durch ein SubVI ersetzen, das die gewünschte Berechnung ausführt.

    Hinweis Das Anschlussfeld des Platzhalter-SubVIs wurde absichtlich an die Anschlussfeldmuster der beiden SubVIs angeglichen, die an seine Stelle treten können. Identische Anschlussfeldmuster ermöglichen es dem Skript-VI, das SubVI ohne erneutes Verbinden der Anschlüsse zu ersetzen. Wenn das Platzhalterobjekt in einer VI-Vorlage ein anderes Anschlussfeldmuster als das Objekt hat, durch das es ersetzt wird, kann LabVIEW die Anschlüsse möglicherweise nicht ordnungsgemäß verbinden.
  2. Erstellen Sie mit Hilfe der Funktion Neues VI eine Kopie der VI-Vorlage, indem Sie die Funktion mit dem Pfad der VI-Vorlage verbinden.

    Für die Pfadangabe der VI-Vorlage können Sie entweder ein Pfadelement oder eine Pfadkonstante verwenden. Sie können auch die Eigenschaft VI:VI-Pfad auf die Referenz der VI-Vorlage anwenden und den Pfad auf diese Weise angeben.

    Details zum Beispiel

    Im vorliegenden Beispiel wird der Pfad zur VI-Vorlage mit Hilfe der Eigenschaft "VI:VI-Pfad" angegeben.

  3. Ermitteln Sie die Referenzen der Objekte in der VI-Vorlage, die Sie bearbeiten möchten. Referenzen auf die Objekte in einer VI-Vorlage werden üblicherweise mit der Funktion VI-Objektreferenz öffnen erzeugt.

    Details zum Beispiel

    Im vorliegenden Beispiel muss das Skript-VI das Platzhalter-SubVI durch ein anderes SubVI ersetzen, das die während der Ausführung des Skript-VIs ausgewählte Funktion ausführt. Die Funktion wird vom Benutzer festgelegt. Da das Platzhalter-SubVI eindeutig beschriftet ist, kann die Funktion "VI-Objektreferenz öffnen" eine Referenz auf dieses SubVI ermitteln.

  4. Bearbeiten Sie die mittels Referenz angegebenen Objekte, um die Vorlage an das gewünschte VI anzupassen.

    In der Liste gängiger skriptgesteuerter Arbeitsschritte werden unterschiedliche Möglichkeiten zum Bearbeiten eines VIs mit Hilfe von VI-Skripten aufgezeigt.

    Details zum Beispiel

    Im vorliegenden Beispiel ersetzt das Skript-VI das Platzhalter-SubVI durch ein anderes SubVI, das die vom Benutzer angegebene Funktion ausführt. Zum Ersetzen wird die Methode Ersetzen verwendet. Eine Case-Struktur ersetzt das Platzhalter-SubVI während der Ausführung je nach ausgewählter Operation durch ein SubVI zur Addition oder Multiplikation.

  5. Mit der Funktion Referenz schließen können Sie alle geöffneten Objektreferenzen nach ihrer Nutzung schließen.

    Details zum Beispiel

    Im vorliegenden Beispiel schließt das Skript-VI die Referenz auf das SubVI, das an die Stelle des Platzhalter-SubVIs getreten ist, und die Referenz auf das Ziel-VI. Die Referenz auf das Platzhalter-SubVI wird nicht geschlossen, da die Methode "Ersetzen" diese Referenz ungültig macht.

Empfehlungen und Warnungen

  • Erstellen Sie ein SubVI als Zwischen-VI, das die gewünschten Referenzen ausgibt—Bei VI-Skript-Anwendungen, für die Änderungen an einer Vorlage vorgenommen werden, empfiehlt sich das Erstellen eines dezidierten SubVIs zum Bereitstellen der Referenzen. Zum Erstellen eines SubVIs, das die Referenzen auf die zu editierenden Objekte ausgibt, führen Sie die Schritte 2 bis 4 in einem neuen SubVI aus und nicht im Haupt-VI. Das Haupt-VI kann dann das SubVI aufrufen und anhand der empfangenen Referenz die gewünschten Änderungen vornehmen.
  • Schließen Sie alle Referenzen nach der Verwendung—Wenn zu viele Referenzen geöffnet sind, verlangsamt sich die VI-Ausführung. Weitere Hinweise zu Faktoren, die die Ausführungsgeschwindigkeit beeinflussen, erhalten Sie im Abschnitt Schließen von Referenzen auf VIs und Objekte.

Weitere Beispiele

Ein Beispiel für das Erstellen von neuen VIs für einzelne Objekte ist das VI "Creating New VI From Scratch.vi" im Verzeichnis labview\examples\Application Control\VI Scripting\Creating VIs. Das VI soll die Komplexität des Codes und die benötigte Menge an Referenzen beim Erstellen eines VIs ohne Vorlage verdeutlichen.