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 

Kommunikation 2er executables



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!

24.10.2011, 08:14
Beitrag #1

M@rRy Offline
LVF-Padawan
***


Beiträge: 273
Registriert seit: Aug 2011

7.1
2011
EN


Deutschland
Kommunikation 2er executables
Guten Morgen,

ich mal wieder ... ich bin gerad dabei mir zwei VIs zu bauen die später jeweils eine exe darstellen. Jetzt habe ich bisher immer über eine globale Variable den Datenaustausch zwischen diesen beiden VIs realisiert. Leider funktioniert dies ja bei zwei executables nicht mehr, wenn ich das so richtig verstanden habe. Wie löst man sowas am besten? Die beiden Programm liegen jeweils auf dem selbem PC und im selbem Ordner. Deshalb würde ich ungern über ein Protokoll gehen.

Gruß
Daniel

Nur wer neugierig ist, lernt ständig dazu.

Mythos:
Mit LabView lassen sich gut Programme leichter entwickeln

Realität:
Mit LabView lassen sich gut und schlechte Programme leichter enwickeln!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
24.10.2011, 08:23
Beitrag #2

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
RE: Kommunikation 2er executables
Du kannst auch "Shared Variables" nehmen (ab LabVIEW 8.0!), wenn Du nicht die TCP/IP-Funktionen willst. Oder Du schreibst die Daten in eine Textdatei.... Was sind denn das für Daten, die Du hin- und herverschieben willst?

Gruß Markus

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.10.2011, 08:27
Beitrag #3

BNT Offline
LVF-Freak
****


Beiträge: 744
Registriert seit: Aug 2008

5.0 - 22Q3
1999
EN

64291
Deutschland
RE: Kommunikation 2er executables
Moin Daniel
Eine andere Möglichkeit ist Shared Memory.

Gruß Holger

NI Alliance Partner & LabVIEW Champion
GnuPG Key: 6C077E71, refer to http://www.gnupg.org for details.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.10.2011, 08:28 (Dieser Beitrag wurde zuletzt bearbeitet: 24.10.2011 08:30 von M@rRy.)
Beitrag #4

M@rRy Offline
LVF-Padawan
***


Beiträge: 273
Registriert seit: Aug 2011

7.1
2011
EN


Deutschland
RE: Kommunikation 2er executables
Im Prinzip nichts wildes, also einmal eine Art Kommunikationsaufbau der mit Boolean läuft und dann Messdaten und 2 strings.

Nun habe ich ja leider nicht die Möglichkeit auf 8.0 zu kommen, mal wieder nicht. Wie is das mit den globalen, hab ich mich da vielleicht verlesen oder ist es wirklich so das diese nur dann verwendet werden können wenn es um eine exe und ein VI geht? So habe ich das ganze nämlich auch hinbekommen nur mit zwei exen geht das ganze halt nicht mehr.

// Edit: eine txt kommt für mich eigentlich nicht in Frage da ich möchte das die eine Seite Daten reinschreibt und die andere sie rausnimmt, also sie danach auch wirklich weg sind. Das wäre wohl ein bisschen viel Aufwand mit einer txt und string suchen und und und...

Nur wer neugierig ist, lernt ständig dazu.

Mythos:
Mit LabView lassen sich gut Programme leichter entwickeln

Realität:
Mit LabView lassen sich gut und schlechte Programme leichter enwickeln!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.10.2011, 08:47
Beitrag #5

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Kommunikation 2er executables
(24.10.2011 08:28 )M@rRy schrieb:  Wie is das mit den globalen, hab ich mich da vielleicht verlesen oder ist es wirklich so das diese nur dann verwendet werden können wenn es um eine exe und ein VI geht? So habe ich das ganze nämlich auch hinbekommen nur mit zwei exen geht das ganze halt nicht mehr.
Da musst du dich verlesen haben. Eine globale LV-Variable ist natürlich nur innnerhalb einer "Instanz" bekannt, also nur innerhalb der LV-Umgebung oder bei einer Exe nur innerhalb der Exe.

Also schau den Link von BNT oder bau eine Kommunikation per TCP/IP auf. Oder per UDP. Oder, oder, oder.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.10.2011, 08:54
Beitrag #6

M@rRy Offline
LVF-Padawan
***


Beiträge: 273
Registriert seit: Aug 2011

7.1
2011
EN


Deutschland
RE: Kommunikation 2er executables
(24.10.2011 08:47 )jg schrieb:  Da musst du dich verlesen haben. Eine globale LV-Variable ist natürlich nur innnerhalb einer "Instanz" bekannt, also nur innerhalb der LV-Umgebung oder bei einer Exe nur innerhalb der Exe.

Genau das meinte ich damit. Hab halt probeweise anstelle zweier exen eine exe mit bekanntem VI gebaut, da ging es aber oke dann muss ich jetzt schauen was ich da am besten nehme. Hatte halt auf den Speicher gebaut weil das eine Programm deutlich langsamer läuft als das andere, was gewollt ist und somit nicht jeden Wert mitbekommt. Das ist auch nicht schlimm und sogar gewollt aber bei einer festen Verbindung, wie sie durch TCP ja eigentlich vorhanden ist, wird es interessant. Andererseits weiß ich nicht ob ein UDP-Paket einfach "futsch" is wenn es von der Gegenseite ignoriert wird. Gibt es dazu vielleicht noch eine Rat mit auf den Weg zurück ins WWW?

