duty cycle

sreejithv

Member
Join Date
Jan 2013
Location
kochi
Posts
11
hi
i am new to plc i was asked to write a program for two pumps(1 stand by and other running)which will run in normal way like when triggered. But when the operator press the cyclic duty button without interrupting the process next available pump should come in sequence.

i was able to find the next available pump but but cant make it in standby queue and
how to make the standby pump run when the running pump stop.

thanks in advance
 
welcome to the site.
This apears to be the school question for this year.
there is an earlier post. so you do need to search the site.
please let us know which PLC you intend to use.
also you need to atleast attempt the work out the program first.
draw/program the control for one motor.
ZIP up your program and attach it
 
program

I am doing it in twido suite
please see the program i am unable to link the cyclic duty to the ladder.
:oops:
even it is school thing i am doing for the first time.
please help
 
Can you draw it up as a flow chart? What is the sequence?

This happens until..
Then this until...
Then this until...
etc.

The first and most important part of any automation project is to define its proper operation. Don't start writing code first...
 
If cyclic duty is selected, then the duty selection will be rotated/altered
each time a pump stops. The next pump to start is the next in the duty
list; the next pump to stop is the pump that has been running longest.
For a 2-pump station, the duty cyclic duty list will be 1-2, then2-1.

If any pump has a fault or is unavailable, it is not included in the duty list.
If a pump fails, then the next pump in the list is started immediately and
the faulted pump is taken out of duty.
maximum run time is 12 hours.
 
Create an array to store the condition of the pumps(which will be obtained through diagnostic feedback signals from the pumps) in order that is, each bit in the array should represent the condition of a single pump.Let's say that 1 represents that the pump is working and 0 means that it's not.

Now each time condition for a pump stop occurs keep moving through the list one bit at a time till you find a "1" and then the position at which you find 1 will help you turn on the appropriate pump.

Elaboration:

Say there are 5 pumps and only 4th is not working. So the 5 bit array will be 10111. Now when 2nd pump turns off 3rd bit will get examined and since 1 will be found there 3rd pump will be turned on.When 3rd pump turns off 4th bit is examined and zero is found so then 5th bit is examined and 1 is found and thus 5th pump will be turned on.

Rough idea to do the above:

suppose you are using N to keep track of position through Array
1.Add 1 to N when any Pump is stopped
2.Then examine bit at Array[N]
3.If it is 1 then set Output[N] high and come out of loop
4.If it is 0 then loop back to step 1
5.If N is 5 and Array[5] is 1 then reset N only after pump 5 gets on
6.If N is 5 and Array[5] is 0 then reset N immediately and loop back to step 1
 
Last edited:
not geting

o_O
i tried it but i am not getting this array thing.

i only have 2 pumps in, normal operation wet well level trigger pump that is if pump 1 level is triggered it will work and if pump 2 then it will

but when cyclic duty is selected then if pump 2 is next in the duty list then even if level trigger for pump 1 is high then also pump 2 should work and pump 1 should be in the next pump in list and so on.
please help
 
i only have 2 pumps in, normal operation wet well level trigger pump that is if pump 1 level is triggered it will work and if pump 2 then it will

I'm not getting a clear picture of your setup but here's what I am guessing.
You have a tank that gets filled up to a certain level by Pump 1 and then the rest is filled by Pump 2 in "normal" operation...

but when cyclic duty is selected then if pump 2 is next in the duty list then even if level trigger for pump 1 is high then also pump 2 should work and pump 1 should be in the next pump in list and so on.

... and from the above I'm guessing that in "cyclic duty" you want one pump to fill the entire Tank and then the other pump should fill the Tank in next cycle and so on..

Are my assumptions anywhere near your actual setup? If not please clarify further.
 
Last edited:
no not actually
suppose the well level is 100
1st start level 50, 2nd start level 80.
1st stop level 15, 2nd stop level 30.
then if level rises above 50 then the pump in the duty cycle list should turn-on (suppose it is 1) then if it reaches 80 nxt pump in the duty list (it will be pump 2 here) should start.
and if level reaches 30 (both pumps are working @ this time) then the longest running pump that is pump 1 should turn off and for next low level pump 2 should turn off.

or
suppose if level rises above 50 then the pump in the duty cycle list should turn-on (suppose it is 1) and if it reaches 1st stop level it should turn off and nxt pump in the duty list will be pump 2. and if well rises again above 50 then pump 2 should turn on.🤾
 
no not actually
suppose the well level is 100
1st start level 50, 2nd start level 80.
1st stop level 15, 2nd stop level 30.
then if level rises above 50 then the pump in the duty cycle list should turn-on (suppose it is 1) then if it reaches 80 nxt pump in the duty list (it will be pump 2 here) should start.
and if level reaches 30 (both pumps are working @ this time) then the longest running pump that is pump 1 should turn off and for next low level pump 2 should turn off.

or
suppose if level rises above 50 then the pump in the duty cycle list should turn-on (suppose it is 1) and if it reaches 1st stop level it should turn off and nxt pump in the duty list will be pump 2. and if well rises again above 50 then pump 2 should turn on.🤾

Okay so you are pumping water out of a Well.From what I now understand you want to do there is no need to think in terms of maintaining a duty
list etc.

Just make a simple program using Limit instructions to operate Pump 1 from level 50 to 15 and Pump 2 from level 80 to 30.If you do this then the following will happen:

Well Level 80 -> Pump 2 starts
Level begin to drop
Level reaches 50 -> Pump 1 starts
Level drops faster
Level Reaches 30 -> Pump 2 stops
Level drops slower again
Level reaches 15 -> Pump 1 stops

Now what do you want to change in these events?
Also When the well starts filling again do you want to start the pumps again at their respective low limits or do you want them to start in proper order only after level becomes greater than or equal to 80
 
Last edited:
Okay so you are pumping water out of a Well.From what I now understand you want to do there is no need to think in terms of maintaining a duty
list etc.

Just make a simple program using Limit instructions to operate Pump 1 from level 50 to 15 and Pump 2 from level 80 to 30.If you do this then the following will happen:

Well Level 80 -> Pump 2 starts
Level begin to drop
Level reaches 50 -> Pump 1 starts
Level drops faster
Level Reaches 30 -> Pump 2 stops
Level drops slower again
Level reaches 15 -> Pump 1 stops

Now what do you want to change in these events?
Also When the well starts filling again do you want to start the pumps again at their respective low limits or do you want them to start in proper order only after level becomes greater than or equal to 80

I have done the program for this and is working properly. now i just want to implement cyclic duty.
in cyclic duty
Well Level 80 -> Pump 2 starts
Level begin to drop
Level reaches 50 -> Pump 1 starts(what if pump 2 was in the standby list)
Level drops faster
Level Reaches 30 -> Pump 2 stops(but here pump1 is running long so it should stop)
Level drops slower again
Level reaches 15 -> Pump 1 stops
so the last stop pump is pump 1 then in nxt level rising
0=====> 50 pump 2 should be on not pump 1 as in the earlier case
 
so the last stop pump is pump 1 then in nxt level rising
0=====> 50 pump 2 should be on not pump 1 as in the earlier case

To do this just do the following:
1.Use a bit that gets set when pump 1 turns off and reset when Level reaches 80 again.
2.Place two Limits in front of each pump output in parallel. Limit1 for 80 to 30 and Limit2 for 50 to 15.
3.For Pump 1: Place the NO of the bit mentioned in step 1 in front of Limit1 and NC of the same bit in front of Limit2
4.For Pump 2: Place the NO of the bit in front of Limit2 and NC of the same bit in front of Limit1
 
Design Design Design!

If you can't draw it on a piece of paper then you can't program it!

There are two distinct algorithms required: 1) Demand of number of pumps to run. 2) Duty cycler will determine which actual pumps must run. You should also design a common pump control function to be used for all pumps.

Nick
 
I have already done what u have told now
my problem is just the duty cycle.
how to find the next pump to run and duty cycle logic.
here is my program i am using twido suit.

i used status to find the next available pump.

pump 1 status ======= nxt available pump2( bit m1)
pump 2 status ======= nxt available pump1 (bit m2)

this is done by a set and reset function

and i used this bit(m1 m2) to control the pump if duty cycle is enabled but not working.
please go thru the program that i tried.
in my animation table i have used counter c0.v to change the level by putting values.
%i0.0 duty cycle to enable
%i0.1,2,3,4 to satisfy all condition
%i0.20 max pump to run.
hope you can understand my program.
please write if u have any clarification.
thanks in advance
🤞🏻
 

Similar Topics

Hello Friends, I am looking for a way to take my PID Output( it is the result of my PI Algorithm in Real format) and generate a PWM Signal in...
Replies
16
Views
2,318
Just want to make sure my thought process is correct before I proceed. I have a linear actuator with a 3min / 17min duty cycle (3 on, 17 off) I...
Replies
2
Views
1,088
I have an electric actuator with a 75% duty cycle. I am sending an analog output from a PID to a controller board on the actuator. My concern is...
Replies
6
Views
2,386
Hello guys, I need help understanding duty cycles of AC motors. I have read the following article explaining the difference between different...
Replies
5
Views
2,074
in micrologix 1400 we have to enter duty cycle to get particular duty cycle.But i want my duty cycle changes according to values coming from pid...
Replies
2
Views
2,610
Back
Top Bottom