|
From: John T. <gi...@gi...> - 2011-12-16 21:26:31
|
Docs: markup fixes Signed-off-by: John Thornton <jth...@gn...> http://git.linuxcnc.org/?p=emc2.git;a=commitdiff;h=b1a7548 --- docs/src/config/ini_config.txt | 592 +++++++++++++++--------------- docs/src/config/ini_config_de.txt | 670 ++++++++++++++++++++-------------- docs/src/config/ini_config_es.txt | 666 ++++++++++++++++++++-------------- docs/src/config/ini_config_pl.txt | 595 +++++++++++++++--------------- docs/src/install/Latency_Test.txt | 59 ++-- docs/src/install/Latency_Test_de.txt | 59 ++-- docs/src/install/Latency_Test_es.txt | 61 ++-- docs/src/install/Latency_Test_pl.txt | 59 ++-- 8 files changed, 1529 insertions(+), 1232 deletions(-) diff --git a/docs/src/config/ini_config.txt b/docs/src/config/ini_config.txt index 9dad5b5..2d9f556 100644 --- a/docs/src/config/ini_config.txt +++ b/docs/src/config/ini_config.txt @@ -7,11 +7,13 @@ EMC2 is started with the script file emc. - usage: emc [options] [<ini-file>] +---- +usage: emc [options] [<ini-file>] - options: - -v = verbose - prints info as it works - -d = echos script commands to screen for debugging +options: + -v = verbose - prints info as it works + -d = echos script commands to screen for debugging +---- The emc script file reads the ini file and starts emc. The ini file [HAL] section specifies the order of loading up HAL files if more than @@ -40,33 +42,27 @@ is running. Configuration files include -INI:: - (((INI))) The ini file overrides defaults that are compiled into the +* 'INI' (((INI))) The ini file overrides defaults that are compiled into the EMC code. It also provides sections that are read directly by the Hardware Abstraction Layer. -HAL:: - (((HAL))) The HAL files start up process modules and provide linkages +* 'HAL' (((HAL))) The HAL files start up process modules and provide linkages between EMC signals and specific hardware pins. -VAR:: - (((VAR))) The var file is a way for the interpreter to save some +* 'VAR' (((VAR))) The var file is a way for the interpreter to save some values from one run to the next. These values are saved from one run to another but not always saved immediately. See the Parameters section of the G Code Manual for information on what each parameter is. -TBL:: - (((TBL))) The tbl file saves tool information. See the User Manual +* 'TBL' (((TBL))) The tbl file saves tool information. See the User Manual Tool File section for more info. -NML:: - (((NML))) The nml file configures the communication channels used by +* 'NML' (((NML))) The nml file configures the communication channels used by the EMC. It is normally setup to run all of the communication within a single computer but can be modified to communicate between several computers. -emcrc:: - (((.emcrc))) This file saves user specific information and is created +* 'emcrc' (((.emcrc))) This file saves user specific information and is created to save the name of the directory when the user first selects an EMC configuration.footnote:[Usually this file is in the users home directory (e.g. /home/user/ )] @@ -90,14 +86,18 @@ use a two input AND gate component (and2) in three different places in your setup, you would need to have a single line somewhere to specify: +---- loadrt and2 count=3 +---- resulting in components and2.0, and2.1, and2.2. Configurations are more readable if you specify with the names=option for components where it is supported, e.g.,: - loadrt and2 names=aa,ab,ac +---- +loadrt and2 names=aa,ab,ac +---- resulting in components aa,ab,ac. @@ -108,15 +108,19 @@ the component. TWOPASS processing is enabled by including an ini file parameter: - [HAL]TWOPASS=anything +---- +[HAL]TWOPASS=anything +---- With this setting, you can have multiple specifications like: - loadrt and2 names=aa - ... - loadrt and2 names=ab,ac - ... - loadrt and2 names=ad +---- +loadrt and2 names=aa +... +loadrt and2 names=ab,ac +... +loadrt and2 names=ad +---- These commands can appear in different HALFILES. The HALFILES are processed in their order of ther appearance in the ini file. @@ -137,7 +141,7 @@ executed in the order of appearance with other commands during this second pass. While you can use either the count= or names= options, they are -mutually exclusive -- only one type can be specified for a +mutually exclusive only one type can be specified for a given module. TWOPASS processing is most effective when using the names= @@ -150,20 +154,17 @@ ddt.1, ddt.2, etc. Alternatively, using the names= option like: - loadrt ddt names=xvel,yvel,zvel - ... - loadrt ddt names=xacel,yacel,zacel +---- +loadrt ddt names=xvel,yvel,zvel +... +loadrt ddt names=xacel,yacel,zacel +---- results in components sensibly named xvel,yvel,zvel, xacel,yacel,zacel. Many comps supplied with the distribution are created with the comp utility and support the names= option. These include the common logic components that are the glue of many hal configurations. -Examples include: - - and2,ddt,deadzone,flipflop,or2,or4,mux2,mux4,scale,sum2,timedelay,lowpass - -and many more. User-created comps that use the comp utility automatically support the names= option as well. In addition to comps generated @@ -176,9 +177,9 @@ pid also support the names=option. A typical INI file follows a rather simple layout that includes; - - comments. - - sections, - - variables. +* comments +* sections +* variables Each of these elements is separated on single lines. Each end of line or newline character creates a new element. @@ -190,14 +191,18 @@ sees either of these marks at the start a line, the rest of the line is ignored by the software. Comments can be used to describe what some INI element will do. - ; This is my little mill configuration file. - ; I set it up on January 12, 2006 +---- +; This is my little mill configuration file. +# I set it up on January 12, 2006 +---- Comments can also be used to select between several values of a single variable. - DISPLAY = axis - # DISPLAY = touchy +---- +DISPLAY = axis +# DISPLAY = touchy +---- In this list, the DISPLAY variable will be set to axis because the other one is commented out. If someone carelessly edits a list like @@ -207,10 +212,12 @@ will be used. Note that inside a variable, the "#" and ";" characters do not denote comments: - INCORRECT = value # and a comment +---- +INCORRECT = value # and a comment - # Correct Comment - CORRECT = value +# Correct Comment +CORRECT = value +---- === Sections @@ -223,17 +230,17 @@ Sections begin at the section name and end at the next section name. The following sections are used by EMC: - - [EMC] general information (<<sub:[EMC]-section>>) - - [DISPLAY] settings related to the graphical user interface (<<sub:[DISPLAY]-section>>) - - [FILTER] settings input filter programs ([sub:[FILTER]-Section]) - - [RS274NGC] settings used by the g-code interpreter (<<sub:[RS274NGC]-section>>) - - [EMCMOT] settings used by the real time motion controller (<<sub:[EMCMOT]-section>>) - - [TASK] settings used by the task controller (<<sub:[TASK]-section>>) - - [HAL] specifies .hal files (<<sub:[HAL]-section>>) - - [HALUI] MDI commands used by HALUI. See the HALUI chapter for more information. (<<sub:[HALUI]-section>>) - - [TRAJ] additional settings used by the real time motion controller (<<sub:[TRAJ]-section>>) - - [AXIS_0] ... [AXIS_n] individual axis variables (<<sub:[AXIS]-section>>) - - [EMCIO] settings used by the I/O Controller (<<sub:[EMCIO]-Section>>) +* '[EMC]' general information (<<sub:[EMC]-section>>) +* '[DISPLAY]' settings related to the graphical user interface (<<sub:[DISPLAY]-section>>) +* '[FILTER]' settings input filter programs ([sub:[FILTER]-Section]) +* '[RS274NGC]' settings used by the g-code interpreter (<<sub:[RS274NGC]-section>>) +* '[EMCMOT]' settings used by the real time motion controller (<<sub:[EMCMOT]-section>>) +* '[TASK]' settings used by the task controller (<<sub:[TASK]-section>>) +* '[HAL]' specifies .hal files (<<sub:[HAL]-section>>) +* '[HALUI]' MDI commands used by HALUI. (<<sub:[HALUI]-section>>) +* '[TRAJ]' additional settings used by the real time motion controller (<<sub:[TRAJ]-section>>) +* '[AXIS_0] ... [AXIS_8]' individual axis variables (<<sub:[AXIS]-section>>) +* '[EMCIO]' settings used by the I/O Controller (<<sub:[EMCIO]-Section>>) === Variables @@ -253,12 +260,13 @@ sample configuration files. Custom variables can be used in your HAL files with the following syntax. - [SECTION]VARIABLE +---- +[SECTION]VARIABLE +---- === Definitions -Machine Unit:: - The unit of measurement for an axis is determined by the settings in +* 'Machine Unit' - The unit of measurement for an axis is determined by the settings in the [TRAJ] section. A machine unit is equal to one unit as specified by LINEAR_UNITS or ANGULAR_UNITS. @@ -268,20 +276,17 @@ Machine Unit:: (((EMC (inifile section)))) -VERSION = $Revision: 1.3 $:: - The version number for the INI file. The value shown here looks odd +* 'VERSION = $Revision: 1.3 $' - The version number for the INI file. The value shown here looks odd because it is automatically updated when using the Revision Control System. It's a good idea to change this number each time you revise your file. If you want to edit this manually just change the number and leave the other tags alone. -MACHINE = My Controller:: - This is the name of the controller, which is printed out at the top +* 'MACHINE = My Controller' - This is the name of the controller, which is printed out at the top of most graphical interfaces. You can put whatever you want here as long as you make it a single line long. -DEBUG = 0:: - Debug level 0 means no messages will be printed when EMC is run from a +* 'DEBUG = 0' - Debug level 0 means no messages will be printed when EMC is run from a terminal. Debug flags are usually only useful to developers. See src/emc/nml_intf/emcglb.h for other settings. @@ -296,108 +301,83 @@ computer and monitor, Touchy is for use with touch screens. Descriptions of the interfaces are in the Interfaces section of the User Manual. -DISPLAY = axis:: - The name of the user interface to use. Valid options +* 'DISPLAY = axis' - The name of the user interface to use. Valid options may include: axis,(((axis))) touchy,(((touchy))) keystick,(((keystick))) mini,(((mini))) tkemc,(((tkemc))) xemc,(((xemc))) -POSITION_OFFSET = RELATIVE:: - The coordinate system (RELATIVE or MACHINE) to show when the user +* 'POSITION_OFFSET = RELATIVE' - The coordinate system (RELATIVE or MACHINE) to show when the user interface starts. The RELATIVE coordinate system reflects the G92 and G5x coordinate offsets currently in effect. -POSITION_FEEDBACK = ACTUAL:: - The coordinate value (COMMANDED or ACTUAL) to show when the user +* 'POSITION_FEEDBACK = ACTUAL' - The coordinate value (COMMANDED or ACTUAL) to show when the user interface starts. The COMMANDED position is the ideal position requested by EMC. The ACTUAL position is the feedback position of the motors. -MAX_FEED_OVERRIDE = 1.2:: - The maximum feed override the user may select. 1.2 means 120% of the +* 'MAX_FEED_OVERRIDE = 1.2' - The maximum feed override the user may select. 1.2 means 120% of the programmed feed rate. -MIN_SPINDLE_OVERRIDE = 0.5:: - The minimum spindle override the user may select. 0.5 means 50% of the +* 'MIN_SPINDLE_OVERRIDE = 0.5' - The minimum spindle override the user may select. 0.5 means 50% of the programmed spindle speed. (This is useful as it's dangerous to run a program with a too low spindle speed). -MAX_SPINDLE_OVERRIDE = 1.0:: - The maximum spindle override the user may select. 1.0 means 100% of +* 'MAX_SPINDLE_OVERRIDE = 1.0' - The maximum spindle override the user may select. 1.0 means 100% of the programmed spindle speed. -PROGRAM_PREFIX = ~/emc2/nc_files:: - The default location for g-code files and the location for +* 'PROGRAM_PREFIX = ~/emc2/nc_files' - The default location for g-code files and the location for user-defined M-codes. -INTRO_GRAPHIC = emc2.gif:: - The image shown on the splash screen. +* 'INTRO_GRAPHIC = emc2.gif' - The image shown on the splash screen. -INTRO_TIME = 5:: - The maximum time to show the splash screen, in seconds. +* 'INTRO_TIME = 5' - The maximum time to show the splash screen, in seconds. -CYCLE_TIME = 0.05:: - Cycle time in seconds that display will sleep between polls. +* 'CYCLE_TIME = 0.05' - Cycle time in seconds that display will sleep between polls. The following [DISPLAY] items are used only if you select AXIS as your user interface program. -DEFAULT_LINEAR_VELOCITY = .25:: - The default velocity for linear jogs, in machine units per second. +* 'DEFAULT_LINEAR_VELOCITY = .25' - The default velocity for linear jogs, in machine units per second. -MIN_VELOCITY = .01:: - The approximate lowest value the jog slider. +* 'MIN_VELOCITY = .01' - The approximate lowest value the jog slider. -MAX_LINEAR_VELOCITY = 1.0:: - The maximum velocity for linear jogs, in machine units per second. +* 'MAX_LINEAR_VELOCITY = 1.0' - The maximum velocity for linear jogs, in machine units per second. -MIN_LINEAR_VELOCITY = .01:: - The approximate lowest value the jog slider. +* 'MIN_LINEAR_VELOCITY = .01' - The approximate lowest value the jog slider. -DEFAULT_ANGULAR_VELOCITY = .25:: - The default velocity for angular jogs, in machine units per second. +* 'DEFAULT_ANGULAR_VELOCITY = .25' - The default velocity for angular jogs, in machine units per second. -MIN_ANGULAR_VELOCITY = .01:: - The approximate lowest value the jog slider. +* 'MIN_ANGULAR_VELOCITY = .01' - The approximate lowest value the jog slider. -MAX_ANGULAR_VELOCITY = 1.0:: - The maximum velocity for angular jogs, in machine units per second. +* 'MAX_ANGULAR_VELOCITY = 1.0' - The maximum velocity for angular jogs, in machine units per second. -INCREMENTS = 1 mm, .5 in, ...:: - Defines the increments available for incremental jogs. +* 'INCREMENTS = 1 mm, .5 in, ...' - Defines the increments available for incremental jogs. The INCREMENTS can be used to override the default. The values can be decimal numbers (e.g., 0.1000) or fractional numbers (e.g., 1/16), optionally followed by a unit (cm, mm, um, inch, in or mil). If a unit is not specified the machine unit is assumed. Metric and imperial distances may be mixed: - INCREMENTS = 1 inch, 1 mil, 1 cm, 1 mm, 1 um is a valid entry. -OPEN_FILE = /full/path/to/file.ngc:: - The file to show in the preview plot when AXIS starts. Use a blank - string "" and no file will be loaded at start up. +* 'OPEN_FILE = /full/path/to/file.ngc' - The file to show in the preview plot when AXIS starts. Use + a blank string "" and no file will be loaded at start up. -EDITOR = gedit:: - The editor to use when selecting File > Edit to edit the gcode +* 'EDITOR = gedit' - The editor to use when selecting File > Edit to edit the gcode from the AXIS menu. This must be configured for this menu item to work. Another valid entry is gnome-terminal -e vim. -TOOL_EDITOR = tooledit:: - The editor to use when editing the tool table (for example by +* 'TOOL_EDITOR = tooledit' - The editor to use when editing the tool table (for example by selecting "File > Edit tool table..." in Axis). Other valid entries are "gedit", "gnome-terminal -e vim", and "gvim". -PYVCP = /filename.xml:: - The PyVCP panel description file. See the PyVCP section for more +* 'PYVCP = /filename.xml' - The PyVCP panel description file. See the PyVCP section for more information. -LATHE = 1:: - This displays in lathe mode with a top view and with Radius and +* 'LATHE = 1' - This displays in lathe mode with a top view and with Radius and Diameter on the DRO. -GEOMETRY = XYZABCUVW:: - Controls the preview and backplot of rotary motion. This item consists +* 'GEOMETRY = XYZABCUVW' - Controls the preview and backplot of rotary motion. This item consists of a sequence of axis letters, optionally preceded by a "-" sign. Only - axes defined in `[TRAJ]AXES` should be used. This sequence specifies + axes defined in '[TRAJ]AXES' should be used. This sequence specifies the order in which the effect of each axis is applied, with a "-" inverting the sense of the rotation. @@ -410,8 +390,7 @@ GEOMETRY = XYZABCUVW:: For example rotating around C then B is different than rotating around B then C. Geometry has no effect without a rotary axis. -ARCDIVISION = 64:: - Set the quality of preview of arcs. Arcs are previewed by dividing +* 'ARCDIVISION = 64' - Set the quality of preview of arcs. Arcs are previewed by dividing them into a number of straight lines; a semicircle is divided into *ARCDIVISION* parts. Larger values give a more accurate preview, but take longer to @@ -421,8 +400,7 @@ ARCDIVISION = 64:: be displayed to within 1 mil (.03%).footnote:[In EMC 2.4 and earlier, the default value was 128.] -MDI_HISTORY_FILE =:: - The name of a local MDI history file. If this is not specified Axis +* 'MDI_HISTORY_FILE =' - The name of a local MDI history file. If this is not specified Axis will save the MDI history in *.axis_mdi_history* in the user's home directory. This is useful if you have multiple configurations on one computer. @@ -430,7 +408,7 @@ MDI_HISTORY_FILE =:: The following [DISPLAY] items are not used if you select AXIS as your user interface program. -HELP_FILE = tkemc.txt:: +* 'HELP_FILE = tkemc.txt' - Path to help file (not used in AXIS). === [FILTER] Section[[sub:[FILTER]-Section]] @@ -449,25 +427,25 @@ must write RS274NGC code to standard output. This output is what will be displayed in the text area, previewed in the display area, and executed by EMC when Run. -*PROGRAM_EXTENSION = .extension Description* +* 'PROGRAM_EXTENSION = .extension Description' If your post processor outputs files in all caps you might want to add the following line: -*PROGRAM_EXTENSION = .NGC XYZ Post Processor* +* 'PROGRAM_EXTENSION = .NGC XYZ Post Processor' The following lines add support for the image-to-gcode converter included with EMC2: -*PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image* + - *png = image-to-gcode* + - *gif = image-to-gcode* + - *jpg = image-to-gcode* - +* 'PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image' +** 'png = image-to-gcode' +** 'gif = image-to-gcode' +** 'jpg = image-to-gcode' + It is also possible to specify an interpreter: -*PROGRAM_EXTENSION = .py Python Script* + - *py = python* +* 'PROGRAM_EXTENSION = .py Python Script' +** 'py = python' In this way, any Python script can be opened, and its output is treated as g-code. One such example script is available at @@ -479,7 +457,7 @@ http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl[http://wiki.linuxcnc.org/cgi-bin/emc If the environment variable AXIS_PROGRESS_BAR is set, then lines written to stderr of the form -*FILTER_PROGRESS=%d* +* 'FILTER_PROGRESS=%d' sets the AXIS progress bar to the given percentage. This feature should be used by any filter that runs for a long time. @@ -488,19 +466,19 @@ should be used by any filter that runs for a long time. (((RS274NGC (inifile section)))) -PARAMETER_FILE = myfile.var:: +* 'PARAMETER_FILE = myfile.var' - (((PARAMETER FILE))) The file located in the same directory as the ini file which contains the parameters used by the interpreter (saved between runs). -RS274NGC_STARTUP_CODE = G01 G17 G20 G40 G49 G64.1 P0.001 G80 G90 G92 G94 G97 G98:: +* 'RS274NGC_STARTUP_CODE = G01 G17 G20 G40 G49 G64.1 P0.001 G80 G90 G92 G94 G97 G98' - (((RS274NGC STARTUP CODE))) A string of NC codes that the interpreter is initialized with. This is not a substitute for specifying modal g-codes at the top of each ngc file, because the modal codes of machines differ, and may be changed by g-code interpreted earlier in the session. -SUBROUTINE_PATH = ncsubroutines:/tmp/testsubs:lathesubs:millsubs:: +* 'SUBROUTINE_PATH = ncsubroutines:/tmp/testsubs:lathesubs:millsubs' - (((SUBROUTINE PATH))) Specifies a colon (:) separated list of up to 10 directories to be searched when single-file subroutines are specified in gcode. These directories are searched after searching @@ -510,13 +488,13 @@ SUBROUTINE_PATH = ncsubroutines:/tmp/testsubs:lathesubs:millsubs:: current directory for the inifile or as absolute paths. The list must contain no intervening whitespace. -USER_M_PATH = myfuncs:/tmp/mcodes:experimentalmcodes:: - (((USER M PATH))) Specifies a list of colon (:) separated directories - (no intervening whitespace) for user defined functions. The maximum - number of directories is defined at compile time by: + - `USER_DEFINED_FUNCTION_MAX_DIRS=5`. Directories are specified relative to - the current directory for the inifile or as absolute paths. The list - must contain no intervening whitespace. +* 'USER_M_PATH = myfuncs:/tmp/mcodes:experimentalmcodes' - (((USER M PATH))) + Specifies a list of colon (:) separated directories + (no intervening whitespace) for user defined functions. The maximum + number of directories is defined at compile time by: + 'USER_DEFINED_FUNCTION_MAX_DIRS=5'. Directories are specified relative to + the current directory for the inifile or as absolute paths. The list + must contain no intervening whitespace. A search is made for each possible user defined function, typically (M100-M199). The search order is: @@ -534,44 +512,43 @@ The first executable M1xx found in the search is used for each M1xx. You may find other entries in this section and they should not be changed. -BASE_PERIOD = 50000:: - (((BASE PERIOD))) This is the "Base" task period (in HAL), in nanoseconds. - This is the fastest thread in the machine. +* 'BASE_PERIOD = 50000' - (((BASE PERIOD))) This is the "Base" task period +(in HAL), in nanoseconds. This is the fastest thread in the machine. +[NOTE] On servo-based systems, there is generally no reason for -*BASE_PERIOD* to be smaller than *SERVO_PERIOD*. -On machines with software step generation, the *BASE_PERIOD* +'BASE_PERIOD' to be smaller than 'SERVO_PERIOD'. +On machines with software step generation, the 'BASE_PERIOD' determines the maximum number of steps per second. In the absence of long step length and step space requirements, the absolute maximum step -rate is one step per *BASE_PERIOD*. Thus, the *BASE_PERIOD* shown +rate is one step per 'BASE_PERIOD'. Thus, the 'BASE_PERIOD' shown above gives an absolute maximum step rate of 20,000 steps per second. 50,000 ns (50 us) is a fairly conservative value. The smallest usable value is related to the Latency Test result, the necessary step length, and the processor speed. -Choosing a *BASE_PERIOD* that is too low can lead to the "Unexpected +Choosing a 'BASE_PERIOD' that is too low can lead to the "Unexpected real time delay" message, lockups, or spontaneous reboots. -SERVO_PERIOD = 1000000:: - (((SERVO PERIOD))) This is the "Servo" task period (in HAL), in nanoseconds. - This value will be rounded to an integer multiple of *BASE_PERIOD*. - This value is used even on systems based on stepper motors. - +* 'SERVO_PERIOD = 1000000' - (((SERVO PERIOD))) +This is the "Servo" task period (in HAL), in nanoseconds. +This value will be rounded to an integer multiple of *BASE_PERIOD*. +This value is used even on systems based on stepper motors. ++ This is the rate at which new motor positions are computed, following error is checked, PID output values are updated, and so on. Most systems will not need to change this value. It is the update rate of the low level motion planner. -TRAJ_PERIOD = 100000:: - (((TRAJ PERIOD))) This is the "Trajectory Planner" task period (in HAL), in nanoseconds. - This value will be rounded to an integer multiple of *SERVO_PERIOD*. - Except for machines with unusual kinematics (e.g., hexapods) there is - no reason to make this value larger than *SERVO_PERIOD*. +* 'TRAJ_PERIOD = 100000' - (((TRAJ PERIOD))) This is the "Trajectory Planner" + task period (in HAL), in nanoseconds. This value will be rounded to an integer + multiple of 'SERVO_PERIOD'. Except for machines with unusual kinematics + (e.g., hexapods) there is no reason to make this value larger than 'SERVO_PERIOD'. === [TASK] Section[[sub:[TASK]-section]] (((TASK (inifile section)))) -TASK = milltask:: +* 'TASK = milltask' - Specifies the name of the "task" executable. The "task" executable does various things, such as communicate with the UIs over NML, communicate with the realtime motion planner over non-HAL shared memory, and interpret gcode. @@ -580,7 +557,7 @@ TASK = milltask:: frequently the case that an integrator would have to build a modified version of things like task, I/O, and motion for a specific machine.] -CYCLE_TIME = 0.010:: +* 'CYCLE_TIME = 0.010' - The period, in seconds, at which EMCTASK will run. This parameter affects the polling interval when waiting for motion to complete, when executing a pause instruction, and when accepting a command from a user @@ -590,46 +567,40 @@ CYCLE_TIME = 0.010:: (((HAL (inifile section)))) -TWOPASS=ON:: - Use two pass processing for loading HAL comps. With TWOPASS processing, +* 'TWOPASS=ON' - Use two pass processing for loading HAL comps. With TWOPASS processing, all [HAL]HALFILES are first read and multiple appearances of loadrt directives for each moduleb are accumulated. No hal commands are executed in this initial pass. -HALFILE = example.hal:: - Execute the file 'example.hal' at start up. If *HALFILE* is specified - multiple times, the files are executed in the order they +* 'HALFILE = example.hal' - Execute the file 'example.hal' at start up. + If 'HALFILE' is specified multiple times, the files are executed in the order they appear in the ini file. Almost all configurations will have at least - one *HALFILE*, and stepper systems typically have two such files, one + one 'HALFILE', and stepper systems typically have two such files, one which - specifies the generic stepper configuration (`core_stepper.hal`) and - one which specifies the machine pin out (`xxx_pinout.hal`) + specifies the generic stepper configuration ('core_stepper.hal') and + one which specifies the machine pin out ('xxx_pinout.hal') -HALCMD = command:: - Execute 'command' as a single HAL command. If *HALCMD* is specified - multiple times, the commands are executed in the order - they appear in the ini file. *HALCMD* lines are executed after all - *HALFILE* lines. +* 'HALCMD = command' - Execute 'command' as a single HAL command. + If 'HALCMD' is specified multiple times, the commands are executed in the order + they appear in the ini file. 'HALCMD' lines are executed after all + 'HALFILE' lines. -SHUTDOWN = shutdown.hal:: - Execute the file 'shutdown.hal' when EMC is exiting. Depending on the - hardware drivers used, this may make it possible to set outputs to +* 'SHUTDOWN = shutdown.hal' - Execute the file 'shutdown.hal' when EMC is exiting. + Depending on the hardware drivers used, this may make it possible to set outputs to defined values when EMC is exited normally. However, because there is no guarantee this file will be executed (for instance, in the case of a computer crash) it is not a replacement for a proper physical e-stop chain or other protections against software failure. -POSTGUI_HALFILE = example2.hal:: - -'(Only with the TOUCHY and AXIS GUI)' Execute 'example2.hal' after the GUI has -created its HAL pins. See -section <<sec:pyvcp-with-axis>> for more information. +* 'POSTGUI_HALFILE = example2.hal' - (Only with the TOUCHY and AXIS GUI) + Execute 'example2.hal' after the GUI has created its HAL pins. See + section <<sec:pyvcp-with-axis>> for more information. === [HALUI] section[[sub:[HALUI]-section]] (((HALUI (inifile section)))) -MDI_COMMAND = G53 G0 X0 Y0 Z0:: +* 'MDI_COMMAND = G53 G0 X0 Y0 Z0' - An MDI command can be executed by using halui.mdi-command-00. Increment the number for each command listed in the [HALUI] section. @@ -640,70 +611,59 @@ MDI_COMMAND = G53 G0 X0 Y0 Z0:: The [TRAJ] section contains general parameters for the trajectory planning module in EMCMOT. -COORDINATES = X Y Z:: -The names of the axes being controlled. Only X, Y, Z, A, B, C, U, V, W are valid. -Only axes named in *COORDINATES* are accepted in g-code. -This has no effect on the mapping from G-code - axis names (X- Y- Z-) to joint numbers--for "trivial kinematics", X is +* 'COORDINATES = X Y Z' - The names of the axes being controlled. + Only X, Y, Z, A, B, C, U, V, W are valid. Only axes named in 'COORDINATES' + are accepted in g-code. This has no effect on the mapping from G-code + axis names (X- Y- Z-) to joint numbers--for 'trivial kinematics', X is always joint 0, A is always joint 4, and U is always joint 7, and so on. It is permitted to write an axis name twice (e.g., X Y Y Z for a gantry machine) but this has no effect. -AXES = 3:: - One more than the number of the highest joint number in the system. +* 'AXES = 3' - One more than the number of the highest joint number in the system. For an XYZ machine, the joints are numbered 0, 1 and 2; in this case - AXES should be 3. For an XYUV machine using "trivial kinematics", the V + AXES should be 3. For an XYUV machine using 'trivial kinematics', the V joint is numbered 7 and therefore AXES should be 8. For a machine with nontrivial kinematics (e.g., scarakins) this will generally be the number of controlled joints. -HOME = 0 0 0:: - Coordinates of the homed position of each axis. Again +* 'HOME = 0 0 0' - Coordinates of the homed position of each axis. Again for a fourth axis you will need 0 0 0 0. This value is only used for machines with nontrivial kinematics. On machines with trivial kinematics this value is ignored. -LINEAR_UNITS = <units>:: - (((LINEAR UNITS))) Specifies the machine units for linear axes. +* 'LINEAR_UNITS = <units>' - (((LINEAR UNITS))) Specifies the machine units for linear axes. Possible choices are (in, inch, imperial, metric, mm). This does not affect the linear units in NC code (the G20 and G21 words do this). -ANGULAR_UNITS = <units>:: - (((ANGULAR UNITS))) Specifies the machine units for rotational axes. +* 'ANGULAR_UNITS = <units>' - (((ANGULAR UNITS))) Specifies the machine units for rotational axes. Possible choices are 'deg', 'degree' (360 per circle), 'rad', 'radian' (2pi per circle), 'grad', or 'gon' (400 per circle). This does not affect the angular units of NC code. In RS274NGC, A-, B- and C- words are always expressed in degrees. -DEFAULT_VELOCITY :: - *= 0.0167* The initial rate for jogs of linear axes, in machine units +* 'DEFAULT_VELOCITY = 0.0167' - The initial rate for jogs of linear axes, in machine units per second. The value shown equals one unit per minute. -DEFAULT_ACCELERATION :: - *= 2.0* In machines with nontrivial kinematics, the acceleration used +* 'DEFAULT_ACCELERATION = 2.0' - In machines with nontrivial kinematics, the acceleration used for "teleop" (Cartesian space) jogs, in machine units per second per second. -MAX_VELOCITY = 5.0:: - (((MAX VELOCITY))) The maximum velocity for any axis or coordinated +* 'MAX_VELOCITY = 5.0' - (((MAX VELOCITY))) The maximum velocity for any axis or coordinated move, in machine units per second. The value shown equals 300 units per minute. -MAX_ACCELERATION = 20.0:: - (((MAX ACCELERATION))) The maximum acceleration for any axis or +* 'MAX_ACCELERATION = 20.0' - (((MAX ACCELERATION))) The maximum acceleration for any axis or coordinated axis move, in machine units per second per second. -POSITION_FILE = position.txt:: - If set to a non-empty value, the joint positions are stored between +* 'POSITION_FILE = position.txt' - If set to a non-empty value, the joint positions are stored between runs in this file. This allows the machine to start with the same coordinates it had on shutdown. This assumes there was no movement of the machine while powered off. If unset, joint positions are not stored and will begin at 0 each time EMC is started. This can help on smaller machines without home switches. -NO_FORCE_HOMING = 1:: - The default behavior is for EMC to force the user to home the machine +* 'NO_FORCE_HOMING = 1' - The default behavior is for EMC to force the user to home the machine before any MDI command or a program is run. Normally jogging only is allowed before homing. Setting NO_FORCE_HOMING = 1 allows the user to make MDI moves and run programs without homing the machine first. @@ -711,8 +671,7 @@ NO_FORCE_HOMING = 1:: [WARNING] Using this will allow the machine to go beyond the soft limits -while in operation. + -It is not generally desirable to allow this. +while in operation. It is not generally desirable to allow this. === [AXIS_<num>] Section[[sub:[AXIS]-section]] @@ -725,44 +684,44 @@ specified in the [TRAJ] AXES entry minus 1. Typically (but not always): - - AXIS_0 = X - - AXIS_1 = Y - - AXIS_2 = Z - - AXIS_3 = A - - AXIS_4 = B - - AXIS_5 = C - - AXIS_6 = U - - AXIS_7 = V - - AXIS_8 = W +* AXIS_0 = X +* AXIS_1 = Y +* AXIS_2 = Z +* AXIS_3 = A +* AXIS_4 = B +* AXIS_5 = C +* AXIS_6 = U +* AXIS_7 = V +* AXIS_8 = W -TYPE = LINEAR:: +* 'TYPE = LINEAR' - The type of axes, either LINEAR or ANGULAR. -WRAPPED_ROTARY = 1:: +* 'WRAPPED_ROTARY = 1' - When this is set to 1 for an ANGULAR axis the axis will move 0-359.999 degrees. Positive Numbers will move the axis in a positive direction and negative numbers will move the axis in the negative direction. -UNITS = INCH:: +* 'UNITS = INCH' - (((UNITS))) If specified, this setting overrides the related [TRAJ] UNITS setting. (e.g., [TRAJ]LINEAR_UNITS if the TYPE of this axis is LINEAR, [TRAJ]ANGULAR_UNITS if the TYPE of this axis is ANGULAR) -MAX_VELOCITY = 1.2:: +* 'MAX_VELOCITY = 1.2' - Maximum velocity for this axis in machine units per second. -MAX_ACCELERATION = 20.0:: +* 'MAX_ACCELERATION = 20.0' - Maximum acceleration for this axis in machine units per second squared. -BACKLASH = 0.0000:: +* 'BACKLASH = 0.0000' - (((Backlash))) Backlash in machine units. Backlash compensation value can be used to make up for small deficiencies in the hardware used to drive an axis. If backlash is added to an axis and you are using steppers the STEPGEN_MAXACCEL must be increased to 1.5 to 2 times the MAX_ACCELERATION for the axis. -COMP_FILE = file.extension:: +* 'COMP_FILE = file.extension' - (((Compensation))) A file holding compensation structure for the axis. The file could be named xscrew.comp, for example, for the X axis. File names are case sensitive and can contain letters and/or numbers. The @@ -772,12 +731,12 @@ COMP_FILE = file.extension:: triplets per axis. If COMP_FILE is specified, BACKLASH is ignored. Compensation file values are in machine units. -COMP_FILE_TYPE = 0 or 1:: - *If 0:* The second and third values specify +* 'COMP_FILE_TYPE = 0 or 1' - +** 'If 0:' The second and third values specify the forward position (where the axis is while traveling forward) and the reverse position (where the axis is while traveling reverse), - positions which correspond to the nominal position. + - *If 1:* The second and third values specify + positions which correspond to the nominal position.' +** 'If 1:' The second and third values specify the forward trim (how far from nominal while traveling forward) and the reverse trim (how far from nominal while traveling in reverse), positions which correspond to the nominal position. @@ -785,15 +744,15 @@ COMP_FILE_TYPE = 0 or 1:: Example triplet with COMP_FILE_TYPE = 0: 1.00 1.01 0.99 + Example triplet with COMP_FILE_TYPE = 1: 1.00 0.01 -0.01 -MIN_LIMIT = -1000:: +* 'MIN_LIMIT = -1000' - (((MIN LIMIT))) The minimum limit (soft limit) for axis motion, in machine units. When this limit is exceeded, the controller aborts axis motion. -MAX_LIMIT = 1000:: +* 'MAX_LIMIT = 1000' - (((MAX LIMIT))) The maximum limit (soft limit) for axis motion, in machine units. When this limit is exceeded, the controller aborts axis motion. -MIN_FERROR = 0.010:: +* 'MIN_FERROR = 0.010' - (((MIN FERROR))) This is the value in machine units by which the axis is permitted to deviate from commanded position at very low speeds. If MIN_FERROR is smaller than FERROR, the two produce a ramp of error trip points. You @@ -801,7 +760,7 @@ MIN_FERROR = 0.010:: other is permitted following error. As speed increases the amount of following error also increases toward the FERROR value. -FERROR = 1.0:: +* 'FERROR = 1.0' - (((FERROR))) FERROR is the maximum allowable following error, in machine units. If the difference between commanded and sensed position exceeds this amount, the controller disables servo calculations, sets all the @@ -827,32 +786,32 @@ FERROR = 1.0:: These parameters are Homing related, for a better explanation read the Homing Section (<<sec:Homing>>). -HOME = 0.0:: +* 'HOME = 0.0' - The position that the joint will go to upon completion of the homing sequence. -HOME_OFFSET = 0.0:: +* 'HOME_OFFSET = 0.0' - The axis position of the home switch or index pulse, in machine units. In other words, when the home point is found during the homing process, this is the value or position that should be assigned to the home point, or initialized at the home point. -HOME_SEARCH_VEL = 0.0:: +* 'HOME_SEARCH_VEL = 0.0' - (((HOME SEARCH VEL))) Initial homing velocity in machine units per second. Sign denotes direction of travel. A value of zero means assume that the current location is the home position for the machine. If your machine has no home switches you will want to leave this value at zero. -HOME_LATCH_VEL = 0.0:: +* 'HOME_LATCH_VEL = 0.0' - Homing velocity in machine units per second to the home switch latch position. Sign denotes direction of travel. -HOME_FINAL_VEL = 0.0:: +* 'HOME_FINAL_VEL = 0.0' - Velocity in machine units per second from home latch position to home position. If left at 0 or not included in the axis rapid velocity is used. Must be a positive number. -HOME_USE_INDEX = NO:: +* 'HOME_USE_INDEX = NO' - If the encoder used for this axis has an index pulse, and the motion card has provision for this signal you may set it to yes. When it is @@ -860,24 +819,24 @@ HOME_USE_INDEX = NO:: home to index with steppers unless you're using stepgen in velocity mode and PID. -HOME_IGNORE_LIMITS = NO:: +* 'HOME_IGNORE_LIMITS = NO' - Some machines use a single switch per axis as a home switch and limit switch. This variable should be set to YES if the machine configured this way. When set to YES the limit switch for this axis only is ignored when homing. -HOME_IS_SHARED = <n>:: +* 'HOME_IS_SHARED = <n>' - If the home input is shared by more than one axis set <n> to 1 to prevent homing from starting if the one of the shared switches is already closed. Set <n> to 0 to permit homing if a switch is closed. -HOME_SEQUENCE = <n>:: +* 'HOME_SEQUENCE = <n>' - Used to define the "Home All" sequence. <n> starts at 0 and no numbers may be skipped. If left out or set to -1 the joint will not be homed by the "Home All" function. More than one axis can be homed at the same time. -VOLATILE_HOME = 0:: +* 'VOLATILE_HOME = 0' - When enabled (set to 1) this joint will be unhomed if the Machine Power is off or if E-Stop is on. This is useful if your machine has home switches and does not have position feedback such as a step and @@ -889,7 +848,7 @@ The following items are for servo-based systems and servo-like systems. This description assumes that the units of output from the PID component are volts. -DEADBAND = 0.000015:: +DEADBAND = 0.000015' - (in HAL) How close is close enough to consider the motor in position, in machine units. This is often set to a distance equivalent to 1, 1.5, 2, or 3 encoder counts, but there are no strict rules. @@ -904,16 +863,20 @@ there is no place that your servo is happy. This can go beyond "hunting" (slow) oscillation caused by improper tuning. Better to be a count or two loose here at first, until you've been through "gross tuning" at least. -Example of calculating machine units per encoder count to use in deciding DEADBAND value: +Example of calculating machine units per encoder pulse to use in deciding DEADBAND value: +/////////////////////////////////////////////////////////// latexmath:[ \frac{X\, inches}{1\, encoder\, count} = \frac{1\, revolution}{1000\, encoder\, lines} \times \frac{1\, encoder\, line}{4\, quadrature\, counts} \times \frac{0.200\, inches}{1\, revolution} = \frac{0.200\, inches}{4000\, encoder\, counts} = \frac{0.000050\, inches}{1\, encoder\, count} ] +/////////////////////////////////////////////////////////// + +image::images/encoder-counts-math.png[align="center"] -BIAS = 0.000:: +* 'BIAS = 0.000' - (in HAL) '(Sometimes called *offset*)' This is used by hm2-servo and some others. Bias is a constant amount that is added to the output. In most cases it should be left at zero. @@ -922,54 +885,67 @@ BIAS = 0.000:: vertically. bias is turned off when the PID loop is disabled, just like all other components of the output. -P = 50:: +* 'P = 50' - (in HAL) The proportional gain for the axis servo. This value multiplies the error between commanded and actual position in machine units, resulting in a contribution to the computed voltage for the motor amplifier. The - units on the P gain are volts per machine unit, e.g., latexmath:[$\frac{volt}{mu}$]. + units on the P gain are volts per machine unit, e.g., + image:images/p-term.png[height=25] + +//latexmath:[$\frac{volt}{mu}$]. -I = 0:: +* 'I = 0' - (in HAL) The integral gain for the axis servo. The value multiplies the cumulative error between commanded and actual position in machine units, resulting in a contribution to the computed voltage for the motor amplifier. The units on the I gain are volts per machine unit - second, e.g., latexmath:[$\frac{volt}{mu\, s}$]. |