Looking for critique, suggestions, insight, etc. for HVAC unit stage control

5618

Lifetime Supporting Member + Moderator
Join Date
Oct 2017
Location
York, PA
Posts
388
Hi. I have taken over a Building Management System that hasn’t performed well since installed. It’s a ControlLogix main with wireless messaging to a Micro820 at each roof unit. Many units have a PF525 running the fan. The 820 has temperature sensors, enables or controls the fan, and enables any number of heating and cooling stages if applicable to the unit. I have the communication and preliminary control working well. Now I’m looking at how to best control multiple cooling or heating stages. As built had a five minute delay between stages, nothing smarter than that.

I haven’t really done anything with HVAC control outside of this project. I’m wondering how a ‘real BMS’ would handle stage control. I haven’t seen typical or example control algorithms in the videos and web pages I’ve found. I think that using fewer stages longer is generally more efficient than shorter cycles of more stages, so that is a goal unless someone has better information.

To start, I made a trend of one non-VFD AC unit. One cooling stage has been sufficient until the afternoon heat today. One stage was holding almost at the cutoff point, but didn’t quite have enough and I enabled a second stage. That quickly reached temperature and the compressors stopped until the next cooling cycle. In this example, setpoint is 71 with 1.5 hysteresis. The fan runs continuously.

The top chart shows various temperatures. From my research, supply and return probes are backwards. I’ll fix that. In the bottom chart, the black line shows active cooling stages. The rest of the bottom is three different ways I calculated the room temperature slope of 15 second samples. Above zero is getting warmer; below zero is getting colder. Slope10 is the average of the previous five minutes relative to the average of the five minutes before that. Slope20 is similar in 10 minute blocks. Slope15 is five minutes, skip five, and the five before that. Maybe I should calculate the slope of the slope. Any suggestions here?

The logic is my preliminary idea for stage control. Basically, I’ll enable another stage after a delay if temperature is moving from the setpoint and also outside of the hysteresis. Should I have a timeout and enable another stage at some point if it’s holding but not reaching the stop limit?

Some units with heat and/or cooling have a VFD. Anything particular come to mind regarding that? I’m sure I’ll want some minimum speed that maybe should increase with number of stages enabled.

So far, I only see cooling. Heat is a couple months away. Thank you everyone.

Trend4hr.jpg Trend25hr.jpg Logic.jpg
 
Two thoughts:



1) You should consult your licensed HVAC professional regarding the stage control, to determine which method is best for efficiency and least wear on the specific equipment you're dealing with.


2) Your slopes and slope slopes :) sound suspiciously like you're rolling your own PID control. Maybe built-in PID would make this easier?
 
Last edited:
There is a quantity called hysteresis, but I don't see where that is used as hysteresis: the logic shown only has a way to increase the number of stages running; what causes the number of stages to decrease?
 
from Trend4hr.jpg (also Trent25hr.jpg, but easier to read in Trend4hr):

  • At ~15:34,
    • the (PV?) temperature is above SP+Hysteresis (=71+1.5=72.5?), and
    • Slope10 is positive, and
    • the 20-minute timer expired (presumably)
    • So the number of stages running increases by 1, from 1 to 2.
  • At ~15:38,
    • The temperature has dropped a bit, probably below SP+Hysteresis, but certainly not below 71,
    • Yet the number of stages running drops from 2 to 0
      • Why? I.e. what caused this?
  • By ~15:45,
    • The temperature has drifted back up above SP+H, and
    • Slope10 is positive
    • So why does it take over 20 minutes, at least until 16:15, for one stage to come back on?
 
Last edited:
Sorry, that was the wrong one and I am no longer on my laptop.
Do a search for CodeSys HVAC library and the same for twincat3 and Ecostruxurr Machine Expert. They all have HVAC libraries and usually good description of the functions and a bit about the algorithm. No code though.
 
Thanks for the discussion so far. I think I'm most looking for insight to find the best means to determine when to enable (or subtract) additional stages.

Ryan, I agree I need to get some time with a service tech or maybe an engineer for some discussion on our system, but I don't know when that will happen. There's no temperature PID control. The Micro820 is somewhat of a glorified thermostat for each unit, reading temperature and turning cool or heat on and off at setpoints +/- hysteresis. The units have power-up and comm loss provisions tailored to each unit to run as needed if the CLX is not communicating.

