1. License

PlasmaC and all its related software is released under GPLv2.

2. Introduction

PlasmaC is a LinuxCNC configuration for plasma cutting incorporating the PlasmaC HAL component with GUI configurations for both Axis and Gmoccapy. It should run on any hardware that is supported on LinuxCNC provide there are enough I/O pins.

If you are new user, it may be worthwhile having a read through the Plasma CNC Primer document which is a generic introduction to CNC plasma cutting.

PlasmaC uses one of three different operating modes.

Mode

Description

0

Use external arc voltage in to calculate Arc Voltage and Arc OK

1

Use external arc voltage in to calculate Arc Voltage
Use external arc ok in for Arc OK

2

Use external arc ok in for Arc OK
Use external up/down for THC

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 feature not available.

No Z axis motion is required in G-Code, the standard PlasmaC configurations will comment out any Z commands during program load.

For reliable use of PlasmaC you should NOT use any Z axis offsets other than coordinate system offsets (G54 -G59.3).

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.

3. I/O Requirements

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.

Name

Modes

Description

Arc Voltage

0,1

Analog input to read the arc voltage
Typically connected to a velocity output from an encoder

Float Switch

0,1,2

Digital input. Optional, see below
Connected to the switch on the floating head
If not using an ohmic probe this is the primary probe sensor
If using an ohmic probe this is the fallback probe sensor

Ohmic Probe

0,1,2

Digital input. Optional, see below
Connected to the probe output
If used, this is the primary probe sensor

Ohmic Probe Enable

0,1,2

Digital output. Only required if using ohmic probing
Connected to the probe enabling input
This pin is used to arm the ohmic probe

Breakaway Switch

0,1,2

Digital input. Optional, see below
Connected to the torch breakaway switch
Senses if the torch has broken away from its cradle

Torch On

0,1,2

Digital output
Connected to the torch on input of the plasma power supply

Move Up

2

Digital input
Connected to the up output of the external THC control

Move Down

2

Digital input
Connected to the down output of the external THC control

Scribe Arming

0,1,2

Digital output
Connected to air-scribe arming circuit

Scribe Start

0,1,2

Digital output
Connected to air-scribe start circuit

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.

If ohmic probe is used then ohmic probe enable is required.

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

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.
Important
These pins will be entered later into the Configurator, they should NOT be used in your base machine .hal file.

4. Installation

4.1. Getting LinuxCNC With The PlasmaC Add-Ons

The minimum requirement for PlasmaC is LinuxCNC v2.8, although this version does NOT support the paused motion feature.

LinuxCNC v2.9 or later provides full functionality and is the recommended option.

4.2. If You Do Not Have Linux Installed

Download an ISO image from one of the following and write it to a bootable device:

Then boot from the device and follow the prompts.

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.

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 Testing LinuxCNC Installation

All PlasmaC development has been done on a Stretch ISO installation.

4.3. If You Have LinuxCNC v2.7

You can then choose between:

  • A Buildbot installation The LinuxCNC Buildbot provides pre-compiled packages which can be installed by a package manager.

  • A Run In Place installation. RIP builds are compiled on your computer and are normally used if you wish to do any development work.

Buildbot Installation

For more information on the LinuxCN Buildbot, see the LinuxCNC buildbot

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:

sudo apt-key adv --keyserver hkp://keys.gnupg.net --recv-key E0EE663E

Close the terminal, then from the Main Menu, open Synaptic Package Manager.

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.

Click Settings from the menu and select Repositories.

You can then either edit or delete existing LinuxCNC entries but you need to end up with the following set of stanzas as the only references to LinuxCNC:

deb     http://buildbot.linuxcnc.org/ <distro> <branch>-<rt_type>
deb-src http://buildbot.linuxcnc.org/ <distro> <branch>-<rt_type>

Where:

  • <distro> is stretch or wheezy

  • <branch> is master or 2.8

  • <rt_type> is rtpreempt or rt

So if you installed the stretch version and wanted master branch then you would have:

deb     http://buildbot.linuxcnc.org/ stretch master-rtpreempt
deb-src http://buildbot.linuxcnc.org/ stretch master-rtpreempt

When this is completed Synaptic should do a package reload, if not do a manual Reload from the menu bar.

Now do a Search with linuxcnc as the search term and the result should be a list of newly available LinuxCNC packages

Right click on the package you want to install and then select Mark for Installation.

For rtpreempt you would select linuxcnc-uspace and for rt it would be linuxcnc.

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.

When you have made all your selections, click Apply on the menu bar and the selected packages will be installed.

Run In Place Installation

For more information on a Run In Place installation, see Building LinuxCNC

Caution
Ensure you are NOT the root user
Do NOT use sudo except for the make setuid step

Open a terminal window:

$ git clone git://github.com/linuxcnc/linuxcnc.git linuxcnc-dev
$ cd linuxcnc-dev/src
$ ./autogen.sh

for RTPREEMPT

$ ./configure --with-realtime=uspace

For RTAI (mostly for parallel port machines)

$ ./configure --with-realtime=/usr/realtime-$VERSION

You can then try to compile LinuxCNC.

$ make

If you get errors here have a look at Satisfying Build Dependencies

If no errors:

$ sudo make setuid
$ . ../scripts/rip-environment (that is dot space dot dot slash)
$ linuxcnc

My preferred method of opening a run in place version of LinuxCNC is:

$ ~/linuxcnc-dev/scripts/linuxcnc

This script will set the required environment variables and start linuxcnc.

You could then point this to an .ini file and open a configuration. This command could then be put in a desktop shortcut.

$ ~/linuxcnc-dev/scripts/linuxcnc ~/linuxcnc/configs/plasmac/plasmac.ini

4.4. Testing LinuxCNC Installation

The LinuxCNC Configuration Selector should open.

Navigate to Sample Configurations - by_machine - plasmac.

Select either Axis or Gmoccapy.

Select either metric or imperial.

You now have all the requirements to run PlasmaC, the next step is to create a working configuration for your machine.

4.5. Make A Working Base Machine Configuration

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.

Do NOT add any plasma specific connections here, these will be added later.

Recommended settings for the Z axis are:

  • Z MINIMUM_LIMIT should be just below top of slats with allowances for float_switch_travel and table_discrepencies.

  • Z MAXIMUM_LIMIT should be the highest you want the Z axis to travel (must not be lower than Z HOME_OFFSET)

  • Z HOME should be just below the maximum limit

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.

When this stage is completed you can configure PlasmaC on top of your working machine.

You can create a base machine manually or you may use existing configuration helpers:

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.

If using a Mesa Electronics board, use the pncconf wizard:

$ pncconf

If using a parallel port, use the stepconf wizard:

$ stepconf

If using a Pico Systems board:
This LinuxCNC forum thread may help.

If you have a dual motor gantry configuration you may need to hand edit your configuration to suit:
This LinuxCNC forum thread may help.

4.6. Add PlasmaC To Base Machine

You need to have a fully tested and working base machine configuration without any connections to plasma specific equipment before proceeding.

