位置抓取功能 (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 功能塊 - 位置抓取功能