/ docs / src / plasma / plasmac-user-guide.txt
plasmac-user-guide.txt
   1  [[cha:plasmac-user-guide]]
   2  
   3  = PlasmaC User Guide
   4  :toc:
   5  :toclevels: 4
   6  :figure-caption!:
   7  
   8  == License
   9  
  10  PlasmaC and all its related software is released under GPLv2.
  11  
  12  == Introduction
  13  
  14  PlasmaC is a LinuxCNC configuration for plasma cutting incorporating the PlasmaC HAL component with GUI configurations for both <<cha:axis-gui, Axis>> and <<cha:gmoccapy,Gmoccapy>>. It should run on any hardware that is supported on LinuxCNC provide there are enough I/O pins.
  15  
  16  If you are new user, it may be worthwhile having a read through the link:plasma-cnc-primer.html[Plasma CNC Primer] document which is a generic introduction to CNC plasma cutting.
  17  
  18  PlasmaC uses one of three different operating modes.
  19  
  20  [width="100%",cols="4,16"]
  21  |===
  22  |*Mode*|*Description*
  23  |0|Use external arc voltage in to calculate Arc Voltage and Arc OK
  24  |1|Use external arc voltage in to calculate Arc Voltage +
  25     Use external arc ok in for Arc OK
  26  |2|Use external arc ok in for Arc OK +
  27     Use external up/down for THC
  28  |===
  29  
  30  For full functionality, Plasmac requires LinuxCNC v2.9 (the current master) or later. It will work on LinuxCNC v2.8 with only the <<paused-motion, paused motion>> feature not available.
  31  
  32  No Z axis motion is required in G-Code, the standard PlasmaC configurations will comment out any Z commands during program load.
  33  
  34  For reliable use of PlasmaC you should *NOT* use any Z axis offsets other than coordinate system offsets (G54 -G59.3).
  35  
  36  Normally it is best to touch off your Z axis to roughly the top of your stock then bring the Z axis to almost the top of travel before starting your cuts.
  37  
  38  == I/O Requirements
  39  
  40  This section only touches on the I/O required for PlasmaC itself, base machine requirements such as limit switches, home switches etc. are in addition to these.
  41  
  42  [width="100%",cols="4,2,14"]
  43  |===
  44  |*Name*|*Modes*|*Description*
  45  |Arc Voltage|0,1|Analog input to read the arc voltage +
  46                   Typically connected to a velocity output from an encoder
  47  |Float Switch|0,1,2|Digital input. Optional, see below +
  48                      Connected to the switch on the floating head +
  49                      If not using an ohmic probe this is the primary probe sensor +
  50                      If using an ohmic probe this is the fallback probe sensor
  51  |Ohmic Probe|0,1,2|Digital input. Optional, see below +
  52                     Connected to the probe output +
  53                     If used, this is the primary probe sensor
  54  |Ohmic Probe Enable|0,1,2|Digital output. Only required if using ohmic probing +
  55                            Connected to the probe enabling input +
  56                            This pin is used to arm the ohmic probe
  57  |Breakaway Switch|0,1,2|Digital input. Optional, see below +
  58                          Connected to the torch breakaway switch +
  59                    Senses if the torch has broken away from its cradle
  60  |Torch On|0,1,2|Digital output +
  61                  Connected to the torch on input of the plasma power supply
  62  |Move Up|2|Digital input +
  63             Connected to the up output of the external THC control
  64  |Move Down|2|Digital input +
  65               Connected to the down output of the external THC control
  66  |Scribe Arming|0,1,2|Digital output +
  67                       Connected to scribe arming circuit
  68  |Scribe On|0,1,2|Digital output +
  69                       Connected to scribe on circuit
  70  |===
  71  
  72  Only one of either 'float switch' or 'ohmic probe' is required. If both are used then 'float switch' will be a fallback if 'ohmic probe' is not sensed.
  73  
  74  If 'ohmic probe' is used then 'ohmic probe enable' is required.
  75  
  76  'breakaway switch' is not mandatory because 'float switch' is treated the same as a breakaway when not probing. If they were two separate switches, the could be combined and connected as a 'float switch'
  77  
  78  NOTE: The minimum I/O requirement for a PlasmaC configuration is 'arc voltage' input, 'float switch' input and 'torch on' output. In this case, PlasmaC treats the float switch as a breakaway switch when it is not probing.
  79  
  80  IMPORTANT: These pins will be entered later into the Configurator, they should *NOT* be used in your base machine .hal file.
  81  
  82  == Installation
  83  
  84  === Getting LinuxCNC With The PlasmaC Add-Ons
  85  
  86  The minimum requirement for PlasmaC is LinuxCNC v2.8, although this version does NOT support the <<paused-motion, paused motion>> feature.
  87  
  88  LinuxCNC v2.9 or later provides full functionality and is the recommended option.
  89  
  90  === If You Do Not Have Linux Installed
  91  
  92  Download an ISO image from one of the following and write it to a bootable device:
  93  
  94  * RTPREEMPT - http://www.linuxcnc.org/testing-stretch-rtpreempt/ +
  95  For a machine using Mesa Electronics hardware, this can also be used for a machine using a parallel port and is recommended for most modern machines.
  96  
  97  * RTAI - http://www.linuxcnc.org/iso/linuxcnc-2.7.14-wheezy.iso +
  98  For a machine using the parallel port.
  99  
 100  Then boot from the device and follow the prompts.
 101  
 102  This will give you a machine with the current stable (v2.7) branch of LinuxCNC, go to the next section and follow the type of installation you would like. The 'Buildbot' is recommended for most users that will not be doing any LinuxCNC development.
 103  
 104  NOTE: It is possible to install and run LinuxCNC on a variety of Linux distributions but this is beyond the scope of the Plasmac User Guide. If you wish to follow this path then you will need to install your preferred Linux distribution and then install LinuxCNC v2.9 or later (or LinuxCNC v2.8 if you don't need reverse-run) then you can open LinuxCNC and continue with <<sec:testing-linuxcnc, Testing LinuxCNC Installation>>
 105  
 106  All PlasmaC development has been done on a Stretch ISO installation.
 107  
 108  === If You Have LinuxCNC v2.7
 109  
 110  You can then choose between:
 111  
 112  * <<buildbot-install, A Buildbot installation>> The LinuxCNC Buildbot provides pre-compiled packages which can be installed by a package manager.
 113  * <<rip-install, A Run In Place installation>>. RIP builds are compiled on your computer and are normally used if you wish to do any development work.
 114  
 115  [[buildbot-install]]
 116  
 117  ==== Buildbot Installation
 118  
 119  For more information on the LinuxCN Buildbot, see the http://buildbot.linuxcnc.org/[LinuxCNC buildbot]
 120  
 121  To use the buildbot packages on your computer, first add the buildbot archive signing key to your apt keychain by running this command from a terminal:
 122  
 123  ----
 124  sudo apt-key adv --keyserver hkp://keys.gnupg.net --recv-key E0EE663E
 125  ----
 126  
 127  If you get an error like GPG: keyserver receive failed: No dirmngr
 128  
 129  Then enter the following in the terminal:
 130  
 131  ----
 132  sudo apt-get install dirmngr
 133  ----
 134  
 135  The missing dirmngr package will then be installed.
 136  
 137  If you get an error downloading the key it may be caused by being behind a firewall or a proxy server. In this case it may be worthwhile specifying port 80 rather than using the default of 11371:
 138  
 139  ----
 140  sudo apt-key adv --keyserver hkp://keys.gnupg.net:80 --recv-key E0EE663E
 141  ----
 142  
 143  Close the terminal, then from the Main Menu, open Synaptic Package Manager.
 144  
 145  Select Search in the menu bar and do a search using 'linuxcnc' as the search term. Right click on any linuxcnc results and then click Mark for Removal. When all installed results are selected click Apply on the menu bar and these will be deleted.
 146  
 147  Click Settings from the menu and select Repositories.
 148  
 149  You can then either edit or delete existing LinuxCNC entries from the repositories list. You need to end up with the following set of stanzas as the only enabled references to LinuxCNC:
 150  
 151  ----
 152  deb     http://buildbot.linuxcnc.org/ <distro> <branch>-<rt_type>
 153  deb-src http://buildbot.linuxcnc.org/ <distro> <branch>-<rt_type>
 154  ----
 155  
 156  Where:
 157  
 158  * <distro> is stretch or wheezy
 159  * <branch> is master or 2.8
 160  * <rt_type> is rtpreempt or rt
 161  
 162  So if you installed the 'stretch' version and wanted master branch then you would have:
 163  
 164  ----
 165  deb     http://buildbot.linuxcnc.org/ stretch master-rtpreempt
 166  deb-src http://buildbot.linuxcnc.org/ stretch master-rtpreempt
 167  ----
 168  
 169  When this is completed Synaptic should do a package reload, if not do a manual Reload from the menu bar.
 170  
 171  Now do a Search with 'linuxcnc' as the search term and the result should be a list of newly available LinuxCNC packages
 172  
 173  Right click on the package you want to install and then select Mark for Installation.
 174  
 175  For rtpreempt you would select linuxcnc-uspace and for rt it would be linuxcnc.
 176  
 177  You may also select the documentation if you want it installed locally and/or the -dev package if you intend to build new realtime components and/or alternate front-ends for linuxcnc.
 178  
 179  When you have made all your selections, click Apply on the menu bar and the selected packages will be installed.
 180  
 181  Go to <<sec:testing-linuxcnc, testing the linuxCNC installation>>
 182  
 183  [[rip-install]]
 184  
 185  ==== Run In Place Installation
 186  
 187  For more information on a Run In Place installation, see link:../code/building-linuxcnc.html[Building LinuxCNC]
 188  
 189  CAUTION: Ensure you are *NOT* the root user +
 190  Do *NOT* use sudo except for the 'make setuid' step
 191  
 192  Open a terminal window:
 193  
 194  ----
 195  $ git clone git://github.com/linuxcnc/linuxcnc.git linuxcnc-dev
 196  $ cd linuxcnc-dev/src
 197  $ ./autogen.sh
 198  ----
 199  
 200  for RTPREEMPT
 201  
 202  ----
 203  $ ./configure --with-realtime=uspace
 204  ----
 205  
 206  For RTAI (mostly for parallel port machines)
 207  
 208  ----
 209  $ ./configure --with-realtime=/usr/realtime-$VERSION
 210  ----
 211  
 212  You can then try to compile LinuxCNC.
 213  
 214  ----
 215  $ make
 216  ----
 217  
 218  If you get errors here have a look at link:../code/building-linuxcnc.html#Satisfying-Build-Dependencies[Satisfying Build Dependencies]
 219  
 220  If no errors:
 221  
 222  ----
 223  $ sudo make setuid
 224  $ . ../scripts/rip-environment (that is dot space dot dot slash)
 225  $ linuxcnc
 226  ----
 227  
 228  My preferred method of opening a run in place version of LinuxCNC is:
 229  
 230  ----
 231  $ ~/linuxcnc-dev/scripts/linuxcnc
 232  ----
 233  
 234  This script will set the required environment variables and start linuxcnc.
 235  
 236  You could then point this to an .ini file and open a configuration. This command could then be put in a desktop shortcut.
 237  
 238  ----
 239  $ ~/linuxcnc-dev/scripts/linuxcnc ~/linuxcnc/configs/plasmac/plasmac.ini
 240  ----
 241  
 242  [[sec:testing-linuxcnc]]
 243  
 244  === Testing LinuxCNC Installation
 245  
 246  The LinuxCNC Configuration Selector should open.
 247  
 248  Navigate to Sample Configurations - by_machine - plasmac.
 249  
 250  Select either Axis or Gmoccapy.
 251  
 252  Select either metric or imperial.
 253  
 254  You now have all the requirements to run PlasmaC, the next step is to create a working configuration for your machine.
 255  
 256  === Make A Working Base Machine Configuration
 257  
 258  IMPORTANT: Base machine configuration means a complete working system without the Plasmac configuration. All axes should be working and tuned for best performance and all home and limit switches if installed should be operating correctly.
 259  
 260  Do NOT add any plasma specific connections here, these will be added later.
 261  
 262  [[z_settings]]
 263  
 264  Recommended settings for the Z axis are:
 265  
 266  * Z MINIMUM_LIMIT should be just below top of slats with allowances for float_switch_travel and table_discrepencies.
 267  * Z MAXIMUM_LIMIT should be the highest you want the Z axis to travel (must not be lower than Z HOME_OFFSET)
 268  * Z HOME should be just below the maximum limit
 269  
 270  IMPORTANT: You should be able to home your machine, touch off, jog to soft limits without crashing and run some test G-Code without any errors.
 271  
 272  When this stage is completed you can configure PlasmaC on top of your working machine.
 273  
 274  You can create a base machine manually or you may use existing configuration helpers:
 275  
 276  NOTE: It is probably best to keep the base machine config simple until you have it fully tested and tuned. If you are using stepconf or pncconf then deselect the VCP Panel, manual tool change and classic ladder options these can be manually added later if you have a need for them.
 277  
 278  If using a Mesa Electronics board, use the <<cha:pncconf-wizard, pncconf wizard>>:
 279  
 280  ----
 281  $ pncconf
 282  ----
 283  
 284  If using a parallel port, use the <<cha:stepconf-wizard, stepconf wizard>>:
 285  
 286  ----
 287  $ stepconf
 288  ----
 289  
 290  If using a Pico Systems board: +
 291  https://forum.linuxcnc.org/27-driver-boards/14977-pico-systems-faq[This LinuxCNC forum thread] may help.
 292  
 293  If you have a dual motor gantry configuration you may need to hand edit your configuration to suit: +
 294  https://forum.linuxcnc.org/49-basic-configuration/33079-how-to-2-or-more-motors-on-one-axis-gantry-linuxcnc-2-8-master?start=0[This LinuxCNC forum thread] may help.
 295  
 296  === Add PlasmaC To Base Machine
 297  
 298  You need to have a fully tested and working base machine configuration without any connections to plasma specific equipment before proceeding.
 299  
 300  CAUTION: Do *NOT* proceed until this has been done
 301  
 302  If you are using a Mesa Electronics THCAD card for arc voltage measurement, see <<mesa-thcad, Mesa THCAD>> before proceeding
 303  
 304  [[configurator]]
 305  
 306  Installing a Plasmac configuration is done from the Configurator, the type of installation determines the location of the Configurator (configurator.py):
 307  
 308  === Start A Plasmac BuildBot Installation
 309  
 310  From a terminal:
 311  
 312  ====
 313  $ python /usr/share/doc/linuxcnc/examples/sample-configs/by_machine/plasmac/configurator.py
 314  ====
 315  
 316  === Start A PlasmaC Run In Place Installation
 317  
 318  From a terminal:
 319  
 320  ====
 321  $ python ~/linuxcnc-dev/configs/by_machine/plasmac/configurator.py
 322  ====
 323  
 324  TIP: If the Configurator does not run make sure that the file permissions allow executable.
 325  
 326  === Install
 327  
 328  The selection window is now visible:
 329  
 330  image::images/plasmac_configurator_home_new.png[width=300]
 331  
 332  Select 'New' from the selection window, this shows an info dialog, select 'Continue' and the New Configuration window will display.
 333  
 334  NOTE: There will be different fields visible depending on the mode you select.
 335  
 336  image::images/plasmac_configurator_new.png[width=400]
 337  
 338  [[configurator-table]]
 339  
 340  [width="100%",cols="4,16"]
 341  |===
 342  |*Field*|*Description*
 343  |Machine Name|the new name for your machine. This will create a ~/linuxcnc/<name> directory and your .ini file will be <name>.ini
 344  |Ini File|this is the .ini file you created for your base machine config
 345  |HAL File|this is the .hal file you created for your base machine config
 346  |Mode|select the mode you require +
 347        0 if using an arc voltage signal for Arc Voltage and Arc OK +
 348        1 if using external arc ok for Arc OK +
 349        2 if using up/down from an external THC +
 350  |Arc OK|Modes 1 and 2 only +
 351          the HAL pin you have connected your arc ok signal to
 352  |Arc Voltage|Modes 0 An 1 only +
 353               the HAL pin you have connected your arc voltage signal to
 354  |Ohmic Probe|only required if using ohmic probing +
 355               the HAL pin you have connected your ohmic probe to
 356  |Ohmic Probe Enable|only required if using ohmic probing +
 357                      the HAL pin you have connected your ohmic probe enable to
 358  |Float Switch|only if using a float switch +
 359                the HAL pin you have connected your float switch to
 360  |Breakaway Switch|only if using a breakaway switch +
 361                    the HAL pin you have connected your breakaway switch to
 362  |Torch On|the HAL pin you have connected your torch on to
 363  |Move Up|Mode 2 only +
 364           the HAL pin you have connected your move up signal to
 365  |Move Down|Mode 2 only +
 366             the HAL pin you have connected your move down signal to
 367  |Run Panel|Run Tab = the run frame is a tab behind the preview tab +
 368             Run Panel = the run frame is a panel at the side of the GUI
 369  |Scribe Arming|only required if using a scribe +
 370                 the HAL pin to arm the scribe
 371  |Scribe On|only required if using a scribe +
 372                the HAL pin to turn the scribe on
 373  |Powermax Comms|only required if using Powermax communications +
 374                  the serial port used for communications
 375  |Gas Units|select the units display you require +
 376             psi, Bar or None if not being used
 377  |===
 378  
 379  NOTE: If you are not sure of the full name of a HAL pin then start LinuxCNC for your base machine and run 'HalShow' for a full listing of all HAL pins.
 380  
 381  Fill in the required entries to suit your machine wiring, click 'Create' and you should end up with a working PlasmaC configuration in ~/linuxcnc/configs/<machine-name>
 382  
 383  This can be run as follows:
 384  
 385  * For a buildbot installation: +
 386  ----
 387  $ linuxcnc ~/linuxcnc/configs/<machine-name>/<machine-name>.ini
 388  ----
 389  
 390  * For a run in place installation: +
 391  ----
 392  $ ~/linuxcnc-dev/scripts/linuxcnc ~/linuxcnc/configs/<machine-name>/<machine-name>.ini
 393  ----
 394  
 395  After creating a new configuration some initial setup is required.
 396  
 397  === Initial Setup
 398  
 399  LinuxCNC should now be running with the PlasmaC panels visible.
 400  Open the Config Panel and ensure every one of these settings suits your machine.
 401  
 402  See <<config-panel, Config Panel>>
 403  
 404  IMPORTANT: If using a Mesa THCAD then up until now the 'Voltage Scale' value was obtained mathematically. If you intend to use cut voltages from manufactures cut charts then it would be advisable to do measurements of actual voltages and fine tune the 'Voltage Scale' and 'Voltage Offset'.
 405  
 406  CAUTION: Plasma cutting voltages can be lethal, if you are not experienced in doing these measurements get some qualified help.
 407  
 408  [[lowpass]]
 409  
 410  === Lowpass Filter
 411  
 412  The PlasmaC HAL component has an inbuilt lowpass filter which has the same behaviour as the LinuxCNC lowpass HAL component. This filter if used is applied to the 'plasmac.arc-voltage output'. The pin name to use for this filter is 'plasmac.lowpass-frequency' and as the name suggests you enter the cutoff frequency that is required, if the frequency is zero then there is no filtering applied.
 413  
 414  It is suggested that if you wish to use the filter then the entry for it should be in the <machine_name>_connections.hal file in your configuration directory.
 415  
 416  ----
 417  setp plasmac.lowpass-frequency 100
 418  ----
 419  
 420  Would give a cutoff frequency of 100Hz.
 421  
 422  === Contact Debounce
 423  
 424  Contact bounce or external interference may cause some inconsistent behaviour of the following switches:
 425  
 426  * Float Switch
 427  * Ohmic Probe
 428  * Breakaway Switch
 429  
 430  This may be alleviated by changing the debounce value in the <MACHINE>_connections.hal file. This value applies to all three switches simultaneously in a standard configuration.
 431  
 432  You could separate these by using an exclusive debounce component for each switch.
 433  
 434  Each increment changes the debounce timing by one servo thread cycle and for the Float and Ohmic switches it equates to a 0.001mm (0.00004") increase in the probed height result.
 435  
 436  == Desktop Launcher
 437  
 438  You could create a desktop launcher to your config by right clicking on the desktop and selecting Create Launcher or similar. This will bring up a dialog to create a launcher. Give it a nice short name, enter anything for the command and click OK.
 439  
 440  After the launcher appears on the desktop, right click on it and then open with your editor of choice. Edit the file so it looks similar to:
 441  
 442  ----
 443  [Desktop Entry]
 444  Comment=
 445  Terminal=false
 446  Name=LinuxCNC
 447  Exec=sh -c "linuxcnc $HOME/linuxcnc/configs/<machine>/<machine>.ini"
 448  Type=Application
 449  Icon=/usr/share/pixmaps/linuxcncicon.png
 450  ----
 451  
 452  The above Exec line would suit a Buildbot installation. For a Run In Place Installation it should be:
 453  
 454  ----
 455  Exec=sh -c "$HOME/linuxcnc-dev/scripts/linuxcnc $HOME/linuxcnc/configs/<machine>/<machine>.ini"
 456  ----
 457  
 458  If you would like a terminal window to open behind the GUI window then change the Terminal line to:
 459  
 460  ----
 461  Terminal=true
 462  ----
 463  
 464  Displaying a terminal is be handy for error messages and information messages.
 465   
 466  == Plasmac Files
 467  
 468  After an installation, the following files are created in the configuration directory:
 469  [width="100%",cols="1,2"]
 470  |===
 471  |*Filename*|*Function*
 472  |<MACHINE>.ini|configuration file
 473  |<MACHINE>.hal|HAL connections for the PlasmaC component
 474  |<MACHINE>_connections.hal|HAL connections to the I/O HAL pins
 475  |postgui.hal|a HAL file run after the GUI has loaded for user customizing
 476  |===
 477  
 478  NOTE: Custom commands are allowed in <MACHINE>_connections.hal and the postgui.hal files as they are not overwritten during upgrades
 479  
 480  In addition to the above files, the following links are created to the files in the source directory:
 481  [width="100%",cols="1,2"]
 482  |===
 483  |*Filename*|*Function*
 484  |blank.ngc|for Gmoccapy shape library file loading
 485  |configurator.py|configure a new or upgrade/re-configure an existing PlasmaC configuration
 486  |xxx_startup.ngc|initial GCode startup for imperial or metric machines
 487  |M190|for G-Code changing of materials
 488  |materialverter.py|tool table converter and material file creator
 489  |plasmac_axis.py|python code to customise the Axis GUI
 490  |plasmac_xxx.glade|a gladevcp panel for the PlasmaC configuration
 491  |plasmac_xxx.hal|HAL connections for the panel
 492  |plasmac_xxx.py|python code for the panel
 493  |plasmac_gcode.py|a preprocessor for the loaded G-Code file
 494  |plasmac.tcl|permanent HAL connections for the plasmac component
 495  |pmx_test.py|test panel for powermax communications
 496  |pmx485.py|python code for powermax communications
 497  |tool.tbl|tool table for the PlasmaC configuration
 498  |versions.html|complete uddate list
 499  |wizards|files relating to the shape library
 500  |test|files for the test panel
 501  |===
 502  
 503  After running a new configuration the first time the following files will be created in the configuration directory:
 504  [width="100%",cols="1,2"]
 505  |===
 506  |*Filename*|*Function* (<MACHINE> = name of machine in .ini file)
 507  |<MACHINE>_config.cfg|configuration settings for the Config Panel
 508  |<MACHINE>_run.cfg|configuration settings for the Run Panel
 509  |<MACHINE>_material.cfg|material file for cut parameters
 510  |<MACHINE>_wizards.cfg|configuration settings for the shape library
 511  |plasmac_stats.var|saved statistics
 512  |===
 513  
 514  NOTE: The .ini files are notated for extra the requirements for these configurations.
 515  
 516  NOTE: The .cfg files are plain text and may be edited with any text editor.
 517  
 518  
 519  == PlasmaC GUI Panels
 520  
 521  PlasmaC adds several panels to the GUI, some are panels on permanent display and others are tabs behind the preview tab.
 522  
 523  Some functions are only used for particular modes and are not displayed if not required.
 524  
 525  [[config-panel]]
 526  
 527  === Config Panel
 528  This panel is for configuration parameters that are modified infrequently.
 529  
 530  It is possible to disable this panel so machine settings cannot be modified by unauthorised personnel. This is achieved by setting a variable in the .ini file:
 531  
 532  ----
 533  [PLASMAC] CONFIG_DISABLE = 1
 534  ----
 535  
 536  A HAL pin named 'plasmac_config.config-disable' can then be set to Zero to enable the panel. This pin could be tied to a key-switch or similar so only authorised personnel could enable the Config Panel.
 537  
 538  image::images/plasmac_config.png[width=400]
 539  
 540  [underline]*Probing*
 541  
 542  [width="100%",cols="4,16"]
 543  |===
 544  |*Name*|*Description*
 545  |Float Travel|This is the amount of travel in the float switch mechanism. This can be tested with a Probe Test button, see <<custom-user-buttons, Custom User Buttons>>.
 546  |Probe Speed|This is the speed the Z axis will probe down at after it moves to Probe Height.
 547  |Probe Height|This is the height above the Z axis bottom limit that probing begins from.
 548  |Ohmic Probe Offset|The Z axis offset of the ohmic probe.
 549  |Ohmic Retries|This is the number of times to retry an ohmic probe if it fails before fallback to the float switch.
 550  |Skip IHS|The distance used to see if IHS can be skipped, see <<ihs-skip, IHS Skip>>.
 551  |===
 552  
 553  WARNING: Probe Height is the height above the minimum Z axis limit.
 554  
 555  [underline]*THC*
 556  
 557  [width="100%",cols="4,2,14"]
 558  |===
 559  |*Name*|*Modes*|*Description*
 560  |Delay|0,1,2|Delay from cut start until THC activates.
 561  |Threshold|0,1,2|Variation from target voltage for THC to correct height.
 562  |PID P Gain (Speed)|0,1|PID P gain for THC, THC correction speed.
 563  |VAD Threshold|0,1|Percentage of Cut Feed Rate velocity needs to fall below to lock THC.
 564  |Void Override|0,1|Higher values need greater voltage change to lock THC
 565  |PID I Gain|0,1|PID I gain for THC
 566  |PID P Gain|0,1|PID D gain for THC
 567  |===
 568  
 569  [underline]*Safe Height*
 570  
 571  [width="100%",cols="4,16"]
 572  |===
 573  |*Name*|*Description*
 574  |Safe Height|This is the height above the work surface that the Z axis will retract to on rapid moves. +
 575                     If set to Zero then Z axis maximum height will be used for the safe height.
 576  |===
 577  
 578  [underline]*Arc*
 579  
 580  [width="100%",cols="4,2,14"]
 581  |===
 582  |*Name*|*Modes*|*Description*
 583  |Fail Timeout|0,1,2|The amount of time to wait from torch on until a failure if arc is not detected.
 584  |Max. Starts|0,1,2|The number of attempts at starting an arc.
 585  |Retry Delay|0,1,2|The time between an arc failure and another arc start attempt.
 586  |Voltage Scale|0,1|The value required to scale the arc voltage input to display the correct arc voltage.
 587  |Voltage Offset|0,1|The value required to display zero volts when there is zero arc voltage input. +
 588                      For initial setup multiply the arc voltage out value by -1 and enter that for Voltage Offset.
 589  |Height Per Volt|0,1,2|The distance the torch would need to move to change the arc voltage by one volt.
 590  |OK High Volts|0|High voltage threshold for Arc OK.
 591  |OK Low Volts|0|Low voltage threshold for Arc OK.
 592  |===
 593  
 594  [underline]*Motion*
 595  
 596  [width="100%",cols="4,16"]
 597  |===
 598  |*Name*|*Description*
 599  |Max. Speed|Display only of the maximum speed the Z axis is capable of.
 600  |Setup Speed|The Z axis speed for setup moves. e.g. Pierce Height, Cut Height etc.
 601  |===
 602  
 603  NOTE: Setup Speed has no effect on THC speed which is capable of Max. Speed.
 604  
 605  [[scribe-config]]
 606  
 607  [underline]*Scribing*
 608  
 609  [width="100%",cols="4,16"]
 610  |===
 611  |*Name*|*Description*
 612  |Arm Delay|Delay to allow scribe to reach surface of material before start of scribing.
 613  |On Delay|Delay to allow scribe to start before beginning motion.
 614  |===
 615  
 616  [underline]*Spotting*
 617  
 618  [width="100%",cols="4,16"]
 619  |===
 620  |*Name*|*Description*
 621  |Threshold|The arc voltage at which the delay timer will begin. +
 622             0V starts the delay when the torch on signal is activated.
 623  |Delay|The length of time the torch is on after threshold reached (mS).
 624  |===
 625  
 626  [underline]*Save & Reload Buttons*
 627  
 628  The *'Save'* button will save the currently displayed parameters as the default.
 629  
 630  The *'Reload'* button will reload the last saved parameters.
 631  
 632  === Run Panel
 633  
 634  This panel shows the parameters which are active for the current cut.
 635  
 636  There are two formats for this panel, a tab behind the preview tab or a panel at the side of the GUI. The formats are different but the functionality is identical.
 637  
 638  image::images/plasmac_run.png[width=600]
 639  
 640  See <<axis-display-section, Axis [DISPLAY] Section>> or <<gmoccapy-display-section, Gmoccapy [DISPLAY] section>>
 641  
 642  [underline]*Cut Parameters*
 643  
 644  [width="100%",cols="4,16"]
 645  |===
 646  |*Name*|*Description*
 647  |Material|Selects and displays the currently selected material, if there are no materials in the material file then only the default material will be displayed
 648  |Kerf Width|The kerf width for the currently selected material
 649  |THC Enable|THC state for the currently selected material
 650  |Pierce Height|The pierce height for the currently selected material
 651  |Pierce Delay|The pierce delay for the currently selected material
 652  |Cut Height|The cut height for the currently selected material
 653  |Cut Feed Rate|The cut feed rate for the currently selected material
 654  |Cut Amps|The cut amperage for the currently selected material +
 655            Operator indicator only unless using Powermax communications
 656  |Cut Volts|The cut voltage for the currently selected material
 657  |P-Jump Height|The puddle jump height for the currently selected material
 658  |P-Jump Delay|The puddle jump delay for the currently selected material
 659  |Pause At End|Pause for n seconds at end of cut with torch on before turning torch off and raising torch
 660  |Gas Pressure|The gas pressure for the currently selected material. +
 661                Only valid if PowerMax communications operational
 662  |Cut Mode|The cut mode for the currently selected material. +
 663            Only valid if PowerMax communications operational +
 664            1 = Normal, 2 = CPA, 3 = Gouge/Mark
 665  |===
 666  
 667  [underline]*THC*
 668  
 669  [width="100%",cols="4,2,14"]
 670  |===
 671  |*Name*|*Modes*|*Description*
 672  |State|0,1,2|Disabled = permanently off +
 673               Auto = decide by THC Enable and G-Code +
 674               Enabled = on unless disabled by G-Code
 675  |Use Auto Volts|0,1|On = THC control voltage is sampled from arc voltage +
 676                      Off = THC control voltage is from Cut Volts +
 677  |VAD Enable|0,1,2|On = Velocity anti-dive is enabled +
 678                    Off = Velocity anti-dive is disabled +
 679  |Void Sense Enable|0,1|On = Void sensing is enabled +
 680                        Off = Void sensing is disabled
 681  
 682  |===
 683  
 684  [underline]*Ohmic Probe*
 685  
 686  [width="100%",cols="4,16"]
 687  |===
 688  |*Name*|*Description*
 689  |Ohmic Probe Enable|This is to enable or disable the ohmic probe input.
 690  |===
 691  
 692  NOTE: If Ohmic Probe is disabled, the Ohmic Probe LED will still show the status of the probe input.
 693  
 694  [underline]*Single Cut*
 695  
 696  [width="100%",cols="4,16"]
 697  |===
 698  |*Name*|*Description*
 699  |X Axis Length|The X axis distance to travel for a single cut.
 700  |Y Axis Length|The Y axis distance to travel for a single cut.
 701  |Start Cut|Press to commence a single cut.
 702  |===
 703  
 704  [underline]*Powermax Comms*
 705  
 706  [width="100%",cols="4,16"]
 707  |===
 708  |*Name*|*Description*
 709  |Enable|This is to enable or disable the communications to a Powermax.
 710  |Status|This will display one of 'Connecting', 'Connected', 'Comms Error' or 'Fault Code'.
 711  |===
 712  
 713  For more information, see the <<pm_comms, Powermax Communications>> section.
 714  
 715  NOTE: This frame is only visible if a PM_PORT is configured in the [PLASMAC] section of the .ini file.
 716  
 717  [[run-buttons]]
 718  
 719  [underline]*Save Button*
 720  
 721  The *'Save'* button has two modes of operation:
 722  
 723  . If the Default material is displayed then all the currently displayed parameters on the Run Panel will be saved as the default.
 724  . If any other material is showing then the displayed Cut Parameters will be saved for that material, all other materials remain unchanged.
 725  
 726  [underline]*Reload Button*
 727  
 728  The *'Reload'* button will reload the default material and the material file.
 729  
 730  [underline]*New Button*
 731  
 732  The *'New'* button allows the addition of a new material in the material file.
 733  
 734  It will prompt for a material number and a material name. When these are entered it will create the new material using the Cut Parameters from the Default Material and then reload the material file with the new material displayed.
 735  
 736  Make any required changes and then save them using the save button.
 737  
 738  [underline]*Delete Button*
 739  
 740  The *'Delete'* button allows the deletion of a material from the material file.
 741  
 742  It will prompt for a material number and when this is entered it will prompt again to make sure you want to delete it.
 743  
 744  If the deletion is confirmed it will delete the material from the material file and reload the materials with the default material loaded.
 745  
 746  === Monitor Panel
 747  
 748  The Monitor Panel is used for display only, both Axis and Gmoccapy have similar Monitor Panels.
 749  
 750  image::images/plasmac_monitor.png[width=400]
 751  
 752  [width="100%",cols="6,2,14"]
 753  |===
 754  |*Name*|*Modes*|*Description*
 755  |Arc Voltage|0,1|Displays the actual arc voltage
 756  |Arc OK|1,2|Indicates the status of the arc ok signal
 757  |Torch On|0,1,2|Torch is activated
 758  |THC Enabled|0,1,2|Indicates if THC is enabled
 759  |Ohmic Probe|0,1,2|Indicates the probe has sensed the material
 760  |Float Switch|0,1,2|Indicates the float switch is activated
 761  |Breakaway|0,1,2|Indicates the breakaway sensor is activated
 762  |THC Active|0,1,2|Indicates THC is currently active
 763  |THC Up|0,1,2|Indicates THC is causing the Z axis to raise
 764  |THC Down|0,1,2|Indicates THC is causing the Z axis to lower
 765  |THC Velocity Lock|0,1,2|Indicates THC is locked due to velocity constraints
 766  |THC Void Lock|0,1|Indicates THC is locked due to void being sensed
 767  |===
 768  
 769  NOTE: The Ohmic Probe LED will show the status of the probe input regardless of whether Ohmic Probe is enabled or disabled.
 770  
 771  
 772  === Button Panel
 773  
 774  The Button Panel contains buttons useful for the operation of the machine.
 775  
 776  Both GUIs have a 'Torch Enable' button which is permanent, all other buttons are <<custom-user-buttons, user programmable>> in the .ini file. Axis has five user buttons and Gmoccapy has four user buttons.
 777  
 778  Axis button layout:
 779  
 780  image::images/plasmac_buttons_a.png[width=400]
 781  
 782  Gmoccapy button layout:
 783  
 784  image::images/plasmac_buttons_g.png[width=100]
 785  
 786  The 'Torch Enable' button toggles between Enabled and Disabled.
 787  
 788  It needs to be Enable to do any cutting.
 789  
 790  If it is Disabled then running a loaded program will cause the program to do its cycle without the torch being activated.
 791  
 792  === Control Panel
 793  
 794  The Control Panel allows the control of some functions, both GUI's are similar except that the Gmoccapy Control Panel is integrated into the frame containing feed and rapid overrides.
 795  
 796  These functions are enabled and disable automatically depending on the status of the machine.
 797  
 798  Axis Control Panel: 
 799  
 800  image::images/plasmac_control_a.png[width=300]
 801  
 802  Gmoccapy Control Panel:
 803  
 804  image::images/plasmac_control_g.png[width=300]
 805  
 806  [underline]*Torch Pulse*
 807  
 808  This pulses the torch on for the amount of time set in the corresponding slider.
 809  
 810  [[paused-motion]]
 811  
 812  [underline]*Paused Motion*
 813  
 814  When a program is paused, this allows x/y motion to follow the programmed path in the reverse or forward direction at the percentage of the current feed rate shown in the adjustment.
 815  
 816  When reversing, motion will stop when it reaches a spindle on command.
 817  
 818  When forwarding, motion can continue until the end of the path.
 819  
 820  NOTE: Paused motion is only available in LinuxCNC version 2.9 or later.
 821  
 822  [underline]*Height Change*
 823  
 824  Each press of Raise or Lower will change the height of the torch by the value set in Height Per Volt in the Arc frame of the Config Panel. Reset will cancel any height override.
 825  
 826  === Statistics Panel
 827  
 828  This provides statistics to allow tracking of consumable wear and job times.
 829  
 830  They are shown for the current job and are also as a running total.
 831  
 832  Job statistics are reset when the current program is run.
 833  
 834  The total values may be reset either individually or all together.
 835  
 836  image::images/plasmac_stats.png[width=400]
 837  
 838  === Extras Panel
 839  
 840  This provides a shapes library with some simple shapes that can be selected and loaded into LinuxCNC.
 841  
 842  It also provides ten custom user buttons which operate the same as the other custom user buttons plus they have the ability to load a GCode program and have an image displayed on the button.
 843  
 844  See <<shape-library, shape library>> for shape usage.
 845   
 846  See <<custom-user-buttons, custom user buttons>> for button usage.
 847  
 848  image::images/plasmac_extras.png[width=400]
 849  
 850  The Extras panel may be disabled by commenting out the appropriate entries in the [DISPLAY] section of the .ini file. This will have no effect on the operation of the PlasmaC configuration.
 851  
 852  == Using PlasmaC
 853  
 854  The only mandatory G-Code requirement for a PlasmaC configuration is 'M3 $0 S1' to begin a cut and 'M5' to end a cut, plus of course standard motion codes to move from start to end.
 855  
 856  If you are using PlasmaC without <<multi-tool, multiple tools>> enabled then it is permissible to use 'M3 S1' in lieu of 'M3 $0 S1' to begin a cutting job.
 857  
 858  === Coordinates
 859  
 860  See <<z_settings, recommended Z axis>> settings.
 861  
 862  Each time LinuxCNC is started it requires homing. This allows LinuxCNC to know where in the world the torch is and sets the soft limits to the values specified in the .ini file thus preventing the machine from crashing into a hard stop during normal use.
 863  
 864  If your machine does not have home switches then you need to ensure that all axes are at the home coordinates specified in the .ini file before homing.
 865  
 866  If your machine has home switches then it will move to the specified home coordinates when directed.
 867  
 868  Depending on your configuration you may have a 'Home All' button or you may need to home each axis individually. Use the appropriate button/buttons to home the machine.
 869  
 870  After homing the torch needs to know where the material is, this is achieved with 'Touch Off'.
 871  
 872  It is recommended that the first time you use PlasmaC that you jog the Z axis down to near the slats and 'Touch Off' the Z axis with a zero offset. When done, jog the Z axis up to where it was originally. This should not need to be done again. From now on leave the Z axis at this position as PlasmaC will control all Z axis motion.
 873  
 874  If you intend to place your material in the same place on the table every time then you could jog the X and Y axes to the X0,Y0 position of the material and then 'Touch Off' both axes with a zero offset.
 875  
 876  If you intend to place the material randomly on the table then before each job you will need to 'Touch Off' as above or place the material at the previous location.
 877  
 878  [[path-tolerance]]
 879  
 880  === Path Tolerance
 881  
 882  The provided <<rs274, RS274NGC_STARTUP_CODE>> files, metric_startup.ngc and imperial_startup.ngc set the path tolerance to 0.1mm (0.004") with a G64 command. If LinuxCNC sees an Estop at any stage then the path tolerance if set to default which will round corners off so it is recommended that the path tolerance is set in the header of each GCode file.
 883  
 884  [[multi-tool]]
 885  
 886  === Pause At End Of Cut
 887  
 888  This causes all motion to pause at the end of the cut with the torch still on. After the specified dwell time has passed the torch will turn off and the Z axis will rise.
 889  
 890  The time value for this feature is 'Pause At End' in the Cut Parameters of the Run Panel. This value is also in the material file and may be set for each material.
 891  
 892  This feature is used to allow the arc to catch up to the torch position to fully finish the cut. It is usually required for thicker materials, especially stainless.
 893  
 894  === Multiple Tools
 895  
 896  Multiple tools allows the use of more than one tool, valid tools are:
 897  
 898  * Plasma Torch - for normal cutting
 899  * Scribe - for engraving
 900  * Plasma Torch - for spotting
 901  
 902  If multiple tools are enabled then a LinuxCNC tool number is required in the 'M3 command to selected the required tool.
 903  
 904  * 'M3 $0 S1' will select the plasma cutting tool.
 905  * 'M3 $1 S1' will select the scribe.
 906  * 'M3 $2 S1' will select the plasma spotting tool.
 907  
 908  To enable the multiple tools feature you need to edit the following line in <MACHINE_NAME>_connections.hal.
 909  
 910  from:
 911  
 912  -----
 913  setp plasmac.multi-tool 0
 914  -----
 915  
 916  to:
 917  
 918  -----
 919  setp plasmac.multi-tool 1
 920  -----
 921  
 922  PlasmaC will read the cut parameters from the Run Panel and use them where required.
 923  
 924  [[material-handling]]
 925  
 926  === Material Handling
 927  
 928  Material handling has nothing at all to do with the LinuxCNC tool table, instead it uses a material file that was created at the same time as the configuration.
 929  
 930  The LinuxCNC tool table and tool commands only come into play if your are using an <<scribe, scribe>> in addition to the plasma torch.
 931  
 932  There is a <<material-file, material file>> with its name derived from '[EMC]MACHINE' in the in file, so a machine named 'METRIC_PLASMAC' would have a material file named 'metric_plasmac_material.cfg'.
 933  
 934  It is not a requirement that you use a material file, if required you can change the cut parameters manually in the Run Panel. It is also not a requirement to use the automatic material changes, just omit them from the G-Code file.
 935  
 936  The following codes may be used for a PlasmaC configuration:
 937  
 938  * 'M190 Pn' - changes the material to number n.
 939  * 'M66 P3 L3 Q1' - waits for material change to be confirmed.
 940  * 'F#<_hal[plasmac.cut-feed-rate]>' - sets the feed rate to the feed rate shown in the cut parameters of the Run Panel.
 941  * 'M3 $0 S1' - starts the PlasmaC component.
 942  
 943  For manual material handling you manually select the material from the materials list in the Run Panel before running your GCode which should have the following minimum code:
 944  
 945  ----
 946  F#<_hal[plasmac.cut-feed-rate]>
 947  M3 $0 S1
 948  ...
 949  M5
 950  ----
 951  
 952  NOTE: Manual material handling does restrict you to only one material for the entire job.
 953  
 954  For automatic material handling, the codes MUST be in the order shown.
 955  You could have other codes between them.
 956  In your G-Code you need:
 957  
 958  ----
 959  M190 Pn
 960  M66 P3 L3 Q1
 961  F#<_hal[plasmac.cut-feed-rate]>
 962  M3 $0 S1
 963  ...
 964  M5
 965  ----
 966  
 967  Material numbers do not need to be consecutive nor do they need to be in numerical order.
 968  
 969  When a material is changed it only changes the cut parameters in the Run Panel, LinuxCNC knows nothing of the material nor does PlasmaC know anything about LinuxCNC tools. (i.e. it does NOT do a tool change)
 970  
 971  Materials can be selected manually with the either the Cut Parameters combobox or via MDI with M190 Pn.
 972  
 973  If a GCode program is loaded which contains one or more material change commands then the first material will be displayed in the Run Panel as the program is loading.
 974  
 975  === THC
 976  
 977  NOTE: All references to CutFeedRate mean Cut Feed Rate as displayed in the Run Panel.
 978  
 979  THC can be controlled from the THC frame of the Run Panel, off = disabled, on = enabled and auto means abide by the THC Enable checkbox in the cut parameters.
 980  
 981  THC can also be enabled or disabled directly from G-Code provided that THC is not disabled in the Run Panel.
 982  
 983  PlasmaC uses a control voltage dependent on the state of the Use Auto Volts checkbox in the Run Panel:
 984  
 985  . If Use Auto Volts is checked then the actual cut voltage is sampled after the cut begins and this is then used as the control voltage. To allow the arc voltage to stabilise, PlasmaC waits for the amount of time displayed as Delay in the THC frame of the Run Panel before taking the sample.
 986  . If Use Auto Volts is not checked then the voltage displayed as Cut Volts in the Cut Parameters frame of the Run Panel is used as the control voltage.
 987  
 988  THC does not become active until the velocity reaches 99.9% of the 'CutFeedRate'.
 989  
 990  [underline]*G-Code THC*
 991  
 992  THC may be disabled and enabled directly from G-Code provided THC is not disabled in the Run Panel, by setting or resetting the 'motion.digital-out-02' pin with the M-Codes M62-M65:
 993  
 994  * 'M62 P2' will disable THC (synchronised with motion)
 995  * 'M63 P2' will enable THC (synchronised with motion)
 996  * 'M64 P2' will disable THC (immediately)
 997  * 'M65 P2' will enable THC (immediately)
 998  
 999  [[velocity_thc]]
1000  
1001  [underline]*Velocity Based THC*
1002  
1003  If the cut velocity falls below a percentage of 'CutFeedRate' then THC will be locked until the cut velocity returns to at least 99% of 'CutFeedRate'.
1004  
1005  This percentage is displayed as VAD Threshold % in the THC frame of the Config Panel.
1006  
1007  Velocity based THC prevents the torch height being changed when velocity is reduced for a sharp corner or a small hole.
1008  
1009  There is a HAL pin available named 'motion.analog-out-03' that can be changed in G-Code with the M67/M68 commands. This pin will reduce the velocity to the percentage specified in the command.
1010  
1011  * 'M67 E3 Q0' would set the velocity to 100% of 'CutFeedRate'.
1012  * 'M67 E3 Q40' would set the velocity to 40% of 'CutFeedRate'.
1013  * 'M67 E3 Q60' would set the velocity to 60% of 'CutFeedRate'.
1014  * 'M67 E3 Q100' would set the velocity to 100% of 'CutFeedRate'.
1015  
1016  The minimum percentage allowed is 10%, values below this will be set to 100%.
1017  
1018  The maximum percentage allowed is 100%, values above this will be set to 100%.
1019  
1020  If you intend to use this feature it would be prudent to add 'M68 E3 Q0' to your G-Code preamble and postamble so you start and end at a known state.
1021  
1022  TIP: Another way of achieving the same result is to use 'F#<_hal[plasmac.cut-feed-rate]' with a multiplier.
1023  
1024  ----
1025  F[#<_hal[plasmac.cut-feed-rate] * 0.6]
1026  ----
1027  
1028  WARNING: If Cut Feed Rate in the Run Panel is set to Zero then PlasmaC will use 'motion.requested-velocity' for the THC calculations which is not a very reliable way of velocity based THC and is not recommended.
1029  
1030  === Cutter Compensation
1031  
1032  To use cutter compensation you will need to use G41.1, G42.1 and G40 with the kerf width HAL pin:
1033  
1034  * 'G41.1 D#<_hal[plasmac_run.kerf-width-f]>' ; for left of programmed path
1035  * 'G42.1 D#<_hal[plasmac_run.kerf-width-f]>' for right of programmed path
1036  * 'G40' to turn compensation off
1037  
1038  [[ihs-skip]]
1039  
1040  === IHS Skip
1041  
1042  IHS may be skipped in one of two different ways:
1043  
1044  If THC is disabled then skip IHS if start of cut less than 'plasmac.skip-ihs-distance' from last successful probe.
1045  
1046  If THC is enabled then skip IHS if start of cut less than 'plasmac.skip-ihs-distance' from end of last cut.
1047  
1048  === Probing
1049  
1050  Probing may be with either ohmic sensing or a float switch, it is also possible to combine both with the float switch providing a fallback to ohmic probing.
1051  
1052  If your torch doesn't support ohmic probing you could have a separate probe next to the torch. In this case you would extend the probe below the torch. The probe must NOT extend more than your minimum Cut Height below the torch and this offset distance is entered as the 'ohmic-probe-offset' in the Config Panel.
1053  
1054  Probing setup is done in the Motion frame of the Config Panel.
1055  
1056  WARNING: Probe Height is the height above the minimum Z axis limit.
1057  
1058  [[cut-types]]
1059  
1060  === Cut Types
1061  
1062  PlasmaC allows two different cut types:
1063  
1064  * Pierce and Cut - runs the loaded GCode program to pierce then cut.
1065  * Pierce Only - converts then runs the loaded GCode program to do piercing only.
1066  
1067  Pierce Only mode is useful for thick materials which may produce enough dross on the material surface from piercing to interfere with the torch while cutting. This enables the entire sheet to be pierced and cleaned off before cutting.
1068  
1069  This also enables near end of life consumables to be used for piercing and they can be swapped out for good consumables to be used in cutting.
1070  
1071  There are two ways of enabling this feature:
1072  
1073  * Program a <<button-cut, custom user button>> to toggle between the cut types.
1074  * Adding a line '<pierce-only> = 1' anywhere in a gcode file to enable Pierce Only mode for the current file.
1075  
1076  If using a custom user button then the GUI will automatically reload the file when the cut type is toggled.
1077  
1078  === Hole Cutting - Intro
1079  
1080  It is recommended that any holes to be cut have a diameter no less than one and a half times the thickness of the material to be cut.
1081  
1082  It is also recommended that holes with a diameter of less than 32mm (1.26") are cut at 60% of the feed rate used for profile cuts. This should also lock out THC due to velocity constraints.
1083  
1084  PlasmaC can utilise GCode commands usually set by a CAM Post Processor (PP) to aid in hole cutting or if you don't have a PP or your PP doesn't support these methods then PlasmaC can automatically adapt the GCode to suit. This automatic mode is disabled by default.
1085  
1086  There are three methods available for improving the quality of small holes.
1087  
1088  . Velocity Reduction: Reduce the velocity to approximately 60% of the 'CutFeedRate'.
1089  . Arc Dwell: Keep the torch on for a short time while all motion is stopped to allow the arc to catch up.
1090  . Overcut: Turn the torch off at the end of the hole then continue along the path of the hole for about 4mm (0.015").
1091  
1092  NOTE: If both 'Arc Dwell' and 'Overcut' are active at the same time then 'Overcut' will take precedence.
1093  
1094  
1095  === Hole Cutting - GCode Commands
1096  
1097  Your GCode commands are set up either by a CAM Post Processor (PP) or by hand coding.
1098  
1099  [underline]*Velocity Reduction*
1100  
1101  If a hole requires a reduced velocity then set the velocity with 'M67 E3 Q60' which would set the velocity to 60% of 'CutFeedRate'.
1102  
1103  See the <<velocity_thc,Velocity Based THC>> section.
1104  
1105  [underline]*Arc Dwell*
1106  
1107  Hold motion for a time by setting the 'Off Delay' in the Arc frame of the <<config-panel, Config Panel>>
1108  
1109  [underline]*Overcut*
1110  
1111  The torch can be turned off at the end of the hole by setting the 'motion.digital-out-03' pin with the M-Codes 'M62' or 'M64'. After turning the torch off it is necessary to allow the torch to be turned on again by resetting the 'motion.digital-out-03' pin with the M-Codes 'M63' or 'M65', this will be done automatically by the PlasmaC GCode parser if it reaches an M5 command without seeing a 'M63 P3' or 'M65 P3'.
1112  
1113  After the torch is turned of the hole path should be followed for approximately 4mm (0.15")
1114  
1115  * 'M62 P3' will turn the torch off (synchronised with motion)
1116  * 'M63 P3' will allow the torch to be turned on (synchronised with motion)
1117  * 'M64 P3' will turn the torch off (immediately)
1118  * 'M65 P3' will allow the torch to be turned on (immediately)
1119  
1120  Sample code:
1121  
1122  ----
1123  G21 (metric)
1124  G64 P0.005
1125  M52 P1 (allow paused motion)
1126  F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters)
1127  G0 X10 Y10
1128  M3 $0 S1 (start cut)
1129  G1 X0
1130  M67 E3 Q60 (reduce feed rate to 60%)
1131  G3 I10 (the hole)
1132  M62 P3 (turn torch off)
1133  G3 X0.8 Y6.081 I10 (continue motion for 4mm)
1134  M63 P3 (allow torch to be turned on)
1135  M67 E3 Q0 (restore feed rate to 100%)
1136  M5 (end cut)
1137  G0 X0 Y0
1138  M2 (end job)
1139  ----
1140  
1141  === Hole Cutting - Automatic
1142  
1143  PlasmaC has the ability to automatically modify the GCode to reduce the velocity and/or apply 'Overcut'.
1144  
1145  The default hole size for PlasmaC hole sensing is 32mm (1.26").  It is possible to change this value with the following commands:
1146  
1147  * #<m_diameter> = nn - To set a diameter in metric measurments
1148  * #<i_diameter> = nn - To set a diameter in imperial measurements
1149  
1150  PlasmaC hole sensing is enabled/disabled by setting the following GCode parameter. It is disabled by default.
1151  
1152  * #<holes> = 0 - Disables hole sensing.
1153  * #<holes> = 1 - Causes PlasmaC to reduce the speed of holes less than 32mm (1.25") to 60% of 'CutFeedRate'.
1154  * #<holes> = 2 - As well as the velocity reduction above it also turns the torch off at the end of the hole and follows the hole path for a further 4mm (0.015").
1155  
1156  [underline]*Arc Dwell*
1157  
1158  Hold motion for a time by setting the 'Off Delay' in the Arc frame of the <<config-panel, Config Panel>>
1159  
1160  Use #<holes> = 1 to allow velocity reduction.
1161  
1162  Sample code:
1163  
1164  ----
1165  G21 (metric)
1166  G64 P0.005
1167  M52 P1 (allow paused motion)
1168  F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters)
1169  #<holes> = 1 (velocity reduction for holes)
1170  G0 X10 Y10
1171  M3 $0 S1 (start cut)
1172  G1 X0
1173  G3 I10
1174  M5 (end cut)
1175  G0 X0 Y0
1176  M2 (end job)
1177  ----
1178  
1179  [underline]*Overcut*
1180  
1181  Use #<holes> = 2 to allow velocity reduction and overcut.
1182  
1183  Sample code:
1184  
1185  ----
1186  G21 (metric)
1187  G64 P0.005
1188  M52 P1 (allow paused motion)
1189  F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters)
1190  #<holes> = 2 (Overcut for holes)
1191  G0 X10 Y10
1192  M3 $0 S1 (start cut)
1193  G1 X0
1194  G3 I10
1195  M5 (end cut)
1196  G0 X0 Y0
1197  M2 (end job)
1198  ----
1199  
1200  [NOTE]
1201  ====
1202  * It is OK to have multiple and mixed #<*_diameter> commands in a GCode file.
1203  * It is OK to have multiple and mixed #<holes> commands in a GCode file.
1204  ====
1205  
1206  === Single Cut
1207  
1208  A single cut is a single unidirectional cutting move often used to cut a sheet into smaller pieces prior to running a GCode program.
1209  
1210  The machine needs to be homed before commencing a single cut.
1211  
1212  A single cut will commence from the machines current X/Y position.
1213  
1214  [underline]*Automatic Single Cut*
1215  
1216  This is the preferred method and the parameters for this method are entered in the Run Panel.
1217  
1218  . Jog to the required X/Y start position. +
1219  . Set required Cut Feed Rate in Cut Parameters of the Run Panel. +
1220  . Enter the length of the cut along the X and/or Y axes. +
1221  . Press the 'Start Cut' button and the cut will commence.
1222  
1223  
1224  [underline]*Pendant Single Cut*
1225  
1226  If you have a pendant that can start and stop the spindle plus jog the X and Y axes then you can manually perform a single cut.
1227  
1228  . Jog to the required X/Y start position. +
1229  . Set the required feed rate with the Jog Speed slider. +
1230  . Start the procedure by starting the spindle. +
1231  . After probing the torch will fire. +
1232  . When the Arc OK is received the machine can be jogged along the cut line using the jog buttons. +
1233  . When the cut is complete stop the spindle. +
1234  . The torch will turn off and the Z axis returns to the starting position.
1235  
1236  [underline]*Manual Single Cut In Axis*
1237  
1238  . Jog to the required X/Y start position. +
1239  . Set the required feed rate with the Jog Speed slider. +
1240  . Start the procedure by pressing 'F9'. +
1241  . After probing the torch will fire. +
1242  . When the Arc OK is received the machine can be jogged along the cut line using the jog keys. +
1243  . When the cut is complete press 'F9' or 'Esc'. +
1244  . The torch will turn off and the Z axis returns to the starting position.
1245  
1246  [underline]*Manual Single Cut In Gmoccapy*
1247  
1248  If you wish to use the keyboard jogging keys then enable keyboard shortcuts in the Hardware tab of the Settings page, otherwise use the GUI jog buttons.
1249  
1250  . Jog to the required X/Y start position. +
1251  . Set the required feed rate with the Jog Speed slider. +
1252  . Enter MDI mode. +
1253  . Start the procedure by entering 'M3 S1'. +
1254  . Enter Manual mode. +
1255  . After probing the torch will fire. +
1256  . When the Arc OK is received the machine can be jogged along the cut line using the jog buttons (or jog keys if enabled). +
1257  . When the cut is complete press 'Esc'. +
1258  . The torch will turn off and the Z axis returns to the starting position.
1259  
1260  [[shape-library]]
1261  
1262  == Shape Library
1263  
1264  The shape library is not meant to be a CAD/CAM replacement and there are limitations as to what can be achieved.
1265  
1266  Blank entries in the shape dialogs will use whatever is current. e.g. If 'X start' was blank then the current X axis position would be used.
1267  
1268  All lead-ins and lead-outs are arcs except for:
1269  
1270  * Small holes
1271  * Stars
1272  
1273  The 'New' button in the Extras Panel is only required if you wish to begin a new job and a current job exists.
1274  
1275  All distances are in machine units and all angles are in degrees.
1276  
1277  === Settings
1278  
1279  Global settings for the shape library can be set by pressing 'Settings' in the Extras Panel. This will bring up the settings dialog to allow the changing and saving of these global settings.
1280  
1281  The default parameters available are:
1282  
1283  * Preamble
1284  * Postamble
1285  * Lead-in length
1286  * Lead-out length
1287  * Small hole diameter
1288  * Small hole speed
1289  
1290  Any internal circle that has a diameter less than 'Small hole diameter' is classed as a small hole. It will have a straight lead-in with a length the lesser of the radius of the hole and the specified lead-in length. It will also have its feed rate set to 'Small hole speed'.
1291  
1292  === Single Shape
1293  
1294  . Open the Extras Panel.
1295  . Select the shape you wish to create which will open a shape dialog.
1296  . If using Gmoccapy, open the Preview Panel and move the shape dialog so you can see the Preview Panel. +
1297    If using Axis the Preview Panel will open automatically when 'Preview' is pressed.
1298  . Enter the appropriate values in the shape dialog and press 'Preview' to load the shape.
1299  . If the shape is not correct, edit the values and press 'Preview' and the new shape will be shown. Repeat until you are satisfied with the shape.
1300  
1301  === Multiple Shapes
1302  
1303  Multiple shapes can be added together to create a complex job.
1304  
1305  The cut order of the job is determined by the order in which the individual shapes are added to the job.
1306  
1307  Once a shape is added to the job it cannot be edited or removed.
1308  
1309  Jobs cannot be edited, only added to.
1310  
1311  . Create the first shape as in 'Single Shape'.
1312  . Press 'Add' and the shape will be added to the job.
1313  . If you wish to add another version of the same shape then edit the parameters as in #5 above and press 'Add' when you are satisfied with the shape.
1314  . If you wish to add a different shape, press 'Return' in the shape dialog and create a new a new shape as in 'Single Shape'.
1315  . Repeat until you have completed adding all the required shapes. 
1316  
1317  === Array of Shapes
1318  
1319  When you are satisfied with the job you have created, an array of the job can be created.
1320  
1321  The cut order of an array is from left to right, starting at the bottom row and ending at the top row.
1322  
1323  . Press 'Array' in the Extras Panel which will open the array dialog.
1324  . If using Gmoccapy, open the Preview Panel and move the array dialog so you can see the Preview Panel. +
1325    If using Axis the Preview Panel will open automatically when 'Preview' is pressed.
1326  . Enter the appropriate values in the array dialog and press 'Preview' to load the array.
1327  . If the array is not correct, edit the values and press 'Preview' and the new array will be shown. Repeat until you are satisfied with the shape.
1328  . Press 'Accept' to complete the procedure.
1329  
1330  === Saving A Job
1331  
1332  The current job displayed in the Preview Panel may be saved at any time by using the 'Save' feature of the GCode Editor in the GUI.
1333  
1334  === Running A Job
1335  
1336  The current job displayed in the Preview Panel may be run at any time.
1337  
1338  [[scribe]]
1339  
1340  == Scribe
1341  
1342  An scribe may be operated by PlasmaC in addition to the plasma torch, this is disabled by default so as not to affect existing configurations.
1343  
1344  Using a scribe requires usage of the LinuxCNC tool table, Tool 0 is assigned to the plasma torch and Tool 1 is assigned to the scribe. The scribe X and Y axes offsets from the plasma torch need to be entered into the LinuxCNC tool table. The plasma torch offsets will always be zero. The tools are selected by the 'Tn M6' command then a 'G43 H0' is required to apply the offsets. PlasmaC is then started with a 'M3 $n S1' command. For 'n', use 0 for plasma cutting or 1 for scribing.
1345  
1346  There are two HAL output pins used to operate the scribe, one to arm the scribe which moves the scribe to the surface of the material then after a <<scribe-config, delay>> the other to start the scribe, then after a <<scribe-config, delay>> motion will begin.
1347  
1348  Using PlasmaC after enabling the scribe then requires selecting either the torch or the scribe in each GCode file as a LinuxCNC tool.
1349  
1350  To enable scribing, see <<multi-tool, multiple tools>>.
1351  
1352  If you haven't yet assigned the HAL pins for the scribe in the Configurator then you will need to do so by invoking the <<modify-config, reconfigure>> mode of the Configurator.
1353  
1354  The scribe is now active and the arming action may be tested by issuing a 'M3 $1 S1' command in the MDI input. This will cause the scribe to arm but will not start the scribe.
1355  
1356  The next step is to open the tool table editor in the GUI and enter the X and Y axes offsets. These are the distances in X and Y from the centre of the torch nozzle. In most cases, if standing at the front of the machine if the scribe is to the right of the torch it would be a positive value and if the scribe is to the rear of the torch it would also be a positive value. The offsets for the torch should always be zero.
1357  
1358  The final step is to set the <<scribe-config, scribe delays>> required:
1359  
1360  . Arm Delay, allows time for the scribe to descend to the surface of the material.
1361  . On Delay, allows time for the scribe to start before motion begins.
1362  
1363  Save the Config parameters.
1364  
1365  The material can then be lined up with the torch as previously and the offsets can be applied so both tools operate at the correct coordinates.
1366  
1367  To use the scribe from GCode:
1368  
1369  -----
1370  ...
1371  M52 P1 (paused motion on)
1372  F#<_hal[plasmac.cut-feed-rate]>
1373  T1 M6 (select scribe)
1374  G43 H0 (apply ofsets)
1375  M3 $1 S1 (start plasmac with scribe)
1376  ...
1377  T0 M6 (select torch)
1378  G43 H0(apply ofsets)
1379  G0 X0 Y0 (parking position)
1380  M5 (end)
1381  -----
1382  
1383  It is a good idea to switch back to the torch at the end of the program before your final rapid parking move so your machine is always in the same state at idle.
1384  
1385  You can switch between the torch and the scribe any number of times during a program by using the above code and issuing 'M3 $0 S1' to start PlasmaC with the torch.
1386  
1387  Issuing M3 S1 (without $n) will cause the machine to behave as if an 'M3 $0 S1' had been issued, so the machine will attempt a torch cut. This is to provide compatibility for previous GCode files.
1388  
1389  WARNING: If you have an existing manual toolchange in your machine .hal file then PlasmaC will convert it to an automatic toolchange.
1390  
1391  == Spotting
1392  
1393  To achieve spotting prior to drilling etc, PlasmaC can pulse the torch for a short duration to mark the drill spot.
1394  
1395  This is done by first setting the arc voltage threshold in the <<config-panel, Config Panel>>. If the threshold voltage is set to zero then the delay timer will begin from when the torch on signal was sent. If the threshold voltage is set above zero then the delay timer will begin when the arc voltage reaches the threshold voltage.
1396  
1397  Then set the delay time in the <<config-panel, Config Panel>>. When the delay is complete, the torch will turn off. Times are adjustable from 0 to 9999 milli-seconds.
1398  
1399  The torch is then turned on in GCode with the 'M3 $2 S1' command which selects the plasma torch as a spotting tool.
1400  
1401  To enable spotting, see <<multi-tool, multiple tools>>.
1402  
1403  LinuxCNC requires some motion between an 'M3' command and a 'M5' command so a minimal movement at a high speed is programmed.
1404  
1405  An example GCode is:
1406  
1407  -----
1408  G21 (metric)
1409  F99999 (high feed rate)
1410  
1411  g0 x10 y10
1412  m3 $2 s1 (spotting on)
1413  g91 (relative distance mode)
1414  g1 x0.000001
1415  g90 (absolute distance mode)
1416  m5 (spotting off)
1417  
1418  g0 x0 y0
1419  g90
1420  m30
1421  -----
1422  
1423  NOTE: The 'high feed rate' is to ensure that the motion is at the machines highest feed rate.
1424  
1425  IMPORTANT: Some plasma cutters will not be suitable for this feature. +
1426  It is recommended that you carry out some test spotting to ensure that your plasma cutter is capable of utilising this feature.
1427  
1428  == Error Messages
1429  
1430  There are a number of error messages printed by PlasmaC. They could probably be split into two groups, 'Critical' and 'Warning'.
1431  
1432  === Critical Errors
1433  
1434  Critical errors will cause the program to pause, the operator needs to clear the cause of the error.
1435  
1436  If the error was during cutting then forward or reverse motion is allowed to enable the machine to be positioned to recommence the cut.
1437  
1438  When the error is cleared the program may be resumed.
1439  
1440  These errors indicate the corresponding sensor was activated during cutting.
1441  
1442  * 'breakaway switch activated program is paused'
1443  * 'float switch activated program is paused'
1444  * 'ohmic probe activated program is paused'
1445  * 'valid arc lost program is paused'
1446  
1447  These errors indicate the corresponding sensor was activated before probing commenced.
1448  
1449  * 'ohmic probe detected before moving to probe height program is paused'
1450  * 'float switch detected before moving to probe height program is paused'
1451  * 'breakaway switch detected before moving to probe height program is paused'
1452  
1453  These errors indicate the corresponding sensor was activated while the Z axis is moving from the top down to the probe height.
1454  
1455  WARNING: Probe height is the height above the Z axis minimum limit.
1456  
1457  * 'float switch detected while moving to probe height program is paused'
1458  * 'ohmic probe detected while moving to probe height program is paused'
1459  
1460  The Z axis reached the bottom limit before the workpiece was detected.
1461  
1462  * 'bottom limit reached while probing down program is paused'
1463  
1464  The workpiece is too high for any safe rapid removes.
1465  
1466  * 'material too high for safe traverse program is paused'
1467  
1468  One of these values in Cut Parameters in the Run Panel is invalid.
1469  
1470  * 'invalid pierce height or invalid cut height or invalid cut volts'
1471  
1472  No arc has been detected after attempting to start the number of times indicated by Arc Start Attempts in the Config Panel.
1473  
1474  * 'no arc detected after <n>d start attempts program is paused'
1475  
1476  THC has caused the bottom limit to be reached while cutting.
1477  
1478  * 'bottom limit reached while THC moving down program is paused'
1479  
1480  THC has caused the top limit to be reached while cutting.
1481  
1482  * top limit reached while THC moving up program is paused'
1483  
1484  
1485  === Warning errors
1486  
1487  Warning errors have no effect on a running program and are informational only.
1488  
1489  These errors indicate the corresponding sensor was activated before a probe test commenced.
1490  
1491  * 'ohmic probe detected before moving to probe height'
1492  * 'float switch detected before moving to probe height'
1493  * 'breakaway switch detected before moving to probe height'
1494  
1495  These errors indicate the corresponding sensor was activated while the Z axis is moving from the top down to the probe height during a probe test.
1496  
1497  * 'float switch detected while moving to probe height'
1498  * 'ohmic probe detected while moving to probe height'
1499  
1500  This indicates that probe contact was lost before probing up to the zero point.
1501  
1502  * 'probe trip error while probing'
1503  
1504  This indicates the bottom limit was reached during a probe test.
1505  
1506  * 'bottom limit reached while probe testing'
1507  
1508  This indicates that the safe height has been reduced due to THC raising the Z axis during cutting.
1509  
1510  * 'safe traverse height has been reduced'
1511  
1512  == INI File
1513  
1514  PlasmaC requires some specific .ini file variables as follows:
1515  
1516  === Common
1517  
1518  [underline]*[PLASMAC] Section*
1519  
1520  -----
1521  MODE                = 0 (use external arc voltage in for Arc Voltage)
1522                          (use external arc voltage in for Arc OK)
1523                      = 1 (use external arc voltage in for Arc Voltage)
1524                          (use external arc ok in for Arc OK)
1525                      = 2 (Use external arc ok in for Arc OK)
1526                          (use external up/down for THC)
1527  
1528  CONFIG_DISABLE      = 0 (0=enable or 1=disable the PlasmaC Config Panel)
1529  PAUSED-MOTION-SPEED = n (multiply cut-feed-rate by this value for paused motion speed)
1530  TORCH-PULSE-TIME    = n (torch on time when manual pulse requested)
1531  BUTTON_n_NAME       = <NAME> (the name of a custom user buttons)
1532  BUTTON_n_CODE       = <CODE> (the code run by a custom user button)
1533  BUTTON_n_IMAGE      = <IMAGE> (the image displayed by buttons 10~19)
1534  -----
1535  
1536  NOTE: <<paused-motion, PAUSED-MOTION-SPEED>> is only valid for LinuxCNC version 2.9 or later
1537  
1538  [underline]*[FILTER] Section*
1539  
1540  -----
1541  PROGRAM_EXTENSION = .ngc (filter *.ngc files)
1542  ngc               = ./plasmac_gcode.py (this parses the G-Code file and comments out any Z axis motion)
1543  -----
1544  
1545  [[rs274]]
1546  
1547  [underline]*[RS274NGC] Section*
1548  
1549  -----
1550  RS274NGC_STARTUP_CODE = o<metric_startup> call (machine startup G-Code)
1551  SUBROUTINE_PATH       = ./:../../nc_files/subroutines (./ must be in this path)
1552  FEATURES              = 12 (for reading .ini and HAL variables)
1553  USER_M_PATH           = ./ (for M190 material change)
1554  -----
1555  
1556  IMPORTANT: see <<path-tolerance, path tolerance>>
1557  
1558  [underline]*[HAL] Section*
1559  
1560  -----
1561  TWOPASS = on (needed for multiple .hal files)
1562  HALFILE = <MACHINE_NAME>.hal (your base machine .hal file)
1563  HALFILE = plasmac.tcl (the standard PlasmaC .hal file )
1564  HALFILE = <MACHINE_NAME>_connections.hal (PlasmaC connections to the machine)
1565  HALFILE = HALUI   = halui (required)
1566  -----
1567  
1568  The <MACHINE_NAME>.hal file has 'num_spindles=[TRAJ]SPINDLES' appended to the end of the 'loadrt motmod' line to allow the addition of an <<scribe, scribe>> if required.
1569  
1570  NOTE: You could place custom HAL commands in <MACHINE_NAME>_connections.hal as this file is not overwritten by an upgrade.
1571  
1572  [underline]*[TRAJ] Section*
1573  
1574  -----
1575  SPINDLES = 3
1576  -----
1577  
1578  [underline]*[AXIS_X] Section*
1579  
1580  -----
1581  MAX_VELOCITY     = double the value in the corresponding joint
1582  MAX_ACCELERATION = double the value in the corresponding joint
1583  OFFSET_AV_RATIO  = 0.5
1584  -----
1585  
1586  [underline]*[AXIS_Y] Section*
1587  
1588  -----
1589  MAX_VELOCITY     = double the value in the corresponding joint
1590  MAX_ACCELERATION = double the value in the corresponding joint
1591  OFFSET_AV_RATIO  = 0.5
1592  -----
1593  
1594  [underline]*[AXIS_Z] Section*
1595  
1596  -----
1597  MIN_LIMIT        = the top of your slats or just below
1598  MAX_VELOCITY     = double the value in the corresponding joint
1599  MAX_ACCELERATION = double the value in the corresponding joint
1600  OFFSET_AV_RATIO  = 0.5
1601  -----
1602  
1603  NOTE: PlasmaC uses the External Offsets feature for all Z axis motion, and for moving the X and/or Y axis for a consumable change while paused, for more information on this feature, please read <<cha:external-offsets,External Axis Offsets>> in the Linuxcnc documentation.
1604  
1605  === Axis GUI Specific
1606  
1607  [underline]*[PLASMAC] Section*
1608  
1609  -----
1610  FONT      = sans 11 (valid font sizes are from 10 to 15)
1611  THEME     = Clearlooks (any installed theme)
1612  MAXIMISED = 0 (0 = sized to suit font, 1 = maximised)
1613  -----
1614  
1615  [[axis-display-section]]
1616  
1617  [underline]*[DISPLAY] Section*
1618  
1619  -----
1620  TOOL_EDITOR       = tooledit x y
1621  USER_COMMAND_FILE = plasmac_axis.py.py
1622  EMBED_TAB_NAME    = Statistics
1623  EMBED_TAB_COMMAND = gladevcp -c plasmac_stats -x <XID> -u ./plasmac_stats.py -H ./plasmac_stats.hal plasmac_stats.glade
1624  
1625  #use one of the next two
1626  
1627  #run frame in tab behind preview
1628  EMBED_TAB_NAME    = Plasma Run
1629  EMBED_TAB_COMMAND = gladevcp -c plasmac_run -x <XID> -u ./plasmac_run.py -H plasmac_run.hal plasmac_run_tab.glade
1630  
1631  #run frame in panel on left side
1632  #GLADEVCP = -c plasmac_run -u ./plasmac_run.py -H plasmac_run.hal plasmac_run_panel.glade
1633  
1634  EMBED_TAB_NAME    = Plasma Config
1635  EMBED_TAB_COMMAND = gladevcp -c plasmac_config -x <XID> -u ./plasmac_config.py -H plasmac_config.hal plasmac_config.glade
1636  
1637  EMBED_TAB_NAME    = Extras
1638  EMBED_TAB_COMMAND = halcmd loadusr -Wn plasmac_wizards gladevcp -c plasmac_wizards -x {XID} -u ./plasmac_wizards.py plasmac_wizards.glade
1639  
1640  -----
1641  
1642  The Run Window can be displayed as one of:
1643  
1644  * A panel on the right side of the Axis GUI which is suitable for widescreen displays.
1645  * A tab behind the Preview tab which is suitable for 4:3 ratio displays.
1646  
1647  === Gmoccapy GUI Specific
1648  
1649  [[gmoccapy-display-section]]
1650  
1651  [underline]*[DISPLAY] section*
1652  
1653  -----
1654  EMBED_TAB_NAME     = plasmac_buttons
1655  EMBED_TAB_LOCATION = box_cooling
1656  EMBED_TAB_COMMAND  = gladevcp -c plasmac_buttons -x <XID> -u ./plasmac_buttons.py -H ./plasmac_buttons.hal plasmac_buttons.glade
1657  EMBED_TAB_NAME     = plasmac_control
1658  EMBED_TAB_LOCATION = box_spindle
1659  EMBED_TAB_COMMAND  = gladevcp -c plasmac_control -x <XID> -u ./plasmac_control.py -H ./plasmac_control.hal plasmac_control.glade
1660  EMBED_TAB_NAME     = Statistics
1661  EMBED_TAB_LOCATION = ntb_preview
1662  EMBED_TAB_COMMAND  = gladevcp -c plasmac_stats -x <XID> -u ./plasmac_stats.py -H ./plasmac_stats.hal plasmac_stats.glade
1663  EMBED_TAB_NAME     = Plasma Run
1664  
1665  #use one of the next two
1666  
1667  #run panel in tab behind preview
1668  EMBED_TAB_LOCATION  = ntb_preview
1669  EMBED_TAB_COMMAND   = gladevcp -c plasmac_run -x <XID> -u ./plasmac_run.py -H plasmac_run.hal plasmac_run_tab.glade
1670  
1671  #run panel in panel on left side
1672  #EMBED_TAB_LOCATION = box_left
1673  #EMBED_TAB_COMMAND  = gladevcp -c plasmac_run -x <XID> -u ./plasmac_run.py -H plasmac_run.hal plasmac_run_panel.glade
1674  
1675  EMBED_TAB_NAME     = Plasma Config
1676  EMBED_TAB_LOCATION = ntb_preview
1677  EMBED_TAB_COMMAND  = gladevcp -c plasmac_config -x <XID> -u ./plasmac_config.py -H plasmac_config.hal plasmac_config.glade
1678  EMBED_TAB_NAME     = plasmac_monitor
1679  EMBED_TAB_LOCATION = box_tool_and_code_info
1680  EMBED_TAB_COMMAND  = gladevcp -c plasmac_monitor -x <XID> -u plasmac_monitor.py -H plasmac_monitor.hal plasmac_monitor.glade
1681  
1682  EMBED_TAB_NAME     = Extras
1683  EMBED_TAB_LOCATION = ntb_preview
1684  EMBED_TAB_COMMAND  = halcmd loadusr -Wn plasmac_wizards gladevcp -c plasmac_wizards -x {XID} -u ./plasmac_wizards.py plasmac_wizards.glade
1685  
1686  -----
1687  
1688  The Run Panel can be displayed as one of:
1689  
1690  * A panel on the left side of the Gmoccapy GUI which is suitable for widescreen displays.
1691  * A tab behind the Preview tab which is suitable for 4:3 ratio displays.
1692  
1693  [[custom-user-buttons]]
1694  
1695  == Custom User Buttons
1696  
1697  There are buttons available that are programmable in the .ini file.
1698  
1699  Five buttons are available in the main window of the Axis GUI, numbered 1~5 from left to right.
1700  
1701  Four buttons are available in the main window of the Gmoccapy GUI, numbered 1~4 from top to bottom.
1702  
1703  An additional ten buttons are available in the Extras panel, numbered 10~19 from top left to bottom right.
1704  
1705  All .ini file settings for the buttons are in the [PLASMAC] section.
1706  
1707  === Button Names
1708  
1709  The text that appears on the button is set the following way:
1710  
1711  ----
1712  BUTTON_n_NAME = HAL Show
1713  ----
1714  
1715  Where n is the button number and 'HAL Show' is the text.
1716  
1717  For text on multiple lines in Axis, split the text with a \
1718  
1719  ----
1720  BUTTON_n_NAME = HAL\Show
1721  ----
1722  
1723  === Button Code
1724  
1725  Buttons can run <<button-cmds, External Commands>>, <<button-code, G-Code>> or any of four special functions, <<button-probe, Probe Test>>, <<button-ohmic, Ohmic Test>>, <<button-cut, Cut Type>> or <<button-consumables, Change Consumables>>. In addition to this, buttons 10~19 in the Extras panel can <<button-load, Load>> a GCode program.
1726  
1727  [[button-cmds]]
1728  
1729  [underline]*External Commands*
1730  
1731  To run an external command, the command is preceded by a % character.
1732  
1733  ----
1734  BUTTON_n_CODE = %halshow
1735  ----
1736  
1737  [[button-code]]
1738  
1739  [underline]*G-Code*
1740  
1741  To run G-Code, just enter the code to be run.
1742  
1743  ----
1744  BUTTON_n_CODE = G0 X100
1745  ----
1746  
1747  To run an existing subroutine.
1748  
1749  ----
1750  BUTTON_n_CODE = o<my_subroutine> call
1751  ----
1752  
1753  .ini file variables can be entered by using {} (you must put a space after the })
1754  
1755  ----
1756  BUTTON_n_CODE = G0 X{JOINT_0 HOME} Y1
1757  BUTTON_n_CODE = G53 G0 Z[{AXIS_Z MAX_LIMIT} - 1.001]
1758  ----
1759  
1760  Multiple codes can be run by separating the codes with a \
1761  
1762  ----
1763  BUTTON_n_CODE = G0 X0 Y0 \ G1 X5 \ G1 Y5
1764  ----
1765  
1766  External commands and G-Code may be mixed on the same button.
1767  
1768  ----
1769  BUTTON_n_CODE = %halshow \ g0x.5y.5 \ %halmeter
1770  ----
1771  
1772  [[button-probe]]
1773  
1774  [underline]*Probe Test*
1775  
1776  ----
1777  BUTTON_n_CODE = probe-test 30
1778  ----
1779  
1780  PlasmaC will begin a probe and when the probe is detected, the Z axis will rise to the Pierce Height currently displayed in the Run Panel. It will then wait in this state for the time specified (in this case 30 seconds) then it will return the Z axis to the top.
1781  
1782  [[button-ohmic]]
1783  
1784  [underline]*Ohmic Test*
1785  
1786  ----
1787  BUTTON_n_CODE = ohmic-test
1788  ----
1789  
1790  PlasmaC will enable the Ohmic Probe Enable and if the ohmic probe is sensed, the LED indicator in the monitor panel will light. The main purpose of this is to allow a quick test for a shorted torch tip.
1791  
1792  [[button-cut]]
1793  
1794  [underline]*Cut Type*
1795  
1796  ----
1797  BUTTON_n_CODE = cut-type
1798  ----
1799  
1800  This button if selected will toggle between the two <<cut-types, cut types>>.
1801  
1802  [[button-consumables]]
1803  
1804  [underline]*Change Consumables*
1805  
1806  ----
1807  BUTTON_n_CODE = change-consumables X10 Y10 F1000
1808  ----
1809  
1810  This button moves the torch to the specified coordinates when the machine is paused to allow easy access to change consumables.
1811  
1812  Valid entries are Xnnn Ynnn Fnnn. F is mandatory and at least one of X or Y are required.
1813  
1814  The X and Y entries are in absolute machine coordinates. If X or Y are missing then the current coordinate for that axis is used.
1815  
1816  There are three methods to return to the previous coordinates:
1817  
1818  - Press the button again and the torch will return and the machine will wait for a resume command.
1819  - Resume the program which causes the torch to return then the program will begin running.
1820  - Stop the program which causes the torch to return then the program will abort.
1821  
1822  [[button-load]]
1823  
1824  [underline]*Load*
1825  
1826  Buttons 10~19 in the Extras Panel are able to load a GCode program by using the following format.
1827  
1828  ----
1829  BUTTON_n_CODE = load path/to/gcode.ngc
1830  ----
1831  
1832  The path is relative to the directory specified by 'PROGRAM_PREFIX' in the .ini file. This is usually ~/linuxcnc/nc_files, so if your gcode file was in a subdirectory of your 'PROGRAM_PREFIX' directory named 'plasma' then the entry would be 'plasma/gcode.ngc'.
1833  
1834  === Button Image
1835  
1836  Buttons 10~19 in the Extras Panel are able to display an image by using the following format. If an image is specified then this will take precedence and the image will be displayed rather than the button name.
1837  
1838  ----
1839  BUTTON_n_IMAGE = path/to/image.png
1840  ----
1841  
1842  The path is relative to the configuration directory, so if your image was in a subdirectory of your configuration directory named 'images' then the entry would be 'images/image.png'.
1843  
1844  All images are displayed in a 60 x 60 format.
1845  
1846  [[material-file]]
1847  
1848  == Material File
1849  
1850  PlasmaC uses a file containing cut parameters for materials. This file is used for <<material-handling, material handling>>.
1851  
1852  The file name is derived from '[EMC]MACHINE' in the in file, so a machine named 'METRIC_PLASMAC' would have a material file named 'metric_plasmac_material.cfg'.
1853  
1854  The following variables are mandatory and an error message will appear if any are not found when the material file is loaded.
1855  
1856  * PIERCE_HEIGHT
1857  * PIERCE_DELAY
1858  * CUT_HEIGHT
1859  * CUT_SPEED
1860  
1861  The following variables are optional. If any are not detected or have no value assigned, they will be assigned a value of 0 and no error message will appear.
1862  
1863  * NAME
1864  * KERF_WIDTH
1865  * THC
1866  * PUDDLE_JUMP_HEIGHT
1867  * PUDDLE_JUMP_DELAY
1868  * CUT_AMPS
1869  * CUT_VOLTS
1870  * PAUSE_AT_END
1871  * GAS_PRESSURE
1872  * CUT_MODE
1873  
1874  WARNING: It is the responsibility of the operator to ensure that the variables are included if they are a requirement for the GCode to be run.
1875  
1876  The material file uses the following format:
1877  
1878  ----
1879  [MATERIAL_NUMBER_1]
1880  NAME                = name
1881  KERF_WIDTH          = value
1882  THC                 = value (0 = off, 1 = on)
1883  PIERCE_HEIGHT       = value
1884  PIERCE_DELAY        = value
1885  PUDDLE_JUMP_HEIGHT  = value
1886  PUDDLE_JUMP_DELAY   = value
1887  CUT_HEIGHT          = value
1888  CUT_SPEED           = value
1889  CUT_AMPS            = value (only used for operator information)
1890  CUT_VOLTS           = value (modes 0 & 1 only, if not using auto voltage sampling)
1891  PAUSE_AT_END        = value
1892  GAS_PRESSURE        = value (only used for Powermax communications)
1893  CUT_MODE            = value (only used for Powermax communications)
1894  ----
1895  
1896  It is possible to add new material, delete material or edit existing material from the <<run-buttons, Run Panel.>>
1897  
1898  It is also possible to edit the material file with a text editor while LinuxCNC is running and then after any changes have been saved, press 'Reload' in the Run Panel to reload the material file.
1899  
1900  == Example Configurations
1901  
1902  There are example configuration files for both the Axis and Gmoccapy GUIs which use the PlasmaC HAL component to simulate plasma cutting machines.
1903  
1904  * metric_plasmac.ini
1905  * imperial_plasmac.ini
1906  
1907  If you have copied any example configs to your ~/linuxcnc/configs directory then they are able to be updated by running the Configurator in Upgrade mode. This will replace any copied plasmac system file with a link to the latest version you have upgraded to.
1908  
1909  == NGC Samples
1910  
1911  There are some sample G-Code files in nc_files/plasmac.
1912  
1913  == Test Panel
1914  
1915  There is a ./test directory in the source which has a simple Test Panel and associated python file which can be used to test the example configuration as referenced in the .ini file.
1916  
1917  If you wish to use this in your own sim configuration then you will need to create a link to this directory and edit your .ini file to suit.
1918  
1919  == Upgrade An Existing LinuxCNC Configuration
1920  
1921  The method of upgrading is dependent on the type of LinuxCNC installation:
1922  
1923  === Upgrade A LinuxCNC Buildbot Installation
1924  
1925  From a terminal:
1926  
1927  ----
1928  $ sudo apt-get update
1929  $ sudo apt-get dist-upgrade
1930  ----
1931  
1932  === Upgrade A LinuxCNC Run In Place Installation
1933  
1934  From a terminal:
1935  
1936  ----
1937  $ cd ~/linuxcnc-dev
1938  $ git pull
1939  $ cd src
1940  $ make
1941  $ sudo make setuid
1942  ----
1943  
1944  === Change Type Of LinuxCNC Installation
1945  
1946  It is possible to change the type of LinuxCNC installation:
1947  
1948  * If you currently have a working run in place installation and you want to switch to a buildbot installation then do a <<buildbot-install, buildbot installation>>.
1949  * If you currently have a working buildbot installation and you want to switch to a run in place installation then do a <<rip-install, run in place installation>>.
1950  
1951  == Upgrade An Existing PlasmaC Configuration
1952  
1953  === Automatic Upgrade
1954  
1955  PlasmaC will test if it needs an upgrade each time LinuxCNC is started. If it finds that it needs upgrading it will automatically proceed with the upgrade. After the upgrade is complete LinuxCNC will need to be restarted.
1956  
1957  === Manual Upgrade
1958  
1959  If you do not wish to allow PlasmaC to do automatic upgrades then you can prevent this by adding 'MANUAL_UPGRADE = 1' to the [PLASMAC] section of the .ini file:
1960  
1961  ----
1962  MANUAL_UPGRADE            = 1
1963  ----
1964  
1965  You would then need to manually upgrade PlasmaC by opening a terminal and running the configurator:
1966  
1967  ====
1968  $ python linuxcnc/<your_configuration_directory>/configurator.py
1969  ====
1970  
1971  The selection window is now visible:
1972  
1973  image::images/plasmac_configurator_home_used.png[width=300]
1974  
1975  Select 'Upgrade' from the selection window, this shows an info dialog, select 'Continue' and the Upgrade window will display.
1976  
1977  image::images/plasmac_configurator_upgrade.png[width=400]
1978  
1979  Select the .ini file of the PlasmaC configuration you wish to upgrade, click 'Upgrade' and your PlasmaC configuration will be upgraded.
1980  
1981  [[modify-config]]
1982  
1983  == Reconfigure An Existing PlasmaC Configuration
1984  
1985  The Configurator is able to modify:
1986  
1987  * The HAL pins connecting PlasmaC to the machine.
1988  * The mode used by PlasmaC.
1989  * The position of the Run Panel in the GUI.
1990  
1991  Reconfiguring a Plasmac configuration is done from the Configurator which is located in your configuration directory.
1992  
1993  To start the configurator open a terminal and enter:
1994  
1995  ====
1996  $ python linuxcnc/<your_configuration_directory>/configurator.py
1997  ====
1998  
1999  The selection window is now visible:
2000  
2001  image::images/plasmac_configurator_home_used.png[width=300]
2002  
2003  Select 'Reconfigure' from the selection window, this shows an info dialog, select 'Continue' and the Reconfigure window will display.
2004  
2005  image::images/plasmac_configurator_reconfigure.png[width=400]
2006  
2007  Select the .ini file of the PlasmaC configuration you wish to reconfigure.
2008  
2009  If you change modes then you will notice that entry boxes change depending on the currently selected mode.
2010  
2011  When all entries are correct, click 'Reconfigure' and your PlasmaC configuration will be reconfigured.
2012  
2013  Entry descriptions can be found <<configurator-table, here>>
2014  
2015  NOTE: Machine Name and .hal File can not be modified.
2016  
2017  == Materialverter
2018  
2019  This application is used to convert existing tool tables into PlasmaC material files it can also create a material file from manual user input to entry fields.
2020  
2021  At this stage the only conversions available are from SheetCam and Fusion360.
2022  
2023  Sheetcam tool tables are complete and the conversion is fully automatic. The SheetCam tool file must be in the SheetCam .tools format.
2024  
2025  Fusion360 tool tables do not have all required fields so the user is prompted for missing parameters.  The Fusion360 tool file must be in the Fusion360 .json format.
2026  
2027  If you have a format you would like converted, create a 'New Topic' in the https://forum.linuxcnc.org/plasmac[PlasmaC forum] section of the https://forum.linuxcnc.org/[LinuxCNC forum].
2028  
2029  Materialverter may be run from a GUI file manager by double clicking on 'materialverter.py' in your configuration directory or may be run from a terminal with the following command:
2030  
2031  ----
2032  $ python ~/linuxcnc/configs/<machine-name>/materialverter.py
2033  ----
2034  
2035  This will bring up the materialverter dialog:
2036  
2037  image::images/plasmac_material_main.png[width=400]
2038  
2039  Select one of:
2040  
2041  * Manual - to manually create a new material file.
2042  * SheetCam - to convert a SheetCam tool file.
2043  * Fusion360 - to convert a Fusion360 tool file.
2044  
2045  For SheetCam only, select whether you would like a metric or imperial output file.
2046  
2047  For a conversion, select the Input File you wish to have converted.
2048  
2049  Select the Output File you wish to write to, this would normally be ~/linuxcnc/configs/<machine-name>_material.cfg, although you could select a different file and hand edit your <machine-name>_material.cfg file.
2050  
2051  Click Create/Convert and your new material file will be created.
2052  
2053  For a Manual creation or a Fusion360 conversion a dialog will show and any entry marked with pass:[***] is mandatory and all other entries are optional depending on your configuration.
2054  
2055  with any required parameters displayed for input.
2056  
2057  image::images/plasmac_material_dialogs.png[width=300]
2058  
2059  NOTE: If you select ~/linuxcnc/configs/<machine-name>_material.cfg then if this file already exists it will be overwritten.
2060  
2061  [[mesa-thcad]]
2062  
2063  == Mesa THCAD
2064  
2065  The preferred jumper settings are, 'UNIPOLAR' and 'F/32'
2066  
2067  You will need to manually add a scale, filter and counter mode to your base machine .hal file before running the Configurator.
2068  
2069  If you connected your THCAD to a mesa 7i76e then the commands required in the .hal file would be:
2070  
2071  ----
2072  setp  hm2_7i76e.0.encoder.00.scale -1
2073  setp  hm2_7i96.0.encoder.00.filter        1
2074  setp  hm2_7i76e.0.encoder.00.counter-mode 1
2075  ----
2076  
2077  You then need to note that the 'Arc Voltage HAL Pin' entry in the PlasmaC Configurator will be:
2078  
2079  ----
2080  hm2_7i76e.0.encoder.00.velocity
2081  ----
2082  
2083  === Obtaining The Divider Ratio
2084  
2085  [underline]*THCAD-10*
2086  
2087  If connecting to a plasma CNC port then the divider ratio is selected from the plasma machine.
2088  
2089  If connecting to the plasma machines full arc voltage then a common setup is a 1 megOhm resistance from arc negative to THCAD negative and a 1 megOhm resistance from arc positive to THCAD positive. This gives a full scale reading of 210V. The THCAD can handle over-voltages up to 500V so this is not a problem.
2090  
2091  To get the divider ratio use (R1 + R2 + 100000) / 100000 so for the above it would be (1000000 + 1000000 + 100000) / 100000 giving a ratio of 21.
2092  
2093  IMPORTANT: If you are using a HF start plasma power supply then each of these resistances should be made up of several high voltage resistors.
2094  
2095  [underline]*THCAD-300*
2096  
2097  This is connected to the plasma machines full arc voltage and the divider ratio = 1
2098  
2099  === Calibration Values
2100  
2101  This is to obtain the starting values for Voltage Offset and Voltage Scale in the Config Panel.
2102  
2103  If you look at the rear of the THCAD you will see a calibration sticker with:
2104  
2105  ----
2106      THCAD-10      |        THCAD-300
2107                    |
2108   0V  121.1 kHz    |     0V   121.1 kHz
2109  10V  925.3 kHz    |   300V   925.3 kHz
2110  ----
2111  
2112  Or similar values, these are the frequencies generated by the THCAD for 0 volts and full scale volts respectively.
2113  
2114  You can now calculate the values as shown below or use https://jscalc.io/calc/NTr5QDX6WgMThBVb[this online calulator]
2115  
2116  [underline]*Voltage Scale*
2117  
2118  Use the formula:
2119  
2120  ----
2121  Divider_Ratio / ((Full_Scale_Frequency - 0V_Frequency) / Frequency_Divider / Full_Scale_Voltage)
2122  ----
2123  
2124  This result will be used for setting 'Voltage Scale' in the Config Panel when setting up the configuration.
2125  
2126  THCAD-10 example would be:
2127  
2128  ----
2129  21 / ((925300 - 121100) / 32 / 10) = 0.00835613
2130  ----
2131  
2132  For our calculation above, we used 21 from our divider calculation, 32 from the jumper setting 'F/32' and 10 which is the full scale reading of the THCAD card itself.
2133  
2134  THCAD-300 example would be:
2135  
2136  ----
2137  1 / ((925300 - 121100) / 32 / 300) = 0.01193732
2138  ----
2139  
2140  For our calculation above, we used 1 as our divider ratio, 32 from the jumper setting 'F/32' and 300 which is the full scale reading of the THCAD card itself.
2141  
2142  
2143  [underline]*Voltage Offset*
2144  
2145  Use the formula:
2146  
2147  ----
2148  0V_Frequency / 32
2149  ----
2150  
2151  This result will be used for setting 'Voltage Offset' in the Config Panel when setting up the configuration.
2152  
2153  The THCAD-10 and THCAD-300 examples above would be:
2154  
2155  ----
2156  121100 / 32 = 3784.375
2157  ----
2158  
2159  === Mesa Board Settings
2160  
2161  When using a THCAD connected to an encoder on a Mesa Electronics board e.g. 7i96 then it is necessary to set the encoder to up/down mode in the .hal file and it is recommended to set encoder channel B (if it exists) to single ended (TTL) mode by setting jumpers on the board. See your board manual for further information.
2162  
2163  Settings in the .hal file would then be similar to:
2164  
2165  ----
2166  setp    hm2_7i96.0.encoder.00.counter-mode  1
2167  setp    hm2_7i96.0.encoder.00.filter        1
2168  setp    hm2_7i96.0.encoder.00.scale        -1
2169  ----
2170  
2171  NOTE: There is a <<lowpass, lowpass filter>> available which may be useful if using a THCAD.
2172  
2173  [[pm_comms]]
2174  
2175  == Powermax Communications
2176  
2177  Communications can be established with a Hypertherm Powermax plasma cutter that has a RS485 port. This then enables the setting of 'Cut Mode', 'Cutting Amperage' and 'Gas Pressure' automatically from the 'Cut Parameters' of the material file.
2178  
2179  If Gas Pressure is set to Zero then the Powermax will calculate the required pressure from the Cut Mode, Cut Current, torch type and torch length.
2180  
2181  The maximum and minimum values of these parameters are read from the plasma cutter and the related spin-buttons in the Cut Parameters are set with these values.
2182  
2183  This function is enabled by setting the correct port name for the PM_PORT variable in the [PLASMAC] section of the .ini file.
2184  
2185  ----
2186  [PLASMAC]
2187  PM_PORT = /dev/ttyusb0
2188  PM_PRESSURE_DISPLAY = Bar
2189  ----
2190  
2191  If you are unsure of the name of your port there is a python script in the configuration directory that will show all available ports and can also be used to test communications with the plasma unit prior to using this feature in PlasmaC. To use the test script enter the following in a terminal.
2192  
2193  ----
2194  $ python ~/user/linuxcnc/configs/<your_config>/pmx_test.py
2195  ----
2196  
2197  The gas pressure units display is configured by the PM_PRESSURE_DISPLAY variable. This should be set to the units configured in the Powermax unit being connected to, then the text entered for the PM_PRESSURE_DISPLAY variable is shown next to the Gas Pressure spinbutton on the Run Panel.
2198  
2199  If the PM_PORT variable is not set in the .ini file then the widgets associated with this function will not be visible.
2200  
2201  The Powermax machine will go into remote mode after communications have been established and will be controlled remotely. The connection can be validated by observing the Powermax display.
2202  
2203  To switch the Powermax back to local mode you can either:
2204  
2205  .  Disable Powermax Comms from the Run panel
2206  .  Powerdown the Powermax for 30 seconds and then power it back on.
2207  .  Close LinuxCNC which will put the Powermax into local mode during shutdown.
2208  
2209  NOTE: To use the Powermax communictions feature it is necessary to have the python pyserial module installed. +
2210  If pyserial is not installed an error message will be displayed.
2211  
2212  To install pyserial, type the following in a terminal:
2213  
2214  ----
2215  sudo apt-get install python-serial
2216  ----
2217  
2218  It should be noted that during the initial testing phase of this feature it was found that the USB to RS485 converter had reliability issues and that a PCI RS485 card was then installed on the test machine with no issues at all.
2219  
2220  == Support
2221  
2222  On line help and support are available from the https://forum.linuxcnc.org/plasmac[PlasmaC forum] section of the https://forum.linuxcnc.org/[LinuxCNC forum].