Caution
Do NOT proceed until this has been done

If you are using a Mesa Electronics THCAD card for arc voltage measurement, see Mesa THCAD before proceeding

Installing a Plasmac configuration is done from the Configurator, the type of installation determines the location of the Configurator (configurator.py):

4.7. Start A Plasmac BuildBot Installation

From a terminal:

$ python /user/share/doc/linuxcnc/examples/sample-configs/by_machine/plasmac/configurator.py

4.8. Start A PlasmaC Run In Place Installation

From a terminal:

$ python ~/linuxcnc-dev/configs/by_machine/plasmac/configurator.py

Tip
If the Configurator does not run make sure that the file permissions allow executable.

4.9. Install

The selection window is now visible:

images/plasmac_configurator_home_new.png

Select New from the selection window, this shows an info dialog, select Continue and the New Configuration window will display.

Note
There will be different fields visible depending on the mode you select.
images/plasmac_configurator_new.png

Field

Description

Mode

select the mode you require
0 if using an arc voltage signal for Arc Voltage and Arc OK
1 if using external arc ok for Arc OK
2 if using up/down from an external THC

Machine Name

the new name for your machine. This will create a ~/linuxcnc/<name> directory and your .ini file will be <name>.ini

Ini File

this is the .ini file you created for your base machine config

HAL File

this is the .hal file you created for your base machine config

Arc OK

Modes 1 and 2 only
the HAL pin you have connected your arc ok signal to

Arc Voltage

Modes 0 An 1 only
the HAL pin you have connected your arc voltage signal to

Ohmic Probe

only required if using ohmic probing
the HAL pin you have connected your ohmic probe to

Ohmic Probe Enable

only required if using ohmic probing
the HAL pin you have connected your ohmic probe enable to

Float Switch

only if using a float switch
the HAL pin you have connected your float switch to

Breakaway Switch

only if using a breakaway switch
the HAL pin you have connected your breakaway switch to

Torch On

the HAL pin you have connected your torch on to

Move Up

Mode 2 only
the HAL pin you have connected your move up signal to

Move Down

Mode 2 only
the HAL pin you have connected your move down signal to

Run Panel

Run Tab = the run frame is a tab behind the preview tab
Run Panel = the run frame is a panel at the side of the GUI

Scribe Arming

only required if using an air-scribe
the HAL pin to arm the air-scriber

Scribe Start

only required if using an air-scribe
the HAL pin to start the air-scriber

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.

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>

This can be run as follows:

  • For a buildbot installation:

$ linuxcnc ~/linuxcnc/configs/<machine-name>.<machine-name>.ini
  • For a run in place installation:

$ ~/linuxcnc-dev/scripts/linuxcnc ~/linuxcnc/configs/<machine-name>.<machine-name>.ini

After creating a new configuration some initial setup is required.

4.10. Initial Setup

LinuxCNC should now be running with the PlasmaC panels visible. Open the Config Panel and ensure every one of these settings suits your machine.

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.
Caution
Plasma cutting voltages can be lethal, if you are not experienced in doing these measurements get some qualified help.

4.11. Lowpass Filter

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.

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.

setp plasmac.lowpass-frequency 100

Would give a cutoff frequency of 100Hz.

5. Plasmac Files

After an installation, the following files are created in the configuration directory:

Filename

Function

<MACHINE>.ini

configuration file

<MACHINE>.hal

HAL connections for the PlasmaC component

<MACHINE>_connections.hal

HAL connections to the I/O HAL pins

postgui.hal

a HAL file run after the GUI has loaded for user customizing

Note
Custom commands are allowed in <MACHINE>_connections.hal and the postgui.hal files as they are not overwritten during upgrades

In addition to the above files, the following links are created to the files in the source directory:

Filename

Function

plasmac.hal

permanent HAL connections for the plasmac component

plasmac_xxx.glade

a gladevcp panel for the PlasmaC configuration

plasmac_xxx.hal

HAL connections for the panel

plasmac_xxx.py

python code for the panel

xxx_startup.ngc

startup G-Code commands

plasmac_gcode.py

a preprocessor for the loaded G-Code file

plasmac_axis.py

python code to customise the Axis GUI

M190

for G-Code changing of materials

materialverter.py

tool table converter and material file creator

configurator.py

configure a new or upgrade an existing PlasmaC configuration

wizards

files relating to the shape library

test

files for the test panel

After running a new configuration the first time the following files will be created in the configuration directory:

Filename

Function (<MACHINE> = name of machine in .ini file)

<MACHINE>_config.cfg

configuration settings for the config tab

<MACHINE>_run.cfg

configuration settings for the Run Panel

<MACHINE>_material.cfg

material file for cut parameters

<MACHINE>_wizards.cfg

configuration settings for the shape library

plasmac_stats.var

saved statistics

Note
The .ini files are notated for extra the requirements for these configurations.
Note
The .cfg files are plain text and may be edited with any text editor.

6. PlasmaC GUI Panels

PlasmaC adds several panels to the GUI, some are panels on permanent display and others are tabs behind the preview tab.

Some functions are only used for particular modes and are not displayed if not required.

6.1. Config Panel

This panel is for configuration parameters that are modified infrequently.

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:

[PLASMAC] CONFIG_DISABLE = 1

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.

images/plasmac_config.png
Probing

Parameters related to probing.

Name

Description

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.

Probe Speed

This is the speed the Z axis will probe down at after it moves to Probe Height.

Probe Height

This is the height above the Z axis bottom limit that probing begins from.

Ohmic Probe Offset

The Z axis offset of the ohmic probe.

Ohmic Retries

This is the number of times to retry an ohmic probe if it fails before fallback to the float switch.

Skip IHS

The distance used to see if IHS can be skipped, see IHS Skip.

Warning
Probe Height is the height above the minimum Z axis limit.
THC

Parameters related to torch height control.

Name

Modes

Description

Delay

0,1,2

Delay from cut start until THC activates.

Threshold

0,1,2

Variation from target voltage for THC to correct height.

PID P Gain (Speed)

0,1

PID P gain for THC, THC correction speed.

VAD Threshold

0,1

Percentage of Cut Feed Rate velocity needs to fall below to lock THC.

Void Override

0,1

Higher values need greater voltage change to lock THC

PID I Gain

0,1

PID I gain for THC

PID P Gain

0,1

PID D gain for THC

Safe Height

Parameters related to safe height.

Name

Description

Safe Height

This is the height above the work surface that the Z axis will retract to on rapid moves.
If set to Zero then Z axis maximum height will be used for the safe height.

Arc

Parameters related to arc and arc voltage.

Name

Modes

Description

Fail Timeout

0,1,2

The amount of time to wait from torch on until a failure if arc is not detected.

Max. Starts

0,1,2

The number of attempts at starting an arc.

Retry Delay

0,1,2

The time between an arc failure and another arc start attempt.

Torch Off Delay

0,1,2

The delay from an M5 command until torch turns off and the Z axis raises.

Voltage Scale

0,1

The value required to scale the arc voltage input to display the correct arc voltage.

Voltage Offset

0,1

The value required to display zero volts when there is zero arc voltage input.
For initial setup multiply the arc voltage out value by -1 and enter that for Voltage Offset.

Height Per Volt

0,1,2

The distance the torch would need to move to change the arc voltage by one volt.

OK High Volts

0

High voltage threshold for Arc OK.

OK Low Volts

0

Low voltage threshold for Arc OK.

Motion

Parameters related to motion.

Name

Description

Max. Speed

Display only of the maximum speed the Z axis is capable of.

Setup Speed

The Z axis speed for setup moves. e.g. Pierce Height, Cut Height etc.

Note
Setup Speed has no effect on THC speed which is capable of Max. Speed.
Air Scribe

Parameters related to an optional air-scribe.

Name

Description

Arm Delay

Delay to allow air-scribe to reach surface of material before start of scribing.

Start Delay

Delay to allow air-scribe to start before beginning motion.

Center Spot

Parameters related to centre spotting (centre punch).

Important
This is experimental and will not suit some plasma cutters

Name

Description

Threshold

The arc voltage at which the delay timer will begin.
0V starts the delay when the torch on signal is activated.

Delay

The length of time the torch is on after threshold reached (mS).

Save & Reload Buttons

The Save button will save the currently displayed parameters as the default.

The Reload button will reload the last saved parameters.

6.2. Run Panel

This panel shows the parameters which are active for the current cut.

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.

images/plasmac_run.png
Cut Parameters

Parameters related to cutting.

Name

Description

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

Kerf Width

The kerf width for the currently selected material

THC Enable

THC state for the currently selected material

Pierce Height

The pierce height for the currently selected material

Pierce Delay

The pierce delay for the currently selected material

Cut Height

The cut height for the currently selected material

Cut Feed Rate

The cut feed rate for the currently selected material

Cut Amps

The cut amperage for the currently selected material
Operator indicator only

Cut Volts

The cut voltage for the currently selected material

P-Jump Height

The puddle jump height for the currently selected material

P-Jump Delay

The puddle jump delay for the currently selected material

THC

Parameters related to torch height control.

Name

Modes

Description

State

0,1,2

Disabled = permanently off
Auto = decide by THC Enable and G-Code
Enabled = on unless disabled by G-Code

Use Auto Volts

0,1

On = THC control voltage is sampled from arc voltage
Off = THC control voltage is from Cut Volts

VAD Enable

0,1,2

On = Velocity anti-dive is enabled
Off = Velocity anti-dive is disabled

Void Sense Enable

0,1

On = Void sensing is enabled
Off = Void sensing is disabled

Ohmic Probe

Parameters related to ohmic probing.

Name

Description

Ohmic Probe Enable

This is to enable or disable the ohmic probe input.

Note
If Ohmic Probe is disabled, the Ohmic Probe LED will still show the status of the probe input.
Single Cut

Parameters for a single cut.

Name

Description

X Axis Length

The X axis distance to travel for a single cut.

Y Axis Length

The Y axis distance to travel for a single cut.

Start Cut

Press to commence a single cut.

Save Button

The Save button has two modes of operation:

  1. If the Default material is displayed then all the currently displayed parameters on the Run Panel will be saved as the default.

  2. If any other material is showing then the displayed Cut Parameters will be saved for that material, all other materials remain unchanged.

Reload Button

The Reload button will reload the default material and the material file.

New Button

The New button allows the addition of a new material in the material file.

It will prompt for a material number and a material name when these are entered it will create the new material using the Cut Paramaters from the Default Material and then reload the material file with the new material displayed.

Make any required changes and then save them using the save button.

Delete Button

The Delete button allows the deletion of a material from the material file.

It will prompt for a material number and when this is entered it will prompt again to make sure you want to delete it.

If the deletion is confirmed it will delete the material from the material file and reload the materials with the default material loaded.

6.3. Monitor Panel

The Monitor Panel is used for display only, both Axis and Gmoccapy have similar Monitor Panels.

images/plasmac_monitor.png

Name

Modes

Description

Arc Voltage

0,1

Displays the actual arc voltage

Arc OK

1,2

Indicates the status of the arc ok signal

Torch On

0,1,2

Torch is activated

THC Enabled

0,1,2

Indicates if THC is enabled

Ohmic Probe

0,1,2

Indicates the probe has sensed the material

Float Switch

0,1,2

Indicates the float switch is activated

Breakaway

0,1,2

Indicates the breakaway sensor is activated

THC Active

0,1,2

Indicates THC is currently active

THC Up

0,1,2

Indicates THC is causing the Z axis to raise

THC Down

0,1,2

Indicates THC is causing the Z axis to lower

THC Velocity Lock

0,1,2

Indicates THC is locked due to velocity constraints

THC Void Lock

0,1

Indicates THC is locked due to void being sensed

Note
The Ohmic Probe LED will show the status of the probe input regardless of whether Ohmic Probe is enabled or disabled.

6.4. Button Panel

The Button Panel contains buttons useful for the operation of the machine.

Both GUIs have a Torch Enable button which is permanent, all other buttons are user programmable in the .ini file. Axis has five user buttons and Gmoccapy has four user buttons.

Axis button layout:

images/plasmac_buttons_a.png

Gmoccapy button layout:

images/plasmac_buttons_g.png

The Torch Enable button toggles between Enabled and Disabled.

It needs to be Enable to do any cutting.

If it is Disabled then running a loaded program will cause the program to do its cycle without the torch being activated.

6.5. Control Panel

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.

These functions are enabled and disable automatically depending on the status of the machine.

Axis Control Panel:

images/plasmac_control_a.png

Gmoccapy Control Panel:

images/plasmac_control_g.png
Torch Pulse

This pulses the torch on for the amount of time set in the corresponding slider.

Paused Motion

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.

When reversing, motion will stop when it reaches a spindle on command.

When forwarding, motion can continue until the end of the path.

Note
Paused motion is only available in LinuxCNC version 2.9 or later.
Height Change

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.

6.6. Statistics Panel

This provides statistics to allow tracking of consumable wear and job times.

They are shown for the current job and are also as a running total.

Job statistics are reset when the current program is run.

The total values may be reset either individually or all together.

images/plasmac_stats.png

6.7. Extras Panel

This provides a shapes library with some simple shapes that can be selected and loaded into LinuxCNC.

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.

See shape library for shape usage.

See custom user buttons for button usage.

images/plasmac_extras.png

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.

7. Using PlasmaC

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.

If you are using PlasmaC without multiple tools enabled then it is permissible to use M3 S1 in lieu of M3 $0 S1 to begin a cutting job.

7.1. Coordinates

See recommended Z axis settings.

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.

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.

If your machine has home switches then it will move to the specified home coordinates when directed.

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.

After homing the torch needs to know where the material is, this is achieved with Touch Off.

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.

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.

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.

7.2. Path Tolerance

