On Tue, 20 Dec 2011 11:49:42 -0600, Jon Elson wrote: > Chris Radek wrote: >> There are lots of ways encoder hardware can >> detect problems: invalid quadrature transitions, extra or missing >> counts between indexes, and maybe more. If the encoder hardware >> knows >> pulses per rev (which is not the current scale value it knows) it >> can >> detect missing index too. A non-emc machine I worked on would >> detect >> missing index when homing (it stopped when there should have been >> one >> by now) - emc can't do this currently and it will search forever for >> an index. >> > It would need to have an error threshold. When the spindle starts or > reverses, the > counts per rev will be off. Also if the spindle is moved by hand it > could throw the > count off. Invalid quadrature transitions could be normal whenever > the > spindle is > not running, ie. typical dithering plus electrical noise. I think > both > the Mesa and > I know the Pico Systems encoder counters have digital filters to > suppress invalid > transitions of short duration. > > The Pico Systems encoder model in the FPGA hardware has a latch that > is > set by the > rising edge of the index pulse, and is reset by reading the index > register. So, the driver > could sample the position count every time there is an index pulse > detected, and > compare to position at the last index. This will NOT give a number > identical to the encoder > counts/rev except at very low speeds, however. Any time the encoder > is > turning above > one count per servo period, it can come up short or long. So, you > would > have to exceed an > error margin before declaring a fault. On an axis, particularly, > whenever the encoder > reverses direction, you would get a difference count that was > approximately zero, > because the second index pulse is returning to the same axis position > as > the last index. > > So, this sort of thing is non-trivial, and you have to cover all the > cases to avoid false > trips.
I could see having that functionality as a compilable/loadable diagnostic test so that it would not have to run all the time (ie saving CPU cycles). I like the proposed functionality. EBo -- ------------------------------------------------------------------------------ Write once. Port to many. Get the SDK and tools to simplify cross-platform app development. Create new or port existing apps to sell to consumers worldwide. Explore the Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join http://p.sf.net/sfu/intel-appdev _______________________________________________ Emc-developers mailing list Emc-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-developers