一种工业设备Modbus串行通信的方法技术

技术编号:22060526 阅读:32 留言:0更新日期:2019-09-07 17:59
本发明专利技术公开了一种工业设备Modbus串行通信的方法,提出一种基于云的服务架构和对应的通信机制,Modbus从工业设备通过DTU连接互联网与云服务主动建立TCP连接,然后云服务利用建立的连接反向向从设备发送指令,以实现Modbus的主从通信机制,解决了用可伸缩的云服务模式连接大量Modbus设备;SlaveID和IP地址不足以标识一个设备同时由于数据的不兼容,大量的互联网数据处理工具很难直接用于Modbus数据等问题。

A Method of Modbus Serial Communication for Industrial Equipment

【技术实现步骤摘要】
一种工业设备Modbus串行通信的方法
本专利技术涉及云和互联网环境下的工业设备服务架构,特别涉及工业设备Modbus串行通信的方法。技术背景Modbus是一种在工业自动化领域广泛使用的协议。现存大量的工业设备支持Modbus协议,并通过串行口与外界交换数据。这些设备往往运行在一个点对点或者小规模的串口网络上。设备用1-255的SlaveID作为标识,并通过主-从模式发送指令以及交换数据。指令由主设备发出,从设备收到指令后执行操作,返回结果或相应的数据。近年来,随着互联网的发展,对于运行于互联网云服务上的监控系统(主设备),如何连接并操作串口Modbus设备渐渐成为工业远程监控的最大的挑战,比如虚拟串口需要系统级别的设置,并且需要占用一台专用机器,难以实现用可伸缩的云服务模式连接大量Modbus设备;其次,互联网环境需要连接大量来自不同网络的设备,SlaveID和IP地址都不足以标识一个设备;还有,由于数据的不兼容,大量的互联网数据处理工具很难直接用于Modbus数据。
技术实现思路
本专利技术为解决上述问题,提出一种基于云的服务架构和对应的通信机制。Modbus从工业设备通过DTU连接互联网与云服务主动建立TCP连接,然后云服务利用建立的连接反向向从设备发送指令,以实现Modbus的主从通信机制,具体实现如下所述:一种工业设备Modbus串行通信的方法,如下所述:云服务端作为虚拟的Modbus主设备运行,并暴露出一个公网可以访问的IP地址和对应的端口,用于接收来自从设备的TCP连接,包括如下步骤;S1:工业Modbus设备通过DTU连接互联网,并设置将串口通过TCP协议连接到云服务的公网IP和端口上;S2:发送连接请求:由工业Modbus从设备在没有接收到任何指令的情况下主动发送一个请求,如果从设备是可编程的,通过运行于设备上的程序实现该请求;如果从设备是不可编程的,通过DTU配置实现该请求;S3:建立初始连接:S3.1:步骤S2所述请求触发DTU向指定的云服务端建立连接;S3.2云服务端接收到TCP连接后,记录该设备的SlaveID并丢弃该请求,保持TCP连接;优选的,在步骤S3中,云服务端使用互联网字符串格式ID,来标示Modbus设备,从设备需要将自己对应的字符串ID写入自己的Modbus的16位寄存器中的一个约定的位置,在建立初始连接之后,云服务会首先用Modbus命令向从设备发出请求,读约定的Modbus寄存器,并用返回数据拼出字符串ID以确定从设备身份。优选的,云服务端对每一个设备有配置,记录每个参数的寄存器地址和数据格式,以将数据翻译成互联网数据格式。优选的,所述互联网字符串格式包括但不限于CUID格式;所述互联网数据格式包括但不限于JSON格式。综上所述,由于本专利技术采用了上述技术方案,本专利技术具有以下技术效果与优点:1、实现了用可伸缩的云服务模式连接大量Modbus设备,通过虚拟串口方法,解决了用以太网Modbus的方式,由于DTU的动态IP,互联网防火墙和NAT网关的原因,导致云服务基本无法发起向DTU的连接问题。2、实现了互联网环境需要连接大量来自不同网络的设备,SlaveID和IP地址都不足以标识一个设备。3、Modbus数据是基于字节的数据,本专利技术通过云服务端作为虚拟的Modbus主设备,兼容了Modbus服务端与互联网采用的基于文本的数据格式(比如JSON,XML)并不兼容的问题,使得大量的互联网数据处理工具可以直接用于Modbus数据。附图说明图1为本专利技术的流程图。图2为本专利技术标示Modbus设备的流程图具体实施方式如图1所示的一种工业设备Modbus串行通信的方法,如下所述:云服务端作为虚拟的Modbus主设备运行,并暴露出一个公网可以访问的IP地址和对应的端口,用于接收来自从设备的TCP连接,包括如下步骤;S1:工业Modbus设备通过DTU连接互联网,并设置将串口通过TCP协议连接到云服务的公网IP和端口上;S2:发送连接请求:由工业Modbus从设备在没有接收到任何指令的情况下主动发送一个请求,如果从设备是可编程的,通过运行于设备上的程序实现该请求;如果从设备是不可编程的,通过DTU配置实现该请求;S3:建立初始连接:S3.1:步骤S2所述请求触发DTU向指定的云服务端建立连接;S3.2云服务端接收到TCP连接后,记录该设备的SlaveID并丢弃该请求,保持TCP连接;如图2所述,在步骤S3中,云服务端使用互联网常用的字符串ID(例如CUID格式)来标示Modbus设备,从设备需要将自己对应的字符串ID写入自己的Modbus的16位寄存器中的一个约定的位置(例如地址0-12),在建立初始连接之后,云服务会首先用Modbus命令向从设备发出请求,读约定的Modbus寄存器,并用返回数据拼出字符串ID以确定从设备身份。例如,约定设备的16位寄存器0-12存放设备标识,格式为CUID字符串,设备SlaveID:1在Modbus寄存器中的数据:寄存器地址数据0636A16C642326336A7846830530306307177A7286D6E93833103169113772126E00云服务发出的Modbus读指令:01040000000C<CRC>从设备返回的数据转换成字符串:1cjld2cjxh0000qzrmn831i7rn云服务端对每一个设备有配置,记录每个参数的寄存器地址和数据格式,以将数据翻译成互联网数据格式。以JSON格式为例,配置和转换结果例子如下:所述互联网字符串格式使用CUID格式;所述互联网数据格式使用JSON格式。以上实施方式仅用于说明本专利技术,而并非对本专利技术的限制,有关
的普通技术人员,在不脱离本专利技术的精神和范围的情况下,还可以做出各种变化与变型,因此所有等同的技术方案也属于本专利技术的范畴,本专利技术的专利保护范围应由权利要求限定。本文档来自技高网
...

