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

Reply via email to