134 lines
5.6 KiB
Markdown
134 lines
5.6 KiB
Markdown
```pascal
|
|
// Block Type: FB
|
|
// Block Number: 1793
|
|
// Original Network Languages: LAD
|
|
// Block Comment:
|
|
// TASK1 PID
|
|
|
|
FUNCTION_BLOCK "PID_RVN302"
|
|
{ S7_Optimized_Access := 'TRUE' }
|
|
VERSION : 0.1
|
|
|
|
VAR_STAT
|
|
PID_RVN302_Prop : Real;
|
|
PID_RVN302_Int : Real;
|
|
PID_RVN302_Der : Real;
|
|
PID : "PIDControl";
|
|
END_VAR
|
|
|
|
VAR_TEMP
|
|
mDummy : Bool;
|
|
mMaxRVN302LevelAnalog : Bool;
|
|
mMaxRVN302Level : Real;
|
|
mAuxReal : Real;
|
|
END_VAR
|
|
|
|
BEGIN
|
|
|
|
// Network 1: Manual Enable (Original Language: LAD)
|
|
|
|
"HMI_PID"."RVN302"."ManualControl"."PidEnable" := ("Blender_Variables_Pers"."gSkipDeaireation" AND "Procedure_Variables"."Blender_Run"."Latch" AND "gBlenderProdMode" AND "gBlenderRinseMode") OR ("Blender_Variables_Pers"."gSkipDeaireation" AND "Procedure_Variables"."TN301_StartUp"."Done" AND "Procedure_Variables"."TN301_StartUp"."Running" AND "gBlenderProdMode" AND "gBlenderRinseMode");
|
|
|
|
"Blender_Variables"."Aux_RVN302_PID"."ManualControl"."PidEnable" := ("Blender_Variables_Pers"."gSkipDeaireation" AND "Procedure_Variables"."Blender_Run"."Latch" AND "gBlenderProdMode" AND "gBlenderRinseMode") OR ("Blender_Variables_Pers"."gSkipDeaireation" AND "Procedure_Variables"."TN301_StartUp"."Done" AND "Procedure_Variables"."TN301_StartUp"."Running" AND "gBlenderProdMode" AND "gBlenderRinseMode");
|
|
|
|
// Network 2: Setpoint (Original Language: LAD)
|
|
|
|
SEL_R(G := "Blender_Variables_Pers"."gSkipDeaireation", IN0 := "Blender_Variables"."gSP_DEAIR_Level", IN1 := "Blender_Variables"."gSP_ST OR AGE_Level");
|
|
|
|
// Network 3: 0 = Deaireation ON, 1 = Deaireation OFF (Original Language: LAD)
|
|
|
|
"HMI_Variables_Status"."System"."SkipDeaireation" := "Blender_Variables_Pers"."gSkipDeaireation";
|
|
|
|
// Network 4: Setpoint (Original Language: LAD)
|
|
|
|
IF ("Blender_Variables_Pers"."gSkipDeaireation" AND "HMI_PID"."RVN302"."ManualControl"."PidEnable" AND "Procedure_Variables"."Blender_Run"."Running" AND "Procedure_Variables"."BlendFill_StartUp"."Running") OR ("Blender_Variables_Pers"."gSkipDeaireation" AND "HMI_PID"."RVN302"."ManualControl"."PidEnable" AND "Procedure_Variables"."Blender_Run"."Running" AND "Procedure_Variables"."TN301_StartUp"."Running" AND "gDeairTank_Loading") THEN
|
|
"HMI_PID"."RVN302"."Sp" := "HMI_PID"."RVN302"."Pv";
|
|
END_IF;
|
|
|
|
// Network 5: Blender Variables - Persistent (Original Language: LAD)
|
|
|
|
"Blender_Variables"."Aux_RVN302_PID"."Sp" := "HMI_PID"."RVN302"."Sp";
|
|
|
|
"Blender_Variables"."Aux_RVN302_PID"."Pv" := "HMI_PID"."RVN302"."Pv";
|
|
|
|
"Blender_Variables"."Aux_RVN302_PID"."KP" := "HMI_PID"."RVN302"."KP";
|
|
|
|
SEL_R(G := "Blender_Variables_Pers"."gSkipDeaireation", IN0 := "HMI_PID"."RVN302"."Ti", IN1 := "HMI_PID"."RVN302_TM301"."Ti");
|
|
|
|
SEL_R(G := "Blender_Variables_Pers"."gSkipDeaireation", IN0 := "HMI_PID"."RVN302"."Td", IN1 := "HMI_PID"."RVN302_TM301"."Td");
|
|
|
|
"Blender_Variables"."Aux_RVN302_PID"."FfOut" := "HMI_PID"."RVN302"."FfOut";
|
|
|
|
"Blender_Variables"."Aux_RVN302_PID"."OutMax" := "HMI_PID"."RVN302"."OutMax";
|
|
|
|
"Blender_Variables"."Aux_RVN302_PID"."OutMin" := "HMI_PID"."RVN302"."OutMin";
|
|
|
|
"Blender_Variables"."Aux_RVN302_PID"."I_ITLVAL" := "HMI_PID"."RVN302"."I_ITLVAL";
|
|
|
|
"Blender_Variables"."Aux_RVN302_PID"."Lsp" := "HMI_PID"."RVN302"."Lsp";
|
|
|
|
"Blender_Variables"."Aux_RVN302_PID"."OutMan" := "HMI_PID"."RVN302"."OutMan";
|
|
|
|
"Blender_Variables"."Aux_RVN302_PID"."Cycle_Time" := "HMI_PID"."RVN302"."Cycle_Time";
|
|
|
|
"Blender_Variables"."Aux_RVN302_PID"."Dead_Band" := "HMI_PID"."RVN302"."Dead_Band";
|
|
|
|
"mDummy" := TRUE;
|
|
|
|
// Network 6: From HMI - Local (Original Language: LAD)
|
|
|
|
"Blender_Variables"."Aux_RVN302_PID"."ManualControl"."LocalSP" := "HMI_PID"."RVN302"."ManualControl"."LocalSP";
|
|
|
|
// Network 7: Integral PID Inizialize (Original Language: LAD)
|
|
|
|
"Blender_Variables"."Aux_RVN302_PID"."I_ITL" := "HMI_PID"."RVN302"."I_ITL";
|
|
|
|
// Network 8: PID Control (Original Language: LAD)
|
|
// Attenzione al Bit REG_INV !!
|
|
|
|
"PID"(D_Sel := "AUX TRUE", FF_Enable := "AUX TRUE", I_Sel := "AUX TRUE", LMN_FAC := 1.0, LMN_OFF := 0.0, MAN_ON := "HMI_PID"."RVN302"."ManualControl"."ManOut", PID_Data := "Blender_Variables"."Aux_RVN302_PID", PID_Enable := "HMI_PID"."RVN302"."ManualControl"."PidEnable" OR "HMI_PID"."RVN302"."I_ITL", P_Sel := "AUX TRUE", REG_INV := "AUX FALSE");
|
|
|
|
// Network 9: Valve Output (Original Language: LAD)
|
|
|
|
"HMI_PID"."RVN302"."Out" := "Blender_Variables"."Aux_RVN302_PID"."Out";
|
|
|
|
// Network 10: Integral PID Inizialize (Original Language: LAD)
|
|
|
|
"HMI_PID"."RVN302"."I_ITL" := "Blender_Variables"."Aux_RVN302_PID"."I_ITL";
|
|
|
|
// Network 11: Limit (Original Language: LAD)
|
|
|
|
"HMI_PID"."RVN302"."High_Limit" := "Blender_Variables"."Aux_RVN302_PID"."High_Limit";
|
|
|
|
// Network 12: Limit (Original Language: LAD)
|
|
|
|
"HMI_PID"."RVN302"."Low_Limit" := "Blender_Variables"."Aux_RVN302_PID"."Low_Limit";
|
|
|
|
// Network 13: Integral (Original Language: LAD)
|
|
|
|
"mPID_RVN302_Int" := "PID_RVN302_Int";
|
|
|
|
// Network 14: Integral PID Inizilize (Original Language: LAD)
|
|
|
|
IF "HMI_PID"."RVN302"."I_ITL" THEN
|
|
"HMI_PID"."RVN302"."I_ITL" := FALSE;
|
|
END_IF;
|
|
|
|
// Network 15: From HMI (Original Language: LAD)
|
|
|
|
SEL_R(G := "Blender_Variables_Pers"."gSkipDeaireation", IN0 := "Blender_Variables"."gSP_DEAIR_Level", IN1 := "Blender_Variables"."gSP_ST OR AGE_Level");
|
|
|
|
"mMaxRVN302Level" := "mAuxReal" + 10.0;
|
|
|
|
SEL_R(G := "Blender_Variables_Pers"."gSkipDeaireation", IN0 := "HMI_Instrument"."LTN301"."PVFiltered", IN1 := "HMI_Instrument"."LTM302"."PVFiltered");
|
|
|
|
"mMaxRVN302LevelAnalog" := "mAuxReal" > "mMaxRVN302Level";
|
|
|
|
// Network 16: Valve Output (Original Language: LAD)
|
|
|
|
SEL_R(G := "HMI_PID"."RVN302"."ManualControl"."PidEnable" AND ("HMI_PID"."RVN302"."ManualControl"."ManOut" OR "mMaxRVN302LevelAnalog"), IN0 := 0.0, IN1 := "HMI_PID"."RVN302"."Out");
|
|
|
|
END_FUNCTION_BLOCK
|
|
|
|
```
|