Hallo Bonatus könnte dies richtig sein???
Code:
FUNCTION_BLOCK STRUCT_to_ARRAY
VAR_INPUT
adrStruct: POINTER TO BYTE;
uiSize: UINT;
END_VAR
VAR_OUTPUT
Data: ARRAY[1..111] OF BYTE;
END_VAR
VAR
Temp_Struct: ARRAY[1..111] OF BYTE;
i: INT;
Temp: BYTE;
END_VAR
--------------------------------------------------------
Code:
FOR i:=1 TO uiSize BY 1 DO
Temp := ROR(Temp_Struct[(i/8+1)],(i-1));
IF adrStruct^ = 1 THEN
Temp.0 := TRUE;
END_IF
IF adrStruct^ = 0 THEN
Temp.0 := FALSE;
END_IF;
Temp_Struct[(i/8+1)] := ROL(Temp,(i-1));
adrStruct := adrStruct + 1;
END_FOR
Data := Temp_Struct;
Danke schon mal im Vorraus...
und liebe Grüße an alle...