LabVIEWForum.de
Mehrere Antworten über RS232 empfangen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Instrument IO & VISA (/Forum-Instrument-IO-VISA)
+---- Thema: Mehrere Antworten über RS232 empfangen (/Thread-Mehrere-Antworten-ueber-RS232-empfangen)



Mehrere Antworten über RS232 empfangen - Y-P - 03.07.2007 15:27

Hallo,

ich habe ein "Problem", bzw. etwas, das zwar soweit funktioniert, mir aber nicht sehr gefällt.
Ich muss firmeninterne Baugruppen über RS232 mit einem eigenen Protokoll ansteuern.
Dies funktioniert auch soweit.
Ich schicke einen Befehl und erhalte eine vollständige Antwort, die in HEX-Darstellung meines Strings mit 00 (ohne Daten), bzw. 01 (mit Daten) beginnt.
Nun gibt es aber auch Antworten, die mit 02 beginnen.
Das bedeutet dann, dass die Baugruppe meldet, dass sie den Befehl verstanden hat, aber eine Bestätigung erst später (max. 3 Sekunden) kommt.
In meinem VI mache ich es so, dass ich einfach überprüfe, ob die zweite Ziffer eine 2 ist. Wenn ja, dann soll 3 Sekunden gewartet werden, um die 2. Antwort zu empfangen. Wenn nein, dann darf sofort abgebrochen werden, weil die (in dem Fall ja einzelne) Antwort dann schon da ist.
Wie kann ich das geschickter machen, um nicht von den 3 Sekunden abhängig zu sein, bzw. um das ganze dynamischer zu gestalten. Also, dass z.B. die Antwort schon nach 1,5 Sekunden angezeigt wird, wenn die Baugruppe fertig ist und nicht 1,5 s noch im "Leerlauf" wartet.
Das (vereinfachte) VI habe ich angehängt.

Gruß Markus


Mehrere Antworten über RS232 empfangen - katsumi - 03.07.2007 15:47

Vielleicht durch den Check von Bytes at Port ?


Mehrere Antworten über RS232 empfangen - Y-P - 03.07.2007 16:26

Das dachte ich mir auch schon, dass das doch klappen müsste, einfach abzufragen, ob der zweite Wert 0 ist und dann die "Read-Schleife" abbrechen. Das tut es aber nicht, sondern es bricht sofort ab.

Gruß Markus

' schrieb:Vielleicht durch den Check von Bytes at Port ?



Mehrere Antworten über RS232 empfangen - katsumi - 03.07.2007 16:40

Komisch, dass es nicht klappt. Waere so schoen einfach gewesen.
Was fuer ein Wert an Bytes at Port bricht deine Schleife ab ? Und wie hoch waere der Wert, wenn du eine regulaere Antwort (d.h. nach 3 s) bekommen wuerdest ?


Mehrere Antworten über RS232 empfangen - eg - 03.07.2007 17:20

Dann musst du dein Wait durch Timeout ersetzen. Schaue in meinem einfachen RS232-Terminal. Da benutze ich den VISA Event "serial character" mit einem Timeout. D.h. sobald ein oder mehrere Zeichen kommen, wird gelesen, ansonsten wird SOLANGE gewartet bis ein Zeichen kommt innerhalb des Timeouts.

eg


Mehrere Antworten über RS232 empfangen - Y-P - 03.07.2007 19:21

Danke Euch beiden. Ich kann das leider erst morgen probieren...... Ich melde mich dann, wenn ich es hin bekommen habe.

Gruß Markus