位置抓取功能 (Touch Probe)
位置抓取功能在触发事件发生时记录轴的位置,当数位输入 (Digital Input,DI) 的数据发送到伺服驱动器时,驱动器或 KINGSTAR 将记录轴的位置。若欲使用硬体位置抓取功能,则该轴需要连接驱动器上的位置抓取功能针脚,对于支援此功能的轴,驱动器本身可以记录以 Z 相讯号或外部 DI 触发当时的位置数值,因此值将会更为准确,KINGSTAR homingLatch 模式即是仰赖此功能。我们亦提供软体位置抓取功能,其使用基于 EtherCAT 总线上任何可用输入的位置。
使用方式
首先,发送 SetAxisTouchProbe,接著再发送 Move 或 HomeAxis 以移动轴,在接收到输入的触发讯号(上升边缘或下降边缘)或 Z 相触发讯号后,轴的位置将被记录,若需记录新的位置,需先使用 SetAxisTouchProbe 来解除之前的位置抓取功能的控制,请注意,在 KINGSTAR 3.8 (含)更旧版本中,需在启动位置抓取功能后等待一个周期后再呼叫 HomeAxis (在 3.x 版本中为 MC_Home),如此才能侦测到已启动的位置抓取功能。
配置
欲使用硬体(驱动器内)位置抓取功能,需设定三项参数:a. 位置抓取功能 ID:决定使用通道 ID 0 或 1;b. IndexPulse:选定 Z 相讯号而不是外部 DI;c. Edge:选定侦测讯号上升或下降边缘,非所有驱动器接支援此功能,因此请查询您的硬体支援项目。
欲使用软体位置抓取功能(由 KINGSTAR 计算),需选定使用输入讯号的来源类型(轴或模组)、索引及偏移量 (Offset),亦需选定使用的讯号边缘。
使用硬体位置抓取功能:
- 将 McProbeTrigger 结构定义为以下:
- 发送 SetAxisTouchProbe。
位置抓取功能 ID (TouchProbeID):0=>选择第一个通道。
软体 (Software):FALSE
边缘 (Edge):TRUE=>上升边缘
IndexPulse:TRUE=> Z 相讯号
轴 (Axix):FALSE=> 忽略
索引 (Index):0=> 忽略
偏移 (Offset):0=> 忽略
使用软体位置抓取功能:
- 将 McProbeTrigger 结构定义为以下:
- 发送 SetAxisTouchProbe。
位置抓取功能 ID (TouchProbeID): 0
软体 (Software):TRUE
边缘 (Edge):TRUE=>上升边缘
IndexPulse:FALSE=> 忽略
轴 (Axis):FALSE→ 若欲使用从轴输入的数位输入,将此设为 TRUE
索引 (Index):0→ 模组的索引
偏移 (Offset):0→ 模组输入偏移量
记录与读取位置
首次发送 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 运动 - 轴控制
.NET API - 运动类别 - 轴控制
.NET 类别 - IAxis 介面 - 方法
PLC 功能块 - 位置抓取功能