How to Switch Primary and Secondary Pumps
In this section, we’ll discuss how to Switch Primary and Secondary Pumps using ControlLogix. For example, we have two sump pumps. We need the North pump to be the primary pump for one month. After that, the South pump becomes the primary. Of course, if the primary pump gets behind once in a while (or fails), we need the secondary pump to take over.
In this example, we’ll turn on the primary pump if a sump level is above 15 inches. Once it drops below 10 inches, we’ll shut it off. Likewise, whichever pump is the secondary will energize at 20 inches. It will shut off when the water level gets below 15 inches.
Additionally, we will switch between the North and South pump as our primary every 730 hours of run time . This is approximately 1 month. Not only will we even out the wear, but also will prevent each pump from sitting idle for years.
Keep in mind that this logic is example only, and you will need to modify and test the logic for your own application. Be sure to follow your own plant safety protocol. I cannot guarantee this to work for your own application.
Create Your Tags
Before we begin, let’s create some tags. That way, we don’t have to worry about this while we’re writing the logic.
Normally, the WaterLevel tag will populate from a analog input module which is reading the sump level. Likewise, the NorthPumpRun and SouthPumpRun tags will turn on the real world output to energize a pump.
Build your Run Time Meter
At this point, we are ready to write the logic. First, we’ll build a runtime meter. The Retentive timer will accumulate runtime until it reaches 1 hour. After that, the counter will increment, and the PrimaryRunTime resets to zero. We need to use the counter this way, because the RTO instruction cannot accumulate a total of one month. The preset can never be large enough. In other words, PrimaryRunHours will accumulate the number of hours that a pump has been running as primary. Here we do not need to check to see if a pump is running as primary or not. This is because only the primary will run unless it gets behind.
Add a Counter to Switch Primary and Secondary Pumps
At this point a counter will increment as long as no pumps are still running. Later on, we’ll take advantage of the way the Binary numbering system works. Basically, if the accumulator is EVEN, we want one pump to be our primary. On the other hand, if the accumulated value is ODD, the other pump will be the primary. We’ll hold off switching pumps until both pumps are off. That way, we won’t interrupt a pump while it’s running.
Now, we’ll set which pump we want to be our primary. When the accumulated value of PrimarySwitchCount is even, then it’s least significant bit (bit #0) is off (reset). On the other hand, if the accumulated value is odd, then bit #0 is set. In other words, the North pump is our primary on odd counts, and the South pump is our primary on even counts.
Check the Sump Level
Next, we are ready to energize our primary pump if our water level gets above 15 inches. The primary pump will stay energized until our water level drops below 10 inches. Notice that if our water level is high, then both pumps will run whether they are primary or not. We’ll handle the high water level condition after we enter this rung.
We need the Secondary pump to energize if our sump level goes above 20 inches. It can shut off when we drop to 15 inches. Obviously, you can modify these presets to the specifications for your project.
Summary of how to Switch Primary and Secondary Pumps
In short, we simply count the run hours of our primary pump. After we accumulate 1 month of run time, we trigger a counter that switches which pump is our primary. After that, we check our sump level, and turn on the primary pump when we need it. If it falls behind, then we energize the secondary pump.
For more information, visit the ControlLogix Category Page!
— Ricky Bryce