您好!欢迎访问深圳市易测电气有限公司网站!
专业的传感器与智能自动化方案提供商专注位移传感器行业
全国咨询热线:137-2888-0902
联系我们
微信扫一扫

【 微信扫码咨询 】

137-2888-0902

0755-85271862

CANopen通讯范例 (单磁块-异步) 磁致伸缩位移传感器

作者:易测电气技术团队 浏览量:251 时间:2026-08-24

这一页给出德敏哲 19 系列 CANopen 磁致伸缩位移传感器在单磁块、异步模式下的完整通讯过程。所谓异步,是指传感器进入启动状态后不需要控制器再发同步讯号,自己按固定周期把位移和速度数据发上总线。对做 PLC 程序的人来说,需要盯的只有三件事:上电后读到什么、要发哪一条启动指令、收上来的 7 个字节怎么拆。

 CANopen磁致伸缩位移传感器 (单磁块-异步) 通讯范例德敏哲Germanjet

总线上的报文流程

序号 发送者 cob-id dlc data 说明
0 传感器 0xFF 0 n/a EMCY 讯息(电源启动)
1 控制器 0x000 2 0x01 0x00 启动所有节点
2 传感器 0x1FF 7 位移(4 字节) + 速度(2 字节) 磁块一
3 传感器 0x1FF 7 位移(4 字节) + 速度(2 字节) 磁块一
4 传感器 0x1FF 7 位移(4 字节) + 速度(2 字节) 磁块一

四条报文分别是什么意思

  • 第 0 条是传感器主动报的:上电瞬间它先发一条 EMCY 讯息,cob-id 为 0xFF。这条讯息同时也暴露了它的 node-id —— 0x7F,换成十进制是 127,这是出厂默认值。多台传感器挂同一条总线时,这个默认值必须改掉,否则地址冲突。
  • 第 1 条是控制器发的启动指令:cob-id 0x000,数据长度 2 字节,内容是 0x01 0x00。前一个字节 0x01 表示“启动节点”,后一个字节 0x00 表示“所有节点”。如果只想启动某一台,把后一个字节换成它的 node-id 即可,例如 0x01 0x7F。
  • 第 2 条往后是传感器周期上报的数据:cob-id 固定 0x1FF,长度 7 字节。前 4 字节是位移,其后 2 字节是速度,最后 1 字节填 0x00。
  • 启动指令只需要发一次:传感器收到一条启动讯息就进入工作状态,之后一直按自己的周期发数据。因此 PLC 的初始化程序里发一次就够,不需要循环发。

7 个字节怎么拆成位移值

位移和速度都是低位先发(LSB first),也就是收到字节后要倒过来拼。举例:位移字段收到 0x02 0x83 0x00 0x00,倒过来拼成 0x00008302,换算成十进制是 33538。如果这台传感器的分辨率设定为 0.005mm,那么实际位移就是 33538 × 0.005mm = 167.69mm。

分辨率设定 每个计数代表 33538 个计数对应位移
0.005mm 0.005mm 167.69mm
0.002mm 0.002mm 67.08mm
0.01mm 0.01mm 335.38mm

这张表想说明一件事:同一串位移数据,在分辨率设定不同的传感器上代表的位移并不相同。PLC 侧的换算系数必须按实际配置来写,不能照抄别人的程序。

调试时容易踩的几个点

  • 波特率全总线必须一致:传感器、PLC、其他从站要对齐,改一处的波特率就要全改。
  • 总线两端各接一个 120Ω 终端电阻:组网图里末端那台带内置终端电阻的型号(D60)就是为这个准备的,接错位置会造成反射、丢帧。
  • 屏蔽层单端接地:电缆屏蔽要焊在插头外壳上,并且只在控制器一侧接地,两端都接地会形成地环流,反而把干扰引进来。
  • 速度字段别丢:很多程序只取位移,但速度字段对判断机构是否卡滞很有用,拆包时顺手一起取出来。

相关问题另按安装、信号、干扰、通讯四类做了归类,可对照排查:位移传感器常见问题解答。

常见问题

CANopen 单磁块异步模式的报文是什么?

传感器上电主动发一帧 EMCY,cob-id 0xFF,同时也暴露了它的 node-id;控制器发一条启动指令,cob-id 0x000、长度 2 字节、内容 0x01 0x00,前一个字节 0x01 表示启动节点,后一个字节 0x00 表示所有节点;之后传感器周期上报,cob-id 固定 0x1FF、长度 7 字节,前 4 字节是位移,其后 2 字节是速度,最后 1 字节填 0x00。

CANopen 只启动某一台传感器怎么做?

把启动指令的后一个字节换成它的 node-id 即可,例如 0x01 0x7F。多台传感器挂同一条总线时,出厂默认的 node-id 0x7F 必须改掉,否则地址冲突。

CANopen 的 7 个字节怎么拆成位移值?

位移和速度都是低位先发(LSB first),收到字节后要倒过来拼。例如位移字段收到 0x02 0x83 0x00 0x00,拼成 0x00008302,换算成十进制是 33538;若这台传感器的分辨率设定为 0.005mm,实际位移就是 167.69mm。同样 33538 个计数,在 0.002mm 分辨率下对应 67.08mm、在 0.01mm 下对应 335.38mm,PLC 侧的换算系数必须按实际配置来写。

CANopen 组网要注意什么?

波特率全总线必须一致,传感器、PLC、其他从站要对齐;总线两端各接一个 120Ω 终端电阻,末端那台带内置终端电阻的型号就是为这个准备的;屏蔽层只在控制器一侧接地,两端都接地会形成地环流,反而把干扰引进来。

CANopen 的速度字段有什么用?

单磁块异步报文里前 4 字节是位移,其后 2 字节就是速度,最后 1 字节固定填 0x00。很多程序只取位移,但速度字段对判断机构是否卡滞很有用,拆包时顺手一起取出来即可,它与位移一样是低位先发、按实际分辨率换算。