DATA_TO_HEXSTR

Die Funktion konvertiert Binärdaten in einen Hexadezimalstring. Mit dieser Funktion können einfache Datentypen und Struktur-Variablen konvertiert werden. Die maximale Länge der Binärdaten darf aber 85 Byte nicht überschreiten! Beim Überschreiten der maximalen Länge wird dem Ergebnisstring ein Punkt-Zeichen hinzugefügt ('.') und die Konvertierung abgebrochen. Die verbleibenden Datenbytes werden nicht mehr konvertiert. Bei fehlerhaften Funktionsparametern (pData = Null oder cbData = Null) liefert die Funktion ein Leerstring als Ergebnis.
Rückgabewert
Name | Typ | Beschreibung |
---|---|---|
DATA_TO_HEXSTR | T_MaxString |
|
Eingänge
VAR_INPUT
pData : POINTER TO BYTE;
cbData : UDINT(0..85);
bLoCase : BOOL := FALSE;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
pData | POINTER TO BYTE | Anfangsadresse (Pointer) auf die zu konvertierenden Binärdaten. Die Adresse kann mit dem ADR-Operator ermittelt werden. |
cbData | UDINT(0..85) | Max. Länge der zu konvertierenden Binärdaten. Die Länge darf 85 Bytes nicht überschreiten! Die Länge kann mit dem SIZEOF-Operator ermittelt werden. |
bLoCase | BOOL | Dieser Parameter legt fest, ob Groß- oder Kleinbuchstaben bei der Konvertierung verwendet werden sollen. TRUE = Kleinbuchstaben, FALSE = Großbuchstaben. |
Beispiel:
Bitte beachten Sie, dass die Datengröße der overflow-Variablen die 85 Bytes überschreitet. Der Ergebnisstring sH5 wird aus diesem Grund mit einem Punkt abgeschlossen.
Bei der number-Variablen ist die Bytefolge vertauscht, weil die Speicherorganisation der Zählervariablen dem Little-Endian-Format entspricht (auch Intel-Format genannt).
PROGRAM MAIN
VAR
str : T_MaxString := 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
number : DWORD := 16#BECF1234;
char : BYTE := 16#07;
null : UDINT := 0;
overflow : ARRAY[0..86] OF BYTE; (* data overflow *)
cbOverflow : UDINT;
sH1, sH2, sH3, sH4, sH5 : T_MaxString;
END_VAR
sH1 := DATA_TO_HEXSTR( pData := ADR(str), cbData := LEN(str), FALSE );
sH2 := DATA_TO_HEXSTR( pData := ADR(number), cbData := SIZEOF(number), FALSE );
sH3 := DATA_TO_HEXSTR( pData := ADR(char), cbData := SIZEOF(char), FALSE );
sH4 := DATA_TO_HEXSTR( pData := ADR(null), cbData := SIZEOF(null), FALSE );
cbOverflow:= SIZEOF(overflow);
sH5 := DATA_TO_HEXSTR( pData := ADR(overflow), cbData := cbOverflow, FALSE );
Das Ergebnis:
sH1 = '61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 30 31 32 33 34 35 36 37 38 39'
sH2 = '34 12 CF BE'
sH3 = '07'
sH4 = '00 00 00 00'
sH5 = '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00.'
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken (Kategoriegruppe) |
---|---|---|
TwinCAT v3.1.0 | PC oder CX (x86, x64, Arm®) | Tc2_Utilities (System) |