故障现象:多台机相互与上位机通讯反复重启,死机现象。RS485通讯。
芯片是STM32F103RBT6
通讯协议:MODBUS RTU
通讯芯片是MAX485ESC
解决不掉这个问题我就要被开除了。
设备本身是个全桥电源,现在和触摸屏485通讯调节功率,远程开关机。协议也是才添加到程序里。问题是写某一个到寄存器里,就会死机。如果几台设备485并联就会死机反复重启复位,如同上电复位一样。搞了好几天,485也使用485专用的隔离模块,目前确定是程序内部问题,现请有经验的老师处理一下,解决后立马兑现。单台通讯可以读取和写入。2台就不能并联,一并就死机。通讯就失败。有意者联系我。272203534
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
从你的话: 问题是写某一个到寄存器里,就会死机。
看来你的程序是做为主站的。
1.先不要用你写的程序作主站。在电脑上安装个modbus测试软件作为主站,用于和其他的从站进行通信,看看能否正常。
2.如果用modbus测试软件作为主站时,能够与其他从站正常通信,
则检查你的主站程序中,发送逻辑是否是执行完一条读/写从站指令后,再执行下一条读/写从站指令的。
(不能上一次的读/写操作还未完成,就再次往线路上发指令,这会造成冲突)
如果modbus测试软件作为主站时也不能与其他从站进行正常通信,
则监控它们的通信数据,认真检查每一帧数据,找出与预期不符的通信帧,看是哪个站点发出的,再对应的解决。
一周热门 更多>