如何计算在MODBUS协议中传送一帧数据时所需的时间?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何计算在MODBUS协议中传送一帧数据时所需的时间?相关的知识,希望对你有一定的参考价值。

1.波特率是每秒的比特数。
2.modbus通讯协议主要通讯方式为轮询,每两次通讯直接的间隔要大于一问一答数据传输时所需时间的总和。
3.传输一包数据所用的时间:(11【起始位+数据位+校验位+停止位】)*(包数据字节数【+7】)/波特率-------7为modbus_RTU协议的包头包尾间隔,modbus_ascII协议不用加7

先这样
参考技术A 传送一帧数据时所需的时间:
t=(开始位1+数据位7或8+奇偶效验位+停止位)x 帧数据总长度(即字节数)/波特率

MODBUS 超时时间计算

MODBUS 中两个超时:

1、两帧之间超时时间为3.5字符  2、一帧数据中每个字符超时时间为1.5字符

MODBUS 中处理一个字符相当于串口处理一帧。

超时时间根据通信波特率计算:

  bps = bit / s = 位 每 秒!  

  串口一帧数据常用的通信格式:开始位(1位) + 数据位(8位) + 校验位(0位) + 停止位(1位)

  9600bps 的波特率下,串口发送数据为 9600/10 = 960 字符/秒;

  每个字符对应时间为 1s / 960 ,3.5字符时间为 3.5 * 1 / 960 = 0.0036458 s = 3.6458 ms

网上资料指明,在通信速率等于或低于 19200 bps 时,这两个定时必须严格遵守;
对于波特率大于 19200 bps 的情形, 应该使用 2 个定时的固定值 :

  字符间超时时间(t1.5)为 750µs ,

  帧间的超时时间 (t1.5) 为 1.750ms 。

以上是关于如何计算在MODBUS协议中传送一帧数据时所需的时间?的主要内容,如果未能解决你的问题,请参考以下文章

运行时错误:424:当我尝试达到范围并使用范围数据时所需的对象

MODBUS 超时时间计算

modbus RTU通讯如何通过一帧数据读取多个地址

如何下载安装SCCM服务器时所需的必须软件?

将数据从 js 发送到 php、php 到 mysql 以及 REST json 响应时所需的正确编码/转义/htmlentities 是啥

如何设置单击特定单选按钮时所需的选择表单?