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!
also ich möchte ein Protokoll zusammenbauen und Teile des Protokolls werden wegen einer Prüfsumme erst berechnet.
Die Zusammensetzung ist: FD 03 FF ist der Eingangsstring und dann wird aus 03 FF die Prüfsumme (FC)gebildet. Diese soll dann in ein vollständiges Protokoll eingefügt werden. FE ist das Endezeichen.
Dieses soll dann so aussehen: FD 03 FF FC FE
Aber in meinem Programm zeigt es immer nur FD 03 FF 46 43 FE an!!!
Was muss ich da ändern im Programm?
ich glaube, das liegt daran, dass du verschiedene Formate kombinierst (Unterschied: Hex-Anzeige zu wirklichem Hex-Wert). Nur ne Idee, hab grad keine Zeit mehr...
Gruss
Achim
"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)
Vielen Dank, das hat auch mir geholfen, insbesondere in Bezug auf die Berechnung der Prüfsumme. Ich bin nämlich dabei, etwas ähnliches zu machen (Steuerung eines Induktionsgenerators, der ein eigenes Protokoll hat und nur Binärdaten haben will). Mit o.A. Vorlage bin ich immerhin schon einmal so weit, daß ich Hexcodes als Binärdaten übertragen bekomme.
Jetzt ist es so, daß der Generator einen bestimmten Befehlssatz hat, den man durch Übertragung des Befehls-Hexcodes und einem eventuellen Datenblock (auch als Hex) ausführen kann. Wenn ich als "Control" einen String in Hex-Format angebe, dann kommt auch das Richtige an, wenn ich also Befehl "10", also "0A" in Hex übertragen möchte, dann klappt das auch. Es wäre natürlich viel praktischer, direkt die Befehlsnummer eingeben zu können - da dachte ich dann an eine Zahl-Hex-Conversion. Das will leider nicht so ganz, siehe anhängendes Beispiel. Zwei Befehlsbytes sollen übertragen werden und der String muß dann eben auch nur zwei Bytes lang sein. Unten ist das mit Hex-Strings direkt eingegeben, da geht das. Oben mein Versuch, Zahlen in Hexcodes umzuwandeln. Es kommt allerdings bei "10" "A" raus, aber eben als normaler String und nicht als Hexcode. Das wir dann beim Übertragen in "41" umgewandelt, dem ASCII-Code für "A". Nicht so ganz das, was ich will.
Dass 10(dec) dem Buchstaben 'A' in ASCII-Codierung entspricht ist nur ein Zufall (also nicht mit der Umwandlung Dezimal->Hex verwechseln).
Was du brauchst ist das VI "Flatten To String" in Data Manipulation Palette. Einfach alles was du abschicken willst übergeben und es kommt ein richtiger String raus.
' schrieb:Was du brauchst ist das VI "Flatten To String" in Data Manipulation Palette. Einfach alles was du abschicken willst übergeben und es kommt ein richtiger String raus.
Danke sehr, das hat mir geholfen. Leider gibt die Kiste ihre Antwortmeldungen gleichfalls im hex-format aus, was ja irgendwie nicht dasselbe ist wie ein hexadezimal-string in LabVIEW. Gibt es da eine Möglichkeit, das andersherum umzuwandeln? Bei der Umkehrmethode zu "Flatten zu String" (fällt mir gerade nicht ein, wie die genau heißt) kann man zwar einen "Type" angeben, was rauskommen soll, allerdings sagt mir der herauskommende "generic error" nicht allzuviel...
Der Typ muss natürlich mit den Daten übereinstimmen, es dürfen nich weniger Daten im String sein, als du parsen willst, sont meldet LV diesen blöden nichterklärten Generic Error. Also bei mir funktioniert es. Es liegt entweder am String oder am Typ. Also suchen und debuggen.