Seit einigen LabVIEW Versionen gibt es die Möglichkeit, Python Scripte in LabVIEW aufzurufen. Dies ist eine gute Möglichkeit um bestehende Scripte welche in Python geschrieben wurden in LabVIEW Projekten wieder zu verwenden.
Wir erstellen eine einfach Python Datei mit dem Namen “main.py” in VSCode. Eine Funktion mit dem Namen “CalculateNumbers” wird in dieser Datei definiert. Dieser können 2 Parameter (Zahlen) übergeben werden. Zurückgegeben wird die Summe beider Zahlen.
Dieses Python Script wollen wir nun in LabVIEW einbinden. Dazu erstellen wir ein neues LabVIEW Projekt und ein Main.vi.
Die Python Node VIs findest du in der Programming Palette unter Connectivity. Dazu benötigen wir lediglich 3 VIs. Open Python Session, zum Öffnen einer Verbindung zum global installierten Python Interpreter (der Python Interpreter muss die selbe bitness haben wie die LabVIEW Installation 32bit <> 32 bit, oder 64 bit <> 64 bit). Close Python Session, schließt die Verbindung zum Python Interpreter. Beim VI Python Node, müssen wir den Pfad zum Python Script angeben, welches wir aufrufen wollen, sowie den Namen der Funktion im Script welche wir ausführen wollen. In unserem Fall rufen wir die CalculateNumbers Funktion in der Datei main.py auf.
Der große Nachteil bei dieser Implementierung ist, dass verschiedene LabVIEW Projekte immer auf den selben globalen Python Interpreter verweisen. Bei komplexeren Python Scripts, welche Zusatz Pakete benötigen (zb. numpy, matploblib, pandas, usw) ist somit ein per Projekt Dependency Management nicht möglich. Daher ist die Wahrscheinlichkeit von Konflikten vorprogrammiert. Reproduzierbarkeit und Portieren von Projekten wird somit auch erschwert.
Zur Lösung dieser Problematik werden in reinen Python Projekten sogenannte virtual Environments genutzt. Hier einige Vorteile der Nutzung von virtual Environments in Python (venv).
- Isolation: Venvs trennen Paketabhängigkeiten und Einstellungen pro Projekt und vermeiden Konflikte.
- Versionskontrolle: Venvs erlauben Verwaltung unterschiedlicher Paketversionen für verschiedene Projekte.
- Konsistenz: Venvs gewährleisten, dass alle Entwickler gleiche Paketversionen und Einstellungen verwenden.
- Vereinfachte Bereitstellung: Venvs ermöglichen das Verpacken aller Abhängigkeiten für konsistente Anwendungsbereitstellung.
- Flexibilität: Venvs erlauben parallele Installationen verschiedener Python-Versionen und Pakete ohne Kompatibilitätsprobleme.
- Einfachere Wartung: Venvs erleichtern die Wartung und Fehlerbehebung in Projekten.
Um ein Python virtual Environment (venv) manuell aufzusetzen, öffnen wir das Windows Terminal (PowerShell) oder cmd und navigieren zu unserem Python Projekt Ordner.
Mit dem Befehl – python -m venv .venv wird im aktuellen Ordner ein virtuelles Python Environment erstellt.
Nach Erstellung des venv ist es wichtig dieses virtuelle Environment zu aktivieren, bevor man packages installiert. Andernfalls würden die Packages im globalen Python Interpreter installiert werden. Zum Aktivieren führen wir die Datei Activate.ps1 aus. (diese befindet sich im .venv Ordner unter Scripts) Weiters installieren wir zb. numpy mit pip. Befehl – pip install numpy.
Seit LabVIEW 2023 Q1 können wir nun direkt auf virtual Environments verweisen und somit die zuvor genannten Vorteile nutzen. Mit dem VI, Open Virtual Environment Session (venv) können wir auf unser zuvor erstelles venv verweisen. ACHTUNG: Derzeit gibt es einen Bug – Im Pfad zum virtual Environment darf kein Leerzeichen sein!
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. (Pfade müssen angepasst werden)