Thanks Andy/Jon/Gene. To enable Quadrature do I merely turn on phase-A/B/index inputs and remove “encoder-counter-mode = True”?
Here’s a pic of the reverse circuit I’m making to enable M4 polarity reversal of the DC motor. On Fri, May 8, 2020 at 10:50 AM John Dammeyer <[email protected]> wrote: > The BASE_PERIOD value is in nanoseconds and the clue is _PERIOD which is > the inverse of FREQUENCY. > So > 1000Hz => 1/1000 = 0.001 or 1000 microseconds. > 2000Hz => 1/2000 = 0.0005 or 500 microseconds. > > As the frequency gets higher, the period gets smaller. > > JOHN > > > > -----Original Message----- > > From: Dan Henderson [mailto:[email protected]] > > Sent: May-08-20 4:42 AM > > To: Enhanced Machine Controller (EMC) > > Subject: Re: [Emc-users] Fluctuating RPM using CUI ATM 10 encoder > > > > Jon, > > Yours is 24,000 and equals to 41.6667kHz? Mine is 100,000 and equates to > 10 kHz. I�m confused by your math here? Thanks. > > > > Sent from my iPad > > > > > On May 7, 2020, at 9:39 PM, John Dammeyer <[email protected]> > wrote: > > > > > > ? > > >> > > >> From: Dan Henderson [mailto:[email protected]] > > > > > >> Thanks for that Jon. That helps explain this a bit further. I believe > the > > >> base period in the ini is set to 100,000. Not sure if that is nS or u > > >> value? Can this be change to suit or is it tied to the speed of the > system? > > > > > > Hi Dan, > > > All of my comments are based on what I think I've learned so far. If > anyone else sees an error please correct me. > > > > > > It's in nano-seconds and it's pretty big on your system and works out > to 10kHz. That's the max step rate you will get from your > > system as long as you have the addf parport.0.reset base-thread. > Otherwise the max step rate is half that. > > > > > > You generally get that value from running the program that tests your > system for latency. The jitter you get from that test will > > change how accurate that 24uS period actually is. > > > > > > From my INI file > > > BASE_PERIOD = 24000 <-- This is 24,000 nS or 24uS or 0.000024 seconds > and equivalent to 41.6667kHz. > > > SERVO_PERIOD = 1000000 <-- this is 1 million nano-seconds or 1mS > equivalent to 1kHz. > > > > > > So what does it mean? > > > From your HAL file. > > > > > > loadrt trivkins > > > loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD > servo_period_nsec=[EMCMOT]SERVO_PERIOD > > num_joints=[TRAJ]AXES > > > loadrt hal_parport cfg="0xe000 out 0xe800 out" > > > loadrt stepgen step_type=0,0,0 > > > loadrt encoder num_chan=1 > > > loadrt abs count=1 > > > loadrt scale count=1 > > > loadrt lowpass count=1 > > > loadrt near > > > loadrt pwmgen output_type=1 > > > > > > Inside each of these files is a function called > > > int rtapi_app_main(void) {...} > > > > > > In that function the command line arguments like step_type are parsed > and default values are set up. Here's how the Parallel > > port read function is configured. > > > /* make read function name */ > > > rtapi_snprintf(name, sizeof(name), "parport.%d.read", n); > > > /* export read function */ > > > retval = hal_export_funct(name, read_port, > &(port_data_array[n]),0, 0, comp_id); > > > with the names of the functions you add later in the HAL file with > commands like: > > > > > > addf parport.0.read base-thread > > > > > > each addf function with base-thread as an argument must run to > completion in less than 24uS on my system or there won't be > > time for anything else. Each of these programs, generally found in > the src/hal or src/emc path. > > > > > > The ones marked servo-thread run once every SERVO_PERIOD which is set > at 1mS. > > > > > > The PID runs once per 1mS. The stepgen runs every 24uS on my system. > > > > > > Hopefully this helps. So you know the 'why' rather than just do this > and tell us what happened. > > > > > > John Dammeyer > > > > > >> > > >>> On Thu, May 7, 2020 at 6:54 PM John Dammeyer <[email protected]> > wrote: > > >>> > > >>> > > >>> If you look at the source code for "encoders.c" John Kasunich's > excellent > > >>> documentation says this: > > >>> > > >>> "The driver exports variables for each counters inputs and output. > > >>> It also exports two functions. "encoder.update-counters" must be > > >>> called in a high speed thread, at least twice the maximum desired > > >>> count rate. "encoder.capture-position" can be called at a much > > >>> slower rate, and updates the output variables." > > >>> > > >>> So if your encoder provides a quadrature count of 200 lines (800 > > >>> quadrature) and you turn that spindle at 4700 RPM (78.3333RPS) then > 800 > > >>> pulses/turn * 78.33333 turns/sec = 62.666KHz so your BASE_PERIOD > must be > > >>> at least 125kHz (8,000 nS) > > >>> > > >>> In your working example 1200 RPM is 20 RPS * 800 = 16,000 and twice > that > > >>> is 32,000Hz (31,250 nS BASE_PERIOD). > > >>> What is your BASE_PERIOD set at in your INI file? > > >>> > > >>> Work it backwards. For example my PP HAL file says 24,000nS for the > BASE > > >>> THREAD (41,667kHz). Assuming I have a 200 line encoder on the > spindle then > > >>> 41,667kHz/2=20,8333 and divided by 800 = 26 RPS or 1562 RPM. Since > I want > > >>> to turn my spindle up to 3000 RPM that means either I have to > decrease the > > >>> BASE_PERIOD (increase frequency) or reduce the spindle encoder > count to > > >>> about 100. > > >>> > > >>> That means I need no more than 100 slots per rev on a disk. That's > doable > > >>> and from what I've read lots of people can thread with that. > > >>> > > >>> And, Sam Sokolik has been able to do rudimentary hex holes (although > > >>> slowly) with less than that. > > >>> > > >>> Now since I have a MESA 7i92H all the numbers will change. I've not > yet > > >>> looked at the MESA software. > > >>> > > >>> Haven't even really followed the entire path from a > > >>> G33.1 Z-0.55 K0.025 > > >>> to the Z axis motion in steps/second tracking spindle RPM. > > >>> > > >>> John Dammeyer > > >>> > > > > > > > > > > > > _______________________________________________ > > > Emc-users mailing list > > > [email protected] > > > https://lists.sourceforge.net/lists/listinfo/emc-users > > > > > > _______________________________________________ > > Emc-users mailing list > > [email protected] > > https://lists.sourceforge.net/lists/listinfo/emc-users > > > > _______________________________________________ > Emc-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/emc-users >
_______________________________________________ Emc-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/emc-users
