64 lines
2.9 KiB
Markdown
64 lines
2.9 KiB
Markdown
```pascal
|
|
// Block Type: FB
|
|
// Block Number: 1789
|
|
// Original Network Languages: LAD
|
|
// Block Comment:
|
|
// TASK1 PID
|
|
|
|
FUNCTION_BLOCK "PID_RVP303"
|
|
{ S7_Optimized_Access := 'TRUE' }
|
|
VERSION : 0.1
|
|
|
|
VAR_STAT
|
|
PID_SyrLeve_Prop : Real;
|
|
PID_SyrLevel_Int : Real;
|
|
PID_SyrLevel_Der : Real;
|
|
PID : "PIDControl";
|
|
END_VAR
|
|
|
|
VAR_TEMP
|
|
mMaxSyrLevel : Real;
|
|
mMaxSyrLevelAnalog : Bool;
|
|
END_VAR
|
|
|
|
BEGIN
|
|
|
|
// Network 1: Manual Enable (Original Language: LAD)
|
|
|
|
"HMI_PID"."RVP303"."ManualControl"."PidEnable" := ("gCIP_SyrTank_MaxLevel" AND (("gBlenderRinseMode" AND "Procedure_Variables"."TM301_Drain"."Latch") OR ("gBlenderCIPMode" AND "gCIPRinseOpenValves" AND "CIP_Program_Variables"."Status"."CausticRecoveryRun" AND "CIP_Program_Variables"."Status"."BlenderDrainRunning"))) OR ("Blender_Variables_Pers"."gWaterRecipe" AND "gBlenderProdMode" AND "gBlenderRinseMode" AND (("gIN_SyrRoomOk" AND ("Procedure_Variables"."FTP302Line_Preparation"."Running" OR "Procedure_Variables"."FTP302_StartUp"."Running")) OR ("Procedure_Variables"."Blender_Run"."Latch" AND ("Procedure_Variables"."Syr_RunOut"."Latch" OR ("Procedure_Variables"."First_Production"."Latch" AND "Procedure_Variables"."FTP302Line_Preparation"."Done")))));
|
|
|
|
// Network 2: Setpoint (Original Language: LAD)
|
|
|
|
"HMI_PID"."RVP303"."Sp" := "Blender_Variables"."gSP_SYR_Level";
|
|
|
|
// Network 3: Setpoint (Original Language: LAD)
|
|
|
|
IF "gSyrTank_Loading" AND "System_RunOut_Variables"."ProdPipe_RunOut"."Running" AND (("gBlenderCIPMode" AND "HMI_PID"."RVP303"."ManualControl"."PidEnable" AND "Procedure_Variables"."Blender_Run"."Wait") OR ("System_RunOut_Variables"."FastChangeOverActivated" AND "Procedure_Variables"."FTP302Line_Preparation"."Running" AND "Procedure_Variables"."FTP302_StartUp"."Running" AND "HMI_PID"."RVP303"."ManualControl"."PidEnable" AND "Procedure_Variables"."Blender_Run"."Running")) THEN
|
|
"HMI_PID"."RVP303"."Sp" := "HMI_PID"."RVP303"."Pv";
|
|
END_IF;
|
|
|
|
// Network 4: 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"."RVP303"."ManualControl"."ManOut", PID_Data := "HMI_PID"."RVP303", PID_Enable := "HMI_PID"."RVP303"."ManualControl"."PidEnable" OR "HMI_PID"."RVP303"."I_ITL", P_Sel := "AUX TRUE", REG_INV := "AUX FALSE");
|
|
|
|
// Network 5: Integral PID Inizilize (Original Language: LAD)
|
|
|
|
IF "HMI_PID"."RVP303"."I_ITL" THEN
|
|
"HMI_PID"."RVP303"."I_ITL" := FALSE;
|
|
END_IF;
|
|
|
|
// Network 6: Valve Output (Original Language: LAD)
|
|
|
|
"mMaxSyrLevel" := "Blender_Variables"."gSP_SYR_Level" + 10.0;
|
|
|
|
"mMaxSyrLevelAnalog" := "HMI_Instrument"."LTP303"."PVFiltered" > "mMaxSyrLevel";
|
|
|
|
// Network 7: Valve Output (Original Language: LAD)
|
|
|
|
SEL_R(G := "HMI_PID"."RVP303"."ManualControl"."PidEnable" AND ("HMI_PID"."RVP303"."ManualControl"."ManOut" OR "mMaxSyrLevelAnalog"), IN0 := 0.0, IN1 := "HMI_PID"."RVP303"."Out");
|
|
|
|
END_FUNCTION_BLOCK
|
|
|
|
```
|