用CANopen磁致伸缩位移传感器的现场,经常会遇到一种情况:数字信号,按理说比模拟量抗干扰,结果读数跳得比模拟量还厉害,甚至通讯中断。原理上数字信号确实抗干扰更强,但前提是细节处理到位。细节没做好,数字信号反而更容易出问题,而且不好查。
为什么数字信号也会跳
数字信号靠电平高低来传"0"和"1",现场干扰如果强到把电平打翻,一个bit读错,数据就不对了。CANopen是差分信号,两根线(CAN_H、CAN_L)互为参考,理论上能抵消共模干扰,但差分只对共模干扰有效。如果现场有很强的电磁干扰、接地不当、或者终端电阻没接对,差分也会失效。
还有一个更隐蔽的点:CANopen是实时总线,节点之间靠报文周期通讯,一旦有节点掉线或者报文发不出去,主站可能就一直收到旧值,看起来像是"读数卡住不动",其实不是位置不动,而是通讯断了、数据不刷新。这类问题比直接的跳变更难发现。
容易出问题的几个细节
- 终端电阻:CAN总线两端必须各接一个120Ω终端电阻。不接或者只接一端,信号在末端反射,通讯就会出问题,表现就是数据时好时坏、偶尔掉线。两个终端电阻缺一不可。
- 节点号设置:每个节点的ID不能重复,重复了设备就冲突,谁的数据都不对。改节点号时还要注意拨码开关或者软件配置保持一致。
- 波特率匹配:传感器、PLC、上位机的波特率必须一致,比如500K就都500K。不一致时通讯完全建立不起来,或者偶尔通偶尔断。
- 线缆选择:CAN线要用双绞屏蔽线,两根信号线绞在一起,抗干扰好。不能用普通平行线随便接。
- 线缆敷设:CAN线和动力线、变频器输出线要分开走,不要绑在一个线槽里。必须交叉时垂直交叉,不要长距离平行。
- 屏蔽层接地:屏蔽层要单端接地(接控制器端),不能两端都接,两端都接会形成地环路,反而引入干扰。
- 供电质量:传感器供电要稳定,和动力电源分开供,避免共用一个大功率设备的电源,电压波动会影响通讯。
数字信号比模拟量到底强在哪
把上面这些细节都做对了,CANopen的优势才真正发挥出来。它和模拟量的本质区别是:模拟量把位置变成一个连续电压(比如0-10V)传出去,线上一有干扰,电压就跟着偏,位置就跟着偏,而且你很难判断到底偏了多少。数字信号是把位置编码成一串0和1,只有当一个bit被彻底打翻才会出错,而且CANopen自带CRC校验,出错的数据会被丢弃、重新发,主站收到的一直是正确的。
所以同样的干扰,模拟量会"带着错误一起跑",而CANopen是"错了就重来"。这就是为什么规范接好的CANopen,抗干扰远优于模拟量。但也因此,只要有一个细节没做对,CANopen就掉线,而你肉眼看不出是哪个环节。
出问题时的排查顺序
- 先看终端电阻:两端120Ω是不是都接上了。
- 再查节点号和波特率:和总线上的其他设备比对一遍。
- 查接线:CAN_H、CAN_L有没有接反,屏蔽层接地方式对不对。
- 查布线:有没有和动力线长距离平行。
- 最后用示波器看CAN波形,确认信号质量,波形畸变严重说明干扰确实进了线路。
CANopen传感器大部分"跳变、掉线"问题,最后都能归结到终端电阻、节点配置和布线这三件事上。把这几点做规范,数字信号的优势才能真正发挥出来。易测电气提供CANopen磁致伸缩位移传感器的现场调试指导,欢迎咨询。