Obsidean_VM/04-SIDEL/06 - E5.007363 - Modifica O.../Source/source/BlenderRinse.md

8.7 KiB

// Block Type: FC
// Block Number: 2019
// Original Network Languages: LAD

FUNCTION "BlenderRinse" : Void
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1

VAR_TEMP
  mColdReq : Bool;
  mWarmReq : Bool;
  mColdStop : Bool;
  mWarmStop : Bool;
END_VAR

BEGIN

  // Network 1: Qualifier (Original Language: LAD)

  "Procedure_Variables"."Blender_Rinse"."Qualifier" := "HMI_Variables_Status"."System"."Blender_Prod_CIP" AND "gBlenderSuppliesOk" AND "gBlenderBlending" AND "gBlenderCIPMode" AND "Procedure_Variables"."TM301_Drain"."Latch";

  // Network 2: Stop / Request (Original Language: LAD)

  // PBox SymPy processed, logic in consumer
  "M19014" := ("System_RunOut_Variables"."FastChangeOverActivated" AND "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_ColdRinseReq") OR ("System_RunOut_Variables"."FastChangeOverActivated" AND "System_RunOut_Variables"."ProdPipe_RunOut"."Done" AND "Blender_Variables_Pers"."gCoolerEnabled"); // P_TRIG(("System_RunOut_Variables"."FastChangeOverActivated" AND "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_ColdRinseReq") OR ("System_RunOut_Variables"."FastChangeOverActivated" AND "System_RunOut_Variables"."ProdPipe_RunOut"."Done" AND "Blender_Variables_Pers"."gCoolerEnabled")) - Mem: "M19014"

  "mColdReq" := ("System_RunOut_Variables"."FastChangeOverActivated" AND "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_ColdRinseReq" AND "Procedure_Variables"."Blender_Rinse"."Qualifier" AND NOT "M19014") OR ("System_RunOut_Variables"."FastChangeOverActivated" AND "System_RunOut_Variables"."ProdPipe_RunOut"."Done" AND "Blender_Variables_Pers"."gCoolerEnabled" AND "Procedure_Variables"."Blender_Rinse"."Qualifier" AND NOT "M19014");

  "mColdStop" := ("ColdRinseON" AND "System_RunOut_Variables"."FastChangeOverActivated" AND "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_ColdRinseReq" AND NOT "M19014") OR ("ColdRinseON" AND "System_RunOut_Variables"."FastChangeOverActivated" AND "System_RunOut_Variables"."ProdPipe_RunOut"."Done" AND "Blender_Variables_Pers"."gCoolerEnabled" AND NOT "M19014");

  // Network 3: Warm Request / Stop (Original Language: LAD)

  // PBox SymPy processed, logic in consumer
  "M19015" := ("HMI_Variables_Cmd"."Commands_From_HMI"."CMD_WarmRinseReq" AND "System_RunOut_Variables"."FastChangeOverActivated") OR ("System_RunOut_Variables"."FastChangeOverActivated" AND "System_RunOut_Variables"."ProdPipe_RunOut"."Done" AND "Blender_Variables_Pers"."gCoolerEnabled"); // P_TRIG(("HMI_Variables_Cmd"."Commands_From_HMI"."CMD_WarmRinseReq" AND "System_RunOut_Variables"."FastChangeOverActivated") OR ("System_RunOut_Variables"."FastChangeOverActivated" AND "System_RunOut_Variables"."ProdPipe_RunOut"."Done" AND "Blender_Variables_Pers"."gCoolerEnabled")) - Mem: "M19015"

  "mWarmReq" := ("HMI_Variables_Cmd"."Commands_From_HMI"."CMD_WarmRinseReq" AND "System_RunOut_Variables"."FastChangeOverActivated" AND "Procedure_Variables"."Blender_Rinse"."Qualifier" AND NOT "M19015") OR ("System_RunOut_Variables"."FastChangeOverActivated" AND "System_RunOut_Variables"."ProdPipe_RunOut"."Done" AND "Blender_Variables_Pers"."gCoolerEnabled" AND "Procedure_Variables"."Blender_Rinse"."Qualifier" AND NOT "M19015");

  "mWarmStop" := ("HMI_Variables_Cmd"."Commands_From_HMI"."CMD_WarmRinseReq" AND "WarmRinseON" AND "System_RunOut_Variables"."FastChangeOverActivated" AND NOT "M19015") OR ("WarmRinseON" AND "System_RunOut_Variables"."FastChangeOverActivated" AND "System_RunOut_Variables"."ProdPipe_RunOut"."Done" AND "Blender_Variables_Pers"."gCoolerEnabled" AND NOT "M19015");

  // Network 4: Rinse Request (Original Language: LAD)

  "Procedure_Variables"."Blender_Rinse"."Request" := ("mColdReq" AND "Procedure_Variables"."Blender_Rinse"."Qualifier") OR ("mWarmReq" AND "Procedure_Variables"."Blender_Rinse"."Qualifier");

  // Network 5: ColdRinseSR (Original Language: LAD)

  // Network 5 did not produce printable SCL code.

  // Network 6: WarmRinse (Original Language: LAD)

  // Network 6 did not produce printable SCL code.

  // Network 7: Wait (Original Language: LAD)

  "Procedure_Variables"."Blender_Rinse"."Wait" := "Procedure_Variables"."TM301_Drain"."Latch" OR ("HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Deaireation" AND "Procedure_Variables"."TN301_StartUp"."Done");

  // Network 8: Reset (Original Language: LAD)

  "Procedure_Variables"."Blender_Rinse"."Reset" := "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_TM301DrainReq" OR "gBlenderCIPMode";

  // Network 9: Done (Original Language: LAD)

  IF "Procedure_Variables"."Blender_Rinse"."Reset" OR "Procedure_Variables"."Blender_Rinse"."Latch" THEN
    "HMI_Variables_Status"."Procedures"."Rinse_WarmRinseDone" := FALSE;
  END_IF;

  IF "Procedure_Variables"."Blender_Rinse"."Reset" OR "Procedure_Variables"."Blender_Rinse"."Latch" THEN
    "HMI_Variables_Status"."Procedures"."Rinse_ColdRinseDone" := FALSE;
  END_IF;

  // Network 10: Latch (Original Language: LAD)

  "Procedure_Variables"."Blender_Rinse"."Latch" := ("Procedure_Variables"."Blender_Rinse"."Reset" AND "Procedure_Variables"."Blender_Rinse"."Latch" AND "FirstScan" AND "Procedure_Variables"."Blender_Rinse"."Done") OR ("Procedure_Variables"."Blender_Rinse"."Reset" AND "Procedure_Variables"."Blender_Rinse"."Request" AND "FirstScan" AND "Procedure_Variables"."Blender_Rinse"."Done");

  // Network 11: Rinse Mode (Original Language: LAD)

  "gBlenderRinseMode" := "Procedure_Variables"."Blender_Rinse"."Latch";

  IF "Procedure_Variables"."Blender_Rinse"."Latch" THEN
    "HMI_Variables_Status"."Procedures"."BlenderStateNum" := 18;
  END_IF;

  // Network 12: Running (Original Language: LAD)

  "Procedure_Variables"."Blender_Rinse"."Running" := "Procedure_Variables"."Blender_Rinse"."Latch" AND "Procedure_Variables"."Blender_Rinse"."Wait";

  // Network 13: Warm Rinse Running (Original Language: LAD)

  "HMI_Alarms"."gH_Status" := "WarmRinseON" AND "Procedure_Variables"."Blender_Rinse"."Latch";

  "HMI_Variables_Status"."Procedures"."WarmRinseRun" := "WarmRinseON" AND "Procedure_Variables"."Blender_Rinse"."Latch";

  // Network 14: Cold Rinse Running (Original Language: LAD)

  "HMI_Alarms"."gH_Status" := "ColdRinseON" AND "Procedure_Variables"."Blender_Rinse"."Latch";

  "HMI_Variables_Status"."Procedures"."ColdRinseRun" := "ColdRinseON" AND "Procedure_Variables"."Blender_Rinse"."Latch";

  // Network 15: Rinse Drain Active (Original Language: LAD)

  "HMI_Alarms"."gH_Status" := "gBlenderRinseMode" AND "Procedure_Variables"."TM301_Drain"."Latch";

  "gRinseDrainRunning" := "gBlenderRinseMode" AND "Procedure_Variables"."TM301_Drain"."Latch";

  // Network 16: Done (Original Language: LAD)

  "Procedure_Variables"."Blender_Rinse"."Done" := ("Procedure_Variables"."Blender_Rinse"."Latch" AND "Procedure_Variables"."TM301_Drain"."Done") OR ("Procedure_Variables"."Blender_Rinse"."Latch" AND "M19077") OR ("Procedure_Variables"."Blender_Rinse"."Reset" AND "Procedure_Variables"."Blender_Rinse"."Done" AND "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_FastChangeOverEnabled");

  // Network 17: Done (Original Language: LAD)

  IF "Procedure_Variables"."Blender_Rinse"."Done" OR "gBlenderCIPMode" THEN
    "Blender_Variables_Pers"."gFillerRinse_DoneLatch" := FALSE;
  END_IF;

  // Network 18: Rinse Completed (Original Language: LAD)

  // PBox SymPy processed, logic in consumer
  "M19020" := "System_RunOut_Variables"."In_Flr_FastRinseComplete"; // P_TRIG("System_RunOut_Variables"."In_Flr_FastRinseComplete") - Mem: "M19020"

  IF ("WarmRinseON" AND "mWarmStop") OR ("Procedure_Variables"."Blender_Rinse"."Latch" AND "System_RunOut_Variables"."In_Flr_FastRinseComplete") THEN
    "Blender_Variables_Pers"."gFillerRinse_DoneLatch" := TRUE;
  END_IF;

  IF ("WarmRinseON" AND "mWarmStop") OR ("WarmRinseON" AND "Procedure_Variables"."Blender_Rinse"."Latch" AND "System_RunOut_Variables"."In_Flr_FastRinseComplete") THEN
    "HMI_Variables_Status"."Procedures"."Rinse_WarmRinseDone" := TRUE;
  END_IF;

  IF ("ColdRinseON" AND "WarmRinseON" AND "mWarmStop") OR ("ColdRinseON" AND "Procedure_Variables"."Blender_Rinse"."Latch" AND "System_RunOut_Variables"."In_Flr_FastRinseComplete") THEN
    "HMI_Variables_Status"."Procedures"."Rinse_ColdRinseDone" := TRUE;
  END_IF;

  // Network 19: Rinse Done ONS (Original Language: LAD)

  // Edge Logic handled by Coil 26
  "M19021" := "Procedure_Variables"."Blender_Rinse"."Done"; // P_TRIG("Procedure_Variables"."Blender_Rinse"."Done") - Mem: "M19021"

  "Procedure_Variables"."Blender_Rinse"."ONS_Done" := "Procedure_Variables"."Blender_Rinse"."Done" AND NOT "M19021";
  "M19021" := "Procedure_Variables"."Blender_Rinse"."Done"; // P_TRIG("Procedure_Variables"."Blender_Rinse"."Done") - Mem: "M19021"

  // Network 20: Blender Rinse Done (Original Language: LAD)

  IF "Procedure_Variables"."Blender_Rinse"."ONS_Done" THEN
    BlenderRinse_Done();
  END_IF;

END_FUNCTION