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 

Senden und Empfangen über TCP/IP localhost



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!

10.07.2007, 15:37
Beitrag #1

MEV Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Apr 2007

8.2.1
2007
kA


Deutschland
Senden und Empfangen über TCP/IP localhost
Hallo,

vielleicht kann mir hier jemadn helfen.
Möchte einen String über eine TCP Verbindung senden und Empfangen. Ziel soll der localhost mit der Portnummer 1234 sein.
Hiermit will ich Daten aus LabVIEW einem anderen Programm zur Verfügung stellen.
Empfangen funktioniert, jedoch macht das Senden Probleme. Der Aufbau ist der identsiche wie bei Empfangen, mit dem
Unterschied, dass TCP schreiben eingefügt wurde.
Beim Ausführen erfolgt Fehler 63.
Lesen und Scheiben sind in einer Sequenz hintereinander.
Füge beide Sequenzen mit der Fehlermeldung bei.

Gruß

Mev


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.07.2007, 16:02
Beitrag #2

dc6xs Offline
registered alien
****


Beiträge: 762
Registriert seit: Aug 2006

6.1,7.00
2006
kA

79106
Sonstige
Senden und Empfangen über TCP/IP localhost
' schrieb:Hallo,

vielleicht kann mir hier jemadn helfen.
Möchte einen String über eine TCP Verbindung senden und Empfangen. Ziel soll der localhost mit der Portnummer 1234 sein.
Hiermit will ich Daten aus LabVIEW einem anderen Programm zur Verfügung stellen.
Empfangen funktioniert, jedoch macht das Senden Probleme. Der Aufbau ist der identsiche wie bei Empfangen, mit dem
Unterschied, dass TCP schreiben eingefügt wurde.
Beim Ausführen erfolgt Fehler 63.
Lesen und Scheiben sind in einer Sequenz hintereinander.
Füge beide Sequenzen mit der Fehlermeldung bei.

Gruß

Mev

Die Windowsfirewall oder eine andere Firewall hast Du ja hoffentlich schon überprüft, nicht das daher die Probleme kommen.
Hast Du testweise mal einen anderen Port als die 1234 versucht?

Mal sehen was noch an anderen Vorschlägen kommt.

Gruß,
Rob

PS: Sind die ganzen globalen Variablen echt notwendig?

Bitte Beachten:
Die obenstehenden Texteile können unter Umständen Sarkasmus und Ironie enthalten, für nicht erkannten Sarkasmus oder nicht erkannte Ironie wird keine Haftung übernommen.

N.B.:
"Multiple exclamation marks, " he went on, shaking his head, "are a sure sign of a deseased mind." - Terry Pratchett
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.07.2007, 17:51
Beitrag #3

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
Senden und Empfangen über TCP/IP localhost
' schrieb:Die Windowsfirewall oder eine andere Firewall hast Du ja hoffentlich schon überprüft, nicht das daher die Probleme kommen.
Hast Du testweise mal einen anderen Port als die 1234 versucht?

Mal sehen was noch an anderen Vorschlägen kommt.

Gruß,
Rob

PS: Sind die ganzen globalen Variablen echt notwendig?

Das "Grund-Problem" bei der TCP/IP Kommunikation ist: wieviele Daten will ich schicken und empfangen.

Dafür gibt es 3 Einstellungen: Standard, CRLF und immediately.

Es hat sich bewährt und da gibt es ein Beispiel im Example-Finder dazu (...) vorneweg die Länge des Strings (das sind immer genau 4 Byte) zu senden, diese 4 Byte zu empfangen und daraus wieder die Information zu gewinnen, wieviel Daten denn nun genau empfangen werden sollen.

Des weiteren musst du den Fehler 56 (timeout) abfangen, der periodisch auftritt, wenn du nichts sendest. Das ist dann in dem Fall weniger als "echter" Fehler zu interpretieren, sondern eher als "info", dass nix angekommen ist.

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.07.2007, 10:02 (Dieser Beitrag wurde zuletzt bearbeitet: 11.07.2007 10:03 von rolfk.)
Beitrag #4

rolfk Offline
LVF-Guru
*****


Beiträge: 2.306
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Senden und Empfangen über TCP/IP localhost
' schrieb:Hallo,

