2.8 KiB
2.8 KiB
// Block Type: FB
// Block Number: 40
// Original Network Languages: LAD, STL
FUNCTION_BLOCK "PIDControl"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_INPUT
PID_Enable : Bool;
MAN_ON : Bool;
P_Sel : Bool;
I_Sel : Bool;
D_Sel : Bool;
FF_Enable : Bool;
REG_INV : Bool;
LMN_FAC : Real;
LMN_OFF : Real;
END_VAR
VAR_OUTPUT
LMN_P : Real;
LMN_I : Real;
LMN_D : Real;
END_VAR
VAR_INOUT
PID_Data : STRUCT
ConfigPID : Bool;
Hold_Int : Bool;
I_ITL : Bool;
Alarm : Bool;
Spare0_4 : Bool;
Spare0_5 : Bool;
Spare0_6 : Bool;
Config : Bool;
PID_FIX : Bool;
Spare1_1 : Bool;
High_Limit : Bool;
Low_Limit : Bool;
ManualControl : "Struct";
Bp : Real;
Ti : Real;
Td : Real;
Ff : Real;
KP : Real;
Pv : Real;
OutMan : Real;
Lsp : Real;
OutMaxHmi : Real;
OutMin : Real;
OutMax : Real;
Spare52 : Real;
FfOut : Real;
Sp : Real;
Out : Real;
Cycle_Time : Real;
I_ITLVAL : Real;
Dead_Band : Real;
END_STRUCT;
END_VAR
VAR_STAT
COM_RST : Bool;
SP_INT : Real;
PV_IN : Real;
MAN : Real;
TI_PID : Time;
TD_PID : Time;
CYCLE_PID : Time;
DIVS_PID : Real;
PID : "CONT_C:v1.1";
END_VAR
VAR_TEMP
SCALE_MAX : Real;
KP : Real;
END_VAR
BEGIN
// Network 1: Manual Output Value (Original Language: STL)
// --- BEGIN STL Network 1 ---
A "MAN_ON"
L "PID_Data".OutMan
JC manu
L 0.0
manu: T "MAN"
// --- END STL Network 1 ---
// Network 2: Integral Value Reset (Original Language: LAD)
"COM_RST" := "PID_Enable" AND "MAN_ON";
// Network 3: Set Point Remote/Local (Original Language: STL)
// --- BEGIN STL Network 3 ---
A "PID_Data".ManualControl.LocalSP
L "PID_Data".Lsp
JC sp
L "PID_Data".Sp
T "PID_Data".Lsp
sp: T "PID_Data".Sp
T "SP_INT"
// --- END STL Network 3 ---
// Network 4: Process Value (Original Language: STL)
// --- BEGIN STL Network 4 ---
L "PID_Data".Pv
T "PV_IN"
// --- END STL Network 4 ---
// Network 5: PID Parameter (Original Language: STL)
// --- BEGIN STL Network 5 ---
L "PID_Data".Ti
L 1000.0
MUL_R
RND
T "TI_PID"
L "PID_Data".Td
L 1000.0
MUL_R
RND
T "TD_PID"
L "PID_Data".Cycle_Time
L 1000.0
MUL_R
RND
T "CYCLE_PID"
L "PID_Data".KP
AN "REG_INV"
JC FFEN
L -1.0
MUL_R
FFEN: T "KP"
AN "FF_Enable"
L 0.0
JC FFVA
L "PID_Data".FfOut
FFVA: T "DIVS_PID"
// --- END STL Network 5 ---
// Network 6: (Original Language: STL)
// --- BEGIN STL Network 6 ---
CALL _Call_?
// --- END STL Network 6 ---
END_FUNCTION_BLOCK