On 01/01/2014 10:43 PM, Jon Elson wrote: > On 01/01/2014 02:14 PM, Ed wrote: >> Encoders are on the end of the screw, 2-1 belt drive from motor, 1000 >> line/4000 count >> > Assuming 5 TPI screws, that is 4000 * 5 = 20,000 counts/inch. > One comment is with the encoders on the screw, the timing belt > needs to be set very tight, so that the motor shaft and the > leadscrew > follow with minimal divergence.
X motor was changed in case that was the problem and the tension was checked at that time. > Hmm, this is very strange. The only thing that should have > an asymmetry is the current limit. I think you need to run the > Halscope and observe the output of the PID routine, the > velocity and the following error to see what the problem is. > You can post the graphs or email them to me if you can't > interpret them. Also, see > <http://wiki.linuxcnc.org/cgi-bin/wiki.pl?PWM_Servo_Amplifiers> > for some info on tuning. I printed out the above and will set up Halscope to checkout some of the outputs. > I don't understand this asymmetric > thing. Yah, it is weird. All axis resist movement in the positive direction strongly and the amp faults easily in the negative. If I apply pressure very slowly in the negative it will resist somewhat but a rapid movement will fault it. > You might want to check your wiring for any difference > from the sample schematic. Two of us have checked the schematic to diagram then physically followed wires and compared to the Hardinge that is running. > Also, what are you using for a 12 V > power supply for the UPC and servo amps? It is an old XT or PC supply that checks out at 12.06 Volts. >>> You might want to step back and >>> test your motors for performance. >> They ran fine (72 IPM)when hooked to 320 gecko's at half the voltage. > OK, that's a good data point. >> 290 000 Ohms for 10 Amps > That sounds reasonable. Are you using configs files derived > from > the univpwm sample config? What has been changed from the > sample file? > The Linuxcnc version is 2.5.3 Following is the ini file: > # EMC controller parameters for UPC with threading and pendant > > # General note: Comments can either be preceded with a # or ; - either is > # acceptable, although # is in keeping with most linux config files. > > > # General section > ------------------------------------------------------------- > [EMC] > > # Version of this INI file > VERSION = $Revision: 1.6 $ > > # Name of machine, for use with display, etc. > MACHINE = LinuxCNC-UPC-Thread-Pendant > > # Name of NML file to use, default is emc.nml > #NML_FILE = emc.nml > > # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for > others > DEBUG = 0x00000001 > # DEBUG = 0x00000007 > # DEBUG = 0x7FFFFFFF > > # Sections for display options > ------------------------------------------------ > [DISPLAY] > > # Name of display program, e.g., xemc > DISPLAY = axis > # DISPLAY = usrmot > # DISPLAY = tkemc > # Cycle time, in seconds, that display will sleep between polls > CYCLE_TIME = 0.100 > > # Path to help file > HELP_FILE = doc/help.txt > > # Initial display setting for position, RELATIVE or MACHINE > POSITION_OFFSET = RELATIVE > > # Initial display setting for position, COMMANDED or ACTUAL > POSITION_FEEDBACK = ACTUAL > > # Highest value that will be allowed for feed override, 1.0 = 100% > MAX_FEED_OVERRIDE = 1.2 > > # Prefix to be used > PROGRAM_PREFIX = /home/ed/linuxcnc/nc_files > > # Introductory graphic > INTRO_GRAPHIC = linuxcnc.gif > INTRO_TIME = 2 > > # Enable popup balloon help > BALLOON_HELP = 1 > > #spindle speed VCP > PYVCP = spindle.xml > > # Task controller section > ----------------------------------------------------- > [TASK] > > # Name of task controller program, e.g., bridgeporttask > TASK = milltask > > # Cycle time, in seconds, that task controller will sleep between polls > CYCLE_TIME = 0.010 > > # Part program interpreter section > -------------------------------------------- > [RS274NGC] > > # File containing interpreter variables > PARAMETER_FILE = univpwm.var > > # Motion control section > ------------------------------------------------------ > [EMCMOT] > > EMCMOT = motmod > > # Key for real OS shared memory, e.g., for simulated motion > SHMEM_KEY = 111 > > # Timeout for comm to emcmot, in seconds > COMM_TIMEOUT = 1.0 > > # Interval between tries to emcmot, in seconds > COMM_WAIT = 0.010 > > # Base task period, in nanoseconds - this is the fastest thread in the > machine > BASE_PERIOD = 1000000 > # Servo task period, in nanoseconds - will be rounded to an integer > multiple > # of BASE_PERIOD > SERVO_PERIOD = 1000000 > # Trajectory Planner task period, in nanoseconds - will be rounded to an > # integer multiple of SERVO_PERIOD > TRAJ_PERIOD = 10000000 > > # Hardware Abstraction Layer section > -------------------------------------------------- > [HAL] > > # The run script first uses halcmd to execute any HALFILE > # files, and then to execute any individual HALCMD commands. > # > > # list of hal config files to run through halcmd > # files are executed in the order in which they appear > HALFILE = univpwm_load.hal > > HALFILE = univpwm_servo.hal > HALFILE = univpwm_io.hal > HALFILE = univpwm_motion.hal > HALFILE = pendant.hal > POSTGUI_HALFILE = spindle.hal > > # list of halcmd commands to execute > # commands are executed in the order in which they appear > #HALCMD = save neta > > # Trajectory planner section > -------------------------------------------------- > [TRAJ] > > AXES = 3 > # COORDINATES = X Y Z R P W > COORDINATES = X Y Z > HOME = 0 0 0 > LINEAR_UNITS = inch > ANGULAR_UNITS = degree > CYCLE_TIME = 0.010 > DEFAULT_VELOCITY = 0.15 > MAX_VELOCITY = 1.20 > DEFAULT_ACCELERATION = 5.0 > MAX_ACCELERATION = 5.0 > PROBE_INDEX = 0 > PROBE_POLARITY = 1 > > # Axes sections > --------------------------------------------------------------- > > # Important note about OUTPUT_SCALE and PWM_OUTPUT_SCALE > # For this configuration, OUTPUT_SCALE is not used, because > # EMC always overwrites it on shutdown. So PWM_OUTPUT_SCALE > # was added to hold the scaling. Someday the OUTPUT_SCALE > # issue may be fixed, and PWM_OUTPUT_SCALE will go away. > > # Scaling: The PWM_OUTPUT_SCALE should be the speed > # in UNITS/second (inches/sec or mm/sec) that would be > # reached if the PWM duty cycle was 100%. It depends on > # the power supply voltage, motor RPM/Volt factor, and > # gearing/screw pitch. For example: > # > # Power supply voltage 50V > # Motor RPM/V 1000RPM/24V > # Gearing: 2 motor revs per 1 screw rev > # Screw pitch: 0.2" per turn > # > # Max motor speed = 50V * 1000RPM/24V = 2083 RPM > # Max screw speed = 2083RPM * 1(screw)/2(motor) = 1041RPM > # Max table speed = 1041RPM * 0.2"/turn = 208 in/min > # Max table speed = 208 in/min / 60 seconds = 3.47 inches/sec > # > # Since max speed is reached at 100% duty cycle, PWM_OUTPUT_SCALE > # should be 3.47 > > # First axis > [AXIS_0] > > TYPE = LINEAR > UNITS = 0.03937007874016 > HOME = 0.000 > MAX_VELOCITY = 1.20 > MAX_ACCELERATION = 1.0 > PID_MAX_VEL = 1.2 > BACKLASH = 0.000 > CYCLE_TIME = 0.001000 > INPUT_SCALE = 20000 > OUTPUT_SCALE = 1 > PWM_OUTPUT_SCALE = 3.33 > MIN_LIMIT = -10.0 > MAX_LIMIT = 10.0 > FERROR = 0.2 > MIN_FERROR = 1 > HOME_OFFSET = 0.0 > HOME_SEARCH_VEL = 0 > HOME_LATCH_VEL = 0 > HOME_USE_INDEX = YES > HOME_IGNORE_LIMITS = NO > DEADBAND = 0.000075 > # 2e-05 > P = 100 > I = 0 > D = 0 > BIAS = 0 > FF0 = 0 > FF1 = 0 > FF2 = 0 > > > # Second axis > [AXIS_1] > > TYPE = LINEAR > UNITS = 0.03937007874016 > HOME = 0.000 > MAX_VELOCITY = 1.20 > MAX_ACCELERATION = 0.5 > PID_MAX_VEL = 1.2 > BACKLASH = 0.000 > CYCLE_TIME = 0.001000 > INPUT_SCALE = 20000 > OUTPUT_SCALE = -1 > PWM_OUTPUT_SCALE = 3.3 > MIN_LIMIT = -10.0 > MAX_LIMIT = 10.0 > FERROR = 0.2 > MIN_FERROR = 1 > HOME_OFFSET = 0.0 > HOME_SEARCH_VEL = 0.0 > HOME_LATCH_VEL = 0.0 > HOME_USE_INDEX = NO > HOME_IGNORE_LIMITS = NO > DEADBAND = 0.000075 > # 7e-06 > P = 100 > I = 0 > D = 0 > BIAS = 0 > FF0 = 0 > FF1 = 0 > FF2 = 0 > > # Third axis > [AXIS_2] > > TYPE = LINEAR > UNITS = 0.03937007874016 > HOME = 0.0 > MAX_VELOCITY = 1.20 > MAX_ACCELERATION = 3.0 > PID_MAX_VEL = 1.2 > BACKLASH = 0.000 > CYCLE_TIME = 0.001000 > INPUT_SCALE = 20000 > OUTPUT_SCALE = 1 > PWM_OUTPUT_SCALE = 3.3 > MIN_LIMIT = -10.0 > MAX_LIMIT = 10.0 > FERROR = 0.2 > MIN_FERROR = 0.5 > HOME_OFFSET = 0.0 > HOME_SEARCH_VEL = 0.0 > HOME_LATCH_VEL = 0.0 > HOME_USE_INDEX = NO > HOME_IGNORE_LIMITS = NO > DEADBAND = 0.000075 > P = 100 > I = 0 > D = 0 > BIAS = 0 > FF0 = 0 > FF1 = 0.3 > FF2 = 0.007 > > > > # section for main IO controller parameters > ----------------------------------- > [EMCIO] > > # Name of IO controller program, e.g., io > EMCIO = io > > # cycle time, in seconds > CYCLE_TIME = 0.100 > > # tool table file > TOOL_TABLE = univpwm.tbl > > # section for external NML server parameters > ---------------------------------- > [EMCSERVER] > # Uncomment the following line if you need to run a remote GUI. > # EMCSERVER = emcsvr > ------------------------------------------------------------------------------ Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk _______________________________________________ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users