这一页是 19 系列 CANopen 磁致伸缩位移传感器在两磁块、同步模式下的通讯范例。两磁块指的是同一根测杆上挂了两个磁环,可以同时测两个位置,比如一台设备上同时监控主油缸和辅助油缸。跟单磁块相比,两磁块多了一路 PDO;跟异步相比,数据回传由控制器的 SYNC 讯息触发。



两个磁块走两路 PDO
传感器把两个磁环的位置分别放在两个不同的 PDO 里送出,靠 cob-id 区分,不需要在数据里额外加标志位:
| PDO | cob-id | 对应磁块 | 数据长度 | 内容 |
|---|---|---|---|---|
| PDO1 | 0x1FF | 磁块一 | 7 字节 | 位移(4 字节) + 速度(2 字节) + 0x00 |
| PDO2 | 0x2FF | 磁块二 | 7 字节 | 位移(4 字节) + 速度(2 字节) + 0x00 |
同步模式下的报文流程
| 时序 | 发送者 | cob-id | dlc | data | 说明 |
|---|---|---|---|---|---|
| 0 | 传感器 | 0xFF | 0 | n/a | EMCY 讯息(电源启动) |
| 1 | 控制器 | 0x000 | 2 | 0x01 0x00 | 启动所有节点 |
| 2 | 传感器 | 0x1FF | 7 | 位移 + 速度 | 磁块一 |
| 3 | 传感器 | 0x2FF | 7 | 位移 + 速度 | 磁块二 |
| 4 | 控制器 | 0x080 | 0 | n/a | SYNC 讯息 |
| 5 | 传感器 | 0x1FF | 7 | 位移 + 速度 | 磁块一 |
| 6 | 传感器 | 0x2FF | 7 | 位移 + 速度 | 磁块二 |
需要说明的是,两个磁块的 PDO 映射取自同系列两磁块案例,SYNC 触发机制取自同系列同步案例,实际 PDO 映射以该型号的 EDS 文件为准。程序里按 cob-id 分两路缓存即可,两路数据的解析方式完全一样。
位移值的换算
位移字段同样是低位先发。例如磁块一收到 0x02 0x83 0x00 0x00,倒过来拼成 0x00008302 = 33538,分辨率 0.005mm 时代表 33538 × 0.005mm = 167.69mm。磁块二的解析方式完全相同,只是取的是另一路 PDO。
| 示例数据(LSB first) | 拼成的十六进制 | 十进制 | 分辨率 0.005mm 对应位移 |
|---|---|---|---|
| 0x02 0x83 0x00 0x00 | 0x00008302 | 33538 | 167.69mm |
| 0x00 0x00 0x00 0x00 | 0x00000000 | 0 | 0mm(零点) |
| 0xE8 0x28 0x00 0x00 | 0x000028E8 | 10472 | 52.36mm |
现场调试注意
- 两个磁块要分先后:通常按靠电缆端远近区分,装配前先确认哪个是磁块一,避免接线时对调。
- 两路数据要缓存到不同寄存器:很多故障是程序里两路混用同一个地址,表现为两个位置数值交替跳变。
- SYNC 周期不要超过实际需要:周期越短总线负载越高,按控制环路的实际采样需求设定即可。
- 终端电阻与屏蔽接地:与单磁块组网要求相同,总线首尾各一个 120Ω,屏蔽层在控制器侧单端接地。
如果这一页没覆盖你的工况,可以先翻问答合集里是否已有同类情形:位移传感器常见问题解答。
常见问题
CANopen 两磁块同步模式怎么工作?
两个磁环的位置分别放在两个不同的 PDO 里送出,靠 cob-id 区分:PDO1 的 cob-id 是 0x1FF 对应磁块一,PDO2 是 0x2FF 对应磁块二。与异步的差别是数据回传由控制器的 SYNC 讯息(cob-id 0x080)触发,控制器发一拍、传感器回一拍。
CANopen 同步和异步怎么选?
数据发送时机上,异步由传感器按自身周期发出,同步是控制器发 SYNC 后回传;总线占用上,异步由传感器决定、节点多时容易拥塞,同步由控制器统一安排、可控;采样时刻一致性上,异步各节点互不对齐,同步在同一 SYNC 下各节点对齐。单轴、对时刻要求不高的场合用异步;多轴联动、需要同步采样的场合用同步。
CANopen 两个磁块怎么分出先后?
通常按靠电缆端远近区分,装配前先确认哪个是磁块一,避免接线时对调。两路数据要缓存到不同寄存器,很多故障是程序里两路混用同一个地址,表现为两个位置数值交替跳变。
CANopen 的 SYNC 讯息里带数据吗?
不带。SYNC 的 cob-id 是 0x080,数据长度 0 字节,是一条空报文,起的是「打拍子」的作用。传感器进入启动状态仍然靠那条启动讯息,SYNC 不负责唤醒设备,所以程序里的顺序是初始化时发一次启动讯息,之后按需要的采样周期循环发 SYNC。
CANopen 的插座针脚怎么定义?
针脚 1 为 CAN(−),针脚 2 为 CAN(+),针脚 3 与 4 不接,针脚 5 为 +24V 电源,针脚 6 为 0Vdc。终端电阻总线首尾两端都要有 120Ω,屏蔽层焊接到插头外壳上并必须在控制器一侧接地。

