[Home]USCIniFile

LinuxCNCKnowledgeBase | RecentChanges | PageIndex | Preferences | LinuxCNC.org

The .ini file for the Pico Systems Universal Stepper Controller

In the [TASK] section, you need to specify
TASK = bridgeporttask
this task controller sends auxilliary I/O (spindle, coolant, etc.) to routines that process it for controlling external hardware.

In the [EMCMOT] section, you need to specify
EMCMOT = univstepmod.o
this is the real-time kernel module that handles all motion control and digital I/O between EMC and the USC board.

Unless you are using a PCI plug-in parallel port card, you should probably have this :
IO_BASE_ADDRESS = 0x378
Which specifies the standard parallel port address for communication with the UPC board.

Period should be commented out like this :
; PERIOD = 0.000016
The ";" prevents this setting from taking effect. The PERIOD interrupt is used for some software step generation programs, but has no use here.

In each [AXIS_n] section, (where n ranges from 0 to number of axes - 1) you should have the following settings:

TYPE = either LINEAR or ANGULAR
UNITS = the size of a "user unit". If you want user units to be inches, make this

             0.0393700787 (one mm expressed in inches); for mm use 1.0

MAX_VELOCITY = user_units per SECOND (not minute)

P = 1000 to start with, this is the main servo gain

I = 5.0 an integral term to improve accuracy over a period of time

D = 50.0 a differential term that damps the system response

FF0 = 0.0 a positioning offset, left for pedantic reasons

FF1 = 2.000 a velocity feedforward, helps reduce following error proportional to velocity

FF2 = 0.25 an acceleration feedforward, helps reduce foll. error when accelerating

BACKLASH = 0.0 you really don't want to use this, anyway

BIAS = 0.0 torque offset, might be useful with holding the knee up

CYCLE_TIME = 0.001 this is the servo update cycle, in seconds, set to 1 KHz here

INPUT_SCALE = the number of step pulses per user_unit. (Follow with a 0)

OUTPUT_SCALE = 1.0 0.0 This is an output gain setting, the sign reverses the motor direction. Leave the first parameter at either +1.0 or -1.0, otherwise it divides the possible output range by the value you enter!

MAX_LIMIT = distance from home to the + travel limit, expressed in user_units.

MIN_LIMIT = distance from home to the - travel limit, expressed in user_units.

MIN_OUTPUT = -100.0 Needed to get full range on the PWM duty cycle.

MAX_OUTPUT = 100.0 Needed to get full range on the PWM duty cycle.

SETUP_TIME = 10.0 sets delay between direction change and step pulses, in uS, valid from 0.1 to 25.5 uS.

HOLD_TIME = 5.5 sets width of step pulse, in uS, valid from 0.1 to 25.5 uS.

FERROR = 0.001 this sets the permitted following error (in user_units) proportional to velocity in user_units/second.

MIN_FERROR = 0.005 this sets the minimum permitted following error when velocity is zero. It is simply added to the FERROR * velocity to get the acceptable error at each servo cycle.

HOMING_VEL = 0.25 sets the velocity (in user_units/sec) that homing is performed at.

HOME_OFFSET =0.0 the location of the system's home position from where the homne switch actually clicked.

SETUP_TIME (not currently implemented - I need to do this!)
HOLD_TIME (not currently implemented - I need to do this!)

In the [EMCIO] section, you need to specify :
EMCIO = ppmcio

ESTOP_SENSE_INDEX = 14
ESTOP_SENSE_POLARITY = 0

ESTOP_WRITE_INDEX = 7
ESTOP_WRITE_POLARITY = 0

You need to make sure none of the other xxx_WRITE_INDEX values are set to 7, as they must not interfere with the ESTOP function.


LinuxCNCKnowledgeBase | RecentChanges | PageIndex | Preferences | LinuxCNC.org
This page is read-only. Follow the BasicSteps to edit pages. | View other revisions
Last edited January 9, 2006 9:20 pm by h-69-3-230-106.chcgilgm.covad.net (diff)
Search:
Published under a Creative Commons License