CAD CAM EDM DRO - Yahoo Group Archive

Re: EMC stg2mod.o and problem with homing

Posted by Asim Khan
on 2003-10-12 08:34:30 UTC
Hi Jon, Les, Paul, Ray and all other group members!

I had checked the var file which is being loaded by my emc setup. It
has all variables set to zero except 5220 variable which is set to 1
and i am still unable to figure it out whats wrong is happenging with
my emc system?

Folowing is the condition of GUI setting before i home:
Actual position display is selected
Machine Cordinates is selected
Default Units: mm

When i press home button for any axis the axis goes to touch home
switch, touches it, then moves in opposite direction to search for
index pulse (i know this all is normal), when index signal is found it
stops, turns the position counter of the axis homed to 0.0167 (or any
other value if i have closed the software and re-launched the program)
These offset values are always something under .1 mm.
Now when i selected the "Commanded" position display setting then
i could see the axis home position to exact 0.0000 mm
these offset values getting added in the actual position display are
different for each axis. and are different when program is re-launched

I've already tuned all the three axes. All the three axes jog upto
300ipm without any following error and without any much big noise.
my min_ferror value was 0.005

Do you think i should set min_ferror to some very small value?
i know this value is in inches. what should be the value for
min_ferror for input_scale value of 250000 (10000CPR x 2.5 pitch)
my previous ecperience tells me if we lower min_ferror value then the
tuning gets much difficult, axis speed reduces and we get following
errors.

I was having my position counters counting in reverse so i had put a
negative sign (-) for my input_scale values. is it permisible to do
that? otherwise i had to swap my encoder A and B channels, so i
preffered the changes in ini.

One more thing i observed was this fact that when i commanded in mdi
mode to do G01 X5.000 the same offset that was found in home position
was added and i saw the target position as X5.0167 (relative, actual
display)

As i already told I have another machine with the same emc, stg2
model -II but with 800 CPR encoders and INPUT_SCALE = 4000, but i
never saw the offset value getting added in the actual position
display. i have min_ferror (0.005) for this machine same as on this
problematic machine.

i am writing here my ini file contents:

; EMC controller parameters for generic controller. Make these what
you need
; for your system.

; General section ----------------------------------------------------
---------
[EMC]

; Version of this INI file
VERSION = $Revision: 1.10 $

; Name of machine, for use with display, etc.
MACHINE = Generic

; Name of NML file to use, default is emc.nml
NML_FILE = excello.nml

; Debug level, 0 means no messages. See emc/src/emcnml/emcglb.h for
others
DEBUG = 0x00000003
; DEBUG = 0x7FFFFFFF

; Startup codes for RS-274-NGC interpreter
RS274NGC_STARTUP_CODE = G21

; Sections for display options ---------------------------------------
---------
[DISPLAY]

; Platform for GUI
PLAT = nonrealtime

; Name of display program, e.g., xemc
; DISPLAY = xemc
DISPLAY = tkemc
; DISPLAY = yemc
; DISPLAY = keystick
; DISPLAY = emcpanel

; Cycle time, in seconds, that display will sleep between polls
CYCLE_TIME = 0.200

; 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 = programs/

; Introductory graphic
INTRO_GRAPHIC = excello.gif
INTRO_TIME = 5

; Units for display, default would be AUTO
LINEAR_UNITS = AUTO
; LINEAR_UNITS = INCH
; LINEAR_UNITS = MM
; LINEAR_UNITS = CM
ANGULAR_UNITS = AUTO
; ANGULAR_UNITS = DEG
; ANGULAR_UNITS = RAD
; ANGULAR_UNITS = GRAD

; Enable popup balloon help
BALLOON_HELP = 1

; Task controller section --------------------------------------------
---------
[TASK]

; Platform for task controller
PLAT = nonrealtime

; Name of task controller program, e.g., bridgeporttask
TASK = bridgeporttask
; TASK = minimilltask

