控制模式
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 列举