Hi Les, The drives accept step/direction from the USC board to command position, not velocity. The encoders are pass-through to the USC board and then to LinuxCNC.
Thanks! Matt > On Jun 28, 2021, at 9:02 AM, Les Newell <les.new...@fastmail.co.uk> wrote: > > Hi Matthew, > > First of all, how are your drives configured? Is the step/direction > commanding position to the drives or velocity? If you are using position (the > most common with step/dir) all of your PID tuning should be done in the > drive. Do you have feedback to LCNC from the encoders? > > Les > > On 28/06/2021 01:07, Matthew Herd wrote: >> Hi All, >> >> It’s been a long time, but I finally got my servos mounted on my mill today. >> While attemping to tune them I encountered great frustration. I have 1kW >> Yaskawa clone AC servo motors and drives that accept step and direction >> signals and provide encoder feedback which is currently interfaced to the >> Pico Systems USC board. I set the acceleration and velocity values in my >> ini file to what I thought were plausible and set the ferror to 1. I was >> able to move the axes successfully, so I started tuning the X axis (joint >> 0). That proved to be a debacle. I attempted to tune by turning P up until >> it oscillated, backing off to 60%, then tuning FF1. Although P could be >> tuned effectively, no amount of FF1 made any difference. Typical >> performance was that ferror increased as long as I held the jog button at a >> speed of 60 IPM. Then I started increasing the max velocity for Axis X to >> nearly double the max velocity for Joint 0. This finally caused the ferror >> to stabilize while jogging and I was able to tune FF1 to achieve an ferror >> of around 0.002 during steady state moves. I had some substantial >> oscillations at start and stop, but overall much improved. I presume the >> ferror values is in inches since I’m using inches for my machine units. I >> turned up the jog speed to ~120IPM and tweaked FF1 a bit further, ending up >> at 17. The ferror remained ~0.002. I then turned up the jog speed to >> 250IPM and the ferror was completely unstable. The machine doesn’t seem to >> be accelerating as quickly as I’d expect, and tuning seems to be extremely >> challenging. Extended jogs tend to result in the machine moving awhile >> after I release the button and ferror is all over the place (except below >> 120IPM with the settings below). My ini data is copied below. It’s derived >> from the sample config for the USC board. Given all this, I have a few >> questions. >> >> What is a reasonable acceleration value for a Bridgeport BOSS5 (Series 1 >> type factory CNC machine) with 1kW 5Nm AC servos? Are my accelerations too >> low? Raising them by orders of magnitude seemed to have no effect. I >> freely admit I’ve been too lazy to try to calculate it. >> Why do I seem to need so much headroom on the Axis X max velocity over the >> Joint 0 max velocity? I thought this was supposed to be 5-25%, but that was >> insufficient too allow FF1 to have any impact. >> Does the "PID_MAX_VEL" parameter do anything? >> Is my ferror the actual encoder feedback or is it the ferror from the step >> generator? I’m trying to determine if the control loop in the drive is in >> need of additional tuning and not sure how to identify which loop is the >> problem. I.e. LinuxCNC’s control loop or the drive control loop? >> What is a good strategy for finding the max acceleration and tuning the >> drives? >> >> Thanks in advance for your input! >> >> Matt >> >> >> My Actual INI below: >> # First axis >> [AXIS_X] >> MIN_LIMIT = -0.20 >> MAX_LIMIT = 17.80 >> MAX_VELOCITY = 15.0 >> MAX_ACCELERATION = 15 >> >> [JOINT_0] >> TYPE = LINEAR >> HOME = 0.000 >> MAX_VELOCITY = 8.33 >> MAX_ACCELERATION = 10.0 >> PID_MAX_VEL = 150 >> BACKLASH = 0.000 >> # INPUT_SCALE sets the resolution of the encoder in user units >> # for instance a 500 line encoder directly connected to a 5 TPI leadscrew >> # would give 500 * 4 (for quadrature) * 5 = 10000 >> INPUT_SCALE = -50000 >> # OUTPUT_SCALE sets the resolution of the step generator >> # for a Gecko320 with no pulse multiplier, it should be the same magnitude >> # as INPUT_SCALE, but the arithmetic sign might need to be opposite >> # if it runs away. >> # if you have an encoder on a stepper motor, then this should be calculated >> # by number of (micro)steps/rev X the leadscrew pitch, and may not match the >> # INPUT_SCALE. >> OUTPUT_SCALE = -12500 >> MIN_LIMIT = -0.20 >> MAX_LIMIT = 17.80 >> FERROR = 01.010 >> MIN_FERROR = 1.001 >> HOME_OFFSET = -0.10 >> HOME_SEARCH_VEL = -0.160 >> HOME_LATCH_VEL = -0.02 >> HOME_USE_INDEX = YES >> HOME_IGNORE_LIMITS = NO >> DEADBAND = 0.000126 >> P = 1200 >> I = 0 >> D = 0 >> BIAS = 0 >> FF0 = 0 >> FF1 = 17 >> FF2 = 0 >> _______________________________________________ >> Emc-users mailing list >> Emc-users@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/emc-users > > > > > > _______________________________________________ > Emc-users mailing list > Emc-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/emc-users _______________________________________________ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users