永发信息网

Modbus RTU 帧接收完毕如何判断

答案:3  悬赏:40  手机版
解决时间 2021-04-27 09:30
  • 提问者网友:蓝琪梦莎
  • 2021-04-26 14:28
Modbus RTU 帧接收完毕如何判断
最佳答案
  • 五星知识达人网友:时间的尘埃
  • 2021-04-26 15:33
modbus通讯,总线上只有一个主站,如果主、从站在3.5个字符的时间内没有收到数据,判断接受结束。如果是485总线,半双工通讯,由于是问答式的协议,所以每次你收到数据处理完后延时3.5个字符的时间在发。适当的加长些时间是可以的,数据的处理时间相对而言可以忽略。
全部回答
  • 1楼网友:毛毛
  • 2021-04-26 17:45
判断一帧是否接收完,是根据收到的数据长度来处理的。modbus是问答式的,你发送数据的时候就应该知道收多少了!追问但是我要先接受完一帧数据,才去处理这帧数据呀,RTU模式也不是定长的追答看来你对modbus的理解还不够。收到的数据包的第3个字节就表示数据内容长度,全长就是这个长度+5;当然05、16写命令除外追问你的意思我知道,但是我要接收一帧完成后才去分析这帧数据。你的方法在接收某些字节(第一和第3)后还要去分析它的字长,这样可能会影响下一字节的接收。
  • 2楼网友:街头电车
  • 2021-04-26 16:35
一般不会的影响下一帧的接收。
modbus通讯,总线上只有一个主站,如果从站在3.5个字符的时间内收到了数据,那这个一定不是主站发出来的,否则就是主站出了问题、或者数据被干扰了。
如果是485总线,半双工通讯,由于是问答式的协议,所以每次间隔你要考虑收、发两帧数据时间,19200的波特率的话,时间也至少在百毫秒这个数量级,适当的加长些时间就可以,数据的处理时间相对而言可以忽略。
232连接的话,间隔大于3.5个字符时间就够了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