[发明专利]TCP/IP协议下Modbus设备网络通信的方法有效
申请号: | 201310553637.9 | 申请日: | 2013-11-08 |
公开(公告)号: | CN103561032A | 公开(公告)日: | 2014-02-05 |
发明(设计)人: | 朱维红;王冬雪;曹彦;丁少威;田晓亮 | 申请(专利权)人: | 山东大学 |
主分类号: | H04L29/06 | 分类号: | H04L29/06 |
代理公司: | 济南金迪知识产权代理有限公司 37219 | 代理人: | 许德山 |
地址: | 250100 山*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | tcp ip 协议 modbus 设备 网络 通信 方法 | ||
1.一种TCP/IP协议下Modbus设备网络通信的方法,由以下系统来实现,该系统包括PC平台、多路Modbus设备和多路DTU,其中Modbus设备和相应的DTU通过485线相连接,DTU通过互联网和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端口号,设该PC端口号为8000,再使用UdpClient类下的方法Receive()接收由Modbus设备发送的UDP数据报;
2)PC接收DTU发送的心跳包:
每台DTU设置不同的心跳包,心跳包的内容代表Modbus设备的设备号,由一个字节组成(01H-64H),PC端口即号为8000的PC端口接收与其通信的所有DTU心跳包,并锁定DTU的端口号和IP,计算出Modbus设备的数量N;
3)发送线程发送01号功能码查询报文:
(a)引用System.Threading命名空间,使用new Thread(new ThreadStart(send))实例化一个发送线程,执行send()发送数据方法,以轮询上述PC端口号下所有Modbus设备的01号功能码查询报文,使用函数sleep(T*1000/N)来控制所有Modbus设备之间的发送间隔,其中T是Modbus设备的每个功能码查询-回应过程的最大用时,为3S,N是与该PC端口通信的Modbus设备的数量;
(b)接收线程接收N个Modbus设备的回应报文并进行报文的解析;
4)重复步骤3),依次发送02-06号功能码查询报文;
完成6次通信过程后,01-06号功能码查询报文全部发送完毕,接收线程完成N个Modbus设备数据的接收工作;
5)重复步骤3)和步骤4),继续完成下次所有功能码的数据查询和接收工作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东大学,未经山东大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310553637.9/1.html,转载请声明来源钻瓜专利网。
- 上一篇:太阳光反射镜柔性镜膜
- 下一篇:地质形态插值的KM方法