跳至主要内容

在线培训

研蓝 S14 系列一体化步进 CANopen 快速操作手册

| 在线培训

研蓝 S14 系列一体化步进  CANopen 快速操作手册

手册版本 V4.06|SDO 报文说明:

• COB‑ID:主站发送 SDO 请求 = 0x600 + NodeId;从站应答 SDO = 0x580 + NodeId;示例全部使用节点 ID=1

• expedited 快速 SDO,8 字节,小端模式(低字节在前)

• 报文格式:COB‑ID | 命令字节 | 索引低字节 |索引高字节 |子索引 | data0 data1 data2 data3

• 示例:601 23 7A 60 00 30 75 00 00

○ 601:主站发至 Node1;23:写 4 字节;7A 60:索引 0x607A;00 子索引 0;后面 4 字节为数值小端

• 读报文命令字节固定0x40,应答命令字节0x43;错误应答0x80

目录

1. 基础总览

2. CiA‑402 驱动器状态机(所有运动模式前置条件 + 状态切换报文范例)

3. 5 种运动模式快速使用 (每个模式末尾附带 SDO 报文组合范例,NodeId=1)

4. IO 输入输出快速参考

5. LED 双色灯故障速查表

6. 常见现场问题排查

7. 寄存器完整清单

1、基础总览

通讯基础

• 最高波特率:1 Mbit/s;支持 SDO、PDO、SYNC 同步帧、NMT、Heartbeat 心跳。

• 对象字典分区
| 地址段 | 用途 |
|---|---|
|0000‑0FFFh | 数据类型参数 |
|1000‑1FFFh |CANopen 通信参数 |
|2000‑5FFFh | 厂商自定义(电机、电流、IO) |
|6000‑9FFFh |CiA‑402 标准运动对象 |

上电优先配置

• 0x2000‑0:峰值电流,单位 mA;0x2001‑0:细分数脉冲 / 圈。

脱机(手动转电机):0x6040=0x06;恢复锁轴:0x6040=0x07

2、CiA‑402 驱动器状态机

⚠️不走完状态机,驱动器不响应任何运动指令;所有模式执行前,必须执行这套状态切换
控制字:0x6040(写);状态字:0x6041(读)

状态跳转动作 控制字 0x6040 预期状态字 0x6041 说明
上电初始化→伺服无故障 自动 0x0250 上电自检完成
伺服无故障 → 伺服准备好 0x06 0x0231 就绪
伺服准备好 → 等待打开使能 0x07 0x0233 等待使能
等待使能 → 伺服运行 0x0F 0x0237 ✅可下发运动指令
故障复位 0x80(bit7 上升沿) 0x0250 故障清除,上升沿有效
快速停机 0x02 0x0217 快速停机激活

✅【状态切换完整报文范例 NodeId=1】

Plain
//1.伺服无故障 → 伺服准备好,写控制字0x06
601 2B 40 60 00 06 00 00 00
//应答 581 60 40 60 00 00 00 00 00

//2.伺服准备好 → 等待打开使能,写控制字0x07
601 2B 40 60 00 07 00 00 00

//3.等待使能 → 伺服运行,写控制字0x0F (使能完成,可以运动)
601 2B 40 60 00 0F 00 00 00

//读状态字确认状态,读0x6041
601 40 41 60 00 00 00 00 00
//正常应答:581 43 41 60 00 37 02 00 00   →返回0x0237伺服运行
 

故障复位报文(出现报警后)
 

Plain
601 2B 40 60 00 80 00 00 00

3、5 种运动模式快速使用(附带 SDO 报文范例 NodeId=1)

设置模式:写 0x6060;读0x6061确认实际生效模式
3.1 PP 轮廓位置模式|点位定位,最常用

模式编号:0x6060 = 1

1. 0x6060 = 1 设置 PP 模式

2. 设置:0x607A目标位置;0x6081最大速度;0x6083加速度;0x6084减速度

3. 执行上面【状态切换报文】到达伺服运行 (0x0F)

4. 绝对定位触发:控制字\\0x6040 = 0x1F\\\\(bit5 上升沿触发新位置)\\

○ 相对定位触发:0x6040 =0x5F

5. 状态字6041h bit10=1 → 位置到达;触发完成写回0x0F清除触发位。

✅ PP 模式完整报文范例:绝对位置移动到 30000 脉冲

