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 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?
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?
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?