DATA_TO_HEXSTR

DATA_TO_HEXSTR 1:

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.

FUNCTION DATA_TO_HEXSTR : T_MaxString

VAR_INPUT

VAR_INPUT
    pData   : POINTER TO BYTE;
    cbData  : UDINT(0..85);
    bLoCase : BOOL := FALSE;
END_VAR

pData: Anfangsadresse (Pointer) auf die zu konvertierenden Binärdaten. Die Adresse kann mit dem ADR-Operator ermittelt werden.

cbData: 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: 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)