plasmac - A plasma cutter controller


loadrt plasmac


A plasma cutting table control component for use with the LinuxCNC 2.10.


Usage of this component is demonstrated in the QtPlasmaC example configurations included with LinuxCNC.



Any machinery capable of harming persons must have provisions for completely stopping all motors and moving parts etc. before persons enter any danger area.

All machinery must be designed to comply with local and national safety codes, and the author of this software can not, and does not, take any responsibility for such compliance.


plasmac (requires a floating-point thread)


plasmac.arc-fail-delay float in

arc start failure timeout (seconds)

plasmac.arc-lost-delay float in

arc lost delay during a cut (seconds)

plasmac.arc-ok-high float in

maximum voltage level for Arc OK signal [mode 0] (volts)

plasmac.arc-ok-in bit in

external arc ok input signal [mode 1 & mode 2]

plasmac.arc-ok-low float in

minimum voltage level for Arc OK signal [mode 0] (volts)

plasmac.arc-max-starts s32 in

maximum attempts at starting the arc

plasmac.arc-voltage-in float in

arc voltage input [mode 0 & mode 1] see Notes above

plasmac.arc-voltage-offset float in

offset to set arc voltage to 0 at 0 volts

plasmac.arc-voltage-scale float in

scale to convert arc_voltage input to actual volts

plasmac.thc-auto bit in

enable automatic thc activation

plasmac.axis-x-max-limit float in

axis x maximum limit, connect to ini.x.max-limit

plasmac.axis-x-min-limit float in

axis x minimum limit, connect to ini.x.min-limit

plasmac.axis-x-position float in

current x axis position, connect to axis.x.pos-cmd

plasmac.axis-y-max-limit float in

axis y maximum limit, connect to ini.y.max-limit

plasmac.axis-y-min-limit float in

axis y minimum limit, connect to ini.y.min-limit

plasmac.axis-y-position float in

current y axis position, connect to axis.y.pos-cmd

plasmac.axis-z-max-limit float in

axis z maximum limit, connect to ini.z.max-limit

plasmac.axis-z-min-limit float in

axis z minimum limit, connect to ini.z.min-limit

plasmac.axis-z-position float in

current z axis position, connect to joint.N.pos-fb

plasmac.breakaway bit in

torch breakaway switch (optional, see float_switch)

plasmac.consumable-change bit in

change consumables in torch

plasmac.cornerlock-enable bit in

enable corner lock

plasmac.cornerlock-threshold float in

corner lock threshold (% of requested feed rate), speeds below this disable THC

plasmac.current-velocity float in

current machine velocity, connect to motion.current-vel

plasmac.cut-feed-rate float in

cut feed rate from current material (machine units per minute)

plasmac.cut-height float in

cut height (machine units)

plasmac.cut-recovery bit in

recover from cut error

plasmac.cut-volts float in

cut voltage (volts)

plasmac.cutting-start bit in

start a new cut, connect to spindle.0.on

plasmac.debug-print bit in

if true will print state changes as a debug aid

plasmac.dry-run bit in

perfom a dry run without probing

plasmac.external-estop bit in

external E-stop input

plasmac.feed-override float in

feed override value from GUI (connect to halui.feed-override.value)

plasmac.feed-reduction float in

reduce adaptive feed to this percentage (connect to motion.analog-out-03)

plasmac.float-switch bit in

float switch input (can also act as breakaway if it actuates when torch breaks away)

plasmac.float-switch-travel float in

float switch travel (machine units)

plasmac.gcode-scale float in (default: 1)

current G-code scale

plasmac.height-override float in

height override adjustment (volts)

plasmac.height-per-volt float in

torch height change per volt (machine units)

plasmac.homed bit in

machine is homed

plasmac.ignore-arc-ok-0 bit in

don’t require arc ok for start or cutting

plasmac.ignore-arc-ok-1 bit in

don’t require arc ok for start or cutting

plasmac.kerf-width float in

placeholder for better G-code portability between GUIs

plasmac.override-jog bit in

override jog inhibit

plasmac.offset-set-probe bit in

deploy probe for setting offsets

plasmac.offset-set-scribe bit in

deploy scribe for setting offsets

plasmac.laser-mode bit in

laser mode for fiber lasers

plasmac.laser-recovery-start s32 in

start laser offset for cut recovery

plasmac.laser-x-offset s32 in

alignment laser x axis offset (scaled units)

plasmac.laser-y-offset s32 in

alignment laser y axis offset (scaled units)

plasmac.lowpass-frequency float in

lowpass cutoff frequency for arc voltage output

plasmac.machine-is-on bit in

machine is on signal

plasmac.max-offset s32 in (default: 5)

maximum height offset

plasmac.mesh-arc-ok bit in (default: FALSE)

don’t require arc ok for mesh mode

plasmac.mesh-enable bit in

enable mesh cutting mode

plasmac.mode s32 in

operating mode

plasmac.motion-type s32 in

motion type, connect to motion.motion-type

plasmac.move-down bit in

external thc down switch [mode 2]

plasmac.move-up bit in

external thc up switch [mode 2]

plasmac.multi-tool bit in (default: 1)

