I have spent many hours attempting to tune and run a machine with Granite Devices VSD-E drivers connected to Keling KL34-180-90 motors with CUI AMT-102 encoders on them. The control software is EMC2 but EMC pc is connected to a Mesa 7i43 fpga card (and also 7i42 buffer card) that is generating the step/dir pulse train. We would have very nice tuning graphs throughout, and after tuning, the Granite would move the motors smoothly when using moveinc commands.
Then when reconnecting to EMC control software the motor would make bad noises like it was straining to move the axis. It didn't stutter like losing steps, but noisy like bad tuning. The Granite would always fault at some point, even at low speeds, and especially at high speeds, with an "Over Current (Due to bad turning)" indication. We put an oscilloscope (as well as a logic analyzer) on the step and dir pins while the drive was running and the pulse train was flawless. It was beautiful and noise free, at exactly the expected frequency and no lost pulses. We even put the scope on each side of a 100ohm resistor on the Mesa input side in order to measure the voltage (and hence determine the current) and were seeing the expected current draw from the Granite opto and also saw that the Mesa was fully shutting off (as one would expect). Again, flawless, clean waveform. We are running the Mesa card in open collector mode and are feeding the cathode side of the Granite opto to the Mesa IO pin. The anode side is pulled up to 5v.
After hours of re-tuning and debugging we finally gave up and decided to connect up Mach3 running of a different pc with a parallel port breakout board (XYDrive XD-14) and let it generate the steps. We got the same behavior. At even low speeds the drive would fault with the same indication.
Sort of by accident we decided to turn on "Enable Input Filter". We specifically didn't want to turn it on as it mentions that using this is not desired if you are closing the loop outside the Granite (which we are with EMC) but we tried it anyway. And lo and behold all the problems went away. ??
Why would this be? Why, when we have strong flawless pulse trains, would we need input filtering? We want EMC to close the control loop, and it seems to do fine in the little testing we have done thus far, but are we going to run into problems due to needing to have input filtering on? What can we do in order not to need it?