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

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

发布时间:

德敏哲 Germanjet 19 系列 CANopen 磁致伸缩位移传感器在「两个磁块 + 异步」组合下的报文顺序。

两个磁块管的是「一次测两个位置」,异步管的是「不发 SYNC、传感器自己定时上报」。两件事叠在一起,最直接的后果是:每个定时周期会连着吐出两帧 PDO,控制器接收侧要按两帧的量留缓冲。

报文列的含义、EMCY 与启动帧的来路,单磁块-同步通讯范例 里写过,这里只讲这个组合特有的地方。

canopen系列

报文先后顺序

序号

发送者

cob-id

dlc

data

注

0

传感器

0xFF

0

n/a

EMCY 讯息 (电源启动)

1

控制器

0x000

2

0x01 0x00

启动所有节点

2

传感器

0x1FF

7

位移(4 字节), 速度(2 字节)

磁块一

3

传感器

0x2FF

7

位移(4 字节), 速度(2 字节)

磁块二

4

传感器

0x1FF

7

位移(4 字节), 速度(2 字节)

磁块一

5

传感器

0x2FF

7

位移(4 字节), 速度(2 字节)

磁块二

6

传感器

0x1FF

7

位移(4 字节), 速度(2 字节)

磁块一

7

传感器

0x2FF

7

位移(4 字节), 速度(2 字节)

磁块二

两个 PDO 是连着到的

启动之后,传感器每个定时周期发两帧:PDO1(cob-id 0x1FF)带磁块一,PDO2(cob-id 0x2FF)带磁块二。帧格式还是 7 字节——前 4 字节位移、接着 2 字节速度、最后 1 字节 0x00,低字节先发。

换算举例:位移原始值 0x02 0x83 0x00 0x00 即 0x00008302=33538,0.005mm 分辨率下为 167.69mm。

这个组合最容易出问题的地方

一是带宽。异步本身不带节拍,但两磁块意味着每秒帧数翻倍;总线已经跑到 500k 以上、节点又多的时候,先把定时周期放宽,别一上来就设到最短。

二是对时。两帧不是同一时刻采到的,中间隔着一帧的传输时间。要算两路差值、算倾角的场合,异步版会把传输抖动带进结果里,这种需求应该走同步版,让两帧落在同一个 SYNC 节拍上。

三是缓存。控制器写成「一次中断只读一帧」的,双 PDO 下必然长期丢一路;接收要用环形缓冲,再按 cob-id 分发到两路变量。

canopen接线图

canopen组网结构图

相关产品:Profinet/EtherCAT信号输出

常见问题

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

德敏哲 Germanjet 19 系列 CANopen 磁致伸缩位移传感器在「两个磁块 + 异步」组合下的报文顺序。 两个磁块管的是「一次测两个位置」,异步管的是「不发 SYNC、传感器自己定时上报」。两件事叠在一起,最直接的后果是:每个定时周期会连着吐出两帧 PDO,控制器接收侧要按两帧的量留缓冲。

相关资料推荐