allows the use of multiple tools

plasmac.offset-feed-rate float in

probe offset velocity (machine units per minute)

plasmac.offset-probe-delay float in

wait for probe to deploy (seconds)

plasmac.offset-probe-x float in

X axis offset for offset probe (machine units)

plasmac.offset-probe-y float in

Y axis offset for offset probe (machine units)

plasmac.offsets-active bit in

offsets are active, connect to motion.eoffsets-active

plasmac.ohmic-sense-on-delay s32 in (default: 3)

debounce cycles for ohmic sense on

plasmac.ohmic-sense-off-delay s32 in (default: 3)

debounce cycles for ohmic sense off

plasmac.ohmic-sense-in bit in

ohmic sense relay input

plasmac.ohmic-max-attempts s32 in

maximum ohmic probe attempts before fallback to float switch

plasmac.ohmic-probe bit in

ohmic probe input, from ohmic-sense-out or external component/pin

plasmac.ohmic-probe-enable bit in

enable ohmic probe

plasmac.ohmic-probe-offset float in

Z axis offset for ohmic probe (machine units)

plasmac.ohmic-test bit in

test for shorted torch

plasmac.ok-sample-counts s32 in (default: 10)

arc_ok number of valid samples required [mode 0]

plasmac.ok-sample-threshold float in (default: 10)

arc_ok maximum arc voltage deviation allowed [mode 0]

plasmac.pause-at-end float in

time to pause at end of cut

plasmac.paused-motion-speed float in

multiplier for speed of motion when paused, from -1 to 1 float in

derivative gain input [mode 0 & mode 1] float in

integral gain input [mode 0 & mode 1] float in

proportional gain input [mode 0 & mode 1]

plasmac.pierce-delay float in

time required to pierce stock (seconds)

plasmac.probe-feed-rate float in

probe down velocity (machine units per minute)

plasmac.probe-final-speed s32 in (default: 1)

final probe speed (steps per servo period)

plasmac.pierce-height float in

pierce height (machine units)

plasmac.probe-start-height float in

probe starting height

plasmac.probe-test bit in

probe test only

plasmac.program-is-idle bit in

program is idle, connect to

plasmac.program-is-paused bit in

program is paused, connect to

plasmac.program-is-running bit in

program is running, connect to

plasmac.puddle-jump-delay float in

Delay move from pierce height to cut height (seconds), leave disconnected if not required.

plasmac.puddle-jump-height float in

Puddle jump height (percentage of pierce height), leave disconnected if not required.

plasmac.requested-velocity float in


plasmac.feed-upm float in

requested feed_rate, connect to motion.feed-upm to use as the default (G-code units per minute)

plasmac.resolution s32 in (default: 100)

multiplier for resolution of the offset counts

plasmac.restart-delay float in

time from arc failure till next restart attempt float in

requested safe traverse height (machine units)

plasmac.scribe-arm-delay float in

delay from scribe arm to scribe on

plasmac.scribe-on-delay float in

delay from scribe on to motion beginning

plasmac.scribe-start bit in

start a new scribe, connect to spindle.1.on

plasmac.setup-feed-rate float in

feed rate for moves to pierce and cut heights (machine units per minute)

plasmac.skip-ihs-distance float in

skip IHS if less than this distance from last cut

plasmac.spotting-start bit in

start a new spot, connect to spindle.2.on

plasmac.spotting-threshold float in

threshold voltage to start spotting delay

plasmac.spotting-time float in

torch off delay after spotting threshold reached

plasmac.thc-delay float in

delay from cut feed rate reached to THC activate (seconds) [non auto THC]

plasmac.thc-disable bit in

thc disable

plasmac.thc-enable bit in

enable/disable thc and set the IHS skip type

plasmac.thc-feed-rate float in

maximum feed rate for thc (machine units per minute)

plasmac.thc-sample-counts s32 in (default: 50)

thc number of valid samples required [auto THC]

plasmac.thc-sample-threshold float in (default: 1)

thc maximum arc voltage deviation allowed [auto THC]

plasmac.thc-threshold float in

thc threshold (volts), changes below this have no effect

plasmac.torch-enable bit in

enable torch

plasmac.torch-off bit in

turn torch off

plasmac.torch-pulse-start bit in

torch pulse start

plasmac.torch-pulse-time float in

torch pulse time (seconds) bit in

set the current job as tube cutting

plasmac.units-per-mm float in

for scale calcs, connect to halui.machine.units-per-mm

plasmac.use-auto-volts bit in

use calculated voltage for thc baseline

plasmac.voidlock-enable bit in

enable voidlock [mode 0 & mode 1]

plasmac.voidlock-on-cycles s32 in (default: 2)

number of sampling cycles to activate voidlock

plasmac.voidlock-off-cycles s32 in (default: 10)

number of sampling cycles to deactivate voidlock

plasmac.voidlock-slope s32 in (default: 500)

voidlock slope in volts per second

plasmac.x-offset s32 in

offset to apply to axis x for consumable change and cut recovery (scaled units)

plasmac.x-offset-current float in

current x axis offset, connect to axis.x.eoffset

plasmac.xy-feed-rate float in

