pidbot logo

pidbot user manual

Getting Started

 
Installing pidbot

Download the pidbot version that is compatible with the Ignition version you are using.  Install the pidbot .modl on your Ignition gateway webpage, following the Ignition module installation procedure.

 
Components

The pidbot module includes three vision components: Tuning Dashboard, Process Simulator, and PID Simulator.  After the module is installed, the components will appear in the Ignition Designer Component Pallette.

The Tuning Dashboard is the main component in the pidbot module, and is the primary focus of this manual.

pidbot compnent palete Ignition

PID Config

Industrial controllers use different variants of the PID algorithm.  Tuning values are different depending on which PID controller is being used. In order to find the best tuning values for a particular system, the Tuning Dashboard component must be aware of the PID controller configuration. The configuration information can be setup in the component's "PID Config" section of the Vision Property Editor, in the Ignition Designer. If the "Config Editable" property is set to true, changes can also be made using the "PID Config" panel built into the Tuning Dashboard.

Installing pidbot
pidbot Tuning Dashboard - PID Config Panel
pidbot Tuning Dashboard Properties - PID Config
 
PID Form

The PID Form property identifies the structure of the PID equation that is used by the PID controller. The user can select between “Independent” or “Dependent.”

Independent

The Independent form of the PID equation is sometimes refererred to as “Parallel” form. When this form is selected, three separate gains are used: Proportional Gain (Kp), Integral Gain (Ki) and Derivative Gain (Kd). This component will display suggested tuning values in terms of Kp, Ki, and Kd when Independent is selected.

PID Equation - Independent Form

 

Dependent

The Dependent form of the PID equation uses Controller Gain (Kc), integral time (Ti), and a derivative time (Td) as tuning constants. This component will display tuning values in terms of Kc, Ti, and Td when Dependent is selected. Note: integral time is sometimes referred to as “reset time” or “reset rate.”

PID Equation - Dependent Form
 
PID Action

PID Action specifies how the PID controller calculates error. The user can select between

“E=SP-PV” or “E=PV-SP”, where E refers to error, SP refers to Setpoint, and PV refers to Process Variable.  Changing PID Action has the same effect as changing the sign (+/-) of the PID tuning values.  Typically, PID controllers calculate error as SP-PV by default, and may offer the option to change to PV-SP if necessary, so that tuning values can always be positive.

 
Time Unit

Specifies the time units used by the PID controller for the Integral and Derivative tuning terms. The user can select between "Minutes" and "Seconds".

Time Unit for an Independent Form PID Controller

Select "Minutes" if the PID controller's time unit for Integral Gain (Ki) is in 1/minutes, and Derivative Gain (Kd) is in minutes.  Select "Seconds" if the time unit for Ki is in 1/seconds, and Kd is in seconds.

Time Unit for a Dependent Form PID Controller

Select "Minutes" if the PID controller Integral Time (Ti), and Derivative Time (Td) are in minutes. Select "Seconds" if Ti, and Td are in seconds.

 
PID Controller Scaling

Many industrial PID controllers scale the inputs (PV & SP), before applying the PID algorithm.  After the PID algorithm is applied, the output (CV) may also be scaled.  They are scaled to a percent of PV range and CV range, respectively, and the tuning values are set in terms of percent.

 

This hidden PID scaling is the reason why someone might say a Proportional Gain of 1000, for instance, is "very high" without knowing anything about the process being controlled. Due to scaling, they expect it to be somewhere closer to 1.

pidbot PID scaling algorithm SP + - PV pvScaleHigh - pvScaleLow 100% PID cvScaleHigh - cvScaleLow 100% -1 pidAction CV% E% CV

The Tuning Dashboard component includes scaling terms to work with scaled PID controllers. PID scaling scenarios are listed below, with configuration instructions.

Case 1: Controller does not scale to percent (Tuning values are in Engineering Units)

For PID controllers that do not scale to a percentage, the pidbot scaling terms can be left at their default values (below).  Any PV range which is equal to CV range will effectively prevent tuning value scaling.

  • PV Scale High = 100

  • PV Scale Low = 0

  • CV Scale High = 100

  • CV Scale Low = 0

Case 2: Controller scales to percent, and the PV and CV values connected to pidbot are in Engineering Units

For PID controllers that scale to a percent, the tuning values are in terms of percent (proportional gain units are %CV/%PV). The Tuning Dashboard needs to use the scale ranges to generate appropriate tuning values.

  • PV Scale High = The value that corresponds to 100% of PV scale range.

  • PV Scale Low = The value that corresponds to 0% of PV scale range.

  • CV Scale High = The value that corresponds to 100% of CV scale range.

  • CV Scale Low = The value that corresponds to 0% of CV scale range.

Case 3 (Mixed): Controller scales to percent, but the PV and/or CV values connected to pidbot are already in percent

Some PID controllers make both scaled and unscaled CV and PV tags available.  The tuning values are in percent, similar to Case 2.  However, if the tuning dashboard is connected to PV% and CV%, tuning values will already be calculated on a percent basis.  In this case, the scale range values in the PID controller should not be applied.  To summarize:

  • If PV is in %, use the PV scale values from Case 1, else, use the values from Case 2.

  • If CV is in %, use the CV scale values from Case 1, else, use the values from Case 2.

We know that PID scaling can be confusing.  To request an example for a particular PID controller brand, contact JLB Controls for support!

 
 

PID Config Examples

The table below can be used to help map properties of a particular PID controller brand to pidbot properties.  Some controllers are listed multiple times, because they expose multiple PV/CV tags which are scaled differently, so scaling values used by pidbot change accordingly.  JLB Controls wants to ensure your pidbot application is working great, please contact us with any questions.

Name

pidbot

Studio5000 PIDE

(.CV)

Studio5000 PIDE

(.CVEU)

PlantPAx P_PIDE

Studio5000 PID

(Process Variable & Control Variable)

Studio5000 PID

(.PV & Control Variable)

Studio5000 PID

(.PV & .OUT/.SO)

Productivity Suite PID

(.Output)

Productivity Suite PID

(.ProcOutPcnt)

PV
CV
PV Scale High
PV Scale Low
CV Scale High
CV Scale Low
P
I
D
PID Form
PID Action
Time Unit
.pv
.cv
.pvScaleHigh
.pvScaleLow
.cvScaleHigh
.cvScaleLow
.currentP
.currentI
.currentD

.pidForm

Independent: 0

Dependent: 1

.pidAction

E=SP-PV: 0

E=PV-SP: 1

.timeUnit

Seconds: 3

Minutes: 4

.PV
.CV
.PVEUMax
.PVEUMin
100
0
.PGain
.IGain
.DGain

.DependIndepend

Independent: False

Dependent: True

.ControlAction

E=SP-PV: False

E=PV-SP: True

N/A

Always Minutes

.PV
.CVEU
.PVEUMax
.PVEUMin
.CVEUMax
.CVEUMin
.PGain
.IGain
.DGain

.DependIndepend

Independent: False

Dependent: True

.ControlAction

E=SP-PV: False

E=PV-SP: True

N/A

Always Minutes

.Val_PV
.Val_CV
.Cfg_PVEUMax
.Cfg_PVEUMin
.Cfg_CVEUMax
.Cfg_CVEUMin
.Cfg_PGain
.Cfg_IGain
.Cfg_DGain

.Cfg_Depend

Independent: False

Dependent: True

.Cfg_CtrlAction

E=SP-PV: False

E=PV-SP: True

N/A

Always Minutes

Process Variable
Control Variable
.MAXI
.MINI
.MAXCV
.MINCV
.KP
.KI
.KD

.PE

Independent: 0

Dependent: 1

.CA

E=SP-PV: 0

E=PV-SP: 1

N/A

Seconds if .PE=0

Minutes if .PE=1

.PV
Control Variable
.MAXS
.MINS
.MAXCV
.MINCV
.KP
.KI
.KD

.PE

Independent: 0

Dependent: 1

.CA

E=SP-PV: 0

E=PV-SP: 1

N/A

Seconds if .PE=0

Minutes if .PE=1

.PV
.OUT or .SO
.MAXS
.MINS
100
0
.KP
.KI
.KD

.PE

Independent: 0

Dependent: 1

.CA

E=SP-PV: 0

E=PV-SP: 1

N/A

Seconds if .PE=0

Minutes if .PE=1

.ProcessVar
.Output
.InputRangeMax
.InputRangeMin
.OutRangeMax
.OutRangeMin
.Gain
.Reset (Note 1)
.Rate

N/A

Always Dependent

Process Action

E=SP-PV: "Forward"

E=PV-SP: "Reverse"

Unlabeled

Min/Sec for I (Note 2)

Always Sec for D

.ProcessVar
.ProcOutPcnt
.InputRangeMax
.InputRangeMin
100
0
.Gain
.Reset (Note 1)
.Rate

N/A

Always Dependent

Process Action

E=SP-PV: "Forward"

E=PV-SP: "Reverse"

Unlabeled

Min/Sec for I (Note 2)

Always Sec for D

Note 1:  For this PID controller, setting the integral term to zero maximizes integral effects, whereas pidbot disables integral when it is set to zero.  Ignition scripting, or derived tag can be used to translate.  If accepting values in the Tuning Dashboard, and I=0, set the PID Controller integral tuning value to a very large number.

Note 2:  This PID controller allows different time units to be used for the integral and derivative terms.  This is not supported by pidbot.  Configure the controller with matching units, or convert before binding to the pidbot component.

 
PID Config Example Video - PlantPAx P_PIDE

PID Config video in the Ignition Designer, using the PID controller from Rockwell Automation's PlantPAx® library.