; 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 = excello.var

; Motion control section ---------------------------------------------
---------
[EMCMOT]

; Platform for motion
PLAT = realtime
; PLAT = nonrealtime

; Name of motion control program
; EMCMOT = steppermod.o
; EMCMOT = freqmod.o
; EMCMOT = stgmod.o
; EMCMOT = stg8mod.o
; EMCMOT = emcmotsim
EMCMOT = newstgmod.o

; Key for real OS shared memory, e.g., for simulated motion
SHMEM_KEY = 100

; Base address for physical shared memory, e.g., for real-time motion.
; Note that if you change this, you may need to change OS parameters,
e.g.,
; /etc/lilo.conf
SHMEM_BASE_ADDRESS = 0x1F00000
; SHMEM_BASE_ADDRESS = 0x3F00000

; Base address of Servo To Go board
STG_BASE_ADDRESS = 0x200
; STG_BASE_ADDRESS = 0x300

; Address for parallel port used for steppers
PARPORT_IO_ADDRESS = 0x278

; 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 seconds
; Don't use this if steppermot is being used
; PERIOD = 0.000016

; Address for motion IO, synchronized with motion start/end
; MOTION_IO_ADDRESS = 0x3BC

; Trajectory planner section -----------------------------------------
---------
[TRAJ]

AXES = 3
; COORDINATES = X Y Z R P W
COORDINATES = X Y Z
HOME = 0 0 0
LINEAR_UNITS = 0.03937007874016
ANGULAR_UNITS = 1.0
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = 0.0167
MAX_VELOCITY = 3.333
DEFAULT_ACCELERATION = 20.0
MAX_ACCELERATION = 20.0
PROBE_INDEX = 0
PROBE_POLARITY = 1

; Axes sections ------------------------------------------------------
---------

; First axis
[AXIS_0]

TYPE = LINEAR
UNITS = 0.03937007874016
HOME = 0.000
MAX_VELOCITY = 5.000
P = 60.000
I = 1.000
D = 0.000
FF0 = 0.000
FF1 = 0.900
FF2 = 0.000
BACKLASH = 0.000
BIAS = 0.000
MAX_ERROR = 0.000
DEADBAND = 0.000
CYCLE_TIME = 0.001000
INPUT_SCALE = -25000 0
OUTPUT_SCALE = 1.000 0.000
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
MIN_OUTPUT = -10
MAX_OUTPUT = 10
FERROR = 1.000
MIN_FERROR = 0.005
HOMING_VEL = 0.5
HOME_OFFSET = 0.0
ENABLE_POLARITY = 0
MIN_LIMIT_SWITCH_POLARITY = 0
MAX_LIMIT_SWITCH_POLARITY = 0
HOME_SWITCH_POLARITY = 0
HOMING_POLARITY = 0
JOGGING_POLARITY = 1
FAULT_POLARITY = 0
; Parameters for Inland Motor BMHS-0701 X 20
TORQUE_UNITS = OZ_IN
ARMATURE_RESISTANCE = 1.10
ARMATURE_INDUCTANCE = 0.0120
BACK_EMF_CONSTANT = 0.0254
ROTOR_INERTIA = 0.0104
DAMPING_FRICTION_COEFFICIENT = 0.083
SHAFT_OFFSET = 0
REVS_PER_UNIT = 10
; Parameters for generic amplifier
AMPLIFIER_GAIN = 1
MAX_OUTPUT_CURRENT = 10
LOAD_RESISTANCE = 1
; parameters for generic encoder
;COUNTS_PER_REV = 4096
COUNTS_PER_REV = 10000

; Second axis
[AXIS_1]

