On Thursday 17 May 2018 10:40:59 Maxime Lemonnier wrote: > Hi Gene, > > My use case has nothing to do with machining. I'm using a cnc mill as > a precise robot. For the benefit of an eventual future user with the > same use case, imagine you have a camera with a signal that triggers > at the begining of each capture, and that you're capturing during CNC > motion. suppose you want to the the PRECISE moment when the capture > started. Well se my previous message and use that code: > > net name0 ppmc.0.encoder.03.position mirror.0.actual #I acutaly used > linksp Apos-fb => mirror.0.actual > net name2 ppmc.0.encoder.07.position mirror.0.mirror > net name1 ppmc.0.encoder.07.index mirror.0.index > net name3 ppmc.0.encoder.07.index-enable mirror.0.enable > > ------------------- > component mirror "index-enable hack"; > pin in bit index; > pin in float actual; > pin in float mirror; > pin io bit enable; > pin out float result; > > function_; > license "GPL"; // indicates GPL v2 or later > ;; > > if(index == 1) > { > result = actual - mirror; > enable = 1; > } > > you will obtain > > > > the little plateaux in mirror.0.result are the position at which frame > started.
The idea I assume is to capture a few video frames of the pickup so you can analyze any errors in the pickup motion on a frame by frame basis. Or maybe find out why this instance was a miss-pick. Neat thinking. Interesting, thank you for sharing. > On Thu, May 17, 2018 at 10:24 AM, Gene Heskett <ghesk...@shentel.net> wrote: > > On Thursday 17 May 2018 08:34:27 Maxime Lemonnier wrote: > > > Hi all, > > > > > > I'm trying to implement a somewhat exotic behavior with EMC2. I > > > have a servo setup with two Pico Systems univpwm boards. I have > > > spare encoder channels I want to use to precisely checkpoint the > > > position of a channel when an external signal is triggered. So I > > > have, concretely, encoder.03's A and B wires connected to two > > > different univpwm channels (channels 3 and 7, so in HAL, > > > ppmc.0.encoder.03 and ppmc.encoder.07). > > > > > > encoder.03's Z wire is connected to channel 3 BUT NOT to channel > > > 7. My trigger is connected to channel 7's Z. > > > > > > I would like to configure HAL to simply zero-out channel 7 when it > > > receives the trigger pulse, then I would write a comp that output > > > the position at which the trigger was pulsed using the delta > > > between encoder 3 and 7. > > > > > > How could I achieve that? > > > > > > Thank you very much. > > > > Not exactly a solution, but from the man 9 encoder page, > > encoder.N.reset bit in > > When true, counts and position are reset to zero immediately. > > > > but you are zeroing the encoder generating the z pulse. And I don't > > grok the reason. I could see useing 3's z to zero the #7 encoder for > > some purpose on a dual motor gantry axis, but since I don't have one > > of those critters, its not something I've needed to do. Perhaps you > > could expand on what the result should be? > > > > A pair of mux2's used as sample-holds, feeding a sum2 with one > > inputs scale setp'd to -1, will give you a diff between the > > encoders, but not knowing the reason, the control of the mux2.sel's > > will be up to you to 'net' up in your .hal files. > > > > Because there is intertia in the mechanicals slowing the turn-around > > time at the bottom of a g33.1 rigid tap, something I usually do by > > wrapping it in a peck cycle because the G0704's draw bolt is such a > > puny thing I can't grab a tap by the shank and stop the slippage, I > > am useing 2 mux2's as sample-hold's, feeding the sum2 with one > > inputs scale set to -1.000000, each mux2's active input feed from > > encoder.0.position, but one mux2.sel is tied to motion's reverse > > signal freezing it when motion issues the spindle-reverse command, > > and the 2nd mux2.sel is watching encoder.0.velocity to detect that > > the spindle has actually moved one count in reverse. The sum2 output > > is then the difference in counts. With a one count diff as the error > > budget. Thats 1.5 degrees of spindle rotation on the Sheldon but a > > very small fraction of a degree on the G0704 due to the location of > > the encoders a/b signals. There's more of course so the axis display > > is stable but thats the gist of it. > > > > Without knowing more, I can't suggest more. > > > > -- > > Cheers, Gene Heskett > > -- > > "There are four boxes to be used in defense of liberty: > > soap, ballot, jury, and ammo. Please use in that order." > > -Ed Howdershelt (Author) > > Genes Web page <http://geneslinuxbox.net:6309/gene> > > > > ------------------------------------------------------------ > > ------------------ > > 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 -- Cheers, Gene Heskett -- "There are four boxes to be used in defense of liberty: soap, ballot, jury, and ammo. Please use in that order." -Ed Howdershelt (Author) Genes Web page <http://geneslinuxbox.net:6309/gene> ------------------------------------------------------------------------------ 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