ControlLogix PID: VFD Control limit 15-100%

kutuz

Member
Join Date
Mar 2010
Location
AB
Posts
29
Hello all,

I have a pump that has operational limits 15-100% Speed (9-60Hz).

1. On the PID instruction would you limit (.MINO=15% and .MAXO=100%) or (.MINCV=15%=9Hz and .MAXCV=100%=60Hz)?
2. Which of these you use to control the end device: Control Variable or .OUT?

Thanks.
 
If you right click on your PID block, you can select "Instruction Help" at the bottom of the popup menu. If you scroll down you'll see descriptions of all dotfields for the PID. You'll see that .MINCV and .MAXCV are scaling for output of the PID loop (0-100% being scaled to some other value). What you'll want to change is .MINO and .MAXO; these are the dotfields that control the min/max output of the loop, the 0-100%.

.OUT is what you're going to use for your actual control.

Sounds like you're new to PIDs in Logix. Do you have the PID block in a Periodic Task?
 
Last edited:
Thanks for the response. You're right, I don't program PID loops in Logix every day.

Following your advice I opened Instruction Help and found that Control Variable is what "goes to the final control device". You recommend to use .OUT instead which is used for "Display Only".

Either works and that is why I ask other people what they use.
 
Thanks for the response. You're right, I don't program PID loops in Logix every day.

Hey no worries! That's why this forum exists, to share knowledge and experience.

Following your advice I opened Instruction Help and found that Control Variable is what "goes to the final control device". You recommend to use .OUT instead which is used for "Display Only".
Either works and that is why I ask other people what they use.
Technically you are correct, using .OUT is going to ignore all .CV scaling from the PID block which isn't best practice. I believe .OUT is "display only" because it's 0-100% and can't be scaled; it'll always be 0-100% and will ignore any .CV scaling. The .CV will be scaled according to .MINCV and .MAXCV. Someone who is more knowledgeable than me could explain the potential benefit of scaling the .CV, I think sometimes it could help make more sense of the output, but also it could allow someone to scale to a raw output value directly. I personally like to keep all my scaling identical so I'm not hunting around so I don't do any .CV scaling but that's just my own personal programming habit.

Thus, if you're OK with the output being 0-100% then .OUT will work just fine but it's not best practice. I would thus correct myself and say, create a tag for your output and use that. Then there will be no confusion over .CV scaling for you, or any future programmer who comes across your code years later.

Interesting to note that there is no specific .CV dotfield, what you do is setup a tag and specify it as your .CV output. I simply call mine "[loop]_PID_Output" and insert whatever loop I'm working with as the tagname.
 
Last edited:
One thing we discussed internally was limiting CV vs. Output.
Sounds like when CV limit changes then a new tuning parameters are required, limiting an Output does not have that issue.
 
To throw in my 2c worth...

If it were me, I'd have my PID scaled 0-100% in all instances. Then I'd take the output from it, and scale it into whatever units the field device required, i.e. 9-60Hz*.

That way, all my PID's are uniform and I can use common logic and visualization tools.

(*actually, if it were me, it'd be 9-50Hz because who uses 60Hz? :p)
 
By the way, .OUT can be scaled, you do that exactly with .MINO and MAXO.

Interesting. Sometimes AB stuff confuses me with all the options they give. Because otherwise why not just have an output and be done? Maybe someone with more experience could chime in.
 
To throw in my 2c worth...

If it were me, I'd have my PID scaled 0-100% in all instances. Then I'd take the output from it, and scale it into whatever units the field device required, i.e. 9-60Hz*.

That way, all my PID's are uniform and I can use common logic and visualization tools.

That's exactly what I do, for the exact reasons.

(*actually, if it were me, it'd be 9-50Hz because who uses 60Hz? :p)

Hahaha, you Aussies and your 50Hz.
 
If it were me, I'd have my PID scaled 0-100% in all instances. Then I'd take the output from it, and scale it into whatever units the field device required, i.e. 9-60Hz*.
One small downside of your way is that if you ever need to change the minimum, you will have changed the effective gains on the PID loop. o_O But that may never be an issue, just food for thought.
 
One small downside of your way is that if you ever need to change the minimum, you will have changed the effective gains on the PID loop. o_O But that may never be an issue, just food for thought.
That's a point, I hadn't considered that. Although I figure if you ever need to change the minimum, it'll most likely be due to a change in the nature of the system, which may require re-tuning anyway.

Hahaha, you Aussies and your 50Hz.

You mean "hahaha, you rest-of-the-world and your 50Hz" :p
 

Similar Topics

Morning all, Could anyone shed some light on whats happening with my PID Loop? On our plant we have a 'fast ramp' on the PID Instruction done...
Replies
14
Views
7,604
Hello, I have a PID that I am using for an oxygen valve that regulates the pressure. Often when the header pressure is too low, the output will...
Replies
4
Views
1,278
Why is my PID .PV (Process Variable) getting continually overwritten with some strange value every time the rung my PID Instruction is on goes...
Replies
4
Views
2,135
Hi there, I have a PID which I limit at MINO = 25% and MAXO = 100%. When the PID runs for the first time it takes time to start reacting at 25+%...
Replies
3
Views
3,062
Hey fellas, I'm in the midst of doing my first translation from 5 to 5000 that also includes PID instructions. I'm just looking for any helpful...
Replies
10
Views
5,468
Back
Top Bottom