发布于 2010-11-08 19:30:59
23楼
前段时间是在厂里调试,没过几天设备发出去了,就一直中断调试。
这两天在现场,终于把这个问题搞定了,顺便总结一下,也给帮忙的各位一个交待。
原程序的CP341作为MODBUS主站和5个仪表通讯,通讯程序的发送信号的触发是按通信块的完成或错误来触发下一个站点的;当所有的从站都正常时通讯没有问题,但当其中有一个掉电或故障,则通讯中断。
期间尝试了对故障站点判断并屏蔽,中做成功一两个站故障通讯正常,多个站点故障同样会有问题。而且判断的程序比较复杂且冗长。
最终还是选择超时重新触发,并不完全基于发送块的完成、错误等信号,超时的时间设置按工艺要求取,但一般不能低于300ms,低于这个数据会有问题(我的系统有,不知其他的系统上会不会出现问题?);但是有意思的是如果某台从站故障,它紧接的下一个站号会有通讯问题,其他的一切正常。
查了好久,终于在硬件配置中把replay monitor time从默认的2000ms改为小于超时的时间,发现一切情况下通讯OK!
通信的事情差不多可以告一段落,感谢楼上兄弟姐妹的热心支持,特发此贴以作小结。
JUST DO IT