Compressor Staging

Luke007

Member
Join Date
Dec 2012
Location
Lethbridge
Posts
2
Good Day Everyone

I need your help, I have a 6 stage compressor for cooling a building. I need to program logic for a Micrologix 1500 to have the compressors start with the lowest hours compressor first, then start second lowest hours next and so on up to six compressors. The compressors turn on each stage by time. For example if one stage turns on when there is a cooling call if the temperature does not return to set point within 20 mins then another stage turns on, then 20 mins later another stage turns on and so on. There is no hour meters, there is just a set of contacts that close when a compressor stage is on and the time is recorded in the PLC using timers and counters. And to challenge you, once set point is reached the compressors will shutdown the same sequence they started up. Then when the next call for cool comes the compressor sequence will start with the lowest hours first again. I have some experience programming PLC;s but I need help starting off. Thank you.

Luke
 
There's lots of examples on here for doing what you are suggesting, have you tried using the search facility using carefully chosen keywords ?

But the main reason for my reply is that I don't believe this type of algorithm is necessarily the correct approach.

What is the goal, to "balance" the run hours of your compressor motors?

That means they will all require maintenance, or fail, at the same time.

IMHO a better approach is to have an algorithm which does balance the usage, but only after an offset has been achieved.

What I would propose is that you fire up your motors in the same sequence until xxx hours have been logged on the first motor, and then instigate your run-hours balancing.

The net result is that scheduled maintenance is distributed, or wear and tear failures will not occur simultaneously.

I've seen strategies that involve random choosing of the motors to run, but they ultimately produce the same effect statistically as a proper balancing strategy.
 
Welcome to the forum.

I strongly recommend you search the forum for compressor. There are some considerations that need to be observed in a/c compressor control or you'll short cycle a compressor and destroy it. These have been discussed in numerous threads. You can use the search tool in the blue bar below your welcome message near the top right.
 
Last edited:
I wrote a program doing this in an early Mitsubishi, but all I did was set it up so when the operators hit the main start button it picked the lowest hours Air compressor from those available in Auto position and run that for the day, I was using a PLC that didn't even have a RT clock so I just guestimated running time using 15minute timers incrementing a counter then divided by 4 for hours and it was close enough. I didn't have any double integer so maximum hours I could get to was 32,000, which I then reset them all to 0. The actual run time on the 3 compressors varied heaps, one was new, another with 15000 hours and the third with 50000 hours, we never tired to equalise that, just use them equally, so I started them all in the program at zero hours, if it means the old one will blow up first, it blows up, we replace it with a new one, in our experience keeping an older unit rarely used as a emergency unit usually results finding it not working when we really needed it. If a compressor was dying, it is easier to get replacement funding by working it's arse off till it goes bang completely (preferably with exciting pictures for the accountants) than it is to get funding for a major overhaul while keeping it operational as an emergency backup emergency unit :)

Basically we were only doing it to get our usage similar and make sure all the compressors were run regularly so we knew they worked, if a compressor was down for a weeks work, it might run first all next week till it catches up again, no big deal. The operators also had start button for each compressor if they wanted to ignore the sequence.
Basically our Compressor guy said if you start it you should let it get fully warmed up and run it properly for a good few hours or the whole shift as most of the wear occurs during warmup & starting so you're probably adding a few extra hours wear on every cold start. Refrigeration compressors may be differnet to some degree.

Now if you are running the compressor system 24/7 you would then need to probably automatically restart the system every 24-48 hours otherwise a compressor could run for weeks, ask your compressor expert how long is the maximum they should run for.
 
Last edited:
And to challenge you, once set point is reached the compressors will shutdown the same sequence they started up.
First, you need a sorting routine that sorts the compressors based on Running Hours. The Running Hours are sorted, and the Sequencer Load loads them lowest to highest (then back down in reverse) for the shutdown back into the stack, ready for the next run. The Sequencer Load is triggered AFTER the compressor shuts down after each run and the hours have been sorted. For example, if they happened to have running hours in sequential order, the sequencer would have steps for compressors like this: 1 2 3 4 5 6 5 4 3 2 1 0. The last "0" step is to allow the sequencer output to turn off the last compressor.

Second, you need Sequencer Load Sequencer Unload instructions. Load the Sequencer stack with 12 steps - 6 going up and 6 coming down (including the STOP step). That will take care of 6 stages starting and 6 stages stopping. The Sequencer Unload should be triggered by a series combination of temperature and a 20-minute timer. As long as cooling is called for, the timer keeps running and recycling, and at each 20 minutes done, it triggers the Sequencer Unload, which steps through the 6 cooling stages. Then when the cooling switch goes off, an Unload 20-minute timer is started to step back down. If at any time the cooling switch comes back on, the sequencer is reloaded and the process is reversed and the cooling stages count back up towards 6.