The provided 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.

7.3. Multiple Tools

Multiple tools allows the use of more than one tool, valid tools are:

  • Plasma Torch - for normal cutting

  • Air Scribe - for engraving

  • Plasma Torch - for centre spotting

If multiple tools are enabled then a LinuxCNC tool number is required in the 'M3 command to selected the required tool.

  • M3 $0 S1 will select the plasma cutting tool.

  • M3 $1 S1 will select the air scribe.

  • M3 $2 S1 will select the plasma centre spotting tool.

To enable the multiple tools feature you need to edit the following line in <MACHINE_NAME>_connections.hal.

from:

setp plasmac.multi-tool 0

to:

setp plasmac.multi-tool 1

PlasmaC will read the cut parameters from the Run Panel and use them where required.

7.4. Material Handling

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.

The LinuxCNC tool table and tool commands only come into play if your are using an air-scribe in addition to the plasma torch.

There is a 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.

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.

The following codes may be used for a PlasmaC configuration:

  • M190 Pn - changes the material to number n.

  • M66 P3 L3 Q1 - waits for material change to be confirmed.

  • F#<_hal[plasmac.cut-feed-rate]> - sets the feed rate to the feed rate shown in the cut parameters of the Run Panel.

  • M3 $0 S1 - starts the PlasmaC component.

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:

F#<_hal[plasmac.cut-feed-rate]>
M3 $0 S1
...
M5
Note
Manual material handling does restrict you to only one material for the entire job.

For automatic material handling, the codes MUST be in the order shown. You could have other codes between them. In your G-Code you need:

M190 Pn
M66 P3 L3 Q1
F#<_hal[plasmac.cut-feed-rate]>
M3 $0 S1
...
M5

Material numbers do not need to be consecutive nor do they need to be in numerical order.

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)

Materials can be selected manually with the either the Cut Parameters combobox or via MDI with M190 Pn.

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.

7.5. THC

Note
All references to CutFeedRate mean Cut Feed Rate as displayed in the Run Panel.

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.

THC can also be enabled or disabled directly from G-Code provided that THC is not disabled in the Run Panel.

PlasmaC uses a control voltage dependent on the state of the Use Auto Volts checkbox in the Run Panel:

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

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

THC does not become active until the velocity reaches 99.9% of the CutFeedRate.

G-Code THC

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:

  • M62 P2 will disable THC (synchronised with motion)

  • M63 P2 will enable THC (synchronised with motion)

  • M64 P2 will disable THC (immediately)

  • M65 P2 will enable THC (immediately)

Velocity Based THC

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.

This percentage is displayed as VAD Threshold % in the THC frame of the Config tab.

Velocity based THC prevents the torch height being changed when velocity is reduced for a sharp corner or a small hole.

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.

  • M67 E3 Q0 would set the velocity to 100% of CutFeedRate.

  • M67 E3 Q40 would set the velocity to 40% of CutFeedRate.

  • M67 E3 Q60 would set the velocity to 60% of CutFeedRate.

  • M67 E3 Q100 would set the velocity to 100% of CutFeedRate.

The minimum percentage allowed is 10%, values below this will be set to 100%.

The maximum percentage allowed is 100%, values above this will be set to 100%.

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.

