101 lines
4.3 KiB
Markdown
101 lines
4.3 KiB
Markdown
```pascal
|
|
// Block Type: FC
|
|
// Block Number: 2021
|
|
// Original Network Languages: STL, LAD
|
|
// Block Comment:
|
|
// TASK2
|
|
|
|
FUNCTION "Output_CO2InjPress" : Void
|
|
{ S7_Optimized_Access := 'TRUE' }
|
|
VERSION : 0.1
|
|
|
|
VAR_TEMP
|
|
gR_CO2_SP_Real : Real;
|
|
gR_CO2_SP_Int : Word;
|
|
gR_CO2_SP_DInt : DInt;
|
|
gR_CO2_Max : Int;
|
|
gR_CO2_Min : Int;
|
|
mAux : Bool;
|
|
mSel : Bool;
|
|
mAuxCalc : Real;
|
|
mAuxDInt : DInt;
|
|
mCO2InjOffset : Real;
|
|
mCO2TestReq : Bool;
|
|
END_VAR
|
|
|
|
BEGIN
|
|
|
|
// Network 1: Setpoint (Original Language: LAD)
|
|
|
|
"gR_CO2_SP_Real" := "Blender_Variables"."gCarboCO2Error" * "Blender_Variables"."gK_RecCarboCO2Error";
|
|
|
|
"gR_CO2_SP_Real" := "HMI_PID"."RMM303"."Sp" - "gR_CO2_SP_Real";
|
|
|
|
LIMIT_R(IN := "gR_CO2_SP_Real", MN := "HMI_Blender_Parameters"."ProcessSetup"."_InjCO2Press_MinFlow", MX := "HMI_Blender_Parameters"."ProcessSetup"."_InjCO2Press_MaxFlow");
|
|
|
|
// Network 2: Max Value (Original Language: LAD)
|
|
|
|
// Network 2 did not produce printable SCL code.
|
|
|
|
// Network 3: Min Value (Original Language: LAD)
|
|
|
|
// Network 3 did not produce printable SCL code.
|
|
|
|
// Network 4: Offset (Original Language: LAD)
|
|
|
|
"HMI_Instrument"."PCM306_Offset"."Zero" := "HMI_Blender_Parameters"."ProcessSetup"."_InjCO2Press_Offset";
|
|
|
|
// Network 5: Scaling (Original Language: LAD)
|
|
|
|
ReadAnalogIn(ANALOG := "HMI_Instrument"."PCM306_Offset", MAX_Analog_Value := "gR_CO2_Max", MIN_Analog_Value := "gR_CO2_Min", PEW := "gR_CO2_SP_Int");
|
|
|
|
// Network 6: Test (Original Language: STL)
|
|
|
|
// --- BEGIN STL Network 6 ---
|
|
|
|
A "gWorkshopTest"
|
|
AN "Procedure_Variables".Blender_Run.Running
|
|
A "HMI_Service".Workshop_Test.CO2TestRequest
|
|
= "mCO2TestReq"
|
|
A "mCO2TestReq"
|
|
JNB _007
|
|
L "HMI_PID".RVM301.Pv
|
|
L 2.0
|
|
ADD_R
|
|
T "HMI_PID".PCM306.Sp
|
|
_007: NOP_0
|
|
|
|
// --- END STL Network 6 ---
|
|
|
|
// Network 7: Injection Offset (Original Language: LAD)
|
|
|
|
IF "mCO2TestReq" THEN
|
|
LIMIT_R(IN := "HMI_Instrument"."PCM306_Offset"."PV", MN := 0.0, MX := "HMI_Instrument"."PCM306_Offset"."Zero");
|
|
END_IF;
|
|
|
|
// Network 8: PCM306 - Carbo Co2 Pressure (Original Language: LAD)
|
|
|
|
IF ("mCO2TestReq" AND "mPCM306_Reset" AND "HMI_Device"."AVM341"."Out" AND "gBlenderCIPMode" AND "Blender_Variables_Pers"."gCarboStillRecipe" AND "Procedure_Variables"."CarboWaterLine"."Latch" AND "HMI_Blender_Parameters"."Actual_Recipe_Parameters"."_GAS2_Injection") OR ("mCO2TestReq" AND "mPCM306_Reset" AND "HMI_Device"."AVM342"."Out" AND "gBlenderCIPMode" AND "Blender_Variables_Pers"."gCarboStillRecipe" AND "Procedure_Variables"."CarboWaterLine"."Latch" AND "HMI_Blender_Parameters"."Actual_Recipe_Parameters"."_GAS2_Injection") THEN
|
|
"HMI_PID"."PCM306"."Sp" := "HMI_Blender_Parameters"."ProcessSetup"."_CarboCO2Pressure" - "mCO2InjOffset";
|
|
END_IF;
|
|
|
|
IF ("mCO2TestReq" AND "mPCM306_Reset" AND "HMI_Device"."AVM341"."Out" AND "gBlenderCIPMode" AND "Blender_Variables_Pers"."gCarboStillRecipe" AND "Procedure_Variables"."CarboWaterLine"."Latch") OR ("mCO2TestReq" AND "mPCM306_Reset" AND "HMI_Device"."AVM342"."Out" AND "gBlenderCIPMode" AND "Blender_Variables_Pers"."gCarboStillRecipe" AND "Procedure_Variables"."CarboWaterLine"."Latch") THEN
|
|
"HMI_PID"."PCM306"."Sp" := 11.0;
|
|
END_IF;
|
|
|
|
IF ("mCO2TestReq" AND "mPCM306_Reset" AND "HMI_Device"."AVM341"."Out" AND "gBlenderCIPMode" AND "Blender_Variables_Pers"."gCarboStillRecipe" AND "HMI_Blender_Parameters"."Actual_Recipe_Parameters"."_GAS2_Injection") OR ("mCO2TestReq" AND "mPCM306_Reset" AND "HMI_Device"."AVM342"."Out" AND "gBlenderCIPMode" AND "Blender_Variables_Pers"."gCarboStillRecipe" AND "HMI_Blender_Parameters"."Actual_Recipe_Parameters"."_GAS2_Injection") THEN
|
|
"HMI_PID"."PCM306"."Sp" := "HMI_Blender_Parameters"."ProcessSetup"."_GAS2InjectionPress";
|
|
END_IF;
|
|
|
|
IF ("mCO2TestReq" AND "mPCM306_Reset" AND "HMI_Device"."AVM341"."Out" AND "gBlenderCIPMode" AND "Blender_Variables_Pers"."gCarboStillRecipe" AND "HMI_Blender_Parameters"."Actual_Recipe_Parameters"."_GAS2_Injection") OR ("mCO2TestReq" AND "mPCM306_Reset" AND "HMI_Device"."AVM342"."Out" AND "gBlenderCIPMode" AND "Blender_Variables_Pers"."gCarboStillRecipe" AND "HMI_Blender_Parameters"."Actual_Recipe_Parameters"."_GAS2_Injection") THEN
|
|
"HMI_PID"."PCM306"."Sp" := 2.0;
|
|
END_IF;
|
|
|
|
// Network 9: PCM306 High Pressure - Supplies Alarm (Original Language: LAD)
|
|
|
|
"gPCM306HighPress" := "HMI_Instrument"."PTM308"."PVFiltered" >= 18.0;
|
|
|
|
END_FUNCTION
|
|
|
|
```
|