Plain
//1 设置PP模式 0x6060=1
601 2B 60 60 00 01 00 00 00

//2 设置目标位置0x607A = 30000 (0x00007530,小端:30 75 00 00)
601 23 7A 60 00 30 75 00 00

//3 设置轮廓最大速度0x6081=10000(0x2710)
601 23 81 60 00 10 27 00 00

//4 设置加速度0x6083=10000
601 23 83 60 00 10 27 00 00

//5 设置减速度0x6084=10000
601 23 84 60 00 10 27 00 00

//6 【前置必须执行状态切换报文,到伺服运行0x0F】

//7 触发绝对定位 控制字0x1F
601 2B 40 60 00 1F 00 00 00

//运动完成之后清除触发位,回到0x0F,准备下一次定位
601 2B 40 60 00 0F 00 00 00

//读状态字,判断bit10是否置位,位置到达
601 40 41 60 00 00 00 00 00

3.2 PV 轮廓速度模式|定速持续旋转

模式编号:0x6060 =3
1. 0x6060 =3 设置 PV 速度模式

2. 设置0x60FF目标速度;加速度0x6083;减速度0x6084;数值正负代表旋转方向

3. 执行状态切换报文,伺服运行0x0F,电机开始按照目标速度运行

4. 减速停机:0x6040 = 0x010F;快速急停:0x6040 = 0x000B

状态字 bit10=1:速度到达;bit12=1:速度为 0。

✅ PV 模式完整报文范例:正向 20000 脉冲 /s 运行,之后减速停止

Plain
//1 设置PV模式 0x6060=3
601 2B 60 60 00 03 00 00 00

//2 设置目标速度0x60FF = 20000 (0x4E20)
601 23 FF 60 00 20 4E 00 00

//3 设置加速度
601 23 83 60 00 10 27 00 00

//4 设置减速度
601 23 84 60 00 10 27 00 00

//5 【前置:状态切换报文,进入伺服运行0x0F】电机开始加速运行

//6 减速停机 Halt bit8置1,控制字0x010F
601 2B 40 60 00 0F 01 00 00

//急停报文(紧急)
601 2B 40 60 00 0B 00 00 00

3.3 HM 回原点模式|机械回零 / 软件标定零点

模式编号:0x6060 =6
0x6098:回原点方式选择(CiA402 标准)

回零方式定义 动作说明

1

负向,寻找负限位开关,再找编码器索引 Z 电机负向运行,碰到负限位后反向,寻找 Z 脉冲作为零点
2 正向,寻找正限位开关,再找编码器索引 Z 电机正向运行,碰到正限位后反向,寻找 Z 脉冲作为零点
17 负向,寻找 HOME 原点开关,不找 Z 相 负向运行,检测到 Home 原点开关边沿即停止,开关位置为零点
18 正向,寻找 HOME 原点开关,不找 Z 相 正向运行,检测到 Home 原点开关边沿即停止,开关位置为零点
19 正向找 HOME 开关,开关触发后反向低速离开开关边沿 常用方案:正向走到 Home 开关,触发后反向低速,离开开关边沿锁定零点
20 正向找 HOME 开关,开关触发后反向低速离开开关边沿 正向走到 Home 开关,触发后反向低速,离开开关边沿锁定零点
21 负向找 HOME 开关 + 负限位,离开边沿锁定零点 负向运行,先碰到 Home,再配合负限位保护,离开边沿锁定零点
22 负向找 HOME 开关 + 正限位,离开边沿锁定零点 负向运行,先碰到 Home,再配合正限位保护,离开边沿锁定零点
23 正向,仅使用负限位作为零点,不使用 Home 开关 正向运行,碰到负限位直接作为零点
24 正向,仅使用正限位作为零点,不使用 Home 开关 正向运行,碰到正限位直接作为零点
33 负向,寻找编码器 Z 索引,无机械开关 电机负向运转,捕获第一个 Z 脉冲作为零点
34 正向,寻找编码器 Z 索引,无机械开关 电机正向运转,捕获第一个 Z 脉冲作为零点
35 软件置零,电机不旋转 软件标定零点,电机不动,直接将当前位置设置为零点
37 软件置零,电机不旋转,带校验 软件标定零点,不转动电机,内部位置寄存器写入 0,附加状态校验

选用说明:

• 17~22:原点开关回零(最常用);19、20 为工业设备首选,在开关边沿定位,避免开关内部死区。

• 23~24:只用限位做零点,无单独 Home 传感器。

• 33~34:仅编码器 Z 相回零,不需要外部传感器。

• 35、37:软件零点标定,电机轴保持静止,适合无传感器标定场景。
1. 0x6060 =6 设置 HM 回原模式

2. 设置回原方式0x6098,参考上表;17~30 硬件开关回零;35 / 37 = 软件标定零点,电机不转动,直接写当前位置为零点

3. 设置回原高速0x6099‑01,回原低速0x6099‑02,回原加速度0x609A

4. 执行状态切换报文,伺服运行;控制字0x6040=0x1F启动回原。

bit12=1:回原点完成;bit13=1:回原故障。

✅ HM 模式报文范例 A:硬件回零,模式 19(HOME 开关回零)

Plain
//1 设置HM回原模式
601 2B 60 60 00 06 00 00 00

//2 设置回原模式号0x6098 =19
601 2B 98 60 00 13 00 00 00

//3 回原高速 0x6099‑01 =8000
601 23 99 60 01 40 1F 00 00

//4 回原低速 0x6099‑02 =1000
601 23 99 60 02 E8 03 00 00

//5 回原加速度 0x609A =5000
601 23 9A 60 00 88 13 00 00

//6 【前置状态切换报文到伺服运行0x0F】

//7 启动回原 控制字0x1F
601 2B 40 60 00 1F 00 00 00

//读状态字,bit12判断回原完成
601 40 41 60 00 00 00 00 00

✅ HM 模式报文范例 B:【软件标定零点,模式 35,电机完全不动,直接把当前位置设置系统零点】

适配你的项目标定零点业务场景!
 

Plain
//HM模式
601 2B 60 60 00 06 00 00 00
//回原模式35,不运动直接置零点
601 2B 98 60 00 23 00 00 00
//前置状态切换,伺服运行0x0F
//启动回原 0x1F;驱动器直接将当前电机位置写为零点,电机轴不旋转
601 2B 40 60 00 1F 00 00 00

3.4 PT 力矩模式|恒力矩、碰撞回零、物体抓取

模式编号:0x6060 =4

1. 0x6060 =4 设置 PT 力矩模式

2. 0x2158‑01力矩子模式:1 碰撞回零;2 抓取;3 恒力矩输出

3. 0x6071设置力矩等级(1‑255);设置最大限速防止飞车0x2158‑03

4. 状态切换到伺服运行,电机输出对应力矩;堵转不会报警。

✅ PT 模式报文范例:恒力矩模式,力矩等级 100

Plain
//1 设置PT力矩模式
601 2B 60 60 00 04 00 00 00

//2 设置力矩工作模式:3=恒力矩输出 0x2158‑01
601 2B 58 21 01 03 00 00 00

//3 设置力矩等级0x6071 =100
601 2B 71 60 00 64 00 00 00

//4 设置力矩模式最大限速0x2158‑03 =6000
601 23 58 21 03 70 17 00 00

//5【前置状态切换报文,伺服运行0x0F】电机输出力矩

//停机,控制字Halt 0x010F
601 2B 40 60 00 0F 01 00 00
 

3.5 IP 插补模式|多轴同步插补运动

模式编号:0x6060 =7
⚠️依赖SYNC 同步帧(COB‑ID=0x80,8 字节 0 数据),主站周期广播 SYNC;插补周期配置0x60C2‑1单位 ms;每个 SYNC 生效0x60C1‑1目标位置。
1. 0x6060=7进入 IP 插补模式

2. 设置插补周期0x60C2‑1

状态切换伺服运行;主站周期性写0x60C1‑1目标位置,发送 SYNC 帧,执行插补运动。

✅ IP 插补模式报文范例

Plain
//1 设置IP插补模式
601 2B 60 60 00 07 00 00 00

//2 设置插补周期0x60C2‑1 = 5ms
601 2B C2 60 01 05 00 00 00

//3【前置状态切换报文到伺服运行0x0F】

//4 设置插补下一周期目标位置0x60C1‑1 =10000脉冲
601 23 C1 60 01 10 27 00 00

//主站广播SYNC同步帧(所有轴共用,不需要节点ID)
80 00 00 00 00 00 00 00

