Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Ich habe ein Array mit 5 Positionen.
Jetz muss ich die 5 HEX Werte aneinanderreihen: 16#00000F0783 und diesen Hex-Wert dann in einen DEZ-Wert umrechnen.
Alternativ könnte man 8 Bits Linksschieben und verODERn (hab' leider nur Siemens-AWL):
Code:
L[FONT=Courier New] T1[0]
SLD 8
L T1[1]
OD
SLD 8
L T1[2]
OD
SLD 8
L T1[3]
OD
SLD 8
L T1[4]
OD
T #Ziel[/FONT]
Hex/Dez ist ja dann nur 'ne Darstellungsart oder brauchst Du BCD?
PS: Ein Doppelwort reicht beim letzten Schieben und VerODERn nicht mehr, also ist dann OD zumindest bei Siemens zu klein. Keine Ahnung, welche Möglichkeiten es da bei Codesys dann gibt.
Es sind zwar 8 Bit, aber damit 256 Möglichkeiten. Hatte ich auch zuerst. Keine Ahnung warum ich dann dachte: "Ne, sind ja bloß 8". Wahrscheinlich sahen die Zahlen so riesig aus.
Es muss also überall 256^x heißen:
Hm, 5 Hexwerte, warum 5 ? In einem DWord oder einer DINT sind 32 Bit, also 4 Byte.
Schau dir das mal an, mit der richtigen Wahl des Ziels (DInt oder DWord) könnte das auch funktionieren.
Sehe das so wie Ralle. Da ich gestern ein ähnliches Problem hatte und das umrechnen musste.
Bei mir waren es vier Byte und ich habe sie in einer falschen Reihenfolge übergeben bekommen bzw anderes herum wie ich es erwartet hatte.
Der Grund warum 5 Hexwerte ist folgender:
Ich extrahiere aus einem Byte-Array (SML-Protokoll eines Stromzählers) welches über die RS232 gefüllt wird, die 5 Bytes welche den Messwert darstellen.
Ich werde heute abend mal die Lösung von hucki testen....
Ein Stromzähler, der über eine Billiarde von kW zählen könnte (max. 256 * 4.294.967.296)?
Da ist doch bestimmt irgendwo 'ne Komma-Stelle zwischen, an der Du auch trennen solltest. Dann kommst Du auch mit 2 Doppelwörtern hin.
Kernkraftwerk ?!
Ne, ist schon bei mir zuhause. Der Wert sind 1/10 Wh. Das wird "weiter vorne" in dem Orginal Array spezifiziert. Ich denke die Größe der Werte bzw. des Feldes ist in dem SML-Protokoll standartisiert. Das wird ja für die ganze "SmartMeter" Kommunikation genutzt. Vieleicht auch im Kernkraftwerk....