EDIT: Never mind, the above will not work because the cooling process does not always reach 6 stages. Something other than one sequencer will be needed. Possibly use two sequencers. The first sequencer is loaded with the cooling stages, while the second sequencer is reloaded with the reverse steps each time Sequencer 1 advances 1 stage. That way when the cooling setpoint is reached, the second sequencer 2 is ready to take over and step back down to 0.
 
Last edited:
If it were me.... I would start by generating the run hours as seconds in a L file, which will give you around 68 years... put them all in the same file next to each other.

Set an indirect index pointer for the compressor being tested (P1), a indirect index pointer to loop around as a test for the rest on the compressors (P2), and a duty count to appropriate values (suit where you have put the data...), and loop test each of the values against the rest (including itself...).

Every time the indirect value is >= than the test value, increment the duty counter... Once done all 6 compressors, use the accumulated duty counter as a indirect pointer, and place the value in P1 (logical compressor number 1-6).

Reset the pointers and do for the next compressor till all done.

Will end up with a sort table with the compressor with the lowest hours to highest. From there just use again as indirection to drive the auto start bits...

I would also filter the hours table continually with compressor availability to drop out broken machines.

I use this a lot (testing availability, not often hours...) as it allows the order to be continually evaluated and adjusted if something breaks, but this is mainly with pumps where I don't care if they stop or start...

In your case, I would only evaluate the hours when all stopped... A lot of people I deal and work with dislike indirection, but as long as it is logically laid out and documented well is the most efficient way to program some functions...

Also wondered if you should be controlling on pressure ?? Usually the case in a stacked compressor system...

Hope this helps somewhat...

Good luck
 
Last edited:
i would not use hours as criterium, just start the first one that is in automatic, this way one compressor needs maintenance first.
in old days we used multiconnectors on a sequencecam
now i just move a word
 
Luke,

Do you have 6 separate compressors, and each compressor has 6 stages?

Or is there only 1 or 2 compressors with 6 stages?

It will make a difference in how to write the program.
 
Last edited:
Sorry for the late reply, thing have changed in my project. The difficulty that I am running into is the staging. The 6 stages is not what was actually installed when I finally got on-site. The equipment is three 2 stage heating/cooling compressors, but stage two will not run unless stage 1 is already running.

Secondly, I can not use time as originally proposed, because the building is too big to control the temperature accurately (thanks plumber). I have got around the cooling issue by triggering load by the end switches used on valves to each area of the building instead of using time.

Right now I need to rotate compressors with the least time compressor first and so on. I tried lead compressor, but there are two controls for the compressor. The heating application is controlled by the stage controller which is pre-programmed to rotated compressors (I don't have access to that controller) so my task is to program the cooling of the building. The cooling call is just a set of contacts off the stage controller. I would like to use lead compressor, but I don't know the time on each compressor from the heating cycle so I believe it would more effective if I used hour meter to control the cooling cycle. I can achieve totally hours by paralleling off of the stage control to input on the plc to give me the hours each compressor ran during the heating call.

There is the long winded explanation to my problem. Here is the application routine I am trying to achieve.

Cooling call
Stage #1 of the lowest hours compressor turns on.
Stage #2 turns on the same compressor when 3 end switches are true
Stage #1 of the next lowest compressor when 4 end switches are true
Stage #2 turns on the same compressor when 5 end switches are true
Stage #1 of the last compressor turns when 6 end switches are true
Stage #2 turns on the same compressor when 8 end switches are true.
Then as the end switches go false the compressors drop out. ( I am not worried about drop out sequence, I have them programmed to drop out in reverse order there were turn on)

I used a counter to count the end switch that are true then a GRT function to turn on stages and compressors, but I just can't seem to figure out the rotation. Please help, thank you.
 
Sorry for the late reply, thing have changed in my project......

What hasn't changed is the objective, it still seems like you are trying to balance the "run-time", which as i stated in above may not be the best thing to do..
 

Similar Topics

I have a system that i need to automate, I has a total of 7 refrigeration compressors, all with capacity control, the system needs to run based...
Replies
9
Views
4,365
I Am looking to get ahold of the modbus map for an air compressor. I HAve emailed the vendor as well, just wondering if any of my friends here...
Replies
1
Views
117
Got a customer with a Chinese air compressor, 240V, 15HP. The present control of the entire system is inside their VFD. It controls the motor...
Replies
2
Views
1,053
Hey All, I've got a Sullair LS-16 (V160) compressor with the 3-line Supervisor controller (identical to this...
Replies
9
Views
2,462
Hi folks, i'm pretty much new on this topic and i need some help with the dual compressor part 3 and 4, currently working on part 3 i cant make...
Replies
20
Views
5,114
Back
Top Bottom