TYPE = LINEAR
UNITS = 0.03937007874016
HOME = 0.000
MAX_VELOCITY = 5.000
P = 60.000
I = 1.000
D = 0.000
FF0 = 0.000
FF1 = 0.900
FF2 = 0.000
BACKLASH = 0.000
BIAS = 0.000
MAX_ERROR = 0.000
DEADBAND = 0.000
CYCLE_TIME = 0.001000
INPUT_SCALE = -25000 0
OUTPUT_SCALE = 1.000 0.000
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
MIN_OUTPUT = -10
MAX_OUTPUT = 10
FERROR = 1.000
MIN_FERROR = 0.005
HOMING_VEL = 0.5
HOME_OFFSET = 0.0
ENABLE_POLARITY = 0
MIN_LIMIT_SWITCH_POLARITY = 0
MAX_LIMIT_SWITCH_POLARITY = 0
HOME_SWITCH_POLARITY = 0
HOMING_POLARITY = 1
JOGGING_POLARITY = 1
FAULT_POLARITY = 0
; Parameters for Inland Motor BMHS-0701 X 20
TORQUE_UNITS = OZ_IN
ARMATURE_RESISTANCE = 1.10
ARMATURE_INDUCTANCE = 0.0120
BACK_EMF_CONSTANT = 0.0254
ROTOR_INERTIA = 0.0104
DAMPING_FRICTION_COEFFICIENT = 0.083
SHAFT_OFFSET = 0
REVS_PER_UNIT = 10
; Parameters for generic amplifier
AMPLIFIER_GAIN = 1
MAX_OUTPUT_CURRENT = 10
LOAD_RESISTANCE = 1
; parameters for generic encoder
;COUNTS_PER_REV = 4096
COUNTS_PER_REV = 10000

; Third axis
[AXIS_2]

TYPE = LINEAR
UNITS = 0.03937007874016
HOME = 0.000
MAX_VELOCITY = 5.000
P = 60.000
I = 1.000
D = 0.000
FF0 = 0.000
FF1 = 0.900
FF2 = 0.000
BACKLASH = 0.000
BIAS = 0.000
MAX_ERROR = 0.000
DEADBAND = 0.000
CYCLE_TIME = 0.001000
INPUT_SCALE = -25000 0
OUTPUT_SCALE = 1.000 0.045
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
MIN_OUTPUT = -10
MAX_OUTPUT = 10
FERROR = 1.000
MIN_FERROR = 0.005
HOMING_VEL = 0.5
HOME_OFFSET = 0.0
ENABLE_POLARITY = 0
MIN_LIMIT_SWITCH_POLARITY = 0
MAX_LIMIT_SWITCH_POLARITY = 0
HOME_SWITCH_POLARITY = 0
HOMING_POLARITY = 1
JOGGING_POLARITY = 1
FAULT_POLARITY = 0
; Parameters for Inland Motor BMHS-0701 X 20
TORQUE_UNITS = OZ_IN
ARMATURE_RESISTANCE = 1.10
ARMATURE_INDUCTANCE = 0.0120
BACK_EMF_CONSTANT = 0.0254
ROTOR_INERTIA = 0.0104
DAMPING_FRICTION_COEFFICIENT = 0.083
SHAFT_OFFSET = 0
REVS_PER_UNIT = 10
; Parameters for generic amplifier
AMPLIFIER_GAIN = 1
MAX_OUTPUT_CURRENT = 10
LOAD_RESISTANCE = 1
; parameters for generic encoder
;COUNTS_PER_REV = 4096
COUNTS_PER_REV = 10000

; section for main IO controller parameters --------------------------
---------
[EMCIO]

; Platform for IO controller
PLAT = nonrealtime

; Name of IO controller program, e.g., bridgeportio
EMCIO = bridgeportio
; EMCIO = minimillio
; EMCIO = simio

; cycle time, in seconds
CYCLE_TIME = 0.100

; tool table file
TOOL_TABLE = excello.tbl

; address for parallel port used for auxiliary IO
PARPORT_IO_ADDRESS = 0x378

; wait times in seconds for spindle brake, release
SPINDLE_OFF_WAIT = 1.0
SPINDLE_ON_WAIT = 1.5

