Allen Bradley PLC PID block

AP Soni

Member
Join Date
Jun 2024
Location
Alberta, Canada
Posts
8
Hello Everyone,

I am working on one of the project where we are using PID loop, This loop is work for temperature control for heat exchanger, SP is temperature, with PV from same pipeline after discharge from Heat exchanger, and OP is controlling ammonia system pump speed to supply ammonia as per PV changes,
Now, this cold liquid is going inside a tank and I wanted to use temperature of same tank with temperature at heat exchanger discharge by average and use it as Process value for my PID block.
I am not sure about how it would react or is it even possible to add two temperature average as PV for PID block, please guide further.
Thank you.
 
What are you trying to control? The temperature of the ammonia tank? With the heat exchanger and volume of ammonia from the pump?
 
Last edited:
So I am trying to control water temperature, we are using ammonia to cool water down, so as per feedback of the water temperature at heat exchanger discharge we are controlling output of ammonia supply pump.
 
Is the heat exchanger adding heat or cooling? Is the ammonia pump just the volume of coolant through the heat exchanger? Trying to understand the mechanics of your system. It's not clear. Heat exchangers come in many forms and can add heat or remove heat.

I think I get it...OP you meant output of the PID loop. That's the CV. OP stands for operator, so I thought you meant an operator was adjusting the pump speed.

Why is the temperature of the liquid exiting the heat exchanger different than what's in the tank? Is there some external heating or cooling influence to the tank? What's the volume of the tank compared to the GPM of flow through the heat exchanger?
 
Last edited:
Yeah so Heat exchanger is adding cooling to water and yes you are right about OP is CV for PID loop,

Now, our tank is far away from the heat exchanger and it might affect temperature about +- 0.5 C, out flow rate to the tank is around 250 - 270 HL/HR and our tanks are around 1000 - 1200 HL,
 
It sounds like this is a water-ammonia (or other ammonia-based) refrigeration system, and the goal is a water supply that is cooled to a target temperature, and that target temperature is the setpoint.

The water flow is fixed at any operation point, so by increasing the ammonia pump speed there is more ammonia flow, which increase in ammonia flow reduces the temperature of the water coming out of the heat exchanger.

Now, this cold liquid is going inside a tank and I wanted to use temperature of same tank with temperature at heat exchanger discharge by average and use it as Process value for my PID block.
I am not sure about how it would react or is it even possible to add two temperature average as PV for PID block, please guide further.
it sounds like you are thinking about using the average of
  • the effluent water from the heat exchanger, and
  • the water in the tank into which the heat exchanger water effluent flows,
as the PV to the PID. (presumably the tank is the cold/cooled water supply for some other process).

Assuming
  • the tank mixes the water perfectly/quickly, and
  • the temperature of the water in the tank is the actual goal,
what I think that average will do is slow down temperature control of the water in the tank.

For example, say the water temperature in the tank is too high i.e. above setpoint. The way to cool the (perfectly mixed) tank temperature is to have heat exchanger water effluent coming into the tank at a lower temperature than the current tank temperature, and to drive the tank temperature from above setpoint down to setpoint, that heat exchange water effluent water temperature must be below setpoint. So the average of heat exchanger water effluent and tank temperatures will be closer to, and possibly even below, the setpoint temperature, which will cause the PID to attenuate the cooling until the setpoint is equal to the PV i.e. midway between the effluent and tank temperatures. So as the tank temperature approaches setpoint, the PID will back off cooling the incoming water, even though the tank temperature is still too high and more cooling is available to get the tank to the setpoint temperature sooner.

You could make that scheme work faster by using a weighted average that favors the tank temperature, e.g.
  • PV = Tweighted average = (1 * Teffluent + 2 * Ttank) / 3
so the PID would effectively control the effluent to be twice as far below the setpoint as the tank is above the setpoint, but following that approach to its logical conclusion gets you to
  • PV = Tweighted average = (0* Teffluent + N * Ttank) / N ≡ Ttank
 
Now, our tank is far away from the heat exchanger and it might affect temperature about +- 0.5 C, out flow rate to the tank is around 250 - 270 HL/HR and our tanks are around 1000 - 1200 HL,
Ah, so using the tank temperature as the PV would introduce a significant deadtime to the system response to cooling changes because of the time it takes water to get from the heat exchanger to the tank (do you know the volume of the pipe between heat exchanger and tank?).

So the real issue here, now that the teeth have been pulled, is that there is a difference in temperature
  • between the water as it leaves the heat exchanger,
  • and the water as it enters the tank.
And the tank temperature is driven by the water as it enters the tank, so if you control the water effluent temperature at the heat exchanger, there will be a slight offset in the tank temperature from that setpoint.
 
Is this a continuous process?

How are two out of three of the following controlled:
  • the heat exchange water effluent flow rate that goes into the tank,
  • level of water in the tank,
  • the tank water effluent flow rate?
 
So,
1) Flow rate is fixed from city water, I am also doubting the flow meter installed in the line which might causing difference between flow reading instead of giving us the steady reading for the flow
2) Tank level is controlled by the level switches
 
So tank level is going to affect the influence of the waters temperature in raising/lowering the temperature. I would do a weighted average based on tank level. The lower the level, the more influence the heat exchanger is going to have. As the tank fills, it effectively dilutes the influence of the incoming temperature. Thats assuming you have a continuous measurement of level. If you just have discrete level switches, then all bets are off.
 
OP you meant output of the PID loop. That's the CV. OP stands for operator, so I thought you meant an operator was adjusting the pump speed.
OP is a very common abbreviation for output on PID loops. I've actually seen OP used on a lot more manufacturers systems than I've seen CV.
 
OP is a very common abbreviation for output on PID loops. I've actually seen OP used on a lot more manufacturers systems than I've seen CV.

Odd flex, but ok. In my world, OP means operator and CV means control variable. As it does in Rockwell, Automation Direct, etc. Led to my confusion, maybe not others.
 
Odd flex, but ok. In my world, OP means operator and CV means control variable. As it does in Rockwell, Automation Direct, etc. Led to my confusion, maybe not others.
I see why it can be confusing. That's why I though it would be interesting for you and others to know that OP (and also OUT) is very commonly used for output (aka control value) in the context of PID.
 
Last edited:
So,
1) Flow rate is fixed from city water, I am also doubting the flow meter installed in the line which might causing difference between flow reading instead of giving us the steady reading for the flow
2) Tank level is controlled by the level switches
Huh, so the flow from the heat exchanger is turned on when the tank level is low, and then off when the tank level is high?

But the goal is to control the water temperature in, and exiting, the tank to the setpoint?

And the problem is that the current system controls the heat exchanger water effluent temperature to that temperature, but by the time that water gets to the tank it has lost or gained in temperature?
 

Similar Topics

Hi All, I am tasked with controlling an SMC JX91 servo actuator over Ethernet/IP. Before re-inventing the wheel and programming this unit...
Replies
2
Views
163
I am trying to to the phone messaging from 1756 control logix PLC to one of the phone number for alarm alerts, What are the things I need to set...
Replies
6
Views
512
We have machine that is running on Siemens S7 PLC and we have mostly Rockwell Automation/Allen Bradley hardware in the facility. I am working on...
Replies
7
Views
410
We have a task of slowly upgrading panels on a customers site. The bulk of control is PLC5. We want to replace the PLC's with Compact logix. We...
Replies
5
Views
418
Hello all, I have a Citect SCADA 2018 project that was previously interfacing with a Panasonic PLC (programmed in FPwin Pro 6). We have since...
Replies
7
Views
450
Back
Top Bottom