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 

Dieses Thema hat akzeptierte Lösungen:

Problem mit Datasocket Ping Pong



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!

05.11.2021, 10:17
Beitrag #1

Hubert R. Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 193
Registriert seit: Jul 2011

2019 64bit
2011
DE


Deutschland
Problem mit Datasocket Ping Pong
Hallo zusammen,

ich bin zur Zeit dabei mich in die DataSockets einzuarbeiten. Im Anhang befinden sich 2 Vi’s.

Ping sendet einen Befehl an Pong welcher dann die gewünschte Antwort zurück liefert. Soweit so gut.

Das Problem ist, wenn ich einen Befehl sende kommt dieser bei Pong an und sollte das entsprechende Resultat liefert leider ist dieses immer um 1 zu spät.
Beispiel: Beide Vi’s wurden gestartet. Man drückt auf senden, dann sollte ein String (Data…….plus zähl Nummer) zurückgeliefert werden.
Diese geschieht aber erst nach dem zweiten Mal wenn ich send drücke. Auch so verhält sich die Umschaltung zwischen info/data.

Kann mir da jemand weiterhelfen?

LG Hubert


Angehängte Datei(en)
19.0 .vi  dss_test_pong.vi (Größe: 33,65 KB / Downloads: 221)

19.0 .vi  dss_test_ping.vi (Größe: 22,56 KB / Downloads: 230)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
06.11.2021, 14:27
Beitrag #2

Hubert R. Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 193
Registriert seit: Jul 2011

2019 64bit
2011
DE


Deutschland
RE: Problem mit Datasocket Ping Pong
Hallo zusammen,

das Problem liegt am ping. Habe nun das Vi umgebaut und teste das mal über Nacht.

Da es im Augenblick mit dem Localhost kommuniziert bin ich mir nicht sicher wie das Vi in einem richtigen Netzwerk verhält.

Was sind hierzu euere Erfahrungswerte in Bezug auf waits und Timeout’s?

Im Anhang das überarbeitete Vi.

LG Hubert


Angehängte Datei(en)
19.0 .vi  dss_test_ping(1).vi (Größe: 24,17 KB / Downloads: 191)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.11.2021, 16:56
Beitrag #3

Martin.Henz Offline
LVF-Team
LVF-Team

Beiträge: 426
Registriert seit: Jan 2005

2.5.1 bis 20
1992
kA

74363
Deutschland
RE: Problem mit Datasocket Ping Pong
Halloo Hubert,

das löst aber die Problematik nicht. Du wartest jetzt lediglich 100ms und hoffst, dass "pong" diese 100ms reichen um die Antwort zu senden.

Ich bin ja fast geneigt, zu schreiben, dass die Verwendung von "Datasocket" die Problematik auslöst.

Da steckt von Anfang an ein leerer String in dstp://localhost/lesen - auch wenn dein "pong" noch gar nicht gestartet wurde. Wenn du "Datasocket read" aufrufst, dann bekommst du nur den zuletzt geschriebenen String. Du kannst zwar auf einen neuen String warten, doch wenn der leere String noch nicht gelesen wurde, dann ist der Neu und es wird auch nicht gewartet.

Martin Henz
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.11.2021, 16:41
Beitrag #4

Hubert R. Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 193
Registriert seit: Jul 2011

2019 64bit
2011
DE


Deutschland
RE: Problem mit Datasocket Ping Pong
Hallo Martin,

erstmal danke für deine Antwort.

Ich bin mir nicht sicher ob ich dich richtig verstehe.
Meinst du mit lesen den leeren String den ich am Type Variant angeschlossen habe.
Siehe Bild.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.11.2021, 18:46
Beitrag #5

Martin.Henz Offline
LVF-Team
LVF-Team

Beiträge: 426
Registriert seit: Jan 2005

2.5.1 bis 20
1992
kA

74363
Deutschland
RE: Problem mit Datasocket Ping Pong

Akzeptierte Lösung

(09.11.2021 16:41 )Hubert R. schrieb:  Ich bin mir nicht sicher ob ich dich richtig verstehe.

vermutlich nicht - ich hätte gleich ein Bild dazu machen sollen.

Wenn du das erste ping (das aus deinem ersten Beitrag) ein wenig ergänzt (siehe Bild), dann funktioniert es schon:

   

Also am Anfang ein Read einfügen. In dem String steht noch nichts sinnvolles drin (nur ein leerer String), deshalb wird damit gar nichts gemacht. Beim später folgende Read Aufruf wartet das Read auch tatsächlich auf den von pong aktualisierten String.

Martin Henz
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.11.2021, 08:47
Beitrag #6

Hubert R. Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 193
Registriert seit: Jul 2011

2019 64bit
2011
DE


Deutschland
RE: Problem mit Datasocket Ping Pong
Hallo Martin,
soweit verstanden. Mir ist schon die Tage vorher etwas ähnliches durch den Kopf gegangen.
Ich habe nach einen "buffer clear" oder etwas Ähnlichen gesucht. Wie bei einer RS Schnittstelle oder einer queue.
Aber nachdem ich nichts gefunden habe, bin ich davon ausgegangen, dass die Funktionen das selber organisieren.

Auf die einfache Idee bei der Initialisierung einfach mal ein lesen auszulösen bin ich nicht gekommen. Manchmal sieht man den Wald vor lauter Bäumen nicht.

Hierzu noch eine Frage. Müsste ich nicht konsequenterweise auf beiden Seiten also Ping und Pong einen Read bei der Initialisierung machen?

Herzlichen Dank für die Lösung.

Gruß Hubert
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
10.11.2021, 14:17
Beitrag #7

Martin.Henz Offline
LVF-Team
LVF-Team

Beiträge: 426
Registriert seit: Jan 2005

2.5.1 bis 20
1992
kA

74363
Deutschland
RE: Problem mit Datasocket Ping Pong
(10.11.2021 08:47 )Hubert R. schrieb:  Müsste ich nicht konsequenterweise auf beiden Seiten also Ping und Pong einen Read bei der Initialisierung machen?

Nein, weil das Pong ja nur einen leeren String bekommt und damit nichts anfangen kann (unbekanntes Kommando). Es führt einfach
keine Aktion aus (sendet keine Antwort).
Ja, weil du eventuell später etwas mehr Komfort einbaust und z.B. Pong bei einem unbekannten Kommando einen Fehler ausgibt.

Martin Henz
Webseite des Benutzers besuchen 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
  DataSocket - alle Verbindungen anzeigen Marius89 2 2.764 10.03.2023 14:09
Letzter Beitrag: Marius89
  DataSocket Connection Muaadh 4 4.963 26.11.2019 23:28
Letzter Beitrag: Muaadh
  OPC und DataSocket: Verstehe den Code nicht tuhpon 2 3.891 10.07.2019 14:53
Letzter Beitrag: tuhpon
  Mit Datasocket OPC schneller 1ms lesen? PreVIEW 4 6.122 25.08.2016 12:02
Letzter Beitrag: PreVIEW
  Datasocket: Programm auf Server starten kwakz 8 8.528 14.12.2014 15:51
Letzter Beitrag: kevin9r
  bitte Hilfe, wieder Problem bei Datasocket Lesen/Schreiben LabviewLearning 4 6.717 22.08.2014 08:58
Letzter Beitrag: LabviewLearning

Gehe zu: