控制模式

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 操作模式
位置 從站插補

modeSlaveInt

(尚未支援)

- 位置控制模式(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。控制器僅向馬達驅動器提供目標位置及運動曲線,由馬達驅動器中的運動命令產生器進行插補。

基本流程:

  1. KS 將目標位置 (607Ah) 及運動曲線傳送給馬達驅動器。
  2. 馬達驅動器根據目標位置和運動曲線,在每個週期進行插補。
  3. 馬達驅動器使用其 PID 演算法將位置轉換成速度,再將速度轉換成扭矩。最後,馬達驅動器將扭矩轉換成電流傳送給馬達。
  4. KS 從馬達驅動器取得實際位置。
  5. 步驟 2 至 4 會重複執行直到馬達到達目的地為止。接著馬達驅動器會向 KS 發出此運動已結束的訊號。

modeDirectPos

此模式稱作直接位置 (Direct Position) 模式,馬達驅動器以週期同步位置模式 (CSP) 運行。在此模式下,您需使用您的應用程式來計算插補,並在每個 EtherCAT 週期向 KINGSTAR 子系統 (KS) 發送位置命令。KS 將目標位置 (607Ah) 及運動曲線傳送給馬達驅動器,馬達驅動器將使用其 PID 微調參數。您可使用速度補償 (Velocity Offset) 和扭矩補償 (Torque Offset) 作為速度和扭矩前饋控制設定。此模式下無法使用 MoveAxis 相關函式。

注意:建議僅在 RT API 下使用此模式。

基本流程:

  1. 使用您的應用程式進行插補,接著使用 SetAxisPosition 將位置命令傳送給 KS。
  2. KS 將目標位置 (607Ah) 及運動曲線傳送給馬達驅動器。
  3. 馬達驅動器使用其 PID 演算法將位置轉換成速度,再將速度轉換成扭矩。最後,馬達驅動器將扭矩轉換成電流傳送給馬達。
  4. KS 從馬達驅動器取得實際位置。
  5. 您可以重複這些步驟以控制馬達到達特定位置。

modeMasterIntPos

此模式稱作主站插補位置 (Master Interpolation Position) 模式,馬達驅動器以週期同步位置模式 (CSP) 運行。在此模式下,由 KINGSTAR 子系統 (KS) 進行插補;馬達驅動器則使用其 PID 微調參數。

基本流程:

  1. 使用各種功能向 KS 發出運動命令。
  2. KS 根據目標位置和運動曲線,在每個週期進行插補。
  3. KS 將目標位置 (607Ah) 傳送給馬達驅動器。
  4. 馬達驅動器使用其 PID 演算法將位置轉換成速度,再將速度轉換成扭矩。最後,馬達驅動器將扭矩轉換成電流傳送給馬達。
  5. KS 從馬達驅動器取得實際位置。
  6. 步驟 2 至 5 會重複執行直到馬達到達目的地為止。

modeDirectVel

此模式稱作直接速度 (Direct Velocity) 模式,馬達驅動器以週期同步速度模式 (CSV) 運行。在此模式下,您的應用程式需在每個 EtherCAT 週期向 KINGSTAR 子系統 (KS) 發送速度命令,KS 再將目標速度傳送給馬達驅動器。您可使用扭矩補償 (Torque Offset) 作為扭矩前饋控制設定。此模式下無法使用 MoveAxis 相關函式。

注意:建議僅在 RT API 下使用此模式。

基本流程:

  1. 使用 SetAxisPosition 將速度命令從您的應用程式傳送給 KS。
  2. KS 將目標速度 (60FFh) 傳送給馬達驅動器。速度命令與目標速度 (60FFh) 為正相關。
  3. 馬達驅動器使用其 PID 演算法將速度轉換成扭矩,接著將扭矩轉換成電流傳送給馬達。
  4. KS 從馬達驅動器取得實際速度。
  5. 您可以重複這些步驟以控制馬達以特定速度執行。

modePidVel

此模式稱作 PID 速度 (PID Velocity) 模式,馬達驅動器以週期同步速度模式 (CSV) 運行。在此模式下,您需使用您的應用程式來計算插補,KINGSTAR 子系統 (KS) 會使用其 PID 將接收到的位置轉換成速度,再將目標速度傳送給馬達驅動器。您可使用扭矩補償 (Torque Offset) 作為扭矩前饋控制設定。此模式下無法使用 MoveAxis 相關函式。

基本流程:

  1. 使用您的應用程式進行插補,接著使用 SetAxisPosition 將位置命令傳送給 KS。
  2. KS 使用其 PID 將位置轉換成速度。請注意,您需使用 KS 的 API 來設定 PID 參數,請參閱 McAxisParameter 中的「運動與 PID」。
  3. KS 將目標速度 (60FFh) 傳送給馬達驅動器。
  4. 馬達驅動器使用其 PID 演算法將速度轉換成扭矩,接著將扭矩轉換成電流傳送給馬達。
  5. KS 從馬達驅動器取得實際速度。
  6. 這些步驟會重複執行直到馬達到達目的地為止。

modeMasterIntVel

此模式稱作主站插補速度 (Master Interpolation Velocity) 模式,馬達驅動器以週期同步速度模式 (CSV) 運行。在此模式下,由 KINGSTAR 子系統 (KS) 進行插補,KS 會使用其 PID 將位置轉換成速度,再將目標速度傳送給馬達驅動器。您可使用扭矩補償 (Torque Offset) 作為扭矩前饋控制設定。

基本流程:

  1. 使用各種功能向 KS 發出運動命令。
  2. KS 進行插補。
  3. KS 使用其 PID 將位置轉換成速度。請注意,您需使用 KS 的 API 來設定 PID 參數,請參閱 McAxisParameter 中的「運動與 PID」。
  4. KS 將目標速度 (60FFh) 傳送給馬達驅動器。
  5. 馬達驅動器使用其 PID 演算法將速度轉換成扭矩,接著將扭矩轉換成電流傳送給馬達。
  6. KS 從馬達驅動器取得實際速度。
  7. 步驟 2 至 6 會重複執行直到馬達到達目的地為止。

modeDirectTor

此模式稱作直接扭矩 (Direct Torque) 模式,馬達驅動器以週期同步扭矩模式 (CST) 運行。在此模式下,您的應用程式需在每個 EtherCAT 週期向 KINGSTAR 子系統 (KS) 發送扭矩命令,KS 再將目標扭矩傳送給馬達驅動器。您可使用扭矩補償 (Torque Offset) 作為扭矩前饋控制設定。此模式下無法使用 MoveAxis 相關函式。

注意:建議僅在 RT API 下使用此模式。

重要:由於扭矩無預設值,在使用此模式之前,您需調校出最佳 PID 參數並計算扭矩。您可使用 KINGSTAR 設定工具中的調校功能或使用您自己的工具進行調校。

基本流程:

  1. 使用 SetAxisTorque 將扭矩命令從您的應用程式傳送給 KS。
  2. KS 將目標扭矩 (6071h) 傳送給馬達驅動器。扭矩命令與目標扭矩 (6071h) 為正相關。
  3. 馬達驅動器使用其 PID 演算法將扭矩轉換成電流傳送給馬達。
  4. KS 取得實際扭矩。
  5. 您可以重複這些步驟以控制馬達以特定扭矩執行。

modePidTor

此模式稱作 PID 扭矩 (PID Torque) 模式,馬達驅動器以週期同步扭矩模式 (CST) 模式運行。在此模式下,您需使用您的應用程式來計算插補,KINGSTAR 子系統 (KS) 會使用其 PID 將接收到的位置轉換成速度,再將速度轉換成扭矩,接著將目標速度傳送給馬達驅動器。您可使用扭矩補償 (Torque Offset) 作為扭矩前饋控制設定。此模式下無法使用 MoveAxis 相關函式。

基本流程:

  1. 使用您的應用程式進行插補,接著使用 SetAxisPosition 將位置命令傳送給 KS。
  2. KS 使用其 PID 將位置轉換成速度,再將速度轉換成扭矩。請注意,您需使用 KS 的 API 來設定 PID 參數,請參閱 McAxisParameter 中的「運動與 PID」。
  3. KS 將目標扭矩 (6071h) 傳送給馬達驅動器。
  4. 馬達驅動器使用其 PID 演算法將扭矩轉換成電流傳送給馬達。
  5. KS 取得實際扭矩。
  6. 這些步驟會重複執行直到馬達到達目的地為止。

modeMasterIntTor

此模式稱作主站插補扭矩 (Master Interpolation Torque) 模式,馬達驅動器以週期同步扭矩模式 (CST) 運行。在此模式下,由 KINGSTAR 子系統 (KS) 進行插補,KS 會使用其 PID 將位置轉換成速度,再將速度轉換成扭矩,接著將目標扭矩傳送給馬達驅動器。您可使用扭矩補償 (Torque Offset) 作為扭矩前饋控制設定。

基本流程:

  1. 使用各種功能向 KS 發出運動命令。
  2. KS 進行插補。
  3. KS 使用其 PID 將位置轉換成速度,再將速度轉換成扭矩。請注意,您需使用 KS 的 API 來設定 PID 參數,請參閱 McAxisParameter 中的「運動與 PID」。
  4. KS 將目標扭矩 (6071h) 傳送給馬達驅動器。
  5. 馬達驅動器使用其 PID 演算法將扭矩轉換成電流傳送給馬達。
  6. KS 取得實際扭矩。
  7. 步驟 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 運動 - 軸配置

SetAxisControlMode

RT 與 Win32 – KINGSTAR 運動 - 類型

McControlMode

.NET API – 運動 - 軸配置

SetAxisControlMode

.NET Class – IAxis 介面 - 屬性

ControlMode

.NET 列舉

McControlMode