LabVIEWForum.de
Netzwerkbuffer reseten? - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenkommunikation (/Forum-Datenkommunikation)
+---- Thema: Netzwerkbuffer reseten? (/Thread-Netzwerkbuffer-reseten)



Netzwerkbuffer reseten? - pgl_bear - 29.07.2010 05:51

Hallo zusammen
ich habe folgendes Problem, ich steuere eine Applikation von einem PC die auf einem anderen PC läuft. Die Kommunikation läuft über TCP/IP.
Manchmal hängt sich die Kommunikation auf und das ganze Programm bleibt stehen, bzw darf nicht weiter machen. Ich sende zwar denn diesen Befehl öfters, aber da geht einfach nichts.
Wenn man den Rechner (den Master wo LV drauf läuft) rebootet, dann geht wieder alles.

Gibt es eine Möglichkeit die Buffer zu reseten oder irgend eine andere Möglichkeit um das Problem in den Griff zu bekommen?

Ich hänge noch ein Bild dran mit der Verarbeitung der Kommunikation, wenn ich beispielsweise "SREM K0" sende, muss der andere Rechner "SREM 0" antworten (SREM steht für Set Remote).


Netzwerkbuffer reseten? - SeBa - 29.07.2010 07:11

Offtopic2


O

34-fache Stapelsequenz...

Huh


Wow.


Gruß SeBa


Netzwerkbuffer reseten? - pgl_bear - 30.07.2010 04:23

Hilfreicher Beitrag SeBa, was hätte ich nur ohne Dich gemacht?....


Netzwerkbuffer reseten? - SeBa - 30.07.2010 07:35

' schrieb:Hilfreicher Beitrag SeBa, was hätte ich nur ohne Dich gemacht?....

Richtig Programmiert.

Gruß SeBa


Netzwerkbuffer reseten? - IchSelbst - 30.07.2010 09:30

' schrieb:ich habe folgendes Problem, ich steuere eine Applikation von einem PC die auf einem anderen PC läuft. Die Kommunikation läuft über TCP/IP.
Manchmal hängt sich die Kommunikation auf und das ganze Programm bleibt stehen, bzw darf nicht weiter machen.
Bis du denn sichern, dass die TCP/IP-Verbindung noch steht? Möglicherweise hat sich nämlich die TPC/IP-Verbindung - möglicherweise auch von selbst - gekappt. Puffer löschen bringt dann nichts. Verbindungsneuaufbau muss dann gemacht werden.

TCP/IP hat so gesehen keinen Puffer. Sobald du Schreiben machst, wird der Puffer übertragen - es sei denn natürlich, die Verbindung zur Gegenseite besteht nicht mehr.

Was sind denn das für Vierecke in den Strings? Stell die Strings mal um auf Anzeigeformat Hexdarstellung (Siehe Kontextmenü).


Netzwerkbuffer reseten? - rolfk - 17.08.2010 09:54

' schrieb:Hilfreicher Beitrag SeBa, was hätte ich nur ohne Dich gemacht?....

Der Beitrag war vielleicht nicht so hilfreich aber entspricht ganz meiner Meinung. Das Diagram das Du da zeigst macht so ein bischen alles was die LabVIEW Styleguides entweder schwer abraten oder gar einfach als Pfusch abtun. Stacked Sequences und ganz sicher mit 34 Frames gehören eindeutig in den Bereich "LabVIEW Missbrauch". Die Fehlerbehandlung ist zwar andeutungsweise vorhanden aber mit Brachialmethoden wie "Stop" kommt man da nicht sehr weit, aber naja wenn Du eine Stacked Sequence benützt ist das halt die einzige noch einigermassen machbare Fehlerabhandlung.

Zu Deinem Problem: Verwendest Du DHCP? Wenn ja dann ist das was passiert wahrscheinlich dass die Lease Time ausläuft und der Rechner eine neue IP Adresse kriegt. Von dem Moment an sind alle offenen Verbindingen im Sinne des Netzwerkstacks zwar noch stets gültig, im Sinne einer funktionsfähigen Verbindung aber nicht mehr. Denn sie verweisen auf Netzwerkendpunkte die so nicht mehr stimmen.

Aber auch wenn Du kein DHCP verwendest kann es vorkommen dass eine Verbindung disfunktional wird. Die richtige Vorgehensweise dabei ist um das zu detektieren (error Cluster out) und dann die Verbindung zu schliessen und neu aufzubauen und die Kommunikation noch einmal zu probieren. Aber bitte das jetzt nicht in die Stacked Sequence hineinpfriemelen. Das gibt Dir nur noch ein unhandlicheres Monster als es nun schon ist. Solche Funktionalität gehört in einen sauber designten Treiber, mit low level subVIs die die verschiedenen Kommunikationsblöcke realisieren und einer State Machine die das Verbindungshandling mit Retry and Reconnect erledigt. Stacked Sequences haben da absolut nichts verloren.