# 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: 1.17 $ # Name of machine, for use with display, etc. MACHINE = EMC-OPTI # 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 = 0x00000003 # DEBUG = 0x00000007 DEBUG = 0xFFFFFFFF # Sections for display options ------------------------------------------------ [DISPLAY] # Name of display program, e.g., xemc DISPLAY = axis # Cycle time, in seconds, that display will sleep between polls CYCLE_TIME = 0.100 PYVCP = opti.xml # 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 MIN_SPINDLE_OVERRIDE = 0.5 MAX_SPINDLE_OVERRIDE = 1.5 # Prefix to be used PROGRAM_PREFIX = /home/cnc/emc2/nc_files # Introductory graphic INTRO_GRAPHIC = emc2.gif INTRO_TIME = 5 EDITOR = gedit # 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 = opti.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 nano-seconds - this is the fastest thread in the machine # 10 kHz is 100 000 # 20 kHz is 50 000 BASE_PERIOD = 50000 # Servo task period, in nano-seconds - will be rounded to an integer multiple # of BASE_PERIOD # 1 kHz is 1 000 000 SERVO_PERIOD = 1000000 # Trajectory Planner task period, in nano-seconds - 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 = servo_opti.hal # list of halcmd commands to execute # commands are executed in the order in which they appear # HALCMD = save neta # enable halui HALUI = halui # run a hal file to connect pyvcp widgets POSTGUI_HALFILE = opti_postgui.hal # Trajectory planner section -------------------------------------------------- [TRAJ] AXES = 3 COORDINATES = X Y Z HOME = 0 0 0 LINEAR_UNITS = mm ANGULAR_UNITS = degree CYCLE_TIME = 0.010 DEFAULT_VELOCITY = 2 MAX_VELOCITY = 150 DEFAULT_ACCELERATION = 500.0 MAX_ACCELERATION = 1200.0 # Axes sections --------------------------------------------------------------- # First axis [AXIS_0] TYPE = LINEAR HOME = 0.000 MAX_VELOCITY = 100.0 MAX_ACCELERATION = 500.0 BACKLASH = 0.000 COMP_FILE_TYPE = 0 MOTOR_PPR = 100 DRIVE_RATIO = 15 # 4000count/rev encoder, 2.5mm/rev screw # 4000/2.5 = 1600 INPUT_SCALE = 1600 OUTPUT_SCALE = 1.000 # soft limits for X MIN_LIMIT = -1000.0 MAX_LIMIT = 1000.0 # FE at full speed FERROR = 0.100 # FE at zero speed MIN_FERROR = 0.100 HOME_OFFSET = 0.0 HOME_SEARCH_VEL = 1.0 HOME_LATCH_VEL = -0.5 HOME_USE_INDEX = YES HOME_IGNORE_LIMITS = NO # PID tuning params DEADBAND = 0.0004 PGAIN = -25.0 IGAIN = -300.0 DGAIN = -0.5 FF0 = 0.000 FF1 = -0.100 FF2 = 0.000 BIAS = 0.000 # Second axis [AXIS_1] TYPE = LINEAR HOME = 0.000 MAX_VELOCITY = 100 MAX_ACCELERATION = 500.0 BACKLASH = 0.000 MOTOR_PPR = 100 DRIVE_RATIO = 15 INPUT_SCALE = 1600 OUTPUT_SCALE = 1.000 # MIN_HARD_LIMIT_RELEASE = -1000.5 # MIN_HARD_LIMIT = -1000.2 MIN_LIMIT = -1000.0 MAX_LIMIT = 1000.0 # MAX_HARD_LIMIT = 1000.2 # MAX_HARD_LIMIT_RELEASE = 1000.5 # HOME_SW_MIN = 900.5 # HOME_SW_MAX = 900.8 FERROR = 0.10 MIN_FERROR = 0.10 HOME_OFFSET = 0.0 HOME_SEARCH_VEL = 1.0 HOME_LATCH_VEL = -0.5 HOME_USE_INDEX = YES HOME_IGNORE_LIMITS = NO # PID tuning params DEADBAND = 0.0004 PGAIN = -25.0 IGAIN = -300.0 DGAIN = -0.5 FF0 = 0.000 FF1 = -0.100 FF2 = 0.000 BIAS = 0.000 # Third axis [AXIS_2] TYPE = LINEAR HOME = 0.0 MAX_VELOCITY = 100 MAX_ACCELERATION = 1000.0 BACKLASH = 0.000 MOTOR_PPR = 100 DRIVE_RATIO = 15 INPUT_SCALE = 1600 OUTPUT_SCALE = 1.000 # MIN_HARD_LIMIT_RELEASE = -2000.5 # MIN_HARD_LIMIT = -2000.2 MIN_LIMIT = -2000.0 MAX_LIMIT = 4000.0 # MAX_HARD_LIMIT = 4000.2 # MAX_HARD_LIMIT_RELEASE = 4000.5 # HOME_SW_MIN = 0.0 # HOME_SW_MAX = 0.1 FERROR = 0.100 MIN_FERROR = 0.10 HOME_OFFSET = 0.0 HOME_SEARCH_VEL = 1.0 HOME_LATCH_VEL = -0.5 HOME_USE_INDEX = YES HOME_IGNORE_LIMITS = NO # PID tuning params # deadband = at least two encoder counts # 4000 counts/rev, 2.5mm/rev = 0.000625 mm/count DEADBAND = 0.0004 PGAIN = -25.0 IGAIN = -300.0 DGAIN = -0.5 FF0 = 0.000 FF1 = -0.100 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 = opti.tbl