manmeetvirdi
Member
Hi
well Iam using PID blocks of Simatic Manager FB41, FB43.
The manual of the PID says that FB 41 is called after every 2 seconds, and FB43
after every 10ms, whereas OB35 time is set to 10ms.
That means after 200 calls of FB 43, FB41 is called once.
Since my OB 35 is at 150ms,I am calling FB41 after every 10seconds from OB 35
(by iniliazing the counter and making it to count till 200)whereas FB43 is being
processed in the OB 35 itself.
For FB43 i have set the folowing values:
INV :=DB7.DBD60
PER_TM :=T#1S500MS (to make 10 pulses in this time)
P_B_TM :=T#1S
RATIOFAC:=1.000000e+000
STEP3_ON:=FALSE
ST2BI_ON:=FALSE
MAN_ON :=DB7.DBX64.4
POS_P_ON:=DB7.DBX64.5
NEG_P_ON:=
SYN_ON :=TRUE
COM_RST :=DB7.DBX64.0
CYCLE :=T#150MS (pulse duration)
QPOS_P :=M27.1
QNEG_P :=
and for FB 41:
COM_RST :=DB7.DBX24.0
MAN_ON :=DB7.DBX24.4
PVPER_ON:=FALSE
P_SEL :=TRUE
I_SEL :=TRUE
INT_HOLD:=FALSE
I_ITL_ON:=FALSE
D_SEL :=TRUE
CYCLE :=T#10S
SP_INT :=DB7.DBD4
PV_IN :=DB7.DBD0
PV_PER :=
MAN :=1.000000e+002
GAIN :=DB7.DBD8
TI :=DB7.DBD12
TD :=DB7.DBD16
LMN_HLM :=1.000000e+002
LMN_LLM :=0.000000e+000
PV_FAC :=1.000000e+000
LMN :=DB7.DBD20
Is this correct way?Is there any miss entries?
a)Problem is LMN value only starts changing once the temperature(through PT100)
reaches the set point, and because of which temperature always overshoot.
Why LMN value starts changing only after SP is reached, why not before it so as to prevent overshoot?
b)Also what Fb43 seems to be doing is that when LMN value is 100 then QPOS_P=M27.1
becomes true and when LMN value is 0 it becomes false.
This can be done using simple comparision function why to use FB43?
Or is that that it is producing the pulse output which Iam not able to see,obviously?
In my application I need to switch ON the heater through QPOS(M27.1) of FB 43
and when M27.1 is FALSE need to switch on the valve which will circulate the
chilled water to bring the temperature down.Temperature needs to be maintened around
65 degree celcius
well Iam using PID blocks of Simatic Manager FB41, FB43.
The manual of the PID says that FB 41 is called after every 2 seconds, and FB43
after every 10ms, whereas OB35 time is set to 10ms.
That means after 200 calls of FB 43, FB41 is called once.
Since my OB 35 is at 150ms,I am calling FB41 after every 10seconds from OB 35
(by iniliazing the counter and making it to count till 200)whereas FB43 is being
processed in the OB 35 itself.
For FB43 i have set the folowing values:
INV :=DB7.DBD60
PER_TM :=T#1S500MS (to make 10 pulses in this time)
P_B_TM :=T#1S
RATIOFAC:=1.000000e+000
STEP3_ON:=FALSE
ST2BI_ON:=FALSE
MAN_ON :=DB7.DBX64.4
POS_P_ON:=DB7.DBX64.5
NEG_P_ON:=
SYN_ON :=TRUE
COM_RST :=DB7.DBX64.0
CYCLE :=T#150MS (pulse duration)
QPOS_P :=M27.1
QNEG_P :=
and for FB 41:
COM_RST :=DB7.DBX24.0
MAN_ON :=DB7.DBX24.4
PVPER_ON:=FALSE
P_SEL :=TRUE
I_SEL :=TRUE
INT_HOLD:=FALSE
I_ITL_ON:=FALSE
D_SEL :=TRUE
CYCLE :=T#10S
SP_INT :=DB7.DBD4
PV_IN :=DB7.DBD0
PV_PER :=
MAN :=1.000000e+002
GAIN :=DB7.DBD8
TI :=DB7.DBD12
TD :=DB7.DBD16
LMN_HLM :=1.000000e+002
LMN_LLM :=0.000000e+000
PV_FAC :=1.000000e+000
LMN :=DB7.DBD20
Is this correct way?Is there any miss entries?
a)Problem is LMN value only starts changing once the temperature(through PT100)
reaches the set point, and because of which temperature always overshoot.
Why LMN value starts changing only after SP is reached, why not before it so as to prevent overshoot?
b)Also what Fb43 seems to be doing is that when LMN value is 100 then QPOS_P=M27.1
becomes true and when LMN value is 0 it becomes false.
This can be done using simple comparision function why to use FB43?
Or is that that it is producing the pulse output which Iam not able to see,obviously?
In my application I need to switch ON the heater through QPOS(M27.1) of FB 43
and when M27.1 is FALSE need to switch on the valve which will circulate the
chilled water to bring the temperature down.Temperature needs to be maintened around
65 degree celcius