Hallo zusammen,
ich hab ein kleines Problem mit der Konvertierung Hexadezimal-String nach Zahl. Im Anhang das vi welches ein String in hex-Format in Teilstrings zerlegen soll und anschließend diese Teilstrings in dez umwandeln soll um es in eine Tabelle zu schreiben.
Problemstellung:
Ist mein String als Hexadezimalanzeige dargestellt (was ich für meine Response brauche), bekomme ich als dez-Werte nur Nullen.
Verändere ich die Darstellung des Strings jedoch in "Normale Anzeige" bekomme ich die in eine Zahl umgewandelten hex-Werte.
Problem hierbei ist, das mein Empfangsgerät mir nur antwortet, wenn der Befehlsstring als Hexadezimalanzeige gesendet wird.
Im Anhang das vi
Vielen Dank für eventuelle Lösungen!
LabVIEW 8.5
Meinst du so?
[
attachment=15185] lv_85
Ich hab deine anderen Posts auch mal überflogen...ich glaube du hast nicht verstanden, dass die Hex-Anzeige eines Strings nur eine mögliche Darstellung dieses Strings ist!
Doch Achim, das habe ich. Das paßt schon so. Allerdings geht es mit dem "normalen" String nicht. Ich muss dem String noch ne Eigenschaftsknoten zuweisen (Text, Format). Dann funktioniert das so wie ich es möchte. Allerdings weiß ich absolut nicht warum.
Hä? Zeig mal bitte deine Lösung, am besten mit nem originalen String von deinem BHKW als Defaultwert in der normalen String-Anzeige!
Nun Achim, schau Dir mal das Beispiel im Anhang an. Und dann hätte ich noch ne Frage an Dich. Und zwar sagtest Du das die hex-Anzeige nur eine Darstellung eines Strings ist. Weshalb macht er mir dann bei foglendem String:
0105 5608 7799 01
aus 01 ne 1
aus 05 56 aber nur ne 5
aus 08 ne 8
aus 7799 ne 30617
Gib den String einfach mal in das vi ein und Du siehst was ich meine. Falls die hex-Anzeige nur ne andere Darstellung ist, versteh ich nicht warum er plötzlich doch ein Leerzeichen erkennt, obwohl keines existiert???
Gegenfrage: Wenn du an deinem Lese-VI einfach einen String-Indicator anschließt, der NICHT auf Hex-Anzeige sondern auf Normal gestellt ist: Wie sieht das Ergebnis aus? Kopier diesen Indicator mal samt Inhalt in ein neues VI und mach auf den Indicator einen Rechtsklick...Data operations...Make current value default...und speichere dann das neue VI ab und poste es hier!
Achim nochmal zum Verständnis:
Schick ich dem BHKW die Request als hex-String (Hexadezimalanzeige)
0070 08D9 0101
bekomme ich folgenden Response
0070 37D9 0101 000A 6300 0000 0017 0018 0000 0100 D700 D700 D5FE 0E00 D901 E2FF D9FF D900 28FF D9FF D9FF D900 2800 0000 3C00 00FF 00F3 AF
den gilt es nun in unterschiedliche Byte zu zerlegen und in dez-Werte umzurechnen.
Schick ich aber die Request als hex-String (normale Anzeige)
007008D90101
bekomme ich keine Response!!!
Achim, wo finde ich denn den String-Indicator???
So Achim, ich habe das Problem gefunden!
Die in der hex-Darstellung erzeugten Platzhalter werden im String Indicator als Leerzeichen erzeugt.
Kannst Du mir sagen wie ich den hex-String nach Leerzeichen durchsuchen kann um diese dann zu löschen?
LabVIEW 8.5