How touch probe works

Touch probe records an axis' position at a trigger event. When the data of a digital input (DI) is sent to a servo drive, the drive or KINGSTAR records the axis' position. If you want to use hardware touch probe, the axis needs to be connected to the Touch Probe pin on the drive. For axes that support this feature, it is possible for the drives themselves to record the value based on a phase Z signal or an external DI. The value is then more precise. KINGSTAR homingLatch mode relies on this feature. We also provide software touch probe that uses the position based on any input available on the EtherCAT bus.

Usage

First, send SetAxisTouchProbe, and then send Move or HomeAxis to move the axis. After the edge of the input (rising edge or falling edge) or the Z signal's index is received, the axis' position is recorded. No new position will be recorded unless you send SetAxisTouchProbe again. Note that in KINGSTAR 3.8 and older versions, you need to wait 1 cycle after enabling the probe, and then call HomeAxis (in 3.x it's MC_Home) for it to detect the enabled probe.

Configuration

To use hardware (inside the drive) touch probe, there are three parameters to set. The touch probe ID defines two channels: ID 0 and 1. IndexPulse is to select the Z signal instead of the external DI, and Edge is to select rising or falling edge of the external DI. Not all drives support all these features, so check what is supported in your hardware.

To use software touch probe (calculated by KINGSTAR), you have to select the type (axis or module), Index, and Offset of the input signal to use. You should also select which edge of the signal to use.

To use hardware touch probe:

  1. Define the McProbeTrigger structure as the following:
  2. TouchProbeID: 0. => Selects the first channel.

    Software: FALSE.

    Edge: TRUE. => For rising edge.

    IndexPulse: TRUE. => For the Z signal.

    Axis: FALSE. => Ignored.

    Index: 0. => Ignored.

    Offset: 0. => Ignored.

  3. Send SetAxisTouchProbe.

To use software touch probe:

  1. Define the McProbeTrigger structure as the following:
  2. TouchProbeID: 0.

    Software: TRUE.

    Edge: TRUE. => For rising edge.

    IndexPulse: FALSE. => Ignored.

    Axis: FALSE. => Set it to TRUE if you want to use a digital input from an axis.

    Index: 0. => Index of the module.

    Offset: 0. => Offset of the sensor in the module's input buffer.

  3. Send SetAxisTouchProbe.

Abort a probe setting

After you send SetAxisTouchProbe, it records the axis' position. When you send it second time, it reads the state of SetAxisTouchProbe. If you want to record the same axis' position using SetAxisTouchProbe when the servo motor is in its second rotation, you must send AbortCommand, or SetAxisTouchProbe won't record the axis' position in the second rotation. Instead, it reads the axis' position in the first rotation.

The range of trigger signal

The WindowOnly parameter in SetAxisTouchProbe is a feature that allows you to use a range that triggers the signal to record an axis' position. Any position outside the range won't trigger the signal. FirstPosition and LastPosition are the start and end position of the range. For example, if the Z signal's position is at 20000, and FirstPosition and LastPosition are at 40000 and 60000, the axis' position indicated by the Z signal will never be recorded. If Z signal is at 50000, the axis' position will be recorded when the axis reaches 50000. If a DI is set between 40000 and 60000, SetAxisTouchProbe will also record the axis' position when the axis reaches DI's position.