// Block Name (Original): BlenderRun_ProdTime // Block Number: 2040 // Original Language: LAD FUNCTION_BLOCK "BlenderRun_ProdTime" { S7_Optimized_Access := 'TRUE' } VERSION : 0.1 VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR_IN_OUT END_VAR VAR_TEMP m1MinONS : Bool; m1HourONS : Bool; Buffer : Bool; mRunMin : Bool; mRunHr : Bool; I_DIRunning_sec : DInt; I_DIRunning_min : DInt; MOD60 : DInt; END_VAR BEGIN // Network 1: Seconds // RLO: "Procedure_Variables"."Blender_Run"."Running" // RLO: "Procedure_Variables"."Blender_Run"."Running" AND "CLK_1.0S" IF "Procedure_Variables"."Blender_Run"."Running" AND "CLK_1.0S" THEN "Blender_Variables_Pers"."gSLIM_Sec" := "Blender_Variables_Pers"."gSLIM_Sec" + 1; END_IF; // Network 2: Reset Hours // RLO: "SLIM_Variables"."ResetHour" IF "SLIM_Variables"."ResetHour" THEN "Blender_Variables_Pers"."gSLIM_Sec" := 0; END_IF; // Network 3: Seconds Counter // RLO: "gBlenderBlending" // RLO: "gBlenderBlending" AND "CLK_1.0S" IF "gBlenderBlending" AND "CLK_1.0S" THEN "Blender_Variables_Pers"."gProdSec" := "Blender_Variables_Pers"."gProdSec" + 1; END_IF; // Network 4: Minute // Cond: "Blender_Variables_Pers"."gProdSec" = 60 "m1MinONS" := "Blender_Variables_Pers"."gProdSec" = 60; // Network 5: Minute Counter IF "m1MinONS" THEN "Blender_Variables_Pers"."gProdSec" := 0; "Blender_Variables_Pers"."gProdMin" := "Blender_Variables_Pers"."gProdMin" + 1; END_IF; // Logic included in grouped IF (by UID 27) // Logic included in grouped IF (by UID 27) // Network 6: Hour // Cond: "Blender_Variables_Pers"."gProdMin" = 60 "m1HourONS" := "Blender_Variables_Pers"."gProdMin" = 60; // Network 7: Hour Counter IF "m1HourONS" THEN "Blender_Variables_Pers"."gProdMin" := 0; "Blender_Variables_Pers"."gProdHour" := "Blender_Variables_Pers"."gProdHour" + 1; "Blender_Variables_Pers"."gBlendingMaintHour" := "Blender_Variables_Pers"."gBlendingMaintHour" + 1; END_IF; // Logic included in grouped IF (by UID 30) // Logic included in grouped IF (by UID 30) // Logic included in grouped IF (by UID 30) // Network 8: Counter reset // RLO: "gBlenderCIPMode" // RLO: "gBlenderRinseMode" IF "gBlenderCIPMode" OR "gBlenderRinseMode" THEN "Blender_Variables_Pers"."gProdSec" := 0; "Blender_Variables_Pers"."gProdMin" := 0; "Blender_Variables_Pers"."gProdHour" := 0; END_IF; // Logic included in grouped IF (by UID 31) // Logic included in grouped IF (by UID 31) // Logic included in grouped IF (by UID 31) // Network 9: Running Seconds // RLO: "Procedure_Variables"."Blender_Run"."Running" // RLO: "Procedure_Variables"."Blender_Run"."Running" AND "CLK_1.0S" IF "Procedure_Variables"."Blender_Run"."Running" AND "CLK_1.0S" THEN "Blender_Variables_Pers"."gRunningSeconds" := "Blender_Variables_Pers"."gRunningSeconds" + 1; END_IF; // Network 10: Running Minutes "I_DIRunning_sec" := "Blender_Variables_Pers"."gRunningSeconds"; "MOD60" := "I_DIRunning_sec" MOD DINT#60; // Cond: "MOD60" = DINT#0 // RLO: "MOD60" = DINT#0 AND "Procedure_Variables"."Blender_Run"."Running" // RLO: ("MOD60" = DINT#0 AND "Procedure_Variables"."Blender_Run"."Running") AND "CLK_1.0S" IF ("MOD60" = DINT#0 AND "Procedure_Variables"."Blender_Run"."Running") AND "CLK_1.0S" THEN "Blender_Variables_Pers"."gRunningMinutes" := "Blender_Variables_Pers"."gRunningMinutes" + 1; END_IF; // Edge PBox 41 -> P_TRIG_FUNC(CLK := (("MOD60" = DINT#0 AND "Procedure_Variables"."Blender_Run"."Running") AND "CLK_1.0S"), M := "M19012") "mRunMin" := P_TRIG_FUNC(CLK := (("MOD60" = DINT#0 AND "Procedure_Variables"."Blender_Run"."Running") AND "CLK_1.0S"), M := "M19012"); // Network 11: Running Hours for Maintenance // RLO: "mRunMin" IF "mRunMin" THEN "I_DIRunning_min" := "Blender_Variables_Pers"."gRunningMinutes"; END_IF; IF "mRunMin" THEN "MOD60" := "I_DIRunning_min" MOD DINT#60; END_IF; // Cond: "MOD60" = DINT#0 IF "MOD60" = DINT#0 THEN "Blender_Variables_Pers"."gRunningMaintHour" := "Blender_Variables_Pers"."gRunningMaintHour" + 1; END_IF; // Network 12: Running Hours for Maintenance "HMI_Variables_Status"."System"."BlendingMaintHour" := "Blender_Variables_Pers"."gRunningMaintHour"; END_FUNCTION_BLOCK