; external digital inputs, outputs are always 0 for 0V, 1 for 5/24V

; digital in bits

ESTOP_SENSE_INDEX = 1
LUBE_SENSE_INDEX = 2

; digital in polarity, 0 is inverted, 1 is normal
; controller compares with polarity, equal means on, not equal means
off

ESTOP_SENSE_POLARITY = 1
LUBE_SENSE_POLARITY = 1

; digital out bits

SPINDLE_FORWARD_INDEX = 1
SPINDLE_REVERSE_INDEX = 0
MIST_COOLANT_INDEX = 6
FLOOD_COOLANT_INDEX = 7
SPINDLE_DECREASE_INDEX = 8
SPINDLE_INCREASE_INDEX = 9
ESTOP_WRITE_INDEX = 10
SPINDLE_BRAKE_INDEX = 11

; analog out bits

SPINDLE_ON_INDEX = 3

; digital out polarity, 0 is inverted, 1 is normal
; controller writes the polarity to turn on, opposite of polarity to
turn off

SPINDLE_FORWARD_POLARITY = 0
SPINDLE_REVERSE_POLARITY = 0
MIST_COOLANT_POLARITY = 0
FLOOD_COOLANT_POLARITY = 0
SPINDLE_DECREASE_POLARITY = 1
SPINDLE_INCREASE_POLARITY = 1
ESTOP_WRITE_POLARITY = 1
SPINDLE_BRAKE_POLARITY = 0
SPINDLE_ENABLE_POLARITY = 1

; section for external NML server parameters -------------------------
---------
[EMCSERVER]

; Name of NML server, e.g., emcsvr; if not found then none will run
; EMCSERVER = emcsvr

; section for emc stripchart parameters -----------------------------
-----
[EMCSTRIP]

; Name of strip chart display program e.g. emcstripchart; if not
found then none will run
; EMCSTRIP = emcstripchart

; OPTIONS for emcstripchart ussually -f something.conf; This file
says which
; variables to plot, colors etc. -u changes the update rate.
OPTIONS = -f emcstrip.conf.ferror





--- In CAD_CAM_EDM_DRO@yahoogroups.com, Jon Elson <elson@p...> wrote:
>
>
> Asim Khan wrote:
>
> >>Of course. The actual position is never what you ask for, just
> >>
> >>
> >within some
> >
> >
> >>acceptable error bound.
> >>
> >>
> >>
> >but in case of joging the axis in manual or running the machine in
> >mdi mode the actual position error i can see on position counters
in
> >the range of +/- .0001 mm. then why the homing positions get
offsets
> >of some greater values?
> >
> >
> OH! So it is ONLY when homing that you have these large
differences?
> Now, that is real strange. I suppose it may have something to do
with the
> fact that it registers the index pulse from the encoder on the fly,
then
> has to decelerate to a safe stop. You might try turning the homing
velocity
> down and see if the divergence is smaller. But, actually, why
should it
> matter? What is important is that the homed position be repeatable.
> You can always do a X0 Y0 Z0 in MDI mode to get to zero. If that
proves
> to be repeatable, then I would not worry about it.
>
> If it is NOT repeatable, then there may be a problem in the STG
driver
> routines. One thing you do have to do is calculate a homing
velocity such
> that only one encoder tick can happen during each servo update
cycle.
> If you have 25,000 counts/inch, and the update cycle is 1000 Hz,
then you
> can only move at 1 inch every 25 seconds when homing, with the
> STG card (I think) the way the code is written. I think the STG
hardware
> allows the encoder count to be frozen or set to zero, depending on
the
> setting of a control bit, when the encoder count is seen. But, I
don't
> think it works that way in the software. I think the driver looks
for the
> index bit seen flag to be set, and then either sets the counter to
zero, or
> just reads the counter as soon as it noticed the flag. You might
look at
> the code to see how the index is searched for.
>
> Jon

Discussion Thread

