CANopen位移传感器单磁块异步通讯范例

CANopen位移传感器单磁块异步通讯,在 CANopen 输出里属于配置量小、结构简单的一档:一根测杆配一个磁环,传感器上电启动之后按自己设定的周期把位置推上来,全程不用 SYNC 报文。单点位置反馈、油缸定位、闸门开度这类场合选这一档就够,PLC 侧不必做同步逻辑,组态也省事。

CANopen位移传感器单磁块异步通讯和同步档差在哪
「异步」两个字说的就是不理会 SYNC 报文。同步档要主站周期性发 SYNC,传感器收到 SYNC 才采数据、才回 PDO,好处是挂在这条总线上的多个磁块,数据锁在同一时刻上。异步档不看 SYNC,传感器按内部「事件计时器」定的周期往外推,主站负责收和解析就行。
取舍很清楚:只有一个测点,「同一时刻」这个保证用不上,异步档配置量小、总线负载低、PLC 程序也简单;两个磁块以上要算位置差、做同步压装的,就得改订同步档。我们碰到过一台双磁块测差值的设备订成了异步档,两个磁块的数据错开几十毫秒,算出来的差值一直在抖,换哪根线都没用,最后只能重新订货。测点数量这件事,订型阶段就要跟供应商说清楚。
上电启动的报文顺序
传感器出厂默认节点 ID 是 0x7F,也就是十进制 127。上电以后它先推一条 EMCY 报个到,cob-id 是 0xFF、数据长度 0。接着控制器发 NMT 启动命令,cob-id 0x000、dlc 2、数据 0x01 0x00,这是启动总线上所有节点;只想单独拉起这一台,就发 0x01 0x7F。这条命令一下去,PDO 就会跟着上来。
| 序号 | 发送者 | cob-id | dlc | data | 说明 |
|---|---|---|---|---|---|
| 0 | 传感器 | 0xFF | 0 | n/a | EMCY,电源启动 |
| 1 | 控制器 | 0x000 | 2 | 0x01 0x00 | 启动所有节点;单独启动发 0x01 0x7F |
| 2 | 传感器 | 0x1FF | 7 | 位移4B + 速度2B + 0x00 | PDO1,磁块一 |
| 3 | 传感器 | 0x1FF | 7 | 位移4B + 速度2B + 0x00 | PDO1,磁块一,按周期重复 |
那 7 个字节怎么算成毫米
启动之后传感器只发一个 PDO,cob-id 固定 0x1FF,长度 7 字节:前 4 字节是位移、低字节先发,接着 2 字节是速度,最后 1 字节是 0x00。这个顺序跟手册对一遍就能确认,别自己猜字节序。
举个对数用的实例:抓到的位移字节是 0x02 0x83 0x00 0x00,按低位在前拼成 0x00008302,十进制是 33538。该型号分辨率按 0.005mm 算,33538 × 0.005mm = 167.69mm。调试时先手算一遍,再拿它核对抓到的帧;拼反了会得到一个看着也挺「正常」的离谱数值,这种错最容易被绕进去。
上报周期怎么定
周期由传感器内部的「事件计时器」决定,改大改小都支持,具体可设范围以厂家样本为准。周期短,数据新鲜、闭环反应快,但总线负载跟着涨;周期长,总线轻松,可位置变化会被抹平。
定这个值的办法很简单:看机械动作最快的变化速度。做油缸定位的,周期取控制周期的整数倍,比如 PLC 扫描 10ms,周期就取 10ms 或 20ms,别一个 1ms 一个 20ms 地各跑各的。做闸门开度这种慢过程的,50ms~100ms 完全够用,没必要为了「好看」把周期压到极限。
接线、终端电阻和线长
CANopen 走的是差分信号,CAN_H 和 CAN_L 必须用双绞屏蔽线,屏蔽层只在控制器那一端单点接地。总线的两个物理末端各挂一个 120Ω 终端电阻,中间的节点不要再加。这条规矩违反,报错方式通常是随机丢帧,查起来很费时间。
| 波特率 | 总线长度参考 | 常见用法 |
|---|---|---|
| 1 Mbit/s | ≤25 m | 短距离、节点少 |
| 500 kbit/s | ≤100 m | 设备内总线、运动控制 |
| 250 kbit/s | ≤250 m | 常规产线、多节点 |
| 125 kbit/s | ≤500 m | 长距离、老线改造 |
这张表是常规参考值,具体支持哪几档、能拉多长,以厂家样本和现场实测为准。现场线长吃紧的时候,降一档波特率往往比换电缆便宜,代价只是报文慢一点——单点位置反馈对这点延迟通常不敏感。
现场高频问题一:数值周期性跳变
我们遇到过一个油缸上的传感器,位置读数每隔几秒跳一次,幅度有零点几毫米,换了两根电缆都没解决。拆开线槽一看,新走的信号线和变频器动力线绑在同一根桥架里,屏蔽层又只接了传感器那一端。把动力线和信号线分开走槽、屏蔽改到控制器端单点接地,跳变当场就没了。
这类排障的顺序建议固定下来:先分流,把信号线和动力线分开;再查屏蔽,确认单点接地;然后查供电,量一下 24V 的纹波;最后量终端电阻是不是两个 120Ω。这四步走完还没解决,再回头怀疑传感器本体。
现场高频问题二:完全收不到报文
收不到报文,常见就三件事:节点 ID 和总线上别的设备撞号、终端电阻少装一个或者多装了一个、双方波特率对不上。这三项用一台 CAN 分析仪半小时能查完,比盲换硬件快得多。多台设备共用一条总线时,建议把每个节点的 ID 记在一张表上贴在电柜门内侧,后面加设备的时候一眼就能看出哪个号空着。
常见问题
问:单磁块的 CANopen 位移传感器,PDO 从哪个 cob-id 读?
答:只发一个 PDO,cob-id 是 0x1FF,7 字节:前 4 字节位移低位先发、接着 2 字节速度、末字节 0x00。出厂默认节点 ID 是 0x7F,控制器发 0x01 0x00 就能启动所有节点,或者发 0x01 0x7F 单独启动这一台。
问:德敏哲 CANopen 位移传感器读到 33538,实际位移是多少?
答:原始码值乘分辨率就是实际位移。位移码值 33538、分辨率 0.005mm 时,对应 167.69mm。原始数据是低位先发的,拼字节的时候记得按低字节在前拼,拼反了数就完全不对,而且看起来还挺像那么回事,特别容易蒙过去。
问:CANopen 位移传感器数值跳变,是干扰还是地址冲突?
答:跳变和收不到报文是两码事。跳数多半是干扰或供电问题:供电纹波大、屏蔽没接好、和动力线同走一根桥架都会跳,屏蔽要焊在插头外壳上、只在控制器那一端接地。完全收不到报文才先查地址冲突和终端电阻。两个都排不掉,再用分析仪抓帧看错误计数。
问:闸门开度这种单点反馈,CANopen 用哪一档合适?
答:单磁块异步档。一根测杆一个磁环,启动后传感器自己按事件计时器周期上报位置,不用配 SYNC,配置项少。油缸定位、闸门开度这类单点位置反馈用这一档就够;要两个测点做差值比较的,才需要上同步档。
问:异步档要不要在 PLC 里写同步逻辑?
答:不用。异步档传感器自己按周期推数据,PLC 侧只做两件事:收帧、解析。需要对齐节拍做多轴联动的场合,才要换成同步档并在 PLC 里发 SYNC。选档之前先把测点数量和多轴联动要求想清楚,比装完再改省事。
CANopen位移传感器单磁块异步通讯的节点 ID 规划、PDO 解析与周期设置,易测电气位移传感器工程师欢迎您的咨询。
推荐文章
- 磁致伸缩位移传感器原理:扭转波是怎么被听出来的[2026-09-29]
- 德敏哲CANopen位移传感器通讯配置范例详解[2026-09-24]
- 注塑机顶针电子尺震动问题与现场加固办法[2026-09-24]
- CANopen位移传感器事件计时器SDO配置详解[2026-09-24]
- 位移传感器接口从模拟量走向总线-产线升级内容要点详解[2026-09-24]

