Nube Click time delay bypass program

xprtcp

Member
Join Date
Apr 2011
Location
Maryland
Posts
26
Here we have a bunch of timers. If any are finished timing, and their coil is active, it is not necessary to start another. Is there a simple way using Click programming commands to do it? Or, do I have to use a bunch of "OR" contacts, (one for each of the other timers)?

An example of one timer circuit below:

T1 00500
-----||---------()--
| 00600|
|--||--|
| 00700|
|--||--|
| 00800|
|--||--|
| 00900|
|--||--|

 
Does it really matter if another timer starts? If you OR all their outputs then the result closes as soon as the first is done. Use it in your other logic. What happens when that first one turns off though? Are there considerations not mentioned?
 
Here we have a bunch of timers. If any are finished timing, and their coil is active, it is not necessary to start another. Is there a simple way using Click programming commands to do it? Or, do I have to use a bunch of "OR" contacts, (one for each of the other timers)?

Since the question is so badly written, here is another try:

There are six independently started timers; each closes a different output relay after a delay. Once any timer has completed its delay, and its output is still on, another timer does not have to run.
 
Here we have a bunch of timers. If any are finished timing, and their coil is active, it is not necessary to start another. Is there a simple way using Click programming commands to do it? Or, do I have to use a bunch of "OR" contacts, (one for each of the other timers)?

Since the question is so badly written, here is another try:

There are six independently started timers; each closes a different output relay after a delay. Once any timer has completed its delay, and its output is still on, another timer does not have to run.

Here is the whole idea:

Flow is requested to one of six tanks. Only one tank's filling can be requested at a time due to external limitations. The PLC has no control over the requests to fill a tank. Outside equipment controls requests and it can only request one at any moment. However, when one tank is filling it can request another and another ... tank to be filled. It cannot request more than one tank to be filled at the same instant. Several seconds elapse between requests to fill tanks.

When there is a request to fill a tank, the PLC then starts a pump. Five seconds later it opens the valve to fill the tank that is associated with the request.

So, if another tank needs filling and IF the pump is already running THEN the delay is not required and the second (third and so forth) tank's valve can be opened without a delay.

As you can see, a five second delay will not hurt, but it could be possible to get more tanks filled in a given period if there was no delay if the pump was running when a request to fill a tank occurred.
 
Last edited:
Presuming I understand your request correctly. One of the two methods in this example may work for you.

Thanks for the examples!

Many questions from a nube follow:

In rung 17 the contents of DH1 are set to 1 if any of the timers are complete?

In the first sixteen rungs DH1 is Compared to DH2 (which is 0 because of the Math statement) and if it is not the same, then the contact is closed?
[Should the Math statement be in the first rung so that the value is set before the test?]
Since the contact T.. is in series with the external contact X... then the output is not turned on until the external contact closes?

So, what is the the special care that you mention "It is also possible to use less than 16 timers but special care must be used."?

Does "special care" = changing the value of the "Source:" from T16 in the Copy command to match the number of timers to be tested?
 
OK, let's back up and re-think your logic. See if I have it.

1. If there is ANY fill request (do an OR - parallel - combining of the fill request contacts) then run the pump.

2. If the pump is running start a 5 second timer. (Remember, once this timer is done it will stay done until the pump turns off which it won't do until there are NO fill requests.)

3. If the timer is done then open each requested fill valve. (I got from your description that more than one fill valve can be open at the same time, it's just the requests which won't be at the same time.)

4. You haven't mentioned what stops the filling - the turn off of each fill request?

Does it sound like we have it? You had mentioned multiple timers but if this is right you only need one.
 
OK, let's back up and re-think your logic. See if I have it.

1. If there is ANY fill request (do an OR - parallel - combining of the fill request contacts) then run the pump.

2. If the pump is running start a 5 second timer. (Remember, once this timer is done it will stay done until the pump turns off which it won't do until there are NO fill requests.)

3. If the timer is done then open each requested fill valve. (I got from your description that more than one fill valve can be open at the same time, it's just the requests which won't be at the same time.)

4. You haven't mentioned what stops the filling - the turn off of each fill request?

Does it sound like we have it. You had mentioned multiple timers but if this is right you only need one.

Well, I used one timer and contact for each valve. In parallel with the timer I have a contact for the pump.

-||-X...-||-Y...[PUMP]
|
-||-TIMER1-Y..[VALVE]



So, how do I use ONE timer for SIX valves?

MILDRONE's idea seems to work in theory. I have not tested it yet.

4. You haven't mentioned what stops the filling - the turn off of each fill request?

Yes, when the request X... contact opens then the Y... valve contact must open too.
 
I'm only going to draw 2 request/valve - you'll get the idea


X0 Pump
--] [--+--------------------------------( )
|
X1 |
--] [--+

PUMP +-------+
--] [---------------------------------+ TMR |
| 5 Sec |
+-------+

TMR Done X0 Valve 0
--] [------+---] [----------------------( )
|
| X1 Valve 1
+---] [----------------------( )

 
I'm only going to draw 2 request/valve - you'll get the idea


X0 Pump
--] [--+--------------------------------( )
|
X1 |
--] [--+

PUMP +-------+
--] [---------------------------------+ TMR |
| 5 Sec |
+-------+

TMR Done X0 Valve 0
--] [------+---] [----------------------( )
|
| X1 Valve 1
+---] [----------------------( )


OOh, sweet!

So, just add as many TMR Done contacts as you need in series with the external contacts to control the valves. Nice! So simple and easy to program. I was duplicating the SPST mechanical timer relays with the program. This program is like a zillion pole timer.

Thank You!

The only down side is if one of the valves needs a little more time than the others, which is unlikely. If that happens we add another timer to the program...

Thanks again.
 
I had asked, what controls how long each valve is on?

4. You haven't mentioned what stops the filling - the turn off of each fill request?
Your reply was:

Yes, when the request X... contact opens then the Y... valve contact must open too.
Which I took to mean that, once the 'Fill Request' turned on it would stay on until sufficient flow of whatever had occurred then it turned off.

But then you posted:

The only down side is if one of the valves needs a little more time than the others, which is unlikely. If that happens we add another timer to the program...
So I don't think you are understanding the logic. The request input (the X's) being ON is what controls how long the valve stays on for each individual tank. The ONLY purpose of the 5 second timer is to get the pump primed (I guess) before turning on any valve. The turning off of the X input turns off its specific valve. The 'Done' contact from the timer won't turn off until ALL of the inputs are gone.

This program is like a zillion pole timer.

Any item which can be used as a contact can be used, both as normally open or normally closed, as many times as you wish.

By the way, here is the complete Click program
 
Last edited:
Here we have a bunch of timers. If any are finished timing, and their coil is active, it is not necessary to start another. Is there a simple way using Click programming commands to do it?

Poorly defined questions like above generally yield unusable results. The next quote is better, but failed to answer Bernie's question.

Here is the whole idea:

Flow is requested to one of six tanks. Only one tank's filling can be requested at a time due to external limitations. The PLC has no control over the requests to fill a tank. Outside equipment controls requests and it can only request one at any moment. However, when one tank is filling it can request another and another ... tank to be filled. It cannot request more than one tank to be filled at the same instant. Several seconds elapse between requests to fill tanks.

When there is a request to fill a tank, the PLC then starts a pump. Five seconds later it opens the valve to fill the tank that is associated with the request.

So, if another tank needs filling and IF the pump is already running THEN the delay is not required and the second (third and so forth) tank's valve can be opened without a delay.

As you can see, a five second delay will not hurt, but it could be possible to get more tanks filled in a given period if there was no delay if the pump was running when a request to fill a tank occurred.

This explanation is better, but.

Are there considerations not mentioned?


The only down side is if one of the valves needs a little more time than the others, which is unlikely. If that happens we add another timer to the program...

The different time for each individual valve with a single timer is do able and relatively simple. If your CLICK has a real time clock it's even possible to have a longer time first thing in the morning during winter weather.

I had asked, what controls how long each valve is on?

Your reply was:



Yes, when the request X... contact opens then the Y... valve contact must open too.

Good project definitions/questions = good answers from forum members.
 
While there is a bunch of confusion as to what was meant...

Poorly defined questions like above generally yield unusable results. The next quote is better, but failed to answer Bernie's question.



This explanation is better, but.






The different time for each individual valve with a single timer is do able and relatively simple. If your CLICK has a real time clock it's even possible to have a longer time first thing in the morning during winter weather.







Good project definitions/questions = good answers from forum members.

The bottom line is that the final program worked . . . the first time.

Thirty years ago it would take me hours of debugging a program (they were hundreds of lines long) to get it to work but Burnie Carlton's post set me on the right track to a simple solution.

Here is the final result:
X1 closes (asking to fill tank 1) Y101 closes (starting the pump) T1 starts
Five seconds later, Y103 closes (opening the valve)
When (the tank is full) X1 opens, then both Y101 and Y103 open (the pump stops and the valve closes)

Burnie,
External controls turn X1 on and off. All the Click has to do is respond. There just needed to be a delay between X1 closing and the Y101 valve opening. The click did it and for less time and money than relays. (There are six "X" contacts.)
 
Last edited:
One more thing (assuming anybody is still reading this)
Is there a way to get the PLC to reset itself when there is an error? Without using an external relay.
 
What kind of 'error'. Please be specific.
If it is a hardware problem (the Click detects something internally wrong or the program is somehow bad) then no. You would either have to cycle power or connect up with the programming software.

But if it's is a situation your program detects you should not stop the program but program a way to resolve the problem.
 
Last edited:

Similar Topics

What is the simples way to do a double click of a button in a ladder logic. New here and I hope this has not been asked before.
Replies
22
Views
532
I have a program that I am gradually piecing together (my first program). There are 4 cascading timers that turn Y001 and Y001 + Y002 on and off...
Replies
8
Views
542
Complete noob here, using a Click C0-02DD1-D to run a test stand. Requirement is to turn on motor run for X seconds, turn off and dwell for X...
Replies
6
Views
1,075
merry christmas and happy new year i have a click c0-00dr-d and allen bradley 2711c-t3m. can the panelview talk to the click plc via modbus...
Replies
1
Views
213
In an attempt to address a networking issue on my end, I am asking the Click Plus experts if you could verify that I am configuring the email...
Replies
0
Views
347
Back
Top Bottom