Siemens, CONT_C, PID, TIA 15

learner

Lifetime Supporting Member
Join Date
Apr 2007
Location
British Columbia
Posts
81
Urgent, Commissioning deadline.

I am using CONT_C in a function block. I call the FB in a Cyclic Program (OB32). when the PID is in manual I can change the Block CV by entering a manual value of 0-100%. The problem is starts when I put the loop in Automatic. It is a simple Flow control loop. As soon as I put the loop in Automatic, the loop becomes very unstable. Proportional gain is 0.1, Ti is 0 ms, PV_FAC=1. Derivative is also 0. SP=1100, PV (0-1800).

My Question: Why is this loop become so unstable with such a very small gain? Is this because my SP and PV can only be between (-100 to 100 %)? Does it have anything to do with PV_FAC?

Thank you in advance
 
If the integral part of the controller is enabled with I_SEL = true, then it's always active.
When you set the parameter TI to T#0s, then internally the parameter is limited to a minimum value of 0.5 * Cycle. So the integral effect is on maximum with your settings. No wonder when it's unstable.
 
Thank you, so in this case I will disable the ISEL and see what happens. So you don't think it has anything to do with the fact that my setpoint and PV are in 1800 ranges and not (-100 to 100 %) ? I should also mention that my CV is scaled to be 0 to 100 to control a VFD.
 
Thank you, so in this case I will disable the ISEL and see what happens. So you don't think it has anything to do with the fact that my setpoint and PV are in 1800 ranges and not (-100 to 100 %) ? I should also mention that my CV is scaled to be 0 to 100 to control a VFD.

If you set I_SEL and D_SEL to false you have a P only controller. For flow control I guess you'll need a PI controller. You can increase TI from your 0s to 20s for example (default value). Remember if you increase TI the integral part changes slower on error.

But without knowing what time parameters your process you want to contol has, it's not possible to give you the PID parameters.
 
The thing that bothers me is that in the help file it is indicating that SP and PV range is (-100 to 100%). Does this simply mean for values out of this range I have to scale my SP and PV?
 
SP or PV aren't limited. If you are using for PV the peripheral input PV_PER, then it's scaled to 0..100 %, and then you need to scale your SP also to percentage.

The CV output (LMN) is limited to LMN_LLM and LMN_HLM, the default values are 0 and 100.

For your example with SP = 1000 and P-only controller with gain of 0.1, then when PV is 500, LMN will go to (SP-PV*gain) = (1000 - 500) * 0.1 = 50.
 
Thanks. Today, I got to simulate it with the simulation block I made for my analog inputs scaled values. It seems like, since the PV and SP are in 2000's range, any error more than 200 gets interpreted to almost 100% of CV. even if i turn the P really low, (0.05) ish it either cannot reach the setpoint or if I go with higher gains it becomes unstable. I am going to do is to Scale my SP and PV to 0-100. in this case I can have a better control over it. please let me know if you have any other opinion.
 
Thanks. Today, I got to simulate it with the simulation block I made for my analog inputs scaled values. It seems like, since the PV and SP are in 2000's range, any error more than 200 gets interpreted to almost 100% of CV. even if i turn the P really low, (0.05) ish it either cannot reach the setpoint or if I go with higher gains it becomes unstable. I am going to do is to Scale my SP and PV to 0-100. in this case I can have a better control over it.

It makes no difference if you scale PV and SP scale from 2000 down to percentage. Then you would need to increase the gain by the same factor.

With only P_SEL on true, with Gain of 0.05 you get on an error of a LMN of 10 and not 100.
LMN := (SP_INT - PV) * Gain

With example values:
LMN := (1800 - 1600) * 0.05 := 10.0

When you scale down PV and SP by dividing by 20, then you'd need to multiply gain by 20 to get the same result.

Unscaled:
SP := 1800
PV := 1600

Scaled to % (2000 = 100 %):
SP := 1800 / 20 = 90
PV := 1600 / 20 = 80

Gain := 0.05 * 20 = 1

LMN := (90 - 80) * 1 := 10.0
 

Similar Topics

Hello I am trying to understand the operation and all the parameters required for setting up the FB 41 block, I have read the Siemens...
Replies
5
Views
3,832
OK. You guys helped me out a bunch with my first Siemens question. I found a bunch of issues with integrity checking the PLC programs I was...
Replies
3
Views
102
Hi, I have a 1214 on ip 192.168.0.100. This is connected to other modules through a switch on same network. I need to connect this to a company...
Replies
1
Views
94
Hello. I appreciate the insights here and the willingness to share. I've got a lot of Rockwell experience, but my Siemens experience is...
Replies
6
Views
128
Kindly, has anyone tried to control Lenze servomotors with Siemens S120 drives ? Any special hints ? Have some concerns for the resolver and servo...
Replies
5
Views
178
Back
Top Bottom