well, if you're happy, I'm happy ...
but I've got a hunch that if you'll remove that RET (Return) then Subroutine #7 MIGHT just start working the way you expected it to ...
[attachment]
since you're using an RTO timer, then you need the RES (Reset) to take it back to zero when you're through with it ... that part is correct ... the problem I believe you're having crops up when the timer gets done ... when rung 0005 executes with a TRUE done bit, the RET immediately kicks the processor right out of the subroutine and sends it screaming back to ladder #2 ... specifically, the processor never gets a chance to execute the RES and reset the timer ...
actually you don't need the RET (Returns) in your program at all ... the processor scan will automatically "return" when it gets to the end of the subroutine ...
think about this ... when you said:
the timer that runs them does nothing just sits there
I've got a hunch that what you meant to say was something like:
"The timer's accumulator runs up to its preset and the done bit comes on ... but the timer won't reset to get ready for the next cycle."
if that's what you saw, then I think the solution I offered above should take care of your "timer won't reset" problem ...
but then you're probably going to have another problem pop up ... your simple switch controlled rung for the JSR in ladder #2 is still going to be true ... so the "timer controlled" cycle will continually run over and over again ... you need some way to make the JSR rung be true for just one cycle of the timer ... notice I did NOT say "for one SCAN" ... work that one out and you should be ready to roll ...