Not a member of Pastebin yet?
                        Sign Up,
                        it unlocks many cool features!                    
                - univstep.ini
 - # 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$
 - # Name of machine, for use with display, etc.
 - MACHINE = LinuxCNC-UNIVSTEP
 - # 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 = usrmot
 - # DISPLAY = tkemc
 - # Cycle time, in seconds, that display will sleep between polls
 - CYCLE_TIME = 0.100
 - # Path to help file
 - HELP_FILE = tklinucnc.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/einar/linuxcnc/nc_files
 - # Introductory graphic
 - INTRO_GRAPHIC = linuxcnc.gif
 - INTRO_TIME = 2
 - # Enable popup balloon help
 - BALLOON_HELP = 1
 - # Task controller section -----------------------------------------------------
 - [TASK]
 - # Name of task controller program, e.g., milltask
 - 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 = univstep.var
 - # Motion control section ------------------------------------------------------
 - [EMCMOT]
 - EMCMOT = motmod
 - # Timeout for comm to emcmot, in seconds
 - COMM_TIMEOUT = 1.0
 - # Interval between tries to emcmot, in seconds
 - COMM_WAIT = 0.010
 - # Servo task period, in nanoseconds
 - SERVO_PERIOD = 1000000
 - # 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 = univstep_load.hal
 - HALFILE = univstep_servo.hal
 - HALFILE = univstep_motion.hal
 - HALFILE = univstep_io.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 = 4
 - # COORDINATES = X Y Z R P W
 - COORDINATES = X Y Z A
 - HOME = 0 0 0 0
 - LINEAR_UNITS = inch
 - ANGULAR_UNITS = degree
 - CYCLE_TIME = 0.010
 - DEFAULT_VELOCITY = 0.0167
 - MAX_VELOCITY = 1.20
 - DEFAULT_ACCELERATION = 15.0
 - MAX_ACCELERATION = 20.0
 - # Axes sections ---------------------------------------------------------------
 - # First axis
 - [AXIS_0]
 - TYPE = LINEAR
 - HOME = 0.000
 - MAX_VELOCITY = 1.20
 - MAX_ACCELERATION = 20.0
 - PID_MAX_VEL = 1.25
 - BACKLASH = 0.000
 - SCALE = 4000
 - OUTPUT_SCALE = 1.000
 - MIN_LIMIT = -10.0
 - MAX_LIMIT = 10.0
 - FERROR = 0.0100
 - MIN_FERROR = 0.001
 - HOME_OFFSET = 0.0
 - HOME_SEARCH_VEL = 0.0
 - HOME_LATCH_VEL = 0.0
 - HOME_USE_INDEX = NO
 - HOME_IGNORE_LIMITS = NO
 - DEADBAND = 0.000126
 - P = 150
 - I = 100
 - D = 0.1
 - BIAS = 0.0
 - FF0 = 0
 - FF1 = 1
 - FF2 = 0.0
 - # Second axis
 - [AXIS_1]
 - TYPE = LINEAR
 - HOME = 0.000
 - MAX_VELOCITY = 1.20
 - MAX_ACCELERATION = 20.0
 - PID_MAX_VEL = 1.25
 - BACKLASH = 0.000
 - SCALE = 4000
 - OUTPUT_SCALE = 1.000
 - MIN_LIMIT = -10.0
 - MAX_LIMIT = 10.0
 - FERROR = 0.010
 - MIN_FERROR = 0.001
 - HOME_OFFSET = 0.0
 - HOME_SEARCH_VEL = 0.0
 - HOME_LATCH_VEL = 0.0
 - HOME_USE_INDEX = NO
 - HOME_IGNORE_LIMITS = NO
 - DEADBAND = 0.000126
 - P = 150
 - I = 100
 - D = 0.1
 - BIAS = 0.0
 - FF0 = 0
 - FF1 = 1
 - FF2 = 0.0
 - # Third axis
 - [AXIS_2]
 - TYPE = LINEAR
 - HOME = 0.0
 - MAX_VELOCITY = 1.20
 - MAX_ACCELERATION = 20.0
 - PID_MAX_VEL = 1.25
 - BACKLASH = 0.000
 - SCALE = 4000
 - OUTPUT_SCALE = 1.000
 - MIN_LIMIT = -10.0
 - MAX_LIMIT = 10.0
 - FERROR = 0.010
 - MIN_FERROR = 0.001
 - HOME_OFFSET = 0.0
 - HOME_SEARCH_VEL = 0.0
 - HOME_LATCH_VEL = 0.0
 - HOME_USE_INDEX = NO
 - HOME_IGNORE_LIMITS = NO
 - DEADBAND = 0.000126
 - P = 150
 - I = 100
 - D = 0.1
 - BIAS = 0.0
 - FF0 = 0
 - FF1 = 1
 - FF2 = 0.0
 - # Fourth axis
 - [AXIS_3]
 - TYPE = ANGULAR
 - HOME = 0.0
 - MAX_VELOCITY = 65
 - MAX_ACCELERATION = 20.0
 - PID_MAX_VEL = 66
 - BACKLASH = 0.000
 - SCALE = 11.11111111
 - OUTPUT_SCALE = 1.000
 - MIN_LIMIT = -3600.0
 - MAX_LIMIT = 3600.0
 - FERROR = 0.1
 - MIN_FERROR = 0.2
 - HOME_OFFSET = 0.0
 - HOME_SEARCH_VEL = 0.0
 - HOME_LATCH_VEL = 0.0
 - HOME_USE_INDEX = NO
 - HOME_IGNORE_LIMITS = NO
 - DEADBAND = 0.046
 - P = 150
 - I = 100
 - D = 0.1
 - BIAS = 0.0
 - FF0 = 0
 - FF1 = 1
 - FF2 = 0.0
 - # 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 = univstep.tbl
 - --------------------------
 - univstep_load.hal:
 - # sample file pulls all load commands into a single file
 - # when emc2 starts it loads iocontrol
 - # kinematics
 - loadrt trivkins
 - # motion controller, get name and thread periods from ini file
 - loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
 - # next load the PID module, for four PID loops
 - loadrt pid num_chan=4
 - # install driver
 - loadrt hal_ppmc
 - # make some signals for the scope for tuning.
 - loadrt ddt count=4
 - # add components for E-stop logic
 - loadrt estop_latch count=1
 - loadrt and2 count=1
 - # set up the realtime thread
 - # read inputs first
 - addf ppmc.0.read servo-thread
 - # then run the motion controller
 - addf motion-command-handler servo-thread
 - addf and2.0 servo-thread
 - addf estop-latch.0 servo-thread
 - addf motion-controller servo-thread
 - # then the PID loops
 - addf pid.0.do-pid-calcs servo-thread
 - addf pid.1.do-pid-calcs servo-thread
 - addf pid.2.do-pid-calcs servo-thread
 - addf pid.3.do-pid-calcs servo-thread
 - # write outputs last
 - addf ppmc.0.write servo-thread
 - ----------------
 - univstep_motion.hal:
 - # HAL config file for Pico Systems USC board
 - # set sane pulse timing - these are basically Gecko numbers
 - # both pulse width and space are set to 3.5 uS, to prevent
 - # problems if the outputs are inverted externally
 - setp ppmc.0.stepgen.00-03.pulse-width-ns 3500
 - setp ppmc.0.stepgen.00-03.pulse-space-min-ns 3500
 - # setup time is set to 1 uS
 - setp ppmc.0.stepgen.00-03.setup-time-ns 1000
 - # connect position feedback signals to encoders
 - net Xpos-fb <= ppmc.0.encoder.00.position
 - net Ypos-fb <= ppmc.0.encoder.01.position
 - net Zpos-fb <= ppmc.0.encoder.02.position
 - net Apos-fb <= ppmc.0.encoder.03.position
 - # get feedback scaling from ini file
 - setp ppmc.0.encoder.00.scale [AXIS_0]SCALE
 - setp ppmc.0.encoder.01.scale [AXIS_1]SCALE
 - setp ppmc.0.encoder.02.scale [AXIS_2]SCALE
 - setp ppmc.0.encoder.03.scale [AXIS_3]SCALE
 - # connect PID output signals to step generators
 - net Xoutput => ppmc.0.stepgen.00.velocity
 - net Youtput => ppmc.0.stepgen.01.velocity
 - net Zoutput => ppmc.0.stepgen.02.velocity
 - net Aoutput => ppmc.0.stepgen.03.velocity
 - # connect axis enables to step generators
 - net Xenable => ppmc.0.stepgen.00.enable
 - net Yenable => ppmc.0.stepgen.01.enable
 - net Zenable => ppmc.0.stepgen.02.enable
 - net Aenable => ppmc.0.stepgen.03.enable
 - # set output scaling from ini file
 - # input and output scales should (normally) be the same for a USC
 - setp ppmc.0.stepgen.00.scale [AXIS_0]SCALE
 - setp ppmc.0.stepgen.01.scale [AXIS_1]SCALE
 - setp ppmc.0.stepgen.02.scale [AXIS_2]SCALE
 - setp ppmc.0.stepgen.03.scale [AXIS_3]SCALE
 - # add a couple of tuning test links
 - # if these are useful will want to add them to the other axes as well
 - # or make these setup with the tuning script
 - net Xoutput ddt.0.in
 - net Xpos-fb ddt.1.in
 - ----------------------
 - univstep_servo.hal:
 - # HAL config file for servos -- expanded from core_servo.hal
 - # for a full four axis setup
 - # create four position feedback signals
 - # connect position feedback to PID loop
 - net Xpos-fb => pid.0.feedback
 - net Ypos-fb => pid.1.feedback
 - net Zpos-fb => pid.2.feedback
 - net Apos-fb => pid.3.feedback
 - # connect position feedback to motion module
 - net Xpos-fb => axis.0.motor-pos-fb
 - net Ypos-fb => axis.1.motor-pos-fb
 - net Zpos-fb => axis.2.motor-pos-fb
 - net Apos-fb => axis.3.motor-pos-fb
 - # create PID to DAC output signals
 - # connect output signals to output of PID loops
 - net Xoutput <= pid.0.output
 - net Youtput <= pid.1.output
 - net Zoutput <= pid.2.output
 - net Aoutput <= pid.3.output
 - # set PID loop output limits to +/-1.00
 - setp pid.0.maxoutput [AXIS_0]PID_MAX_VEL
 - setp pid.1.maxoutput [AXIS_1]PID_MAX_VEL
 - setp pid.2.maxoutput [AXIS_2]PID_MAX_VEL
 - setp pid.3.maxoutput [AXIS_3]PID_MAX_VEL
 - # set PID loop gains
 - setp pid.0.Pgain [AXIS_0]P
 - setp pid.0.Igain [AXIS_0]I
 - setp pid.0.Dgain [AXIS_0]D
 - setp pid.0.bias [AXIS_0]BIAS
 - setp pid.0.FF0 [AXIS_0]FF0
 - setp pid.0.FF1 [AXIS_0]FF1
 - setp pid.0.FF2 [AXIS_0]FF2
 - setp pid.0.deadband [AXIS_0]DEADBAND
 - setp pid.1.Pgain [AXIS_1]P
 - setp pid.1.Igain [AXIS_1]I
 - setp pid.1.Dgain [AXIS_1]D
 - setp pid.1.bias [AXIS_1]BIAS
 - setp pid.1.FF0 [AXIS_1]FF0
 - setp pid.1.FF1 [AXIS_1]FF1
 - setp pid.1.FF2 [AXIS_1]FF2
 - setp pid.1.deadband [AXIS_1]DEADBAND
 - setp pid.2.Pgain [AXIS_2]P
 - setp pid.2.Igain [AXIS_2]I
 - setp pid.2.Dgain [AXIS_2]D
 - setp pid.2.bias [AXIS_2]BIAS
 - setp pid.2.FF0 [AXIS_2]FF0
 - setp pid.2.FF1 [AXIS_2]FF1
 - setp pid.2.FF2 [AXIS_2]FF2
 - setp pid.2.deadband [AXIS_2]DEADBAND
 - setp pid.3.Pgain [AXIS_3]P
 - setp pid.3.Igain [AXIS_3]I
 - setp pid.3.Dgain [AXIS_3]D
 - setp pid.3.bias [AXIS_3]BIAS
 - setp pid.3.FF0 [AXIS_3]FF0
 - setp pid.3.FF1 [AXIS_3]FF1
 - setp pid.3.FF2 [AXIS_3]FF2
 - setp pid.3.deadband [AXIS_3]DEADBAND
 - # create four position command signals
 - # connect position commands to motion controller
 - net Xpos-cmd <= axis.0.motor-pos-cmd
 - net Ypos-cmd <= axis.1.motor-pos-cmd
 - net Zpos-cmd <= axis.2.motor-pos-cmd
 - net Apos-cmd <= axis.3.motor-pos-cmd
 - # connect position commands to PID input
 - net Xpos-cmd => pid.0.command
 - net Ypos-cmd => pid.1.command
 - net Zpos-cmd => pid.2.command
 - net Apos-cmd => pid.3.command
 - # create bit signals to enable/disable the PID loops
 - # connect the signals to the motion controller
 - net Xenable <= axis.0.amp-enable-out
 - net Yenable <= axis.1.amp-enable-out
 - net Zenable <= axis.2.amp-enable-out
 - net Aenable <= axis.3.amp-enable-out
 - # connect the signals to the PID blocks
 - net Xenable => pid.0.enable
 - net Yenable => pid.1.enable
 - net Zenable => pid.2.enable
 - net Aenable => pid.3.enable
 - --------------------------
 - univstep_io.hal:
 - # HAL config file for Pico Systems USC board
 - #
 - # Connect motion controller I/Os
 - #
 - # connect limit/home switch outputs to motion controller
 - net Xminlim <= ppmc.0.din.01.in
 - net Xminlim => axis.0.neg-lim-sw-in
 - net Xmaxlim <= ppmc.0.din.02.in
 - net Xmaxlim => axis.0.pos-lim-sw-in
 - net Xhome <= ppmc.0.din.00.in
 - net Xhome => axis.0.home-sw-in
 - net Yminlim <= ppmc.0.din.05.in
 - net Yminlim => axis.1.neg-lim-sw-in
 - net Ymaxlim <= ppmc.0.din.06.in
 - net Ymaxlim => axis.1.pos-lim-sw-in
 - net Yhome <= ppmc.0.din.04.in
 - net Yhome => axis.1.home-sw-in
 - net Zminlim <= ppmc.0.din.09.in
 - net Zminlim => axis.2.neg-lim-sw-in
 - net Zmaxlim <= ppmc.0.din.10.in
 - net Zmaxlim => axis.2.pos-lim-sw-in
 - net Zhome <= ppmc.0.din.08.in
 - net Zhome => axis.2.home-sw-in
 - net Aminlim <= ppmc.0.din.12.in
 - net Aminlim => axis.3.neg-lim-sw-in
 - net Amaxlim <= ppmc.0.din.13.in
 - net Amaxlim => axis.3.pos-lim-sw-in
 - net Ahome <= ppmc.0.din.11.in
 - net Ahome => axis.3.home-sw-in
 - # connect index pulses to motion controller
 - # uncomment these lines only if you have a Rev 2 USC board
 - #newsig Xindex bit
 - #newsig Yindex bit
 - #newsig Zindex bit
 - #linksp Xindex <= ppmc.0.encoder.00.index-enable
 - #linksp Xindex => axis.0.index-enable
 - #linksp Yindex <= ppmc.0.encoder.01.index-enable
 - #linksp Yindex => axis.1.index-enable
 - #linksp Zindex <= ppmc.0.encoder.02.index-enable
 - #linksp Zindex => axis.2.index-enable
 - #
 - # Connect I/O controller I/Os
 - #
 - # connect e-stop write/sense to I/O controller
 - # and univstep's fault with estop's output, so estop FF is reset, but
 - # prevent continued estop signal from univstep from holding FF cleared
 - net ppmcEstop ppmc.0.din.15.in-not
 - net ppmcEstop and2.0.in0
 - net EstopOkIn estop-latch.0.fault-in
 - net EstopOkIn and2.0.out
 - net EstopOkOut <= ppmc.0.dout.07.out
 - net EstopOkOut iocontrol.0.emc-enable-in
 - net EstopOkOut estop-latch.0.ok-out
 - net EstopOkOut and2.0.in1
 - net emc-estop-out iocontrol.0.user-enable-out
 - net emc-estop-out estop-latch.0.ok-in
 - net emc-estop-reset iocontrol.0.user-request-enable
 - net emc-estop-reset estop-latch.0.reset
 - # connect spindle fwd/rev to I/O controller
 - net SpindleFwd <= ppmc.0.dout.00.out
 - net SpindleFwd => motion.spindle-forward
 - net SpindleRev <= ppmc.0.dout.01.out
 - net SpindleRev => motion.spindle-reverse
 - # connect spindle brake to I/O controller
 - net SpindleBrakeOn <= ppmc.0.dout.02.out
 - net SpindleBrakeOn => motion.spindle-brake
 - # connect mist/flood coolant to I/O controller
 - net MistOn <= ppmc.0.dout.03.out
 - net MistOn => iocontrol.0.coolant-mist
 - net FloodOn <= ppmc.0.dout.04.out
 - net FloodOn => iocontrol.0.coolant-flood
 
Advertisement
 
                    Add Comment                
                
                        Please, Sign In to add comment