CN112350914A - 基于MQTT云平台的Modbus通信方法及系统 - Google Patents
基于MQTT云平台的Modbus通信方法及系统 Download PDFInfo
- Publication number
- CN112350914A CN112350914A CN202011262709.0A CN202011262709A CN112350914A CN 112350914 A CN112350914 A CN 112350914A CN 202011262709 A CN202011262709 A CN 202011262709A CN 112350914 A CN112350914 A CN 112350914A
- Authority
- CN
- China
- Prior art keywords
- mqtt
- modbus
- gateway
- server
- thread
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40228—Modbus
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了一种基于MQTT云平台的Modbus通信方法及系统;所述方法包括:得到MQTT客户端;得到MQTT服务器;所述MQTT客户端建立与所述MQTT服务器的MQTT连接线程;所述网关建立MQTT线程,并建立与所述MQTT服务器的MQTT连接线程;所述网关建立Modbus线程,并建立与Modbus总线的Modbus连接线程,所述Modbus总线与Modbus设备建立连接;所述Modbus设备通过所述网关进行与所述MQTT服务器、所述MQTT客户端的数据传输;本申请实施例通过设置网关,实现Modbus设备与MQTT客户端的数据传输,即实现对Modbus设备的远程采集控制,不需要采用其他组件,只需采用网关并设置连接协议和线程,实现了Modbus设备的远程交流,过程简单,成本低,有利于智能化控制的发展。
Description
技术领域
本申请实施例涉及网关技术领域,尤其涉及一种基于MQTT云平台的Modbus通信方法及系统。
背景技术
目前,在智能控制领域中,大多采用有线控制来实现设备连接,其中主要是使用传统的工业控制总线,如PLC,BACNET,Modbus,lonwork等,如果需要远程采集数据或需要远程进行设备控制,其过程较为麻烦,须在本地安装主机,另外,需要安装远程插件才完成远程控制采集的功能,从而需要使用非常多的组件,使得成本非常高,不利于智能化控制的发展。
发明内容
本申请实施例提供一种基于MQTT云平台的Modbus通信方法及系统,以解决现有Modbus设备的远程控制需要安装较多的组件,使得过程较为麻烦且成本高的问题。
在第一方面,本申请实施例提供了一种基于MQTT云平台的Modbus通信方法,包括:
网关、Modbus设备、服务器和TCP客户端进行初始化;
所述TCP客户端建立MQTT线程,得到MQTT客户端;所述服务器建立MQTT线程,得到MQTT服务器;
所述MQTT客户端与所述MQTT服务器建立连接,连接成功则所述MQTT客户端建立与所述MQTT服务器的MQTT连接线程;
所述网关建立MQTT线程,并建立与所述MQTT服务器的MQTT连接线程;
所述网关建立Modbus线程,并建立与Modbus总线的Modbus连接线程,所述Modbus总线与Modbus设备建立连接;
所述Modbus设备通过所述网关进行与所述MQTT服务器、所述MQTT客户端的数据传输。
进一步的,所述Modbus设备通过所述网关进行与所述MQTT服务器、所述MQTT客户端的数据传输,包括:
所述Modbus设备将采集数据发送到所述网关,所述网关将所述采集数据发送到所述MQTT服务器,所述MQTT服务器将所述采集数据发送到所述MQTT客户端;
所述MQTT客户端将控制数据发送到所述MQTT服务器,所述MQTT服务将所述控制数据发送到网关,所述网关将所述控制数据发送到所述Modbus设备。
进一步的,所述Modbus设备将采集数据发送到所述网关,包括:
所述网关的Modbus接收缓存区进行初始化,并检测是否有采集数据;
若检测到采集数据,则判断采集数据是否符合Modbus格式;
若所述采集数据不符合Modbus格式,则重新加载采集数据;
若所述采集数据符合Modbus格式,则发送通知信息到所述Modbus设备,通知所述Modbus设备继续向网关发送采集数据。
进一步的,所述网关将所述控制数据发送到所述Modbus设备,包括:
检测Modbus总线的状态;
若Modbus总线忙碌,则重新检测Modbus总线的状态;
若Modbus总线空闲,则初始化所述网关的Modbus发送缓存区,检测Modbus的发送缓存区是否有控制数据;
若未检测到控制数据,则重新检测控制数据;
若检测到控制数据,则将控制数据发送到Modbus设备。
进一步的,所述所述MQTT客户端与所述MQTT服务器建立连接,连接成功则所述MQTT客户端建立与所述MQTT服务器的MQTT连接线程,包括:
所述MQTT客户端与所述MQTT服务器建立连接;
若MQTT客户端与MQTT服务器连接失败,则MQTT客户端等待设定时间后重新向MQTT服务器连接;
若MQTT客户端与MQTT服务器连接成功,则MQTT客户端建立与MQTT服务器的MQTT连接线程。
进一步的,所述Modbus设备通过所述网关进行与所述MQTT服务器、所述MQTT客户端的数据传输之后,还包括:
若所述网关与Modbus设备的Modbus连接线程异常,则退出Modbus连接线程并结束数据传输。
进一步的,所述Modbus设备通过所述网关进行与所述MQTT服务器、所述MQTT客户端的数据传输之后,还包括:
若所述网关与MQTT服务器的MQTT连接线程异常,则退出MQTT连接线程并结束数据传输。
在第二方面,本申请实施例提供了一种基于MQTT云平台的Modbus通信系统,包括:
TCP客户端,用于初始化并建立MQTT线程,得到MQTT客户端;
服务器,用于初始化并建立MQTT线程,得到MQTT服务器;
所述MQTT客户端,用于初始化并建立与所述MQTT服务器的连接,连接成功则所述MQTT客户端建立与所述MQTT服务器的MQTT连接线程;
网关,用于初始化并建立MQTT线程,并建立与所述MQTT服务器的MQTT连接线程;建立Modbus线程,并建立与Modbus总线的Modbus连接线程,所述Modbus总线与Modbus设备建立连接;
所述Modbus设备,用于初始化并通过所述网关进行与所述MQTT服务器、所述MQTT客户端的数据传输。
在第三方面,本申请实施例提供了一种计算机设备,包括存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的基于MQTT云平台的Modbus通信方法。
在第四方面,本申请实施例提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面所述的基于MQTT云平台的Modbus通信方法。
本申请实施例通过设置网关,分别设置网关与MQTT服务器的线程,所述MQTT客户端与所述MQTT服务器建立连接,以及网关与Modbus设备的线程,实现Modbus设备与MQTT客户端的数据传输,即实现对Modbus设备的远程采集控制,不需要采用其他组件,只需采用网关并设置连接协议和线程,实现了Modbus设备的远程交流,过程简单,成本低,有利于智能化控制的发展。
附图说明
图1是本申请实施例提供的一种基于MQTT云平台的Modbus通信方法的流程图;
图2是本申请实施例提供的一种基于MQTT云平台的Modbus通信方法的网关设计框架图;
图3是本申请实施例提供的一种基于MQTT云平台的Modbus通信方法的MQTT客户端设计流程图;
图4是本申请实施例提供的一种基于MQTT云平台的Modbus通信方法的网关Modbus线程设计框图;
图5是本申请实施例提供的一种基于MQTT云平台的Modbus通信方法的网关接收Modbus设备数据的设计流程图;
图6是本申请实施例提供的一种基于MQTT云平台的Modbus通信方法的网关发送数据到Modbus设备的设计流程图;
图7是本申请实施例提供的另一种基于MQTT云平台的Modbus通信方法的流程图;
图8是本申请实施例提供的另一种基于MQTT云平台的Modbus通信方法的流程图;
图9是本申请实施例提供的另一种基于MQTT云平台的Modbus通信方法的流程图;
图10是本申请实施例提供的一种基于MQTT云平台的Modbus通信系统的结构示意图;
图11是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图对本申请具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
MQTT(Message Queuing Telemetry Transport):消息队列遥测传输,是ISO标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议;是一个基于客户端-服务器的消息发布/订阅传输协议。
Modbus(Modbus protocol):是一种串行通信协议,Modbus已经成为工业领域通信协议的业界标准(De facto),并且现在是工业电子设备之间常用的连接方式。
TCP(Transmission Control Protocol):传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP旨在适应支持多网络应用的分层协议层次结构。连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。TCP假设它可以从较低级别的协议获得简单的,可能不可靠的数据报服务。原则上,TCP应该能够在从硬线连接到分组交换或电路交换网络的各种通信系统之上操作。
本申请提供的基于MQTT云平台的Modbus通信的方法通过设置网关,分别设置网关与MQTT服务器的线程,所述MQTT客户端与所述MQTT服务器建立连接,以及网关与Modbus设备的线程,实现Modbus设备与MQTT客户端的数据传输,即实现对Modbus设备的远程采集控制,不需要采用其他组件,只需采用网关并设置连接协议和线程,实现了Modbus设备的远程交流,过程简单,成本低,有利于智能化控制的发展;目前,在智能控制领域中,大多采用有线控制来实现设备连接,其中主要是使用传统的工业控制总线,如PLC,BACNET,Modbus,lonwork等,如果需要远程采集数据或需要远程进行设备控制,其过程较为麻烦,须在本地安装主机,另外,需要安装远程插件才完成远程控制采集的功能,从而需要使用非常多的组件,使得成本非常高,不利于智能化控制的发展。基于此,提供本申请实施例的基于MQTT云平台的Modbus通信方法,来避免现有Modbus设备的远程控制需要安装较多的组件,使得过程较为麻烦且成本高的问题。
实施例中提供的基于MQTT云平台的Modbus通信方法可以由基于MQTT云平台的Modbus通信系统执行,该基于MQTT云平台的Modbus通信系统可以通过软件和/或硬件的方式实现,并集成在基于MQTT云平台的Modbus通信设备中。其中,基于MQTT云平台的Modbus通信设备可以是计算机等设备。
图1为本申请实施例提供的一种基于MQTT云平台的Modbus通信方法的流程图。参考图1,该基于MQTT云平台的Modbus通信方法具体包括:
步骤110、网关、Modbus设备、服务器和TCP客户端进行初始化。
具体的,建立连接和线程协议时,对通信系统各个模块需要进行初始化,其中网关、Modbus设备、服务器和TCP客户端均需要进行初始化,将网关、Modbus设备、服务器和TCP客户端设置为默认状态,以便实现建立协议连接,避免原有的变量产生的影响。
步骤120、所述TCP客户端建立MQTT线程,得到MQTT客户端;所述服务器建立MQTT线程,得到MQTT服务器。
具体的,请参照图3,对所述TCP客户端进行建立MQTT线程,使得客户端支持MQTT协议和MQTT协议线程,从而获得基于MQTT协议线程的客户端,即得到MQTT客户端;其中,对TCP客户端进行建立MQTT线程的方式有多种,可以理解的是,本实施例对此不作限定;对所述服务器进行建立MQTT线程,使得服务器持MQTT协议和MQTT协议线程,从而获得基于MQTT协议线程的服务器,即得到MQTT服务器;其中,对服务器进行建立MQTT线程的方式有多种,可以理解的是,本实施例对此不作限定。
步骤130、所述MQTT客户端与所述MQTT服务器建立连接,连接成功则所述MQTT客户端建立与所述MQTT服务器的MQTT连接线程。
具体的,请参照图3,得到MQTT客户端和MQTT服务器以后,将MQTT客户端和MQTT服务器通过云平台进行建立连接,如果连接失败,则MQTT客户端等待设定时间再重新向MQTT服务器建立连接,其中,设定时间可以根据用户设置,也可以系统根据具体的情况自行设置,可选的,设定时间设置为10秒;其中,如果MQTT客户端向MQTT服务器连接失败,则等待10秒后重新向MQTT服务器发送连接;当MQTT客户端和MQTT服务器连接成功后,MQTT客户端建立与MQTT服务器的一个MQTT连接线程,即MQTT客户端向MQTT服务器订阅主题,可以理解的是,在本实施例中,订阅主题即为想MQTT服务器订阅采集数据。
步骤140、所述网关建立MQTT线程,并建立与所述MQTT服务器的MQTT连接线程。
具体的,请参照图2,网关上电并初始化后,所述网关建立MQTT线程,从而网关支持基于MQTT协议的线程,并建立与MQTT服务器的MQTT连接线程,将网关与云端进行连接,可以理解的是,所述网关的数据通过MQTT连接线程与MQTT服务器实现传送。
步骤150、所述网关建立Modbus线程,并建立与Modbus总线的Modbus连接线程,所述Modbus总线与Modbus设备建立连接。
具体的,请参照图4,网关建立MQTT线程和Modbus线程,从而网关支持基于MQTT和Modbus线协议的线程,网关并建立与Modbus总线的Modbus连接线程,其中,Modbus连接线程包括Modbus接收线程和Modbus发送线程;其中,Modbus总线与Modbus设备连接,从而使得网关通过Modbus总线与Modbus设备连接,实现两者之间的数据传送;可以理解的是,通过设置网关,实现将传送工业控制的Modbus设备接入互联网。
步骤160、所述Modbus设备通过所述网关进行与所述MQTT服务器、所述MQTT客户端的数据传输。
具体的,通过设置网关,以及网关分别通过MQTT协议与互联网连接,通过Modbus协议与工业控制设备即Modbu设备连接,从而实现Modbus设备的数据通过网关发送到互联网的MQTT终端,同时接收来自互联网MQTT终端的数据,实现云端数据采集及控制,不需要安装额外组件,方便快捷,降低了成本。
以上步骤并不是严格按照编号描述的顺序依次执行,其应作为一个整体方案进行理解。
在上述实施例的基础上,图7给出了本申请实施例提供的另一种基于MQTT云平台的Modbus通信方法的流程图。该基于MQTT云平台的Modbus通信方法是对上述基于MQTT云平台的Modbus通信方法的具体化。参考图7,该基于MQTT云平台的Modbus通信方法包括:
步骤210、所述MQTT客户端与所述MQTT服务器建立连接。
具体的,得到MQTT服务器和MQTT客户端后,所述MQTT客户端基于互联网对所述MQTT服务器发送连接建立请求,连接后建立MQTT客户端与MQTT服务器的MQTT线程,实现MQTT客户端与MQTT服务器基于互联网和MQTT协议的连接和数据传输。
步骤220、若MQTT客户端与MQTT服务器连接失败,则MQTT客户端等待设定时间后重新向MQTT服务器连接。
具体的,若MQTT客户端与MQTT服务器的连接建立失败,则等待设定时间后,MQTT客户端重新向MQTT服务器发送连接请求;可选的,设定时间可以是用户根据实际情况设置,也可以是系统根据具体情况自行设置;可选的,本实施例设定时间设置为10秒,其中,MQTT客户端向MQTT服务器请求连接失败后,等待10秒后重新向MQTT服务器发送连接请求。
步骤230、若MQTT客户端与MQTT服务器连接成功,则MQTT客户端建立与MQTT服务器的MQTT连接线程。
具体的,若MQTT客户端与MQTT服务器建立连接成功,则MQTT客户端建立与MQTT服务器的连接线程,实现MQTT客户端与MQTT服务器基于互联网和MQTT协议的连接和数据传输,从而MQTT客户端依次通过MQTT服务器和网关实现与Modbus设备的数据传输。
步骤240、所述Modbus设备将采集数据发送到所述网关,所述网关将所述采集数据发送到所述MQTT服务器,所述MQTT服务器将所述采集数据发送到所述MQTT客户端。
具体的,通过Modbus总线与网关建立连接线程,同时与Modbus设备连接,实现所述Modbus通过Modbus总线将采集数据发送到所述网关;其中,通过网关与MQTT服务器建立MQTT连接线程,所述网关将设备的采集数据发送到所述MQTT服务器;其中,通过MQTT服务器与MQTT客户端建立的MQTT连接线程,所述MQTT服务器将设备的采集数据发送到所述MQTT客户端,实现远程终端MQTT客户端对工业控制设备即Modbus设备的数据采集,以便根据采集数据对设备进行调整。
步骤250、所述MQTT客户端将控制数据发送到所述MQTT服务器,所述MQTT服务将所述控制数据发送到网关,所述网关将所述控制数据发送到所述Modbus设备。
具体的,通过MQTT服务器与MQTT客户端建立的MQTT连接线程,所述MQTT客户端将控制数据发送到所述MQTT服务器;其中,通过网关与MQTT服务器建立MQTT连接线程,所述MQTT服务器将终端的控制数据发送到所述网关;其中,所述网关通过Modbus总线将控制数据下发到所述Modbus设备,以控制所述Modbus设备的运行,实现远程终端MQTT客户端对对工业控制设备即Modbus设备的控制。
步骤260、若所述网关与Modbus设备的Modbus连接线程异常,则退出Modbus连接线程并结束数据传输。
具体的,若网关与Modbus设备的Modbus连接线程异常,则需要退出Modbus连接线程并结束数据传输,避免产生错误的采集数据发送到终端,或者接收到错误的控制数据控制Modbus设备,从而引起不需要的设备事故,并进行异常原因检测和排查,以便尽快解决异常,实现网关与Modbus设备的Modbus连接线程的重新建立。
步骤270、若所述网关与MQTT服务器的MQTT连接线程异常,则退出MQTT连接线程并结束数据传输。
具体的,若网关与MQTT服务器的MQTT连接线程异常,则需要退出MQTT连接线程并结束数据传输,避免产生错误的采集数据发送到终端,或者接收到错误的控制数据控制Modbus设备,从而引起不需要的设备事故,并进行异常原因检测和排查,以便尽快解决异常,实现网关与MQTT服务器的MQTT连接线程的重新建立。
在上述实施例的基础上,图8给出了本申请实施例提供的另一种基于MQTT云平台的Modbus通信方法的流程图。该基于MQTT云平台的Modbus通信方法是对上述基于MQTT云平台的Modbus通信方法的具体化。参考图8,该基于MQTT云平台的Modbus通信方法包括:
步骤2401、所述网关的Modbus接收缓存区进行初始化,并检测是否有采集数据。
具体的,请参照图5,网关通过Modbus总线与Modbus设备进行数据传输,其中,Modbus设备的数据通过Modbus总线发送到网关时,先存储在网关的Modbus接收缓存区;其中,网关的的Modbus接收缓存区需要先进行初始化,初始化后检测Modbus接收缓存区是否有Modbus采集数据。
步骤2402、若检测到采集数据,则判断采集数据是否符合Modbus格式。
具体的,若检测到Modbus接收缓存区有采集数据,对采集数据的格式进行判断,判断采集数据是否符合Modbus格式,即得到采集数据是否是来自Modbus设备的数据,采集数据格式正确即通过网关将数据格式进行转换,从而得到转换后的数据发送到终端。
步骤2403、若所述采集数据不符合Modbus格式,则重新加载采集数据。
具体的,若网关判断Modbus接收缓存区的采集数据不符合Modbus格式,则采集数据不是需要的数据,则重新对采集数据进行加载,直至得到符合Modbus格式的采集数据。
步骤2404、若所述采集数据符合Modbus格式,则发送通知信息到所述Modbus设备,通知所述Modbus设备继续向网关发送采集数据。
具体的,若网关判断Modbus接收缓存区的采集数据符合Modbus格式,将Modbus采集数据转换为MQTT协议数据,并发送到MQTT服务器,且发送通知信息到所述Modbus设备,通知所述Modbus设备继续向网关发送Modbus采集数据,实现将Modbus设备的采集数据发送到互联网的MQTT服务器和MQTT终端,实现对数据的远程采集和控制。
在上述实施例的基础上,图9给出了本申请实施例提供的另一种基于MQTT云平台的Modbus通信方法的流程图。该基于MQTT云平台的Modbus通信方法是对上述基于MQTT云平台的Modbus通信方法的具体化。参考图9,该基于MQTT云平台的Modbus通信方法包括:
步骤2501、检测Modbus总线的状态。
具体的,请参照图6,网关通过Modbus总线与Modbus设备进行数据传输,其中,网关的数据通过Modbus总线发送到Modbus设备时,先存储在网关的Modbus发送缓存区,再通过Modbus总线发送,其中,需要先检测Modbus总线的状态,判断Modbus总线是否处于空闲状态可以传送数据。
步骤2502、若Modbus总线忙碌,则重新检测Modbus总线的状态。
具体的,若网关检测到Modbus总线处于忙碌状态,暂时无法传送数据,则可以在设定时间后重新检测Modbus总线的状态,可选的,可以根据具体情况来设置设定时间;其中,检测到Modbus总线处于空闲状态则停止对Modbus总线状态的检测。
步骤2503、若Modbus总线空闲,则初始化所述网关的Modbus发送缓存区,检测Modbus的发送缓存区是否有控制数据。
具体的,若网关检测到Modbus总线空闲,则可以通过Modbus总线将控制数据发送到Modbus设备,其中,需要先检测Modbus的发送缓存区是否有检测数据,检测到Modbus的发送缓存区有控制数据后,则通过Modbus总线发送控制数据到Modbus设备。
步骤2504、若未检测到控制数据,则重新检测控制数据。
具体的,若网关未检测到Modbus发送缓存区有控制数据,则在设定时间后重新对Modbus发送缓存区进行检测,其中,设定时间可以根据具体情况进行设置;其中,检测到Modbus发送缓存区有控制数据后将控制数据发送到Modbus设备。
步骤2505、若检测到控制数据,则将控制数据发送到Modbus设备。
具体的,若网关检测到Modbus发送缓存区有控制数据,将控制数据通过Modbus总线发送到Modbus设备,实现远程互联网终端对Modbus设备的控制。
在上述实施例的基础上,图10为本申请实施例提供的一种基于MQTT云平台的Modbus通信系统的结构示意图。参考图10,本实施例提供的基于MQTT云平台的Modbus通信系统具体包括:TCP客户端、服务器、MQTT客户端、MQTT服务器、网关和Modbus设备,请参照图10,云平台即为MQTT服务器,MQTT客户端即为数据采集及控制中心。
其中,所述TCP客户端用于初始化并建立MQTT线程,得到MQTT客户端;所述服务器用于初始化并建立MQTT线程,得到MQTT服务器;所述MQTT客户用于初始化并建立与所述MQTT服务器的连接,连接成功则所述MQTT客户端建立与所述MQTT服务器的MQTT连接线程;所述网关用于初始化并建立MQTT线程,并建立与所述MQTT服务器的MQTT连接线程;所述网关还用于建立Modbus线程,并建立与Modbus总线的Modbus连接线程,所述Modbus总线与Modbus设备建立连接;所述Modbus设备用于初始化并通过所述网关进行与所述MQTT服务器、所述MQTT客户端的数据传输。
上述,通过设置网关,分别设置网关与MQTT服务器的线程,所述MQTT客户端与所述MQTT服务器建立连接,以及网关与Modbus设备的线程,实现Modbus设备与MQTT客户端的数据传输,即实现对Modbus设备的远程采集控制,不需要采用其他组件,只需采用网关并设置连接协议和线程,实现了Modbus设备的远程交流,过程简单,成本低,有利于智能化控制的发展。
本申请实施例提供的基于MQTT云平台的Modbus通信系统可以用于执行上述实施例提供的基于MQTT云平台的Modbus通信方法,具备相应的功能和有益效果。
本申请实施例还提供了一种计算机设备,该计算机设备可集成本申请实施例提供的基于MQTT云平台的Modbus通信系统。图11是本申请实施例提供的一种计算机设备的结构示意图。参考图11,该计算机设备包括:输入装置43、输出装置44、存储器42以及一个或多个处理器41;所述存储器42,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器41执行,使得所述一个或多个处理器41实现如上述实施例提供的基于MQTT云平台的Modbus通信方法。其中输入装置43、输出装置44、存储器42和处理器41可以通过总线或者其他方式连接,图4中以通过总线连接为例。
处理器40通过运行存储在存储器41中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的基于MQTT云平台的Modbus通信方法。
上述提供的计算机设备可用于执行上述实施例提供的基于MQTT云平台的Modbus通信方法,具备相应的功能和有益效果。
本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种基于MQTT云平台的Modbus通信方法,该基于MQTT云平台的Modbus通信方法包括:网关、Modbus设备、服务器和TCP客户端进行初始化;所述TCP客户端建立MQTT线程,得到MQTT客户端;所述服务器建立MQTT线程,得到MQTT服务器;所述MQTT客户端与所述MQTT服务器建立连接,连接成功则所述MQTT客户端建立与所述MQTT服务器的MQTT连接线程;所述网关建立MQTT线程,并建立与所述MQTT服务器的MQTT连接线程;所述网关建立Modbus线程,并建立与Modbus总线的Modbus连接线程,所述Modbus总线与Modbus设备建立连接;所述Modbus设备通过所述网关进行与所述MQTT服务器、所述MQTT客户端的数据传输。
存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机装置存储器或随机存取存储器,诸如DRAM、DDR RAM、SRAM、EDO RAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机装置中,或者可以位于不同的第二计算机装置中,第二计算机装置通过网络(诸如因特网)连接到第一计算机装置。第二计算机装置可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机装置中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的基于MQTT云平台的Modbus通信方法,还可以执行本申请任意实施例所提供的基于MQTT云平台的Modbus通信方法中的相关操作。
上述实施例中提供的基于MQTT云平台的Modbus通信系统、存储介质及计算机设备可执行本申请任意实施例所提供的基于MQTT云平台的Modbus通信方法,未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的基于MQTT云平台的Modbus通信方法。
上述仅为本申请的较佳实施例及所运用的技术原理。本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行的各种明显变化、重新调整及替代均不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由权利要求的范围决定。
Claims (10)
1.一种基于MQTT云平台的Modbus通信方法,其特征在于,包括:
网关、Modbus设备、服务器和TCP客户端进行初始化;
所述TCP客户端建立MQTT线程,得到MQTT客户端;所述服务器建立MQTT线程,得到MQTT服务器;
所述MQTT客户端与所述MQTT服务器建立连接,连接成功则所述MQTT客户端建立与所述MQTT服务器的MQTT连接线程;
所述网关建立MQTT线程,并建立与所述MQTT服务器的MQTT连接线程;
所述网关建立Modbus线程,并建立与Modbus总线的Modbus连接线程,所述Modbus总线与Modbus设备建立连接;
所述Modbus设备通过所述网关进行与所述MQTT服务器、所述MQTT客户端的数据传输。
2.根据权利要求1所述的基于MQTT云平台的Modbus通信方法,其特征在于,所述Modbus设备通过所述网关进行与所述MQTT服务器、所述MQTT客户端的数据传输,包括:
所述Modbus设备将采集数据发送到所述网关,所述网关将所述采集数据发送到所述MQTT服务器,所述MQTT服务器将所述采集数据发送到所述MQTT客户端;
所述MQTT客户端将控制数据发送到所述MQTT服务器,所述MQTT服务将所述控制数据发送到网关,所述网关将所述控制数据发送到所述Modbus设备。
3.根据权利要求2所述的基于MQTT云平台的Modbus通信方法,其特征在于,所述Modbus设备将采集数据发送到所述网关,包括:
所述网关的Modbus接收缓存区进行初始化,并检测是否有采集数据;
若检测到采集数据,则判断采集数据是否符合Modbus格式;
若所述采集数据不符合Modbus格式,则重新加载采集数据;
若所述采集数据符合Modbus格式,则发送通知信息到所述Modbus设备,通知所述Modbus设备继续向网关发送采集数据。
4.根据权利要求2所述的基于MQTT云平台的Modbus通信方法,其特征在于,所述网关将所述控制数据发送到所述Modbus设备,包括:
检测Modbus总线的状态;
若Modbus总线忙碌,则重新检测Modbus总线的状态;
若Modbus总线空闲,则初始化所述网关的Modbus发送缓存区,检测Modbus的发送缓存区是否有控制数据;
若未检测到控制数据,则重新检测控制数据;
若检测到控制数据,则将控制数据发送到Modbus设备。
5.根据权利要求1所述的基于MQTT云平台的Modbus通信方法,其特征在于,所述所述MQTT客户端与所述MQTT服务器建立连接,连接成功则所述MQTT客户端建立与所述MQTT服务器的MQTT连接线程,包括:
所述MQTT客户端与所述MQTT服务器建立连接;
若MQTT客户端与MQTT服务器连接失败,则MQTT客户端等待设定时间后重新向MQTT服务器连接;
若MQTT客户端与MQTT服务器连接成功,则MQTT客户端建立与MQTT服务器的MQTT连接线程。
6.根据权利要求1所述的基于MQTT云平台的Modbus通信方法,其特征在于,所述Modbus设备通过所述网关进行与所述MQTT服务器、所述MQTT客户端的数据传输之后,还包括:
若所述网关与Modbus设备的Modbus连接线程异常,则退出Modbus连接线程并结束数据传输。
7.根据权利要求1所述的基于MQTT云平台的Modbus通信方法,其特征在于,所述Modbus设备通过所述网关进行与所述MQTT服务器、所述MQTT客户端的数据传输之后,还包括:
若所述网关与MQTT服务器的MQTT连接线程异常,则退出MQTT连接线程并结束数据传输。
8.一种基于MQTT云平台的Modbus通信系统,其特征在于,包括:
TCP客户端,用于初始化并建立MQTT线程,得到MQTT客户端;
服务器,用于初始化并建立MQTT线程,得到MQTT服务器;
所述MQTT客户端,用于初始化并建立与所述MQTT服务器的连接,连接成功则所述MQTT客户端建立与所述MQTT服务器的MQTT连接线程;
网关,用于初始化并建立MQTT线程,并建立与所述MQTT服务器的MQTT连接线程;建立Modbus线程,并建立与Modbus总线的Modbus连接线程,所述Modbus总线与Modbus设备建立连接;
所述Modbus设备,用于初始化并通过所述网关进行与所述MQTT服务器、所述MQTT客户端的数据传输。
9.一种计算机设备,其特征在于,包括:存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7任一所述的一种基于MQTT云平台的Modbus通信方法。
10.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-7任一所述的一种基于MQTT云平台的Modbus通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011262709.0A CN112350914A (zh) | 2020-11-12 | 2020-11-12 | 基于MQTT云平台的Modbus通信方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011262709.0A CN112350914A (zh) | 2020-11-12 | 2020-11-12 | 基于MQTT云平台的Modbus通信方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112350914A true CN112350914A (zh) | 2021-02-09 |
Family
ID=74363429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011262709.0A Pending CN112350914A (zh) | 2020-11-12 | 2020-11-12 | 基于MQTT云平台的Modbus通信方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112350914A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114726673A (zh) * | 2022-03-22 | 2022-07-08 | 深圳渊联技术有限公司 | Modbus TCP协议通信方法及通信系统 |
CN114793188A (zh) * | 2021-10-29 | 2022-07-26 | 天津长荣科技集团股份有限公司 | 一种智能网关数据采集推送方法 |
CN114938329A (zh) * | 2022-01-25 | 2022-08-23 | 厦门锐谷通信设备有限公司 | 一种基于mqtt的路由器网关设备管理方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104796464A (zh) * | 2015-04-02 | 2015-07-22 | 南京邮电大学 | 一种基于modbus的多协议转换警情信息远程传输系统和方法 |
CN109861978A (zh) * | 2018-12-28 | 2019-06-07 | 浙江工业大学 | 一种基于MQTT协议的物联网SaaS平台 |
CN110855774A (zh) * | 2019-11-11 | 2020-02-28 | 卡乐电子(苏州)有限责任公司 | 基于mqtt协议的自动配置的物联网系统 |
CN111327693A (zh) * | 2020-02-07 | 2020-06-23 | 天津大学 | 一种基于mqtt的远程控制工业网关系统 |
CN111327460A (zh) * | 2020-01-22 | 2020-06-23 | 北方工业大学 | 一种网关配置方法、云端设备、网关及系统 |
CN111580995A (zh) * | 2020-05-12 | 2020-08-25 | 南京甄视智能科技有限公司 | 基于mqtt异步通信场景下的分布式云平台与物联网智能终端的同步通信方法与系统 |
CN111669372A (zh) * | 2020-05-20 | 2020-09-15 | 北京亿度物联科技有限公司 | 一种用电采集主站物联网协议融合方法 |
CN111737329A (zh) * | 2020-06-13 | 2020-10-02 | 北京京投亿雅捷交通科技有限公司 | 一种轨道交通统一数据采集平台 |
-
2020
- 2020-11-12 CN CN202011262709.0A patent/CN112350914A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104796464A (zh) * | 2015-04-02 | 2015-07-22 | 南京邮电大学 | 一种基于modbus的多协议转换警情信息远程传输系统和方法 |
CN109861978A (zh) * | 2018-12-28 | 2019-06-07 | 浙江工业大学 | 一种基于MQTT协议的物联网SaaS平台 |
CN110855774A (zh) * | 2019-11-11 | 2020-02-28 | 卡乐电子(苏州)有限责任公司 | 基于mqtt协议的自动配置的物联网系统 |
CN111327460A (zh) * | 2020-01-22 | 2020-06-23 | 北方工业大学 | 一种网关配置方法、云端设备、网关及系统 |
CN111327693A (zh) * | 2020-02-07 | 2020-06-23 | 天津大学 | 一种基于mqtt的远程控制工业网关系统 |
CN111580995A (zh) * | 2020-05-12 | 2020-08-25 | 南京甄视智能科技有限公司 | 基于mqtt异步通信场景下的分布式云平台与物联网智能终端的同步通信方法与系统 |
CN111669372A (zh) * | 2020-05-20 | 2020-09-15 | 北京亿度物联科技有限公司 | 一种用电采集主站物联网协议融合方法 |
CN111737329A (zh) * | 2020-06-13 | 2020-10-02 | 北京京投亿雅捷交通科技有限公司 | 一种轨道交通统一数据采集平台 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114793188A (zh) * | 2021-10-29 | 2022-07-26 | 天津长荣科技集团股份有限公司 | 一种智能网关数据采集推送方法 |
CN114938329A (zh) * | 2022-01-25 | 2022-08-23 | 厦门锐谷通信设备有限公司 | 一种基于mqtt的路由器网关设备管理方法及系统 |
CN114726673A (zh) * | 2022-03-22 | 2022-07-08 | 深圳渊联技术有限公司 | Modbus TCP协议通信方法及通信系统 |
CN114726673B (zh) * | 2022-03-22 | 2023-10-31 | 深圳渊联技术有限公司 | Modbus TCP协议通信方法及通信系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112350914A (zh) | 基于MQTT云平台的Modbus通信方法及系统 | |
US5742607A (en) | Method and apparatus for controlling two way communication via disparate physical media | |
US20070266180A1 (en) | Vehicle tracking system | |
CN113630372A (zh) | 一种边缘计算的云边协同系统 | |
US8732694B2 (en) | Method and system for performing services in server and client of client/server architecture | |
JP2001514773A (ja) | 信頼性のあるイベントデリバリシステム | |
WO2022127118A1 (zh) | 文件传输方法、装置、电子设备及存储介质 | |
US20030212801A1 (en) | System and method for monitoring a connection between a server and a passive client device | |
US10313450B2 (en) | Method for transparently connecting augmented network socket operations | |
US7178051B2 (en) | Method for synchronous support of fault-tolerant and adaptive communication | |
US20030120782A1 (en) | Method and computer system for client server inter process communication | |
US7051108B1 (en) | Method and system of interprocess communications | |
CN116112536A (zh) | 一种tcp-串口通信透传的方法及装置 | |
CN114338477B (zh) | 一种通信链路监控方法、装置、设备及存储介质 | |
CN108289165B (zh) | 一种基于手机控制相机的实现方法、装置及终端设备 | |
CN113992740B (zh) | 一种基于自主可控的中间件及数据传输方法 | |
US20230147005A1 (en) | Onboard device and sleep control method | |
US9385968B2 (en) | Methods and devices for connecting to multiple interfaces | |
CN113472810A (zh) | 一种基于tcp/ip协议socket通信的方法及系统 | |
US20100005197A1 (en) | Network device and active control card detecting method | |
EP1527584A2 (en) | Forestalling long time-outs in processes | |
CN112532699B (zh) | 数据端口的更新方法、装置、电子设备及可读存储介质 | |
CN112448952B (zh) | 解决远程接收并存储智能设备参数的方法及装置 | |
EP2016781B1 (en) | A vehicle tracking system | |
KR20080051046A (ko) | 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치 및 그방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210209 |