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!
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Mehrere Antworten über RS232 empfangen
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
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Mehrere Antworten über RS232 empfangen
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 ?
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
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 ?
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.
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Mehrere Antworten über RS232 empfangen
Danke Euch beiden. Ich kann das leider erst morgen probieren...... Ich melde mich dann, wenn ich es hin bekommen habe.
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------