Tip
Another way of achieving the same result is to use F#<_hal[plasmac.cut-feed-rate] with a multiplier.
F[#<_hal[plasmac.cut-feed-rate] * 0.6]
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.

7.6. Cutter Compensation

To use cutter compensation you will need to use G41.1, G42.1 and G40 with the kerf width HAL pin:

  • G41.1 D#<_hal[plasmac_run.kerf-width-f]> ; for left of programmed path

  • G42.1 D#<_hal[plasmac_run.kerf-width-f]> for right of programmed path

  • G40 to turn compensation off

7.7. IHS Skip

IHS may be skipped in one of two different ways:

If THC is disabled then skip IHS if start of cut less than plasmac.skip-ihs-distance from last successful probe.

If THC is enabled then skip IHS if start of cut less than plasmac.skip-ihs-distance from end of last cut.

7.8. Probing

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.

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.

Probing setup is done in the Motion frame of the Config tab.

Warning
Probe Height is the height above the minimum Z axis limit.

7.9. Cut Types

PlasmaC allows two different cut types:

  • Pierce and Cut - runs the loaded GCode program to pierce then cut.

  • Pierce Only - converts then runs the loaded GCode program to do piercing only.

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.

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.

There are two ways of enabling this feature:

  • Program a custom user button to toggle between the cut types.

  • Adding a line <pierce-only> = 1 anywhere in a gcode file to enable Pierce Only mode for the current file.

If using a custom user button then the GUI will automatically reload the file when the cut type is toggled.

7.10. Hole Cutting - Intro

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.

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.

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.

There are three methods available for improving the quality of small holes.

Velocity Reduction

Reduce the velocity to approximately 60% of the CutFeedRate.

Arc Dwell:

Keep the torch on for a short time while all motion is stopped to allow the arc to catch up.

Overcut:

Turn the torch off at the end of the hole then continue along the path of the hole for about 4mm (0.015").

Note
If both Arc Dwell and Overcut are active at the same time then Overcut will take precedence.

7.11. Hole Cutting - GCode Commands

Your GCode commands are set up either by a CAM Post Processor (PP) or by hand coding.

Velocity Reduction

If a hole requires a reduced velocity then set the velocity with M67 E3 Q60 which would set the velocity to 60% of CutFeedRate.

See the Velocity Based THC section.

Arc Dwell:

Hold motion for a time by setting the Off Delay in the Arc frame of the Config Panel

Overcut:

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.

After the torch is turned of the hole path should be followed for approximately 4mm (0.15")

  • M62 P3 will turn the torch off (synchronised with motion)

  • M63 P3 will allow the torch to be turned on (synchronised with motion)

  • M64 P3 will turn the torch off (immediately)

  • M65 P3 will allow the torch to be turned on (immediately)

Sample code:

G21 (metric)
G64 P0.005
M52 P1 (allow paused motion)
F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters)
G0 X10 Y10
M3 $0 S1 (start cut)
G1 X0
M67 E3 Q60 (reduce feed rate to 60%)
G3 I10 (the hole)
M62 P3 (turn torch off)
G3 X0.8 Y6.081 I10 (continue motion for 4mm)
M63 P3 (allow torch to be turned on)
M67 E3 Q0 (restore feed rate to 100%)
M5 (end cut)
G0 X0 Y0
M2 (end job)

7.12. Hole Cutting - Automatic

PlasmaC has the ability to automatically modify the GCode to reduce the velocity and/or apply Overcut.

The default hole size for PlasmaC hole sensing is 32mm (1.26"). It is possible to change this value with the following commands:

  • #<m_diameter> = nn - To set a diameter in metric measurments

  • #<i_diameter> = nn - To set a diameter in imperial measurements

PlasmaC hole sensing is enabled/disabled by setting the following GCode parameter. It is disabled by default.

  • #<holes> = 0 - Disables hole sensing.

  • #<holes> = 1 - Causes PlasmaC to reduce the speed of holes less than 32mm (1.25") to 60% of CutFeedRate.

  • #<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").

Arc Dwell:

Hold motion for a time by setting the Off Delay in the Arc frame of the Config Panel

Use #<holes> = 1 to allow velocity reduction.

Sample code:

G21 (metric)
G64 P0.005
M52 P1 (allow paused motion)
F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters)
#<holes> = 1 (velocity reduction for holes)
G0 X10 Y10
M3 $0 S1 (start cut)
G1 X0
G3 I10
M5 (end cut)
G0 X0 Y0
M2 (end job)
Overcut:

Use #<holes> = 2 to allow velocity reduction and overcut.

Sample code:

G21 (metric)
G64 P0.005
M52 P1 (allow paused motion)
F#<_hal[plasmac.cut-feed-rate]> (feed rate from cut parameters)
#<holes> = 2 (Overcut for holes)
G0 X10 Y10
M3 $0 S1 (start cut)
G1 X0
G3 I10
M5 (end cut)
G0 X0 Y0
M2 (end job)
Note
  • It is OK to have multiple and mixed #<*_diameter> commands in a GCode file.

  • It is OK to have multiple and mixed #<holes> commands in a GCode file.

7.13. Single Cut

A single cut is a single unidirectional cutting move often used to cut a sheet into smaller pieces prior to running a GCode program.

The machine needs to be homed before commencing a single cut.

A single cut will commence from the machines current X/Y position.

Automatic Single Cut

This is the preferred method and the parameters for this method are entered in the Run Panel.

  1. Jog to the required X/Y start position.

  2. Set required Cut Feed Rate in Cut Parameters of the Run Panel.

  3. Enter the length of the cut along the X and/or Y axes.

  4. Press the Start Cut button and the cut will commence.

Pendant Single Cut

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.

  1. Jog to the required X/Y start position.

  2. Set the required feed rate with the Jog Speed slider.

  3. Start the procedure by starting the spindle.

  4. After probing the torch will fire.

  5. When the Arc OK is received the machine can be jogged along the cut line using the jog buttons.

  6. When the cut is complete stop the spindle.

  7. The torch will turn off and the Z axis returns to the starting position.

Manual Single Cut In Axis
  1. Jog to the required X/Y start position.

  2. Set the required feed rate with the Jog Speed slider.

  3. Start the procedure by pressing F9.

  4. After probing the torch will fire.

  5. When the Arc OK is received the machine can be jogged along the cut line using the jog keys.

  6. When the cut is complete press F9 or Esc.

  7. The torch will turn off and the Z axis returns to the starting position.

Manual Single Cut In Gmoccapy

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.

  1. Jog to the required X/Y start position.

  2. Set the required feed rate with the Jog Speed slider.

  3. Enter MDI mode.

  4. Start the procedure by entering M3 S1.

  5. Enter Manual mode.

  6. After probing the torch will fire.

  7. When the Arc OK is received the machine can be jogged along the cut line using the jog buttons (or jog keys if enabled).

  8. When the cut is complete press Esc.

  9. The torch will turn off and the Z axis returns to the starting position.

8. Shape Library

The shape library is not meant to be a CAD/CAM replacement and there are limitations as to what can be achieved.

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.

All lead-ins and lead-outs are arcs except for:

  • Small holes

  • Stars

The New button in the Extras Panel is only required if you wish to begin a new job and a current job exists.

All distances are in machine units and all angles are in degrees.

8.1. Settings

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.

The default parameters available are:

  • Preamble

  • Postamble

  • Lead-in length

  • Lead-out length

  • Small hole diameter

  • Small hole speed

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.

8.2. Single Shape

  1. Open the Extras Panel.

  2. Select the shape you wish to create which will open a shape dialog.

  3. If using Gmoccapy, open the Preview Panel and move the shape dialog so you can see the Preview Panel.
    If using Axis the Preview Panel will open automatically when Preview is pressed.

  4. Enter the appropriate values in the shape dialog and press Preview to load the shape.

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

8.3. Multiple Shapes

Multiple shapes can be added together to create a complex job.

The cut order of the job is determined by the order in which the individual shapes are added to the job.

Once a shape is added to the job it cannot be edited or removed.

Jobs cannot be edited, only added to.

  1. Create the first shape as in Single Shape.

  2. Press Add and the shape will be added to the job.

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

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

  5. Repeat until you have completed adding all the required shapes.

8.4. Array of Shapes

When you are satisfied with the job you have created, an array of the job can be created.

The cut order of an array is from left to right, starting at the bottom row and ending at the top row.

  1. Press Array in the Extras Panel which will open the array dialog.

  2. If using Gmoccapy, open the Preview Panel and move the array dialog so you can see the Preview Panel.
    If using Axis the Preview Panel will open automatically when Preview is pressed.

  3. Enter the appropriate values in the array dialog and press Preview to load the array.

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

  5. Press Accept to complete the procedure.

8.5. Saving A Job

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.

8.6. Running A Job

The current job displayed in the Preview Panel may be run at any time.

9. Air Scribe

An air-scribe may be operated by PlasmaC in addition to the plasma torch, this is disabled by default so as not to affect existing configurations.

Using an air-scribe requires usage of the LinuxCNC tool table, Tool 0 is assigned to the plasma torch and Tool 1 is assigned to the air-scribe. The air-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 air-scribing.

There are two HAL output pins used to operate the air-scribe, one to arm the air-scribe which moves the air-scribe to the surface of the material then after a delay the other to start the air-scribe, then after a delay motion will beging

Using PlasmaC after enabling the air-scribe then requires selecting either the torch or the air-scribe in each GCode file as a LinuxCNC tool.

To enable scribing, see multiple tools.

If you haven’t yet assigned the HAL pins for the air-scribe in the Configurator then you will need to do so by invoking the reconfigure mode of the Configurator.

The air-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 air-scribe to arm but will not start the air-scribe.

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 air-scribe is to the right of the torch it would be a positive value and if the air-scribe is to the rear of the torch it would also be a positive value. The offsets for the torch should always be zero.

The final step is to set the air-scribe delays required:

  1. Arm Delay, allows time for the air scribe to descend to the surface of the material.

  2. Start Delay, allows time for the air scribe to start before motion begins.

Save the Config parameters.

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.

To use the air-scribe from GCode:

...
M52 P1 (paused motion on)
F#<_hal[plasmac.cut-feed-rate]>
T1 M6 (select air-scribe)
G43 H0 (apply ofsets)
M3 $1 S1 (start plasmac with air-scribe)
...
T0 M6 (select torch)
G43 H0(apply ofsets)
G0 X0 Y0 (parking position)
M5 (end)

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.

You can switch between the torch and the air-scribe any number of times during a program by using the above code and issuing M3 $0 S1 to start PlasmaC with the torch.

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.

Warning
If you have an existing manual toolchange in your machine .hal file then PlasmaC will convert it to an automatic toolchange.

10. Center Spotting

Important
This is experimental and will not suit some plasma cutters

To achieve centre spotting prior to drilling, PlasmaC can pulse the torch for a short duration to mark the drill centre spot.

This is done by first setting the arc voltage threshold in the Config Panel. When this threshold is reached the delay timer will start. If the threshold voltage is set to zero then the delay timer will begin from when the torch on signal was sent.

Then set the delay time in the Config Panel. When the delay is complete, the torch will turn off. Times are adjustable from 0 to 9999 milli-seconds.

The torch is then turned on in GCode with the M3 $2 S1 command which selects the plasma torch as a centre spot tool.

To enable centre spotting, see multiple tools.

LinuxCNC requires some motion between an M3 command and a M5 command so a minimal movement at a high speed is programmed.

An example GCode is:

G21 (metric)
F99999 (high feed rate)

g0 x10 y10
m3 $2 s1 (centre spot on)
g91 (relative distance mode)
g1 x0.000001
g90 (absolute distance mode)
m5 (centre spot off)

g0 x0 y0
g90
m30
Note
The high feed rate is to ensure that the motion is at the machines highest feed rate.

11. Error Messages

There are a number of error messages printed by PlasmaC. They could probably be split into two groups, Critical and Warning.

11.1. Critical Errors

Critical errors will cause the program to pause, the operator needs to clear the cause of the error.

If the error was during cutting then forward or reverse motion is allowed to enable the machine to be positioned to recommence the cut.

When the error is cleared the program may be resumed.

These errors indicate the corresponding sensor was activated during cutting.

  • breakaway switch activated program is paused

  • float switch activated program is paused

  • ohmic probe activated program is paused

  • valid arc lost program is paused

These errors indicate the corresponding sensor was activated before probing commenced.

  • ohmic probe detected before moving to probe height program is paused

  • float switch detected before moving to probe height program is paused

  • breakaway switch detected before moving to probe height program is paused

These errors indicate the corresponding sensor was activated while the Z axis is moving from the top down to the probe height.

Warning
Probe height is the height above the Z axis minimum limit.
  • float switch detected while moving to probe height program is paused

  • ohmic probe detected while moving to probe height program is paused

The Z axis reached the bottom limit before the workpiece was detected.

  • bottom limit reached while probing down program is paused

The workpiece is too high for any safe rapid removes.

  • material too high for safe traverse program is paused

One of these values in Cut Parameters in the Run Panel is invalid.

  • invalid pierce height or invalid cut height or invalid cut volts

No arc has been detected after attempting to start the number of times indicated by Arc Start Attempts in the Config tab.

  • no arc detected after <n>d start attempts program is paused

THC has caused the bottom limit to be reached while cutting.

  • bottom limit reached while THC moving down program is paused

THC has caused the top limit to be reached while cutting.

  • top limit reached while THC moving up program is paused'

11.2. Warning errors

Warning errors have no effect on a running program and are informational only.

These errors indicate the corresponding sensor was activated before a probe test commenced.

  • ohmic probe detected before moving to probe height

  • float switch detected before moving to probe height

  • breakaway switch detected before moving to probe height

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.

  • float switch detected while moving to probe height

  • ohmic probe detected while moving to probe height

This indicates that probe contact was lost before probing up to the zero point.

  • probe trip error while probing

This indicates the bottom limit was reached during a probe test.

  • bottom limit reached while probe testing

This indicates that the safe height has been reduced due to THC raising the Z axis during cutting.

  • safe traverse height has been reduced

12. INI File

PlasmaC requires some specific .ini file variables as follows:

12.1. Common

[PLASMAC] Section
MODE                = 0 (use external arc voltage in for Arc Voltage)
                        (use external arc voltage in for Arc OK)
                    = 1 (use external arc voltage in for Arc Voltage)
                        (use external arc ok in for Arc OK)
                    = 2 (Use external arc ok in for Arc OK)
                        (use external up/down for THC)

CONFIG_DISABLE      = 0 (0=enable or 1=disable the PlasmaC Config Panel)
PAUSED-MOTION-SPEED = n (multiply cut-feed-rate by this value for paused motion speed)
TORCH-PULSE-TIME    = n (torch on time when manual pulse requested)
BUTTON_n_NAME       = <NAME> (the name of a custom user buttons)
BUTTON_n_CODE       = <CODE> (the code run by a custom user button)
BUTTON_n_IMAGE      = <IMAGE> (the image displayed by buttons 10~19)
Note
PAUSED-MOTION-SPEED is only valid for LinuxCNC version 2.9 or later
[FILTER] Section
PROGRAM_EXTENSION = .ngc (filter *.ngc files)
ngc               = ./plasmac_gcode.py (this parses the G-Code file and comments out any Z axis motion)
[RS274NGC] Section
RS274NGC_STARTUP_CODE = o<metric_startup> call (machine startup G-Code)
SUBROUTINE_PATH       = ./:../../nc_files/subroutines (./ must be in this path)
FEATURES              = 12 (for reading .ini and HAL variables)
USER_M_PATH           = ./ (for M190 material change)
Important
see path tolerance
[HAL] Section
TWOPASS = on (needed for multiple .hal files)
HALFILE = <MACHINE_NAME>.hal (your base machine .hal file)
HALFILE = plasmac.hal (the standard PlasmaC .hal file )
HALFILE = <MACHINE_NAME>_connections.hal (PlasmaC connections to the machine)
HALFILE = HALUI   = halui (required)

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 air-scribe if required.

Note
You could place custom HAL commands in <MACHINE_NAME>_connections.hal as this file is not overwritten by an upgrade.
[TRAJ] Section
SPINDLES = 3
[AXIS_X] Section
MAX_VELOCITY     = double the value in the corresponding joint
MAX_ACCELERATION = double the value in the corresponding joint
OFFSET_AV_RATIO  = 0.5
[AXIS_Y] Section
MAX_VELOCITY     = double the value in the corresponding joint
MAX_ACCELERATION = double the value in the corresponding joint
OFFSET_AV_RATIO  = 0.5
[AXIS_Z] Section
MIN_LIMIT        = the top of your slats or just below
MAX_VELOCITY     = double the value in the corresponding joint
MAX_ACCELERATION = double the value in the corresponding joint
OFFSET_AV_RATIO  = 0.5
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 External Axis Offsets in the Linuxcnc documentation.

12.2. Axis GUI Specific

[PLASMAC] Section
FONT      = sans 11 (valid font sizes are from 10 to 15)
THEME     = Clearlooks (any installed theme)
MAXIMISED = 0 (0 = sized to suit font, 1 = maximised)
[DISPLAY] Section
TOOL_EDITOR       = tooledit x y
USER_COMMAND_FILE = plasmac_axis.py.py
EMBED_TAB_NAME    = Statistics
EMBED_TAB_COMMAND = gladevcp -c plasmac_stats -x <XID> -u ./plasmac_stats.py -H ./plasmac_stats.hal plasmac_stats.glade

#use one of the next two

#run frame in tab behind preview
EMBED_TAB_NAME    = Plasma Run
EMBED_TAB_COMMAND = gladevcp -c plasmac_run -x <XID> -u ./plasmac_run.py -H plasmac_run.hal plasmac_run_tab.glade

#run frame in panel on left side
#GLADEVCP = -c plasmac_run -u ./plasmac_run.py -H plasmac_run.hal plasmac_run_panel.glade

EMBED_TAB_NAME    = Plasma Config
EMBED_TAB_COMMAND = gladevcp -c plasmac_config -x <XID> -u ./plasmac_config.py -H plasmac_config.hal plasmac_config.glade

EMBED_TAB_NAME    = Extras
EMBED_TAB_COMMAND = halcmd loadusr -Wn plasmac_wizards gladevcp -c plasmac_wizards -x {XID} -u ./plasmac_wizards.py plasmac_wizards.glade

The Run Window can be displayed as one of:

  • A panel on the right side of the Axis GUI which is suitable for widescreen displays.

  • A tab behind the Preview tab which is suitable for 4:3 ratio displays.

12.3. Gmoccapy GUI Specific

[DISPLAY] section
EMBED_TAB_NAME     = plasmac_buttons
EMBED_TAB_LOCATION = box_cooling
EMBED_TAB_COMMAND  = gladevcp -c plasmac_buttons -x <XID> -u ./plasmac_buttons.py -H ./plasmac_buttons.hal plasmac_buttons.glade
EMBED_TAB_NAME     = plasmac_control
EMBED_TAB_LOCATION = box_spindle
EMBED_TAB_COMMAND  = gladevcp -c plasmac_control -x <XID> -u ./plasmac_control.py -H ./plasmac_control.hal plasmac_control.glade
EMBED_TAB_NAME     = Statistics
EMBED_TAB_LOCATION = ntb_preview
EMBED_TAB_COMMAND  = gladevcp -c plasmac_stats -x <XID> -u ./plasmac_stats.py -H ./plasmac_stats.hal plasmac_stats.glade
EMBED_TAB_NAME     = Plasma Run

#use one of the next two

#run panel in tab behind preview
EMBED_TAB_LOCATION  = ntb_preview
EMBED_TAB_COMMAND   = gladevcp -c plasmac_run -x <XID> -u ./plasmac_run.py -H plasmac_run.hal plasmac_run_tab.glade

#run panel in panel on left side
#EMBED_TAB_LOCATION = box_left
#EMBED_TAB_COMMAND  = gladevcp -c plasmac_run -x <XID> -u ./plasmac_run.py -H plasmac_run.hal plasmac_run_panel.glade

EMBED_TAB_NAME     = Plasma Config
EMBED_TAB_LOCATION = ntb_preview
EMBED_TAB_COMMAND  = gladevcp -c plasmac_config -x <XID> -u ./plasmac_config.py -H plasmac_config.hal plasmac_config.glade
EMBED_TAB_NAME     = plasmac_monitor
EMBED_TAB_LOCATION = box_tool_and_code_info
EMBED_TAB_COMMAND  = gladevcp -c plasmac_monitor -x <XID> -u plasmac_monitor.py -H plasmac_monitor.hal plasmac_monitor.glade

EMBED_TAB_NAME     = Extras
EMBED_TAB_LOCATION = ntb_preview
EMBED_TAB_COMMAND  = halcmd loadusr -Wn plasmac_wizards gladevcp -c plasmac_wizards -x {XID} -u ./plasmac_wizards.py plasmac_wizards.glade

The Run Panel can be displayed as one of:

  • A panel on the left side of the Gmoccapy GUI which is suitable for widescreen displays.

  • A tab behind the Preview tab which is suitable for 4:3 ratio displays.

13. Custom User Buttons

There are buttons available that are programmable in the .ini file.

Five buttons are available in the main window of the Axis GUI, numbered 1~5 from left to right.

Four buttons are available in the main window of the Gmoccapy GUI, numbered 1~4 from top to bottom.

An additional ten buttons are available in the Extras panel, numbered 10~19 from top left to bottom right.

All .ini file settings for the buttons are in the [PLASMAC] section.

13.1. Button Names

The text that appears on the button is set the following way:

BUTTON_n_NAME = HAL Show

Where n is the button number and HAL Show is the text.

For text on multiple lines in Axis, split the text with a \

BUTTON_n_NAME = HAL\Show

13.2. Button Code

Buttons can run External Commands, G-Code or any of four special functions, Probe Test, Ohmic Test, Cut Type or Change Consumables. In addition to this, buttons 10~19 in the Extras panel can Load a GCode program.

External Commands

To run an external command, the command is preceded by a % character.

BUTTON_n_CODE = %halshow
G-Code

To run G-Code, just enter the code to be run.

BUTTON_n_CODE = G0 X100

To run an existing subroutine.

BUTTON_n_CODE = o<my_subroutine> call
ini file variables can be entered by using {} (you must put a space after the })
BUTTON_n_CODE = G0 X{JOINT_0 HOME} Y1
BUTTON_n_CODE = G53 G0 Z[{AXIS_Z MAX_LIMIT} - 1.001]

Multiple codes can be run by separating the codes with a \

BUTTON_n_CODE = G0 X0 Y0 \ G1 X5 \ G1 Y5

External commands and G-Code may be mixed on the same button.

BUTTON_n_CODE = %halshow \ g0x.5y.5 \ %halmeter
Probe Test
BUTTON_n_CODE = probe-test 30

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.

Ohmic Test
BUTTON_n_CODE = ohmic-test

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.

Cut Type
BUTTON_n_CODE = cut-type

This button if selected will toggle between the two cut types.

Change Consumables
BUTTON_n_CODE = change-consumables X10 Y10 F1000

This button moves the torch to the specified coordinates when the machine is paused to allow easy access to change consumables.

Valid entries are Xnnn Ynnn Fnnn. F is mandatory and at least one of X or Y are required.

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.

There are three methods to return to the previous coordinates:

  • Press the button again and the torch will return and the machine will wait for a resume command.

  • Resume the program which causes the torch to return then the program will begin running.

  • Stop the program which causes the torch to return then the program will abort.

Load

Buttons 10~19 in the Extras Panel are able to load a GCode program by usng the following format.

BUTTON_n_CODE = load path/to/gcode.ngc

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.

13.3. Button Image

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.

BUTTON_n_IMAGE = path/to/image.png

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.

All images are displayed in a 60 x 60 format.

14. Material File

PlasmaC uses a file containing cut parameters for materials. This file is used for material handling.

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.

The following variables are mandatory and an error message will appear if any are not found when the material file is loaded.

  • PIERCE_HEIGHT

  • PIERCE_DELAY

  • CUT_HEIGHT

  • CUT_SPEED

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.

  • NAME

  • KERF_WIDTH

  • THC

  • PUDDLE_JUMP_HEIGHT

  • PUDDLE_JUMP_DELAY

  • CUT_AMPS

  • CUT_VOLTS

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.

The material file uses the following format:

[MATERIAL_NUMBER_1]
NAME                = name
KERF_WIDTH          = value
THC                 = value (0 = off, 1 = on)
PIERCE_HEIGHT       = value
PIERCE_DELAY        = value
PUDDLE_JUMP_HEIGHT  = value
PUDDLE_JUMP_DELAY   = value
CUT_HEIGHT          = value
CUT_SPEED           = value
CUT_AMPS            = value (only used for operator information)
CUT_VOLTS           = value (modes 0 & 1 only, if not using auto voltage sampling)

It is possible to add new material, delete material or edit existing material from the Run Panel.

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.

15. Example Configurations

There are example configuration files for both the Axis and Gmoccapy GUIs which use the PlasmaC HAL component to simulate plasma cutting machines.

  • metric_plasmac.ini

  • imperial_plasmac.ini

16. NGC Samples

There are some sample G-Code files in nc_files/plasmac.

17. Test Panel

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.

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.

18. Upgrade An Existing LinuxCNC Configuration

The method of upgrading is dependent on the type of LinuxCNC installation:

18.1. Upgrade A LinuxCNC Buildbot Installation

From a terminal:

$ sudo apt-get update
$ sudo apt-get dist-upgrade

18.2. Upgrade A LinuxCNC Run In Place Installation

From a terminal:

$ cd ~/linuxcnc-dev
$ git pull
$ cd src
$ make
$ sudo make setuid

18.3. Change Type Of LinuxCNC Installation

It is possible to change the type of LinuxCNC installation:

  • If you currently have a working run in place installation and you want to switch to a buildbot installation then do a buildbot installation.

  • If you currently have a working buildbot installation and you want to switch to a run in place installation then do a run in place installation.

Important
If any of the these steps were performed it is recommended that you upgrade your PlasmaC configuration

19. Upgrade An Existing PlasmaC Configuration

It is best practice to do a Plasmac upgrade after every LinuxCNC upgrade even though it is not always necessary. This will ensure that the PlasmaC configuration version matches the current LinuxCNC version.

Note
You need to have upgraded your LinuxCNC installation before you upgrade the PlasmaC configuration.

Upgrading a Plasmac configuration is done from the Configurator which is located in your configuration directory.

To start the configurator open a terminal and enter:

$ python linuxcnc/<your_configuration_directory>/configurator.py

The selection window is now visible:

images/plasmac_configurator_home_used.png

Select Upgrade from the selection window, this shows an info dialog, select Continue and the Upgrade window will display.

images/plasmac_configurator_upgrade.png

Select the .ini file of the PlasmaC configuration you wish to upgrade, click Upgrade and your PlasmaC configuration will be upgraded.

20. Reconfigure An Existing PlasmaC Configuration

The Configurator is able to modify:

  • The HAL pins connecting PlasmaC to the machine.

  • The mode used by PlasmaC.

  • The position of the Run Panel in the GUI.

Reconfiguring a Plasmac configuration is done from the Configurator which is located in your configuration directory.

To start the configurator open a terminal and enter:

$ python linuxcnc/<your_configuration_directory>/configurator.py

The selection window is now visible:

images/plasmac_configurator_home_used.png

Select Reconfigure from the selection window, this shows an info dialog, select Continue and the Reconfigure window will display.

images/plasmac_configurator_reconfigure.png

Select the .ini file of the PlasmaC configuration you wish to reconfigure.

If you change modes then you will notice that entry boxes change depending on the currently selected mode.

When all entries are correct, click Reconfigure and your PlasmaC configuration will be reconfigured.

Entry descriptions can be found here

Note
Machine Name and .hal File can not be modified.

21. Materialverter

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.

At this stage the only conversions available are from SheetCam and Fusion360.

Sheetcam tool tables are complete and the conversion is fully automatic. The SheetCam tool file must be in the SheetCam .tools format.

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.

If you have a format you would like converted, create a New Topic in the PlasmaC forum section of the LinuxCNC forum.

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:

$ python ~/linuxcnc/configs/<machine-name>/materialverter.py

This will bring up the materialverter dialog:

images/plasmac_material_main.png

Select one of:

  • Manual - to manually create a new material file.

  • SheetCam - to convert a SheetCam tool file.

  • Fusion360 - to convert a Fusion360 tool file.

For SheetCam only, select whether you would like a metric or imperial output file.

For a conversion, select the Input File you wish to have converted.

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.

Click Create/Convert and your new material file will be created.

For a Manual creation or a Fusion360 conversion a dialog will show and any entry marked with *** is mandatory and all other entries are optional depending on your configuration.

with any required parameters displayed for input.

images/plasmac_material_dialogs.png
Note
If you select ~/linuxcnc/configs/<machine-name>_material.cfg then if this file already exists it will be overwritten.

22. Mesa THCAD

The preferred jumper settings are, UNIPOLAR and F/32

You will need to manually add a scale and counter mode to your base machine .hal file before running the Configurator.

If you connected your THCAD to a mesa 7i76e then the commands required in the .hal file would be:

setp  hm2_7i76e.0.encoder.00.scale -1
setp  hm2_7i76e.0.encoder.00.counter-mode 1

You then need to note that the Arc Voltage HAL pin needed to enter into the PlasmaC Configurator will be:

hm2_7i76e.0.encoder.00.velocity

22.1. Obtaining The Divider Ratio

Using A CNC Port On The Plasma Power Supply

Divider ratio equals the selected internal divider ratio.

THCAD-10

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.

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.

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.

THCAD-300

Divider ratio = 29

22.2. Calibration Values

This is to obtain the starting values for Voltage Offset and Voltage Scale in the Config tab.

If you look at the rear of the THCAD you will see a calibration sticker with:

0V    121.1 kHz
10V   925.3 kHz

Or similar values, these are the frequencies generated by the THCAD for 0 volts and 10 volts respectively.

For our calculations, we will use 32 from the jumper setting F/32 and 10 which is the full scale reading of the THCAD card itself.

Voltage Scale

Use the formula:

Divider_Ratio/((10V_frequency-0V_frequency)/32/10)

This result will be used for setting Voltage Scale in the Config tab when setting up the configuration.

The THCAD-10 example above would be:

21/((925300-121100)/32/10) = 0.00835613
Voltage Offset

Use the formula:

0V_frequency/32

This result will be used for setting Voltage Offset in the Config tab when setting up the configuration.

The THCAD-10 example above would be:

121100/32 = 3784.375

22.3. Mesa Board Settings

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.

Settings in the .hal file would then be similar to:

setp    hm2_7i96.0.encoder.00.counter-mode  1
setp    hm2_7i96.0.encoder.00.filter        1
setp    hm2_7i96.0.encoder.00.scale        -1
Note
There is a lowpass filter available which may be useful if using a THCAD.

23. Support

On line help and support are available from the PlasmaC forum section of the LinuxCNC forum.