PID & PID Pre-Processor Basics in CCT
Learn the basics parameters for Auto-Tuning and Manual Tuning PIDs in Johnsons Controls’ Controller Configuration Tool (CCT).

I’ve created this page because I’ve seen, over the years, that tuning PIDs has been a frustration to many Controls Techs, including myself.
I am glad to share a quick method to get you started configuring and tuning your PIDs.
STEP 1 – CREATE
Create a PID and PID Pre-Processor

Anytime I create an application from scratch I always create a PID along with a PID Pre-Processor. The reason is that it gives me more flexibility; it lets me chose between Auto-tuning or Manual-tuning. Without the Pre-Processor, my PID would only have to be manually tuned.
So, the first step to do is to connect your PIDs as shown above. And PIDs must always reside in a Hybrid Activity so you can turn them ON and OFF. Download and application (10.2) example at the end of this page
STEP 2 – AUTO or MANUAL
Decide between Auto-Tuning or Manual Tuning
Auto-tuning is a good way to start but not always works out as expected. If you have setup your PID and PID Pre-Processor as Auto-tuning and it’s not working out. Try resetting the “Reset Tuning” Input in the PID. Just set its Default Value to True and then back to False. See image below.

STEP 3A – PID AUTO-TUNING
If you decided to go with the Auto-tuning setup, then follow these instructions, otherwise, go to the Manual-tuning instructions below.
PID Pre-Processor Configuration
Please note that the following parameters are the “Inputs” of the Pre-Processor, not the “Outputs”.
Process ID:
Pick the type of system you will be controlling. If you are controlling to Room Temperature pick “ZN-T”, or if you are controlling to airflow then pick “Airflow”.
Units:
Pick units corresponding to your Process ID. For your Room Temperature, you would pick deg F or deg C. For your Airflow you would pick cfm. If you don’t pick correct units your PID Pre-Processor might go unreliable.
Standard Tuning:
Choose True for Auto-tuning.
PID Configuration
Please note that the following parameters are the “Inputs” of the PID, not the “Outputs”.
Manual Tuning:
Choose False for auto-tuning.
Direct Acting:
This refers to the direction of the PID.
Examples:
For cooling control, you want to open a cooling valve as temperature rises (Direct Acting = True)
For heating control, you want to open a heating valve as temperature drops (Direct Acting = False).
For supply static pressure control, you want to speed up your fan as static drops (Direct Acting = False).
Adaptive Tuning:
Choose True for auto-tuning.
Dead Band:
When your process variable (i.e RM-T) is within X degrees of your setpoint, the PID will no try to control.
STEP 3B – PID MANUAL TUNING
PID Pre-Processor Configuration
Please note that the following parameters are the “Inputs” of the Pre-Processor, not the “Outputs”.
Process ID:
This won’t matter as we are manually tuning.
Units:
This won’t matter as we are manually tuning.
Standard Tuning:
Choose False for Manual-tuning.
With manual tuning, you need to properly setup the rest of the PID Pre-Processor parameters:
Process Range:
This is the range you expect your process variable (i.e. RM-T, SA-T, cfm) to operate.
Examples:
If you are controlling to Discharge Air Temp, and you expect your temperature to go from 55 deg F to 90 deg F, then your range is 90 – 55 = 35 deg F.
If you are controlling to pump differential pressure, and you expect your pressure to go from 0 psi to 25 psi, then your range is 25 – 0 = 25 psi.
If controlling to airflow, and you expect your flow to go from 0 cfm to 20,000 cfm, then your range is 20,000 – 0 = 20,000 cfm.
Time Constant, Process Dead Time, Proportional Band, Integral Time, Interval & Saturation Time:
To not overcomplicate myself, for these parameters I usually use the spreadsheet below as a starting point. You can also download it at the end of this page.

Note that the table has different names for these parameters:
Tau: Time Constant
Dead Time: Process Dead Time
PB: Proportional Band
IT: Integral Time
PID Period: Interval
Sat Time: Saturation Time
Example:
If you are controlling to DA-T, then you would configure your PID Pre-Processor with the following parameters (see spreadsheet above):
Tau: Time Constant = 200
Dead Time: Process Dead Time = 20
PB: Proportional Band = 39.2
IT: Integral Time = 202.5
PID Period: Interval = 33
Sat Time: Saturation Time = 389.3
PID Configuration
Please note that the following parameters are the “Inputs” of the PID, not the “Outputs”.
Manual Tuning:
Choose True for Manual-tuning.
Direct Acting:
This refers to the direction of the PID.
Examples:
For cooling control, you want to open a cooling valve as temperature rises (Direct Acting = True).
For heating control, you want to open a heating valve as temperature drops (Direct Acting = False).
For supply static pressure control, you want to speed up your fan as static drops (Direct Acting = False).
Adaptive Tuning:
Choose False for manual-tuning.
Derivative Time:
Set this to zero, I rarely use it.
Dead Band:
When your process variable (i.e RM-T) is within X degrees of your setpoint, the PID will no try to control.
Example:
If your Dead Band is 2 and your setpoint is 70 deg F, then your PID output will not change if your room temperature (RM-T) is between 69 deg F and 71 deg F. Once you are above 71 deg F or below 69 deg F, then your PID will start controlling.
The PID stops controlling when the temperature is within the deadband area:

Manual Tuning Last Steps
Finally, if your PID doesn’t work on this initial manual setup, the first parameter I start playing with is the Proportional Band input in the PID Pre-Processor:
A bigger number will decrease the magnitude of the PID output, meaning that the value will not jump that much in the next PID execution.
A lower Proportional Band will increase the magnitude of the output.
If the PID tuning is still not ideal, I will try to play with the Interval input a little bit in the PID Pre-Processor as need. This refers to how quickly (in seconds) the PID will execute.
Lastly, if it’s still doesn’t work, I may play with the Integral Time input in the PID Pre-Processor. This method works for me 90% of the time.
