Stuart Stevenson wrote:
> Gentlemen,
>     I have uploaded a picture to imagebin. The name of the picture is stustev.
>     This is a screen shot of the feedback from the homing cycle of my
> machine. I am using ppmc boards and EMC2-head.
>     The machine moves positive to the home switch.
>     I have the latch velocity set very low.
>     The machine reverses direction.
>     The machine display sets to zero and counts very slow.
>     The machine will stop momentarily.
>     The display will set to a number that seems to be the disance to
> the start up position.
>     The machine then moves to the start up position. (display zero)
>     The display turns green.
>     Take a look at the screen shot.

Could anybody take a look at his picture and see if they can 
suggest what is happening here?  Here's the URL: 
http://imagebin.org/8621

Clearly, index-enable is getting shut off before the index pulse 
comes true.  I cannot see how the hardware or driver, as it is 
now written, can do this.

Here's his ini file :
# EMC controller parameters for generic controller. Make these 
what you need
# for your system.

# 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.3.4.5 $

# Name of machine, for use with display, etc.
MACHINE =               DAHLIH

# 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 = 0
# DEBUG =               0x00000007
# DEBUG =               0x7FFFFFFF

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

# Name of display program, e.g., xemc
# DISPLAY =             axis
# DISPLAY =               mini
# DISPLAY =               usrmot
  DISPLAY =    tkemc

PYVCP = spindle.xml

# Cycle time, in seconds, that display will sleep between polls
CYCLE_TIME =            0.100

# Path to help file
HELP_FILE =             tkemc.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/stustev/emc2/nc_files

# Introductory graphic
INTRO_GRAPHIC = emc2.gif
INTRO_TIME = 2

# Enable popup balloon help
BALLOON_HELP = 1

# Task controller section 
-----------------------------------------------------
[TASK]

# Name of task controller program, e.g., bridgeporttask
TASK =                  milltask
# 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 =        dahlih.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 =                50000
# 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 =                    dahlih_load.hal
HALFILE =                    dahlih_servo.hal
HALFILE =                    dahlih_motion.hal
HALFILE =                    dahlih_io.hal

HALFILE =                    dahlih_jog.hal

HALUI =                      halui

POSTGUI_HALFILE =            dahlih_axis.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 =          2.0
DEFAULT_ACCELERATION =  2.0
MAX_ACCELERATION =      20.0

# Axes sections 
---------------------------------------------------------------

# Scaling:  The 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, OUTPUT_SCALE
# should be 3.47

# First axis
[AXIS_0]

TYPE =                          LINEAR
HOME =                          0.000
MAX_VELOCITY =                  2.0
MAX_ACCELERATION =              6.0
UNITS   =                       1.0
PID_MAX_VEL =                4
BACKLASH = 0.000
INPUT_SCALE =                   10000
OUTPUT_SCALE =                  -1.0
MIN_LIMIT =                     -20.0
MAX_LIMIT =                     20.0
FERROR = 10.0
#MIN_FERROR = 0.005
#HOME =                           0.0
HOME_OFFSET =                    0.0
HOME_SEARCH_VEL =                0.5
HOME_LATCH_VEL =                 -0.1
HOME_USE_INDEX =                 YES
HOME_IGNORE_LIMITS =             YES
#HOME_IS_SHARED                   0
#HOME_SEQUENCE                    1
DEADBAND =                         1e-06
P =                              180
I =                              30
D =                              2.8
BIAS =                             0
FF0 =                              0
FF1 =                              1.18


# Second axis
[AXIS_1]

TYPE =                          LINEAR
HOME =                          0.000
MAX_VELOCITY =                  2.0
MAX_ACCELERATION =              6.0
UNITS    =                      -1.0
PID_MAX_VEL =              4
BACKLASH = 0.000
INPUT_SCALE =                   -10000
OUTPUT_SCALE =                  1.0
MIN_LIMIT =                     -20.0
MAX_LIMIT =                     20.0
FERROR = 10.0
#MIN_FERROR = 0.005
#HOME =                           0.0
HOME_OFFSET =                    0.0
HOME_SEARCH_VEL =                0.5
HOME_LATCH_VEL =                 -0.01
HOME_USE_INDEX =                 YES
HOME_IGNORE_LIMITS =             YES
#HOME_IS_SHARED                   0
#HOME_SEQUENCE                    2
DEADBAND =                         1e-06
P =                              150
I =                              0
D =                              0.2
BIAS =                             0
FF0 =                              0.15
FF1 =                              1.7

# Third axis
[AXIS_2]