【技术保护点】
1.一种工业设备Modbus串行通信的方法,其特征在于,包括如下步骤:云服务端作为虚拟的Modbus主设备运行,并暴露出一个公网可以访问的IP地址和对应的端口,用于接收来自从设备的TCP连接,包括如下步骤;S1:工业Modbus设备通过DTU连接互联网,并设置将串口通过TCP协议连接到云服务的公网IP和端口上;S2:发送连接请求:由工业Modbus从设备在没有接收到任何指令的情况下主动发送一个包含SlaveID的Modbus请求,如果从设备是可编程的,通过运行于设备上的程序实现该请求;如果从设备是不可编程的,通过连接设备串口的DTU(data transfer unit)的Modbus.RTU配置实现该请求;S3:建立初始连接:S3.1:步骤S2所述请求触发DTU向指定的云服务端建立连接;S3.2云服务端接收到TCP连接后,记录该设备的SlaveID并丢弃该请求,保持TCP连接;S3.3云服务端利用该连接持续向DTU发送Modbus指令。

【技术特征摘要】
1.一种工业设备Modbus串行通信的方法,其特征在于,包括如下步骤:云服务端作为虚拟的Modbus主设备运行,并暴露出一个公网可以访问的IP地址和对应的端口,用于接收来自从设备的TCP连接,包括如下步骤;S1:工业Modbus设备通过DTU连接互联网,并设置将串口通过TCP协议连接到云服务的公网IP和端口上;S2:发送连接请求:由工业Modbus从设备在没有接收到任何指令的情况下主动发送一个包含SlaveID的Modbus请求,如果从设备是可编程的,通过运行于设备上的程序实现该请求;如果从设备是不可编程的,通过连接设备串口的DTU(datatransferunit)的Modbus.RTU配置实现该请求;S3:建立初始连接:S3.1:步骤S2所述请求触发DTU向指定的云服务端建立连接;S3.2云服务端接收到TCP连接后,记录该设备的SlaveID并丢弃该请求...

【专利技术属性】
技术研发人员:张凯李康
申请(专利权)人:广西盟创智慧科技有限公司
类型:发明
国别省市:广西,45

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1