Verwendung von ActiveX in LabVIEW
- Aktualisiert2025-08-27
- 10 Minute(n) Lesezeit
LabVIEW kann beispielsweise als ActiveX-Client verwendet werden, wodurch das Programm auf Objekte, Eigenschaften, Methoden und Ereignisse anderer ActiveX-fähiger Anwendungen zugreifen kann. Durch die Benutzung von LabVIEW als ActiveX-Server wird anderen Anwendungen der Zugriff auf Objekte, Eigenschaften und Methoden in LabVIEW ermöglicht. Weitere Informationen zur Verwendung von ActiveX mit LabVIEW finden Sie unter ActiveX und LabVIEW auf ni.com.
ActiveX-Objekte, -Eigenschaften und -Methoden
ActiveX-fähige Anwendungen enthalten Objekte mit bestimmten Eigenschaften und Methoden, auf die andere Anwendungen zugreifen können. Diese Objekte können für den Benutzer sichtbar sein, wie Schaltflächen, Fenster, Bilder, Dokumente oder Dialogfelder, oder unsichtbar, wie Registrierungsobjekte von Anwendungen. Auf eine Anwendung wird also über ein Objekt zugegriffen, indem für das Objekt eine Eigenschaft festgelegt oder eine Methode aufgerufen wird.
ActiveX-Ereignisse
Ereignisse sind an einem Objekt vorgenommene Aktionen wie ein Mausklick oder das Drücken einer Taste. Immer, wenn an dem Objekt eine dieser Aktionen vorgenommen wird, sendet das Objekt ein Ereignis und die dazugehörigen Informationen an den ActiveX-Container. Die für ein ActiveX-Objekt verfügbaren Ereignisse richten sich nach dem Objekt.
ActiveX-Ereignisse müssen in Anwendungen registriert und verarbeitet werden können. Die Registrierung für ActiveX ähnelt der dynamischen Ereignisregistrierung. Für die dynamische Ereignisregistrierung muss eine Ereignisstruktur innerhalb einer While-Schleife platziert, eine Objektreferenz mit der Ereignisstruktur verbunden und das zu generierende Ereignis gewählt werden. So kann zum Beispiel von einem ActiveX-Container aus ein Baumstrukturelement von Windows aufgerufen werden und angegeben werden, dass bei einem Doppelklick auf eines der darin angezeigten Elemente ein Ereignis ausgelöst werden soll. Die Architektur eines ActiveX-Ereignis-VIs unterscheidet sich jedoch von der Architektur eines VIs zur Ereignisverarbeitung, da für die Angabe und Registrierung von Ereignissen die Funktion "Ereignis-Callback registrieren" anstelle der Funktion "Für Ereignisse registrieren" verwendet wird.
Informationen zu den Komponenten für die Erzeugung und Registrierung eines ActiveX-Ereignisses in LabVIEW finden Sie in der folgenden Tabelle.
| Komponente | Beschreibung | Anwendungsfall |
|---|---|---|
| ActiveX-Objekt | Dies ist das ActiveX-Objekt, zu dem ein Ereignis erzeugt werden soll. | Nach Auswählen des ActiveX-Objekts, für das ein Ereignis erzeugt werden soll, können Sie das Ereignis über eine ActiveX-Referenz bestimmen. |
| Funktion "Ereignis-Callback registrieren" | Diese Funktion ist erweiterbar und kann ähnlich wie die Funktion "Für Ereignisse registrieren" mehrere Ereignisse verarbeiten. | Nach Verbinden eines ActiveX-Objekts mit der Funktion "Ereignis-Callback registrieren" können Sie das/die zu erzeugende(n) Ereignis(se) für das Objekt bestimmen. Durch das Bestimmen eines für ein Objekt zu erzeugenden Ereignisses registrieren Sie das ActiveX-Objekt für dieses Ereignis. |
| Callback-VI | Das VI enthält den von Ihnen zur Ereignisverarbeitung erstellen Programmcode. | Das VI kann nach der Registrierung für ein Ereignis mit Hilfe der Funktion "Für Ereignisse registrieren" erstellt werden. Verschiedene Ereignisse können verschiedene Datenformate haben. Wenn Sie das Ereignis nach Erstellen eines Callback-VIs ändern, können dadurch ungültige Verbindungen entstehen. Wählen Sie daher das Ereignis aus, bevor Sie ein Callback-VI erstellen. |
ActiveX-VIs, -Funktionen, -Bedienelemente und -Anzeigeelemente
In der folgenden Tabelle finden Sie Informationen zu VIs, Funktionen und Bedien- und Anzeigeelementen, um auf die Objekte, Eigenschaften, Methoden und Ereignisse zuzugreifen, die von anderen ActiveX-fähigen Anwendungen stammen.
| Name von VI, Funktion, Bedien- oder Anzeigeelement | Beschreibung | Beispiel | Anleitung zur Verwendung |
|---|---|---|---|
| ActiveX (Referenz) | Mit Hilfe dieses Elements kann eine Referenz auf ein ActiveX-Objekt erstellt werden. | Eine Referenz zu einem Word-Dokument kann in einem ActiveX-Container in das Frontpanel eines VIs eingebunden werden. | Klicken Sie auf dem Frontpanel mit der rechten Maustaste auf das Element, um ein Objekt aus der ActiveX-Klasse auszuwählen, auf die Sie zugreifen möchten. |
| Funktion "ActiveX-Objekt öffnen" | Über diese Funktion wird ein ActiveX-Objekt geöffnet. | Die Funktion kann außerdem zum Öffnen eines Microsoft-Excel-Dokuments verwendet werden. | Klicken Sie die Funktion mit der rechten Maustaste an und wählen Sie Klasse auswählen (ActiveX), um die Objektklasse aus dem Kontextmenü auszuwählen. Die Referenz kann anschließend an andere ActiveX-Funktionen übergeben werden. |
| ActiveX-Container | Über den Container wird auf ein ActiveX-Objekt zugegriffen und dieses wird auf dem Frontpanel angezeigt. | In diesem ActiveX-Container kann eine Schaltfläche einer anderen ActiveX-fähigen Anwendung angezeigt werden, beispielsweise eines Webbrowsers. | Klicken Sie mit der rechten Maustaste auf den ActiveX-Container und wählen Sie aus dem Kontextmenü die Option ActiveX-Objekt einfügen aus. Wählen Sie dann das Objekt aus, auf das Sie zugreifen möchten. |
| Eigenschaftsknoten | Mit dieser Funktion können die einem ActiveX-Objekt zugehörigen Eigenschaften abgefragt und festgelegt werden. | Die Funktion kann auch zum Festlegen der Eigenschaften eines Objektes verwendet werden, das in einem ActiveX-Container auf dem Frontpanel eingebunden ist. | Klicken Sie mit der rechten Maustaste auf das ActiveX-Objekt auf dem Frontpanel oder im Blockdiagramm und wählen Sie Erstellen»Eigenschaftsknoten aus. Durch Auswahl einer Option aus dem Kontextmenü können Sie dann einem Objekt eine bestimmte Eigenschaft hinzufügen. |
| Methodenknoten | Mit Hilfe dieser Funktion können die zum ActiveX-Objekt gehörenden Methoden aufgerufen werden. | Ähnlich wie beim Festlegen von Eigenschaften über einen Eigenschaftsknoten kann diese Funktion zum Aufrufen der in einen ActiveX-Container auf dem Frontpane eingebetteten Methoden eines Objekts verwendet werden. | Klicken Sie mit der rechten Maustaste auf das ActiveX-Objekt auf dem Frontpanel oder im Blockdiagramm und wählen Sie Erstellen»Methodenknoten aus. Durch Auswahl einer Methode aus dem Kontextmenü können Sie dann zu einem Objekt eine bestimmte Methode aufrufen. |
| Ereignis-Callback registrieren | Mit Hilfe dieser Funktion werden an einem ActiveX-Objekt stattfindende Ereignisse verarbeitet. | Die Funktion kann dazu dienen, ein Ereignis zu erzeugen und zu registrieren, beispielsweise das Hinzufügen von Daten in einer Microsoft-Excel-Tabelle. | |
| Variant-Bedien- und -Anzeigeelement | Dieses Bedien- und Anzeigeelement überträgt Daten an ActiveX-Elemente bzw. empfängt Daten von diesen. | Das Element kann für den Datenaustausch mit einer ActiveX-fähigen Anwendung wie z. B. Microsoft Excel oder Word verwendet werden. | Navigieren Sie für dieses Bedien- und Anzeigeelement zur Palette Variant und Klasse und legen Sie es auf dem Frontpanel oder Blockdiagramm ab. |
Konvertierung von Datentypen
Die Datentypen einiger ActiveX-Eigenschaften und -Methoden werden in LabVIEW-Datentypen konvertiert, sodass die Daten gelesen und bearbeitet werden können. In der folgenden Tabelle finden Sie die ActiveX-Datentypen und die entsprechenden umgewandelten LabVIEW-Datentypen:
| ActiveX-Datentyp | LabVIEW-Datentyp |
|---|---|
| Zeichen | , ![]() |
| kurz | , ![]() |
| lang | , ![]() |
| hyper | , ![]() |
| Fließkomma | , ![]() |
| doppelt | |
| BSTR | , ![]() |
LabVIEW als ActiveX-Client
Wenn LabVIEW auf die Objekte einer anderen ActiveX-fähigen Anwendung zugreift, fungiert das Programm als ActiveX-Client. Nachfolgend ein Beispiel für die Nutzung von LabVIEW als ActiveX-Client:
- Öffnen Sie eine Anwendung wie Microsoft Excel, erstellen Sie ein Dokument und fügen Sie Daten in das Dokument ein.
- Betten Sie mittels eines Containers ein Dokument, beispielsweise ein Microsoft-Word-Dokument oder eine Excel-Tabelle, in das Frontpanel ein.
- Fügen Sie nun eine Schaltfläche oder ein Objekt aus einer anderen Anwendung hinzu, zum Beispiel eine Hilfe-Schaltfläche, über die die Hilfedatei der anderen Anwendung aufgerufen werden kann.
- Erstellen Sie eine Verknüpfung zu einem ActiveX-Objekt, das mit einer anderen Anwendung erstellt wurde.
Zum Zugriff auf ein ActiveX-Objekt über das Frontpanel wird in LabVIEW entweder die ActiveX-Referenz oder der ActiveX-Container verwendet. Die ActiveX-Referenz dient zur Auswahl eines ActiveX-Objekts. Mit dem ActiveX-Container können anzeigbare ActiveX-Objekte wie Schaltflächen oder Dokumente ausgewählt und anschließend in das Frontpanel eingefügt werden. Auf dem Blockdiagramm werden beide Objekte als ActiveX-Referenzen angezeigt.
Entwurfsmodus für ActiveX-Objekte
Bei Auswahl des Entwurfsmodus gehören die Referenzen auf die Elemente zum ActiveX-Container; neue Elemente werden über den Container erstellt und freigegeben. Elemente haben unterschiedliche Entwurfs- und Ausführungsmodi. Bei jeder Ausführung des VIs wird das Element im Entwurfsmodus entfernt und durch ein Element im Ausführungsmodus ersetzt. Wenn das VI anhält, wird das Element im Ausführungsmodus entfernt und ein Element im Entwurfsmodus erstellt. Das Verhältnis zwischen Entwurfsmodus und Ausführungsmodus bei Verwendung von AktiveX und LabVIEW ähnelt dem Verhältnis zwischen Bearbeitungs- und Ausführungsmodus in anderen Programmierbereichen, wie beispielsweise VI-Skripten oder VI-Server.
Erzeugte Anwendungen enthalten kein Element im Entwurfsmodus. Das Element im Ausführungsmodus wird erstellt, wenn die VI-Ausführung beginnt. Das Element wird freigegeben, wenn das VI anhält. Ereignisse werden von LabVIEW nur im Ausführungsmodus, nicht im Entwurfsmodus erzeugt. Der Ausführungsmodus ist der Standardmodus.
Hier erhalten Sie Informationen zum Konfigurieren des Entwurfsmodus.
Methoden zum Festlegen von ActiveX-Eigenschaften
Nachdem Sie ein ActiveX-Objekt oder Dokument aufgerufen oder eingefügt haben, können Sie Eigenschaften dazu festlegen. Das ist mit dem Browser für ActiveX-Eigenschaften, den Eigenschaftsseiten und dem Eigenschaftsknoten möglich.
| Name | Beschreibung | Arten des Zugriffs |
|---|---|---|
| Browser für ActiveX-Eigenschaften | Über diesen Browser können Sie die Eigenschaften eines ActiveX-Elements oder -Dokuments in einem ActiveX-Container anzeigen oder festlegen. Über den Browser für ActiveX-Eigenschaften lassen sich die Eigenschaften eines ActiveX-Objekts interaktiv festlegen. | Greifen Sie auf eine der folgenden Arten auf den Browser für ActiveX-Eigenschaften zu:
|
| Hinweis Der Browser kann nur im Bearbeiten-Modus zum Festlegen von Eigenschaften verwendet werden, und es müssen ActiveX-Objekte in einem Container vorhanden sein. | |
| ActiveX-Eigenschaftsseiten | Zu vielen ActiveX-Objekten gibt es Eigenschaftsseiten. Hier sind die Eigenschaften des Objekts in verschiedene Registerkarten unterteilt. Über den Browser für ActiveX-Eigenschaften lassen sich die Eigenschaften eines ActiveX-Objekts interaktiv festlegen. Wie beim Browser für ActiveX-Eigenschaften können Eigenschaften nur dann festgelegt werden, wenn sich die Eigenschaftsseiten im Bearbeiten-Modus befinden und ActiveX-Objekte in einem Container vorhanden sind. | Um auf diese Seiten zuzugreifen, klicken Sie das entsprechende Container-Objekt oder -Dokument mit der rechten Maustaste an und wählen Sie aus dem Kontextmenü den Namen des Objekts aus. |
| Hinweis Es gibt nicht für alle ActiveX-Objekte Eigenschaftsseiten. | |
| Eigenschaftsknoten | Um Eigenschaften von ActiveX-Objekten programmatisch festzulegen, werden Eigenschaftsknoten verwendet. | Führen Sie folgende Schritte aus, um ActiveX-Eigenschaften mit Hilfe eines Eigenschaftsknotens programmatisch festzulegen:
|
Das folgende Beispiel zeigt, wie über einen Eigenschaftsknoten die Eigenschaft "Wert" eines ActiveX-Elements programmatisch geändert wird, um den Benutzer auf das Überschreiten einer Grenztemperatur hinzuweisen. Die Eigenschaft "Wert" des CWButton-ActiveX-Objekts (Bestandteil der Component Works Control Library) wird verändert, wenn die Temperatur 30 °C erreicht oder übersteigt.
In diesem Beispiel nimmt der CWButton wie eine LED den Status "Ein" an, ändert seine Farbe und zeigt eine Warnung an.
| Hinweis Die Eigenschaften "OffText", "OffColour" und "OnColour" des CWButtons sind nicht programmatisch veränderbar und müssen daher im Browser für ActiveX-Eigenschaften oder in den Eigenschaftsseiten festgelegt werden. |
LabVIEW als ActiveX-Server
Sie können auf eine LabVIEW-Anwendung, VIs und Eigenschaften und Methoden für Elemente von anderen Anwendungen aus über ActiveX zugreifen. Andere ActiveX-fähige Anwendungen wie Microsoft Excel können Eigenschaften, Methoden und einzelne VIs von LabVIEW anfordern. LabVIEW dient als ActiveX-Server
So kann beispielsweise ein VI-Graph in eine Excel-Tabelle eingebettet werden, wobei es von Excel aus möglich ist, Werte in die VI-Eingänge einzugeben und das VI zu starten. Beim Ausführen des VIs werden die Werte dann in Form eines Graphen dargestellt.
Unterstützung benutzerdefinierter ActiveX-Schnittstellen
Wenn Sie mit einem Drittpartei-ActiveX-Client arbeiten, der auf Eigenschaften und Methoden eines LabVIEW-ActiveX-Servers zurückgreift, können Sie auf vom Server erstellte benutzerdefinierte Schnittstellen zugreifen. Sie benötigen dazu kein "IDispatch".
Bei der Erstellung des Servers muss jedoch sichergestellt werden, dass es sich bei den Parametern der Eigenschaften und Methoden der benutzerdefinierten Schnittstelle um Automation-(IDispatch)-Datentypen handelt. Der Entwickler des Servers muss sicherstellen, dass die Parameter Automation-(IDispatch)-Datentypen besitzen, damit mehrere Schnittstellen von einem Objekt anstatt von mehreren Objekten aus freigegeben werden können. Ohne Automation-(IDispatch)-Datentypen müssen Sie Objekte jedes Mal einzeln verbinden, statt eine einmalige Verbindung zu erstellen. In der LabVIEW-Umgebung können die Schnittstellen weiterhin verwendet werden.
Festlegen von Parametern in ActiveX-VIs mit Hilfe von Konstanten
Einige Parameter in ActiveX-Knoten können separate Listen zulässiger Werte annehmen. Um diese Werte festzulegen, wählen Sie in der Ringkonstante den entsprechenden Namen aus.
Zur Anzeige der Ringkonstante beim Erstellen eines ActiveX-VIs klicken Sie mit der rechten Maustaste auf den Parameter des Knotens, an den die Werte übergeben werden sollen, und erstellen Sie eine Konstante. Die Auswahlmöglichkeiten der Ringkonstante hängen von der an den Knoten übergebenen Referenz ab. Klicken Sie zur Anzeige des entsprechenden numerischen Datenwerts mit der rechten Maustaste auf die Ringkonstante und wählen Sie aus dem Kontextmenü Sichtbare Objekte»Zahlenanzeige aus.
In den folgenden Blockdiagrammen werden Ringkonstanten und numerische Konstanten zum Erstellen von Parameterwerten verwendet. In den Blockdiagrammen sehen Sie, wie auf die Microsoft-Excel-Anwendung zugegriffen und eine Methode ausgeführt wird; der Parameter Index enthält mehrere Optionen. Nach Auswahl einer Option wird der entsprechende numerische Wert der Option angezeigt.
Standardmäßig ist der numerische Wert der derzeit gewählten Option MicrosoftAccess in einem Feld neben der Ringkonstante zu sehen, wie im folgenden Blockdiagramm dargestellt.
Der numerische Wert einer Option kann auch in einer numerischen Konstante angezeigt werden. Im folgenden Blockdiagramm ist die Anzeige eines numerischen Werts einer Option in einer mit dem Eingang Index verbundenen Konstante zu sehen.
Laden von VIs mit einer aktualisierten ActiveX-Typbibliothek
Wenn Sie ein VI laden, in dem sich die Hauptversion der ActiveX-Typbibliothek geändert hat, wird in einem Dialogfeld eine entsprechende Warnung angezeigt. Beim Laden eines VIs, bei dem sich die Nebenversion oder der Zeitstempel der ActiveX-Typbibliothek geändert hat, enthält dieses VI ein Sternchen (*) in der Titelleiste und in der Liste der geöffneten VIs am Ende des Menüs Fenster. Beim Speichern des VIs wird das Sternchen entfernt. Es erscheint erst wieder bei einer neuen Änderung.
, 
, 
, 
, 
, 
, 