Programmatisches Lesen und Schreiben von Umgebungsvariablen
- Aktualisiert2025-08-27
- 5 Minute(n) Lesezeit
Wenn Ihre Anwendung auf eine große Anzahl von Umgebungsvariablen zugreift, können Sie diese programmatisch mit den Funktionen für Umgebungsvariablen lesen und schreiben. Diese Art der Programmierung ist oft übersichtlicher und ausbaufähiger im Vergleich zur Verwendung von Umgebungsvariablenknoten. Mit einer einzigen Funktion können Sie auf mehrere Umgebungsvariablen zugreifen. Mit dem Umgebungsvariablenknoten kann dagegen nur jeweils auf eine einzige Variable zugegriffen werden.
- PSP-Variable—Datenobjekt, das mit dem NI-Protokoll zum Senden und Empfangen (NI-PSP) in einem Netzwerk veröffentlicht wird. Gängige Beispiele für PSP-Variablen sind Netzwerk-Umgebungsvariablen, I/O-Variablen mit aktiviertem Datenaustausch im Netzwerk und über den DAQmx-I/O-Server gesendete DAQ-Kanäle.
- I/O-Variable—Umgebungsvariable, bei der einzelne Daten über die NI Scan Engine ausgetauscht werden.
Die folgende Abbildung zeigt ein Beispiel für das programmatische Lesen von Umgebungsvariablen. Die Daten werden dann in ein vorbelegtes Array eingefügt und verarbeitet.
Der Programmablauf in der Abbildung lautet wie folgt:
- Mit der Funktion Variablen-Container durchsuchen werden alle Umgebungsvariablen des Double-Datentyps unter Meine Bibliothek gefunden. Über Referenz-Array (Ausgang) wird ein Array aus Referenzen auf diese Variablen ausgegeben.
- Mit der Funktion Variablenverbindung herstellen wird basierend auf dem Array aus Variablen-ID-URLs eine Verbindung zu jeder Umgebungsvariablen hergestellt. Die For-Schleife hält an, wenn ein Fehler auftritt.
- Mit der Funktion Array-Größe wird basierend auf dem Array aus Referenzen die Anzahl der mit der Funktion "Variablen-Container durchsuchen" gefundenen Umgebungsvariablen bestimmt.
- Mit der Funktion Array initialisieren wird basierend auf der Anzahl der Umgebungsvariablen ein Array für die Daten der Variablen erstellt. Durch Initialisierung des Arrays außerhalb der While-Schleife wird die CPU-Auslastung optimiert.
- Mit der Funktion Variable lesen werden alle Umgebungsvariablen gelesen, die mit der Funktion "Variablenverbindung herstellen" geöffnet wurden.
- Die Funktion Teil-Array ersetzen speichert die Daten der Umgebungsvariablen in dem Array, das mit der Funktion "Array initialisieren" erstellt wurde.
- Das Array mit den Daten der Umgebungsvariablen wird vom SubVI "Process Data" verarbeitet.
- Die Lese- und Verarbeitungsprozesse werden kontinuierlich in der While-Schleife ausgeführt, bis ein Fehler auftritt oder der Benutzer die Stopp-Schaltfläche betätigt.
- Mit der Funktion Variablenverbindung beenden werden die Verbindungen zu den Umgebungsvariablen getrennt.
Die Funktionsweise dieser Anwendung unterscheidet sich nicht von einer Anwendung mit Umgebungsvariablenknoten. Da der Zugriff auf Umgebungsvariablen aber programmatisch erfolgt, können unzählige Variablen ohne Aktualisierung des Blockdiagramms hinzugefügt werden. Nehmen Sie beispielsweise an, dass Meine Bibliothek zehn Variablen enthält (Variable1 bis Variable10). Sie könnten über das Dialogfeld Variablen erstellen (Batch) die Variable11 bis Variable500 zu Meine Bibliothek hinzufügen. Wenn das VI nach erneuter Übertragung von Meine Bibliothek das nächste Mal ausgeführt wird, werden Variable1 bis Variable500 gelesen, ohne dass die neuen Variablen zum Blockdiagramm hinzugefügt werden müssen.
In den folgenden Abschnitten werden die Programmiertechniken des Beispiels genauer beschrieben.
Suchen von Umgebungsvariablen
Mit Hilfe der Funktion Variablen-Container durchsuchen können Sie Umgebungsvariablen, die bestimmte Kriterien erfüllen, suchen. Im folgenden Blockdiagramm wird mit dieser Funktion nach allen Umgebungsvariablen in einem bestimmten Container gesucht, der die folgenden Kriterien erfüllt:
- Befindet sich in "Meiner Bibliothek" auf dem lokalen Computer
- Double-Datentyp
- Variablen-ID-URL enthält den String foo
| Hinweis Über das Dialogfeld Variablenobjekt suchen können Sie während der Bearbeitung im Netzwerk oder im aktuellen Projekt nach Umgebungsvariablen und Variablen-Containern suchen. Klicken Sie auf den Pfeil des Variablenelements oder der Konstante (z. B. die Konstante Container-Referenz (Eingang) in der Abbildung oben) und wählen Sie Suchen, um das Dialogfeld Variablenobjekt suchen zu öffnen. |
| Achtung Wenn Sie mit programmatisch gefundenen Umgebungsvariablen arbeiten, kann es passieren, dass der falsche Datentyp gelesen oder geschrieben wird. Mit Hilfe des Eingangs Datentyp der Funktion "Variablen-Container durchsuchen" können Sie das Lesen oder Schreiben des falschen Datentyps vermeiden. |
Mit den folgenden Eigenschaften und Methoden von Variablen-Containern können Sie Umgebungsvariablen auch programmatisch suchen.
Mit dem VI in der folgenden Abbildung wird mit Hilfe der Eigenschaft Alle Variablen nach allen PSP-Variablen im lokalen Netzwerk gesucht.
Der Programmablauf in der Abbildung lautet wie folgt:
- Zuerst überträgt das VI mit Hilfe der Konstante Lokales Variablenobjekt (Referenz) über die lokale PSP-Variablen-Engine eine Referenz an die Eigenschaft Netzwerk-Engines.
- Die Eigenschaft "Netzwerk-Engines" gibt ein Array aus PSP-Variablen-Engines aus, die sich auf anderen Computern im Netzwerk befinden. Das VI durchläuft dann jede PSP-Variablen-Engine in einer For-Schleife.
- Die Eigenschaft Stamm ermittelt eine Referenz auf den Stamm-PSP-Variablen-Container auf jedem Computer im Netzwerk.
- Die Eigenschaft Alle Variablen ermittelt ein Array aus Referenzen auf alle Variablen der Netzwerkcomputer.
- Das VI fügt alle im Netzwerk gefundenen Variablen dem Array Alle PSP-Variablen hinzu.
| Tipp Sie können den für die Variablenobjektklasse vorkonfigurierten Variableneigenschaftsknoten als Basis für das Blockdiagramm in der vorigen Abbildung verwenden. |
Herstellen und Trennen von Umgebungsvariablenverbindungen
Mit der Funktion Variablenverbindung herstellen wird programmatisch eine Verbindung zu einer Variablen hergestellt, siehe nachfolgendes Blockdiagramm.
Wenn die Umgebungsvariablen nicht mehr benötigt werden, schließen Sie mit der Funktion Variablenverbindung beenden in einer For-Schleife alle Variablenreferenzen. Mit dieser Funktion wird der für alle Variablenverbindungen reservierte Speicher freigegeben.
Lesen und Schreiben von Umgebungsvariablen
Mit der Funktion Variable lesen können Sie aktuelle Daten von Variablen programmatisch empfangen. Im Gegensatz zu einem Umgebungsvariablenknoten, der im Bearbeitungsmodus mit einer bestimmten Umgebungsvariablen verknüpft werden muss, enthält die Funktion "Variable lesen" den Eingang Umgebungsvariable (Referenz, Eingang), über den Sie die zu lesende Variable während der Ausführung festlegen können. Verwenden Sie die Funktion beispielsweise in einer "For-Schleife", um mehrere Umgebungsvariablen zu lesen, die über ein Array aus Referenzen angegeben sind, siehe nachfolgendes Blockdiagramm.
Mit der Funktion Variable schreiben können Sie aktuelle Daten von Variablen programmatisch senden. Verwenden Sie die Funktion beispielsweise in einer "For-Schleife", um in mehrere Umgebungsvariablen zu schreiben, die über ein Array aus Referenzen angegeben sind.
| Tipp Sie können durch das Lesen und Schreiben von I/O-Variablen-Containern als Arrays die Leistung verbessern und das Blockdiagramm effektiver gestalten. |
| Hinweis Bei Datenmengen von weniger als 8 Kilobyte kann die Übertragung der Daten über das Netzwerk bis zu 10 ms dauern. Um eine solche Verzögerung zu vermeiden, können Sie mit dem VI Daten der Umgebungsvariablen entfernen die Daten der Umgebungsvariablen sofort senden. |