---
name: "thc"
section: "9"
platform: "linux"
package: "linuxcnc-uspace"
version: "1:2.9.4-2+deb13u1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/thc"
---

# thc(9)

Torch Height Control

## NAME

thc - Torch Height Control

## SYNOPSIS

**loadrt thc**

## DESCRIPTION

Torch Height Control Mesa THC \> Encoder \> LinuxCNC THC component

The Mesa THC sends a frequency based on the voltage detected to the encoder. The velocity from the encoder is converted to volts with the velocity scale parameter inside the THC component.

The THCAD card sends a frequency at 0 volts so the scale offset parameter is used to zero the calculated voltage.

Component Functions If enabled and torch is on and X + Y velocity is within tolerance of set speed allow the THC to offset the Z axis as needed to maintain voltage.

If enabled and torch is off and the Z axis is moving up remove any correction at a rate not to exceed the rate of movement of the Z axis.

If enabled and torch is off and there is no correction pass the Z position and feed back untouched.

If not enabled pass the Z position and feed back untouched.

Physical Connections\
 Plasma Torch Arc Voltage Signal =\> 6 x 487k 1% resistors =\> THC Arc Voltage In\
 THC Frequency Signal =\> Encoder #0, pin A (Input)\
 Plasma Torch Arc OK Signal =\> input pin\
 output pin =\> Plasma Torch Start Arc Contacts

HAL Plasma Connections\
 encoder.nn.velocity =\> thc.encoder-vel (tip voltage)\
 spindle.0.on =\> output pin (start the arc)\
 thc.arc-ok \<= motion.digital-in-00 \<= input pin (arc ok signal)

HAL Motion Connections\
 thc.requested-vel \<= motion.requested-vel\
 thc.current-vel \<= motion.current-vel

## FUNCTIONS

- **thc** (requires a floating-point thread)

  ## PINS

- **thc.encoder-vel float in**

  Connect to hm2\_5i20.0.encoder.00.velocity

- **thc.current-vel float in**

  Connect to motion.current-vel

- **thc.requested-vel float in**

  Connect to motion.requested-vel

- **thc.volts-requested float in**

  Tip Volts current\_vel \>= min\_velocity requested

- **thc.vel-tol float in**

  Velocity Tolerance (Corner Lock)

- **thc.torch-on bit in**

  Connect to spindle.N.on

- **thc.arc-ok bit in**

  Arc OK from Plasma Torch

- **thc.enable bit in**

  Enable the THC, if not enabled Z position is passed through

- **thc.z-pos-in float in**

  Z Motor Position Command in from axis.n.motor-pos-cmd

- **thc.z-pos-out float out**

  Z Motor Position Command Out

- **thc.z-fb-out float out**

  Z Position Feedback to Axis

- **thc.volts float out**

  The Calculated Volts

- **thc.vel-status bit out**

  When the THC thinks we are at requested speed

- **thc.offset-value float out**

  The Current Offset

## PARAMETERS

- **thc.vel-scale float rw**

  The scale to convert the Velocity signal to Volts

- **thc.scale-offset float rw**

  The offset of the velocity input at 0 volts

- **thc.velocity-tol float rw**

  The deviation percent from planned velocity

- **thc.voltage-tol float rw**

  The deviation of Tip Voltage before correction takes place

- **thc.correction-vel float rw**

  The amount of change in user units per period to move Z to correct

## AUTHOR

John Thornton

## LICENSE

GPLv2 or greater
