/ configs / sim / axis / orphans / pyiocontrol.ini.notworking
pyiocontrol.ini.notworking
  1  # EMC controller parameters for a simulated machine.
  2  # General note: Comments can either be preceded with a # or ; - either is
  3  # acceptable, although # is in keeping with most linux config files.
  4  # General section -------------------------------------------------------------
  5  
  6  [EMC]
  7  # make emcsrv not create tool rcs channels if not using iocontrol
  8  TOOL_CHANNELS = 0
  9  # Name of NML file to use, default is emc.nml
 10  NML_FILE =              no-iotask.nml
 11  # Version of this INI file
 12  VERSION = 1.0
 13  # Name of machine, for use with display, etc.
 14  MACHINE =               pyiocontrol.ini
 15  # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
 16  #DEBUG =               0x7FFFFFFF
 17  #DEBUG =               0x7FFFDEFF  #no interp,oword
 18  #DEBUG  =   	       0x00008000 # py only
 19  #DEBUG  =   	       0x0000E000 # py + remap + Oword
 20  #DEBUG  =   	       0x0000C000 # py + remap
 21  #DEBUG  =   	       0x0000C100 # py + remap + Interpreter
 22  #DEBUG  =   	       0x0000C140 # py + remap + Interpreter + NML msgs
 23  DEBUG  =   	       0x0004C140 # py + remap + Interpreter + NML msgs + PythonTask
 24  #DEBUG  =   	       0x0000C040 # py + remap + NML
 25  #DEBUG  =   	       0x0004C040 # py + remap + NML + PythonTask
 26  #DEBUG  =   	       0x0003E100 # py + remap + Interpreter + oword + signals + namedparams
 27  #DEBUG =                0x00008000
 28  #DEBUG = 0 # 0x00000100
 29  #    0x00000001 Ausgabe ungültige Meldungen
 30  #    0x00000002 Ausgabe Konfigurations-Settings
 31  #    0x00000004 Ausgabe Defaults
 32  #    0x00000008 Ausgabe Version
 33  #    0x00000010 Ausgabe Task Meldungen
 34  #    0x00000020 Ausgabe IO-Points
 35  #    0x00000040 Ausgabe NML-Messages
 36  #    0x00000080 Ausgabe Zeit zur Beendigung einer Motorbewegung
 37  #    0x00000100 Ausgabe Intepreter Debugging
 38  #    0x00000200 Ausgabe RCS-Debugging
 39  #    0x00000400 Ausgabe Roh-Bahn-Daten
 40  #    0x00000800 Ausgabe Interpreter List
 41  #define EMC_DEBUG_IOCONTROL         0x00001000
 42  #define EMC_DEBUG_OWORD             0x00002000
 43  #define EMC_DEBUG_REMAP             0x00004000
 44  #define EMC_DEBUG_PYTHON            0x00008000
 45  #define EMC_DEBUG_NAMEDPARAM        0x00010000
 46  #define EMC_DEBUG_GDBONSIGNAL 	    0x00020000
 47  #define EMC_DEBUG_PYTHON_TASK       0x00040000
 48  #    0x7FFFFFFF Ausgabe alle Debugging Messages
 49  # Sections for display options ------------------------------------------------
 50  
 51  [DISPLAY]
 52  # how to use the Firefox SQlite manager plugin as tooltable editor:
 53  #
 54  # 0: read http://code.google.com/p/sqlite-manager/wiki/XulrunnerApplication#More_details
 55  #
 56  # 1. download the zip file  'SQLiteManager 0.7.6 as XULRunner App '
 57  #    or whatever is the latest from http://code.google.com/p/sqlite-manager/downloads/list
 58  #
 59  # 2. Install like so:
 60  #    sudo xulrunner --install-app /path/to/zipfile
 61  #    This will install an app in /usr/local/lib/lazierthanthou/sqlite-manager/sqlite-manager .
 62  #    (note this path recently change - please verify)
 63  #
 64  # 3. try the following command line with an appropriate path to the tooltable database:
 65  #
 66  TOOL_EDITOR= firefox -app  /usr/lib/lazierthanthou/sqlite-manager/application.ini -f /home/mah/emc2-tc/configs/sim/tooltable.sqlite
 67  #GLADEVCP=osubdemo-ns.ui
 68  # Name of display program, e.g., xemc
 69  DISPLAY =             axis
 70  #OPEN_FILE=../../nc_files/m66test.ngc
 71  #OPEN_FILE=/home/mah/emc2-tc/nc_files/arcspiral.ngc
 72  #OPEN_FILE=/home/mah/emc2-tc/nc_files/taskcall.ngc
 73  OPEN_FILE=./taskcall.ngc
 74  # Cycle time, in seconds, that display will sleep between polls
 75  CYCLE_TIME =            0.100
 76  # Path to help file
 77  HELP_FILE =             doc/help.txt
 78  # Initial display setting for position, RELATIVE or MACHINE
 79  POSITION_OFFSET =       RELATIVE
 80  # Initial display setting for position, COMMANDED or ACTUAL
 81  POSITION_FEEDBACK =     ACTUAL
 82  # Highest value that will be allowed for feed override, 1.0 = 100%
 83  MAX_FEED_OVERRIDE =     1.2
 84  MAX_SPINDLE_OVERRIDE =  1.0
 85  # Prefix to be used
 86  #PROGRAM_PREFIX = /home/mah/emc2-tc/nc_files/
 87  PROGRAM_PREFIX = ../../nc_files/
 88  # Introductory graphic
 89  #INTRO_GRAPHIC = emc2.gif
 90  INTRO_TIME = 0
 91  #EDITOR = gedit
 92  INCREMENTS = 1 mm, .01 in, .1mm, 1 mil, .1 mil, 1/8000 in
 93  
 94  [FILTER]
 95  PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
 96  PROGRAM_EXTENSION = .py Python Script
 97  png = image-to-gcode
 98  gif = image-to-gcode
 99  jpg = image-to-gcode
