Runaway z axis with steppers
- Subject: Runaway z axis with steppers
- From: Ray Henry <rehenry-at-up.net>
- Date: Sat, 7 Sep 2002 11:17:41 -0500
- Content-Type: Multipart/Mixed; boundary="------------Boundary-00=_H9T2LP0SWKOOW61MEYKL"
- Reply-To: rehenry-at-up.net
EMC List
I posted this a while back to the developers list at sourceforge but I
don't think that that list is working so I'll post it here.
Attached is an ini from Tim <tim.smith-at-electrolux.com.au> that does some
goofy stuff here. I'm not exactly going to call it a bug, rather the odd
behavior is the product of certain combinations of values in the ini file
when used with freqmod.o. The same behaviors are not obvious with
steppermod.
I'm started testing this with TNG with no machine attached to the
parport. I think I'd be afraid to start much of a machine with this setup
because it trips up the stepper math and creates an oscillator that tends
to push an axis slowly in a single direction -- even when no motion is
commanded. With the attached ini file, I see this behavior after a
couple of quick jogs of the Z axis.
I've also tested this behavior with BDI-2.16 and my Grizzly minimill and
it seems to behave the same as the TNG.
Here is what I did to exhibit the problem.
Startup using timsfreq.ini. (attached)
Start the machine and home out.
Start scripts->IO_Exercise to view parport 0x378. (default)
Issue a couple of quick jogs in Z
Once the problem shows up with the IO_Exercise display and I press estop,
the step pin seems to latch but the displayed position runs wild.
The problem seems to go away if scale is set about 20 with a proper
deadband. It also goes away or changes the way it works with larger
gains and different combinations of velocities and accelerations.
With some small adjustments, the problems seems to change into a simple
dither between adjacent steps but as it is, all of the steps are in the
same direction.
I need someone to see if they can reproduce this problem and work with me
to clearly define the nature of it.
Ray
; EMC controller parameters for generic controller. Make these what you need
; for your system.
; General section -------------------------------------------------------------
[EMC]
VERSION = $Revision: 1.2+ $
MACHINE = FREQMOD
NML_FILE = emc.nml
DEBUG = 0x7FFFFFFF
RS274NGC_STARTUP_CODE = G21
; Sections for display options ------------------------------------------------
[DISPLAY]
PLAT = nonrealtime
DISPLAY = tkemc
CYCLE_TIME = 0.200
HELP_FILE = doc/help.txt
POSITION_OFFSET = MACHINE
POSITION_FEEDBACK = COMMANDED
MAX_FEED_OVERRIDE = 1.2
PROGRAM_PREFIX = programs/
INTRO_GRAPHIC = emc.gif
INTRO_TIME = 2
; Task controller section -----------------------------------------------------
[TASK]
PLAT = nonrealtime
TASK = minimilltask
CYCLE_TIME = 0.010
; Part program interpreter section --------------------------------------------
[RS274NGC]
PARAMETER_FILE = emc.var
; Motion control section ------------------------------------------------------
[EMCMOT]
PLAT = realtime
EMCMOT = freqmod.o
STEPPING_TYPE = 0
SHMEM_KEY = 100
SHMEM_BASE_ADDRESS = 0x1F00000
STG_BASE_ADDRESS = 0x200
PARPORT_IO_ADDRESS = 0x378
COMM_TIMEOUT = 1.0
COMM_WAIT = 0.010
PERIOD = 0.000025
; Trajectory planner section --------------------------------------------------
[TRAJ]
AXES = 3
COORDINATES = X Y Z
HOME = 0 0 0
LINEAR_UNITS = 1
ANGULAR_UNITS = 1.0
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = 3.3333
MAX_VELOCITY = 10
DEFAULT_ACCELERATION = 5.0
MAX_ACCELERATION = 20.0
PROBE_INDEX = 0
PROBE_POLARITY = 1
; Axes sections ---------------------------------------------------------------
; First axis
[AXIS_0]
TYPE = LINEAR
UNITS = 1
HOME = 0.000
MAX_VELOCITY = 8
P = 10.000
I = 0.000
D = 0.000
FF0 = 0.000
FF1 = 1.000
FF2 = 0.000
BACKLASH = 0.000
; BACKLASH = 0.180
BIAS = 0.000
MAX_ERROR = 0.000
DEADBAND = 0.007
CYCLE_TIME = 0.001000
INPUT_SCALE = -80 0
OUTPUT_SCALE = -80.000 0.000
MIN_LIMIT = -600.0
MAX_LIMIT = 600.0
MIN_OUTPUT = -10
MAX_OUTPUT = 10
FERROR = 25.400
MIN_FERROR = 0.254
HOMING_VEL = 1.6667
HOME_OFFSET = 0.0
ENABLE_POLARITY = 0
MIN_LIMIT_SWITCH_POLARITY = 0
MAX_LIMIT_SWITCH_POLARITY = 0
HOME_SWITCH_POLARITY = 1
HOMING_POLARITY = 0
JOGGING_POLARITY = 1
FAULT_POLARITY = 1
; Second axis
[AXIS_1]
TYPE = LINEAR
UNITS = 1
HOME = 0.000
MAX_VELOCITY = 3
P = 10.000
I = 0.000
D = 0.00
FF0 = 0.000
FF1 = 1.0
FF2 = 0.000
BACKLASH = 0.35
BIAS = 0.000
MAX_ERROR = 0.000
DEADBAND = 0.007
CYCLE_TIME = 0.001000
INPUT_SCALE = -80 0
OUTPUT_SCALE = -80 0.000
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
MIN_OUTPUT = -10
MAX_OUTPUT = 10
FERROR = 25.400
MIN_FERROR = 0.2540
HOMING_VEL = 1.6667
HOME_OFFSET = 0.0
ENABLE_POLARITY = 0
MIN_LIMIT_SWITCH_POLARITY = 0
MAX_LIMIT_SWITCH_POLARITY = 0
HOME_SWITCH_POLARITY = 1
HOMING_POLARITY = 1
JOGGING_POLARITY = 1
FAULT_POLARITY = 1
; Third axis
[AXIS_2]
TYPE = LINEAR
UNITS = 1
HOME = 0.000
MAX_VELOCITY = 7
P = 10.000
I = 0.000
D = 0.00
FF0 = 0.000
FF1 = 1.00
FF2 = 0.000
BACKLASH = 0.000
BIAS = 0.000
MAX_ERROR = 0.000
DEADBAND = 0.05
CYCLE_TIME = 0.001000
INPUT_SCALE = -10.418 0
OUTPUT_SCALE = -10.418 0.000
MIN_LIMIT = -110.0
MAX_LIMIT = 110.0
MIN_OUTPUT = -10
MAX_OUTPUT = 10
FERROR = 25.400
MIN_FERROR = 0.2540
HOMING_VEL = 1.6667
HOME_OFFSET = 0.0
ENABLE_POLARITY = 0
MIN_LIMIT_SWITCH_POLARITY = 0
MAX_LIMIT_SWITCH_POLARITY = 0
HOME_SWITCH_POLARITY = 1
HOMING_POLARITY = 0
JOGGING_POLARITY = 1
FAULT_POLARITY = 1
; section for main IO controller parameters -----------------------------------
[EMCIO]
PLAT = nonrealtime
EMCIO = minimillio
CYCLE_TIME = 0.100
TOOL_TABLE = emc.tbl
PARPORT_IO_ADDRESS = 0x278
Date Index |
Thread Index |
Back to archive index |
Back to Mailing List Page
Problems or questions? Contact