137 lines
2.2 KiB
Markdown
137 lines
2.2 KiB
Markdown
```pascal
|
|
// 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 : "PID";
|
|
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
|
|
|
|
```
|