100  py = python
101  # Task controller section -----------------------------------------------------
102  
103  [RS274NGC]
104  #PRINT_CODES = 1
105  SUBROUTINE_PATH = ../../nc_files/remap_lib/common_nc_subs
106  #RS274NGC_STARTUP_CODE = G21
107  # this bombs - machine not on yet so no 'I/O' possible
108  #RS274NGC_STARTUP_CODE = M61Q3
109  # handler procedure called on aborts - to cleanup HAL pins etc
110  #ON_ABORT_COMMAND=o<on_abort>call
111  #LOG_FILE= py.log
112  LOG_LEVEL = 9
113  # File containing interpreter variables
114  PARAMETER_FILE =        sim_mm.var
115  # generalized  remapping
116  #------------------------
117  # currently only unused M- and G-codes may be activated as per below, except for the
118  # T,M6,M61,S and F codes.
119  # G: currently supported modal group: 1
120  # M:currently supported modal groups: 5,6,7,8,9,10
121  # for T,S,F remaps the modal group is fixed and any modalgroup= option is ignored
122  # An argument specification (keyword 'argspec') describes required and  permitted words,
123  # and precondtions for that code to execute.
124  #
125  
126  # It consists of 0-n characters of the class [@A-KMNP-Za-kmnp-z^>] .
127  #
128  # parameter words:
129  #   an uppercase letter for each required parameter 'word'
130  #   a lowercase letter for each optional parameter 'word'
131  #
132  # Preconditions:
133  #   an '^' means: speed must be > 0
134  #   an '>' means: feed must be > 0
135  #
136  # if calling an NGC oword function (ngc=<funcname>), the parameters are passed
137  # as local named parameters which are already set when the function starts
138  # optional words are passed if set in the block, and may be tested for existence
139  # by # EXISTS(#<..>) .
140  #
141  # example:
142  # REMAP=M400  modalgroup=10 argspec=Px ngc=demosub
143  #
144  # executing 'M400 P2 X3' will result in the call
145  # o<demosub> call
146  #
147  # the demosub.ngc body might look as follows:
148  #-------------------------
149  # o<demosub> sub
150  #
151  # (debug, P=#<x>)   (note: P is required since it's uppercase in the argspec)
152  #
153  # (the x argspec is optional since its lowercase in the argspec. Use as follows:)
154  #
155  
156  # o100 if [EXISTS[#<x>]]
157  #     (debug, X param set: #<x>)
158  # o100 endif
159  #
160  # o<demosub> endsub
161  # M2
162  #-------------------------
163  #
164  # Calling with traditional positioal parameter lists:
165  #
166  # To do so, add the '@' character to the argspec.
167  # In this case, the arguments (required or optional) will be passed tradional-style
168  # ini example:
169  # REMAP=M400  modalgroup=10 argspec=@XYp ngc=demosub
170  #
171  # executing 'M400 X2 Y3' will result in the call
172  
173  # o<demosub> call [2] [3]
174  #
175  # executing 'M400 X2 Y3 P4' will result in the call
176  
177  # o<demosub> call [2] [3] [4]
178  #
179  # NB: you lose the capability to distinguish more than one optional parameter word!
180  #
181  # if calling a Python function, the actual words present in the block as
182  # required or optional are passed in the words dictionary; no positional
183  # parameters are passed in this case.
184  #REMAP=F  python=blah deppert -aanix
185  REMAP=G88.1 modalgroup=1  argspec=xyzpqr  ngc=g881min
186  REMAP=G88.2 modalgroup=1  argspec=xyzpqr  ngc=g882min prolog=addlocals
187  #prolog=fooprolog epilog=fooepilog
188  #REMAP=G88.6 modalgroup=1  argspec=@XYZ   ngc=g886
189  #REMAP=G88.8 modalgroup=1  argspec=XYZ    python=m315
190  # cone cycle
191  # abcdefhijklpqrstuvwxyz
192  REMAP=G88.9 modalgroup=1  argspec=@XZIJKLPQRABC  ngc=rcone
193  
194  # ( o<cone> call [X1][Z1][X2][Z2][step][feed][EngageZ][ClearAxial][ClearRadial][feedF][outflag])
195  # O<cone> sub
196  # (Startpoint)
197  
198  # #<X1>		= [#1] X
199  
200  # #<Z1>		= [#2] Z
201  # (Endpoint)
202  
203  # #<X2>		= [#3] I
204  
205  # #<Z2>		= [#4] J
206  
207  # #<step>		= [#5] 	(Radial stepdown) K
208  
209  # #<feed>		= [#6] 	(Roughing feed rate) L
210  
211  # #<EngageZ>	= [#7] 	(Clearance to stock) P
212  
213  # #<ClearAxial>	= [#8]	(Axial rest material for finishing) Q
214  
215  # #<ClearRadial>	= [#9]	(Radial rest material for finishing) R
216  
217  # #<feedF>	= [#10]	(Finishing feed rate) A
218  
219  # #<outflag>	= [#11]	(Lead out move) B
220  
221  # #<actX>		= [#3]	(Start position in X) C
222  #REMAP=M75   modalgroup=10 python=m250
223  #REMAP=M250  modalgroup=10 argspec=xyzpqr python=whoami prolog=fooprolog epilog=fooepilog
224  #REMAP=M251  modalgroup=6  argspec=xyzpqr python=whoami
225  #REMAP=M315  modalgroup=10 python=m315
226  REMAP=M400  modalgroup=10 prolog=introspect ngc=nestremap
227  REMAP=M401  modalgroup=10 prolog=introspect ngc=null_sub
228  REMAP=M402  modalgroup=10 argspec=p python=test_reschedule
229  REMAP=M403  modalgroup=10 argspec=p python=print_tool
230  REMAP=M404  modalgroup=10 argspec=PQ python=set_tool_zoffset
231  #REMAP=S  ngc=sdemo prolog=sprolog
232  #REMAP=F   ngc=null_sub # python=null_remap
233  #REMAP=S   python=null_remap
234  # see pythonsubs.py and nc_files/remap-subroutines
235  #REMAP=T argspec=T  prolog=prepare_prolog epilog=prepare_epilog ngc=prepare
236  #REMAP=M61  modalgroup=6  argspec=Q    python=set_tool_number
237  #REMAP=M6   modalgroup=6       prolog=change_prolog ngc=change epilog=change_epilog
238  # for a
239  #REMAP=T   argspec=T      prolog=prepare_prolog ngc=rtdemo  epilog=prepare_epilog
240  #REMAP=M6  modalgroup=6   prolog=change_prolog  ngc=rm6demo epilog=change_epilog
241  #REMAP=M61 modalgroup=6  prolog=change_prolog  ngc=rm6demo.ngc epilog=change_epilog
242  #REMAP=M61  modalgroup=6  argspec=Q    python=set_tool_number
243  # this needs work..
244  #RETAIN_G43=1
245  REMAP=M900 python=gen_backtrace  modalgroup=10
246  REMAP=M901 python=gdb_window 	 modalgroup=10
247  REMAP=M950 argspec=p python=symbols  modalgroup=10
248  # a plain .ngc sub call by M42:
249  #
250  #REMAP=M42 modalgroup=9  prolog=setup_m42 ngc=m42.ngc epilog=finish_m42
251  #
252  # semantics:
253  # if M42 is encountered, execute it in modal group 9.
254  # Fail if other group 9 codes are present in the current block.
255  # the setup_m42 prolog Python function will be called before executing 'o<m42> call'
256  # Then the O-word sub m42.ngc is executed.
257  # The finish_m42 epilog Python function will be executed after m42.ngc finishes.
258  #
259  
260  [EMCMOT]
261  EMCMOT =              motmod
262  # Timeout for comm to emcmot, in seconds
263  COMM_TIMEOUT =          1.0
264  # BASE_PERIOD is unused in this configuration but specified in core_sim.hal
265  BASE_PERIOD  =               0
266  # Servo task period, in nano-seconds
267  SERVO_PERIOD =               1000000
268  # Hardware Abstraction Layer section --------------------------------------------------
269  
270  [TASK]
271  # Name of task controller program, e.g., milltask
272  TASK =                  milltask
273  # Cycle time, in seconds, that task controller will sleep between polls
274  CYCLE_TIME =            0.001
275  # the Python plugins serves the interpreter as well as task
276  
277  [HAL]
278  # The run script first uses halcmd to execute any HALFILE
279  # files, and then to execute any individual HALCMD commands.
280  #
281  # list of hal config files to run through halcmd
282  # files are executed in the order in which they appear
283  #HALFILE =                    core_sim_noio.hal
284  #HALFILE =                    core_sim.hal
285  POSTTASK_HALFILE =     core_sim_test.hal
286  POSTTASK_HALFILE =     axis_manualtoolchange.hal
287  POSTTASK_HALFILE = iov2.hal
288  #HALFILE = axis_owordsub_manualtoolchange.hal
289  #HALFILE = simulated_home.hal
290  POSTTASK_HALFILE = simulated_home.hal
291  #HALFILE = gamepad.hal
292  # list of halcmd commands to execute
293  # commands are executed in the order in which they appear
294  #HALCMD =                    save neta
295  # Single file that is executed after the GUI has started.  Only supported by
296  # AXIS at this time (only AXIS creates a HAL component of its own)
297  #POSTGUI_HALFILE = test_postgui.hal
298  #POSTGUI_HALFILE = v2_oword_gladevcp_postgui_noio.hal
299  HALUI = halui
300  # Trajectory planner section --------------------------------------------------
301  
302  [HALUI]
303  #No Content
304  
305  [TRAJ]
306  COORDINATES =           X Y Z
307  HOME =                  0 0 0
308  LINEAR_UNITS =          mm
309  ANGULAR_UNITS =         degree
310  DEFAULT_VELOCITY =      30.48
311  MAX_VELOCITY =          53.34
312  DEFAULT_ACCELERATION =  508
313  MAX_ACCELERATION =      508
314  POSITION_FILE = position_mm.txt
315  NO_FORCE_HOMING =       1
316  # Axes sections ---------------------------------------------------------------
317  # First axis
318  
319  [EMCIO]
320  # Name of IO controller program, e.g., io
321  #  explicitly support the start-change protocol.
322  #  needs to be explicitly enabled for backwards compatibility.
323  #  NB: if the start-change pin isnt used it needs to be looped like below to
324  #  start-change-ack or an M6 will hang waiting for start-change-ack:
325  #  net start-change iocontrol.0.start-change  iocontrol.0.start-change-ack
326  #EMCIO = 		iov2 -support-start-change
327  # starting iov2 like so will create the start-change and start-change-ack pins
328  # but the start-change protocol remains disabled - start-change remains low and
329  # start-change-ack is ignored:
330  #EMCIO = 		iov2
331  # cycle time, in seconds
332  CYCLE_TIME =    0.100
333  # tool table file
334  #TOOL_TABLE =    sim_mm_test.tbl
335  TOOL_TABLE =    nstools.tbl
336  TOOL_CHANGE_POSITION = 0 0 50.8
337  RANDOM_TOOLCHANGER = 0
338  
339  [KINS]
340  KINEMATICS = trivkins
341  JOINTS = 3
342  
343  [AXIS_X]
344  MIN_LIMIT = -254
345  MAX_LIMIT = 254
346  MAX_VELOCITY = 30.48
347  MAX_ACCELERATION = 508
348  
349  [JOINT_0]
350  TYPE =                          LINEAR
351  HOME =                          0.000
352  MAX_VELOCITY =                  30.48
353  MAX_ACCELERATION =              508
354  BACKLASH = 0.000
355  INPUT_SCALE =                   157.48
356  OUTPUT_SCALE = 1.000
357  MIN_LIMIT =                     -254
358  MAX_LIMIT =                     254
359  FERROR = 1.27
360  MIN_FERROR = .254
361  HOME_OFFSET =                    0.0
362  HOME_SEARCH_VEL =                127
363  HOME_LATCH_VEL =                 25.4
364  HOME_USE_INDEX =                 NO
365  HOME_IGNORE_LIMITS =             NO
366  HOME_SEQUENCE = 1
367  HOME_IS_SHARED = 1
368  # Second axis
369  
370  [AXIS_Y]
371  MIN_LIMIT = -254
372  MAX_LIMIT = 254
373  MAX_VELOCITY = 30.48
374  MAX_ACCELERATION = 508
375  
376  [JOINT_1]
377  TYPE =                          LINEAR
378  HOME =                          0.000
379  MAX_VELOCITY =                  30.48
380  MAX_ACCELERATION =              508
381  BACKLASH = 0.000
382  INPUT_SCALE =                   157.48
383  OUTPUT_SCALE = 1.000
384  MIN_LIMIT =                     -254
385  MAX_LIMIT =                     254
386  FERROR = 1.27
387  MIN_FERROR = .254
388  HOME_OFFSET =                    0.0
389  HOME_SEARCH_VEL =                127
390  HOME_LATCH_VEL =                 25.4
391  HOME_USE_INDEX =                 NO
392  HOME_IGNORE_LIMITS =             NO
393  HOME_SEQUENCE = 1
394  # Third axis
395  
396  [AXIS_Z]
397  MIN_LIMIT = -50.8
398  MAX_LIMIT = 101.6
399  MAX_VELOCITY = 30.48
400  MAX_ACCELERATION = 508
401  
402  [JOINT_2]
403  TYPE =                          LINEAR
404  HOME =                          0.0
405  MAX_VELOCITY =                  30.48
406  MAX_ACCELERATION =              508
407  BACKLASH = 0.000
408  INPUT_SCALE =                   157.48
409  OUTPUT_SCALE = 1.000
410  MIN_LIMIT =                     -50.8
411  MAX_LIMIT =                     101.6
412  FERROR = 1.27
413  MIN_FERROR = .254
414  HOME_OFFSET =                    25.4
415  HOME_SEARCH_VEL =                127
416  HOME_LATCH_VEL =                 25.4
417  HOME_USE_INDEX =                 NO
418  HOME_IGNORE_LIMITS =             NO
419  HOME_SEQUENCE = 0
420  HOME_IS_SHARED = 1
421  # section for main IO controller parameters -----------------------------------
422  
423  [PYTHON]
424  #PLUGIN_DIR=/home/mah/emc2-tc/configs/sim/pysubs
425  PLUGIN_DIR=./pysubs
426  # import the following Python modules
427  MODULE_BASENAME=plugins
428  # if this is set:
429  RELOAD_ON_CHANGE=1
430  # and the file specified in MODULE_BASENAME was changed, it will be reloaded before
431  # executing any Python calls
432  # This is handy for debugging because you dont need to restart EMC
433  # BUT it incurs a bit of overhead per call so you might want to turn
434  # it off in production mode
435  # the Python reload_on_change variable may be used to toggle this
436  # at runtime
437  #LOG_FILE= py.log
438  LOG_LEVEL = 2
439  # start a Python (really IO) Task class
440  # see end of $PLUGIN_DIR/$MODULE_BASENAME/task.py to see how it's instantiated
441  PYTHON_TASK=1
442  # section for everything tool related
443  # relevant only if NOT using iocontrol - see EMCIO in that case
444  
445  [TOOL]
446  # how to connect to a toolstore in an SQL database
447  ODBC_CONNECT= Driver=SQLite3;Database=tooltable.sqlite
448  # legacy tool table filename
449  TOOL_TABLE = foo.tbl
450  # if nonzero, save tool-in-spindle and pocket-prepped on exit, and restore on startup
451  SAVE_TOOLSTATE=1
452  # manual, random, any other
453  CHANGER_TYPE= manual
454  # if TASK_TOOLCHANGE_PINS=1, the task Python plugin will emulate the
455  # following iocontrol.0 pins:
456  #   tool-change
457  #   tool-changed
458  #   tool-number
459  #   tool-prep-number
460  #   tool-prep-pocket
461  #   tool-prepare
462  #   tool-prepared
463  #
464  TASK_TOOLCHANGE_PINS=1
465  # if TASK_START_CHANGE_PINS=1,  the task Python plugin will emulate the
466  # start-change/start-change-ack pins and their protocol as per iocontrolv2:
467  TASK_START_CHANGE_PINS=1
468  # if TASK_TOOLCHANGE_FAULT_PINS=1 the task Python plugin will emulate the iocontrolv2 pins:
469  # emc-abort
470  # emc-abort-ack
471  # emc-reason
472  # toolchanger-fault
473  # toolchanger-fault-ack
474  # toolchanger-reason
475  # toolchanger-faulted
476  # toolchanger-clear-fault
477  TASK_TOOLCHANGE_FAULT_PINS=1
478  # Part program interpreter section --------------------------------------------
479  
480  [VARS]
481  
482  # accessible in interp as #<_[section]name>
483  FOO = 47.11
484  X=3
485  Y=4
486  Z=5
487  TOOL_CHANGE_POSITION_X = 1
488  TOOL_CHANGE_POSITION_Y = 2
489  TOOL_CHANGE_POSITION_Z = 3
490  # Motion control section ------------------------------------------------------