ControlLogix PID Scaling - Help!

kdcui

Lifetime Supporting Member
Join Date
Dec 2007
Location
USA
Posts
386
I am trying to understand how the PID block behaves, specifically how the settings in the Scaling Tab effect the output of the Controller.

I loaded up a test program on a development system and for the purposes of this test I have the following:

Independent Gains - Kc - 1.0 Ki = 0. Kp = 0.

Setpoint = 50.0
Feedback (PV) = 10.0
Bias = 0.
CV Scaling: 0% = 0. 100% = 100.

Thus, Error = 40.

The reason for this setup is I can easily calculate (supposedly) the Output, based on Kc * Error.

On the Scaling Tab, if I have the Scaling set to 0 to 100 for BOTH the Unscaled PV and Engineering Unit Min / Max, I get a 40% output from the Controller.

However, if I set the PV and Engineering unit scaling to 0 to 500, I get an 8% output. However, the Error remains at 40!

So obviously calculating the Output is not simply just multiplying the Error by Kc. What am I missing? I know it has something to do with scaling...
 
50 divided by 500 equals 10 percent ...
10 divided by 500 equals 2 percent ...

10 minus 2 equals 8 percent ...

so that much makes sense ...

now let me work on that Error = 40 part for a few minutes ... can you post a screen shot? ...

Edit ... OK ... I think I see where you're coming from ...

try this approach:

50 minus 10 = 40 ...

so - manually change the PV to 2.0 and notice that the Error now reads 48 ...

summing up: the Error is just SP minus PV ...

another line of reasoning:

40 divided by 500 = 8 percent ...
 
Last edited:
50 divided by 500 equals 10 percent ...
10 divided by 500 equals 2 percent ...

Doh!!
Ron. I think I realize where I went wrong. The instruction set manual doesn't (in my opinion) make it clear that the error it uses to calculate output is based on a percentage of the engineering range as opposed to the absolute error in engineering units: I was multiplying Kc times 40 regardless of the scaling.

Just to make sure I'm on the same page as you, the 500 is not the Engineering Max but the range, right? So if I had 20 to 500 instead of 0 to 500, I'd be dividing by 480 (500 minus 20).

now let me work on that Error = 40% part for a few minutes ... can you post a screen shot? ...

The .ERR tag (and thus displayed error) on the PID block is always in engineering units. It divides this by the engineering range (in our case 40 / 500) to actually calculate the output (at least as of Rev 17). My output does change from 40 to 8 % accordingly though. The displayed error just remains in terms of the engineering units and not a dimensionless error.

I'm not at work anymore but I will post a screenshot tomorrow.
 
OK suppertime is over now – let me see if I can put my finger on what's been confusing you ...

the Error is calculated in the SAME UNITS as the Setpoint and the PV ... that's why the value of the Error (40) didn't change when you changed the scaling ...

the CV is calculated based on how much of "full scale" the Error represents ... so 40 divided by 500 gives a different result for CV – than 40 divided by 100 in your original setup ...

if that doesn't nail everything down, post again and we'll try something else ...

and incidentally, your experiments for learning the basic PID concepts this way are right on target ...

hope this helps ...

PS Edit ... if you're OK then the screenshot won't be needed ... I'm just really short on time - so I was afraid that not "seeing" the same thing you were looking at would be a problem ...
 
No worries Ron. You actually cleared up exactly what I was confused on so I think we are both on the same page now.

I actually have a fairly firm understanding of PID concepts, however the way Rockwell was handling stuff just threw me off a bit.

Backstory to my post:
I was using IMC correlations and manually calculating process gains and I noticed something didn't match up. If I have a process gain in Units of LPM per % output, I need to make that "unitless" based on the full range of the scaling in the PID Block since the instruction dictates a "dimensionless" controller and process gain.

In a nutshell, the controller gain I was getting from my IMC calculation was in % Output per LPM. I needed to convert that to % Output per "Error % of Range" before using it in the ControlLogix PID instruction.

Essentially just confusion over units. If you don't follow what I mean I can post a more detailed example.
 

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,511
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,233
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...
Replies
21
Views
5,078
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,118
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,041
Back
Top Bottom