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

3.2 KiB

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

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

VAR_STAT
  mStepNum : Int;
  mTimeStep : Int;
  mTransition : Bool;
  mAuxONS : Bool;
  mProdPipeDrainCMDTPON : Bool;
  mProdPipeDrainTPON : Bool;
  mProdPipeDrainCMDTP : "TP_TIME:v1.0";
  mProdPipeDrainTP : "TP_TIME:v1.0";
END_VAR

BEGIN

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

  "System_RunOut_Variables"."ProdPipe_Drain"."Qualifier" := ("System_RunOut_Variables"."ProdPipe_Drain"."Latch" AND "AUX FALSE") OR ("gBlenderProdMode" AND "gBlenderSuppliesOk" AND "System_RunOut_Variables"."FastChangeOverActivated" AND "System_RunOut_Variables"."ProdPipe_RunOut"."Done" AND "AUX FALSE");

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

  // Network 2 did not produce printable SCL code.

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

  // PBox SymPy processed, logic in consumer
  "ProdPipeDrainReset" := "System_RunOut_Variables"."ProdPipe_RunOut"."Done" OR "HMI_Variables_Cmd"."System_Run_Out"."CMD"."_ProdPipeDrainReq"; // P_TRIG("System_RunOut_Variables"."ProdPipe_RunOut"."Done" OR "HMI_Variables_Cmd"."System_Run_Out"."CMD"."_ProdPipeDrainReq") - Mem: "ProdPipeDrainReset"

  "System_RunOut_Variables"."ProdPipe_Drain"."Reset" := ("System_RunOut_Variables"."ProdPipe_Drain"."Qualifier" AND "System_RunOut_Variables"."FastChangeOverActivated") OR ("System_RunOut_Variables"."ProdPipe_RunOut"."Done" AND NOT "ProdPipeDrainReset") OR ("HMI_Variables_Cmd"."System_Run_Out"."CMD"."_ProdPipeDrainReq" AND NOT "ProdPipeDrainReset");

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

  "System_RunOut_Variables"."ProdPipe_Drain"."Wait" := "AUX FALSE";

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

  IF "System_RunOut_Variables"."ProdPipe_Drain"."Reset" THEN
    "mStepNum" := 0;
    "mTimeStep" := 0;
  END_IF;

  IF "System_RunOut_Variables"."ProdPipe_Drain"."Reset" THEN
    "System_RunOut_Variables"."ProdPipe_Drain"."Done" := FALSE;
  END_IF;

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

  "System_RunOut_Variables"."ProdPipe_Drain"."Latch" := ("System_RunOut_Variables"."ProdPipe_Drain"."Reset" AND "System_RunOut_Variables"."ProdPipe_Drain"."Request" AND "System_RunOut_Variables"."ProdPipe_Drain"."Done") OR ("System_RunOut_Variables"."ProdPipe_Drain"."Reset" AND "System_RunOut_Variables"."ProdPipe_Drain"."Latch" AND "System_RunOut_Variables"."ProdPipe_Drain"."Done");

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

  "System_RunOut_Variables"."ProdPipe_Drain"."Running" := "System_RunOut_Variables"."ProdPipe_Drain"."Wait" AND "System_RunOut_Variables"."ProdPipe_Drain"."Latch";

  "HMI_Alarms"."gH_Status" := "System_RunOut_Variables"."ProdPipe_Drain"."Wait" AND "System_RunOut_Variables"."ProdPipe_Drain"."Latch";

  IF "System_RunOut_Variables"."ProdPipe_Drain"."Wait" AND "System_RunOut_Variables"."ProdPipe_Drain"."Latch" THEN
    ProductPipeDrain_Seq(mStep := "mStepNum", mTime := "mTimeStep", mTransition := "mTransition");
  END_IF;

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

  "HMI_Variables_Status"."System_Run_Out"."ProductPipeDrainDone" := "System_RunOut_Variables"."ProdPipe_Drain"."Done";

END_FUNCTION_BLOCK