vielleicht kann mir hier jemadn helfen.
Möchte einen String über eine TCP Verbindung senden und Empfangen. Ziel soll der localhost mit der Portnummer 1234 sein.
Hiermit will ich Daten aus LabVIEW einem anderen Programm zur Verfügung stellen.
Empfangen funktioniert, jedoch macht das Senden Probleme. Der Aufbau ist der identsiche wie bei Empfangen, mit dem
Unterschied, dass TCP schreiben eingefügt wurde.
Beim Ausführen erfolgt Fehler 63.
Lesen und Scheiben sind in einer Sequenz hintereinander.
Füge beide Sequenzen mit der Fehlermeldung bei.

i2dx hat es schon angesprochen. Das wahrscheinlichste Problem ist: wie weiss der Empfänger dass jetzt alle Daten angekommen sind. Dazu gibt es grundsätzlich verschiedene Ansätze. Für Text basierte Protokolle wird dabei meist ein <CR><LF> Zeilenumbruch angefügt. Für binäre Protokolle wird meist im Datenstrom eine explizite Länge vorangestellt oder ein spezifischer Character reserviert als Ende-Zeichen.

Wenn Du die default Einstellung bei TCP Read verwendest beendet LabVIEW den Lesevorgang automatisch nach dem Lesen der entsprechenden Anzahl Bytes oder dem Timeout und liefert Dir die Daten zurück. Falls Du ein Text basiertes Protokoll hast wäre es aber wahrscheinlich sinnvoll den TCP Read Mode auf CRLF zu setzen, damit das Lesen nicht unnötig bis zum Ablauf des Timeouts hängen bleibt.
Beim Schreiben fügt LabVIEW nicht automatisch ein <CR><LF> ans Ende des Strings, Das musst Du schon explizit selber tun, ansonsten könnte man ja das TCP Write VI nicht benützen um auch binäre Protokolle zu implementieren. Ohne <CR><LF> wartet Dein Client aber wahrscheinlich ewig ohne das eigentlich bereits komplett empfangene Kommando je als gültig zu erkennen.

Rolf Kalbermatter

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
12.07.2007, 09:02
Beitrag #5

MEV Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Apr 2007

8.2.1
2007
kA


Deutschland
Senden und Empfangen über TCP/IP localhost
' schrieb:i2dx hat es schon angesprochen. Das wahrscheinlichste Problem ist: wie weiss der Empfänger dass jetzt alle Daten angekommen sind. Dazu gibt es grundsätzlich verschiedene Ansätze. Für Text basierte Protokolle wird dabei meist ein <CR><LF> Zeilenumbruch angefügt. Für binäre Protokolle wird meist im Datenstrom eine explizite Länge vorangestellt oder ein spezifischer Character reserviert als Ende-Zeichen.

Wenn Du die default Einstellung bei TCP Read verwendest beendet LabVIEW den Lesevorgang automatisch nach dem Lesen der entsprechenden Anzahl Bytes oder dem Timeout und liefert Dir die Daten zurück. Falls Du ein Text basiertes Protokoll hast wäre es aber wahrscheinlich sinnvoll den TCP Read Mode auf CRLF zu setzen, damit das Lesen nicht unnötig bis zum Ablauf des Timeouts hängen bleibt.
Beim Schreiben fügt LabVIEW nicht automatisch ein <CR><LF> ans Ende des Strings, Das musst Du schon explizit selber tun, ansonsten könnte man ja das TCP Write VI nicht benützen um auch binäre Protokolle zu implementieren. Ohne <CR><LF> wartet Dein Client aber wahrscheinlich ewig ohne das eigentlich bereits komplett empfangene Kommando je als gültig zu erkennen.

Rolf Kalbermatter


Hallo,

habe es probiert und komme immer noch zu keiner Lösung.


Habe eine TCP/IP Schnittstelle schon einmal in einem anderen VI benutzt. Es läuft zwar nicht, aber es kommen
auch keine Fehlermeldungen.
Ich habe alles aus diesem VI gelöscht und das Programm laufen lassen. Das gleiche Ergebnis.
Dann habe ich diese Schleife in ein neues VI kopiert und plötzlich generiert es Fehlermeldungn.

Ist es vielleicht möglich, dass mir jemand ein kleines VI zur Verfügung stellt, wo parallel was gelesen wird und wieder
ausgegeben (localhost).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.07.2007, 09:13
Beitrag #6

Dennis.Moser Offline
Administrator
Administrators

Beiträge: 3.045
Registriert seit: Aug 2004

5.1 : 7.1 : 8.x : 20xx
1997
DE_EN

57589
Deutschland
Senden und Empfangen über TCP/IP localhost
hi,

häng doch mal dein "nacktes" TCP/IP vi an... dann kann man mal drüberschauen...Wink

