I have this program whereby I perform an activity based on a timer reaching a certain value. This 'activity' occurs every time the timer runs without any issue. However, if I introduce a FAL instruction that ORs 1000+ times in that routine, the activity fails to occur majority of the time. Reducing the length, improves reliability of my activity (occurs closer to the rate of the timer). Also, the average scan time is very low (10ms or so).
My confusion is given that it effectively runs when there is no FAL, why does it fail to do so majority of the time when a lengthy FAL instruction is introduced?
Since timer doesn't follow the scan timer, wouldn't the likelihood of failing still be high without FAL? Based on my understanding timer.ACC can exceed the value I am checking while its scanning other rungs, which contradicts the fact that the activity occurs without fail when FAL isn't present. This leads me to believe there is a flaw in my understanding, regarding which I hope someone can enlighten me.
P.S. Solution to my problem was using greater than for checking, but I am still curious about the issue.
Addtional info: I am using controlLogix
My confusion is given that it effectively runs when there is no FAL, why does it fail to do so majority of the time when a lengthy FAL instruction is introduced?
Since timer doesn't follow the scan timer, wouldn't the likelihood of failing still be high without FAL? Based on my understanding timer.ACC can exceed the value I am checking while its scanning other rungs, which contradicts the fact that the activity occurs without fail when FAL isn't present. This leads me to believe there is a flaw in my understanding, regarding which I hope someone can enlighten me.
P.S. Solution to my problem was using greater than for checking, but I am still curious about the issue.
Addtional info: I am using controlLogix
Last edited: