LabVIEWForum.de
Strings über RS232 - 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: Strings über RS232 (/Thread-Strings-ueber-RS232)



Strings über RS232 - Klausi - 19.06.2009 15:58

Hallo zusammen,

ich bin LabVIEW-Neuling und versuche gerade über Mikrocontroller und RS-232 Schnittstelle eine Verbindung zu LabVIEW herzustellen.

Mit den integrierten Beispielprogrammen hat das nun auch schon ganz gut geklappt. Ich sende testweise alle 200ms ein Byte dessen Wert sukzessive hochzählt. Ich konnte nun den String von der RS-232 mithilfe der Funktion "String nach Byte-Array" bereits in ein Byte-Array konvertieren.

Nun möchte ich aber eine Zahl haben. Ich versuche den String mithilfe der Funktion "Hexadezimal-String nach Zahl" in eine Zahl zu konvertieren, was aber noch nicht funktioniert. Wo liegt mein Denkfehler?

LabVIEWversion: 8.6 Studentenversion

Gruß,
Klausi


Strings über RS232 - eg - 19.06.2009 16:02

Der Denkfehler liegt an der ASCII Tabelle.


Strings über RS232 - Klausi - 19.06.2009 16:41

Ja, mittlerweile hab ich schon gesehen, daß die Hexstring-to-zahl Funktion mir nur die Hexziffern konvertiert.
Gibt es keine Funktion die mir ASCII-Code in Zahlen konvertiert?


Strings über RS232 - zaphodthepresident - 02.07.2009 09:20

Ich muß gestehen, daß ich deine Frage nicht ganz verstanden habe!
Nach deinen Bildern liest du die am Port anliegenden Bytes aus - im gezeigten Beispiel war das ein einzelnes Byte mit dem Hexadezimalwert "7B". In Dezimal-Schreibweise hat dieses Zeichen den Wert "123", bzw. stellt in normaler Schreibweise eine geschwungene Klammer "{" dar (s. auch mein 1. Screenshot). Wenn du ein ASCII-Zeichen in eine Zahl konvertieren willst, kannst du einfach die LabVIEW-Funktion "Scan from String" nehmen (befindet sich standardmäßig in der String-Palette). Über den "Format String"-Input (im gezeigten Beispiel "%d") kannst du steuern, in welches Zahlenformat LV den String konvertiert. Wenn du z.B. als String die Zahl "9" vorliegen hast (Hex-Wert= 39), dann konvertiert LV diese auch korrekt in den Zahlenwert "9" (s. meinen 2. Screenshot). Wenn der Input-String aber überhaupt keinen Zahlenwert enthält, sondern, wie in deinem Beispiel, eine geschwungene Klammer, dann muß (!) die Konvertierung fehlschlagen.
Wieso erwartest du vom RS232-Port einen Zahlenwert, wenn dort überhaupt keiner anliegt, bzw. wieso möchtest du die eingelesen Bytes unbedingt in einen Zahlenwert konvertieren, wenn u. U. überhaupt kein Zahlenwert von deinem Gerät gesendet wird?

Mfg,
Zaphodthepresident