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 

TCP-Server-Socket Timeout



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!

27.07.2009, 22:50
Beitrag #1

MichaDu
Unregistered


 







TCP-Server-Socket Timeout
Hallo,

ich habe eine Apllikation mit einem TCP-Server-Socket. Immer wenn sich der Remote-Client-Partner abmeldet oder abstürzt und danach wieder neu startet, dauert es fast genau 90 Sekunden, bis die Verbindung wieder steht. Bis auf die üblichen Timeouts der TCP-VIs habe ich sonst keine Parameter, an denen ich drehen kann.

Weiß vielleicht jemand, woher diese "magischen" 90 Sekunden kommen und wie ich diese Zeit reduzieren kann? Bei einer kurzen Verbindungsunterbrechung dauert es sonst zu lange, bis die Verbindung wieder steht.

Vielen Dank!
Diese Nachricht in einer Antwort zitieren to top
27.07.2009, 22:58
Beitrag #2

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
TCP-Server-Socket Timeout
Ich weiss leider nicht woher die 90 Sekunden kommen. Aber wie erkennst du überhaupt, dass ein Client nun wech ist? Hast du versucht einfach das Ethernet-Kabel zu trennen? Hast du irgendein "Ping" eingebaut?

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.07.2009, 07:18
Beitrag #3

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
TCP-Server-Socket Timeout
Etwas mehr Umfeld und Information ist schon nötig um Dir helfen zu können. Das ist ganz sicher etwas dass Du in Deinem Code falsch machst aber ohne den zu sehen ist es ohne Kristallkugel und parapsychischen Fähigkeiten unsererseits nicht wirklich möglich Dir sehr viel weiter zu helfen.

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
28.07.2009, 14:04
Beitrag #4

MichaDu
Unregistered


 







TCP-Server-Socket Timeout
Das stimmt natürlich ;-)

Ich habe auf meinem PC eine LV-Server-Applikation, die über eine TCP/IP-Verbindung mit einer S7-300/CP343-1/aktiv kommuniziert. Sobald die Applikation auf dem PC gestoppt und neu gestartet wird, vergehen 90 Sekunden, bis der Datenaustausch wieder angestoßen wird.

Nach einigen Störsimulationsversuchen vermute ich, dass es wohl an der S7 liegt. Im Setup für die S7-CPU bzw. den S7-CP habe ich nichts gefunden, was dem nahe kommt. Ich bin aber auch kein S7-Experte. Hier habe ich mal die Zeiten aus den Versuchen:

Störungen und Zeiten bis zum Wiederaufbau der Verbindung (PC=Server, S7=Client/aktiv)
Kabelunterbrechung: 5 Sekunden
S7-Client Neustart: 10 Sekunden
PC-Server-Applikation Neustart: 90 Sekunden !!

90 Sekunden finde ich jedenfalls zu lang, wenn man überlegt, dass u.U. kritische Mess- oder Steuersignale in dieser Zeit nicht übertragen werden können. Hat vielleicht jemand einen Tipp hierzu oder ähnliche Erfahrung gemacht?
Diese Nachricht in einer Antwort zitieren to top
28.07.2009, 14:25
Beitrag #5

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
TCP-Server-Socket Timeout
Ein ganz grober Verdacht, aber mit der Info die Du bis jetzt gegeben hast ist mehr kaum möglich.

Die S7 bemerkt erst nach 90 Sekunden dass die PC Application nicht mehr lebt und schliesst erst dann den internen Socket ab. Schliesst Du die TCP/IP Verbindung in der LabVIEW Applikation ordentlich ab? Also zuerst ein Quit oder was auch immer Kommando zur SPS schicken und dann die TCP/IP Refnum ganz ordentlich mit TCP Close abschliessen?

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
28.07.2009, 14:48
Beitrag #6

MichaDu
Unregistered


 







TCP-Server-Socket Timeout
Die Sockets schließe ich ordentlich mit Close ab, d.h. zuerst den Connection-Socket, der mit dem Client verbunden ist und danach, sofern die Applikation beendet wird, den Listener-Socket.

