位置抓取功能 (Touch Probe)

位置抓取功能在触发事件发生时记录轴的位置,当数位输入 (Digital Input,DI) 的数据发送到伺服驱动器时,驱动器或 KINGSTAR 将记录轴的位置。若欲使用硬体位置抓取功能,则该轴需要连接驱动器上的位置抓取功能针脚,对于支援此功能的轴,驱动器本身可以记录以 Z 相讯号或外部 DI 触发当时的位置数值,因此值将会更为准确,KINGSTAR homingLatch 模式即是仰赖此功能。我们亦提供软体位置抓取功能,其使用基于 EtherCAT 总线上任何可用输入的位置。

使用方式

首先,发送 SetAxisTouchProbe,接著再发送 MoveHomeAxis 以移动轴,在接收到输入的触发讯号(上升边缘或下降边缘)或 Z 相触发讯号后,轴的位置将被记录,若需记录新的位置,需先使用 SetAxisTouchProbe 来解除之前的位置抓取功能的控制,请注意,在 KINGSTAR 3.8 (含)更旧版本中,需在启动位置抓取功能后等待一个周期后再呼叫 HomeAxis (在 3.x 版本中为 MC_Home),如此才能侦测到已启动的位置抓取功能。

配置

欲使用硬体(驱动器内)位置抓取功能,需设定三项参数:a. 位置抓取功能 ID:决定使用通道 ID 0 或 1;b. IndexPulse:选定 Z 相讯号而不是外部 DI;c. Edge:选定侦测讯号上升或下降边缘,非所有驱动器接支援此功能,因此请查询您的硬体支援项目。

欲使用软体位置抓取功能(由 KINGSTAR 计算),需选定使用输入讯号的来源类型(轴或模组)、索引偏移量 (Offset),亦需选定使用的讯号边缘。

使用硬体位置抓取功能:

  1. McProbeTrigger 结构定义为以下:
  2. 位置抓取功能 ID (TouchProbeID):0=>选择第一个通道。

    软体 (Software):FALSE

    边缘 (Edge):TRUE=>上升边缘

    IndexPulse:TRUE=> Z 相讯号

    轴 (Axix):FALSE=> 忽略

    索引 (Index):0=> 忽略

    偏移 (Offset):0=> 忽略

  3. 发送 SetAxisTouchProbe

使用软体位置抓取功能:

  1. McProbeTrigger 结构定义为以下:
  2. 位置抓取功能 ID (TouchProbeID): 0

    软体 (Software):TRUE

    边缘 (Edge):TRUE=>上升边缘

    IndexPulse:FALSE=> 忽略

    轴 (Axis):FALSE→ 若欲使用从轴输入的数位输入,将此设为 TRUE

    索引 (Index):0→ 模组的索引

    偏移 (Offset):0→ 模组输入偏移量

  3. 发送 SetAxisTouchProbe

记录与读取位置

首次发送 SetAxisTouchProbe 时,它将依照触发讯号状态记录轴的位置;若第二次发送 SetAxisTouchProbe 时,它可读取 SetAxisTouchProbe 之状态。若需要伺服马达移动到新的位置时记录数值,则必须先使用 GetCommandStatus 来解除先前 Touch probe 的控制,再发送 SetAxisTouchProbe 命令,否则 SetAxisTouchProbe 不会记录伺服马达新的位置数值,而仍是首次记录的位置数值。

驱动讯号范围

SetAxisTouchProbe 中的 WindowOnly 参数是一可限定触发讯号发生位置的范围来记录轴位置的功能,超出此范围的任何位置都不会触发讯号。FirstPosition LastPosition 为范围的起始与结束位置,例如,若 Z 相触发讯号发生的位置在 20000,FirstPosition LastPosition 分别在 40000 和 60000,则此 Z 相触发讯号对应的轴位置将永远不会被记录;若 Z 相触发讯号发生的位置在 50000,则轴到达 50000 时将会记录此轴位置。若一 DI 触发讯号发生在 40000 至 60000 之间,当 DI 讯号触发时,SetAxisTouchProbe 也会记录此轴位置。

参见

RT 与 Win32 - KINGSTAR 运动 - 轴控制

SetAxisTouchProbe

.NET API - 运动类别 - 轴控制

SetAxisTouchProbe

.NET 类别 - IAxis 介面 - 方法

IAxis.TouchProbe

PLC 功能块 - 位置抓取功能

MC_TouchProbe