feed-rate for consumable change

plasmac.y-offset s32 in

offset to apply to axis y for consumable change and cut recovery (scaled units)

plasmac.y-offset-current float in

current z axis offset, connect to axis.y.eoffset

plasmac.z-offset-current float in

current z axis offset, connect to axis.z.eoffset float in (default: 0.1)

sets window that voltage fluctuations show as zero (-0.1 to 0.1 at default value)

plasmac.pierce-type u32 in (default: 0)

allows motion to progress during pierce. 0=No movement, 1=Wiggle, 2=Ramp

plasmac.pierce-motion-delay float in (default: 0)

delay starting motion during pierce delay period. This is a % of Pierce Delay. Only used when pierce-with-motion is True

plasmac.cut-height-delay float in (default: 0)

at the end of transition to end-pierce-height how long to pause before transition to cut height

plasmac.pierce-end-height float in (default: 0)

The height at end of piercing (in machine units). Can be different to Cut Height. Default 0 means not used. i.e. no change in height

plasmac.gouge-speed float in (default: 0)

Ramp starting speed for gouge. In machine units/min.

plasmac.gouge-speed-distance float in (default: 0)

Distance gouge will run in machine units. Gouge plus creep distance should not be longer than any lead in

plasmac.creep-speed float in (default: 0)

Ramp creep or intermediate speed. Comes after gouge and is before cut speed. In machine units/min.

plasmac.creep-speed-distance float in (default: 0)

Distance creep will run in machine units. Gouge plus creep distance should not be longer than any lead in

plasmac.adaptive-feed float out

for reverse-run, connect to motion.adaptive-feed

plasmac.arc-ok-out bit out

arc ok output

plasmac.arc-voltage-out float out

arc voltage output [mode 0 & mode 1]

plasmac.consumable-changing bit out

consumables are being changed

plasmac.cornerlock-is-locked bit out

corner locked indicator

plasmac.cut-length float out

length of current cut job

plasmac.cut-recovering bit out

recovering from cut error

plasmac.cut-time float out

cut time of current job

plasmac.cutting-stop bit out

stop manual cut, connect to halui.spindle.0.stop

plasmac.feed-hold bit out

feed hold, connect to motion.feed-hold

plasmac.jog-inhibit bit out

jog inhibit, connect to motion.jog-inhibit

plasmac.laser-recovery-state s32 out

laser recovery status

plasmac.led-down bit out

thc move down indicator

plasmac.led-up bit out

thc move up indicator

plasmac.offset-scale float out

offset scale, connect to axis.<x y z>.eoffset-scale

plasmac.ohmic-enable bit out

on only while probing

plasmac.ohmic-sense-out bit out

ohmic sense output state

plasmac.paused-motion bit out

paused motion flag, true when paused motion is active

plasmac.paused-time float out

paused time during current job

plasmac.pierce-count s32 out

number of pierce attempts (torch starts)

plasmac.probe-out bit out

probe for tube cutting, connect to motion.probe-input

plasmac.probe-test-error bit out

minimum limit reached while probe testing

plasmac.probe-time float out

probe time of current job

plasmac.program-pause bit out

pause the current program, connect to halui.program.pause

plasmac.program-resume bit out

resume the currently paused program, connect to halui.program.resume

plasmac.program-run bit out

run the currently loaded program, connect to

plasmac.program-stop bit out

stop current program, connect to halui.program.stop

plasmac.rapid-time float out

rapid motion time of current job float out

run time of current job bit out

safe height is limited indicator

plasmac.sensor-active bit out

one of float, ohmic, or breakaway is detected

plasmac.scribe-arm bit out

arm the scribe

plasmac.scribe-on bit out

turn scribe on

plasmac.state-out s32 out

current state

plasmac.stop-type-out s32 out

current stop type

plasmac.thc-active bit out

thc status output

plasmac.thc-enabled bit out

thc is enabled

plasmac.torch-on bit out

turn torch on, connect to your torch on input

plasmac.torch-time float out

torch on time of current job

plasmac.voidlock-is-locked bit out

voidlock is locked indicator [mode 0 & mode 1]

plasmac.x-offset-counts s32 out

x offset for consumable change, connect to axis.x.eoffset-counts

plasmac.xy-offset-enable bit out

enable x and y offsets, connect to axis.<x & y>.eoffset-enable

plasmac.y-offset-counts s32 out

y offset for consumable change, connect to axis.y.eoffset-counts

plasmac.z-height float out

current z axis height relative to the probed zero height

plasmac.z-offset-counts s32 out

z offset for height control, connect to axis.z.eoffset-counts

plasmac.z-offset-enable bit out

enable z offsets, connect to axis.z.eoffset-enable

plasmac.z-relative float out

distance of Z from last probed height

plasmac.current-feed-rate float out

current feed rate per minute

plasmac.requested-feed-rate float out

requested feed rate

plasmac.low-cut-volts s32 in

low cut voltage threshold while thc active s32 in (default: 6)

number of samples for setting target_volts float out

target voltage for thc, set by arc voltage at cut height


Phillip A Carter & Gregory D Carl


GPLv2 or greater