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

5.4 KiB

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

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

VAR_TEMP
  mLatchONS : Bool;
  mBalaiage_Req : Bool;
  BalaiageFlowErrorABS : Real;
  mAuxReal : Real;
END_VAR

  #_1M_30S : Bool; // Auto-generated temporary
BEGIN

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

  "Procedure_Variables"."Balaiage"."Qualifier" := "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Balaiage" AND "gBlenderProdMode" AND "gBlenderRinseMode" AND "Blender_Variables_Pers"."gCarboStillRecipe" AND "gIN_VoltageOk";

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

  // Edge Logic handled by Coil 29
  "mBaialageReqONS" := "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_BaialageReq" OR "Procedure_Variables"."Blender_Run"."Request"; // P_TRIG("HMI_Variables_Cmd"."Commands_From_HMI"."CMD_BaialageReq" OR "Procedure_Variables"."Blender_Run"."Request") - Mem: "mBaialageReqONS"

  "Procedure_Variables"."Balaiage"."Request" := ("HMI_Variables_Cmd"."Commands_From_HMI"."CMD_BaialageReq" AND NOT "mBaialageReqONS") OR ("Procedure_Variables"."Blender_Run"."Request" AND NOT "mBaialageReqONS");
  "mBaialageReqONS" := "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_BaialageReq" OR "Procedure_Variables"."Blender_Run"."Request"; // P_TRIG("HMI_Variables_Cmd"."Commands_From_HMI"."CMD_BaialageReq" OR "Procedure_Variables"."Blender_Run"."Request") - Mem: "mBaialageReqONS"

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

  "Procedure_Variables"."Balaiage"."Reset" := "Procedure_Variables"."Balaiage"."Qualifier" OR ("Procedure_Variables"."Balaiage"."Latch" AND "gEmergencyPressed");

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

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

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

  // Edge Logic handled by Coil 28
  "mBaialage_Request" := "Procedure_Variables"."Balaiage"."Reset" AND "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_BaialageReq"; // P_TRIG("Procedure_Variables"."Balaiage"."Reset" AND "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_BaialageReq") - Mem: "mBaialage_Request"

  "mBalaiage_Req" := "Procedure_Variables"."Balaiage"."Reset" AND "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_BaialageReq" AND NOT "mBaialage_Request";
  "mBaialage_Request" := "Procedure_Variables"."Balaiage"."Reset" AND "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_BaialageReq"; // P_TRIG("Procedure_Variables"."Balaiage"."Reset" AND "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_BaialageReq") - Mem: "mBaialage_Request"

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

  "Procedure_Variables"."Balaiage"."Wait" := "AUX FALSE";

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

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

  // Network 8: Latch ONS (Original Language: LAD)

  // Edge Logic handled by Coil 26
  "M19074" := "Procedure_Variables"."Balaiage"."Latch"; // P_TRIG("Procedure_Variables"."Balaiage"."Latch") - Mem: "M19074"

  "mLatchONS" := "Procedure_Variables"."Balaiage"."Latch" AND NOT "M19074";
  "M19074" := "Procedure_Variables"."Balaiage"."Latch"; // P_TRIG("Procedure_Variables"."Balaiage"."Latch") - Mem: "M19074"

  // Network 9: Product Tank Pressure Running (Original Language: LAD)

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

  "HMI_Variables_Status"."Procedures"."BalaiageRun" := "Procedure_Variables"."Balaiage"."Latch";

  // Network 10: Product Tank Pressure Running (Original Language: LAD)

  IF "Procedure_Variables"."Balaiage"."Running" THEN
    "gSP_AVM321" := TRUE;
  END_IF;

  IF "Procedure_Variables"."Balaiage"."Running" THEN
    "gSP_AVM397" := TRUE;
  END_IF;

  // Network 11: PrdTankPressFault (Original Language: LAD)

  "mBaialage_Fault"(IN := "Procedure_Variables"."Balaiage"."Running" AND "Procedure_Variables"."TM301_Drain"."Latch" AND "gBalaiageTankFlowOK" AND "gBlenderRinseMode", PT := S5T#1M_30S); // TODO: Declarar "mBaialage_Fault" : TON;

  "gBalaiage_Fault" := "mBaialage_Fault".Q;

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

  IF "gBalaiage_MaxFlow" THEN
    "mAuxReal" := "Filler_Head_Variables"."Filler_Speed" * "HMI_Blender_Parameters"."Actual_Recipe_Parameters"."_BottleSize";
  END_IF;

  IF "gBalaiage_MaxFlow" THEN
    "mAuxReal" := "mAuxReal" * 0.000999;
  END_IF;

  IF "gBalaiage_MaxFlow" THEN
    "mAuxReal" := "mAuxReal" * 1.1;
  END_IF;

  IF "HMI_Instrument"."FTM305"."PVFiltered" >= 5.0 THEN
    "mAuxReal" := "HMI_Instrument"."FTM305"."PVFiltered";
  END_IF;

  // Network 13: Tank Flow Ok (Original Language: LAD)
  //   PrdTankPressError = Press_SP - Press_PV

  "Blender_Variables"."gBalaiageFlowError" := "mAuxReal" - "HMI_Instrument"."FTM305"."PVFiltered";

  // Network 14: CO2MainValveDelay (Original Language: LAD)

  // Network 14 did not produce printable SCL code.

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

  // PBox SymPy processed, logic in consumer
  "mBalaiageDoneONS" := "gBlenderCIPMode"; // P_TRIG("gBlenderCIPMode") - Mem: "mBalaiageDoneONS"

  "Procedure_Variables"."Balaiage"."Done" := "Procedure_Variables"."Balaiage"."Done" OR ("gBlenderCIPMode" AND NOT "mBalaiageDoneONS");

END_FUNCTION