Asim Khan 2003-09-15 06:07:54 UTC EMC stg2mod.o and problem with homing Jon Elson 2003-09-15 09:50:57 UTC Re: [CAD_CAM_EDM_DRO] EMC stg2mod.o and problem with homing Leslie M. Watts 2003-09-15 10:52:41 UTC RE: [CAD_CAM_EDM_DRO] EMC stg2mod.o and problem with homing Asim Khan 2003-09-16 07:54:12 UTC Re: EMC stg2mod.o and problem with homing Jon Elson 2003-09-16 10:05:58 UTC Re: [CAD_CAM_EDM_DRO] Re: EMC stg2mod.o and problem with homing Leslie M. Watts 2003-09-17 05:39:59 UTC RE: [CAD_CAM_EDM_DRO] Re: EMC stg2mod.o and problem with homing Asim Khan 2003-09-22 08:21:19 UTC Re: EMC stg2mod.o and problem with homing Jon Elson 2003-09-22 11:08:04 UTC Re: [CAD_CAM_EDM_DRO] Re: EMC stg2mod.o and problem with homing Leslie M. Watts 2003-09-22 13:11:18 UTC RE: [CAD_CAM_EDM_DRO] Re: EMC stg2mod.o and problem with homing Paul 2003-09-22 14:55:33 UTC Re: [CAD_CAM_EDM_DRO] Re: EMC stg2mod.o and problem with homing Asim Khan 2003-09-24 05:16:25 UTC Re: EMC stg2mod.o and problem with homing Asim Khan 2003-09-24 06:17:30 UTC Re: EMC stg2mod.o and problem with homing Asim Khan 2003-09-24 10:26:30 UTC Re: EMC stg2mod.o and problem with homing Paul 2003-09-24 12:57:42 UTC Re: [CAD_CAM_EDM_DRO] Re: EMC stg2mod.o and problem with homing Asim Khan 2003-09-25 00:32:33 UTC Re: EMC stg2mod.o and problem with homing Jon Elson 2003-09-25 10:03:52 UTC Re: [CAD_CAM_EDM_DRO] Re: EMC stg2mod.o and problem with homing Asim Khan 2003-09-25 22:37:04 UTC Re: EMC stg2mod.o and problem with homing Asim Khan 2003-09-25 22:41:57 UTC Re: EMC stg2mod.o and problem with homing Asim Khan 2003-10-03 02:45:34 UTC Re: EMC stg2mod.o and problem with homing Ray Henry 2003-10-03 05:25:05 UTC Re: Re: EMC stg2mod.o and problem with homing Paul 2003-10-03 10:16:02 UTC Re: [CAD_CAM_EDM_DRO] Re: EMC stg2mod.o and problem with homing Jon Elson 2003-10-03 10:50:13 UTC Re: [CAD_CAM_EDM_DRO] Re: EMC stg2mod.o and problem with homing Asim Khan 2003-10-05 22:33:15 UTC Re: EMC stg2mod.o and problem with homing Jon Elson 2003-10-05 23:07:01 UTC Re: [CAD_CAM_EDM_DRO] Re: EMC stg2mod.o and problem with homing Asim Khan 2003-10-12 08:34:30 UTC Re: EMC stg2mod.o and problem with homing Jon Elson 2003-10-12 17:52:32 UTC Re: [CAD_CAM_EDM_DRO] Re: EMC stg2mod.o and problem with homing Asim Khan 2003-10-13 23:42:53 UTC Fanuc 11M system, Drip Feed/DNC mode Configuration help needed Asim Khan 2003-10-16 08:13:01 UTC Re: EMC stg2mod.o and problem with homing Leslie M. Watts 2003-10-16 16:02:31 UTC RE: [CAD_CAM_EDM_DRO] Re: EMC stg2mod.o and problem with homing Asim Khan 2003-10-18 09:24:56 UTC Re: EMC stg2mod.o and problem with homing