In LabVIEW Programmen gibt es meist viele Parameter, welche zum Beispiel je nach verwendeter Hardware, oder bei einem bestimmten Prüfaufbau, oder bei verschiedenen Prüflingen geändert werden müssen, damit sich die implementierte Funktionalität entsprechend anpasst.
Beispiele für Parameter in LabVIEW Code sind, Pfade, Abtastraten, Username, Hardware Name, Kanal Informationen usw. Im Eifer des Gefechts werden diese oft nur als Konstanten im Blockdiagramm implementiert. Dies erschwert die Wartbarkeit, Lesbarkeit und erhöht den Debugging Aufwand und schränkt auch die Wiederverwendbarkeit ein.
Dies wollen wir lösen, indem wir veränderbare Parameter in Dateien auslagern, welche zu Programmstart eingelesen werden und so zum Beispiel unseren LabVIEW Cluster mit Initialwerten befüllen. Dafür können verschiedenste Ansätze gewählt werden, wie zb. INI, CSV, JSON, XML Dateien oder auch Datenbank Abfragen.
Im heutigen Post konzentrieren wir uns auf XML Dateien. Dazu gibt es eine Erweiterung im VI Package Manager genannt NI GXML. Mit dieser Erweiterung kann man mit sehr wenig Aufwand eine skalierbare Lösung implementieren, welche automatisch aus einem LabVIEW Cluster eine korrespondierende XML Struktur generiert.
Nach dem herunterladen und installieren findet man im Blockdiagramm unter Addons die Palette GXML.
Um aus einem LabVIEW Cluster (in diesem Beispiel My_Cluster.ctl) eine XML Datei zu erzeugen sind lediglich 2 VI´s aus der Palette notwendig. Das erste VI “Generator.vi” konvertiert den Cluster in eine XML Struktur als String. Das zweite VI “Write XML to File.vi” schreibt den XML String in eine Datei. Rechts im Bild sieht man, wie die generierte XML Struktur aussieht. (geöffnet in VSCode) Die ASCII Datei kann mit jedem Text Editor geöffnet und auch editiert werden.
Umgekehrt wollen wir in unserer Applikation die XML Datei einlesen und damit unseren LabVIEW Cluster initialisieren. Dafür benötigen wir ebenfalls nur 2 VI´s aus der GXML Palette. Erstes VI “Read XML from File.vi” zum einlesen der XML Datei und umwandeln in einen String, Das zweite VI “Poly Parse.vi – Search Parser” wandelt den XML String in eine Variant Struktur um (auf Basis der Cluster Konstante My_Cluster). Dieser Variant muss jetzt noch mit “Variant to Data” in den tatsächlichen Cluster Datentyp umgewandelt werden. Achtung, die Cluster Konstante muss den selben Namen haben wie in der XML Datei.
Die Parameter können nun mit einem beliebigen Text Editor geändert werden. Mit diesem Code kann bei Programm start die geänderte XML Datei eingelesen werden und so den LabVIEW Cluster initialisieren.
Diese und viele weitere Tricks lernt ihr in unseren Schulungen und Consultings. Link zu den Terminen
Link zum Beispielprojekt:
Die Programm Beispiele stellen nur einen Ausschnitt einer Gesamtapplikation dar. Verwendung der Code Beispiele auf eigene Gefahr.