INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Python Code in LabVIEW nutzen



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

14.03.2016, 10:34
Beitrag #1

n4f3ts Offline
LVF-User
*


Beiträge: 30
Registriert seit: May 2014

LabVIEW 2014, 2015
2014
DE


Deutschland
Python Code in LabVIEW nutzen
Hallo zusammen,

ich möchte gerne bestehenden Python Code in LabVIEW einbinden. Ich habe mir dazu schon so einiges durchgelesen was ich bei google finden konnte, habe aber noch keine passende Lösung gefunden.

Ich habe folgendes schon ausprobiert:
Mit "Systembefehl ausführen"
   
kann ich die Python.exe starten und eine .py-Datei laden. Problem hierbei ist, dass ich Daten nicht so einfach und komfortabel an das Python-Programm übergeben kann...

Des Weitern habe ich die OpenG Bibliothek "LabPython" installiert und ausprobiert. Diese funktioniert zwar grundsätzlich aber sobald ich in meinem Python-Code Bibliotheken einbinde (wie z.B. NumPy oder SciPy) funktioniert es wiederum nicht.

Was ich eigentlich machen will ist meinem Python Code mehrere Arrays oder auch Variablen übergeben, das Python Programm berechnet irgendetwas und gibt mir ein Array oder eine Variablen zurück.

Hat irgend jemand eine Lösung für dieses Problem?
Schon mal vielen Dank!

Gruß
Stefan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.03.2016, 11:09
Beitrag #2

Freddy Offline
Oldtimer
****


Beiträge: 729
Registriert seit: Aug 2008

2019, 2020, 2021
1996
DE

76275
Deutschland
RE: Python Code in LabVIEW nutzen
Hallo Stefan,
was kann Python, was LabView nicht kann?

Das Problem mit den Bibliotheken liegt doch eher an dem Python - Programm.
Das Python Main muss doch die Bibliothek eingebunden haben oder einbinden, nicht LabView.

Gruß
Freddy

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.03.2016, 11:27
Beitrag #3

n4f3ts Offline
LVF-User
*


Beiträge: 30
Registriert seit: May 2014

LabVIEW 2014, 2015
2014
DE


Deutschland
RE: Python Code in LabVIEW nutzen
Hallo Freddy,

Zitat:was kann Python, was LabView nicht kann?
Ich habe nur die LabVIEW Base Version (d.h. mir steht nur grundlegende Mathematik zur Verfügung) und Python kann alles was Matlab auch kann und kostet nix Big Grin.

Zitat:Das Problem mit den Bibliotheken liegt doch eher an dem Python - Programm
Die Python Programme an sich funktionieren alle, wenn ich sie ohne LabVIEW verwende.

Zitat:Das Python Main muss doch die Bibliothek eingebunden haben oder einbinden, nicht LabView.
Genau, die Python Bibliotheken sind im Python Programm eingebunden, funktionieren aber nicht (oder nur teilweise) in Verbindung mit der OpenG Bibliothek "LabPython"...


Gruß
Stefan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.03.2016, 11:33
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Python Code in LabVIEW nutzen
Hallo Stefan,

Zitat: Python Bibliotheken sind im Python Programm eingebunden, funktionieren aber nicht (oder nur teilweise) in Verbindung mit der OpenG Bibliothek "LabPython"...
Dann kannst du diesen Weg nicht nutzen und musst dein Skript über SysExec aufrufen!

Zitat:meinem Python Code mehrere Arrays oder auch Variablen übergeben, das Python Programm berechnet irgendetwas und gibt mir ein Array oder eine Variablen zurück.
Die üblichen Antworten lauten:
- Dateien schreiben/lesen
- Netzwerk-Kommunikation nutzen
- Bei SysExec kann man sich auch den Output des Skripts zurückmelden lassen

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.03.2016, 12:42
Beitrag #5

n4f3ts Offline
LVF-User
*


Beiträge: 30
Registriert seit: May 2014

LabVIEW 2014, 2015
2014
DE


Deutschland
RE: Python Code in LabVIEW nutzen
Hallo GerdW,

Zitat: Dateien schreiben/lesen
Ok, d.h. ich muss meine Arrays z.B. in eine .csv -Datei schreiben und Sie in meinem Python-Code wieder einlesen oder meinst du was anderes? (So habe ich es schon mal ausprobiert und hat auch funktioniert)

Zitat:Netzwerk-Kommunikation nutzen
Weiß ich jetzt leider nicht was du damit meinst.


Gruß
Stefan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.03.2016, 12:46
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Python Code in LabVIEW nutzen
Hallo Stefan,

Zitat:d.h. ich muss meine Arrays z.B. in eine .csv -Datei schreiben und Sie in meinem Python-Code wieder einlesen oder meinst du was anderes?
CSV-Dateien sind schön, du kannst aber beliebige Formate und Dateiendungen benutzen Big Grin

