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

4.8 KiB

// Block Type: FB
// Block Number: 1807
// Original Network Languages: LAD

FUNCTION_BLOCK "ProcedureProdTankDrain"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1

VAR_STAT
  mStepNum : Int;
  mTimeStep : Int;
  mTransition : Bool;
  mAuxONS : Bool;
  mAux1ONS : Bool;
  mPrdTank_DrainTPON : Bool;
  mPrdTank_DrainTP0ON : Bool;
  mPrdTank_DrainTP1ON : Bool;
  mPrdTank_DrainTP : STRUCT
    PT : Time;
    ET : Time;
    IN : Bool;
    Q : Bool;
  END_STRUCT;

  mPrdTank_DrainTP0 : STRUCT
    PT : Time;
    ET : Time;
    IN : Bool;
    Q : Bool;
  END_STRUCT;

  mPrdTank_DrainTP1 : STRUCT
    PT : Time;
    ET : Time;
    IN : Bool;
    Q : Bool;
  END_STRUCT;

END_VAR

VAR_TEMP
  mAuxCalcInt : Int;
  mAuxCalcDInt : DInt;
  mAuxCalcReal : Real;
END_VAR

BEGIN

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

  "Procedure_Variables"."TM301_Drain"."Qualifier" := "System_RunOut_Variables"."FastChangeOverActivated" OR ("gBlenderProdMode" AND "Procedure_Variables"."Blender_Run"."Running" AND "Procedure_Variables"."TM301_RunOut"."Latch" AND "gBlenderSuppliesOk") OR ("gBlenderProdMode" AND "Blender_Variables_Pers"."gFillerRinse_DoneLatch" AND "Procedure_Variables"."TM301_RunOut"."Latch" AND "gBlenderSuppliesOk");

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

  // Network 2 did not produce printable SCL code.

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

  // PBox SymPy processed, logic in consumer
  "ProdTankDrainReset" := ("Procedure_Variables"."Blender_Rinse"."Done" AND "System_RunOut_Variables"."FastChangeOverActivated") OR ("System_RunOut_Variables"."FastChangeOverActivated" AND "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_TM301DrainReq"); // P_TRIG(("Procedure_Variables"."Blender_Rinse"."Done" AND "System_RunOut_Variables"."FastChangeOverActivated") OR ("System_RunOut_Variables"."FastChangeOverActivated" AND "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_TM301DrainReq")) - Mem: "ProdTankDrainReset"

  "Procedure_Variables"."TM301_Drain"."Reset" := ("Procedure_Variables"."TM301_Drain"."Done" AND "Procedure_Variables"."Blender_Rinse"."Done" AND "System_RunOut_Variables"."FastChangeOverActivated" AND NOT "ProdTankDrainReset") OR ("Procedure_Variables"."TM301_Drain"."Done" AND "System_RunOut_Variables"."FastChangeOverActivated" AND "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_TM301DrainReq" AND NOT "ProdTankDrainReset") OR ("Procedure_Variables"."Blender_Rinse"."Done" AND "System_RunOut_Variables"."FastChangeOverActivated" AND "Procedure_Variables"."TM301_Drain"."Latch" AND NOT "ProdTankDrainReset") OR ("System_RunOut_Variables"."FastChangeOverActivated" AND "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_TM301DrainReq" AND "Procedure_Variables"."TM301_Drain"."Latch" AND NOT "ProdTankDrainReset");

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

  IF "Procedure_Variables"."TM301_Drain"."Reset" THEN
    "mStepNum" := 0;
  END_IF;

  IF "Procedure_Variables"."TM301_Drain"."Reset" THEN
    "Procedure_Variables"."TM301_Drain"."Done" := FALSE;
  END_IF;

  // Network 5: TM301 Drain Reset (Original Language: LAD)

  // PBox SymPy processed, logic in consumer
  "M19076" := "Procedure_Variables"."TM301_Drain"."Request" AND "System_RunOut_Variables"."FastChangeOverActivated"; // P_TRIG("Procedure_Variables"."TM301_Drain"."Request" AND "System_RunOut_Variables"."FastChangeOverActivated") - Mem: "M19076"

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

  "Procedure_Variables"."TM301_Drain"."Wait" := "gDrainPressNotOK" AND "Disable_Bit";

  // Network 7: State Num (Original Language: LAD)

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

  IF ("Procedure_Variables"."TM301_Drain"."Done" AND "Procedure_Variables"."TM301_Drain"."Reset" AND "Procedure_Variables"."TM301_Drain"."Request" AND "FirstScan") OR ("Procedure_Variables"."TM301_Drain"."Done" AND "Procedure_Variables"."TM301_Drain"."Reset" AND "FirstScan" AND "Procedure_Variables"."TM301_Drain"."Latch") THEN
    "HMI_Variables_Status"."Procedures"."BlenderStateNum" := 10;
  END_IF;

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

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

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

  "HMI_Variables_Status"."Procedures"."TM301DrainRun" := "Procedure_Variables"."TM301_Drain"."Latch";

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

  IF "Procedure_Variables"."TM301_Drain"."Running" THEN
    Prod_Tank_Drain_Seq(mStep := "mStepNum", mTime := "mTimeStep", mTransition := "mTransition");
  END_IF;

END_FUNCTION_BLOCK