TYPE =                          LINEAR
HOME =                          0.0
MAX_VELOCITY =                  2.0
MAX_ACCELERATION =              6.0
UNITS    =                      -1.0
PID_MAX_VEL =              4
BACKLASH = 0.000
INPUT_SCALE =                   -10000
OUTPUT_SCALE =                  1.0
MIN_LIMIT =                     -20.0
MAX_LIMIT =                     20.0
FERROR = 10.0
#MIN_FERROR = 0.005
#HOME =                           0.0
HOME_OFFSET =                    0.0
HOME_SEARCH_VEL =                0.5
HOME_LATCH_VEL =                 -0.1
HOME_USE_INDEX =                 YES
HOME_IGNORE_LIMITS =             YES
#HOME_IS_SHARED                   0
#HOME_SEQUENCE                    0
DEADBAND =                         8e-05
P =                              110
I =                              0
D =                              0
BIAS =                             0
FF0 =                              0
FF1 =                              1.18



# 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 =    dahlih.tbl

# section for external NML server parameters 
----------------------------------
[EMCSERVER]
# Uncomment the following line if you need to run a remote GUI.
# EMCSERVER =           emcsvr

________________________________________________________
here's his ...._io.hal file :
# HAL config file for Pico Systems USC board
#
# Connect Motion I/Os
#
# connect limit switches
# positive limits and home switches
newsig xposlim bit
linksp xposlim ppmc.0.din.00.in
linksp xposlim axis.0.pos-lim-sw-in
linksp xposlim axis.0.home-sw-in

newsig yposlim bit
linksp yposlim ppmc.0.din.02.in
linksp yposlim axis.1.pos-lim-sw-in
linksp yposlim axis.1.home-sw-in

newsig zposlim bit
linksp zposlim ppmc.0.din.05.in
linksp zposlim axis.2.pos-lim-sw-in
linksp zposlim axis.2.home-sw-in

# negative limits
net xneglim axis.0.neg-lim-sw-in ppmc.0.din.01.in
net yneglim axis.1.neg-lim-sw-in ppmc.0.din.03.in
net zneglim axis.2.neg-lim-sw-in ppmc.0.din.04.in
#

# home switch connections
#net xposlim axis.0.home-sw-in ppmc.0.din.00.in
#net yposlim axis.0.home-sw-in ppmc.0.din.02.in
#net zposlim axis.0.home-sw-in ppmc.0.din.05.in
#

# connect index pulses to motion controller
# do these when index pulsing is figured out
net Xindex axis.0.index-enable ppmc.0.encoder.00.index-enable
net Xindex axis.1.index-enable ppmc.0.encoder.01.index-enable
net Xindex axis.2.index-enable ppmc.0.encoder.02.index-enable
#

# Connect I/O controller I/Os
#

# connect e-stop write/sense to I/O controller
# and ppmc's fault with estop's output, so  estop FF is reset, but
#      prevent continued estop signal from ppmc from holding FF 
cleared
net ppmcEstop and2.0.in0 ppmc.0.din.estop.in
net EstopOkIn and2.0.out estop-latch.0.fault-in
#
newsig EstopOkOut bit
linksp EstopOkOut ppmc.0.dout.07.out
linksp EstopOkOut ppmc.0.dout.Estop.out
linksp EstopOkOut iocontrol.0.emc-enable-in
linksp EstopOkOut estop-latch.0.ok-out
linksp EstopOkOut and2.0.in1
#
net emc-estop-out iocontrol.0.user-enable-out estop-latch.0.ok-in
net emc-estop-reset iocontrol.0.user-request-enable 
estop-latch.0.reset
#

#newsig EstopSense bit
#newsig EstopWrite bit
#linksp EstopSense <= ppmc.0.din.estop.in-not
#linksp EstopSense => iocontrol.0.emc-enable-in
#linksp EstopWrite <= ppmc.0.dout.07.outnewsig xposlim bit
linksp xposlim ppmc.0.din.00.in
linksp xposlim axis.0.pos-lim-sw-in
linksp xposlim axis.0.home-sw-in


#linksp EstopWrite => iocontrol.0.user-enable-out
#estop may need to be inverted

# connect spindle fwd/rev to I/O controller
net SpindleFwd ppmc.0.dout.00.out motion.spindle-forward
net SpindleRev ppmc.0.dout.01.out motion.spindle-reverse
net SpindleBrakeOn ppmc.0.dout.02.out motion.spindle-brake
#

# connect mist/flood coolant to I/O controller
net FloodOn ppmc.0.dout.04.out iocontrol.0.coolant-flood
#

# tool unclamp button
#net ToolUnclamp ppmc.0.din.08.in
#

# cycle start
#net CycleStart ppmc.0.din.09.in
#

# feed hold
#net FeedHold ppmc.0.din.10.in
#

# E-Stop
#net EStop ppmc.0.din.11.in
#

I'm not sure if any other files are relevant.  If somebody wants 
to see another of the config files, let me know and I'll post 
those.  I notice that some of the home parameters in the ini 
file are commented out, which seems odd.  I don't know what the
defaults on those are.

Thanks,

Jon

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to