Verwenden von I/O-Variablen (Real-Time, Windows)
- Aktualisiert2025-08-27
- 12 Minute(n) Lesezeit
Eine I/O-Variable ist eine Art von Umgebungsvariable, mit deren Hilfe I/O-Daten übertragen werden. Beim lokalen Zugriff können I/O-Variablen mit der NI Scan Engine Einzelwerte erfassen oder ausgeben. Beim Zugriff über das Netzwerk können I/O-Variablen mit Hilfe des NI-Protokolls zum Senden und Empfangen (PSP) Einzelwerte und gepufferte Werte erfassen oder ausgeben. Der Einsatz von I/O-Variablen ermöglicht die direkte Kommunikation mit einem physikalischen I/O-Kanal und den Austausch benutzerdefinierter I/O-Daten zwischen einem FPGA-VI und einem Real-Time-VI auf demselben System.
In der folgenden Tabelle werden die verschiedenen Anwendungsmöglichkeiten von I/O-Variablen zusammengefasst:
| Verwendung | I/O-Variablentyp |
|---|---|
| Austausch skalierter I/O-Daten zwischen I/O-Hardware und einem LabVIEW-VI ohne LabVIEW FPGA Module | I/O-Variablen für skalierte I/O-Daten |
| Austausch von benutzerdefinierten mit dem FPGA-Modul verarbeiteten I/O-Daten zwischen einem FPGA-VI und einem LabVIEW-Real-Time-VI auf demselben Gerät. | I/O-Variablen für benutzerdefinierte FPGA-I/O-Daten |
I/O-Variablen für skalierte I/O-Daten
Um I/O-Variablen für skalierte I/O-Daten verwenden zu können, müssen Sie zunächst ein unterstütztes I/O-Gerät mit einem System verbinden, auf dem die NI Scan Engine installiert ist. Anschließend müssen Sie das I/O-Gerät zum Zielsystem im LabVIEW-Projekt hinzufügen.
Wenn Sie im Projekt-Explorer einem System ein unterstütztes Gerät hinzufügen, wird automatisch für jeden I/O-Kanal eine I/O-Variable erstellt. Wenn Sie ein I/O-Gerät einem Zielsystem des aktuellen LabVIEW-Projekts physisch hinzufügen, müssen Sie das neue I/O-Gerät dem Projekt hinzufügen und die dazugehörigen I/O-Variablen übertragen, bevor Sie sie verwenden können.
Wenn Sie ein I/O-Gerät von einem System des Projekts entfernen, müssen Sie dieses im Projekt löschen und das System erneut übertragen. Dadurch wird sichergestellt, dass die Konfiguration des Systems der Konfiguration des Projekts entspricht. Mithilfe des Dialogfelds Projekt- und Systemvergleich können Sie prüfen, ob die Konfigurationen übereinstimmen.
I/O-Variablen für benutzerdefinierte FPGA-I/O-Daten (FPGA Module und Real-Time Module)
Wenn das Projekt ein FPGA-Zielsystem enthält, das die NI Scan Engine unterstützt, können Sie benutzerdefinierte I/O-Variablen zum Austausch von benutzerdefinierten I/O-Daten zwischen FPGA- und Real-Time-VIs auf demselben Gerät erstellen.
Sie können benutzerdefinierte I/O-Variablen in die Blockdiagramme der FPGA- und Real-Time-VIs einfügen, die auf dem Host-Chassis ausgeführt werden. Da alle I/O-Variablen unidirektional sind, müssen Sie die Richtung für jede benutzerdefinierte I/O-Variable als FPGA nach Host oder Host nach FPGA festlegen. Sie können beispielsweise analoge I/O-Daten erfassen und in einem FPGA-VI eine FFT an diesen Daten durchführen. Übertragen Sie die verarbeiteten Daten dann über eine als FPGA nach Host konfigurierte I/O-Variable an eine Regelschleife in einem Real-Time-VI. Verwenden Sie anschließend eine als Host nach FPGA konfigurierte I/O-Variable, um die Ausgabe der Regelschleife zurück zum FPGA-VI und von dort an den physikalischen I/O-Kanal zu senden.
Für die Erstellung von benutzerdefinierten I/O-Variablen wird das LabVIEW FPGA Module benötigt. Wenn Sie nur das Real-Time Module installiert haben, können Sie jedoch von Real-Time-VIs aus mit benutzerdefinierten I/O-Variablen arbeiten, auch wenn das LabVIEW FPGA Module nicht installiert ist. Ein Entwickler kann beispielsweise mit dem LabVIEW FPGA Module benutzerdefinierte I/O-Variablen erstellen und eine FPGA-Bitdatei für den Zugriff auf die Variablen kompilieren. Andere Benutzer, die ohne das FPGA Module arbeiten, können dann z. B. mit Hilfe der Bitdatei und dem LabVIEW-Projekt der Variablen die Bitdatei auf einem CompactRIO-Chassis ausführen. In diesem Fall können zwar keine neuen benutzerdefinierten I/O-Variablen erstellt werden. Aber es kann auf die bereits vorhandenen Variablen über das Real-Time Module zugegriffen werden.
(Windows) Wenn die Option „Datenaustausch im Netzwerk“ für eine benutzerdefinierte I/O-Variable aktiviert ist, kann die Variable für jedes beliebige Real-Time- oder Windows-VI innerhalb eines LabVIEW-Projekts verwendet werden. So können Sie beispielsweise mit Netzwerk-I/O-Variablen ein Benutzeroberflächen-VI für Windows erstellen.
Konfiguration von I/O-Variablen
Sie können I/O-Variablen interaktiv während der Bearbeitung oder Ausführung sowie programmatisch während der Ausführung konfigurieren. Diese beiden Methoden können auch kombiniert werden. In der folgenden Tabelle finden Sie eine Zusammenfassung über die Vor- und Nachteile der Methoden:
| Methode | Anwendungsfall | Vorteile | Nachteile |
|---|---|---|---|
| Interaktiv | Konfiguration von Einstellungen für I/O-Variablen bei Zugriff auf den Projekt-Explorer. | Erfordert weniger Programmierung. |
|
| Programmatisch |
|
|
Erfordert mehr Programmierung. |
Interaktive Konfiguration von I/O-Variablen
Konfigurieren Sie eine I/O-Variable mit Hilfe des Dialogfelds Eigenschaften für Umgebungsvariable. Verwenden Sie zum gleichzeitigen Konfigurieren von mehreren I/O-Variablen den Variablen-Editor.
Die Beschreibung sowie Netzwerk- und Skalierungsoptionen einer I/O-Variablen können auch aktualisiert werden, wenn ein mit der I/O-Variablen arbeitendes VI ausgeführt wird. Die Bearbeitung des Namens oder Datentyps einer I/O-Variablen ist während der Ausführung aber nicht möglich.
Programmatische Konfiguration von I/O-Variablen
Führen Sie zum programmatischen Konfigurieren einer I/O-Variablen mit Hilfe der Variablen-Eigenschaften folgende Schritte aus:
- Fügen Sie einen Variableneigenschaftsknoten in das Blockdiagramm ein.
- Klicken Sie mit der rechten Maustaste auf den Eingang Referenz und wählen Sie aus dem Kontextmenü die Option Erstellen»Konstante aus.
- Klicken Sie auf die Pfeilschaltfläche auf der rechten Seite der Umgebungsvariablenreferenz-Konstante und wählen Sie Suchen aus.
- Wählen Sie im Dialogfeld Variablenobjekt suchen die I/O-Variable aus, die konfiguriert werden soll.
- Klicken Sie mit der rechten Maustaste auf die Umgebungsvariablenreferenz-Konstante und wählen Sie aus dem Kontextmenü Klasse auswählen (Variable) die Klasse der Eigenschaft aus, mit der Sie arbeiten möchten.
- Klicken Sie auf die weiße Fläche des Variableneigenschaftsknotens und wählen Sie die Eigenschaft aus, mit der Sie arbeiten möchten.
- (Optional) Sie können den Eigenschaftsknoten für Variablen auch mit dem Positionierwerkzeug aufziehen, so dass mehrere Eigenschaften angezeigt werden.
In der folgenden Abbildung sehen Sie ein Beispiel für die programmatische Konfiguration einer I/O-Variablen auf einem Netzwerksystem:
In diesem Beispiel legt der Eigenschaftsknoten für Variablen den aktuellen Grenzwert für einen Kanal eines CompactRIO-Moduls fest, indem er die I/O-Variable konfiguriert, die zu diesem Kanal gehört.
- Öffnen Sie die Datei labview\LabVIEW.ini mit einem Texteditor.
- Geben Sie auf einer neuen Zeile RemoteIOVConfigurationTimeout= ein. Tragen Sie die neue Dauer des Timeouts in Sekunden ein. Wenn Sie den Timeout z. B. auf 10 Sekunden ausdehnen möchten, geben Sie RemoteIOVConfigurationTimeout=10 ein.
- Speichern und schließen Sie die Datei.
Verteilen von I/O-Variablen
Klicken Sie hierfür im Projekt-Explorer mit der rechten Maustaste auf das Objekt mit der I/O-Variablen und wählen Sie Verteilen aus dem Kontextmenü aus.
Wenn Sie ein VI mit I/O-Variablenknoten ausführen, werden die Container mit den I/O-Variablen automatisch verteilt. Dabei werden alle I/O-Variablen in den Containern übertragen.
Skalieren von I/O-Variablenwerten
Auf der Seite Skalierung des Dialogfelds Eigenschaften für Umgebungsvariable können Sie die lineare Skalierung für eine I/O-Variable oder einen Alias aktivieren. Für I/O-Variablen wird keine nicht lineare Skalierung unterstützt.
Erstellen von I/O-Aliasnamen
Um zwischen I/O-Daten für verschiedene Situationen zu differenzieren, können Sie Aliasnamen für eine I/O-Variable erstellen. Wenn eine I/O-Variable beispielsweise mit einem Thermoelement verbunden ist, können Sie die beiden Aliasnamen "Celsius" und "Fahrenheit" erstellen. Wählen Sie dann eine Skalierung für jeden Alias und zeigen Sie so die Temperatur in beiden Einheiten an.
Der Wert eines I/O-Aliasnamens ist bidirektional mit dem Wert des Elternobjekts verbunden, d. h. bei Änderung eines Werts wird automatisch auch der andere Wert aktualisiert. Liegt eine Kette von I/O-Aliasnamen vor, so werden bei Änderung eines beliebigen Glieds der Kette auch alle anderen Glieder aktualisiert.
Erstellen einzelner I/O-Aliasnamen
Klicken Sie zum Erstellen eines I/O-Aliasnamens im Projekt-Explorer mit der rechten Maustaste auf ein System mit I/O-Variablen und wählen Sie Neu»Variable aus dem Kontextmenü, um das Dialogfeld Eigenschaften für Umgebungsvariable zu öffnen. Geben Sie einen Namen für den I/O-Alias ein und wählen Sie I/O-Alias aus dem Pulldown-Menü Variablentyp. Klicken Sie dann auf die Schaltfläche Durchsuchen und wählen Sie eine I/O-Variable oder einen I/O-Alias aus, mit der/dem der neue Alias verknüpft werden soll.
Im Projekt-Explorer können Sie den Namen, die Beschreibung, den Datenaustausch im Netzwerk und die Skalierung für den I/O-Alias konfigurieren. Mit dem Variablen-Editor ist die gleichzeitige Bearbeitung mehrerer I/O-Aliasnamen möglich.
Gleichzeitiges Erstellen mehrerer I/O-Aliasnamen
Über das Dialogfeld Variablen erstellen (Batch) können gleichzeitig mehrere I/O-Aliasnamen erstellt werden. Gehen Sie dazu wie folgt vor:
- Erstellen Sie einen I/O-Alias als Vorlage für die Stapelverarbeitung.
- Klicken Sie mit der rechten Maustaste auf die Variablenbibliothek mit dem I/O-Alias und wählen Sie die Option Variablen erstellen aus dem Kontextmenü, um das Dialogfeld Variablen erstellen (Batch) zu öffnen.
- Wählen Sie dann die Option Eigenschaften kopieren von und klicken Sie auf die Schaltfläche Durchsuchen, um den als Vorlage zu verwendenden I/O-Alias auszuwählen.
- Geben Sie die gewünschte Anzahl zu erstellender I/O-Aliasnamen im Feld Zu erzeugen (Anzahl) an und klicken Sie abschließend auf OK.
Im Anschluss daran öffnet LabVIEW automatisch den Variablen-Editor, in dem Sie die neuen Variablen bearbeiten können. So können Sie beispielsweise den Alias-Pfad für jeden I/O-Alias ändern, um die Aliasnamen verschiedenen I/O-Variablen zuzuweisen.
Anpassen von I/O-Variablenwerten
Der Wert einer I/O-Variablen kann interaktiv oder programmatisch angepasst werden. Bei der Anpassung einer I/O-Variablen wird von den damit verbundenen I/O-Daten ein festgelegter Wert angenommen, bis die automatische Wertänderung aufgehoben, das Ziel neu gestartet oder ein neuer Wert für die Anpassung festgelegt wird. Bei Aufhebung der Anpassung, wird die Kontrolle über den I/O-Wert wieder an die NI Scan Engine übergeben.
Interaktives Anpassen von I/O-Variablenwerten
Verwenden Sie den NI-DSM, um den Wert einer I/O-Variablen während der Fehlersuche anzupassen oder die Anpassung aufzuheben, oder um einen I/O-Kanal manuell zu steuern. Wählen Sie in LabVIEW Werkzeuge»DSM, um den NI-DSM zu öffnen. Zum Anzeigen des NI-DSM können Sie auch im Projekt-Explorer mit der rechten Maustaste auf ein Real-Time-System klicken und Utilities»In System Manager anzeigen auswählen.
Programmatisches Anpassen von I/O-Variablenwerten
Mit Hilfe der Wertanpassungs-VIs können Sie die Anpassung von I/O-Variablen programmatisch aktivieren und deaktivieren.
Anpassen von I/O-Aliasnamen
Die automatische Wertanpassung bezieht sich sowohl auf Aliasnamen als auch die dazugehörige I/O-Variable. Wenn Sie eine I/O-Variable anpassen, werden alle damit verbundenen Aliasnamen aktualisiert. Wenn Sie einen Aliasnamen anpassen, bezieht sich diese Änderung auch auf die dazugehörige I/O-Variable und andere verbundene Aliasnamen.
Aktivierung und Deaktivierung der gleichzeitigen Anpassung von allen I/O-Variablen eines Systems
Über die globale Anpassung können Sie gleichzeitig für alle I/O-Variablen eines Systems die Anpassung aktivieren oder wieder aufheben. Dies kann interaktiv oder programmatisch geschehen.
Interaktiv können Sie die globale Anpassung über die Schaltflächen Wertanpassung aktivieren und Wertanpassung deaktivieren im NI-DSM festlegen. Mit den VIs Variablenanpassung aktivieren und Variablenanpassung deaktivieren erfolgt die globale Anpassung programmatisch.
Führen Sie folgende Schritte aus, um alle I/O-Variablen eines Systems gleichzeitig anzupassen:
- Deaktivieren Sie die Wertanpassung auf dem System, so dass die gewünschten Werte für die I/O-Variablen individuell festgelegt werden können.
- Geben Sie für alle I/O-Variablen des Systems die gewünschten Werte an.
- Aktivieren Sie die Wertanpassung auf dem System, so dass alle I/O-Variablen gleichzeitig aktualisiert werden.
Zugriff auf I/O-Variablen in einem Netzwerk
Wenn der Datenaustausch im Netzwerk für eine I/O-Variable aktiviert ist, können Sie auf die I/O-Variable von einem Computer aus zugreifen, der zum selben Netzwerk wie das Host-System der Variablen gehört. Interaktiv können Sie auf Netzwerk-I/O-Variablen über die Ansicht I/O-Variablensonde im NI-DSM zugreifen. Des Weiteren können Sie in einem VI programmatisch auf Netzwerk-I/O-Variablen zugreifen.
Die Aktivierung und Deaktivierung des Datenaustauschs im Netzwerk für eine I/O-Variable erfolgt über das Dialogfeld Eigenschaften für Umgebungsvariable. Aktivieren Sie die Option, wenn I/O-Werte auf einem Host-Computer überwacht werden sollen oder Sie auf eine I/O-Variable von einem Netzwerksystem aus zugreifen möchten. Auf der Seite Scan Engine können Sie die Rate für den Datenaustausch im Netzwerk für alle I/O-Variablen eines Systems festlegen.
Lokaler Zugriff auf I/O-Variablen
I/O-Variablen werden einem globalen Speicherabbild der Scan Engine hinzugefügt und gleichzeitig aktualisiert. Für den Zugriff auf I/O-Variablen vom Host-System aus können Sie aber für jeden Knoten entweder den Scan-Zugriff oder Direktzugriff konfigurieren.
Führen Sie folgende Schritte aus, um den lokalen Zugriffsmodus für einen I/O-Variablenknoten festzulegen:
- Klicken Sie im Blockdiagramm mit der rechten Maustaste auf einen I/O-Variablenknoten.
- Wählen Sie Lokaler Zugriffsmodus aus dem Kontextmenü aus.
- Wählen Sie den gewünschten Zugriffsmodus.
Auswahl eines lokalen Zugriffsmodus
In der Regel eignet sich der Scan-Zugriff für I/O-Kanalgruppen mit ähnlichen Aktualisierungsraten und der Direktzugriff für einzelne I/O-Kanäle mit Aktualisierungsraten, die asynchron zur Scan-Periode sind. In der folgenden Tabelle werden geeignete Anwendungsbereiche für die beiden Zugriffsmethoden zusammengefasst:
| Allgemeine Verwendung | Zugriffsmodus |
|---|---|
| Einzelpunktzugriff auf I/O-Kanäle mit der gleichen Aktualisierungsrate | Scan |
| Einzelpunktzugriff auf lokale I/O-Kanäle asynchron zur Periode der NI Scan Engine, beispielsweise ein einzelner Schreibzugriff für einen Notstopp-Ausgang (nicht unterstützt für benutzerdefinierte I/O-Variablen) | Direkt |
Scan-Zugriff
Per Voreinstellung konfiguriert LabVIEW I/O-Variablenknoten mit dem Scan-Zugriff. Verwenden Sie den Scan-Zugriff für I/O-Kanalgruppen mit der gleichen Aktualisierungsrate und für I/O-Erweiterung. Beim Scan-Zugriff wird das Speicherabbild der Scan Engine verwendet, um nicht blockierende I/O-Schreib- und -Lesevorgänge durchzuführen, siehe Abbildung:
Nach jedem Lesen der I/O-Variable über den Scan-Zugriff gibt die NI Scan Engine sofort den aktuellen Wert des Speicherabbilds aus, ohne Blockierung oder Warten auf einen neuen Wert. Während jeden Scan-Vorgangs liest LabVIEW den aktuellen I/O-Wert und schreibt diesen in das Speicherabbild der NI Scan Engine.
Sowie Sie neue Daten an die I/O-Variable über den Scan-Zugriff senden, werden zuvor im Speicherabbild der NI Scan Engine gespeicherte Werte überschrieben. Während des Scan-Vorgangs verschiebt LabVIEW den im Speicherabbild gespeicherten Wert in den physikalischen I/O-Kanal. Um Datenverlust zu vermeiden, müssen Sie alle Schreiboperationen mit der Scan-Periode synchronisieren.
Direktzugriff
Verwenden Sie den Direktzugriff für den Einzelpunktzugriff (Lesen und Schreiben) auf lokale I/O-Kanäle mit Raten, die asynchron zur Scan-Periode sind. Für Anwendungen, bei denen Werte sofort geschrieben werden müssen, ist der Direktzugriff geeignet. Beim Direktzugriff wird das Speicherabbild der Scan Engine umgangen und direkt mit dem I/O-Gerätetreiber kommuniziert, um nicht blockierende I/O-Schreib- und -Lesevorgänge durchzuführen, siehe Abbildung:
Interpretieren von I/O-Variablenknotensymbolen
Jeder I/O-Variablenknoten im Blockdiagramm enthält ein Symbol zur Anzeige einer der beiden folgenden Zugriffsmethoden:
| Zugriffsmodus | Knotendarstellung |
|---|---|
| NI-PSP |
|
| Scan |
|
| Direkt |
|