pidbot user manual
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.
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
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.
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 Action
PID Action specifies how the PID controller calculates error. The user can select between
“E=SPPV” or “E=PVSP”, 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 SPPV by default, and may offer the option to change to PVSP 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.
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=SPPV: 0 E=PVSP: 1  .timeUnit Seconds: 3 Minutes: 4 
.PV  .CV  .PVEUMax  .PVEUMin  100  0  .PGain  .IGain  .DGain  .DependIndepend Independent: False Dependent: True  .ControlAction E=SPPV: False E=PVSP: True  N/A Always Minutes 
.PV  .CVEU  .PVEUMax  .PVEUMin  .CVEUMax  .CVEUMin  .PGain  .IGain  .DGain  .DependIndepend Independent: False Dependent: True  .ControlAction E=SPPV: False E=PVSP: 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=SPPV: False E=PVSP: True  N/A Always Minutes 
Process Variable  Control Variable  .MAXI  .MINI  .MAXCV  .MINCV  .KP  .KI  .KD  .PE Independent: 0 Dependent: 1  .CA E=SPPV: 0 E=PVSP: 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=SPPV: 0 E=PVSP: 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=SPPV: 0 E=PVSP: 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=SPPV: "Forward" E=PVSP: "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=SPPV: "Forward" E=PVSP: "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.
Tuning Dashboard Setup for PlantPAx P_PIDE
Process Data
The pidbot Tuning Dashboard analyzes PV and CV time series data to create a mathematical model of your process. The process model is used during PID tuning and simulation. Data can be collected using the builtin recording function, imported from a csv file, or bound to another data source in Ignition.
Builtin Recording Function
The Tuning Dashboard can be used to capture time series data from PV and CV tags. To use this functionality, bind the PV tag to the PV property of the component, and likewise for CV. When the "Recording" property is set to true, the component will start recording the values once every time period, which is configurable using the "Sample Time" property. The sampled PV and CV values are appended to the "PV Data" and "CV Data" dataset properties, along with timestamps. The "Recording" property can also be toggled using the "Start Recording" button on the Tuning Dashboard interface. The datasets can be cleared directly, or using the "Reset" button on the interface.
CSV Import/Export
"Import CSV" and "Export CSV" buttons appear on the Tuning Dashboard interface when the "Show CSV Buttons" property is set to true. The export function takes the PV and CV datasets, and combines them into a single csv file, for convenient storage. The exported timestamps in the csv retain millisecond precision, so it is preferable to use this method over the Ignition builtin system.dataset.toCSV() function for fast acting processes. To import data, use the Import CSV button, and select the previously exported csv file.
Other Data Sources
To use another data source, bind or write to the "PV Data" and "CV Data" properties of the Tuning Dashboard component. Ensure the first column (column 0) type is Date or a Number representing milliseconds since epoch, which will be converted to a Date by the component. The second column (column 1) must be a Number type, and will be converted to a double by the component. The timestamp column must be in chronological order, with duplicate timestamps allowed but not recommended. Any row that contains a null value (no value provided) is automatically discarded.