Nur wer neugierig ist, lernt ständig dazu.

Mythos:
Mit LabView lassen sich gut Programme leichter entwickeln

Realität:
Mit LabView lassen sich gut und schlechte Programme leichter enwickeln!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.10.2011, 09:33 (Dieser Beitrag wurde zuletzt bearbeitet: 24.10.2011 09:34 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: Kommunikation 2er executables
(24.10.2011 08:54 )M@rRy schrieb:  
(24.10.2011 08:47 )jg schrieb:  Da musst du dich verlesen haben. Eine globale LV-Variable ist natürlich nur innnerhalb einer "Instanz" bekannt, also nur innerhalb der LV-Umgebung oder bei einer Exe nur innerhalb der Exe.

Genau das meinte ich damit. Hab halt probeweise anstelle zweier exen eine exe mit bekanntem VI gebaut, da ging es aber oke dann muss ich jetzt schauen was ich da am besten nehme. Hatte halt auf den Speicher gebaut weil das eine Programm deutlich langsamer läuft als das andere, was gewollt ist und somit nicht jeden Wert mitbekommt. Das ist auch nicht schlimm und sogar gewollt aber bei einer festen Verbindung, wie sie durch TCP ja eigentlich vorhanden ist, wird es interessant. Andererseits weiß ich nicht ob ein UDP-Paket einfach "futsch" is wenn es von der Gegenseite ignoriert wird. Gibt es dazu vielleicht noch eine Rat mit auf den Weg zurück ins WWW?

Wenn Du statt einer globalen Variable ein LabVIEW 2 Style Global (oder intelligente Global, oder Funktionsglobal) verwendest hast Du schon fast alles was nötig ist. Mittels VI Server kannst Du dann dieses VI in der anderen Applikationsinstanz aufrufen und ausführen. Geht alles zwar über TCP/IP aber LabVIEW macht das ganze Protokoll für Dich.

Grundsätzlich funktioniert das ganz genau gleich wie eine normale Call By Reference Operation mittels VI Server, nur machst man vor dem Open VI Reference auch noch eine explicite Open Application Reference, der man die Addresse und Portnumber der anderen Applikation übergibt. Dann in der anderen Applikation auch noch sicherstellen dass man den VI Server über TCP/IP enabled hat und eine Portnumber konfiguriert hat et voila!

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
24.10.2011, 09:43
Beitrag #8

M@rRy Offline
LVF-Padawan
***


Beiträge: 273
Registriert seit: Aug 2011

7.1
2011
EN


Deutschland
RE: Kommunikation 2er executables
Du hast dazu nicht zufällig ein auf 7.1 lauffähiges Beispiel parat? Ich muss gestehen das klingt sehr gut, ich bastel auch gerade schon an eine TCP-Verbindung, jedoch bin ich mir da noch überhaupt nicht so wirklich sicher. Erstes Problem ist schon, welche IP und wonach suche ich den Port aus? ...

Nur wer neugierig ist, lernt ständig dazu.

Mythos:
Mit LabView lassen sich gut Programme leichter entwickeln

Realität:
Mit LabView lassen sich gut und schlechte Programme leichter enwickeln!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.10.2011, 16:39
Beitrag #9

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Kommunikation 2er executables
(24.10.2011 09:43 )M@rRy schrieb:  Du hast dazu nicht zufällig ein auf 7.1 lauffähiges Beispiel parat? Ich muss gestehen das klingt sehr gut, ich bastel auch gerade schon an eine TCP-Verbindung, jedoch bin ich mir da noch überhaupt nicht so wirklich sicher. Erstes Problem ist schon, welche IP und wonach suche ich den Port aus? ...
Laufen beide Exen auf demselben Rechner? Dann IP 127.0.0.1 = localhost. Portauswahl bleibt dir überlassen.

Und noch ein Nachtrag zu UDP: Da kannst du einfach Nachrichten senden. Wenn kein Empfänger da ist, der das Paket ausliest, dann geht es im Datennirvana verloren.

Gruß, Jens

Offtopic2
Was du Entwicklungs-Zeit einsparen könntest mit einer neueren LV-Version. Kriegst du das nicht an den entsprechenden Stellen durch?!

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.10.2011, 07:01
Beitrag #10

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: Kommunikation 2er executables
(24.10.2011 09:43 )M@rRy schrieb:  Du hast dazu nicht zufällig ein auf 7.1 lauffähiges Beispiel parat? Ich muss gestehen das klingt sehr gut, ich bastel auch gerade schon an eine TCP-Verbindung, jedoch bin ich mir da noch überhaupt nicht so wirklich sicher. Erstes Problem ist schon, welche IP und wonach suche ich den Port aus? ...

So direkt hab ich nichts was sich schnell in ein einfaches Beispiel umsetzen liesse. Aber der Example Finder ist im Hinblick auf VI Server eine recht interessante Fundgrube (und ungefähr 200000 anderen Dingen Cool). Das einzige Problemchen ist die Konfiguration der endgültigen Exe. In LabVIEW konfigurierst Du das alles cool in den Preferences aber danach musst Du diese Einstellungen vom LabVIEW.ini file in Dein <MyExe>.Ini file kopieren.

Für den Rest gilt was jg schon sagte: localhost als Addresse solange alles auf dem selben Rechner bleibt und eine selbstausgewählte Portnumber, am besten zwischen 48000 und 65535.

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
30
Antwort schreiben 


Gehe zu: