RSL5000 timer question

ceilingwalker

Lifetime Supporting Member
Join Date
Mar 2010
Location
Phoenix, AZ
Posts
1,586
Hello. I have a question about a timer function in RSL5000 please. I have attached a screenshot of my question. In the rung shown, why is it that when Regen_Complete timer accumulator equals the preset, the timer doesn't stop? This is a rung taken from an actual program that is running, I just wanted to test it by itself because the results weren't making sense to me. I don't think this is exactly how I would have designed this timer, I am troubleshooting what I have. The real problem with this in real life is that the system doesn't step-through and go to the cooling cycle and as long as everything is left alone, it will run heat from now until the end of time. When .ACC=.PRE, shouldn't the .DN transition to a "1", which should cause the XIO tag REGEN_COMPLETE.DN to go true and stop that rung? Taking a guess at it, I believe the transition is happening so quickly the processor isn't seeing the change, therefore leaving it in this current state, unless all the Stars and Planets line up with the Sun and it changes the .DN bit at just the right time. Am I close? Thank you.

timer_question.jpg
 
It is going false for one program scan. When the rung goes false the timer resets including the done bit, then one scan later the rung goes true again restarting the timer.
 
It is going false for one program scan. When the rung goes false the timer resets including the done bit, then one scan later the rung goes true again restarting the timer.

Thank you Sir for the response. This is why I said in my original question this is not how I would have designed this and it sounds like this isn't the way anyone would have designed it, that wanted it to work right. Thanks again.
:D
 
Me being me, I had to try this on a SLC500. Because the processor scan is much more predictable, this works on the SLC500. Can't believe someone didn't test this before they commissioned it though. It's the first this company has had to run this cycle since this control was purchased.
 
This single rung, with a timer preset of 32767 or less, would work exactly this same way on a SLC500. Can you post the test rung you used?

Assuming the two XIO instructions before the timer done bit XIO remain in the state shown it would continue to cycle.

'Stopping' would require that one of the two XIO instructions change state or, if the rung is in a subroutine, that the subroutine no longer be invoked.
 
This single rung, with a timer preset of 32767 or less, would work exactly this same way on a SLC500. Can you post the test rung you used?

Assuming the two XIO instructions before the timer done bit XIO remain in the state shown it would continue to cycle.

'Stopping' would require that one of the two XIO instructions change state or, if the rung is in a subroutine, that the subroutine no longer be invoked.

Ok, project is attached. The rung in question is in Ladder "Dryer" and is Rung 0. Rung 2 does the exact same thing. I am trying to think of a way to stop this with the .DN bit. Thanks
 
I can't open your ACD file right now. If the rung is the same as you first posted exactly what is the 'this' you want to 'stop'. Is it the two bits (Blower_Start and Condenser_Start)?

If so do this, remove the XIO of the 'Done' bit at its current position. Remove the two bits with their branches (so that you have just the two XIO contacts and the timer.) Now create a branch to below the timer. Place the XIO of the 'Done' bit there then the OTE of Blower_Start and, on a branch in parallel with Blower_Start, an OTE of Condenser_Start.

That way the two bits will only be on while the timer is timing up to the preset. When it does get there the two bits will turn off but the timer ACC value may (or may not) continue to rise but that will have no effect.

I can provide a version in a RSLogix500 format if you need.
 
If the rung is the same as you first posted exactly what is the 'this' you want to 'stop'. Is it the two bits (Blower_Start and Condenser_Start)?

If so do this, remove the XIO of the 'Done' bit at its current position. Remove the two bits with their branches (so that you have just the two XIO contacts and the timer.) Now create a branch to below the timer. Place the XIO of the 'Done' bit there then the OTE of Blower_Start and, on a branch in parallel with Blower_Start, an OTE of Condenser_Start.

That way the two bits will only be on while the timer is timing up to the preset. When it does get there the two bits will turn off but the timer ACC value may (or may not) continue to rise but that will have no effect.

I can provide a version in a RSLogix500 format if you need.

What I need it to do is to stop that line of code, which would shut down everything there. I tried something else involving a latch but I try to use them sparingly as they have bit me more than once.
 
I'm guessing at how the cycle is supposed to go, but change the "Heater_Start" in rung 1 to Regen_Complete.EN and the heater will run for two minutes, and the condenser will continue for another minute then restart the cycle over again.
 
If the blower and condenser are only supposed to run one cycle until the reactivation input comes on the move the XIO Regen_Complete.DN bit in front of the blower and condenser OTE's but not in front of the Regen_Complete timer, this will hold the timer true and outputs off until reset by the Reactivation input
 
What about an RTO? It would hold its done state and you'd have to explicitly reset it.
 
Me being me, I had to try this on a SLC500. Because the processor scan is much more predictable, this works on the SLC500.

What are you basing this on? :unsure:

That aside, there's no proof that this rung is not programmed just fine - the problem could easily be elsewhere. As mentioned by previous posters, when the timer ACC>=PRE, then the .DN bit will come on. The PLC will execute the remaining code with the .DN bit on, start from the beginning with the .DN bit on, and then when it gets back to that rung again, it will turn off Blower_Start and Condenser_Start. It will also reset the timer, which will turn the .DN bit back on. Once again, PLC runs the rest of the code with those two bits off and the .DN bit on, starts from the beginning the same way, until it gets back to that rung, at which point the Blower_On and Condenser_On bits will be turned back on, provided that your Reactivation and Dryer_Fault bits haven't come on in the meantime.

I would suggest that the problem is either:
(a) they have forgotten (or implemented incorrectly) the logic to watch for the Blower_Start and Condenser_Start turning off, which should presumably drop out the Reactivation flag; or
(b) they were looking for the .DN bit to be on AND the Blower_Start to be off AND the Condenser_Start to be off to reset the cycle - and as described above, the .DN bit will be on for one scan, and the other two bits will be off for the next - they won't all happen together.

If you can work out what is supposed to break the loop, it'll probably be a very easy fix.
 

Similar Topics

I am using version V17.01.00 (CPR 9 SR 1) I have a fairly large machine with multiple PIO nodes on an ethernet network. I am getting a flashing...
Replies
0
Views
1,377
Hello, My coworker and I are commissioning a new panel. We have a 1732-AENTR series C remote IO thats Rev 6.1. The project file from a previous...
Replies
3
Views
1,609
Hello all. Yes, I remember well that RSL5k v.20 was plagued with issues however, it used to run on my laptop. After many years of hibernation I...
Replies
2
Views
1,555
Is there are way to set up RSLogix 5000 to start up with a category in the Controller Organizer 'minimized'? For instance, make the Add-On...
Replies
2
Views
1,726
Hello, I recently converted a control system from PLC-5 to ControLogix and have a question please. My discrete IO converted kind of weird and I...
Replies
2
Views
1,542
Back
Top Bottom