网站地图
原理与结构
原理与结构
您的位置: 首页 >> 原理与结构 >> CANopen位移传感器单磁块同步通讯-报文时序与调试

CANopen位移传感器单磁块同步通讯-报文时序与调试

发布时间:2026-09-10
CANopen位移传感器单磁块同步通讯-报文时序与调试

CANopen位移传感器单磁块同步通讯,解决的是“数据什么时候采”这个时间问题,不是精度问题。异步模式下传感器按自己的内部节奏往外发,控制器拿到的那一帧不一定落在控制周期的整点上;要让这根轴和系统里别的轴踩同一个节拍,就得让主站发一条SYNC,传感器在收到SYNC的那一刻同步采样并回传。

位移传感器
图:位移传感器现场应用实拍(易测电气)
主站 SYNC 0x080 0x080 0x080 传感器 PDO 0x1FF 0x1FF 0x1FF SYNC 周期 = 采样周期 一发一收,不丢帧
图:一个 SYNC 对应一个 PDO;SYNC 的节拍就是位置采样的节拍,主站说了算

同步和异步,差的到底是什么

异步模式下,传感器按自己的事件计时器往外推PDO,什么时候推由它自己定。通信上没问题,可你把它和同一根总线上其它轴的位置数据放在一张时间表里,就会发现它们的时间戳是错开的。做单轴的位置显示无所谓,做多轴联动、插补、同步压装,这点错位就要命。

同步模式换了规矩:谁采样由主站说了算。主站每发一次SYNC,传感器就地采一次位置,并推一帧PDO出来。所有挂在这条总线上支持同步的节点,都在同一个SYNC节拍上采,时间就对齐了。

CANopen位移传感器单磁块同步通讯的报文时序

默认node-id是0x7F。上电时传感器先发一帧EMCY,cob-id是0xFF。控制器发启动帧,cob-id 0x000、dlc 2、数据0x01 0x00,把节点带上线。进入运行状态后,传感器就能响应SYNC了。

SYNC的cob-id是0x080、数据长度0,主站每发一次,传感器回一帧PDO。回传的PDO cob-id是0x1FF、7个字节,周期跟主站对齐。

序号发送者cob-iddlcdata说明
0传感器0xFF0n/aEMCY,上电启动
1控制器0x00020x01 0x00启动节点,进入运行态
2控制器0x0800n/aSYNC 触发采样
3传感器0x1FF7位移4B + 速度2B + 0x00PDO1 回传
4控制器0x0800n/a下一个周期 SYNC
5传感器0x1FF7位移4B + 速度2B + 0x00PDO1 回传

PDO 那 7 个字节怎么读

PDO固定7字节:前4字节是位移,低位先发;接着2字节是速度;最后1字节是0x00。这个顺序和手册上的对一遍就能确认,别自己猜字节序,猜错了位置值会差出十万八千里。

字节位置内容说明
1 ~ 4位移值LSB 先发,需按低位在前拼回整数
5 ~ 6速度值同步模式里一起回传
70x00保留位,固定填 0

举个对数的例子。抓到的位移字节是0x03、0x83、0x00、0x00,低位在前拼起来就是0x00008303,换成十进制是33539。该型号分辨率按0.005mm算,33539×0.005mm=167.695mm。调试时先手算一遍,再拿它核对抓到的帧,对不上就是拼字节或者分辨率填错了。

现场踩坑提醒:新装的机器别一上来就挂控制逻辑。先用CAN分析仪抓一段,确认每发一个SYNC都能稳稳收到一个PDO、周期和主站一致、中间不丢帧,再把闭环接上去。SYNC周期和PDO传输类型要在对象字典里配对好,配错了就是“主站在喊、传感器不应”。总线负载也要留余量,别让SYNC周期把总线挤爆。

调试判据:三看一算

同步这块儿排障,按这四条走基本能定位到根上。

  • 看对应:一帧SYNC对一帧PDO,多发少发都不正常。SYNC发了PDO不来,先查对象字典里PDO的传输类型是不是配成了同步。
  • 看周期:PDO的时间间隔要跟SYNC周期吻合,忽长忽短说明总线在重传或者负载太高。
  • 看丢帧:连续抓几分钟,序号要连得上。丢帧多半是负载或终端电阻的问题。
  • 算一遍:按上面33539对167.695mm的办法手算一帧,核对数值和分辨率。

还有一种情况见得不少:报文全对,数值也对,就是控制上总差那么一点点。回头一查,SYNC是从另一路IO发出去的,比控制周期晚了小半个节拍。这种就把SYNC放到同一个控制任务里发,别用两套节拍。

常见问题

问:单磁块 CANopen 位移传感器,为什么还要分同步和异步?
答:异步是传感器照自己的内部节奏往外发,控制器拿到数据的那一刻不一定落在控制周期整点上。这根轴要和系统里别的轴按同一节拍对齐,就得让主站发0x080这条SYNC报文,把采样点钉在控制节拍上。

问:主站每发一次 SYNC,传感器回什么?
答:回一帧PDO。SYNC的cob-id是0x080、数据长度0;传感器回的PDO cob-id是0x1FF、7字节,前4字节位移低位先发、后2字节速度、末字节0x00,周期要和主站一致,不能丢帧。

问:报文里 33539、分辨率 0.005mm,位移是多少?
答:是167.695mm。算法是4个位移字节03、83、00、00按低位在前拼成0x00008303,换成十进制33539,再乘0.005mm分辨率。调试时先手算一遍,拿它核对抓到的帧,对不上就是拼字节或分辨率填错。

问:同步模式下主站在喊、传感器不应,问题出在哪?
答:多半是对象字典里SYNC周期和PDO传输类型没配对。先拿CAN分析仪抓一段报文看:每次SYNC发出去,是不是都稳稳回一个PDO、周期跟主站对得上、中间不丢帧,确认没问题再把控制逻辑挂上去,总线负载也要留余量。

问:SYNC 的周期定多少合适?
答:跟着控制周期走,跟得越紧实时性越好,但总线负载也越高。常见做法是取控制周期的整数倍,留出一定的总线余量。周期定得比机械动作的实际变化还快,只是白占带宽,没有额外收益。

CANopen位移传感器单磁块同步通讯的SYNC周期配置与PDO映射,易测电气位移传感器工程师欢迎您的咨询。

版权所有:深圳市易测电气有限公司 备案号:粤ICP备19052563号 网安粤公网安备 44030602003587号 技术支持:星海互联