Dr. BB, I really messed up the pen colors in the top chart. Red is room temperature. The trends shown do not have the stage code executing. The room temperature was almost down to 69.5 but not dropping. At 15:34 room temperature was slightly rising and I manually triggered the second stage. At 15:38, 69.5 was met and cooling turned off. Looking at Slope10, the room temperature was rising at about a half degree every ten minutes until reaching 72.5 around 16:15 and the compressor started again. I drafted the code after that.

The on-off temperature control is happening in the 820. CoolReqOn is status from the 820, latched on at SP + hysteresis, unlatched at SP - hysteresis. In the CLX, my plan at this time is only to control the allowed stages primarily for energy efficiency, at least on the units of this focus. When heat or cool stops, I reset the count to 1, provided the unit has the function.

I say provided the unit has the function, because the same code is running in every unit. The only difference is the Micro820 IP. An AOI for each unit has a variety of input parameters to setup the unit to whatever functions and features are present. The CLX to 820 write data including this unit configuration is retained in the 820 through a power loss. If I get a stage control scheme that would transfer to the 820 well, I could add that to the unit code.

Kalabdel, thanks. It looks like I can learn quite a bit from these. I also see stuff that will help as I add more systems to this like chiller, boiler, air compressors, and more.


Additional ramblings that might trigger some discussion:

Warehouse has some units that will never get the building to a setpoint on the hottest or coldest days. The scheme I'm working on here could work for mild days, but for the hottest or coldest days, I might have to do something like enable stage 2 cooling at 85, stage 3 at 90, and stage 4 at 95, or whatever numbers work. Big butt fans actually help a lot to keep it decent there.

There are a bunch of air handlers and exhaust fans for manufacturing that could use some good control for flow and pressure balance. Temperature control seasonally applies to a couple of these, but I think the bulk of the control will be based on what equipment is running or being sanitized at the time.
 
Last edited:
Oh dear, I completely misread the trends. But anyway, ...

1) Why are the *StagesEnabled reset to 1 and not to 0 when the corresponding *ReqOn bool is 0?

2) What is the code that triggers the reduction in number of stages enabled?

2.1) It looks like the code to reduce the number of stages enabled drops all stages at once; wouldn't it be better to drop one stage at a time?
 
Last edited:
OK this is coming from a PLC geek that used to be an HVAC guy in Ky. Here is my sequence of questions to start asking to determine what questions to ask the custome to lead to the next set of questions to the customer. After that the answers will lead to what really needs to be fixed

1 What is priority humidity or temperature?
2 Do you want both heat and cool at the same time?
3 Do you want to run as a multi stage system? Stage 1 ,2,3 etc.


Once you know these answer we can start narrowing down the solution.

I dont like to run an AC until setpoint and shutdown. If I get my preference I will cycle the compressors to a lower tonnage and keep the air running across the coil. This will help with humidity. If the temp drops to much I will bring on a heater to reheat the air and maintain a lower humidity.
 
Hi. I have taken over a Building Management System that hasn’t performed well since installed. It’s a ControlLogix main with wireless messaging to a Micro820 at each roof unit. Many units have a PF525 running the fan. The 820 has temperature sensors, enables or controls the fan, and enables any number of heating and cooling stages if applicable to the unit. I have the communication and preliminary control working well. Now I’m looking at how to best control multiple cooling or heating stages. As built had a five minute delay between stages, nothing smarter than that.

I haven’t really done anything with HVAC control outside of this project. I’m wondering how a ‘real BMS’ would handle stage control. I haven’t seen typical or example control algorithms in the videos and web pages I’ve found. I think that using fewer stages longer is generally more efficient than shorter cycles of more stages, so that is a goal unless someone has better information.

To start, I made a trend of one non-VFD AC unit. One cooling stage has been sufficient until the afternoon heat today. One stage was holding almost at the cutoff point, but didn’t quite have enough and I enabled a second stage. That quickly reached temperature and the compressors stopped until the next cooling cycle. In this example, setpoint is 71 with 1.5 hysteresis. The fan runs continuously.

The top chart shows various temperatures. From my research, supply and return probes are backwards. I’ll fix that. In the bottom chart, the black line shows active cooling stages. The rest of the bottom is three different ways I calculated the room temperature slope of 15 second samples. Above zero is getting warmer; below zero is getting colder. Slope10 is the average of the previous five minutes relative to the average of the five minutes before that. Slope20 is similar in 10 minute blocks. Slope15 is five minutes, skip five, and the five before that. Maybe I should calculate the slope of the slope. Any suggestions here?

The logic is my preliminary idea for stage control. Basically, I’ll enable another stage after a delay if temperature is moving from the setpoint and also outside of the hysteresis. Should I have a timeout and enable another stage at some point if it’s holding but not reaching the stop limit?

Some units with heat and/or cooling have a VFD. Anything particular come to mind regarding that? I’m sure I’ll want some minimum speed that maybe should increase with number of stages enabled.

So far, I only see cooling. Heat is a couple months away. Thank you everyone.

Hi
I did a 2 year project in '18 and '19 for an OEM Driving Dynamics Lab in Dearborn--I'm sure you can guess which one. My company was the controls integrator for this project. It consisted of 9 roof top and interior HVAC units, and the unit for the hybrid test cell was a 3 - unit combo ran off of one processor, with a small unit for climate in the control room, a large de-humidification unit and a temp control unit which would adjust temps from minus 40 to plus 140 in the actual test cell. I created over 15 PID loops for all of these.
My point is there was a building engineering system called BACnet. I had to interface all controls and the HMI's with this system. We used an RTA gateway which worked quite well. The BACnet guy was very good also.
So a couple of hints: I have a "BACnet for beginners" manual which is quite good, however like I said I had a guy that did the programming for that.
Using the gateway was a little challenging, mostly because the tags in the gateway had to match the PLC tags, like working with an HMI. It was much easier later in the project to make UDT's for the interface tags and simplify the process to prevent less typos. RTA has great customer service.
We didn't do too much with the burner controls except provide status and feedback. My program would call for a percent change which would stage the burners, however all flame sensors and safeties were internal to the burner units--I only got faults or feedback.
Some of the rooftop units had 6 supply fans, 5 return fans and several dampers which were all controlled by my program. I only had an SOO from the customer and had to write all of this from new project, rung zero.
If there is anything you think you could use from this logic (Logix 5000 v. 20.04) or the BACnet book, LMK and I'll be glad to help. Have a great rest of your summer and good luck!
 
BACnet is "a data communication protocol for building automation and control networks.
I think if you can post a process flow diagram of your air handler as well as design conditions, it will make it easier to help you.
 
Not a HVAC guy, but have a question.


This and previous HVAC posts have mentioned a 5 minute stage delay. Every industrial project with multiple compressors, pumps and blowers always had a 5 second stage delay to give the motor time to start before starting the next motor. Even projects with large motors that took longer than that only had a 10 second delay.


Thinking of the roof of a large commercial building having each air conditioner start on a cycle 5 minute delay could mean an hour waiting with the building heating up more. #1 starts immediately, #12 would be 55 minutes later.


Why do HVAC systems have such a long startup delay?

Even getting the compressor up to pressure wouldn't take anywhere near 5 minutes.
 
Last edited:
The compressor comes up to speed but the refrigerant hasnt started absorbing the conditioned space temperature yet. So there is no way to know how much BTU load is in the system. My answer is coming from multiple stages in 1 HVAC unit.

Now if your talking about multiple single units than yes just start one unit wait till the current draw levels out after XX.X time then starr the next.
 

Similar Topics

Hi , Where i can find Mitsubishi PLC Card end of line & replacement model details. i am looking for Q02CPU replacement model. Please advice. thanks
Replies
2
Views
126
I have Allen Bradley plcs, I have had Circuit breakers and other automation equipment in the past. There's no solid buyers local. How much do you...
Replies
2
Views
202
can anyone has a good program to learn plc programming online. i have the basic looking into improve my skills thanks
Replies
1
Views
144
I want to monitor a couple signals in a place where there is no PLC but there is ethernet. I know I can use an AENTR or Flex I/O and a module but...
Replies
21
Views
779
I downloaded v24 for studio 5000 but can’t find where the download manager put it! Any help? I’ve done it before but can’t remember. Thanks
Replies
9
Views
391
Back
Top Bottom