原文链接:https://blog.csdn.net/sunxboy/java/article/details/84499791

Modbus通讯时,需要连续读取多个现场设备的数据,虽然也编写了Modbus轮询的程序,但是有时还是无法正常通讯。有时虽然能够保证通讯,但是所有现场设备的轮询周期很长。

本文将从MBUS_CTRL的超时时间参数设置来说明超时时间设置的重要性。
Modbus通讯协议是单主多从的通讯协议,如果需要读取多个现场Modbus从站设备的数据时,需要自己编写Modbus轮询程序来实现,轮询时每次只能激活一个Modbus的读写功能块。以常见的主站读取从站的寄存器为例,主站发出请求需要8个字节,从站返回响应为5+2*n个字节。其中n为寄存器个数。

如果通讯速率为9600时,按照常规的Modbus RTU,8个数据位、1个停止位、偶校验方式,每传输1个字节数据需要的时间为:(8+1+1)/9600=1.04ms/Byte

因此,主站发出响应到从站返回数据的时间周期为:(8+5+2*n)1.04+T1+T2,其中n为寄存器个数,T1为从站的响应时间(如果是PLC,则为PLC的扫描时间),T2为通讯余量,一般为20~50ms。如果读取10个字的数据,从站响应时间为50ms,则整个周期为:(8+5+210)*1.04+50+50=134.32ms。因此,超时时间必须大于134.32ms,可以设置为150ms以上。

如果超时时间太短,响应不能完全返回,通讯会报错。

如果超时时间设置太长,按照上述例子,一共10个从站,每个从站读取10个字的数据,

如果超时时间设置为1s,如果有1个从站出现故障,则整个轮询周期为:1000+9*134.32=2208.88 ms。

同理,如果超时时间设为150ms,则整个轮询周期为:150+9*134.32=1358.88 ms。

因此,可以看出正确的超时时间设置可缩短整个轮询周期,不正确的设置,将导致通讯出错或整个通讯周期过长。

Modbus 超时时间设置相关推荐

  1. 聊聊ribbon的超时时间设置

    序 本文主要研究一下ribbon的超时时间设置 配置 实例 ribbon:ReadTimeout: 10000ConnectTimeout: 10000MaxAutoRetries: 0MaxAuto ...

  2. Socket超时时间设置

    你知道在 Java 中怎么对 Socket 设置超时时间吗?他们的区别是什么?想一想和女朋友打电话的场景就知道了,如果实在想不到,那我们就一起来来看一下是咋回事吧 设置方式 主要有以下两种方式,我们来 ...

  3. 修改服务器超时时间,服务器超时时间设置

    服务器超时时间设置 内容精选 换一换 在压测过程中能够提供自身性能数据的施压目标机器.管理执行机的节点.CPTS为用户的测试工程提供管理能力,事务.压测任务.测试报告的内容在同一个测试工程内共享复用, ...

  4. TCP 超时时间设置过长或 MTU 设置不合理会导致网络速度变慢吗

    是的,TCP 超时时间设置过长或 MTU 设置不合理都可能导致网络速度变慢. TCP 超时时间是指在发送数据之后,如果没有收到对端的应答,就会在超时时间后再次发送数据.如果超时时间设置过长,会导致发送 ...

  5. 联众服务器超时中断,http连接中客户端中断了请求,服务端会中断执行吗?超时时间设置?...

    由于http是基于tcp的,在tcp中,客户端中断了连接,服务端是无法感知的,只能通过发心跳包来检测,而显然我们的nginx是没有发心跳包的,所以,包括nginx,php-fpm都是不知道客户端已断开 ...

  6. 服务器时间修改连接超时时间,服务器设置网络连接超时时间设置

    服务器设置网络连接超时时间设置 内容精选 换一换 有以下几种现象:将制作好的SD卡插入开发者板并上电后,开发者板LED1与LED2灯状态信息异常.将制作好的SD卡插入开发者板,并通过USB方式连接Ub ...

  7. Feign Client的各种超时时间设置

    在Spring Cloud微服务架构中,大部分公司都是利用Open Feign进行服务间的调用,而比较简单的业务使用默认配置是不会有多大问题的,但是如果是业务比较复杂,服务要进行比较繁杂的业务计算,那 ...

  8. 如何计算ModBus超时时间?

    波特率:每秒钟通过信道传输的信息量称为位传输速率,也就是每秒钟传送的二进制位数,简称比特率.比特率表示有效数据的传输速率,用b/s .bit/s.比特/秒,读作:比特每秒. 如9600b/s:指总线上 ...

  9. httpClient 超时时间设置

    上周乐视网cms香港接口,数据刷新缓慢.香港运营人员一直在群里反馈tv端内容不更新. 我观察了下服务器,发现请求接口耗时很久500-6000ms.之前一般都是100ms左右. 导致很多线程一直在wai ...

最新文章

  1. AjaxControltoolkit(工具包)安装步骤说明
  2. java.lang.VerifyError
  3. Windows Mobile使用Web Service上传和下载二进制数据流
  4. Qt Creator使用3D材质
  5. Python入门4_之字典的使用
  6. java 兼容excel_Java解析Excel工具类(兼容xls和xlsx)
  7. .NetCore 2.1以后的HttpClient最佳实践
  8. mysql启多_MySQL启多个实例
  9. go语言服务器连接mysql,golang中连接mysql数据库
  10. 基于ActiveMQ的Topic的数据同步——初步实现
  11. C# 字符串拼接性能探索 c#中+、string.Concat、string.Format、StringBuilder.Append四种方式进行字符串拼接时的性能...
  12. [转]使用T4模板批量生成代码
  13. MVC5+EF6--1 创建Entity Framework数据模型
  14. 老司机 iOS 周报 #23 | 2018-06-18
  15. 微信小程序里面嵌套的h5使用微信sdk配置踩坑
  16. 用root登录亚马逊云
  17. jpa blob mysql_Spring让BLOB 和Clob数据操作变得简单易行
  18. 订阅新闻联播文字标题到邮箱
  19. 危化品厂区监控人脸识别/危化品识别EasyGBS+智能分析网关设备助力化工厂区安全生产
  20. spark的UI界面及调优

热门文章

  1. STI解读A:STI测量方法
  2. pandas_数据处理分析基本
  3. Qt 编译报错 error: invalid use of incomplete type 'class QXxx'
  4. linux 下的lsb_release -a 命令查询系统版本
  5. 天猫否认“大数据杀熟” 部分用户不买账联系消协:会员体系或受影响!
  6. linux驱动面试题整理
  7. es6 内置对象扩展rest, Arry 扩展方法Array.from(),find(), findIndex(),includes()
  8. 计算机系统中 使用二进制数的优势,大学计算机基础考试题库(含答案)
  9. Mac环境安装imagemagick及使用imagemagick拼接图片
  10. 清除maven仓库lastUpdated文件