Wissen ist das einzige Gut das sich vermehrt, wenn man es teilt!

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

BC: 14vqy6mgfswpX6z7HLVxk1h3sHAvzE4aZG
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.07.2007, 22:09
Beitrag #7

rolfk Offline
LVF-Guru
*****


Beiträge: 2.306
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Senden und Empfangen über TCP/IP localhost
' schrieb:Ist es vielleicht möglich, dass mir jemand ein kleines VI zur Verfügung stellt, wo parallel was gelesen wird und wieder ausgegeben (localhost).

Das ist nicht nötig. Gibt mehrere Beispiele die direkt mit LabVIEW mitkommen. Schau mal im Example Finder nach unter dem Suchbegriff TCP.

Rolf Kalbermatter

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
20.07.2007, 12:55
Beitrag #8

MEV Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Apr 2007

8.2.1
2007
kA


Deutschland
Senden und Empfangen über TCP/IP localhost
' schrieb:Das ist nicht nötig. Gibt mehrere Beispiele die direkt mit LabVIEW mitkommen. Schau mal im Example Finder nach unter dem Suchbegriff TCP.

Rolf Kalbermatter


Hallo,

mein Problem war, dass LabVIEW immer einen zuhörer Braucht, sonst kommt eine Fehlermeldung.
Habe mir Rat aus den LabVIEWbeispielen geholt.
Ich muss das VI, welches zuhört als erstes starten sonst funktioniert es nicht.

Ich wollte schreiben und im Folgeschritt lesen. Ist das überhaupt möglich? Denn wenn der Gegenüber nicht
auf hören bzw lesen geschaltet hat, wird doch sofort ein Fehler produziert.
Müssten sich beide nicht auf einander abstimmten?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.07.2007, 13:08
Beitrag #9

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Senden und Empfangen über TCP/IP localhost
' schrieb:Hallo,

mein Problem war, dass LabVIEW immer einen zuhörer Braucht, sonst kommt eine Fehlermeldung.
Habe mir Rat aus den LabVIEWbeispielen geholt.
Ich muss das VI, welches zuhört als erstes starten sonst funktioniert es nicht.

Ich wollte schreiben und im Folgeschritt lesen. Ist das überhaupt möglich? Denn wenn der Gegenüber nicht
auf hören bzw lesen geschaltet hat, wird doch sofort ein Fehler produziert.
Müssten sich beide nicht auf einander abstimmten?


TCP/IP Übertragung ist VERBINDUNGSORIENTIERT. Was bringt dir das Senden der Daten ins Leere?

Um die Daten einem anderen Programm zur Verfügung zu stellen machst du einen Server:

   

eg

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.07.2007, 12:02 (Dieser Beitrag wurde zuletzt bearbeitet: 26.07.2007 12:03 von MEV.)
Beitrag #10

MEV Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Apr 2007

8.2.1
2007
kA


Deutschland
Senden und Empfangen über TCP/IP localhost
' schrieb:TCP/IP Übertragung ist VERBINDUNGSORIENTIERT. Was bringt dir das Senden der Daten ins Leere?

Um die Daten einem anderen Programm zur Verfügung zu stellen machst du einen Server:

[attachment=34295:Server.PNG]

eg


Hi,
habe das soweit hinbekommen. Nur, dass ich jetzt wieder ein anderes Problem habe. Ich empfange nur 1x!
Der Wert ändert sich nicht weiter, obwohl etwas anderes gesendet wird.
Hatte das gleiche Problem beim Senden. Habe die Verbindungserstellung ausserhalb des Programmes gesetzt und
damit das Problem behoben. Beim Empfangen gestaltet sich das leider anders.
Füge ein Bild meines Empfangvorgangs bei.
Wenn es geht, soll es ohne Listener programmiert werden

Gruß Mev


Angehängte Datei(en) Thumbnail(s)
   
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
  Trigger Signal über SCPI senden Greensche 17 9.762 27.07.2016 10:18
Letzter Beitrag: GerdW
  User Events in multiplen VIs empfangen Kasi 2 3.653 03.06.2014 13:48
Letzter Beitrag: Kasi
  Daten empfangen und anzeigen -X-plosiv 7 6.535 02.03.2012 11:51
Letzter Beitrag: -X-plosiv
  String formatieren und über GPiB senden Index 2 4.611 15.06.2011 15:19
Letzter Beitrag: Index
  file.txt senden/empfangen funk 12 9.295 31.07.2009 08:24
Letzter Beitrag: Y-P

Gehe zu: