plasmac - A plasma cutter controller


loadrt plasmac


A plasma cutting table control component for use with the LinuxCNC V2.8 or later.

1.0 - 2021 Sep 19

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.axis-x-position float in

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

plasmac.axis-y-position float in

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

plasmac.axis-z-min-limit float in

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

plasmac.axis-z-max-limit float in

axis z maximum limit, connect to ini.z.max-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, set to 0 to use feed rate from gcode file (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.external-estop bit in

external estop 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.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-errors-max s32 in (default: 2)

allowable kerfcross threshold errors

plasmac.kerfcross-enable bit in

enable kerf crossing [mode 0 & mode 1]

plasmac.kerfcross-override float in

kerf crossing threshold override as a percentage

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

requested velocity, set by a known requested velocity or connect to motion.requested-vel

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 start of cut to THC enable (seconds)

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-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)

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.x-offset float in

offset to apply to axis x for consumable change

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 float in

offset to apply to axis y for consumable change

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

time of current cut 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.kerfcross-is-locked bit out

kerf crossing locked indicator [mode 0 & mode 1]

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.pierce-count s32 out

number of pierce attempts

plasmac.probe-test-error bit out

minimum limit reached while probe testing

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 bit out

safe height is limited indicator

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