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

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

发布时间:

两磁块的场合,德敏哲 Germanjet 194 系列 CANopen 磁致伸缩位移传感器一根测杆上装两个磁环,同时测两个位置:比如液压缸的活塞位置再加一个联动件的位置,或者一台设备上的两个行程端点。

硬件上是「一根杆、两个磁块」,软件上是「一个节点、两路 PDO」——PDO1 送磁块一,PDO2 送磁块二。其余流程跟单磁块同步版一模一样,所以这一篇只讲两个磁块带来的差别。

第一次看这套报文,建议先翻 单磁块-同步通讯范例 ,那里把每一列、每一帧都拆开讲过。

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

控制器

0x080

0

n/a

SYNC 讯息

5

传感器

0x1FF

7

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

磁块一

6

传感器

0x2FF

7

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

磁块二

7

控制器

0x080

0

n/a

SYNC 讯息

8

传感器

0x1FF

7

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

磁块一

9

传感器

0x2FF

7

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

磁块二

两个磁块和单磁块差在哪

只差三处:启动后返回的是两帧 PDO 而不是一帧;PDO2 的 cob-id 是 0x2FF(=0x200 加 node-id 0x7F);两路数据区各自独立,互不覆盖。

每一帧的格式没变:长度 7 字节,前 4 字节位移、接着 2 字节速度、最后 1 字节 0x00,位移和速度仍然低字节先发。

两路读数各自怎么算

换算方法完全一样。例如收到位移数据 0x0B 0x83 0x00 0x00,拼起来是 0x0000830B=33547,分辨率 0.005mm 时为 33547×0.005=167.735mm;另一路同法换算,只是取自 PDO2。

装第二个磁块要盯的三件事

第一是间距。两个磁块靠得太近会互相干扰,量程标定也会打架,安装前先跟厂家确认这一款允许的最小间距。

第二是零位。零位是相对杆端定义的,两个磁块共用同一根杆,换杆等于两路零位一起变——现场换尺必须把两路重新标定,只标一路的话另一路的读数会整体偏移。

第三是别只解 PDO1。控制器侧只挂了一个 TPDO 回调、只认 0x1FF 的时候,第二路数据一直在总线上跑,只是没人收。排查「第二个位置读不到」先看这里,不要一上来就怀疑传感器。

canopen接线图

canopen组网结构图

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

常见问题

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

两磁块的场合,德敏哲 Germanjet 194 系列 CANopen 磁致伸缩位移传感器一根测杆上装两个磁环,同时测两个位置:比如液压缸的活塞位置再加一个联动件的位置,或者一台设备上的两个行程端点。 硬件上是「一根杆、两个磁块」,软件上是「一个节点、两路 PDO」——PDO1 送磁块一,PDO2 送磁块二。

相关资料推荐