控制器与德敏哲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 。 |
完成以上通讯後,传感器的 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 。
