10/3/2011 4:40 PM | |
Joined: 4/30/2007 Last visit: 3/9/2023 Posts: 231 Rating: (23) |
Question, your stored value #nr_2 is declared asStatic or Temp? |
10/5/2011 10:22 AM | |
Joined: 10/7/2005 Last visit: 10/18/2024 Posts: 3024 Rating: (1054)
|
Hello Jeebs you are correct, while the Timer is updated asynchonously andcan expire at any moment in the scan, it requires a call of the Timer witha write operation (e.g. "SD" or "R") toinfluence its state via the logic. Let's assume you only have ONE T140 related write operation in your program (i.e. the "SD T 140" in line 7 of your example logic, I presume you've check the X-Ref too), I can still see a possibility for "misbehaviour" due to the "A(" brackets that you have around the INT comparison to start the timer. This "A(" bracket means that the RLO of any preceeding instruction is combined with the INT comparison to start the timer. Being an On Delay timer, a "loss" of the RLO (return to 0) afterT140 was started would mean that T140 will stop and you won't get a succesful T140 expired check anywhere in your program. Question is: What logic is before the "A(" bracket? P.S: I always prefer to have only one place in the pogram where I check for Timer expired and then assign it for example to an M bit which is then used throughout the program as needed (this eliminates any issues due to the asynchonous update of S5 Timers by the OS). |
Cheers |
|
10/6/2011 1:20 AM | |
Joined: 10/7/2005 Last visit: 10/18/2024 Posts: 3024 Rating: (1054)
|
Hello Marciano let me start by saying that you are in principle correct and that brackets are indeed put around the comparison instruction whenyour example logic is programmed inLAD and viewed in STL. I fear thouh the point I was trying to make was missed, so I'll try to convey it again: 1.) The fact that the comparison instruction in encapsulated in "A(" bracketsis NOT a problem by itselfNOR necessarily a programming problem or mistake. 2.) Jeebs's original logic was obviously programmed directly in STL. Assuming the comparison instruction is the only condition in use to start the Timer,you would typically NOT encapsulate it in"A(" brackets(well, you can, but I wouldn't). 3.) Sincethe comparison instructionhas been encapsulated it in "A(" brackets,it may very well have been done tocombine it with other preceeding logic. This is why I asked the question: What logic is before the "A(" bracket? |
Cheers |
|
This contribution was helpful to1 thankful Users |
Follow us on