Modbus接受数据的疑惑!!

在编一个Modbus主站的招测程序,debug了调试结果,如下:
 发送数据strtemp: 04 01 00 00 02 BC 3C 8E
 接受数据4
 StrArray接受数据0:4
 接受数据1
 StrArray接受数据1:1
 接受数据58
 StrArray接受数据2:58
 接受数据F
 StrArray接受数据3:F
 接受数据0
 StrArray接受数据4:0
 接受数据0
 StrArray接受数据5:0
 接受数据0
 StrArray接受数据6:0
 接受数据0
 StrArray接受数据7:0
 上下界:0---7
 接受数据0
 StrArray接受数据0:0
 接受数据0
 StrArray接受数据1:0
 接受数据0
 StrArray接受数据2:0
 接受数据0
 StrArray接受数据3:0
 接受数据0
 StrArray接受数据4:0
 接受数据0
 StrArray接受数据5:0
 接受数据0
 StrArray接受数据6:0
 接受数据0
 StrArray接受数据7:0
 接受数据0
 StrArray接受数据8:0
 接受数据0
 StrArray接受数据9:0
 接受数据0
 StrArray接受数据10:0
 接受数据0
 StrArray接受数据11:0
 接受数据0
 StrArray接受数据12:0
 接受数据0
 StrArray接受数据13:0
 接受数据0
 StrArray接受数据14:0
 接受数据0
 StrArray接受数据15:0
 接受数据0
 StrArray接受数据16:0
 接受数据0
 StrArray接受数据17:0
 接受数据0
 StrArray接受数据18:0
 接受数据0
 StrArray接受数据19:0
 接受数据0
 StrArray接受数据20:0
 接受数据0
 StrArray接受数据21:0
 接受数据0
 StrArray接受数据22:0
 接受数据0
 StrArray接受数据23:0
 接受数据0
 StrArray接受数据24:0
 接受数据0
 StrArray接受数据25:0
 接受数据0
 StrArray接受数据26:0
 接受数据0
 StrArray接受数据27:0
 接受数据0
 StrArray接受数据28:0
 接受数据0
 StrArray接受数据29:0
 接受数据0
 StrArray接受数据30:0
 接受数据0
 StrArray接受数据31:0
 上下界:0---31
 接受数据0
 StrArray接受数据0:0
 接受数据0
 StrArray接受数据1:0
 接受数据0
 StrArray接受数据2:0
 接受数据0
 StrArray接受数据3:0
 接受数据0
 StrArray接受数据4:0
 接受数据0
 StrArray接受数据5:0
 接受数据0
 StrArray接受数据6:0
 接受数据0
 StrArray接受数据7:0
 接受数据0
 StrArray接受数据8:0
 接受数据0
 StrArray接受数据9:0
 接受数据0
 StrArray接受数据10:0
 接受数据0
 StrArray接受数据11:0
 接受数据0
 StrArray接受数据12:0
 接受数据0
 StrArray接受数据13:0
 接受数据0
 StrArray接受数据14:0
 接受数据0
 StrArray接受数据15:0
 接受数据0
 StrArray接受数据16:0
 接受数据0
 StrArray接受数据17:0
 接受数据0
 StrArray接受数据18:0
 接受数据0
 StrArray接受数据19:0
 接受数据0
 StrArray接受数据20:0
 接受数据0
 StrArray接受数据21:0
 接受数据0
 StrArray接受数据22:0
 接受数据0
 StrArray接受数据23:0
 接受数据0
 StrArray接受数据24:0
 接受数据0
 StrArray接受数据25:0
 接受数据0
 StrArray接受数据26:0
 接受数据0
 StrArray接受数据27:0
 接受数据0
 StrArray接受数据28:0
 接受数据0
 StrArray接受数据29:0
 接受数据0
 StrArray接受数据30:0
 接受数据0
 StrArray接受数据31:0
 接受数据0
 StrArray接受数据32:0
 接受数据0
 StrArray接受数据33:0
 接受数据0
 StrArray接受数据34:0
 接受数据0
 StrArray接受数据35:0
 接受数据0
 StrArray接受数据36:0
 接受数据0
 StrArray接受数据37:0
 接受数据0
 StrArray接受数据38:0
 接受数据0
 StrArray接受数据39:0
 接受数据0
 StrArray接受数据40:0
 接受数据0
 StrArray接受数据41:0
 接受数据0
 StrArray接受数据42:0
 接受数据0
 StrArray接受数据43:0
 接受数据0
 StrArray接受数据44:0
 接受数据0
 StrArray接受数据45:0
 接受数据0
 StrArray接受数据46:0
 接受数据0
 StrArray接受数据47:0
 上下界:0---47
 接受数据0
 StrArray接受数据0:0
 接受数据0
 StrArray接受数据1:0
 接受数据0
 StrArray接受数据2:0
 接受数据B8
 StrArray接受数据3:B8
 接受数据A7
 StrArray接受数据4:A7
 上下界:0---4
 txtReceive: 4  1  58  F  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  B8  A7 
 细心看下,在接受的过程中有几个数组,我列出了上下界,而且在每一次招测,数组的上下界会变化,但是总数不变。有点不明白!麻烦谁能解释一下!

最佳答案

你是用什么做的?MsComm控件?接受的方式是什么呢,是OnComm事件吗?

 可能对方不是一次性将数据发送过来的。

提问者对于答案的评价:
是写在mscom_OnComm里的,rthreshhold参数改大点就可以了。我的偏小了,由于windows不是严格按时间执行的,要多任务切换。程序执行周期没准

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc272582.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 上午9:16
下一篇 2019年6月11日 上午9:16

相关推荐