//下一周期更新新的插补目标位置,再次发送SYNC帧,循环执行
 

说明:IP 模式适合上位机做轨迹规划,周期性下发目标位置,靠 SYNC 帧同步多轴执行。

4、IO 输入输出快速参考

DI IN1‑IN5;DO OUT1‑OUT3
1. 0x2152 sub1‑5:DI 端口功能选择(枚举,禁止组合数值)

○ 0 无效;1 原点 Home;2 负限位;4 正限位;8 急停

2. 0x2153 sub1‑5:输入滤波,单位 ms,抗抖动

3. 0x2154‑1:全局输入有效电平:0 低电平有效;1 高电平有效

4. 0x2154‑2:通道独立取反掩码;bit0 对应 IN1,bit=1 通道取反

5. 0x2155【只读】硬件原始引脚电平,不受极性 / 取反影响

6. 0x60FD【只读】⭐CiA‑402 逻辑 DI 状态,经过极性 + 取反运算;原点限位急停功能读取这个寄存器。

IO 调试范例报文:读取硬件原始 DI 和逻辑 DI
 

Plain
//读硬件原始DI 0x2155
601 40 55 21 00 00 00 00 00
//读CiA402逻辑DI状态0x60FD
601 40 FD 60 00 00 00 00 00

DO 输出

1. 0x2005 sub1‑4:输出端口功能;0 取消;1 报警;2 到位;3 运行;4 回原完成。

2. 0x2008‑0输出有效电平;0x60FE‑1直接写输出 bit0‑bit2 对应 OUT1‑OUT3。

5、LED 双色灯故障速查表

LED 指示灯 故障类型 排查要点
1 红 1 绿 过流 电机短路、相序错误、电流参数过大、机械堵转
2 红 1 绿 相位开路 电机相线断线、端子虚接松动
3 红 1 绿 母线电压过高 电源超标;减速回馈泵升电压,加大减速时间
4 红 1 绿 母线电压过低 电源功率不足;负载大,电流设置过大
5 红 1 绿 闭环位置超差 负载过大、加速度太高、机械卡滞、编码器接线异常
6 红 1 绿 闭环编码器故障 编码器断线、接反;线数参数配置错误

故障复位报文:

Plain
601 2B 40 60 00 80 00 00 00

6、常见现场问题排查

1. 发指令电机不动

○ 确认状态字0x6041=0x0237伺服运行,无故障;确认模式0x6061;检查急停 DI 逻辑状态0x60FD;PP 模式确认 bit5 上升沿触发。

2. DI 硬件有电,原点限位不生效

○ 对比0x2155硬件原始和0x60FD逻辑值;检查0x2152端口功能分配;检查0x2154极性与通道取反掩码。

3. 回原点撞限位

○ 回原模式号匹配接线;原点开关 DI 极性;回原低速不要设置过高。

4. 丢步位置不准

○ 电机电流、细分参数匹配上位机;速度加速度不要超限;闭环检查编码器接线。

5. SDO 通讯报错

○ CAN 总线两端 120Ω 终端电阻;波特率、节点 ID 匹配;SDO 报文固定 8 字节,小端模式低字节在前。

7、寄存器完整清单(索引、子索引、读写、类型、字节、单位、默认、备注)

索引 (Hex) 子索引 读写 数据类型 字节长度 单位 出厂默认值 备注
【CiA‑402 标准运动对象 0x60xx】              
0x6040 0 RW U16 2     控制字;状态机、运动触发、故障复位
0x6041 0 RO U16 2     状态字;驱动器状态、到位、故障标志
0x6060 0 RW I8 1   8 设置运行模式:1‑PP,3‑PV,4‑PT,6‑HM,7‑IP
0x6061 0 RO I8 1   8 读取实际生效运行模式
0x6064 0 RO I32 4 pulse   实际电机位置
0x606C 0 RO I32 4 pulse/s   实际速度
0x607A 0 RW I32 4 pulse 0 PP 模式:目标位置
0x6071 0 RW I16 2 力矩等级

0

PT 力矩模式目标力矩;1‑255 等级
0x60FF 0 RW I32 4 pulse/s 0 PV 模式目标速度,正负代表方向
0x6081 0 RW U32 4 pulse/s   轮廓模式最大速度
0x6083

