Start-Stop Fan by Temp

Ones_Zeros

Member
Join Date
Feb 2014
Location
at work
Posts
367
Hello
I have a dual speed fan that has a low and high speed.
The PLC is an AB SLC 505
I have most of the start and stop logic
completed, but I’m having problems figuring out how to
get the fan to go from High to back to low speed at a certain temperature.

Here is what I have so far
1. At a certain ambient temperature based on a Setpoint
the fan will come on at low speed (LEQ) This allows to blow hot
air during cold temps. I have the low speed output looking
at another temp transmitter, once this temp is reached it
will unlatch the low speed output, start a 60 second timer to allow to stop the fan completely and then start the High speed output fan.

2. If the temperature is above the Setpoint in step#1
then the High speed output comes on first. No need for the low speed at a higher
Ambient temp.

3. Since this is the same fan and it has two speeds. It takes about 60 seconds for
the low speed output to stop and about 30 seconds for the high speed output
to stop.

4. Here is where I’m have trouble from High back to low. If the high speed
output is running and then the ambient temp drops back down to the Setpoint where I need to start the low speed output again.
How would I do this to where it would stop the high speed & allow a 30 second delay before starting the low speed output?

5. Where I have the low speed coming on at a certain ambient temp in step #1
I wasn’t sure how to accomplish the high back to low without affecting step#1


I really appreciate the help

Thanks
 
Last edited:
This sounds like a really simple problem.

Can you post the logic you have for the setpoints?

I wouldn't really care about how long it takes for you to get to whatever speeds... in the real world it doesn't matter. Meaning, you are at the temp for that speed... great it'll eventually get to that speed.

If this is homework, post what you have and I recommend figuring out how to simulate this and debug as needed.
 
Hi, from what I can gather, you don't need to let the fan stop. I would try a flip-flop circuit that would actuate between low and high speed as needed using your temp requirements. I don't see the reason for the timers or the reason to let the fan stop? When changing from high to low speed? Perhaps you could elaborate on this? I suppose you could add a timer that would prevent rapid switching between high and low when the temperature is close to needing a change. (Latch the timer with the .TT bit). Hope this helps you and good luck!!
 
1. At a certain ambient temperature based on a Setpoint
the fan will come on at low speed (LEQ) This allows to blow hot
air during cold temps. I have the low speed output looking
at another temp transmitter, once this temp is reached it
will unlatch the low speed output, start a 60 second timer to allow to stop the fan completely and then start the High speed output fan.


[...]


4. Here is where I’m have trouble from High back to low. If the high speed
output is running and then the ambient temp drops back down to the Setpoint where I need to start the low speed output again.
How would I do this to where it would stop the high speed & allow a 30 second delay before starting the low speed output?

5. Where I have the low speed coming on at a certain ambient temp in step #1
I wasn’t sure how to accomplish the high back to low without affecting step#1
I think saultgeorge has provided the answer with the .TT bit ...



TL;DR


... and this post will flesh out the approach.


I am not sure I understand the problem fully, but what I am reading is that there are two cases to turn on (transition from 0 to 1) the low speed output:

  • the first case, probably the initial startup case, is when the temperature is cold (below the setpoint), and the high-speed output has not been 1 (because this is a startup case), and the low-speed output is 0 but needs to be 1 to blow hot air to raise the temperature.
  • the second case is when the high-speed output had been 1, but is 0 and has been 0 for the duration of a 30s timer, which timer started timing when the decreasing temperature crossed the setpoint, and when that timer expires the low-speed output should be assigned a 1.
There is a second temperature transmitter* mentioned, but I don't understand where that comes in, so I'll just carry on :whistle: and hope that does not matter ...



Assuming that is correct (otherwise ignore the rest of this):


In both cases above, the low-speed output needs to be 1 when the temperature is below setpoint, except when either the low-speed shutoff 60s timer is running, or the high-speed output is 1, or the high-speed shutoff 30s timer is running. Since the high-speed shutoff 30s timer will not be running on initial startup, another way of saying that is the low-speed output should be 1 if ALL of the following are true

  • the process is running
  • when the temperature is below setpoint,
  • the high-speed output is 0
  • the high-speed shutoff 30s time is not timing (running).
That is an AND rung:
Code:
 Running                  HiOut  LoTim.TT  HiTim.TT  LoOut
--] [----[LES          ]--]/[----]/[-------]/]-------( )---
         [SourceA     T]
         [SourceB  SPlo]

Running = process running bit (1=on)
SPlo = analog setpoint below which to turn on low-speed output
T = analog temperature
HiOut = high-speed output (1 = on)
LoOut = low-speed output (1 = on)
LoTim = low-speed shutoff 60s timer
HiTim = high-speed shutoff 30s timer
The coding of each timer is the other part to deal with, a shutoff timer need to keep timing while the rung that triggers/starts it goes false, e.g. summat like this:
Code:
     LoOut
