Obsidean_VM/04-SIDEL/00 - MASTER/Source/source/Procedure.md

3.1 KiB

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

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

VAR_INOUT
  mStepNum : Int;
  mTimeStep : Int;
  mTransition : Bool;
  mFlipFlopDone : Bool;
END_VAR

VAR_STAT
  Deaireator_StartUp : "ProcedureDeaireator StartUp";
  CarboWaterLine : "ProcedureCarboWaterLine";
  Syrup_RunOut : "ProcedureSyrup RunOut";
  SyrBrix_Autocorrection : "SyrBrix Autocorrection";
  ProdBrixRecovery : "ProcedureProdBrixRecovery";
  Syrup_MFM_StartUp : "ProcedureSyrupMFMStartUp";
  ProdTankDrain : "ProcedureProdTankDrain";
  ProdTank_RunOut : "ProcedureProdTankRunOut";
  Syrup_Line_MFM_Prep : "ProcedureSyrupLineMFMPrep";
  BlendFill_StartUp : "ProcedureBlendFill StartUp";
END_VAR

BEGIN

  // Network 1: Run Out Data (Original Language: LAD)

  "System_Run_Out_Data"();

  // Network 2: Deaireator Startup (Original Language: LAD)

  "Deaireator_StartUp"();

  // Network 3: Carbo Water Line Procedure (Original Language: LAD)

  "CarboWaterLine"();

  // Network 4: Syrup Line Procedure (Original Language: LAD)

  "Syrup_Line_MFM_Prep"();

  // Network 5: Syrup StartUp (Original Language: LAD)

  "Syrup_MFM_StartUp"();

  // Network 6: Syrup RunOut (Original Language: LAD)

  "Syrup_RunOut"();

  // Network 7: Product Tank RunOut (Original Language: LAD)

  "ProdTank_RunOut"();

  // Network 8: Product Tan Drain (Original Language: LAD)

  "ProdTankDrain"();

  // Network 9: Brix AutoCorrection (Original Language: LAD)

  "SyrBrix_Autocorrection"();

  // Network 10: BlendFill Startup (Original Language: LAD)

  "BlendFill_StartUp"();

  // Network 11: QCO MONITOR (Original Language: LAD)

  IF "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_FastChangeOverEnabled" THEN
    QCO_Monitor();
  END_IF;

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

  IF "gBlenderCIPMode" AND "Procedure_Variables"."Blender_Run"."Latch" AND "gIN_FillerCIPRequest" THEN
    "CIP_Program_Variables"."Status"."Started" := TRUE;
  END_IF;

  // Network 13: Not Started (Original Language: LAD)

  IF "gBlenderCIPMode" OR "gOUT_FillerCIPCompleted" THEN
    "CIP_Program_Variables"."Status"."Started" := FALSE;
  END_IF;

  // Network 14: CIP FlipFlop running (Original Language: LAD)

  "gCIP_FlipflopRunning" := "gBlenderCIPMode" AND "Procedure_Variables"."Blender_Run"."Latch" AND "gIN_FillerCIPRequest" AND "gIN_CIP_CIPProdSending" AND "gCIP_FlipFlopReset" AND "gCIP_FlipFlopDone";

  // Network 15: CIP Flip Flop Wait (Original Language: LAD)

  "gCIP_FlipFlopWait" := "Procedure_Variables"."Blender_Run"."Running";

  // Network 16: CIP FlipFlop running (Original Language: LAD)

  "gCIP_FlipFlopReset" := "gCIP_FlipFlopDone";

  // Network 17: CIP FlipFlop running (Original Language: LAD)

  IF "gCIP_FlipFlopReset" THEN
    "mStepNum" := 0;
  END_IF;

  IF "gCIP_FlipFlopReset" THEN
    "gCIP_FlipFlopDone" := FALSE;
  END_IF;

  // Network 18: Flip Flop (Original Language: LAD)

  IF "gCIP_FlipflopRunning" THEN
    CIP_FlipFlop(mStep := "mStepNum", mTime := "mTimeStep", mTransition := "mTransition");
  END_IF;

END_FUNCTION_BLOCK