CanSpellPLC
Member
I want to start off by saying that this is not really good programming practice, but after looking through some PLC's that were causing equipment malfunctions, I found an interesting glitch that can occur. We had a few pieces of equipment that were occasionally unable to be started or stopped from the board operator or started from the field operator. After looking through the programming I came across a rung that would occasionally cause the timer to hold true and not release.
I looked across forums and within the documentation to see if anyone has come across this issue or if Rockwell says that you shouldn't set up a rung this way, and I was unable to find anything. I'm just putting this out there for discussion and to hopefully help someone if they have the same issue.
This was on a few of our SLC's, the equipment that was susceptible to this glitch had rungs that were set up as follows:
(apparently spaces are removed when this is posted, so I used periods instead of spaces)
HMI Pushbutton............................ Timer.DN..............................Timer
[ ] ------------------------------------- [ / ] --------------------------(TON)
.......................................|
.......................................|
.......................................|
.......................................|
Timer.TT ..........................|
[ ] --------------------------
If you can't tell from the crude text drawing, a pushbutton from the HMI initiates a timer (in this case, to ensure a mechanical motor contactor pulls in or drops out), the timer becomes true and the .TT seals in the rung around the momentary pushbutton. Once the timer completes, the .TT bit should open, and presumably the XIO .DN should also open and the timer should drop out.
What I've noticed ends up happening occasionally is, depending on when the timer completes in relation to where the PLC is in it's clock cycle, the timer .DN can become true (making the rung false and resetting the accumulated time) but the .TT instruction true which passes through XIO .DN instruction on the rung and maintains the .EN on the timer. When this occurs, the timer instruction stays true, time does not accumulate, and the .TT stays true because the accumulated time never increases to meet or exceed the preset. To fix this, I just removed the .DN XIO instruction as this was unnecessary since the .TT would produce the same intended result.
Again, this does not happen every time, but the location of the rung within the file certainly dictates the probability of this occuring.
Has anyone else experienced this or is this a known issue?
I looked across forums and within the documentation to see if anyone has come across this issue or if Rockwell says that you shouldn't set up a rung this way, and I was unable to find anything. I'm just putting this out there for discussion and to hopefully help someone if they have the same issue.
This was on a few of our SLC's, the equipment that was susceptible to this glitch had rungs that were set up as follows:
(apparently spaces are removed when this is posted, so I used periods instead of spaces)
HMI Pushbutton............................ Timer.DN..............................Timer
[ ] ------------------------------------- [ / ] --------------------------(TON)
.......................................|
.......................................|
.......................................|
.......................................|
Timer.TT ..........................|
[ ] --------------------------
If you can't tell from the crude text drawing, a pushbutton from the HMI initiates a timer (in this case, to ensure a mechanical motor contactor pulls in or drops out), the timer becomes true and the .TT seals in the rung around the momentary pushbutton. Once the timer completes, the .TT bit should open, and presumably the XIO .DN should also open and the timer should drop out.
What I've noticed ends up happening occasionally is, depending on when the timer completes in relation to where the PLC is in it's clock cycle, the timer .DN can become true (making the rung false and resetting the accumulated time) but the .TT instruction true which passes through XIO .DN instruction on the rung and maintains the .EN on the timer. When this occurs, the timer instruction stays true, time does not accumulate, and the .TT stays true because the accumulated time never increases to meet or exceed the preset. To fix this, I just removed the .DN XIO instruction as this was unnecessary since the .TT would produce the same intended result.
Again, this does not happen every time, but the location of the rung within the file certainly dictates the probability of this occuring.
Has anyone else experienced this or is this a known issue?
Last edited: