125 lines
5.4 KiB
Markdown
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
|
|
|
|
```
|