控制模式
KINGSTAR 子系統提供了多種控制模式用來控制 EtherCAT 總線下的馬達驅動器。這些控制模式是基於 CiA 402 指定的操作模式而設計,包含位置控制模式(Profile Position,PP)、週期同步位置模式(Cyclic Synchronous Position,CSP)、週期同步速度模式(Cyclic Synchronous Velocity,CSV)和週期同步扭矩模式(Cyclic Synchronous Torque,CST)。在選擇控制模式後,您可以發送相關命令以控制馬達。
一般的馬達驅動器提供了三種基本的操作模式,包含位置、速度及扭矩,各操作模式又可透過直接指令、PID 及差捕的方式進行運動控制規劃。下表展示了 KINGSTAR 控制模式與 CiA 402 操作模式的關聯性。
基本模式 | 方法 | KINGSTAR 控制模式 | 由 KINGSTAR 執行的計算 | CiA 402 操作模式 |
---|---|---|---|---|
位置 | 從站插補 |
(尚未支援) |
- | 位置控制模式(Profile Position,PP) |
直接指令 | modeDirectPos | - | 週期同步位置模式(Cyclic Synchronous Position,CSP) | |
主站插補 | modeMasterIntPos | 插補 | ||
速度 | 直接指令 | modeDirectVel | - | 週期同步速度模式(Cyclic Synchronous Velocity,CSV) |
PID | modePidVel | PID(位置控制迴路) | ||
主站插補 | modeMasterIntVel |
插補 PID(位置控制迴路) |
||
扭矩 | 直接指令 | modeDirectTor | - | 週期同步扭矩模式(Cyclic Synchronous Torque,CST) |
PID | modePidTor | PID(位置控制迴路及速度控制迴路) | ||
主站插補 | modeMasterIntTor |
插補 PID(位置控制迴路及速度控制迴路) |
||
modeSlaveInt
尚未支援此模式。
此模式稱作從站插補 (Slave Interpolation) 模式,馬達驅動器以位置控制模式(Profile Position,PP)運行。在此模式下,大部分的運算皆在馬達驅動器內完成,比如插捕及 PID。控制器僅向馬達驅動器提供目標位置及運動曲線,由馬達驅動器中的運動命令產生器進行插補。
基本流程:
- KS 將目標位置 (607Ah) 及運動曲線傳送給馬達驅動器。
- 馬達驅動器根據目標位置和運動曲線,在每個週期進行插補。
- 馬達驅動器使用其 PID 演算法將位置轉換成速度,再將速度轉換成扭矩。最後,馬達驅動器將扭矩轉換成電流傳送給馬達。
- KS 從馬達驅動器取得實際位置。
- 步驟 2 至 4 會重複執行直到馬達到達目的地為止。接著馬達驅動器會向 KS 發出此運動已結束的訊號。
modeDirectPos
此模式稱作直接位置 (Direct Position) 模式,馬達驅動器以週期同步位置模式 (CSP) 運行。在此模式下,您需使用您的應用程式來計算插補,並在每個 EtherCAT 週期向 KINGSTAR 子系統 (KS) 發送位置命令。KS 將目標位置 (607Ah) 及運動曲線傳送給馬達驅動器,馬達驅動器將使用其 PID 微調參數。您可使用速度補償 (Velocity Offset) 和扭矩補償 (Torque Offset) 作為速度和扭矩前饋控制設定。此模式下無法使用 MoveAxis 相關函式。
注意:建議僅在 RT API 下使用此模式。
基本流程:
- 使用您的應用程式進行插補,接著使用 SetAxisPosition 將位置命令傳送給 KS。
- KS 將目標位置 (607Ah) 及運動曲線傳送給馬達驅動器。
- 馬達驅動器使用其 PID 演算法將位置轉換成速度,再將速度轉換成扭矩。最後,馬達驅動器將扭矩轉換成電流傳送給馬達。
- KS 從馬達驅動器取得實際位置。
- 您可以重複這些步驟以控制馬達到達特定位置。
modeMasterIntPos
此模式稱作主站插補位置 (Master Interpolation Position) 模式,馬達驅動器以週期同步位置模式 (CSP) 運行。在此模式下,由 KINGSTAR 子系統 (KS) 進行插補;馬達驅動器則使用其 PID 微調參數。
基本流程:
- 使用各種功能向 KS 發出運動命令。
- KS 根據目標位置和運動曲線,在每個週期進行插補。
- KS 將目標位置 (607Ah) 傳送給馬達驅動器。
- 馬達驅動器使用其 PID 演算法將位置轉換成速度,再將速度轉換成扭矩。最後,馬達驅動器將扭矩轉換成電流傳送給馬達。
- KS 從馬達驅動器取得實際位置。
- 步驟 2 至 5 會重複執行直到馬達到達目的地為止。
modeDirectVel
此模式稱作直接速度 (Direct Velocity) 模式,馬達驅動器以週期同步速度模式 (CSV) 運行。在此模式下,您的應用程式需在每個 EtherCAT 週期向 KINGSTAR 子系統 (KS) 發送速度命令,KS 再將目標速度傳送給馬達驅動器。您可使用扭矩補償 (Torque Offset) 作為扭矩前饋控制設定。此模式下無法使用 MoveAxis 相關函式。
注意:建議僅在 RT API 下使用此模式。
基本流程:
- 使用 SetAxisPosition 將速度命令從您的應用程式傳送給 KS。
- KS 將目標速度 (60FFh) 傳送給馬達驅動器。速度命令與目標速度 (60FFh) 為正相關。
- 馬達驅動器使用其 PID 演算法將速度轉換成扭矩,接著將扭矩轉換成電流傳送給馬達。
- KS 從馬達驅動器取得實際速度。
- 您可以重複這些步驟以控制馬達以特定速度執行。
modePidVel
此模式稱作 PID 速度 (PID Velocity) 模式,馬達驅動器以週期同步速度模式 (CSV) 運行。在此模式下,您需使用您的應用程式來計算插補,KINGSTAR 子系統 (KS) 會使用其 PID 將接收到的位置轉換成速度,再將目標速度傳送給馬達驅動器。您可使用扭矩補償 (Torque Offset) 作為扭矩前饋控制設定。此模式下無法使用 MoveAxis 相關函式。
基本流程:
- 使用您的應用程式進行插補,接著使用 SetAxisPosition 將位置命令傳送給 KS。
- KS 使用其 PID 將位置轉換成速度。請注意,您需使用 KS 的 API 來設定 PID 參數,請參閱 McAxisParameter 中的「運動與 PID」。
- KS 將目標速度 (60FFh) 傳送給馬達驅動器。
- 馬達驅動器使用其 PID 演算法將速度轉換成扭矩,接著將扭矩轉換成電流傳送給馬達。
- KS 從馬達驅動器取得實際速度。
- 這些步驟會重複執行直到馬達到達目的地為止。
modeMasterIntVel
此模式稱作主站插補速度 (Master Interpolation Velocity) 模式,馬達驅動器以週期同步速度模式 (CSV) 運行。在此模式下,由 KINGSTAR 子系統 (KS) 進行插補,KS 會使用其 PID 將位置轉換成速度,再將目標速度傳送給馬達驅動器。您可使用扭矩補償 (Torque Offset) 作為扭矩前饋控制設定。
基本流程:
- 使用各種功能向 KS 發出運動命令。
- KS 進行插補。
- KS 使用其 PID 將位置轉換成速度。請注意,您需使用 KS 的 API 來設定 PID 參數,請參閱 McAxisParameter 中的「運動與 PID」。
- KS 將目標速度 (60FFh) 傳送給馬達驅動器。
- 馬達驅動器使用其 PID 演算法將速度轉換成扭矩,接著將扭矩轉換成電流傳送給馬達。
- KS 從馬達驅動器取得實際速度。
- 步驟 2 至 6 會重複執行直到馬達到達目的地為止。
modeDirectTor
此模式稱作直接扭矩 (Direct Torque) 模式,馬達驅動器以週期同步扭矩模式 (CST) 運行。在此模式下,您的應用程式需在每個 EtherCAT 週期向 KINGSTAR 子系統 (KS) 發送扭矩命令,KS 再將目標扭矩傳送給馬達驅動器。您可使用扭矩補償 (Torque Offset) 作為扭矩前饋控制設定。此模式下無法使用 MoveAxis 相關函式。
注意:建議僅在 RT API 下使用此模式。
重要:由於扭矩無預設值,在使用此模式之前,您需調校出最佳 PID 參數並計算扭矩。您可使用 KINGSTAR 設定工具中的調校功能或使用您自己的工具進行調校。
基本流程:
- 使用 SetAxisTorque 將扭矩命令從您的應用程式傳送給 KS。
- KS 將目標扭矩 (6071h) 傳送給馬達驅動器。扭矩命令與目標扭矩 (6071h) 為正相關。
- 馬達驅動器使用其 PID 演算法將扭矩轉換成電流傳送給馬達。
- KS 取得實際扭矩。
- 您可以重複這些步驟以控制馬達以特定扭矩執行。
modePidTor
此模式稱作 PID 扭矩 (PID Torque) 模式,馬達驅動器以週期同步扭矩模式 (CST) 模式運行。在此模式下,您需使用您的應用程式來計算插補,KINGSTAR 子系統 (KS) 會使用其 PID 將接收到的位置轉換成速度,再將速度轉換成扭矩,接著將目標速度傳送給馬達驅動器。您可使用扭矩補償 (Torque Offset) 作為扭矩前饋控制設定。此模式下無法使用 MoveAxis 相關函式。
基本流程:
- 使用您的應用程式進行插補,接著使用 SetAxisPosition 將位置命令傳送給 KS。
- KS 使用其 PID 將位置轉換成速度,再將速度轉換成扭矩。請注意,您需使用 KS 的 API 來設定 PID 參數,請參閱 McAxisParameter 中的「運動與 PID」。
- KS 將目標扭矩 (6071h) 傳送給馬達驅動器。
- 馬達驅動器使用其 PID 演算法將扭矩轉換成電流傳送給馬達。
- KS 取得實際扭矩。
- 這些步驟會重複執行直到馬達到達目的地為止。
modeMasterIntTor
此模式稱作主站插補扭矩 (Master Interpolation Torque) 模式,馬達驅動器以週期同步扭矩模式 (CST) 運行。在此模式下,由 KINGSTAR 子系統 (KS) 進行插補,KS 會使用其 PID 將位置轉換成速度,再將速度轉換成扭矩,接著將目標扭矩傳送給馬達驅動器。您可使用扭矩補償 (Torque Offset) 作為扭矩前饋控制設定。
基本流程:
- 使用各種功能向 KS 發出運動命令。
- KS 進行插補。
- KS 使用其 PID 將位置轉換成速度,再將速度轉換成扭矩。請注意,您需使用 KS 的 API 來設定 PID 參數,請參閱 McAxisParameter 中的「運動與 PID」。
- KS 將目標扭矩 (6071h) 傳送給馬達驅動器。
- 馬達驅動器使用其 PID 演算法將扭矩轉換成電流傳送給馬達。
- KS 取得實際扭矩。
- 步驟 2 至 6 會重複執行直到馬達到達目的地為止。
選擇控制模式
欲選擇控制模式,請使用 SetAxisControlMode (RT 與Win32);或 SetAxisControlMode (.NET API);或 IAxis.ControlMode (.NET Class)。請注意,控制模式必須與目前的存取模式相容,存取模式是在建立連線前使用 SetAxisAccessMode (RT 與 Win32);或 SetAxisAccessMode (.NET API);或 ISubsystem.Access (.NET Class) 設定的。並非所有驅動器都支援在馬達通電時變更控制模式。
參見
RT 與 Win32 – KINGSTAR 運動 - 軸配置
RT 與 Win32 – KINGSTAR 運動 - 類型
.NET API – 運動 - 軸配置
.NET Class – IAxis 介面 - 屬性
.NET 列舉