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].