LabVIEWForum.de - Wie empfangene RS232-Bytes vor Weiterverarbeitung sammeln?

LabVIEWForum.de

Normale Version: Wie empfangene RS232-Bytes vor Weiterverarbeitung sammeln?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich fange gerade mit LabVIEW an und möchte als erstes Projekt die Daten aus einem Messgerät über RS232 auslesen und weiterverarbeiten. Die Daten kommen als String im Format

"ch1: 24.7; ch2: 36.2; "

an, wobei die Zahl der Kanäle von einem bis acht variert, die Zeichenanzahl also nicht konsistent ist. Am Ende des Strings kommt noch ein CR/LF. Das Empfangen der Daten und der Programmteil zum Aufspalten des Strings funktionieren soweit, was bislang scheiterte ist der Teil der die empfangenen Bytes in einem Buffer sammelt, bis ein CR/LF empfangen wurde und den Buffer an den Programmteil zum Aufspalten weitergibt.

Wie kann ich also empfangene Bytes in einem String sammeln bis zur Detektion eines CR/LF, dann den String weitergeben an einen anderen Programmteil und danach das ganze wieder wiederholen? Meine Versuche bislang gingen alle schief, wobei ich mir die Fehler schlicht nicht erklären kann.
Hallo Chrispoph,

wie ist deine Init-Funktion belegt? (Ich meine VISA-Init)

Oben gibt es einen Anschluss "Termination Char" und einen "Timeout". Lese in der LV Help darüber.

Gruss, Eugen
Hallo Eugen,

die Init-Funktion wird mit 9600baud, 0 parity, 1 stop, 8 data und einem timeout von 10s aufgerufen. Bislang habe ich den Termination Char auf False gesetzt. Die Hilfe hierzu habe ich gelesen, allerdings ist mir die Funktion des Termination Char immer noch nicht ganz klar. Kann ich darüber das blockweise Auslesen der RS232 realisieren und wenn ja, wie bitte?

Danke schonmal!

Christoph
da lohnt sich doch wieder meine examples-sammlung:

guckst du hier: Asynchrones Empfangen über RS232
Danke, das hat geholfen. Jetzt geht es.

Gruß
Christoph
Referenz-URLs