--+--] [-----[GRT          ]--+---[TON - LoTim]---
  |          [SourceA     T]  |
  |          [SourceB  SPhi]  |
  |                           |
  |  LoTim.TT                 |
  +--] [----------------------+

SPhi = analog temperature above which to turn on high-speed output
So when the LoTim timer is running, its .TT will be 1, which is also the seal-in to keep it running until completion.



The high-speed logic is similar: the high-speed output should be 1 when the temperature is above some setpoint, except when either the low-speed output is 1 or the low-speed shutoff 60s timer is running, or the high-speed shutoff 60s timer is running. And the high-speed shutoff 60s timer should seal itself in with its own .TT.


That is one approach, but again, maybe I don't fully understand the process, and there may be edge cases I have not thought of yet.

* Maybe what is meant is a second temperature setpoint instead of a second temperature transmitter in item (1) of the OP? So this is a bang-bang control with split limits: low-speed output = 1 until high setpoint is reached, then high-speed output = 1 until low setpoint is reached, both with shutoff delays, then repeat.
 
the first thing i think you need to do is determine exactly what type of motor you have. i know you said its a 2 speed motor, but you need to determine what the wiring requirements for the motor is. how long can it operate at the high and low speed? is this a low speed start / high speed run motor? this does matter.
in regards to going from high speed to low speed, you MUST allow the motor to at least coast down to the low speed. telling a motor running at 1800 rpm to suddenly go to 1000 rpm for example will cause something to go sideways. you have counter emf forces, rotational torque forces being told to slam on the brakes, stress on the motor shaft, mounting bolts.......

is a vfd an option? you can control the speed increase / decrease at a rate that will not harm anything, you will probably have to change the motor.
hope this helps,
james
 
Request for clarificaton

Is this the basic behavior you are trying to model?

xxx.jpg



With the exception that if Run becomes 1 when Temperature is above SPhi, then the high-speed out should go to 1 immediately.



What should happen if Run transitions from 0 to 1 when Temperature is between SPlo and SPhi?
 
Last edited:
Use an off delay timer triggered by the dropping of high speed fan output? When the off delay finishes start the low speed fan output?
 
We really need a motor wiring diagram here...

Having been an electrician for some years now, I have worked on quite a few multispeed fan motors but never run across a 2 speed fan motor that couldn't be switched from high to low or vise versa on the fly. (I'm assuming single phase motor here).
 
I’ll post the logic I have and maybe you guys can hep me
To figure out the best approach for going from Hight to Low speed.

The low speed output actually is blowing down in reverse. This is why
I need the fan to stop in Low before going to High speed.

Thanks again
 
Guys
attached is my logic for starting/stopping the low speed fan (which runs in reverse to blow down for heat) and the high speed fan.

can you please look it over and see if i need to add or remove any of it or have any conflicts...

Here is a review of what i need to accomplish

1. Rung#1 start the fan in reverse (low speed) if the ambient temp is at 29 degrees. I can change this setpoint.

2. Rung#3 if the auxillary temp reaches 140 degrees from another temp transmitter i have installed. stop the low speed fan for 60 seconds and start the high speed side.

3.Rung#5 if the temp drops back down to 29 degrees stop/ unlatch the high speed fan for 30 seconds and start the low speed

4. anytime the run command drops out. it will unlatch the high and low speed outputs.

5. Rung#6 if the temp is 30 degrees it will go and start the high speed output. no need for the low speed fan at this temp.

Thanks for helping
 
Last edited:
Rung 0007: GEQ should probably be comparing [Ambient Temp N7:20] to limit-checked N7:13 copy of [High Fan Setpoint N7:12], and not to N7:12 itself.
 
Rungs 0003 and 0004: if process is off (Run is 0), then timer T4:5 on Rung 0003 will time until done, after which T4:5/DN will unconditionally latch [High Fan Speed B3/29] to 1 on every scan, even though process is off. However, it would be unlatched on Rung 0005.


There may also be some cases where both the Low and High speed run outputs will be latched to 1 at close to the same time, if one of the temperature sensors got "stuck" on the wrong side of a setpoint, or if an inconsistent pair of setpoints were entered.


I am not sure using latches (OTL/OTU) is the way to go here, and they are almost certainly not necessary.
 
Last edited:
I re-ordered the rungs but made no functional changes:

  • mainly to put the limit checks at the end
    • so the process control rungs would be together;
  • also to make the latches and unlatches adjacent, and ensure unlatches are after corresponding latches;
  • Combined two separater rungs that latch the High Speed Fan bit;
  • tried to improve the comments.
Other than that, it should behave exactly as the original Fan.rss would.
 

Similar Topics

Hello I am trying to make a program work with a sqo instruction .The process has 5 steps ,and a starting step of zero.There should be 8 sec...
Replies
17
Views
1,086
Good morning to everyone on the forum and happy new year. I'm trying to use the following functions in sysmac studio, because I need to enable one...
Replies
1
Views
335
Good Morning , I would like to start a Powerflex 525 with a N.O. Start Pushbutton , and when the N.O. Start Pushbutton is released I would...
Replies
3
Views
1,703
Hello, I am trying to detect when the PLC changes from STOP to START mode. This can be considered an edge case scenario, but I would to analyze...
Replies
4
Views
1,578
Hello Everyone! It has been a while since I used the method of drawing a state diagram, converting that to Boolean algebra, and translating that...
Replies
13
Views
2,971
Back
Top Bottom