FUNCTION_BLOCK "Modbus_Diris"{ S7_Optimized_Access := 'FALSE' }
VERSION : 0.1
VAR_INPUT
ID : Word;
END_VAR
VAR_OUTPUT
Energy { S7_HMI_Accessible := 'False'; S7_HMI_Visible := 'False'} : "DirisA41_C550_Table";
END_VAR
VAR
MB_CLIENT {OriginalPartName := 'MB_CLIENT_FB_1084_S71500'; LibVersion := '4.0'} : MB_CLIENT;
LDB_Config {OriginalPartName := 'TCON_Configured'; LibVersion := '1.0'} : TCON_Configured;
Req : Bool;
Disconnect : Bool;
IEC_Timer_0_Instance {OriginalPartName := 'IEC_TIMER'; LibVersion := '1.0'} : TON_TIME;
IEC_Timer_0_Instance_1 {OriginalPartName := 'IEC_TIMER'; LibVersion := '1.0'} : TON_TIME;
Zaehler : Int;
F_TRIG_Instance {OriginalPartName := 'F_TRIG_1500'; LibVersion := '1.0'} : F_TRIG;
R_TRIG_error {OriginalPartName := 'R_TRIG_1500'; LibVersion := '1.0'} : R_TRIG;
R_TRIG_Done {OriginalPartName := 'R_TRIG_1500'; LibVersion := '1.0'} : R_TRIG;
AktuellerLDB : Int;
Status_Save : Word;
Config_Save {OriginalPartName := 'TCON_Configured'; LibVersion := '1.0'} : Array[0..100] of TCON_Configured;
ReqTrigger {OriginalPartName := 'R_TRIG_1500'; LibVersion := '1.0'} : R_TRIG;
Daten : Array[0..50] of Int;
strDaten { S7_HMI_Accessible := 'False'; S7_HMI_Visible := 'False'} AT Daten : "DirisA41_C550_Table";
END_VAR
VAR_TEMP
index : Int;
RET_val : Int;
END_VAR
VAR CONSTANT
Datenlänge : UInt := 20;
END_VAR
BEGIN
#LDB_Config.ConnectionType := 254;
#LDB_Config.InterfaceId := 100;
#LDB_Config.ID := #ID;
#MB_CLIENT(REQ := #Req,
DISCONNECT := false,
MB_MODE := 0,
MB_DATA_ADDR := 40001,
MB_DATA_LEN := #Datenlänge,
MB_DATA_PTR := #Daten,
CONNECT := #LDB_Config);
#Energy := #strDaten;
#Req := true;
#R_TRIG_error(CLK:=#MB_CLIENT.ERROR);
#R_TRIG_Done(CLK:=#MB_CLIENT.DONE);
IF #R_TRIG_Done.Q OR #R_TRIG_error.Q OR #IEC_Timer_0_Instance.Q THEN
#Req := false;
END_IF;
#IEC_Timer_0_Instance(IN:=#Req,
PT:=t#10s);
IF #IEC_Timer_0_Instance.Q THEN
#Req := false;
END_IF;
IF #MB_CLIENT.ERROR THEN
#Status_Save := #MB_CLIENT.STATUS;
END_IF;
END_FUNCTION_BLOCK