TIA TIA Byte folge in HEX und/oder String konvertieren

Spawn14

Level-1
Beiträge
4
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo erstmal,
ich habe ein Problem bei der Konvertierung von KeyDaten (Bytes) in String.
Ich lese im TIA (V15) ein 128 Byte grossen Addressbereich ein. Dort liegen die Daten eines E-Keys.
Unter anderem beinhaltet die Datenstruktur eine Key ID (8Bytes) und eine Benutzer ID (7Bytes).

Benutzer ID:
Byte1 := 16x31 | ergibt CHR(31) = "1"
Byte2 := 16x30 | ergibt CHR(31) = "0"
Byte3 := 16x30 | ergibt CHR(31) = "0"
Byte4 := 16x32 | ergibt CHR(31) = "2"
Byte5 := 16x30 | ergibt CHR(31) = "0"
Byte6 := 16x30 | ergibt CHR(31) = "0"
Byte7 := 16x33 | ergibt CHR(31) = "3"

Die Benutzer ID wird also als Charakter aus dem Wert des Bytes generiert und soll am Ende "1002003" ergeben.

Die Key ID :
Byte1 : 16x31 | ergibt "31"
Byte2 : 16x2B | ergibt "2B"
Byte3 : 16x00 | ergibt "00"
Byte4 : 16xA4 | ergibt "A4"
Byte5 : 16x06 | ergibt "06"
Byte6 : 16x14 | ergibt "14"
Byte7 : 16xB0 | ergibt "B0"

Bei der Key ID wird also nicht das ASCII Zeichengesucht, sondern der hinterlegte HEX Wert soll als String
die Zeichenfolge "312B00A40614B0" ergeben.

Habe die ganze Nacht alle Konvertierungsbefehle und Bausteine in KOP und SCL durchgetestet, bin wohl zu müde oder zu untalentiert :rolleyes:
Die BenutzerID habe ich noch hinbekommen (sehr umständliches zusammenbauen von Strings - gefiel mir am Ende nicht wirklich):evil:

(Zu meiner Verteidigung: ich programmiere eigentlich im Bereich C++ und C# ... und ehrlich .... was man im SPS Bereich an Werkzeug (Befehlen)
zur Verfügung gestellt bekommt - auweia, ganz schön mager ;) - Die ganze Funktion wäre in C# ein Fünfzeiler ...oder habe ich nicht die richtigen Bausteine gefunden???)


Also, falls mir da jemand auf die Sprünge helfen kann - mein ewiger Dank wird Dir gehören!

In dem Sinne
Gruss an die Gemeinde
 
Das hat man doch schnell zu Fuß programmiert
Du verarbeitest die Bytes in einer For-Schleife. Nimmst dir aus dem Byte erst das eine Nibble vor und konvertierst den Wert in ein entsprechendes Zeichen (entweder über eine Lookup-Table oder über ein case mit 16 Bedingungen), hängst das Zeichen an deine Zeichenkette an, dann das gleiche mit dem anderen Nibble und dann weiter in der Schleife bis alle Bytes verarbeitet sind.
 
Der HTA ... der wars! mit CHARS_To STRG gehts übrigens nicht, muss BYTE_To_CHAR sein ... und dann mit Concat zusammenfügen..
jetzt funktionierts jedenfalls so wies soll!
Danke noch mal an Euch für die schnelle Hilfe:p
 
Zurück
Oben