# EMC controller parameters for a simulated servo machine. # 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-HAL-SERVO-SIM # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others # DEBUG = 0x00000003 # DEBUG = 0x00000007 # DEBUG = 0x7FFFFFFF DEBUG = 0 # Sections for display options ------------------------------------------------ [DISPLAY] # Name of display program, e.g., xemc 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 = ../../nc_files/ # Introductory graphic INTRO_GRAPHIC = linuxcnc.gif INTRO_TIME = 5 # 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 = sim.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 # Base task period, in nano-seconds - this is the fastest thread in the machine BASE_PERIOD = 50000 # Servo task period, in nano-seconds - will be rounded to an integer multiple # of BASE_PERIOD 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 = servo_sim.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 HOME = 0 0 0 LINEAR_UNITS = inch ANGULAR_UNITS = degree CYCLE_TIME = 0.010 DEFAULT_VELOCITY = 0.167 MAX_VELOCITY = 1.5 DEFAULT_ACCELERATION = 20.0 MAX_ACCELERATION = 20.0 # Axes sections --------------------------------------------------------------- # out simulated "axis" consist of motors with 100 PPR # (400 count per rev) encoders, coupled to 5 TPI screws # thru a 3:1 belt reduction. # So the scaling is 400 CPR * 3 * 5 = 6000 counts/inch # Since we are using software encoder counters with a # base period of 50uS (20KHz) the maximum count rate is # 10KHz, which works out to 1.667 inches per second. # # First axis [AXIS_0] TYPE = LINEAR HOME = 0.000 MAX_VELOCITY = 1.67 MAX_ACCELERATION = 20.0 BACKLASH = 0.000 COMP_FILE = screwcompX.dat COMP_FILE_TYPE = 0 MOTOR_PPR = 100 DRIVE_RATIO = 15 INPUT_SCALE = 6000 OUTPUT_SCALE = 1.000 # extra limit related info for simulation # the HARD_LIMIT variables determine when the simulated # hardware limit switches trip and release MIN_HARD_LIMIT_RELEASE = -10.5 MIN_HARD_LIMIT = -10.2 MIN_LIMIT = -10.0 MAX_LIMIT = 10.0 MAX_HARD_LIMIT = 10.2 MAX_HARD_LIMIT_RELEASE = 10.5 # the HOME_SW variables determine when the simulated # home switch trips and releases HOME_SW_MIN = 9.5 HOME_SW_MAX = 9.8 FERROR = 0.050 MIN_FERROR = 0.010 HOME_OFFSET = 10.0 HOME_SEARCH_VEL = 1.0 HOME_LATCH_VEL = 0.5 HOME_USE_INDEX = YES HOME_IGNORE_LIMITS = NO # PID tuning params DEADBAND = 0.0001 PGAIN = 1500.0 IGAIN = 8000.0 DGAIN = 4.0 FF0 = 0.000 FF1 = 1.000 FF2 = 0.000 BIAS = 0.000 # Second axis [AXIS_1] TYPE = LINEAR HOME = 0.000 MAX_VELOCITY = 1.67 MAX_ACCELERATION = 20.0 BACKLASH = 0.000 MOTOR_PPR = 100 DRIVE_RATIO = 15 INPUT_SCALE = 6000 OUTPUT_SCALE = 1.000 MIN_HARD_LIMIT_RELEASE = -10.5 MIN_HARD_LIMIT = -10.2 MIN_LIMIT = -10.0 MAX_LIMIT = 10.0 MAX_HARD_LIMIT = 10.2 MAX_HARD_LIMIT_RELEASE = 10.5 HOME_SW_MIN = 9.5 HOME_SW_MAX = 9.8 FERROR = 0.050 MIN_FERROR = 0.010 HOME_OFFSET = 0.0 HOME_SEARCH_VEL = 0.0 HOME_LATCH_VEL = 0.0 HOME_USE_INDEX = NO HOME_IGNORE_LIMITS = NO # PID tuning params DEADBAND = 0.0001 PGAIN = 1500.0 IGAIN = 8000.0 DGAIN = 4.0 FF0 = 0.000 FF1 = 1.000 FF2 = 0.000 BIAS = 0.000 # Third axis [AXIS_2] TYPE = LINEAR HOME = 0.0 MAX_VELOCITY = 1.67 MAX_ACCELERATION = 20.0 BACKLASH = 0.000 MOTOR_PPR = 100 DRIVE_RATIO = 15 INPUT_SCALE = 6000 OUTPUT_SCALE = 1.000 MIN_HARD_LIMIT_RELEASE = -2.5 MIN_HARD_LIMIT = -2.2 MIN_LIMIT = -2.0 MAX_LIMIT = 4.0 MAX_HARD_LIMIT = 4.2 MAX_HARD_LIMIT_RELEASE = 4.5 HOME_SW_MIN = 0.0 HOME_SW_MAX = 0.1 FERROR = 0.050 MIN_FERROR = 0.010 HOME_OFFSET = 0.0 HOME_SEARCH_VEL = 0.0 HOME_LATCH_VEL = 0.0 HOME_USE_INDEX = NO HOME_IGNORE_LIMITS = NO # PID tuning params DEADBAND = 0.0001 PGAIN = 1500.0 IGAIN = 8000.0 DGAIN = 4.0 FF0 = 0.000 FF1 = 1.000 FF2 = 0.000 BIAS = 0.000 # 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 = sim.tbl