I really wish the customer had taken my recommendation of using CLX...But neither here nor there...sigh
Okay, next problem. The customer installed several inductive proximity sensors picking up keyways on pump shafts. The problem is that the keyway is so small the pulse duration is smaller than the scan time (scan time currently 70 to 80 ms).
Normally, for zero speed detection I have a free running timer with a preset of X seconds. With a OSR on the Prox Pulse, I reset the timer. If the timer times out (DN), then declare a zero speed fault. This works until the pulse gets in sync with the scan time. Since the SLC only updates the Input Image table at the beginning of the scan, what happens is that by murphy's law, eventually the pulse syncs up enough with the scan time, that I'm missing the small pulse rise. So, the logic see's the Input off for many scans. Watching the timer accumulator, normally when out of sync, the value goes 0 - 1 each scan. However, when it finally syncs it will time up as high as 20 seconds (as high as I've gone so far to mask the issue). I've verified that the input is still flashing on the I/O module (non Remote I/O - Local Base so no RIO issues), so it is not a matter of missing the physical signal.
I've tried to use the immediate I/O Mask instruction, but all that does is move the point of updating the Input Image from the beginning of the scan to wherever the instruction is. Short of putting several of these sprinkled through the program with the same Alarm latching logic behind it, I'm drawing a blank. My suggestion is to install a half collar on the shaft so that we get 1/2 on, 1/2 off signal that should exceed the scan time of the processor. But I'm open to any software suggestions on how to attack this problem.
Thanks!
Okay, next problem. The customer installed several inductive proximity sensors picking up keyways on pump shafts. The problem is that the keyway is so small the pulse duration is smaller than the scan time (scan time currently 70 to 80 ms).
Normally, for zero speed detection I have a free running timer with a preset of X seconds. With a OSR on the Prox Pulse, I reset the timer. If the timer times out (DN), then declare a zero speed fault. This works until the pulse gets in sync with the scan time. Since the SLC only updates the Input Image table at the beginning of the scan, what happens is that by murphy's law, eventually the pulse syncs up enough with the scan time, that I'm missing the small pulse rise. So, the logic see's the Input off for many scans. Watching the timer accumulator, normally when out of sync, the value goes 0 - 1 each scan. However, when it finally syncs it will time up as high as 20 seconds (as high as I've gone so far to mask the issue). I've verified that the input is still flashing on the I/O module (non Remote I/O - Local Base so no RIO issues), so it is not a matter of missing the physical signal.
I've tried to use the immediate I/O Mask instruction, but all that does is move the point of updating the Input Image from the beginning of the scan to wherever the instruction is. Short of putting several of these sprinkled through the program with the same Alarm latching logic behind it, I'm drawing a blank. My suggestion is to install a half collar on the shaft so that we get 1/2 on, 1/2 off signal that should exceed the scan time of the processor. But I'm open to any software suggestions on how to attack this problem.
Thanks!