Python <> Labview Schnittstelle über DLL

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Hand
User
Beiträge: 65
Registriert: Sonntag 28. Januar 2007, 14:28

Python <> Labview Schnittstelle über DLL

Beitragvon Hand » Sonntag 28. Januar 2007, 14:37

Hallo,
ich habe das Problem dass ich zyklisch Daten mit Labview austauschen muss.
Python soll senden und empfangen, Labview die Daten auswerten und verändert.
Python agiert also als Kommunikationsprozess.

Leider hat Labview keine vernünftigen Schnittstellen, nur ActiveX und .net

Jetzt hab ich mir gedacht ich mach das ganze einfach über eine DLL die auf Python zugreift und damit Daten aus einer MySql DB liest oder evtl über xml-rpc.

Code: Alles auswählen

DLL_API const char* DLL_func(void)
{
  const char* x;
  Py_Initialize();
  PyRun_SimpleString("print test");
  x = Py_GetVersion();
  Py_Finalize();
  return x;
}


Das problem ist jetzt, wenn das Python script nur einmal aufgerufen wird muss ja bei jeder Abfrage eine neue Verbindung zur Datenbank hergestellt werden.

Kann ich das Python Script mit PyRun starten und dann irgendwie über DLL Aufrufe auf die in Python vorhandenen Variablen/Funktionen zugreifen?
berndr
User
Beiträge: 3
Registriert: Freitag 26. Januar 2007, 14:02

Beitragvon berndr » Montag 29. Januar 2007, 10:24

Hallo,
du kannst über die Pythonapi Python in Labview einbetten. Diese ist in der Hilfe ausführlich dokumentiert. Die größte Schwierigkeit ist aus meiner Sicht das ständige Konvertieren der Daten Typen
LabVIEW <-> C <-> Python

Alternativ gibt es bei NI noch eine Beschreibung/Beispiel zu Ironpython:

http://community.ni.com/examples/using- ... om-labview

Vielleicht hilft dir das ja weiter.

Gruß,
Bernd.
Rolf
User
Beiträge: 1
Registriert: Donnerstag 8. Februar 2007, 08:48

Beitragvon Rolf » Donnerstag 8. Februar 2007, 13:10

Hallo

Wenn du Daten von einer Anwendung zur andere senden und empfangen musst, könntest du das ja auch über ein TCP/IP(Socket) verbindung machen.

Das würde dann ähnlich funktionieren, wie wenn ich über die serielle Schnittstelle mit einem anderen Gerät, etc. kommuniziere.

Vorteil: Du könntest deine zwei Anwendungen auch geographisch getrennt benutzen.

Nur so ne Idee

Gruss

Rolf

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder