控制模式

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