0

RW U32 4 pulse/s²   轮廓加速度
0x6084 0 RW U32 4 pulse/s²   轮廓减速度
0x6098 0 RW U8 1     HM 回原点模式;详见 HM 章节枚举表;17‑37;35/37 软件置零点不转电机
0x6099 1 RW U32 4 pulse/s   回原点高速
0x6099 2 RW U32 4 pulse/s   回原点低速
0x609A 0 RW U32 4 pulse/s²   回原点加速度
0x60FD 0 RO U16 2 bit 映射   ⭐CiA‑402 逻辑 DI 状态;经过极性、取反处理;bit0‑4 对应 IN1‑IN5
0x60FE 1 RW U16 2 bit 映射   DO 输出控制 bit0‑bit2 对应 OUT1‑OUT3
0x60C1

1

RW I32 4 pulse 0 IP 插补模式目标位置
0x60C2 1 RW U8 1 ms 5 IP 插补周期
【厂商自定义:电机参数 0x20xx】              
0x2000 0 RW U16 2 mA 1000 电机峰值电流,按电机铭牌设置
0x2001 0 RW U32 4 pulse/r 4000 细分数,电机一圈脉冲总数
0x2002 0 RW U16 2 ms 25 电流平滑时间
0x2003 0 RW U16 2   0x1919 空闲 / 运行最小电流百分比
0x2005 1‑4 RW U8 1   0 输出端口功能;0 取消,1 报警,2 到位,3 运行,4 回原完成
0x2008 0 RW U16 2   0 输出端口有效电平配置
0x2051 0 RW U16 2   0 电机方向;0 顺时针正向;1 逆时针正向;禁止运行中修改
【厂商自定义:DI 输入参数 0x21xx】              
0x2152 1‑5 RW U8 1   0 IN1‑IN5 端口功能选择;0 无效,1 原点,2 负限位,4 正限位,8 急停,枚举不可叠加
0x2153 1‑5 RW U16 2 ms 2 IN1‑IN5 输入硬件滤波时间,抗抖动
0x2154 1 RW U16 2   0 DI 全局有效电平:0 低有效 /1 高有效
0x2154 2 RW U16 2 bit 掩码 0 DI 通道独立取反掩码 bit0‑bit4 对应 IN1‑IN5
0x2155 0 RO U16 2 bit 映射   ⭐DI 硬件原始引脚电平;不受极性、取反影响;仅看硬件电气信号
0x2158 1 RW U8 1   3 力矩模式工作选择:1 碰撞回零;2 抓取;3 恒力矩输出
0x2158 2 RW U16 2 pulse 0 力矩模式偏移脉冲
0x2158 3 RW U16 2 pulse/s 6000 力矩模式最大限速,防止飞车
【CANopen 通信参数 0x10xx】              
0x1010 1 RW U32 4     保存参数到 Flash,写入魔术字1702257011
0x1011 1 RW U32 4     恢复出厂参数魔术字
0x1014 0 RW U32 4 COB‑ID 0x80+NodeID 紧急报文 ID
0x1017 0 RW U16 2 ms 1000 心跳报文周期;0 关闭心跳
【PDO 通信参数 0x1400‑0x1A03】              
0x1400~0x1403 1‑6 RW         RPDO1‑4 通信参数(COB‑ID、传输类型)
0x1600~0x1603 0‑8 RW         RPDO 映射参数
0x1800~0x1803 1‑6 RW         TPDO1‑4 通信参数
0x1A00~0x1A03 0‑8 RW         TPDO 映射参数

补充说明:

1. 所有示例报文节点 ID=1;如果实际节点 ID 不是 1,修改 COB‑ID:主站写 0x600+ID;读应答0x580+ID。

2. SDO expedited 写报文命令字节固定0x23(4 字节写),0x2B(2 字节写);读命令0x40。

3. 全部小端模式:数值低字节放在报文靠前数据位。

4. 模式 35 回原报文适合你项目软件标定零点,电机不转动,直接保存当前电机轴坐标作为零点。

5. 0x1010‑1魔术字1702257011写入执行 Flash 保存,不要循环高频调用,会损耗 Flash 寿命。

0x6098 回零模式遵循 CiA402 标准定义,不同模式依赖对应的 DI 端口配置(Home / 限位 / Z 相)。

相关文档