Heyho!
Nun knacke ich seit rund vier Stunden an dem "Problemchen" und habe rund 10 .vi's generiert, von denen ich aber nicht eines wirklich hier präsentieren mag
. Am besten schildere ich mal die Aufgabenstellung, wie ich bisher ran gegangen bin und wo es klemmt. Also:
Ich habe hier ein regelbares Netzteil, dem ich gerne über RS232 Leistungsprofile vorgeben würde. Dafür muß LabVIEW leider ein wenig arbeiten, da das Gerät die Daten gerne als HEX und zudem mit einer Prüfsumme versehen haben möchte. Die Sache stellt sich wie folgt dar:
- Das erste Byte ist ein P, welches ich aber natürlich auch als 70 liefern könnte.
- Dann kommen zwei Byte, welche sich aus (Stellert*10) nach HEX konvertiert ergeben.
- Der Rest wird auf 8 Byte mit 30 (kommt von ASCII "0") aufgefüllt.
- Dann wird über alle 16 Nibble eine Quersumme gezogen.
- Das letzte Nibble der Quersumme ersetzt das letzte Nibble der 8 Byte.
- Und die 8 Byte werden - ergänzt um je ein Start und Stoppbit - an den COM-Port geschickt...
Die einzige überhaupt halbwegs brauchbare Version habe ich mal angehängt. Dort war das Hauptproblem, daß die Umwandlung des Stellwerts von Dezimal nach HEX Mist ergibt. Im ersten Anzeigefeld stimmt der Wert - z.B. 22*10 => 00DC. Leider ist das die Stringdarstellung und als HEX-Wert steckt was ganz anderes dahinter. Für die Umwandlung habe ich keine sinnvolle/einfache Lösung finden können und mich dann in die vielen hier schon zum Thema HEX geposteten vi's verrannt...
Naja, und das Thema Quersumme kann man angehen, wenn ersteres gelöst ist. Wie gesagt: Quersumme ziehen, letztes Nibble schnappen und letztes Nibble der 8 Byte durch dieses ersetzen. Dafür habe ich bisher nur ein wenig mit den hier geposteten VIs gespielt, bei denen der HEX-String zwischenzeitlich als Array dargestellt wird. Aus diesem kann man ja ganz einfach die Quersumme errechnen, leider stehe ich dann zuerst vor genau demselben Problem wie oben (aus der Dezimal-Quersumme HEX zu machen) und anschließend kommt die Nibble-Frage. Da muß dann wohl ein Array herhalten würde ich vermuten.
Vielleicht habt ihr ja den ein oder anderen Tipp, der mich weiter bringt. Für heute bin ich drauf und dran, die Netzteil-Geschichte sein zu lassen und das Ding weiterhin manuell und mit Pulsfunktion (an... warten... aus...
) zu betreiben. Aber zum Glück gibt's ja das LV-Forum...
Gruß,
Dennis