Aber es stimmt, was du vermutest: ich habe zwischendurch die Applikation zum Testen "unsauber" über den Debug-Stop-Button beendet, d.h. sozusagen einen Absturz simuliert. Werden dann eventuell irgendwelche Netzwerkresourcen nicht oder nur mit dieser großen Verzögerungen freigegeben?
Diese Nachricht in einer Antwort zitieren to top
28.07.2009, 15:29
Beitrag #7

MichaDu
Unregistered


 







TCP-Server-Socket Timeout
Nachtrag:

Die Frage wäre dann, auf welcher Seite diese Wartezeit auftritt, PC oder S7? Ok, das könnte ich eventuell mit anpingen ausprobieren. Ich vermute dann auch mal, dass das aus irgendwelchen Systemgründen so gewollt ist und man diese Zeit nicht verändern kann. Es tritt jedenfalls nur auf, wenn der PC=Server ist.

Wenn ich mit der Verbindung PC=Client und S7=Server/passiv arbeite, habe ich diese lange Verzögerung nicht.
- Kabelunterbrechung = 5sec,
- PC-Applikationsabsturz = 3sec,
- S7-Neustart = 10sec

Schonmal vorab vielen Dank!
Diese Nachricht in einer Antwort zitieren to top
28.07.2009, 18:28
Beitrag #8

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
TCP-Server-Socket Timeout
' schrieb:Nachtrag:

Die Frage wäre dann, auf welcher Seite diese Wartezeit auftritt, PC oder S7? Ok, das könnte ich eventuell mit anpingen ausprobieren. Ich vermute dann auch mal, dass das aus irgendwelchen Systemgründen so gewollt ist und man diese Zeit nicht verändern kann. Es tritt jedenfalls nur auf, wenn der PC=Server ist.

Wenn ich mit der Verbindung PC=Client und S7=Server/passiv arbeite, habe ich diese lange Verzögerung nicht.
- Kabelunterbrechung = 5sec,
- PC-Applikationsabsturz = 3sec,
- S7-Neustart = 10sec

Schonmal vorab vielen Dank!

Jetzt wirds interessant! Das ist nicht so verwunderlich. Was Du beschreibst ist nämlich so: Mit dem S7 als Server kann der mehrere Client Connections akzeptieren. Die vorige bleibt dann zwar vielleicht noch 90 Sekunden hängen aber wenn die neue Applikation vorbei kommt und eine neue Verbindung anfordert wird einfach eine zweite Connection geöffnet. Umgekehrt mit der S7 als Client ist das anders. Ausser wenn ein Client ganz spezifisch dazu gemacht wurde mehrere Connection nebeneinander zu öffnen wird das normalerweise nur einmal getan. Die Verbindung bleibt hängen bis der Client nach 90s beschliesst dass da wohl etwas falsche ist und die Verbindung abschliesst und wieder eine neue aufbaut. Das ist einfach so.

Eventuel kannst Du das Timeout bei nicht aktiver Verbindung kürzer dann 90 Sekunden einstellen, aber die richtige Lösung ist eigentlich die S7 als Server zu betreiben.

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


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  VISA Timeout LP 8 8.137 10.10.2019 09:05
Letzter Beitrag: jahu
  CLD Prüfungsängste, Timeout HasteMalNeMark 7 5.933 29.03.2016 16:01
Letzter Beitrag: rolfk
  Event-Struktur: Timeout während der Eventabarbeitung kwakz 4 5.493 04.09.2015 17:21
Letzter Beitrag: Lucki
  Timeout für Netzwerkpfad einstellbar? hansi9990 3 4.190 18.05.2015 17:54
Letzter Beitrag: GerdW
  UDP Write Timeout NoWay 5 6.103 06.01.2015 12:34
Letzter Beitrag: rolfk
  BenutzerEvent löst timeout-Case aus Hasenfuss 21 14.586 04.07.2013 18:46
Letzter Beitrag: Holy

Gehe zu: