Hi Jon, Thanks for the clarifications, and sorry I forgot to mention your critical involvment when I asked the question. Also, who is this formal mr. Lemonnier guy?, I'm Maxime :)
>From what I read, I should have " set the encoder-index to true, and then watch for it to go false"? That is not what I did, I use encoder.07.index as an input, I don't write it. When I detect *index* goes to 1, I compute the delta, and wrtie 1 to* index-enable* so the encoder can be reset on next trigger. It is important for to be certain I'm doing it right. On Thu, May 17, 2018 at 12:05 PM, Jon Elson <el...@pico-systems.com> wrote: > On 05/17/2018 08:24 AM, andy pugh wrote: > >> It isn't clear from your description precisely when you want this to >> happen, but I imagine that choosing the conditions is also something >> easiest inside the custom component. >> > Let me explain what mr. Lemonnier is trying to do. > He has a signal from an external device. He wants to record the position > of an encoder when there is a pulse from that device. Now, the rub is he > wants to be moving the axes quickly, so that there are multiple encoder > counts/servo period. but, he wants the exact position recorded when the > pulse comes. > > So, after stewing over his problem for a while, I realized there was a way > to do it. Feed the encoder to TWO encoder counters. One works normally, > and is for position control under LinuxCNC. The other receives the > external pulse on the Z input. And, when the external pulse is expected, > turn on the index-enable pin of encoder. When the pulse comes, the encoder > counter will be zeroed, just like a spindle encoder on a G33.1 or an axis > when homing to the index pulse. Now, motion continues, and then the servo > thread triggers. The axis will have the position when the servo period > triggered, and the extra encoder counter will have the distance traveled > between the pulse on Z and when the servo period triggered. By calculating > axis position MINUS extra encoder, you get the axis position when the Z > pulse triggered the extra encoder to zero. > > So, a component needs to set the encoder-index to true, and then watch for > it to go false. When it sees the encoder-index go false, if does the > subtraction and stores the difference in a net. It then turns the > index-enable back to true. > > Jon > > > ------------------------------------------------------------ > ------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > _______________________________________________ > Emc-users mailing list > Emc-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/emc-users > ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users