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!
19.07.2018, 07:52 (Dieser Beitrag wurde zuletzt bearbeitet: 19.07.2018 08:19 von xxokiehxx.)
Hallo zusammen,
mein Programm funktioniert so weit und ich kann mein Gerät ansteuern. Problem ist, dass jedes mal der Fehler 56 kommt und ich nicht weiß an was das liegt. Wenn ich dahinter ein Fehleraufheben Modul setzte würde alles funktionieren, jedoch finde ich das keine saubere Lösung!
Und wie gestalte ich das ganze am besten wenn ich einen Befehl senden möchte und danach den Status rücklesen will und das ganze mit verschiedenen Befehlen 3 mal hintereinander? Ist das so optimal wie in Bild 3?
Zitat:wie gestalte ich das ganze am besten wenn ich einen Befehl senden möchte und danach den Status rücklesen will und das ganze mit verschiedenen Befehlen 3 mal hintereinander?
Eine Statemachine ist nicht schlecht, nur die Umsetzung mangelhaft…
Zitat:Ist das so optimal wie in Bild 3?
Nein!
- Das TCPOpen gehört vor die Schleife, das TCPClose dahinter.
- Die Referenz wird über einen "default if unwired"-Tunnel ausgegeben: das ist ein No-Go!
- Und überhaupt: warum benutzt du nicht AutoCleanup? Die krummen Drähte überall behindern den DATAFLOW!
Zitat:wie gestalte ich das ganze am besten wenn ich einen Befehl senden möchte und danach den Status rücklesen will und das ganze mit verschiedenen Befehlen 3 mal hintereinander?
Eine Statemachine ist nicht schlecht, nur die Umsetzung mangelhaft…
Zitat:Ist das so optimal wie in Bild 3?
Nein!
- Das TCPOpen gehört vor die Schleife, das TCPClose dahinter.
- Die Referenz wird über einen "default if unwired"-Tunnel ausgegeben: das ist ein No-Go!
- Und überhaupt: warum benutzt du nicht AutoCleanup? Die krummen Drähte überall behindern den DATAFLOW!
Ich hatte das ganze zuvor in einer solchen Struktur und das für jeden schritt nur mit neuen schreibbefehlen und weiterschaltbedingungen, ist das optimal?
Ich habe im ersten Beitrag noch Bilder zu dem fehler geladen
TCP vor die schleife, also wie im folgenden Bild?
19.07.2018, 08:31 (Dieser Beitrag wurde zuletzt bearbeitet: 19.07.2018 08:32 von GerdW.)
(19.07.2018 08:36 )Freddy schrieb: Hallo xxokiehxx,
damit Du andere Fehler nicht auch mit aufhebst, solltest Du die 56 als Aufzuhebender Fehlercode einfühgen.
Gruß
Freddy
Danke Freddy, dass habe ich so gemacht. Finde es komisch, dass mein Gerät die Antwort (z.b. "OK" oder 30.5 (Ist-Temperatur) zurück sendet und ich diese weiter verarbeiten kann aber trotzdem dieser Fehler kommt.
(19.07.2018 08:31 )GerdW schrieb: Hallo xx,
Zitat:TCP vor die schleife, also wie im folgenden Bild?
Nein!
Heißt "vor die Schleife" bei dir "in der Case-Struktur innerhalb der Schleife"?
Kann dir nicht folgen, einmal habe ich in den Bilder das "Open" in die While-Schleife gesetzt, einmal außerhalb der While-Schleife und am Anfang war "Open" im jeweiligen Case
"Vor der Schleife" heißt vor der Schleife!
Zitat:Ich habe im ersten Beitrag noch Bilder zu dem fehler geladen
Dein Gerät antwortet nicht (rechtzeitig) auf deine Anfrage.
Mehr kann man dazu nach Betrachten deines Bildes nicht sagen…
P.S.: Deine Tastatur ist kaputt, schaff dir mal eine neue an!
Anzeige
19.07.2018, 08:46 (Dieser Beitrag wurde zuletzt bearbeitet: 19.07.2018 08:48 von jg.)
Der Fehler kommt, da du 100 Zeichen anforderst, dein Gerät aber weniger Zeichen sendet. Somit läufst du in einen Time-Out -> Fehler 56.
Gruß, Jens
Nachtrag: Auf Grund deines Parallelthreads sieht es so aus, als ob dein Gerät TCP/IP Nachrichten mit einem \r\n abschließt. Pass dein TCP/IP Read darauf an!
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
(19.07.2018 08:46 )jg schrieb: Der Fehler kommt, da du 100 Zeichen anforderst, dein Gerät aber weniger Zeichen sendet. Somit läufst du in einen Time-Out -> Fehler 56.
Gruß, Jens
Nachtrag: Auf Grund deines Parallelthreads sieht es so aus, als ob dein Gerät TCP/IP Nachrichten mit einem \r\n abschließt. Pass dein TCP/IP Read darauf an!
Gruß, Jens
Hallo Jens,
Problem gelöst! Vielen Dank für deinen Tipp
Wie würdest du das ganze lösen, wenn man mehrere Befehle sendet und empfangen möchte?