OctetString_To_AnyBuffer
Konvertiert und kopiert die Daten von einem Oktett-String oder einem eindimensionalen Byte-Array in eine beliebige Variable.
Namensraum: Tc3_Collections
Bibliothek: Tc3_Collections (Tc3_Collections.compiled-library)
FUNCTION OctetString_To_AnyBuffer : UDINT
VAR_IN_OUT
source : ARRAY[*] OF BYTE;
END_VAR
VAR_INPUT
pTarget : PVOID;
cbTarget :UDINT;
bSwapBytes : BOOL;
END_VAR
VAR_OUTPUT
bUnderflow : BOOL;
bOverflow : BOOL;
END_VAR
/
Ein-/Ausgänge
Name | Typ | Beschreibung |
---|---|---|
source | ARRAY[*] OF BYTE | Quellvariable |
Eingänge
Name | Typ | Beschreibung |
---|---|---|
pTarget | PVOID | Adresszeiger der Zielvariablen. |
cbTarget | UDINT | Bytegröße der Zielvariablen. |
bSwapBytes | BOOL | Bei TRUE werden die Datenbytes getauscht. |
Ausgänge
Name | Typ | Beschreibung |
---|---|---|
bUnderflow | BOOL | Wenn TRUE dann ist die Quellvariable kleiner als die Zielvariable. |
bOverflow | BOOL | Wenn TRUE dann ist die Quellvariable größer als die Zielvariable. |
Rückgabewert
Name | Typ | Beschreibung |
---|---|---|
OctetString_To_AnyBuffer | UDINT | Anzahl der erfolgreich kopierten Datenbytes. |
Beispiel
METHOD FINAL Sample_OctetString_To_AnyBuffer : BOOL
VAR
sValue : STRING;
ui64 : LWORD;
ui32 : UDINT;
o6 : T_OCTET6:=[16#30, 16#31, 16#32, 16#33, 16#34, 16#35];
o8 : T_OCTET8:=[16#30, 16#31, 16#32, 16#33, 16#34, 16#35, 16#36, 16#37];
o64 : T_OCTET64:=[16#30, 16#31, 16#32, 16#33, 16#34, 16#35, 16#36, 16#37, 16#38, 16#39];
size : UDINT;
bOverflow : BOOL;
bUnderflow : BOOL;
END_VAR
size:=OctetString_To_AnyBuffer(source:=o6, pTarget:=ADR(sValue), cbTarget:=SIZEOF(sValue), bSwapBytes:=FALSE, bUnderflow=>bUnderflow, bOverflow=>bOverflow);(* size:=6 *)
size:=OctetString_To_AnyBuffer(source:=o8, pTarget:=ADR(ui64), cbTarget:=SIZEOF(ui64), bSwapBytes:=TRUE, bUnderflow=>bUnderflow, bOverflow=>bOverflow);(* size:=8 *)
size:=OctetString_To_AnyBuffer(source:=o64, pTarget:=ADR(ui32), cbTarget:=SIZEOF(ui32), bSwapBytes:=TRUE, bUnderflow=>bUnderflow, bOverflow=>bOverflow);(* size:=4 *)
Sample_OctetString_To_AnyBuffer:=(sValue = '012345') AND (ui64 = 16#3031323334353637) AND (ui32 = 16#30313233);