FUNCTION_BLOCK "Baustein_1"
{ S7_Optimized_Access := 'FALSE' }
VERSION : 0.1
VAR_INPUT
Startdaten : Any;
pStartdaten AT Startdaten : "ANY_POINTER";
versatz : Int;
END_VAR
VAR
anypointer : "ANY_POINTER";
anypointer_out : "ANY_POINTER";
IN_Byte { S7_HMI_Accessible := 'False'; S7_HMI_Visible := 'False'} : Int;
IN_Bit : Int;
OUT_Byte : Int;
OUT_Bit : Int;
END_VAR
VAR CONSTANT
Eingänge : DWord := 16#8100_0000;
Ausgänge : DWord := 16#8200_0000;
Merker : DWord := 16#8300_0000;
Datenbaustein : DWord := 16#8400_0000;
Instanz_DB : DWord := 16#8500_0000;
LokalDaten : DWord := 16#8600_0000;
VorherigeLokalDaten : DWord := 16#8700_0000;
END_VAR
BEGIN
#anypointer := #pStartdaten;
#IN_Byte := DWORD_TO_INT(SHR(IN := SHL(IN := #pStartdaten.Startadresse, N := 8), N := 11));
#IN_Bit := DWORD_TO_INT(SHR(IN := SHL(IN := #pStartdaten.Startadresse, N := 29), N := 29));
#OUT_Byte := 30;
#OUT_Bit := 3;
#anypointer_out.Startadresse := SHL(IN := INT_TO_DWORD(#OUT_Byte), N := 3) OR INT_TO_DWORD(#OUT_Bit) OR #Datenbaustein;
END_FUNCTION_BLOCK