LabVIEWForum.de - Netzwerkverbindung Arduino<->Labview bricht nach wenigen Sekunden ab

LabVIEWForum.de

Normale Version: Netzwerkverbindung Arduino<->Labview bricht nach wenigen Sekunden ab
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Liebe Forengemeinde,

ich habe eine VI (Client), die von einem Arduino (Server) über eine Netzwerkverbindung zwei Temperaturen einlesen und den Verlauf in einem Diagramm darstellen soll. Das funktioniert einige Zeit ganz gut, die Verbindung bricht allerdings nach ca. 15 bis 30 Sekunden ab. Die VI meldet einen Fehler 66 - der Server hätte also die Verbindung geschlossen. Der Arduino läuft über den Verbindungsabbruch noch ca. 10 Sekunden weiter (arbeitet einen Puffer ab?) und bleibt dann bei einem der vier client.println Befehle stehen.

Aufgrund der Einfachheit der beiden Programme ist es mir im Moment ein ziemliches Rätsel, was den Verbindungsabbruch verursacht. Hat da jemand eine Idee dazu? Ich bin für jede Anregung dankbar!

Ich füge die VI, einen Screenshot davon und die Arduino Firmware in den Anhang.

Liebe Grüße,
Klaudia.

EDIT: "Serial.println" gegen "client.println" getauscht. (Danke GerdW!)
Hallo Klaudia,

ich bin kein Arduino-Spezialist, aber bist du dir sicher, dass der Befehl serial.println wirklich an den Ethernet-Port schreibt?

(Hier steht was anderes…)
Hallo Klaudia,
Du setzt einen Timeout beim Lesen auf 10 Sekunden.
Wenn du nichts oder nur einen Teil ein gelesen hast, dann springt die If Anweisung immer auf "T002, Standard".

Verfolge doch mal den Inhalt der Stringleitung.

Gruß
Freddy
Ich danke für die raschen Antworten.

GerdW, das war natürlich ein Fehler von mir - es sollte client.println heißen. Hab's editiert.

Freddy, wenn ich den String in der Leitung verfolge, dann paßt es ganz genau, solange das Programm läuft: Einmal T001 und einmal T002, dann wieder von vorne. Die Cases werden auch richtig ausgewählt und die beiden (Fake-)Temperaturen in den zwei Diagrammen richtig angezeigt.
Sobald die Verbindung abbricht, hat die Leitung keinen Inhalt mehr (bzw. einen String mit Länge null).
Der Timeout scheint mit der Sache nichts zu tun haben: Die Lesevorgänge dauern immer nur einen Bruchteil von Sekunden, dann bricht die Verbindung plötzlich und nicht nach einer Wartezeit von 10 Sekunden ab. Auch ein Ändern des Wertes ändert am Gesamtverhalten des System nichts.

Jezt habe ich noch etwas probiert: Ich habe einen dritten Case hinzugefügt, nämlich "kein_Signal_vom_Server" und habe es als Standard gesetzt. Das Feld ist leer - es wird nichts gemacht. Auch das ändert nichts am Verhalten des Systems.

Hmmm... immer noch ratlos ;-/

lg, Klaudia.

PS: Aktuelle VI und Screenshot des dritten Cases anbei.
Die Beschreibung von Fehlercode 66 ist doch eindeutig: "Connection closed by the peer", die Gegenstelle (also dein Arduino) hat die Verbindung beendet.

Wieso, weshalb, warum: KA

Das musst du mal in der Dokumentation zu der Arduino Server-Funktionen nachlesen. LabVIEW ist da meiner Meinung nach nicht dran Schuld.

Gruß, Jens
Da ich das Problem nicht lösen konnte, habe ich auf dem Rechner eines Kollegen probiert. Und siehe da, dort geht's. Ich weiß also die Ursache nicht, kann aber zumindest sagen, daß die beiden Codes (LabView und Arduino) korrekt sind und funktionieren.

Danke den Helfern!
Gruß, Klaudia.
Referenz-URLs