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

125 lines
5.4 KiB
Markdown

```pascal
// 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
```