[发明专利]TCP/IP协议下Modbus设备网络通信的方法有效

专利信息
申请号: 201310553637.9 申请日: 2013-11-08
公开(公告)号: CN103561032A 公开(公告)日: 2014-02-05
发明(设计)人: 朱维红;王冬雪;曹彦;丁少威;田晓亮 申请(专利权)人: 山东大学
主分类号: H04L29/06 分类号: H04L29/06
代理公司: 济南金迪知识产权代理有限公司 37219 代理人: 许德山
地址: 250100 山*** 国省代码: 山东;37
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: tcp ip 协议 modbus 设备 网络 通信 方法
【说明书】:

技术领域

发明涉及一种TCP/IP协议下Modbus设备网络通信的方法,属于网络通信技术领域。

背景技术

在工业通信领域,TCP/IP协议是互联网最基本的网络通信协议,Modbus协议是一种工业通信和分布式控制系统协议,已广泛应用到工业控制当中,其中Modbus-RTU最为常用。

Modbus协议存在一定的局限性,设备采用查询-回应的通信机制,协议中常用功能码为01-06号。若不同的功能码之间查询报文发送时间间隔过小,查询报文和回应报文就会阻塞在一个Modbus设备中,甚至产生碰撞,使得通信正确率大幅度下降。系统实测每台Modbus设备的每个功能码查询-回应过程大约用时1-3秒,这种局限性使得含有大量Modbus设备的监控系统的数据实时性下降,通信效率降低。

综上所述,对于含有大量Modbus设备的监控系统来说,采集数据的实时性下降,系统报警产生大量延时,系统的安全性下降。另外,鲍文昕发表的《RS485/MODBUS数据采集网络在自动测报系统的应用研究》一文中指出,为了使主机与设备稳定的通信,485线上可挂载的设备是有限的,一般可以挂在32台,我们的系统利用DTU实现无线通信,避免了RS485传统布线的局限性。

发明内容

为了克服现有技术存在的缺陷和不足,本发明提供了一种TCP/IP协议下Modbus设备网络通信的方法,以达到保证Modbus设备采集数据实时性、增强网络通信效率的效果。

本发明的技术方案如下:

一种TCP/IP协议下Modbus设备网络通信的方法,由以下系统来实现,该系统包括PC平台、多路Modbus设备和多路DTU,其中Modbus设备和相应的DTU通过485线相连接,DTU通过互联网(Internet)和PC平台进行通信,该方法步骤如下:

1)PC平台软件设置固定IP和端口号,准备发送和接收Modbus设备数据:

a、系统在PC平台通过软件同时设置多个PC端口号,每个PC端口与N台Modbus设备进行通信,其中0<N<=100,以满足大量Modbus设备的需求;

b、软件编程平台选择C#+Winform,编写Windows窗体应用程序作为服务器,利用DOTNET框架的网络通信技术完成网络通信,引用System.Net.Socket命名空间,初始化UdpClient类的实例,并将它绑定到所提供的某个PC端口号(假设为8000),再使用UdpClient类下的方法Receive()接收由Modbus设备发送的UDP数据报;

2)PC接收DTU发送的心跳包:

每台DTU设置不同的心跳包,心跳包的内容代表Modbus设备的设备号,由一个字节组成(01H-64H),PC端口(即号为8000的端口)接收与其通信的所有DTU心跳包,并锁定DTU的端口号和IP,计算出Modbus设备的数量N;

3)发送线程发送01号功能码查询报文:

(a)引用System.Threading命名空间,使用new Thread(new ThreadStart(send))实例化一个发送线程,执行send()发送数据方法(send方法为向Modbus设备发送查询报文),以轮询PC端口号(8000)下所有Modbus设备的01号功能码查询报文,使用函数sleep(T*1000/N)来控制所有Modbus设备之间的发送间隔,其中T是Modbus设备的每个功能码查询-回应过程的最大用时,为3S,N是与PC端口(8000)通信的Modbus设备的数量;

(b)接收线程接收N个Modbus设备的回应报文并进行报文的解析;

4)重复步骤3),依次发送02-06号功能码查询报文;

完成6次通信过程后,01-06号功能码查询报文全部发送完毕,接收线程完成N个Modbus设备数据的接收工作;

5)重复步骤3)和步骤4),继续完成下次所有功能码的数据查询和接收工作。

所述的DTU是无线传输模块,实现报文无线传输功能。

本发明中步骤1)的处理,使用发送和接受两个线程,使得查询报文和回应报文得到了几乎同步的处理,提高了的程序的资源利用效率,程序响应更快,缩短了运行时间;步骤3)的处理,用sleep(T*1000/N)函数来处理Modbus协议中查询-回应这个过程中的局限性,提供设备足够的请求回应时间,避免了查询报文和回应报文的阻塞碰撞,既提高了通信的正确率,又保证了设备数据的实时性。

本发明的有益效果是:

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东大学,未经山东大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201310553637.9/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top