CiA402
概述
威动电机(WD DRIVE)驱动器内置 CANopen 从站,运动控制部分符合 CiA 402(IEC 61800-7-201 / CANopen 驱动与运动控制行规)。任意标准 CANopen 主站(PLC、运动控制器、上位机软件)都可以通过它完成位置、速度、转矩控制与回零,无需厂商专用协议。
- 适用于旋转电机驱动器 stp42 与直线电机驱动器 lin。
- 支持 8 种标准运行模式:PP、PV、PT、HM、IP、CSP、CSV、CST;另有厂商自定义的自动校准/整定模式(0x6060 = −1)。
- 通信基于 CANopen:SDO 用于配置与参数读写,PDO 用于周期数据;支持 NMT、心跳、EMCY 与 LSS。
- 完整的对象字典(索引/子索引、数据类型、访问与 PDO 映射)见对象字典参考。
准备工作
总线接线
- 使用标准 CAN 总线连接主站与驱动器,总线两端各接一个 120 Ω 终端电阻。
- 所有节点使用相同的波特率。
- 驱动器由独立电源供电,母线电压符合产品铭牌范围;动力线与 CAN 信号线分开走线。
节点 ID 与波特率
- 出厂默认节点 ID 为
1,默认波特率 1 Mbit/s。 - 两者都可以通过 LSS(层设置服务)在总线上修改,并可写入驱动器持久保存,下次上电按新配置启动。
上电行为
- 上电后驱动器自动进入 NMT Operational,无需主站发送 NMT Start。
- CiA 402 状态机从 Not ready to switch on 开始,随后自动进入 Switch on disabled (0x0020),等待主站控制字。
- 上电即可用 SDO 读写对象;电机高压功率级只有在 Operation enabled 状态才会使能。
使能与状态机
状态与控制字
CiA 402 用一个状态机管理使能流程。主站通过写控制字 0x6040 发出命令,从状态字 0x6041(低 7 位,掩码 0x006F)读取当前状态。
| 状态 | 0x6041 状态位段 | 说明 |
|---|---|---|
| Not ready to switch on | 0x0000 | 上电初始态 |
| Switch on disabled | 0x0020 | 通信就绪,等待使能 |
| Ready to switch on | 0x0021 | 已就绪(安全态,功放不上电) |
| Switched on | 0x0023 | 高压已施加,运动功能仍未使能 |
| Operation enabled | 0x0027 | 正常运行态,可执行运动 |
| Quick stop active | 0x0007 | 执行快速停机 |
| Fault reaction active | 0x000F | 故障反应中(按停机选项码减速) |
| Fault | 0x0008 | 故障锁定,需复位 |
常用控制字命令:
| 命令 | 控制字(0x6040) | 起始状态 → 目标状态 |
|---|---|---|
| Shutdown | 0x0006 |
Switch on disabled → Ready to switch on |
| Switch on | 0x0007 |
Ready to switch on → Switched on |
| Enable operation | 0x000F |
Switched on → Operation enabled |
| Disable operation | 0x0007(bit3=0) |
Operation enabled → Switched on |
| Disable voltage | 0x0000 |
任意 → Switch on disabled |
| Quick stop | 0x0002 |
Operation enabled → Quick stop active |
| Fault reset | 0x0080 |
Fault → Switch on disabled |
推荐使用一步到位命令
0x000F(Switch on + Enable operation),可连续完成从 Ready 到 Operation enabled 的过渡。
状态字位定义
| 位 | 掩码 | 名称 | 含义 |
|---|---|---|---|
| 0–5 | 0x006F |
状态位段 | 见上表 |
| 4 | 0x0010 |
Voltage enabled | 高压(母线)已施加 |
| 7 | 0x0080 |
Warning | 有预警(温度/过压/欠压/I²t 过载),不影响状态机 |
| 9 | 0x0200 |
Remote | 恒为 1(控制字始终有效) |
| 10 | 0x0400 |
Target reached | 到达目标(各模式判定不同,见后文);校准模式为成功 |
| 11 | 0x0800 |
Internal limit active | 目标越软件限位(0x607D) |
| 12 | 0x1000 |
模式相关 | 见各模式说明 |
| 13 | 0x2000 |
模式相关 | 见各模式说明 |
标准使能流程
写 0x6040:00 = 0x0006 # Shutdown → 0x6041 = 0x0021 (ready)
写 0x6040:00 = 0x0007 # Switch on → 0x6041 = 0x0023 (switched on)
写 0x6040:00 = 0x000F # Enable operation → 0x6041 = 0x0027 (operation enabled)
退使能(安全停机):
写 0x60FF:00 = 0 # 速度模式:目标速度归零
写 0x6040:00 = 0x0006 # Shutdown → 回到 ready(安全态)
注意: 只有处于 Operation enabled 时才能接受运行模式(0x6060);未使能时写入 0x6060 不会生效。
运行模式一览
写入 0x6060 选择模式,0x6061 回读当前生效模式。每种模式的骨架都是:使能 → 选择模式 → 下发目标/参数 → 监控状态字 → 目标归零 → 退使能。
| 0x6060 | 模式 | 控制环 | 目标对象 | 主要反馈 | 到达判定 bit10 |
|---|---|---|---|---|---|
| 1 | PP 轮廓位置 | 位置 | 0x607A | 0x6062 / 0x6064 / 0x60F4 | 位置窗口 0x6067 持续 0x6068 ms |
| 2 | VL 纯速度(不支持) | — | — | — | — |
| 3 | PV 轮廓速度 | 速度 | 0x60FF | 0x606B / 0x606C | 速度窗口 0x606D 持续 0x606E ms |
| 4 | PT 轮廓扭矩 | 扭矩 | 0x6071 | 0x6074 / 0x6077 | 无 |
| 6 | HM 回零 | 速度→位置 | 0x6099 等 | 0x6064 / 0x606C | 回零落点判定 |
| 7 | IP 插补位置 | 位置 | 0x60C1 | 0x6062 / 0x6064 / 0x60F4 | 同 PP |
| 8 | CSP 循环同步位置 | 位置 | 0x607A + 0x60B0 | 0x6062 / 0x6064 / 0x60F4 | 同 PP |
| 9 | CSV 循环同步速度 | 速度 | 0x60FF + 0x60B1 | 0x606B / 0x606C | 同 PV |
| 10 | CST 循环同步扭矩 | 扭矩 | 0x6071 + 0x60B2 | 0x6074 / 0x6077 | 无 |
| −1 | 自动校准/整定(厂商) | — | 0x3000 | 0x6041 位 10/12/13 | 校准状态字 |
PP —— 轮廓位置模式 (0x6060 = 1)
按设定的速度/加速/减速把电机运动到目标位置,支持梯形或 S 型曲线。
常用参数
| 对象 | 名称 | 默认(lin) |
|---|---|---|
| 0x607A | 目标位置 | 0 |
| 0x6081 | 轮廓速度 | 100000 |
| 0x6083 / 0x6084 | 加速度 / 减速度 | 5000000 / 5000000 |
| 0x607F | 最大轮廓速度(限幅 0x6081) | 2000000 |
| 0x60C5 / 0x60C6 | 最大加/减速度上限(0 = 不限) | 20000000 |
| 0x6086 | 运动轮廓类型(0 = 梯形,1/2/3 = S 曲线) | 0 |
| 0x607D | 软件位置限位(0x607D:01 下限 / :02 上限) | 0 … 395000 |
设定点握手:写目标位置 0x607A 后,用控制字 bit4 的上升沿接受新的设定点。
| 控制字位 | 含义 |
|---|---|
bit4 (0x0010) |
新设定点(上升沿触发) |
bit5 (0x0020) |
1 = 立即执行;0 = 排队,等当前运动完成后执行 |
bit6 (0x0040) |
0 = 绝对位置;1 = 相对位置(相对当前需求位置) |
bit8 (0x0100) |
Halt:按 0x6084 减速并保持当前位置 |
bit9 (0x0200) |
排队衔接方式:0 = 停稳后衔接;1 = 速度衔接 |
- 接受设定点后 bit12(Set-point acknowledge)置位;设置点被撤销(bit4 由 1 变 0)时清除。
- 目标超出 0x607D 时 bit11(Internal limit active)置位并拒绝该设定点。
- 到达目标且落在 0x6067 窗口内持续 0x6068 ms 后 bit10 置位。
- 跟随误差超过 0x6065 持续 0x6066 ms 时 bit13 置位(仅指示,不触发故障)。
S 型曲线(0x6086 = 1/2/3):加加速度由 0x60A4 Profile Jerk 1/2 配置,0x60A3 Profile Jerk Use 决定分配方式:
| 0x60A3 | 加速段 | 减速段 |
|---|---|---|
| 1 | Jerk 1 (0x60A4:01) | Jerk 1 |
| 2 | Jerk 1 (0x60A4:01) | Jerk 2 (0x60A4:02) |
| 其它(默认 0) | 由最大加速度自动派生 | 由最大加速度自动派生 |
S 曲线用于高惯量、精密定位、怕振动的场合;梯形(0x6086 = 0)行程时间最短。速度模式(PV/HM/CSV)的斜坡不受 0x6086 影响。
PV —— 轮廓速度模式 (0x6060 = 3)
按设定的加减速斜坡逼近目标速度,常用于连续运动、传送等场景。VL 纯速度模式(0x6060 = 2)不在支持范围内,请使用 PV。
| 对象 | 名称 | 默认(lin) |
|---|---|---|
| 0x60FF | 目标速度 | 0 |
| 0x6083 / 0x6084 | 加速度 / 减速度 | 5000000 / 5000000 |
| 0x607F | 最大轮廓速度(限幅 0x60FF,0 = 不限) | 2000000 |
- 目标速度在 0x607F 内限幅;Halt(bit8)时目标按斜坡归零。
- bit10:实际速度落在 0x606D 窗口内持续 0x606E ms。
- bit12:零速指示,实际速度低于 0x606F 持续 0x6070 ms。
PT —— 轮廓扭矩模式 (0x6060 = 4)
直接输出目标转矩,电机在负载/摩擦平衡处运行。
| 对象 | 名称 | 默认(lin) |
|---|---|---|
| 0x6071 | 目标扭矩 / 推力 | 0 |
| 0x6072 | 最大扭矩 / 推力(硬限幅) | 35000 mN |
| 0x6087 | 扭矩斜率(0 = 立即生效,不限斜坡) | 5000 |
| 0x6080 | 最大电机速度 | 2000000 |
警告: 纯扭矩模式没有速度闭环,电机会在目标扭矩下持续加速,直到负载或摩擦使其平衡。请确认机械行程与限位已就绪后再使用。Halt(bit8)时目标扭矩按 0x6087 斜坡归零。
HM —— 回零模式 (0x6060 = 6)
驱动器以固定方向(朝向机械限位/撞块)搜索,通过相位电流升高与位置跟随误差增大同时出现判定撞到限位块,然后回退到设定落点,建立位置基准。
流程
- 控制字 bit4 = 1 且 bit8 = 0 → 启动回零,以 0x6099:01 的速度(自动取负方向)运行。
- 搜索中撞块条件持续满足 0x2130:04 后,bit12 置位,位置被重置到 0x607C Home offset。
- 按 0x2130:05 的回退距离反向运动,落点稳定后 bit10 置位,回零完成。
- 取消回零:bit4 = 0 或 bit8 = 1;再次启动前必须先把 bit4 释放。
撞块检测参数(0x2130)
| 子索引 | 名称 | 单位 | 说明 |
|---|---|---|---|
| :01 | Hard stop force limit | mA | 搜索阶段的推力(电流)上限,0 时沿用 0x6072 |
| :02 | Collision current threshold | mA | 判定撞块的电流阈值,0 表示该条件不参与判定 |
| :03 | Following error threshold | 用户单位 | 判定撞块的跟随误差阈值,0 表示该条件不参与判定 |
| :04 | Collision filter time | ms | 上述条件需持续保持的时间 |
| :05 | Retract distance | 用户单位 | 撞块后的回退距离(方向自动) |
其他参数:0x607C Home offset(默认 0)、0x6099:01 搜索速度、0x609A 回零加速度、0x6067/0x6068 落点窗口。
回零前请确认 0x2130 撞块检测参数。 lin 出厂已给出可用默认值(stp42 各项为 0,必须显式配置);若两个检测条件都未启用,或电流阈值高于推力上限,驱动器会拒绝启动并置 bit13(失败)。请根据实际电机与机械在台架上标定,不要把阈值全部设为 0。若搜索行程超过软件限位范围(0x607D)的 1.1 倍,也会中止并置 bit13。
回零搜索方向固定为负方向,0x6098 Homing method 不参与分派。
IP —— 插补位置模式 (0x6060 = 7)
主站按固定插补周期下发位置设定点,驱动器在相邻设定点之间做线性插补。
- 控制字 bit4 = 1 使能插补(bit12 置位):从实际位置无缝起步,等待第一个设定点;bit4 = 0 退出,速度按 0x60C5/0x60C6 减速到零,位置需求保持。
- 主站周期性写 0x60C1(插补数据记录);插补周期由 0x60C2(默认 2 ms)定义。
- 速度前馈取线段斜率,并受 0x607F 限幅。
- Halt(bit8)时退出插补、速度归零;释放后从最新设定点平滑恢复。
- 由于周期很短,0x60C1 建议映射到 RPDO(SDO 往返一般达不到该速率)。
CSP —— 循环同步位置模式 (0x6060 = 8)
主站周期性下发目标位置,驱动器实时跟踪。目标位置 = 0x607A + 0x60B0(位置偏移)。
- 设定点变化即开启新的插补线段,线段时长按实测下发周期确定,不依赖 SYNC。
- 主站保持目标不变时,需求停在目标位置。
- 前馈直接采用主站对象:0x60B1 速度前馈(受 0x607F 限幅)与 0x60B2 转矩前馈。
- 重新使能、长时间无设定点或首拍时,若目标与当前位置差距过大,驱动器会按 0x607F 限速平滑追赶,避免瞬间跳变。0x607F = 0 时按纯位置环直接跟踪标准 CSP。
- Halt 或停机斜坡释放后,会按 0x6086 选定的轮廓(梯形/S 曲线)平滑恢复到主站目标。
- 0x607F = 0 表示不限速,由主站负责轨迹规划。
- 目标越 0x607D 限位时 bit11 置位,不跟踪越界目标。
- bit12 = Drive follows command:目标被本地接管(Halt、停机斜坡)时清除,恢复跟随后置位。
PDO 映射示例(RPDO1:0x607A + 0x60B1)
写 0x1600:00 = 0
写 0x1600:01 = 0x607A0020 # 目标位置 int32
写 0x1600:02 = 0x60B10020 # 速度前馈 int32
写 0x1600:00 = 2
写 0x1400:02 = 254 # 事件驱动
写 0x1400:01 清 bit31 # 使能 RPDO1(COB-ID = 0x200 + 节点 ID)
之后主站以固定周期(如 1 ms)发送 8 字节帧(小端:目标位置 + 速度前馈)即可。
CSV —— 循环同步速度模式 (0x6060 = 9)
目标速度 = 0x60FF + 0x60B1(速度偏移),受 0x607F 限幅;转矩前馈取 0x60B2。Halt 时目标为 0。
- 速度斜坡受 0x60C5 / 0x60C6 限幅(0 = 不限)。
- bit10:实际速度落在 0x606D 窗口内持续 0x606E ms。
- bit12:与 CSP 相同,本地接管时清除。
CST —— 循环同步扭矩模式 (0x6060 = 10)
目标扭矩 = 0x6071 + 0x60B2(转矩偏移),Halt 时目标为 0。
- 扭矩需求按 0x6087 斜坡逼近(0 = 不限),0x6080 限制转速。
- 与 PT 一样属于纯扭矩控制,无到达判定(bit10 不置位),使用前请确认机械安全。
校准模式(厂商自定义,0x6060 = −1)
用于电机参数辨识与位置传感器校准。
- 通过 0x3000:01 选择校准子模式,子模式支持位图见 0x3000:03。
- 启动:控制字 bit4 上升沿;中止:bit8 电平。
- 状态映射到状态字:bit12 = 执行中、bit10 = 成功、bit13 = 失败。
- 校准结果写入并持久化保存,主站可通过 0x3011(电机辨识结果)、0x3013(位置传感器校准)、0x3014(相位标定)读取。
- 校准过程会驱动电机转动,请确保机械可动、行程安全。
建议使用上位机软件(wddrive-studio)或维护工具(wddrive-maintain-cli)执行校准,它们会按步骤完成子模式选择、状态轮询与结果校验。
停机选项码与 Halt
当 0x605A–0x605E 中的选项码不为 0 时,状态机不会立即跳转,而是先执行减速斜坡,斜坡期间状态字保持跳转前的状态,斜坡完成后才真正切换。主站应等待状态字最终变化。
| 对象 | 名称 | 默认 | 触发场景 |
|---|---|---|---|
| 0x605A | Quick stop option code | 2 | Quick stop 命令(过渡 11) |
| 0x605B | Shutdown option code | 1 | Operation enabled → Ready(过渡 8) |
| 0x605C | Disable operation option code | 1 | Operation enabled → Switched on(过渡 5) |
| 0x605D | Halt option code | 1 | Halt |
| 0x605E | Fault option code | 2 | 故障反应(过渡 14) |
选项码对应的减速特性:
| 值 | 特性 |
|---|---|
| 0 | 立即禁用驱动,无斜坡 |
| 1 | Slow down ramp:按 0x6084 轮廓减速度 |
| 2 | Quick stop ramp:按 0x6085 快速停机减速度(0 时回退 0x6084) |
| 3 | Stop on current limit:满电流制动 |
| 4 | Stop on voltage limit:满电流制动,并在母线接近过压时减弱制动 |
| 5–8 | 同 1–4,但仅用于 0x605A,斜坡完成后停在 Quick stop active |
各模式 Halt(bit8)行为
| 模式 | Halt 行为 |
|---|---|
| PP | 按 0x6084 减速并保持当前位置,释放后恢复原设定点 |
| PV / CSV | 目标速度置 0,斜坡停车 |
| PT / CST | 目标扭矩按 0x6087 斜坡归零 |
| HM | 中止回零 |
| IP | 退出插补,速度斜坡归零,位置需求保持 |
| CSP | 减速保持,释放后平滑追赶主站目标 |
| 校准 (−1) | 中止当前校准 |
保护与故障处理
保护阈值
| 监测对象 | 阈值对象(默认) | 预警 | 故障码 (0x603F) |
|---|---|---|---|
| 母线电压 | 0x2001:01 过压故障 540(54.0 V)、:02 过压预警 520、:03 欠压故障 180、:04 欠压预警 220、:05 滤波时间 100 ms | bit7 | 0x3210 / 0x3220 |
| 输出电流 | 0x2002:01 短路阈值 45000 mA、:02 过流滤波 10 ms、:03 I²t 过载等级 100 %、:04 I²t 最大时间 2000 ms | I²t 预警→bit7 | 0x2320 / 0x2310 / 0x2350 |
| 电机温度 | 0x2003:01 过温故障 850(85.0 °C)、:02 过温预警 750(75 °C) | bit7 | 0x4310 |
错误码汇总:
| 代码 | 含义 |
|---|---|
| 0x3210 | 母线过压 |
| 0x3220 | 母线欠压 |
| 0x2310 | 持续过流 |
| 0x2320 | 相线短路 |
| 0x2350 | I²t 热过载 |
| 0x4310 | 电机过温 |
故障反应流程
- 保护动作后进入 Fault reaction active (0x000F),写入故障码 0x603F,并按 0x605E 的选项码减速。
- 斜坡完成后自动进入 Fault (0x0008),高压切除、功放断电。
- 主站发 Fault reset(0x6040 bit7 = 1,短脉冲也会被锁存),过渡到 Switch on disabled (0x0020)。
- 按正常的使能流程重新使能。
读 0x603F:00 # 读取故障码
读 0x1003:01 … # 读取错误历史(0x1003:00 为条数,写 0 清空)
写 0x6040:00 = 0x0080 # Fault reset
写 0x6040:00 = 0x0006 # 重新使能:Shutdown
写 0x6040:00 = 0x000F # Switch on + Enable operation
保护故障是粘性的:温度回落或瞬时过流消失后故障位不会自动清除,必须执行 Fault reset。如果根因仍然存在,重新使能后会在去抖时间后再次触发故障——请先排除根因。
用户单位与换算
所有位置/速度/加速度/扭矩对象都使用用户单位,便于按机械行程直接规划。
| 量 | lin(直线) | stp42(旋转) |
|---|---|---|
| 位置(0x607A / 0x6062 / 0x6064 / 0x607D) | 0.001 mm(1 µm) | 0.001 转(1000 = 1 转) |
| 速度(0x60FF / 0x606B / 0x606C / 0x6081 / 0x607F) | 0.001 mm/s | 0.001 转/s(5000 = 300 rpm) |
| 加速度(0x6083 / 0x6084 / 0x6085 / 0x60C5 / 0x60C6 / 0x609A) | 0.001 mm/s² | 0.001 转/s² |
| 加加速度(0x60A4) | 0.001 mm/s³ | 0.001 转/s³ |
| 扭矩 / 推力(0x6071 / 0x6072 / 0x6074 / 0x6076 / 0x6077 / 0x6087 / 0x60B2) | mN(毫牛) | mN·m(毫牛米) |
| 电流(0x6073 / 0x6075、0x2000:02、0x2002 阈值) | mA | mA |
- 出厂默认齿轮比 0x6091 = 1:1、进给常数 0x6092 = 1000:1,即 1 个用户位置单位 = 0.001 mm(lin)或 0.001 转(stp42)。修改 0x6091 / 0x6092 后,用户单位按输出轴重新定义。
- 0x6063(位置内部实际值)是不经齿轮比换算的原始内部值,用于诊断真实物理方向。
惯量/质量对象(用于前馈与速度环整定):
| 产品 | 对象 | 名称 | 默认 |
|---|---|---|---|
| lin | 0x2110 | 动子质量 | 470 g |
| lin | 0x2111 | 负载质量 | 0 g |
| stp42 | 0x2210 | 转子惯量 | 320 g·cm² |
| stp42 | 0x2211 | 负载惯量比(‰,1000 = 1.0) | 0 |
速度环增益与总惯量/质量成正比,惯量/质量对象为 0 会导致速度环增益为 0(电机无力),使用前请先填写或执行校准。
产品默认值差异
lin 与 stp42 的对象结构基本一致,但部分默认值与存在性不同。下表以 lin 为基准给出 stp42 的对应值;更换产品型号时,请重新下发参数或回读确认。
| 对象 | 名称 | lin 默认 | stp42 默认 |
|---|---|---|---|
| 0x6072 | 最大扭矩 / 推力 | 35000 mN | 720 mN·m |
| 0x6073 | 最大电流 | 8000 mA | 3000 mA |
| 0x6076 | 电机额定扭矩 / 推力 | 11000 mN | 600 mN·m |
| 0x607D:02 | 软件限位上限 | 395000(395 mm) | 100000(100 转) |
| 0x607F | 最大轮廓速度 | 2000000 | 8000 |
| 0x6080 | 最大电机速度 | 2000000 | 8000 |
| 0x6081 | 轮廓速度 | 100000 | 2000 |
| 0x6083 / 0x6084 | 加 / 减速度 | 5000000 | 20000 |
| 0x6087 | 扭矩 / 推力斜率 | 5000 | 1000 |
| 0x6099:01 | 回零搜索速度 | 30000 | 1000 |
| 0x609A | 回零加速度 | 3000000 | 10000 |
| 0x2002:02 | 过流滤波时间 | 10 ms | 100 ms |
| 0x2113:01 | 速度环带宽 | 40 Hz | 50 Hz |
| 0x2130 | 撞块检测参数 | 已给默认值 | 全部为 0(需配置) |
对象存在性差异:lin 独有动子质量、负载质量(0x2110 / 0x2111);stp42 独有位置/速度编码器分辨率(0x608F / 0x6090)与转子惯量、负载惯量比(0x2210 / 0x2211)。
电机温度保护需要电机配备温度传感器;没有温度采样时,0x2003 阈值与 0x4310 故障不会触发。
控制环整定
驱动器采用位置环(P)→ 速度环(PI)→ 电流环(PI)三环级联结构。每个环都有两种整定方式,通过带宽对象的 :02 Tuning mode 选择:
| 方式 | 值 | 说明 |
|---|---|---|
| 带宽模式(默认) | 1 | 按带宽自动计算 PI,并回写到标准增益对象 |
| 手动模式 | 0 | 直接使用标准增益对象的值 |
| 环 | 带宽对象 | 默认带宽 | 增益对象 |
|---|---|---|---|
| 电流环 d/q | 0x2112:01 | 1000 Hz | 0x60F6:01 (Kp) / :02 (Ki) |
| 速度环 | 0x2113:01 | 50 Hz | 0x60F9:01 (Kp) / :02 (Ki) |
| 位置环 | 0x2114:01 | 15 Hz | 0x60FB:01 (Kp) |
| 编码器 PLL | 0x2115:01 | 1000 Hz | — |
- 带宽模式下,读 0x60F6 / 0x60F9 / 0x60FB 即可获得当前生效增益;增益以内部值的 1000 倍存储。
- 需要单独微调增益时,把对应
:02写 0 切到手动模式,再写增益对象。 - 整定参数写入后立即生效,无需复位。
建议
- 带宽由高到低排列:电流环 > 速度环 > 位置环(默认 1000 / 50 / 15 Hz)。
- 先完成校准或填写惯量/质量,再调速度环;电流环依赖电机电阻/电感。
- 出现振动或啸叫时,优先降低速度环带宽。
- 带宽模式下确认大致响应后,可切手动模式单独微调 Kp / Ki 对比效果。
写 0x2113:01 = 60 # 速度环带宽 50 → 60 Hz,自动重算 PI
读 0x60F9:01 # 读回生效 Kp
读 0x60F9:02 # 读回生效 Ki
写 0x2113:02 = 0 # 切换手动模式
写 0x60F9:01 = 350 # Kp = 0.35
实时反馈
| 对象 | 内容 | 单位 |
|---|---|---|
| 0x6064 / 0x6062 / 0x60F4 | 位置实际 / 需求 / 跟随误差 | 用户单位 |
| 0x606C / 0x606B | 速度实际 / 需求 | 用户单位/s |
| 0x6077 / 0x6074 | 扭矩实际 / 需求 | mN(lin)/ mN·m(stp42) |
| 0x2000:01 | 母线电压 | 0.1 V |
| 0x2000:02 | 输出电流 | mA |
| 0x2000:03 | 电机温度 | 0.1 °C |
极性配置(0x607E)
0x607E 用于在主站(网络端)与驱动器(内部控制端)之间反转符号,按 CiA 402 标准位布局:
| 位 | 掩码 | 含义 | 生效模式 |
|---|---|---|---|
| 7 | 0x80 |
位置极性 | PP / IP / CSP |
| 6 | 0x40 |
速度极性 | PV / CSV |
| 5 | 0x20 |
转矩极性 | PT / CST |
置位时,对应的指令与实际值同时取反,主站视角下指令与反馈仍保持一致(跟随误差为 0),但电机物理运动方向相反。0x607D 软件限位作用于物理方向,极性置位时请把限位设为对称区间。低 5 位保留,必须写 0。
典型操作序列
以下示例用 读/写 对象:子索引 表示 SDO 访问。节点 ID 默认为 1。
使能(所有模式前置)
写 0x6040:00 = 0x0006 # Shutdown
写 0x6040:00 = 0x0007 # Switch on
写 0x6040:00 = 0x000F # Enable operation → 0x6041 = 0x0027
PP 定位(绝对)
写 0x6060:00 = 1 # 选择 PP
写 0x6081:00 = 100000 # 轮廓速度 100 mm/s
写 0x6083:00 = 5000000 # 加速度
写 0x6084:00 = 5000000 # 减速度
写 0x607A:00 = 250000 # 目标位置 250 mm
写 0x6040:00 = 0x001F # bit4 新设定点 + bit5 立即 + 使能位
# 轮询 0x6041:bit12 设定点应答 → bit10 到达;bit11 越限;bit13 跟随误差
相对定位:控制字加 bit6(0x005F);排队衔接:bit5 = 0。
PV 正反转(±100 mm/s)
写 0x6060:00 = 3 # 选择 PV
写 0x6083:00 = 5000000
写 0x6084:00 = 5000000
写 0x60FF:00 = 100000 # +100 mm/s
# 等待 0x6041 bit10 置位
写 0x60FF:00 = -100000 # 反转
写 0x60FF:00 = 0 # 停车
写 0x6040:00 = 0x0006 # 退使能 → ready
CSP 循环同步(见上文 PDO 映射示例)
写 0x6060:00 = 8 # 选择 CSP
写 0x607F:00 = 2000000 # 最大轮廓速度(0 = 纯位置环跟踪)
# 主站以固定周期发送 [0x607A][0x60B1] 帧
回零
写 0x2130:01 = 1000 # 推力上限 1.0 A
写 0x2130:02 = 700 # 撞块电流阈值 0.7 A
写 0x2130:03 = 2000 # 跟随误差阈值 2.0 mm
写 0x2130:04 = 50 # 条件保持 50 ms
写 0x2130:05 = 3000 # 回退 3.0 mm
写 0x607C:00 = 0 # Home offset
写 0x6099:01 = 30000 # 搜索速度 30 mm/s
写 0x609A:00 = 3000000 # 回零加速度
写 0x6060:00 = 6 # 选择 HM
写 0x6040:00 = 0x001F # bit4 = 1 启动回零(bit8 = 0)
# 状态流:bit12 撞块 → 自动回退 → bit10 回零完成
写 0x6040:00 = 0x000F # 清 bit4
注意事项
- 上电自动 Operational:不要假设从 Pre-operational 开始。
- 先使能再选模式:0x6060 仅在 Operation enabled 状态被接受,否则 0x6061 不更新。
- Ready 是安全态:Ready / Switched on 状态功放不上电。收尾时先让目标归零,再发 Shutdown(
0x0006)确认回到0x0021。 - 停机斜坡期间状态字保持原状态:选项码非 0 时过渡挂起,请等待状态字最终变化,不要假设立即跳转。
- 故障复位脉冲不会丢失:Fault reaction active 期间的短复位脉冲会被锁存,进入 Fault 后自动应用。
- 保护故障是粘性的:必须手动 Fault reset 清除,根因未除会再次触发。
- PDO 默认映射为空:需要主站运行时配置;配置时先禁用 PDO(COB-ID bit31 = 1),改完映射与通信参数后再使能。
- 0x1017 心跳时间可持久化:写入后掉电不丢;需要总线安静时必须显式写 0。
- 在设备运动中修改控制环参数可能引起扰动,建议在电机停止或低负载时调整。
