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!
Ich versuche ein Messgerät über Rs232 zu steuern und benutze dazu das VI Advanced Seriell Write/Read. Das Messgerät erwartet von mir einige HEX-Eingaben und soll dann darauf reagieren,oder antworten. Ich kontrolliere die Kommunikation mit einem Portmon. Daher weiß ich,dass das handshake funktioniert. Auch das Schreiben funtioniert, jedoch ich der letze Schritt des Schreibens die Meldung " Flush Buffer ". Es liegen nun auf dem Buffer keine Bytes mehr an und somit kann das Messgerät mir nur leer antworten, was es auch tut.........
Frage, kann man diesen Flush Buffer unterdrücken? Ich denke, dass dies die Ursache für die unvollständige Kommunikation ist.
siehst du das Flush Buffer auf der Leitung, oder wie? Im VI selber ist ja ein explizites Löschen des Puffers nicht drin...
Wenn der letzte Schritt ein automatisches Flush sein sollte, dürfte das ja eigentlich für dein Gerät kein Problem sein...der Befehl ist ja schon abgesetzt! Fehlt dir vielleicht ein Steuerzeichen beim versenden? Erwartet dein Gerät evtl. ein CarriageReturn (CR, bzw. LF bzw. CRLF) als letztes Zeichen?
A.
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
siehst du das Flush Buffer auf der Leitung, oder wie? Im VI selber ist ja ein explizites Löschen des Puffers nicht drin...
Wenn der letzte Schritt ein automatisches Flush sein sollte, dürfte das ja eigentlich für dein Gerät kein Problem sein...der Befehl ist ja schon abgesetzt! Fehlt dir vielleicht ein Steuerzeichen beim versenden? Erwartet dein Gerät evtl. ein CarriageReturn (CR, bzw. LF bzw. CRLF) als letztes Zeichen?
A.
Moi Achim,
Ja, ich sehe auf dem Sniffer, dass ein Flush Buffer gesendet wird. Ich habe gedacht, dass wenn ein Flush Buffer gesendet wird, bevor das Gerät antwortet, die Antwort ja unterdrückt wird?
Und ja, ich sende ein CR, wie von meinem Gerät erwartet.
Gruß
Jochen
Anzeige
06.08.2012, 15:16 (Dieser Beitrag wurde zuletzt bearbeitet: 06.08.2012 15:19 von Soean.)
Ich habe gerade genau das gleiche Phänomen. Befehl wird gesendet, direkt danach kommt Flush Buffer ("abgehört" mit PortMon). Wobei ich daraus nicht erkennen kann, ob der Receive oder Transmit Buffer geflusht wird, mein Gerät antwortet jedenfalls nicht mehr. In meinem Code wird der das Flush-VI jedenfalls nur einmal nach dem Initialisieren aufgerufen, danach nie wieder.
Witzigerweise hat vor 'ner Stunde noch alles funktioniert....
Hat dafür inzwischen jemand eine Lösung bzw. eine Ursache gefunden?
Gruß,
Soean
EDIT: PortMon sagt "Buffers", plural also. Schließe mal daraus, dass beide Buffer geflusht werden...
06.08.2012, 15:57 (Dieser Beitrag wurde zuletzt bearbeitet: 06.08.2012 16:11 von Soean.)
Hmmm...Scheinbar ist das Flush-Buffer doch standardmäßig in VISA read und VISA write integriert. Warum er das jetzt plötzlich auch durchführt ist mir noch ein Rätsel, aber ich versuche es erst mal mit der Lösung, die hier vorgeschlagen wird: