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 映射)见对象字典参考。

下文默认值均以 lin(直线电机)为例。stp42 的差异集中在「用户单位与换算」与「产品默认值差异」两节。

准备工作

总线接线

  1. 使用标准 CAN 总线连接主站与驱动器,总线两端各接一个 120 Ω 终端电阻。
  2. 所有节点使用相同的波特率。
  3. 驱动器由独立电源供电,母线电压符合产品铭牌范围;动力线与 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)

驱动器以固定方向(朝向机械限位/撞块)搜索,通过相位电流升高与位置跟随误差增大同时出现判定撞到限位块,然后回退到设定落点,建立位置基准。

流程

  1. 控制字 bit4 = 1 且 bit8 = 0 → 启动回零,以 0x6099:01 的速度(自动取负方向)运行。
  2. 搜索中撞块条件持续满足 0x2130:04 后,bit12 置位,位置被重置到 0x607C Home offset。
  3. 按 0x2130:05 的回退距离反向运动,落点稳定后 bit10 置位,回零完成。
  4. 取消回零: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 电机过温

故障反应流程

  1. 保护动作后进入 Fault reaction active (0x000F),写入故障码 0x603F,并按 0x605E 的选项码减速。
  2. 斜坡完成后自动进入 Fault (0x0008),高压切除、功放断电。
  3. 主站发 Fault reset(0x6040 bit7 = 1,短脉冲也会被锁存),过渡到 Switch on disabled (0x0020)。
  4. 按正常的使能流程重新使能。
读 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 切到手动模式,再写增益对象。
  • 整定参数写入后立即生效,无需复位。

建议

  1. 带宽由高到低排列:电流环 > 速度环 > 位置环(默认 1000 / 50 / 15 Hz)。
  2. 先完成校准或填写惯量/质量,再调速度环;电流环依赖电机电阻/电感。
  3. 出现振动或啸叫时,优先降低速度环带宽。
  4. 带宽模式下确认大致响应后,可切手动模式单独微调 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

注意事项

  1. 上电自动 Operational:不要假设从 Pre-operational 开始。
  2. 先使能再选模式:0x6060 仅在 Operation enabled 状态被接受,否则 0x6061 不更新。
  3. Ready 是安全态:Ready / Switched on 状态功放不上电。收尾时先让目标归零,再发 Shutdown(0x0006)确认回到 0x0021。
  4. 停机斜坡期间状态字保持原状态:选项码非 0 时过渡挂起,请等待状态字最终变化,不要假设立即跳转。
  5. 故障复位脉冲不会丢失:Fault reaction active 期间的短复位脉冲会被锁存,进入 Fault 后自动应用。
  6. 保护故障是粘性的:必须手动 Fault reset 清除,根因未除会再次触发。
  7. PDO 默认映射为空:需要主站运行时配置;配置时先禁用 PDO(COB-ID bit31 = 1),改完映射与通信参数后再使能。
  8. 0x1017 心跳时间可持久化:写入后掉电不丢;需要总线安静时必须显式写 0。
  9. 在设备运动中修改控制环参数可能引起扰动,建议在电机停止或低负载时调整。