hI kikis,
I believe you think the concept of programming with subroutines works the way a
linear programming language like basic or c does jumping back and forth at will
but this is not the way it is intended.
The idea behind it is that in every ladder scancycle the program always starts
at the first net, in the main Subroutine, in the main Module (this is the one highlighted)
and should end at the last net in this same subroutine
All calls to different subroutines are supposed to end with a return.
Do not for example program a wait loop jumping back 1 or more nets to wait for
a certain condition as this would create a condition that would not update inputs
and outputs and eventually trigger a watchdog timeout.
Please look at the topic "Program Sequencing" in the helpfile.
Following this general idea a part of the program that has a timer can be anywhere in
the main subroutine OR in a subroutine that is ALWAYS called from the main
subroutine (unconditional)
Think of programming in subroutines as inserting a number of ladder rungs (nets) un your
main program in a jazz controller, but keeping it neater. these rungs could always be executed (unconditional)
or only under certain circumstances (conditional) but instead of actually putting these
rungs (nets) there you have them neatly labled and stored in a subroutine.
I hope this helps.
Peter van Hoof