网站地图
技术支持

德敏哲CANopen事件计时器怎么改(SDO配置)

发布时间:2026-08-08 点击次数:0

在用德敏哲CANopen位移传感器做总线集成时,有一个参数经常被忽略,却很影响整条总线的稳定——它就是“CANopen事件计时器”(CAN Event Timer)。这篇就按厂家的配置范例,把怎么改、改完怎么存进EEPROM、以及node-id对不上的时候怎么反查,一步步讲清楚。

为什么要把事件计时器从1ms改掉

传感器出厂默认的事件计时器是1ms,意思是它大约每一毫秒就往总线上发一次事件触发类的报文。在只挂一两个节点、通信不密的时候没什么感觉;可一旦一条CAN总线上并联的传感器多了,或者主控轮询很频繁,1ms的频率会把总线占得满满当当,其他节点的报文被挤、延迟变大,严重的还会丢帧。实际项目里一般会把事件计时器调到几十毫秒一档,比如50ms,总线负载立刻就下来了,位置数据该有的也都有。

改事件计时器:先发一个SDO

控制器要先给传感器发一条SDO(服务数据对象),告诉它“把事件计时器改成50ms”。这条SDO的三个关键字段是:索引 0x1800、子索引 0x05、数据 0x32(十进制就是50,代表50ms)。传感器收到后会回一条SDO,表示“事件计时器已经改了、也生效了”——注意,这时候它只是改在了运行参数里,还没存进EEPROM。如果这时候传感器掉电,再上电就会回到改之前的设置。

把新值存进EEPROM,掉电不丢

要让改动掉电也不丢,控制器得再补一条SDO,把当前值写进EEPROM。这条SDO的索引是 0x1010、子索引 0x01、数据是 0x73 0x61 0x76 0x65(这四个字节其实就是英文“save”的ASCII)。传感器回一条SDO,就表示存好了。到这一步,事件计时器才算真正改定,下次掉电再上电也能从EEPROM里读回新值。

控制器 传感器 1) SDO 0x1800/05 = 0x32 (改50ms) 2) 传感器回SDO:已更改 3) SDO 0x1010/01 = save (存EEPROM) 4) 传感器回SDO:已储存

cob-id 怎么算,node-id 对不上怎么办

上面说的SDO收发,靠的是cob-id来寻址。传感器作为从节点,它的接收cob-id = 0x600 + node-id,发送cob-id = 0x580 + node-id。所以只要知道node-id,就能拼出正确的报文ID。

如果不确定手上的传感器node-id是多少,有个很直接的办法:把传感器掉电再上电,上电瞬间它会主动发一条EMCY报文,这条报文的cob-id减去 0x80,剩下的就是它的node-id。比如看到EMCY的cob-id是 0xFF,那 node-id 就是 0x7F(十进制127,也是很多德敏哲传感器的出厂默认)。

现场常问的几个问题

问:改了事件计时器,为什么一断电又回去了?
答:只发了第一条SDO改运行值,没发第二条存EEPROM。运行参数掉电即丢,必须补一条0x1010/01的save指令才会固化。
问:一条总线上挂了好几个传感器,事件计时器要一致吗?
答:不强制一致,但建议统一调到差不多的档位,方便主控规划轮询节奏,也避免某个节点发得太密把总线占满。
问:node-id重复会怎样?
答:两个节点node-id一样,cob-id就撞车,报文会互相打架、主控收不到正确数据。上电看EMCY反查node-id,确保总线上不重复。

小结

改事件计时器本身不复杂,就是“一条SDO改运行值 + 一条SDO存EEPROM”两步走。关键是别漏掉第二步存EEPROM,否则一掉电前面白改。总线节点多的项目,建议把事件计时器统一调到合适的档位,总线会稳很多。

想在站点里接着看

想了解具体产品参数和安装方式,可以到 易测电气产品中心 查看磁致伸缩位移传感器的几个系列。更多现场应用写法,也欢迎翻看网站上的其他技术文章。

易测电气欢迎您的咨询。

版权所有:深圳市易测电气有限公司 备案号:粤ICP备19052563号 网安粤公网安备 44030602003587号 技术支持:星海互联