# EMC controller parameters for a simulated 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 = getting-started:demo.ini # Debug level, 0 means no messages. See src/emc/nml_intf/debugflags.h for others #DEBUG = 0x00000002 # configuration #DEBUG = 0x7FFFFFFF #DEBUG = 0x7FFFDEFF #no interp,oword #DEBUG = 0x00008000 # py only #DEBUG = 0x0000E000 # py + remap + Oword #DEBUG = 0x0000C002 # py + remap + config #DEBUG = 0x0000C100 # py + remap + Interpreter #DEBUG = 0x0000C140 # py + remap + Interpreter + NML msgs #DEBUG = 0x0000C040 # py + remap + NML #DEBUG = 0x0003E100 # py + remap + Interpreter + oword + signals + namedparams #DEBUG = 0x10000000 # EMC_DEBUG_USER1 - trace statements #DEBUG = 0x20000000 # EMC_DEBUG_USER2 - trap into Python debugger #DEBUG = 0x7FFFFFFF DEBUG = 0x10008000 # USER1, PYTHON #DEBUG = 0x30008000 # USER1,USER2, PYTHON # USER2 will cause involute to try to connect to pydev # Sections for display options ------------------------------------------------ [DISPLAY] # Name of display program, e.g., xemc DISPLAY = axis OPEN_FILE=./nc_files/examples.ngc # Cycle time, in seconds, that display will sleep between polls CYCLE_TIME = 0.100 # 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 MAX_SPINDLE_OVERRIDE = 1.0 MAX_LINEAR_VELOCITY = 1.2 DEFAULT_LINEAR_VELOCITY = .25 # Prefix to be used PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic INTRO_GRAPHIC = emc2.gif INTRO_TIME = 5 EDITOR = gedit TOOL_EDITOR = tooledit INCREMENTS = 1 in, 0.1 in, 10 mil, 1 mil, 1mm, .1mm, 1/8000 in [FILTER] PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image PROGRAM_EXTENSION = .py Python Script png = image-to-gcode gif = image-to-gcode jpg = image-to-gcode py = python # 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.001 # the Python plugins serves interpreter and task [PYTHON] # where to find Python code PATH_PREPEND=python # import the following Python module TOPLEVEL=python/toplevel.py # the higher the more verbose tracing of the Python plugin LOG_LEVEL = 8 # Part program interpreter section -------------------------------------------- [RS274NGC] # File containing interpreter variables PARAMETER_FILE = sim.var SUBROUTINE_PATH = nc_subroutines:../../nc_files/remap_lib/common_nc_subs LOG_LEVEL = 0 # generalized remapping of RS274NGC codes #----------------------------------------- # currently only unused M- and G-codes may be activated as per below, plus the # T,M6,M61,S and F codes. # G: currently supported modal group: 1 # M:currently supported modal groups: 5,6,7,8,9,10 # for T,S,F remaps the modal group is fixed and any modalgroup= option is ignored # An argument specification (keyword 'argspec') describes required and permitted words, # and precondtions for that code to execute. # # It consists of 0-n characters of the class [@A-KMNP-Za-kmnp-z^>] . # # parameter words: # an uppercase letter for each required parameter 'word' # a lowercase letter for each optional parameter 'word' # # Preconditions: # an '^' means: speed must be > 0 # an '>' means: feed must be > 0 # # if calling an NGC oword function (ngc=), the parameters are passed # as local named parameters which are already set when the function starts # optional words are passed if set in the block, and may be tested for existence # by # EXISTS(#<..>) . # # example 1: REMAP=M400 modalgroup=10 argspec=Pq ngc=m400 # see nc_subroutines/m400.ngc # to exercise, try: # M400 # M400 P123 # M400 P123 Q456 # --------------- # # Example 2: # # Calling with traditional positioal parameter lists: # # To do so, add the '@' character to the argspec. # In this case, the arguments (required or optional) will be passed tradional-style # REMAP=M410 modalgroup=10 argspec=@Pq ngc=m410 # see nc_subroutines/m410.ngc # # to exercise, try: # M410 # M410 P123 # M410 P123 Q456 # # NB: you lose the capability to distinguish more than one optional parameter word! # since you cant tell wether Q was passed as 'Q0' or no Q word was set. # # ------------------------------------------------------------------------- # # up to here you wouldnt need the PYTHON section to be defined since no # Python code was used. # Examples below refer to Python handlers and hence need the plugin configured. # # instead of calling an NGC procedure, we call the remap.g886() Python function: # REMAP=G88.6 modalgroup=1 argspec=XYZp py=g886 # see python/remap.py function g886 # to exercise, try: # g88.6 x1 y2 z3 # g88.6 x1 y2 z3 p33 (a comment here) # a more complex example # based on nc_files/involute.py example and can it as a G-code # all checking is done in the Python procedure by directly accessing interpreter internals # REMAP=G88.1 modalgroup=1 py=involute # see python/remap.py function involute # # # pin wiggling example - equivalent of M62 # usgage : M462 P Q<0 or 1> REMAP=M462 modalgroup=10 argspec=PQ py=m462 # pin wiggling example - equivalent of M65 # usgage : M465 P Q<0 or 1> REMAP=M465 modalgroup=10 argspec=PQ py=m465 # this is important - read nc_subroutines/on_abort.ngc ON_ABORT_COMMAND=O call # 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_PERIOD is unused in this configuration but specified in core_sim.hal BASE_PERIOD = 0 # Servo task period, in nano-seconds 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 = core_sim.hal HALFILE = axis_manualtoolchange.hal HALFILE = simulated_home.hal #HALFILE = gamepad.hal # list of halcmd commands to execute # commands are executed in the order in which they appear #HALCMD = save neta # Single file that is executed after the GUI has started. Only supported by # AXIS at this time (only AXIS creates a HAL component of its own) #POSTGUI_HALFILE = test_postgui.hal HALUI = halui # 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 = 1.2 POSITION_FILE = position.txt MAX_LINEAR_VELOCITY = 1.2 NO_FORCE_HOMING = 1 # Axes sections --------------------------------------------------------------- # First axis [AXIS_0] TYPE = LINEAR HOME = 0.000 MAX_VELOCITY = 4 MAX_ACCELERATION = 100.0 BACKLASH = 0.000 INPUT_SCALE = 4000 OUTPUT_SCALE = 1.000 MIN_LIMIT = -40.0 MAX_LIMIT = 40.0 FERROR = 0.050 MIN_FERROR = 0.010 HOME_OFFSET = 0.0 HOME_SEARCH_VEL = 20.0 HOME_LATCH_VEL = 20.0 HOME_USE_INDEX = NO HOME_IGNORE_LIMITS = NO HOME_SEQUENCE = 1 HOME_IS_SHARED = 1 # Second axis [AXIS_1] TYPE = LINEAR HOME = 0.000 MAX_VELOCITY = 4 MAX_ACCELERATION = 100.0 BACKLASH = 0.000 INPUT_SCALE = 4000 OUTPUT_SCALE = 1.000 MIN_LIMIT = -40.0 MAX_LIMIT = 40.0 FERROR = 0.050 MIN_FERROR = 0.010 HOME_OFFSET = 0.0 HOME_SEARCH_VEL = 20.0 HOME_LATCH_VEL = 20.0 HOME_USE_INDEX = NO HOME_IGNORE_LIMITS = NO HOME_SEQUENCE = 1 # Third axis [AXIS_2] TYPE = LINEAR HOME = 0.0 MAX_VELOCITY = 4 MAX_ACCELERATION = 100.0 BACKLASH = 0.000 INPUT_SCALE = 4000 OUTPUT_SCALE = 1.000 MIN_LIMIT = -8.0 MAX_LIMIT = 8.00 FERROR = 0.050 MIN_FERROR = 0.010 HOME_OFFSET = 1.0 HOME_SEARCH_VEL = 20.0 HOME_LATCH_VEL = 20.0 HOME_USE_INDEX = NO HOME_IGNORE_LIMITS = NO HOME_SEQUENCE = 0 HOME_IS_SHARED = 1 # 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 = tool.tbl TOOL_CHANGE_POSITION = 0 0 0 TOOL_CHANGE_QUILL_UP = 1 #RANDOM_TOOLCHANGER = 1