技术支持 - 德敏哲Germanjet CANopen磁致伸缩位移传感器更改node-ID范例

德敏哲Germanjet CANopen磁致伸缩位移传感器更改node-ID范例

发布时间:

控制器与德敏哲Germanjet194系列 CANopen磁致伸缩位移传感器更改node-ID范例

假设传感器原本的 node-id 是 0x7F (127 dec),要把 node-id 改作 0x7E (126 dec)。

控制器须先向传感器发出 1 个 SDO 用来改变node-id,SDO 的索引为 0x300B,子索引为 0x00,数据为新 node-id (0x7E)。再发出另 1 个 SDO 用来把 node-id 存储至

eeprom,索引为 0x1010,子索引为 0x01,数据为 0x73 61 76 65。 详细的通讯协议如下:

报文先后顺序

序号

发送者

cob-id

dlc

data

注

1

控制器

0x67F

(=0x600+ node-id)

8

0x2F 0B 30 00 7E 00 00 00

向节点 0x7F 发出 SDO , 数据第 5 字节是 0x7E 。

2

传感器

0x5FE

(=0x580+ node-id)

8

0x60 0B 30 00 00 00 00 00

节点 0x7F 的 node-ID 已更 改为 0x7E ,并向传感器回 应 SDO 。

3

控制器

0x67E

(=0x600+ node-id)

8

0x2F 10 10 01 73 61 76 65

向节点 0x7E (不是 0x7F) 发出 SDO 存储 node-id 至 eeprom。cob-id = 0x600  + 0x7E = 0x67E 。

4

传感器

0x5FE

(=0x580+ node-id)

8

0x60 10 10 01 00 00 00 00

节点 0x7E 传感器回应 SDO 。

表里一行就是一条 CAN 报文。序号是报文的先后顺序;发送者写「控制器」还是「传感器」,表示这一帧由谁发出;cob-id 是报文标识符,括号里给的是它与节点号的关系(例如 0x600 加节点号、0x580 加节点号);dlc 是这一帧的数据长度,单位字节,最多 8 个;data 是十六进制数据,低字节在前;最后一列说明这一帧的作用。改参数时一般成对出现:控制器先发一帧写指令,传感器回一帧确认,看到确认帧才算真正写进去了。

完成以上通讯后,传感器的 node-id 已改作 0x7E 并存储至 eeprom,即使掉电,传感器亦能从 eeprom 取回 node-id (0x7E)。从此以后,传感器的 node-id 都是 0x7E。

若传感器原本的 node-id 不是 0x7F,请相应改变第 1 个 SDO 的 cob-id,cob-id = 0x600 + 传感器 node-id。若不确定传感器 node-id,可把传感器掉电再启动,传感器会发出 1 个 EMCY 报文,把 EMCY 报文的 cob-id 减去 0x80,就是传感器 node-id。

若要把 node-id 改作 0x7E 以外的值,请相应改变第 1 个 SDO 的数据第 5 个字节,该字节表示新 node-id 的值。第 3 个 SDO 的 cob-id 也要改变 ,cob-id= 0x600 + 新 node-id, 否则新 node-id 不会存储至 eeprom。

194CANOPEN磁致伸缩位移传感器

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

常见问题

德敏哲Germanjet CANopen磁致伸缩位移传感器更改node-ID范例

控制器与德敏哲Germanjet194系列 CANopen磁致伸缩位移传感器更改node-ID范例 假设传感器原本的 node-id 是 0x7F (127 dec),要把 node-id 改作 0x7E (126 dec)。

相关资料推荐