Zitat:Weiß ich jetzt leider nicht was du damit meinst.
TCP/UDP über die IP-Adresse "localhost"…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
14.03.2016, 15:20 (Dieser Beitrag wurde zuletzt bearbeitet: 14.03.2016 15:30 von rolfk.)
Beitrag #7

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: Python Code in LabVIEW nutzen
(14.03.2016 11:27 )n4f3ts schrieb:  Genau, die Python Bibliotheken sind im Python Programm eingebunden,

Sind Sie aber eben nicht! Die Python Standard-Funktionsbibliotheken (ausser einigen wenigen low level Bibliotheken) sind fast alle im Lib Unterverzeichnis in der Python Installation als externe (zum Teil vorkompilierte) Python Scripts anwesend.

Die Python DLL wurde irgendwann mal zwischen Python 2.3 und 2.5 von dem Python Installationsdirectory ins System32 Directory befördert und hier beginnt das Problem.

Die Python DLL probiert während dem Starten das Python Installationsdirectory zu finden. Dazu liest sie verschiedene Environment Variablen, danach die Registry und zuletzt wird das Directory wo die DLL ist und danach das Directory wo das aktuelle Executable File ist durchsucht. Leider scheinen alle aktuellen Python Installer aber zu vergessen, eine dieser Environmentsvariablen zu setzen (weniger wünschenswerte Option unter Windows) oder einen entsprechenden Registryeintrag zu machen. Das Directory wo die Python DLL ist hilft auch nicht mehr seit diese DLL ins System32 Directory verschoben wurde und das Directory der aktuellen Application ist für den Python Interpreter zwar korrekt und darum funktioniert es dort auch noch, aber LabVIEW ist natürlich an einem ganz anderen Ort installiert.

Der einfachste Fix ist daher um am Anfang Deines Scripts bevor irgendein import Statement gemacht wird die Zeile

Code:
sys.path.append("C:\Python27\Lib")

hinzuzufügen, mit dem Path natürlich so angepasst dass er auf Deine aktuelle Python Installation weist. Andere Workarounds wären um eine der Umgebungsvariablen PYTHONPATH oder PYTHONHOME zu setzen. PYTHONHOME sollte dabei das Installationsdirectory von Python sein (z.B. "C:\Python27"), während PYTHONPATH der Syntax von sys.path entspricht.
Oder man könnte einen Registryeintrag machen unter "HKLM\Software\Python\PythonCore\<version>\PythonPath\<name>" mit dem Pfad zum Python Lib-Directory als Wert.

<version> entspricht dabei der Python Version und <name> ist ein beliebiger Name, hier zum Beispiel "Lib".

Dann sollten die eingebauten Libraries von Python auch von LapPython aus verfügbar sein. Ausführung von numpy und scipy wird aber danach immer noch ein Problem sein, da hier scheinbar eine Inkompatibilität besteht aufgrund von Multithreadingproblemen. LabVIEW ist voll Multithreading, Python grundsätzlich nicht und numpy und scipy und möglicherweise andere Libraries geraten dann irgendwie ins Trudeln. LabPython versucht zwar um das zu verhindern durch entsprechende Python Funktionen anzurufen aber irgendetwas scheint dabei nicht ganz so gut zu gehen, möglicherweise bedingt durch Änderungen in Python seit der ursprünglichen Implementation von LabPython unter Python 2.2 und 2.3.

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.03.2016, 09:23
Beitrag #8

n4f3ts Offline
LVF-User
*


Beiträge: 30
Registriert seit: May 2014

LabVIEW 2014, 2015
2014
DE


Deutschland
RE: Python Code in LabVIEW nutzen
Hallo,

OK, danke für die Hilfe!

Gruß
Stefan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Labview 16 aufruf von Python Skript bachatero18 2 3.559 21.12.2022 11:00
Letzter Beitrag: bachatero18
  Kommunikation mit laufendem Python-Script Lime 2 3.310 29.04.2021 16:32
Letzter Beitrag: jg
  LabVIEW 7.1 vi Code in LabVIEW 2015 öffnen Muri 9 6.847 01.03.2017 13:02
Letzter Beitrag: Muri
  Finite Elemente Methode in LabVIEW nutzen stumpfi 2 3.684 30.01.2017 10:08
Letzter Beitrag: stumpfi
  Viele Variablen in SubVI nutzen chrisw 3 3.799 02.12.2016 11:35
Letzter Beitrag: GerdW
  CRC-Berechnung in LabVIEW anhand eines C-Code-Beispiels /Suche nach Frequenzumrichter Y-P 32 22.950 23.02.2016 08:57
Letzter Beitrag: Y-P

Gehe zu: