You are on page 1of 9

Page 1 of 9

Quick Start Guide to Using the PID Block in Logix 5000


© 2009 SimpleSolvers, LLC Copyrighted material! Do not copy or otherwise distribute
without express written permission of SimpleSolvers, LLC

It is assumed that the reader has three important skills: a good working
knowledge of PID, a good working knowledge of the Logix 5000 platform,
and a good working knowledge of the process and system to which the
PID block is to be applied.

Note carefully that the methods used here are not universally applicable
nor are they the only means of arriving at a PID solution to your control
application. If you are not already familiar with PID control, we strongly
recommend you read one of our Getting Started Guides to PID Control,
and if you are not familiar with PLC programming, we strongly recommend
you read our Getting Started Guide to Programmable Logic Controllers.

Step number one in the solution of any control problem is to first assure
that the process can be controlled well. If, for example, you have an
industrial oven which is heated by a gas burner, can you disconnect the
mechanical linkage between the servo motor and the throttle and then
adequately control the temperature by physically moving the throttle? If
you can’t, then maybe you have a problem that the most finely tuned PID
loop can never control! Assuming that you can control your process
manually, continue on…

1. Insert the PID block from the “Special” menu. Be sure to assign its tag
the Data Type “PID”. Enter a tag for the Process Variable, keeping in mind
the possibility of internal scaling (discussed in Step 11). Leave Tieback at
zero for now (it will be discussed in Step 13). Enter a tag for the Control
Variable. In most cases leave “PID Master Loop”, “Inhold Bit”, and “Inhold
Value” at zero unless you really plan to use them.
Page 2 of 9

Quick Start Guide to Using the PID Block in Logix 5000


© 2009 SimpleSolvers, LLC Copyrighted material! Do not copy or otherwise distribute
without express written permission of SimpleSolvers, LLC

2. There are two approaches to manipulating the data within the PID
block. The simpler approach is to set control bits and write data directly in
the block using RSLogix 5000. You can perform PID on a process using as
little as a tag for the PID instruction and a tag for the CV, then manually
keying in a value for the setpoint, and finally entering parameters in the
PID block’s setup screen. The second approach is more sophisticated,
where the various commands and data registers are written to from the
ladder logic. All of these data locations are listed in tables at the end of
this document. The vast majority of PID applications will use both
approaches to some degree. The most common strategy is to write to the
setpoint using data that is coming in from a touchscreen, while a more
complex strategy might allow adjustment of PID parameters from a
touchscreen as well.

3. Open the PID block’s setup screen and select the Configuration tab.
The first selection to be made is titled “PID Equation”. When setting up the
PID block, you are given the option of using either dependent or
independent gains. There is no operational difference between the two:
both methods work equally well in any situation. The only consequence
of this choice is that the units of Reset and Rate (the “I” and “D” of PID) will
have different meanings. We recommend you use dependent gains for
three reasons: it is more commonly used, it is the ISA Standard, and it is
what was used in the Logix 500 platform. If you should choose to use
independent gains, be aware that Integral (Reset) operates as “Repeats
per Second” instead of “Minutes per Repeat” (also known as time
constant in minutes) and that Derivative (Rate) operates in seconds rather
than in minutes. The following information assumes, however, that you will
configure your PID block for dependent gains.

4. The next selection is “Control Action”. This means reverse-acting versus


forward-acting control action. SP-PV is reverse-acting and PV-SP is
forward-acting.
Page 3 of 9

Quick Start Guide to Using the PID Block in Logix 5000


© 2009 SimpleSolvers, LLC Copyrighted material! Do not copy or otherwise distribute
without express written permission of SimpleSolvers, LLC

5. In most cases the choice for “Derivative Of” will be PV. If your process
can tolerate significant overshooting and you are looking for very fast
response, choose Error.

6. “Loop Update Time” will not be critical in most applications. Try a


setting of 0.1 to 1.0 seconds. Keep in mind that the faster the update time
is, the more overhead time burden will be imposed on the processor.

7. Leave the “CV High Limit” on 100 and the “CV Low Limit” on 0 unless
you have a good reason to limit your output.

8. Leave “Deadband Value” at zero unless you have a good reason to


use one, such as avoidance of short-cycling a compressor or oil burner,
although our recommendation even in those cases is to use a zero
deadband, but instead limit short-cycling by manipulating the discrete
output of a time-proportioning routine such as the one we suggest in our
sample downloads. That way you keep the actual PID tuning nice and
clean.

9. We recommend the five check-options on the right side be left


unchecked unless you are certain you will need any of them.

10. The Alarm tab is self-explanatory. This can be a great convenience if


needed.
Page 4 of 9

Quick Start Guide to Using the PID Block in Logix 5000


© 2009 SimpleSolvers, LLC Copyrighted material! Do not copy or otherwise distribute
without express written permission of SimpleSolvers, LLC

11. Next, select the Scaling tab. There are three fields (PV, CV, and
Tieback) and one checkbox (PID Initialized) on this tab. There are
actually two significant issues associated with the PV field: scaling of data
(if necessary), and the defining of the control range (absolutely critical to
the tuning of your PID loop). When you enter min and max values for “PV
Engineering Units”, you are defining the control range. This is the value
upon which the percent PB (reciprocal of Gain, or Kp) is based. For
example, if you chose a Kp value of 30, then set “Engineering Units Min” =
0 and “Engineering Units Max” = 500, you will have a PB of 3.3% or 16.5
engineering units. If you do not wish to use the scaling function, then your
Unscaled Max and Min values will be the same as your Engineering Unit
Max and Min values.

12. The “Control Variable (CV)” field allows for min and max values of the
controlling variable. When the PID block calls for maximum or 100%
output, the value for “Max (at 100%)” is the bit value that will be written to
the output. For example, if you are controlling a gas burner that is
operated by a 0 to 10 VDC signal and that signal comes from an analog
output that is controlled by a bit range of 0 to 32767, you would enter 0 for
the Min value and 32767 for the Max value. If, for example, you entered a
value of 10000 for the Max value, the gas burner in this example would
only open up less than half way when there is a call for 100% output.

13. The “Tieback” field has significance only when you put the PID block
in Manual Mode. If you expect to occasionally use Manual control,
“Tieback Max” and “Tieback Min” are used in the same way that the
“Control Variable (CV)” field is used. These values are simply used in
place of the “Control Variable (CV)” values when the PID is block is in
Manual Mode. See also Step 15 for a complete discussion of Manual
mode.

14. “PID Initialized” should always be checked. The only time it is ever
unchecked is in the event of changing scaling parameters while on the fly
(remaining in run mode).
Page 5 of 9

Quick Start Guide to Using the PID Block in Logix 5000


© 2009 SimpleSolvers, LLC Copyrighted material! Do not copy or otherwise distribute
without express written permission of SimpleSolvers, LLC

15. Next, select the Tuning tab. Note that the “Manual Modes” field has
two selections, Manual and Software Manual. If both are selected,
Manual overrides Software Manual. The only difference between the two
is that Manual mode uses the Tieback values established on the Scaling
tab, while Software Manual uses the “Set Output” value which you enter
here on the Tuning tab. Note that when running in Auto mode (regular PID
control) the “Set Output” window displays the current CV value expressed
as a percentage.

16. A setpoint value can be set here at “Setpoint (SP)”, provided that your
logic is not writing a value to .SP

17. In most cases, leave “Output Bias” at zero. This feature is used in feed
forward schemes where Integral action is turned off.

18. The “Tuning Constants” field is where you set the primary PID
parameters, unless, of course, your logic writes to .KP, .KI, and .KD. This
approach would apply if, for example, you want the end user to be able
to access the P, I, and D values from perhaps a touchscreen instead of
from within Logix 5000. As is the RSLogix standard, the Proportioning
percent is established using its reciprocal, Gain (Kp), the Integral or Reset
term is established as time constant in minutes per repeat, and the
Derivative or Rate term is established as time constant in minutes. As
mentioned previously in Step 3, however, the Integral and Derivative terms
are established differently if you elect to use independent gains.

19. Close the PID Setup screen.


Page 6 of 9

Quick Start Guide to Using the PID Block in Logix 5000


© 2009 SimpleSolvers, LLC Copyrighted material! Do not copy or otherwise distribute
without express written permission of SimpleSolvers, LLC

20. In the event you wish to control a device that is either on or off (as
opposed to modulated or throttled from low to high), you will need some
additional ladder logic to convert your PID block’s analog output value to
a time-proportioning discrete signal. We have developed an Add-On
routine that gives the user control over cycle time and minimum on and
off times. See TPR.L5X in our Free Downloads section.

21. For help with tuning your loop, we suggest reading our Simplified
Guide to PID Temperature Control or our Simplified Guide to PID Process
Control. Additionally, read our Quick Start Guide to Tuning the PID Block in
Logix 5000, a free download.
Page 7 of 9

Quick Start Guide to Using the PID Block in Logix 5000


© 2009 SimpleSolvers, LLC Copyrighted material! Do not copy or otherwise distribute
without express written permission of SimpleSolvers, LLC

PID DATA MAP


Note that all of the discrete (boolean) commands and signals are
contained in the first word (Word .CTL) of the PID block. This word is Data
Type DINT. The remaining words all contain analog data, and are all Data
Type REAL. The final word (.DATA) is itself a 17 word REAL array.

.CTL WORD (BOOLEAN PID SIGNALS)


Bit Mnemonic Description Responses
07 .PVHA PV Alarmed High NO, YES (read only)
08 .PVLA PV Alarmed Low NO, YES (read only)
09 .DVPA Dev Alarmed High NO, YES (read only)
10 .DVNA Dev Alarmed Low NO, YES (read only)
11 .EWD Error Within Deadband NO, YES (read only)
12 .OLH CV Above Max Limit NO, YES (read only)
13 .OLL CV Below Min Limit NO, YES (read only)
14 .SPOR SP Out of Range NO, YES (read only)
15 .INI PID Initialized NO, YES (read only)
20 .NOZC No Zero Crossing DB Zero Cross, Not Zero Cross
21 .NOBC No Bias Back Calc Enabled, Disabled
22 .NDF No Derivative Smooth Enabled, Disabled
23 .PE PID Equation Independent, Dependent
24 .MO Station Mode Automatic, Manual
25 .CA Control Action Reverse, Forward Acting
26 .SWM Software Station Mode Independent, Dependent
27 .DOE Derivative Of PV, Error
28 .PVT Process Variable Track NO, YES
29 .CL Cascade Loop NO, YES
30 .CT Cascade Type Slave, Master
31 .EN Enabled Bit NO, YES
Page 8 of 9

Quick Start Guide to Using the PID Block in Logix 5000


© 2009 SimpleSolvers, LLC Copyrighted material! Do not copy or otherwise distribute
without express written permission of SimpleSolvers, LLC

PID DATA MAP (continued)


THE WORDS OF THE PID BLOCK
Word Description
.CTL See the preceding table
.SP Setpoint
.KP Gain (inverse of Proportioning)
.KI Reset (Integral)
.KD Rate (Derivative)
.BIAS Feed Forward Bias
.MAXS Engineering Units, Scaled, Max
.MINS Engineering Units, Scaled, Min
.DB Deadband
.SO Set Output Percent
.MAXO Output Max Limit(% of CV)
.MINO Output Min Limit(% of CV)
.UPD Loop Update Time (seconds)
.PV Scaled Process Variable
.ERR Scaled Error
.OUT Output CV as percent
.PVH PV High Alarm Limit
.PVL PV Low Alarm Limit
.DVP Pos Deviation Alarm Limit
.DVN Neg Deviation Alarm Limit
.PVDB PV Alarm Deadband
.DVDB Deviation Alarm Deadband
.MAXI PV Unscaled Input Max
.MINI PV Unscaled Input Min
.TIE Tieback Value
.MAXCV Max CV Value (at 100%)
.MINCV Min CV Value (at 0%)
.MINTIE Min Tieback Value (at 0%)
.MAXTIE Max Tieback Value (at 100%)
Page 9 of 9

Quick Start Guide to Using the PID Block in Logix 5000


© 2009 SimpleSolvers, LLC Copyrighted material! Do not copy or otherwise distribute
without express written permission of SimpleSolvers, LLC

PID DATA MAP (continued)


.DATA A 17 Word REAL array containing the following data:

.DATA[0] Integral accumulation


.DATA[1] Derivative smoothing temporary value
.DATA[2] Previous .PV value
.DATA[3] Previous .ERR value
.DATA[4] Previous valid .SP value
.DATA[5] Percent scaling constant
.DATA[6] .PV scaling constant
.DATA[7] Derivative scaling constant
.DATA[8] Previous .KP value
.DATA[9] Previous .KI value
.DATA[10] Previous .KD value
.DATA[11] Dependent gain .KP
.DATA[12] Dependent gain .KI
.DATA[13] Dependent gain .KD
.DATA[14] Previous .CV value
.DATA[15] .CV descaling constant
.DATA[16] Tieback descaling constant

You might also like