```pascal // Block Type: FC // Block Number: 2040 // Original Network Languages: LAD FUNCTION "BlenderRun_ProdTime" : Void { S7_Optimized_Access := 'TRUE' } VERSION : 0.1 VAR_TEMP m1MinONS : Bool; m1HourONS : Bool; Buffer : Bool; mRunMin : Bool; mRunHr : Bool; I_DIRunning_sec : DInt; I_DIRunning_min : DInt; MOD60 : DInt; END_VAR #_60 : Bool; // Auto-generated temporary BEGIN // Network 1: Seconds (Original Language: LAD) 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 (Original Language: LAD) IF "SLIM_Variables"."ResetHour" THEN "Blender_Variables_Pers"."gSLIM_Sec" := 0; END_IF; // Network 3: Seconds Counter (Original Language: LAD) IF "CLK_1.0S" AND "gBlenderBlending" THEN "Blender_Variables_Pers"."gProdSec" := "Blender_Variables_Pers"."gProdSec" + 1; END_IF; // Network 4: Minute (Original Language: LAD) "m1MinONS" := Eq("Blender_Variables_Pers"."gProdSec", 60); // Network 5: Minute Counter (Original Language: LAD) IF "m1MinONS" THEN "Blender_Variables_Pers"."gProdSec" := 0; "Blender_Variables_Pers"."gProdMin" := "Blender_Variables_Pers"."gProdMin" + 1; END_IF; // Network 6: Hour (Original Language: LAD) "m1HourONS" := Eq("Blender_Variables_Pers"."gProdMin", 60); // Network 7: Hour Counter (Original Language: LAD) 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; // Network 8: Counter reset (Original Language: LAD) IF "gBlenderCIPMode" OR "gBlenderRinseMode" THEN "Blender_Variables_Pers"."gProdSec" := 0; "Blender_Variables_Pers"."gProdMin" := 0; "Blender_Variables_Pers"."gProdHour" := 0; END_IF; // Network 9: Running Seconds (Original Language: LAD) 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 (Original Language: LAD) "I_DIRunning_sec" := "Blender_Variables_Pers"."gRunningSeconds"; "MOD60" := "I_DIRunning_sec" MOD DINT#60; IF "Procedure_Variables"."Blender_Run"."Running" AND "CLK_1.0S" AND Eq("MOD60", DINT) THEN "Blender_Variables_Pers"."gRunningMinutes" := "Blender_Variables_Pers"."gRunningMinutes" + 1; END_IF; // Edge Logic handled by Coil 42 "M19012" := Eq("MOD60", DINT); // P_TRIG(Eq("MOD60", DINT)) - Mem: "M19012" "mRunMin" := NOT "M19012" AND Eq("MOD60", DINT); "M19012" := Eq("MOD60", DINT); // P_TRIG(Eq("MOD60", DINT)) - Mem: "M19012" // Network 11: Running Hours for Maintenance (Original Language: LAD) IF "mRunMin" THEN "I_DIRunning_min" := "Blender_Variables_Pers"."gRunningMinutes"; END_IF; IF "mRunMin" THEN "MOD60" := "I_DIRunning_min" MOD DINT#60; END_IF; IF Eq("MOD60", DINT) THEN "Blender_Variables_Pers"."gRunningMaintHour" := "Blender_Variables_Pers"."gRunningMaintHour" + 1; END_IF; // Network 12: Running Hours for Maintenance (Original Language: LAD) "HMI_Variables_Status"."System"."BlendingMaintHour" := "Blender_Variables_Pers"."gRunningMaintHour"; END_FUNCTION ```