Polymorphe VIs passen sich verschiedenen Datentypen an. Ein polymorphes VI enthält mehrere VIs mit gleich aufgebautem Anschlussfeld. Jedes VI davon ist eine Instanz des polymorphen VIs und jede dieser Instanzen hat mindestens einen Ein- oder Ausgang, der mit einem anderen Datentyp als die anderen Instanzen arbeitet.

So ist beispielsweise das VI Schlüssel lesen polymorph. Der Standardwert-Anschluss des VIs kann boolesche Werte, numerische Fließkommawerte mit doppelter Genauigkeit, 32-Bit-Integer mit und ohne Vorzeichen sowie Pfade und Strings verarbeiten.

Bei den meisten polymorphen VIs wird die zu verwendende Instanz bereits durch die Datentypen festgelegt, die an die Eingänge des VIs angelegt werden. Wenn das polymorphe VI keine Instanz für den entsprechenden Datentyp enthält, erscheint eine unterbrochene Verbindung. Wenn das SubVI durch den angelegten Datentyp nicht bestimmt wird, muss diese Einstellung manuell vorgenommen werden. In diesem Fall verhält sich das VI jedoch nicht mehr wie ein polymorphes VI, da es nur noch die Datentypen annimmt und ausgibt, die von Ihnen vorgegeben wurden.

Um manuell auszuwählen, welchen Typ das polymorphe VI annehmen soll, klicken Sie es mit der rechten Maustaste an und wählen Sie aus dem Kontextmenü die Option Typ auswählen aus. Stattdessen können Sie aber auch mit dem Bedienwerkzeug auf den Selektor des polymorphen VIs klicken (vgl. Abbildung) und aus dem Kontextmenü eine Instanz auswählen.

Klicken Sie dann noch einmal mit der rechten Maustaste auf das polymorphe VI, wählen Sie Sichtbare Objekte»Selektor für polymorphes VI und wählen Sie dann das als Standardinstanz zu verwendende SubVI aus. Wenn das polymorphe VI wieder alle Datentypen akzeptieren soll, klicken Sie es entweder mit der rechten Maustaste an und wählen aus dem Kontextmenü Typ auswählen»Automatisch aus oder Sie klicken mit dem Bedienwerkzeug den Selektor an und wählen aus dem Kontextmenü Automatisch aus.

Erstellen Sie polymorphe VIs, wenn Sie dieselbe Operation an verschiedenen Datentypen durchführen und die Operation für die verschiedenen Datentypen auf verschiedene Art implementiert werden soll. Wenn die Operation für verschiedene Datentypen ohne wesentliche Anpassung für einen bestimmten Datentyp auf ähnliche Weise implementiert werden kann, arbeiten Sie stattdessen mit datentypflexiblen VIs.

Wenn Sie beispielsweise die gleiche mathematische Operation mit einem Fließkommawert einfacher Genauigkeit, mit einem aus Zahlen bestehenden Array oder einem Signalverlauf durchführen, könnten Sie drei VIs erstellen: "Zahl berechnen", "Array berechnen" und "Signalverlauf berechnen". Wenn die Operation dann durchgeführt werden soll, setzen Sie eines dieser VIs in das Blockdiagramm, und zwar in Abhängigkeit von dem bei der Eingabe verwendeten Datentyp.

Anstatt jeweils manuell eine Version des VIs in das Blockdiagramm einzufügen, können Sie auch ein polymorphes VI erstellen und verwenden.

Das polymorphe VI "Berechnen" enthält drei Instanzen des VIs, wie in der folgenden Abbildung dargestellt.

1 Berechnen
2 Zahl berechnen
3 Array berechnen
4 Signalverlauf berechnen

Je nachdem, für welchen Datentyp das SubVI des VIs "Berechnen" vorgesehen ist, wird es statisch mit der entsprechenden Instanz verknüpft (siehe die folgende Abbildung).

1 Berechnen
2 Zahl berechnen
3 Array berechnen
4 Signalverlauf berechnen

Polymorphe VIs haben im Gegensatz zu den meisten VIs weder ein Blockdiagramm noch ein Frontpanel.

Berücksichtigen Sie beim Erstellen von polymorphen VIs die folgenden Aspekte:

  • Alle VIs, die in das polymorphe VI eingeschlossen werden, müssen über das gleiche Anschlussfeldmuster verfügen, da das Anschlussfeld des polymorphen VIs mit denen der Instanzen identisch ist.
  • Die Anschlussfelder der VIs müssen die gleichen Eingangs- und Ausgangsanschlüsse enthalten. Ist z. B. ein Anschluss bei einem VI ein Eingang, muss er im anderen VI ebenfalls ein Eingang sein. Anderenfalls darf er nicht verwendet werden.
  • Die Anschlussfelder der VIs können unterschiedlich viele Anschlussverbindungen haben.
  • Die VIs, die in dem polymorphen VI enthalten sind, müssen nicht aus den gleichen SubVIs und Funktionen bestehen.
  • Polymorphe VIs können nicht in anderen polymorphen VIs verwendet werden.
  • Ein datentypflexibles VI (.vim) kann nicht in einem polymorphen VI verwendet werden.

Beim Erstellen von polymorphen VIs, bei denen der anliegende Datentyp die Instanz bestimmen soll und der Benutzer nicht wissen soll, dass es sich um ein polymorphes VI handelt, ist Folgendes zu beachten:

  • Blenden Sie den Selektor für polymorphe VIs aus, denn der Benutzer muss die Instanz nicht manuell auswählen.
  • Erstellen Sie das Symbol für ein polymorphes VI so, dass die Symbole für die einzelnen Instanzen nicht in der Kontexthilfe angezeigt werden, wenn der Cursor über das polymorphe VI bewegt wird.
  • Erstellen Sie die Beschriftung für das polymorphe VI so, dass die Beschriftungen für die einzelnen Instanzen nicht in der Kontexthilfe angezeigt werden, wenn der Cursor über das polymorphe VI bewegt wird. Verwenden Sie eine Beschreibung, die unabhängig von der verwendeten Instanz gilt.

Polymorphe VIs werden beim Einfügen in das Blockdiagramm in den Arbeitsspeicher geladen. Wenn Sie unter Polymorphes VI bestimmte Einstellungen ändern und das Dialogfeld schließen, ohne die Änderungen zu speichern, verbleiben die neuen Einstellungen dennoch im Speicher. Sie sollten daher das VI schließen und erneut öffnen, damit die Änderungen auch im Speicher verworfen werden.

Wenn Sie eine vollständige Dokumentation für ein VI erstellen, das ein polymorphes SubVI enthält, werden das polymorphe VI und alle darin enthaltenen VIs in der Liste der SubVIs aufgeführt.

Weitere Informationen

Erstellen von polymorphen VIs

Auswählen zwischen datentypflexiblen VIs und polymorphen VIs