第一次做MODBUS通信,遇到一个很奇怪的问题。
CP341做主站,程序是按照西门子给的例子做的。先用CP341接上电脑的串口,TX灯一直在闪,而发送的报文,也能用串口调试工具收到;然后用电脑和从站连接,用刚才收到的报文发送给从站,从站也能响应数据,而且是正确的,现在把CP341接上从站,并且PC的串口也并在通信线上,TX灯闪,RX灯也闪,调试工具能接受到主站发送的报文,也能看到从站发送的报文,可是只能持续几秒钟,TX,RX灯都不闪了,串口调试软件也不能接受到报文了,CP341在线看,16#0830这个错误代码。
问题1:用341直接连电脑(加了232转换器的),FB8发送出来的报文,是正常的,PC能接受到;但是监视程序FB8的DONE一直为0,而故障位为1,然后又是0,那个状态字是:16#0830,FB8的DONE这个位,应该是报文发送完毕以后,就应该置1的啊,就算没从站没接,或者没响应数据,那么FB8这个完成位该置1啊,因为PC的调试工具都能接受到正确的报文!
问题2:CP341和从站连接以后,为什么前几秒钟TX,RX灯都在闪,而且串口调试工具也能接受到双方发送和响应的报文,后来就停了呢,而且只有给CPU从新上电才能再次发送。
谢谢大侠们的赐教啊,搞了几天了,一直没搞明白。
产品版区:SIMATIC S7-300(F)/S7-400(F/H/FH)
悬赏分:30 | 解决时间:2010-12-28 22:21:40 | 提问者: 罹小岚 - 学长  第2级
最佳答案
回答者:
依然
-
中级工程师  第10级
2010-12-16 08:19:34
提问者对于答案的评价:
谢谢,不过依然没解决。