一种物联网通信方法及云网关与流程

文档序号:16545256发布日期:2019-01-08 20:48阅读:235来源:国知局
一种物联网通信方法及云网关与流程

本发明实施例涉及物联网通信技术领域,具体涉及一种物联网通信方法及云网关。



背景技术:

工业数据通信已被广泛用在工业生产的各个环节,通过工业通信系统来对工业生产的各环节进行监控。目前,对工业数据的访问主要有两种方式,一种是通过串口或总线传送到本地计算机进行控制,另一种是通过网络上传到云服务器,利用远程终端进行数据访问。尽管目前物联网在各领域的应用广泛,但没有物联网数据接入的统一接口,目前传感网络,特别是传统工业传感网络数据采集协议繁多,协议标准不统一,各行业根据应用需求,独自建立自己的系统及终端,采用不同的协议进行数据传输。传统网关只支持某两种协议之间的转换,不能实现异构网络多协议转换,无法通过单一网关解决异构网络多协议转换及数据上云的问题。

另外,在物联网异构网络中,网关采集多种协议的数据,且数据量庞大。因此,需进行各种不同协议的大量数据的数据协议转换及云端传输,而现有的大部分网关都是阻塞性质的,工业数据处理与上云传输的实时性很低,严重影响了物联网的性能。



技术实现要素:

为解决现有技术无法通过单一网关解决异构网络多协议转换及数据上云以及云网关实时性较差的问题,本发明实施例提供一种物联网通信方法及云网关。

第一方面,本发明实施例提供一种物联网通信方法,该方法包括:数据获取流程,具体包括获取异构网络中的网络设备采集的工业数据;协议转换流程,具体包括:对所述工业数据进行协议解析,并将具备不同通信协议的所述工业数据转换为opcua标准数据,并进一步将得到的所述opcua标准数据转换为mqtt协议数据;云端传输流程,具体包括:将所述mqtt协议数据发送给云平台;任务调度流程,具体包括:在所述数据获取流程执行完毕后触发协议转换任务的生成,所述协议转换任务用于执行所述协议转换流程;在所述协议转换流程执行完毕后触发云端传输任务的生成,所述云端传输任务用于执行所述云端传输流程;将所述协议转换任务和所述云端传输任务按照生成的时间顺序存储于任务队列中;按照任务生成的时间顺序,通过依次调用所述任务队列中的任务对应的非阻塞任务调度函数触发所述协议转换流程或所述云端传输流程的执行;其中,所述任务调度流程在调用所述任务队列中的任务对应的非阻塞任务调度函数时,采用非阻塞的处理模式,无需等待一个任务处理完成再执行下一个任务,而是调用完上一任务的非阻塞任务调度函数后立即调用下一任务的非阻塞任务调度函数。

第二方面,本发明实施例提供一种云网关,该云网关包括:数据获取模块,具体用于执行数据获取任务,所述数据获取任务具体包括:获取异构网络中的网络设备采集的工业数据;协议转换模块,具体用于执行协议转换任务,所述协议转换任务具体包括:对所述工业数据进行协议解析,并将具备不同通信协议的所述工业数据转换为opcua标准数据,并进一步将得到的所述opcua标准数据转换为mqtt协议数据;云端传输模块,具体用于执行云端传输任务,所述云端传输任务具体包括:将所述mqtt协议数据发送给云平台;任务调度模块,具体用于在所述数据获取任务执行完毕后触发所述协议转换任务的生成,以及在所述协议转换任务执行完毕后触发所述云端传输任务的生成;将所述协议转换任务和所述云端传输任务按照生成的时间顺序存储于任务队列中;按照任务生成的时间顺序,通过依次调用所述任务队列中的任务对应的非阻塞任务调度函数实现所述协议转换模块或所述云端传输模块的任务处理;其中,所述任务调度模块在调用所述任务队列中的任务对应的非阻塞任务调度函数时,采用非阻塞的处理模式,无需等待一个任务处理完成再执行下一个任务,而是调用完上一任务的非阻塞任务调度函数后立即调用下一任务的非阻塞任务调度函数。

第三方面,本发明实施例提供一种电子设备,包括存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如下方法:数据获取流程,具体包括获取异构网络中的网络设备采集的工业数据;协议转换流程,具体包括:对所述工业数据进行协议解析,并将具备不同通信协议的所述工业数据转换为opcua标准数据,并进一步将得到的所述opcua标准数据转换为mqtt协议数据;云端传输流程,具体包括:将所述mqtt协议数据发送给云平台;任务调度流程,具体包括:在所述数据获取流程执行完毕后触发协议转换任务的生成,所述协议转换任务用于执行所述协议转换流程;在所述协议转换流程执行完毕后触发云端传输任务的生成,所述云端传输任务用于执行所述云端传输流程;将所述协议转换任务和所述云端传输任务按照生成的时间顺序存储于任务队列中;按照任务生成的时间顺序,通过依次调用所述任务队列中的任务对应的非阻塞任务调度函数触发所述协议转换流程或所述云端传输流程的执行;其中,所述任务调度流程在调用所述任务队列中的任务对应的非阻塞任务调度函数时,采用非阻塞的处理模式,无需等待一个任务处理完成再执行下一个任务,而是调用完上一任务的非阻塞任务调度函数后立即调用下一任务的非阻塞任务调度函数。

第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如下方法:数据获取流程,具体包括获取异构网络中的网络设备采集的工业数据;协议转换流程,具体包括:数据获取流程,具体包括获取异构网络中的网络设备采集的工业数据;协议转换流程,具体包括:对所述工业数据进行协议解析,并将具备不同通信协议的所述工业数据转换为opcua标准数据,并进一步将得到的所述opcua标准数据转换为mqtt协议数据;云端传输流程,具体包括:将所述mqtt协议数据发送给云平台;任务调度流程,具体包括:在所述数据获取流程执行完毕后触发协议转换任务的生成,所述协议转换任务用于执行所述协议转换流程;在所述协议转换流程执行完毕后触发云端传输任务的生成,所述云端传输任务用于执行所述云端传输流程;将所述协议转换任务和所述云端传输任务按照生成的时间顺序存储于任务队列中;按照任务生成的时间顺序,通过依次调用所述任务队列中的任务对应的非阻塞任务调度函数触发所述协议转换流程或所述云端传输流程的执行;其中,所述任务调度流程在调用所述任务队列中的任务对应的非阻塞任务调度函数时,采用非阻塞的处理模式,无需等待一个任务处理完成再执行下一个任务,而是调用完上一任务的非阻塞任务调度函数后立即调用下一任务的非阻塞任务调度函数。

本发明实施例通过将不同通信协议的工业数据依次转换为opcua标准数据、mqtt数据,通过单一网关实现了不同协议的工业数据的上云服务,提供了不同网络的设备接入方案,解决了企业异构网络设备接入管理的痛点;并且,通过将协议转换任务及云端传输任务加入到任务队列,并通过调用非阻塞任务调度函数执行,实现了非阻塞模式的物联网通信传输,有效提高了物联网通信的实时性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的物联网通信方法流程图;

图2是本发明另一实施例提供的物联网通信方法流程图;

图3是本发明实施例提供的再一实施例提供的物联网通信方法流程图;

图4是本发明实施例提供的物联网通信方法中异步任务队列调度机制示意图;

图5是本发明实施例提供的云网关的结构示意图;

图6是本发明另一实施例提供的云网关的结构示意图;

图7是本发明实施例提供的电子设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1是本发明实施例提供的物联网通信方法流程图。如图1所示,所述方法包括:

步骤101、数据获取流程,具体包括获取异构网络中的网络设备采集的工业数据;

在数据获取流程,云网关用于获取异构网络中的网络设备采集的工业数据。所述异构网络包括具有不同通信协议的网络设备。所述网络设备可以包括plc、wirelesshart设备、ethercat设备、仪器仪表、各种传感器等。所述网络设备的通信协议可以是如西门子plcs7协议,modbus协议、rs-485协议、串口通信协议等。

云网关获取异构网络中的网络设备采集的工业数据,实现物理世界数据的采集。云网关获取异构网络中的网络设备采集的工业数据,可以直接与传感器节点等通信获取所述工业数据,也可通过与汇聚节点通信间接获取所述工业数据。其中,所述汇聚节点用于收集周围传感器节点的数据,并向云网关转发。

云网关采集的所述工业数据是已被转换为电信号的各种物理量,如温度、水位、流量、压力等。云网关采集所述工业数据的方式可以为采样方式,即隔一定采样周期对同一点数据重复采集。

步骤102、协议转换流程,具体包括:对所述工业数据进行协议解析,并将具备不同通信协议的所述工业数据转换为opcua标准数据,并进一步将得到的所述opcua标准数据转换为mqtt协议数据;

在协议转换流程,云网关具体用于对采集的所述工业数据进行协议解析,将具备不同通信协议(如西门子plcs7协议,modbus协议、rs-485协议、串口通信协议等)的所述工业数据(包括通信命令数据)转化为具有统一格式的opcua(opcunifiedarchitecture,opc统一架构)标准数据。opcua标准是一个不依赖任何平台的标准,通过此标准各种各样的系统和设备能在不同的网络中进行通信,保证上下层网络正常通信。

在将具备不同通信协议的所述工业数据转换为opcua标准数据后,云网关将所述opcua标准数据统一封装,转换为具有物联网标准的消息队列遥测传输物联网通讯协议的数据格式,即mqtt协议数据。所述mqtt协议数据支持与云平台进行通信。

将异构网络设备的工业数据先转换成opcua标准数据,再转换成mqtt数据,可以实现所述工业数据不经过云端直接与工业现场的opcua设备进行数据通信,以增强实时性。比如,工业现场的plc设备需要通过网关与opcua设备进行通信时,则plc的数据可以在传输给云网关后,直接由云网关返回给opcua设备,从而有效增强实时性。可以理解的,所述工业数据也可直接转换为mqtt数据,再通过mqtt协议把数据传送至云平台。

步骤103、云端传输流程,具体包括:将所述mqtt协议数据发送给云平台;

在云端传输流程,云网关具体用于将所述mqtt协议数据发送给云平台,即将转换为可以与云平台通信的数据格式mqtt协议数据后的所述工业数据发送给云平台。

步骤104、任务调度流程,具体包括:在所述数据获取流程执行完毕后触发协议转换任务的生成,所述协议转换任务用于执行所述协议转换流程;在所述协议转换流程执行完毕后触发云端传输任务的生成,所述云端传输任务用于执行所述云端传输流程;将所述协议转换任务和所述云端传输任务按照生成的时间顺序存储于任务队列中;按照任务生成的时间顺序,通过依次调用所述任务队列中的任务对应的非阻塞任务调度函数触发所述协议转换流程或所述云端传输流程的执行;

其中,所述任务调度流程在调用所述任务队列中的任务对应的非阻塞任务调度函数时,采用非阻塞的处理模式,无需等待一个任务处理完成再执行下一个任务,而是调用完上一任务的非阻塞任务调度函数后立即调用下一任务的非阻塞任务调度函数。

云平台执行完毕所述数据获取流程,获取到异构网络中的网络设备采集的工业数据后,需先通过执行协议转换流程进行协议转换后,再通过云端传输流程将进行协议转换完毕后的所述工业数据传输至云平台。云网关在所述数据获取流程执行完毕后触发协议转换任务的生成,待进行协议转换处理,所述协议转换任务用于执行所述协议转换流程;在所述协议转换流程执行完毕后触发云端传输任务的生成,待进行云端传输处理,所述云端传输任务用于执行所述云端传输流程。

云网关将所述协议转换任务和所述云端传输任务按照生成的时间顺序存储于任务队列中,通过依次调用所述任务队列中的任务对应的非阻塞任务调度函数触发所述协议转换流程或所述云端传输流程的执行。比如,按照任务生成时间,任务队列中依次存储有协议转换任务1、协议转换任务2、云端传输任务1、协议转换任务3,则可以顺次执行如下过程:调用协议转换任务1对应的非阻塞任务调度函数触发针对协议转换任务1的所述协议转换流程的执行、调用协议转换任务2对应的非阻塞任务调度函数触发针对协议转换任务2的所述协议转换流程的执行、调用云端传输任务1的非阻塞任务调度函数触发针对云端传输任务1的云端传输流程的执行、调用协议转换任务3对应的非阻塞任务调度函数触发针对协议转换任务3的所述协议转换流程的执行;即通过依次调用所述任务队列中的任务对应的非阻塞任务调度函数触发所述协议转换流程或所述云端传输流程的执行;可以通过不断扫描任务队列中未处理的事件,依次进行处理。

与现有大部分网关采用阻塞通信的方法、一个任务执行完毕再执行另外一个任务相比,本发明实施例采用非阻塞的处理模式,按照任务生成的时间顺序将任务存储于任务队列中,所述任务包括协议转换任务和云端传输任务,通过依次调用所述任务队列中的任务对应的非阻塞任务调度函数触发所述协议转换流程或所述云端传输流程的执行,无需等待一个任务处理完成再执行下一个任务,而是调用完上一任务的非阻塞任务调度函数后立即调用下一任务的非阻塞任务调度函数,有效提高了数据网络传输的执行效率。

本发明实施例通过将不同通信协议的工业数据依次转换为opcua标准数据、mqtt数据,通过单一网关实现了不同协议的工业数据的上云服务,提供了不同网络的设备接入方案,解决了企业异构网络设备接入管理的痛点;并且,通过将协议转换任务及云端传输任务加入到任务队列,并通过调用非阻塞任务调度函数执行,实现了非阻塞模式的物联网通信传输,有效提高了物联网通信的实时性。

图2是本发明另一实施例提供的物联网通信方法流程图。如图2所示,在图1的基础上,所述方法还包括:

步骤105、指令获取流程,具体包括接收所述云平台发送的控制指令,所述控制指令为mqtt协议格式;

除了具有云网关向云平台的上行数据传输外,还可以具有云平台向云网关的下行数据传输。在指令获取流程,云网关接收所述云平台发送的控制指令,所述控制指令为mqtt协议格式,所述控制指令包括欲进行控制的目标网络设备。

步骤106、协议反向转换流程,具体包括:将所述控制指令转换为opcua标准数据,并进一步转换为符合目标网络设备协议格式的指令数据;

在协议反向转换流程,云网关将所述控制指令转换为opcua标准数据,并进一步转换为符合目标网络设备协议格式的指令数据。所述目标网络设备可以为所述异构网络设备(即所述异构网络中的网络设备)中的一个或多个。在所述目标网络设备为多个,且具备不同的通信协议时,将所述控制指令转换为opcua标准数据,并将所述opcua标准数据分别转换为每个所述目标网络设备所支持的协议格式的指令数据。

可以理解的,云网关还可以直接将云平台下发的mqtt协议格式的控制指令转换为目标网络设备所支持的协议格式。

步骤107、指令下发流程,具体包括将所述指令数据发送给所述目标网络设备;

在指令下发流程,云网关将所述指令数据发送给所述目标网络设备,云网关将转换成目标网络设备所支持的协议格式的指令数据发送给相应的所述目标网络设备。

所述任务调度流程104还包括:所述任务调度流程还包括:在所述指令获取流程执行完毕后触发协议反向转换任务的生成,所述协议反向转换任务用于执行所述协议反向转换流程;在所述协议反向转换流程执行完毕后触发指令下发任务的生成,所述指令下发任务用于执行所述指令下发流程;将所述协议反向转换任务和所述指令下发任务按照生成的时间顺序存储于所述任务队列中;按照任务生成的时间顺序,通过依次调用所述任务队列中的任务对应的非阻塞任务调度函数进一步触发所述协议反向转换流程或所述指令下发流程的执行。

云平台执行完毕所述指令获取流程,接收所述云平台发送的控制指令后,需先通过执行协议反向变换流程将mqtt协议格式的控制指令转换为符合目标网络设备协议格式的指令数据后,再通过执行指令下发流程将所述指令数据发送给所述目标网络设备。云网关在所述指令获取流程执行完毕后触发协议反向转换任务的生成,待进行协议反向转换处理,所述协议反向转换任务用于执行所述协议反向转换流程;在所述协议反向转换流程执行完毕后触发指令下发任务的生成,待进行指令数据下发处理,所述指令下发任务用于执行所述指令下发流程。

云网关将所述协议反向转换任务和所述指令下发任务按照生成的时间顺序存储于所述任务队列中,即所述任务队列中的任务包括协议转换任务、云端传输任务、协议反向转换任务及指令下发任务。云网关通过依次调用所述任务队列中的任务对应的非阻塞任务调度函数进一步触发所述协议反向转换流程或所述指令下发流程的执行,即云网关通过依次调用所述任务队列中的任务对应的非阻塞任务调度函数触发所述协议转换流程、所述云端传输流程、所述协议反向转换流程或所述指令下发流程的执行。

比如,按照任务生成时间,任务队列中依次存储有协议转换任务1、协议转换任务2、云端传输任务1、协议转换任务3、云端传输任务4、协议反向转换任务5、协议反向转换任务6、指令下发任务7,则可以顺次执行如下过程:调用协议转换任务1对应的非阻塞任务调度函数触发针对协议转换任务1的所述协议转换流程的执行、调用协议转换任务2对应的非阻塞任务调度函数触发针对协议转换任务2的所述协议转换流程的执行、调用云端传输任务1的非阻塞任务调度函数触发针对云端传输任务1的云端传输流程的执行、调用协议转换任务3对应的非阻塞任务调度函数触发针对协议转换任务3的所述协议转换流程的执行、调用云端传输任务4对应的非阻塞任务调度函数触发针对云端传输任务4的所述云端传输流程的执行、调用协议反向转换任务5对应的非阻塞任务调度函数触发针对协议反向转换任务5的所述协议反向转换流程的执行、调用协议反向转换任务6对应的非阻塞任务调度函数触发针对协议反向转换任务6的所述协议反向转换流程的执行;调用指令下发任务7对应的非阻塞任务调度函数触发针对指令下发任务7的所述指令下发流程的执行;即通过依次调用所述任务队列中的任务对应的非阻塞任务调度函数触发所述协议转换流程、所述云端传输流程、所述协议反向转换流程或所述指令下发流程的执行;可以通过不断扫描任务队列中未处理的事件,依次进行处理。

本网关上行部分通过opcua及消息队列遥测传输物联网通讯协议(mqtt协议)将实时工业数据无缝地直接传输到企业中的设备云和大数据分析平台,用户可在云端获取厂内机器(属于网络设备)运行状态信息,对现场网络设备进行实时监控;同时,用户不仅可以通过云平台对现场设备进行监控,还可以通过云平台对现场网络设备进行远程配置组网,也可以根据上行数据信息,实现从云端对现场网络设备下发指令,从而实现现场网络设备的云端控制。

在上述实施例的基础上,本发明实施例通过将云平台发送的控制指令进行协议转换,进而发送给目标网络设备,实现了云网关与云平台建立双向通信通道以进行数据交换和云端远程命令控制;并且,通过进一步将协议反向转换任务及指令下发任务加入到任务队列,并通过调用非阻塞任务调度函数执行,进一步提高了物联网通信的实时性。

图3是本发明实施例提供的再一实施例提供的物联网通信方法流程示意图。如图3所示,以协议转换任务为例,进一步说明本发明实施例提供的物联网通信方法。图3中,通信协议1、通信协议2、……通信协议n表示不同协议类型的数据,协议转换任务要实现上述不同类型协议数据的协议转换。图3所示的对应于通信协议1、通信协议2、……通信协议n的协议转换任务将根据生成的顺序存储于任务队列中,这些生成的任务也可以看成是通信事件。按照任务生成的事件顺序,通过依次调用所述任务队列中的任务对应的非阻塞任务调度函数触发相应协议转换流程的执行。为了处理异步网络通信,设计了事件循环,事件循环可以不断扫描事件队列(任务队列)中未处理的通信事件,依次进行处理。

进一步地,基于上述实施例,与所述协议转换任务对应的非阻塞任务调度函数有多个,不同类型的协议转换任务对应不同的非阻塞任务调度函数;与所述云端传输任务对应的非阻塞任务调度函数唯一;与所述协议反向转换任务对应的非阻塞任务调度函数有多个,不同类型的协议反向转换任务对应不同的非阻塞任务调度函数;与所述指令下发任务对应的非阻塞任务调度函数有多个,对不同通信协议的所述目标网络设备的指令下发任务对应不同的非阻塞任务调度函数。

由于将不同类型的通信协议的所述工业数据转换成opcua标准数据,再进一步转换成mqtt数据的方法不同,针对不同类型的通信协议的所述工业数据的协议转换属于不同类型的协议转换任务。如果协议转换方法相同,则为节约资源,可采用同一非阻塞任务调度函数实现协议转换任务的执行。因此,按照协议转换任务的类型进行区分,不同类型的协议转换任务对应不同的非阻塞任务调度函数。进一步由于异构网络中的网络设备至少具有两种不同的通信协议,因此,与所述协议转换任务对应的非阻塞任务调度函数有多个(至少两个)。

由于网关将数据上传到云平台的过程均是将转换为mqtt协议格式的所述工业数据发送至云平台,因此,为节约资源,与所述云端传输任务对应的非阻塞任务调度函数可以为一个。

由于异构网络中的网络设备包括不同的协议格式,因此将mqtt协议格式的控制指令转换成opcua标准数据,再进一步转换成目标网络设备所支持的协议格式的指令数据的方法不同,根据网络设备的通信协议的不同,其对应的协议反向转换任务属于不同类型的协议反向转换任务。如果网络设备的通信协议相同,则为节约资源,可采用同一非阻塞任务调度函数实现协议反向转换任务的执行。因此,按照协议反向转换任务的类型进行区分,不同类型的协议反向转换任务对应不同的非阻塞任务调度函数。进一步由于异构网络中的网络设备至少具有两种不同的通信协议,因此,与所述协议反向转换任务对应的非阻塞任务调度函数有多个(至少两个)。

由于将进行协议反向转换后的所述指令数据下发给目标网络设备,而对于不同通信协议的目标网络设备所述指令数据的格式不同,因此,针对不同类型的通信协议的目标网络设备的指令数据下发属于不同类型的指令下发任务。如果网络设备的通信协议相同,则为节约资源,可采用同一非阻塞任务调度函数实现指令下发任务的执行。因此,按照指令下发任务的类型进行区分,不同类型的指令下发任务对应不同的非阻塞任务调度函数。进一步由于异构网络中的网络设备至少具有两种不同的通信协议,因此,与所述指令下发任务对应的非阻塞任务调度函数有多个(至少两个)。

举例来说,如果任务队列中存储有协议转换任务1、协议转换任务2、云端传输任务1、协议转换任务3、云端传输任务4、协议反向转换任务5、协议反向转换任务6、指令下发任务7、指令下发任务8,并且若协议转换任务1和协议转换任务2属于同种类型的协议转换任务、而与协议转换任务3属于不同类型的协议转换任务,协议反向转换任务5和协议反向转换任务6属于同种类型的协议反向转换任务,指令下发任务7和指令下发任务8属于不同类型的指令下发任务,则与协议转换任务1和协议转换任务2对应的非阻塞任务调度函数可以为同一个非阻塞任务调度函数,而不同于协议转换任务3对应的非阻塞任务调度函数;与协议反向转换任务5和协议反向转换任务6对应的非阻塞任务调度函数可以为同一个非阻塞任务调度函数;与云端传输任务1和云端传输任务4对应的非阻塞任务调度函数可以为同一个非阻塞任务调度函数;与指令下发任务7和指令下发任务8对应的非阻塞任务调度函数不同。

在上述实施例的基础上,本发明实施例通过将相同任务类型的任务利用同一非阻塞任务调度函数执行,在保证实时性的基础上,节约了资源,增强了实用性。

进一步地,基于上述实施例,所述方法还包括:当判断获知高于所述任务队列中任务的优先级别的通信事件触发中断时,执行所述通信事件,且暂停所述非阻塞任务调度函数的执行;在所述通信事件执行完毕后,重新启动所述非阻塞任务调度函数的执行;其中,所述高于所述任务队列中任务的优先级别的通信事件包括云网关与所述网络设备的连接及断开以及所述云网关与所述云平台的连接及断开。

本发明实施例提供的基于非阻塞模式的物联网通信方法支持中断响应。若云网关判断获知高于所述任务队列中任务的优先级别的通信事件触发中断时,则执行所述通信事件,正在执行的所述非阻塞任务调度函数的执行暂停;在所述通信事件执行完毕后,继续执行中断触发时相应任务的非阻塞任务调度函数。任务队列中的任务及所述通信事件的优先级别可以预先设定。

其中,所述任务队列中的任务(包括所述协议转换任务、所述云端传输任务、所述协议反向转换任务及所述指令下发任务)的优先级别相同。高于所述任务队列中任务的优先级别的通信事件包括云网关与所述网络设备的连接及断开以及所述云网关与所述云平台的连接及断开。

比如,云网关在与云平台重新建立连接的通信事件则会触发中断,暂停执行非阻塞任务调度函数,而先去执行云网关与云平台重新建立连接,待云网关与云平台重新建立连接完成后,再继续执行所述任务队列中中断触发时相应任务的非阻塞任务调度函数。

在上述实施例的基础上,本发明实施例通过支持高优先级别的通信事件触发中断,有效提高了物联网通信的实用性及灵活性。

进一步地,基于上述实施例,所述通过依次调用所述任务队列中的任务对应的非阻塞任务调度函数触发所述协议转换流程或所述云端传输流程的执行,以及所述通过依次调用所述任务队列中的任务对应的非阻塞任务调度函数进一步触发所述协议反向转换流程或所述指令下发流程的执行,均采用异步调度的方式,根据非阻塞任务调度函数中的任务数量将非阻塞任务调度函数中的任务分发给相应数量的多个任务处理单元进行分布式并行处理。

由于本发明实施例所采用的是非阻塞的通信模式,并不是一个任务执行完毕才执行下一个任务。因此,针对任务队列中的任务,在调用完上一任务的非阻塞任务调度函数后会接着调用下一任务的非阻塞任务调度函数,而根据前述可知,相同任务类型的任务可以对应同一非阻塞任务调度函数,因此,同一非阻塞任务调度函数中可能会存在待执行的任务序列。所述任务队列中的任务可以存储于内存数据库中。对于非阻塞任务调度函数中的任务序列,通过异步调度的方式,根据非阻塞任务调度函数中的任务序列中的任务数量将非阻塞任务调度函数中的任务分发给相应数量的多个任务处理单元进行分布式并行处理。

图4是本发明实施例提供的物联网通信方法中异步任务队列调度机制示意图。其中,对于不同类型的协议转换任务或协议反向转换任务,如果非阻塞任务调度函数中有多个所述协议转换任务或协议反向转换任务,则发送给不同的worker处理,worker即表示所述任务处理单元。同样的,若非阻塞任务调度函数中存在多个云端传输任务或指令下发任务,也将分发给不同的worker进行处理。任务队列可存储与内存数据库中,图4中内存数据库部分示意的不同图案的条形框可表示不同任务。

通过这种异步调度机制,云网关每分钟可处理上百万个任务,保证了数据处理及传输的实时性。

在上述实施例的基础上,本发明实施例通过在调用非阻塞任务调度函数后进行分布式并行处理相应任务,进一步提高了物联网通信的实时性。

进一步地,基于上述实施例,若判断获知任务队列中的任务执行失败或中断,则重新调用相应的非阻塞任务调度函数进行处理。

本发明实施例提供的物联网通信方法支持故障检测机制。云网关通过调用非阻塞任务调度函数执行任务队列中的任务,若相应任务执行成功,非阻塞任务调度函数会返回相应任务执行成功的消息;若相应任务执行失败,非阻塞任务调度函数会返回相应任务执行失败的消息。在任务的执行过程中,还可以判断是否发送任务执行中断,比如在执行云端传输任务时,云网关可以向所述云平台发送心跳信号,若在预设的心跳间隔内未接收到所述云平台的响应消息,则获知云端传输任务发生中断。

若云网关判断获知任务队列中的任务执行失败或中断,则重新调用相应的非阻塞任务调度函数进行处理。若云网关判断获知任务队列中的任务执行成功,则可将相应任务从任务队列中移除。

在上述实施例的基础上,本发明实施例通过采用故障监测机制,在判断获知任务队列中的任务执行失败或中断时,重新调用相应的非阻塞任务调度函数进行处理,有效提高了物联网通信的可靠性。

图5是本发明实施例提供的云网关的结构示意图。如图5所示,所示云网关包括数据获取模块10、协议转换模块20、云端传输模块30及任务调度模块40,其中:

数据获取模块10具体用于执行数据获取任务,所述数据获取任务具体包括:获取异构网络中的网络设备采集的工业数据;

在数据获取流程,数据获取模块10用于获取异构网络中的网络设备采集的工业数据。所述异构网络包括具有不同通信协议的网络设备。数据获取模块10获取异构网络中的网络设备采集的工业数据,实现物理世界数据的采集。数据获取模块10获取异构网络中的网络设备采集的工业数据,可以直接与传感器节点等通信获取所述工业数据,也可通过与汇聚节点通信间接获取所述工业数据。

协议转换模块20具体用于执行协议转换任务,所述协议转换任务具体包括:对所述工业数据进行协议解析,并将具备不同通信协议的所述工业数据转换为opcua标准数据,并进一步将得到的所述opcua标准数据转换为mqtt协议数据;

协议转换模块20具体用于对采集的所述工业数据进行协议解析,将具备不同通信协议的所述工业数据(包括通信命令数据)转化为具有统一格式的opcua标准数据。在将具备不同通信协议的所述工业数据转换为opcua标准数据后,协议转换模块20将所述opcua标准数据统一封装,转换为具有物联网标准的消息队列遥测传输物联网通讯协议的数据格式,即mqtt协议数据。所述mqtt协议数据支持与云平台进行通信。

云端传输模块30具体用于执行云端传输任务,所述云端传输任务具体包括:将所述mqtt协议数据发送给云平台;

云端传输模块30具体用于将所述mqtt协议数据发送给云平台,即将转换为可以与云平台通信的数据格式mqtt协议数据后的所述工业数据发送给云平台。

任务调度模块40具体用于在所述数据获取任务执行完毕后触发所述协议转换任务的生成,以及在所述协议转换任务执行完毕后触发所述云端传输任务的生成;将所述协议转换任务和所述云端传输任务按照生成的时间顺序存储于任务队列中;按照任务生成的时间顺序,通过依次调用所述任务队列中的任务对应的非阻塞任务调度函数实现所述协议转换模块或所述云端传输模块的任务处理;

其中,所述任务调度模块在调用所述任务队列中的任务对应的非阻塞任务调度函数时,采用非阻塞的处理模式,无需等待一个任务处理完成再执行下一个任务,而是调用完上一任务的非阻塞任务调度函数后立即调用下一任务的非阻塞任务调度函数。

任务调度模块40具体用于在数据获取模块10的所述数据获取任务执行完毕后触发所述协议转换任务的生成,以及在协议转换模块20的所述协议转换任务执行完毕后触发所述云端传输任务的生成;将所述协议转换任务和所述云端传输任务按照生成的时间顺序存储于任务队列中,通过依次调用所述任务队列中的任务对应的非阻塞任务调度函数实现所述协议转换模块或所述云端传输模块的任务处理。

本发明实施例通过将不同通信协议的工业数据依次转换为opcua标准数据、mqtt数据,通过单一网关实现了不同协议的工业数据的上云服务,提供了不同网络的设备接入方案,解决了企业异构网络设备接入管理的痛点;并且,通过将协议转换任务及云端传输任务加入到任务队列,并通过调用非阻塞任务调度函数执行,实现了非阻塞模式的物联网通信传输,有效提高了物联网通信的实时性。

图6是本发明另一实施例提供的云网关的结构示意图。如图6所示,所述云网关包括数据获取模块10、协议转换模块20、云端传输模块30、任务调度模块40、指令获取模块50、协议反向转换模块60及指令下发模块70,数据获取模块10、协议转换模块20、云端传输模块30的功能与上述实施例相同,此处不再赘述,其中:

指令获取模块50具体用于执行指令获取任务,所述指令获取任务具体包括:接收所述云平台发送的控制指令,所述控制指令为mqtt协议格式;

指令获取模块50接收所述云平台发送的控制指令,所述控制指令为mqtt协议格式,所述控制指令包括欲进行控制的目标网络设备。

协议反向转换模块60具体用于执行协议反向转换任务,所述协议反向转换任务具体包括:将所述控制指令转换为opcua标准数据,并进一步转换为符合目标网络设备协议格式的指令数据;

协议反向转换模块60将所述控制指令转换为opcua标准数据,并进一步转换为符合目标网络设备协议格式的指令数据。所述目标网络设备可以为所述异构网络设备中的一个或多个。在所述目标网络设备为多个,且具备不同的通信协议时,协议反向转换模块60将所述控制指令转换为opcua标准数据,并将所述opcua标准数据分别转换为每个所述目标网络设备所支持的协议格式的指令数据。

指令下发模块70具体用于执行指令下发任务,所述指令下发任务具体包括:将所述指令数据发送给所述目标网络设备;

指令下发模块70执行指令下发任务,将转换成目标网络设备所支持的协议格式的指令数据发送给相应的所述目标网络设备。

所述任务调度模块40还用于在所述指令获取任务执行完毕后触发所述协议反向转换任务的生成,以及在所述协议反向转换任务执行完毕后触发所述指令下发任务的生成;将所述协议反向转换任务和所述指令下发任务按照生成的时间顺序存储于所述任务队列中;按照任务生成的时间顺序,通过依次调用所述任务队列中的任务对应的非阻塞任务调度函数进一步实现所述协议反向转换模块或所述指令下发模块的任务处理。

所述任务调度模块40还用于在指令获取模块50的所述指令获取任务执行完毕后触发所述协议反向转换任务的生成,以及在协议反向转换模块60的所述协议反向转换任务执行完毕后触发所述指令下发任务的生成;将所述协议反向转换任务和所述指令下发任务按照生成的时间顺序存储于所述任务队列中,通过依次调用所述任务队列中的任务对应的非阻塞任务调度函数进一步实现所述协议反向转换模块或所述指令下发模块的任务处理。

任务调度模块40将所述协议反向转换任务和所述指令下发任务按照生成的时间顺序存储于所述任务队列中,即所述任务队列中的任务包括协议转换任务、云端传输任务、协议反向转换任务及指令下发任务。任务调度模块40通过依次调用所述任务队列中的任务对应的非阻塞任务调度函数触发所述协议转换流程、所述云端传输流程、所述协议反向转换流程或所述指令下发流程的执行。

在上述实施例的基础上,本发明实施例通过将云平台发送的控制指令进行协议转换,进而发送给目标网络设备,实现了云网关与云平台建立双向通信通道以进行数据交换和云端远程命令控制;并且,通过进一步将协议反向转换任务及指令下发任务加入到任务队列,并通过调用非阻塞任务调度函数执行,进一步提高了物联网通信的实时性。

进一步地,基于上述实施例,与所述协议转换任务对应的非阻塞任务调度函数有多个,不同类型的协议转换任务对应不同的非阻塞任务调度函数;与所述云端传输任务对应的非阻塞任务调度函数唯一;与所述协议反向转换任务对应的非阻塞任务调度函数有多个,不同类型的协议反向转换任务对应不同的非阻塞任务调度函数;与所述指令下发任务对应的非阻塞任务调度函数有多个,对不同通信协议的所述目标网络设备的指令下发任务对应不同的非阻塞任务调度函数。

针对不同类型的通信协议的所述工业数据的协议转换属于不同类型的协议转换任务。如果协议转换方法相同,则为节约资源,可采用同一非阻塞任务调度函数实现协议转换任务的执行。因此,按照协议转换任务的类型进行区分,不同类型的协议转换任务对应不同的非阻塞任务调度函数。由于网关将数据上传到云平台的过程均是将转换为mqtt协议格式的所述工业数据发送至云平台,因此,为节约资源,与所述云端传输任务对应的非阻塞任务调度函数可以为一个。根据网络设备的通信协议的不同,其对应的协议反向转换任务属于不同类型的协议反向转换任务。如果网络设备的通信协议相同,则为节约资源,可采用同一非阻塞任务调度函数实现协议反向转换任务的执行。因此,按照协议反向转换任务的类型进行区分,不同类型的协议反向转换任务对应不同的非阻塞任务调度函数。由于将进行协议反向转换后的所述指令数据下发给目标网络设备,而对于不同通信协议的目标网络设备所述指令数据的格式不同,因此,针对不同类型的通信协议的目标网络设备的指令数据下发属于不同类型的指令下发任务。如果网络设备的通信协议相同,则为节约资源,可采用同一非阻塞任务调度函数实现指令下发任务的执行。因此,按照指令下发任务的类型进行区分,不同类型的指令下发任务对应不同的非阻塞任务调度函数。

在上述实施例的基础上,本发明实施例通过将相同任务类型的任务利用同一非阻塞任务调度函数执行,在保证实时性的基础上,节约了资源,增强了实用性。

进一步地,基于上述实施例,所述云网关还包括中断触发模块,具体用于:当判断获知高于所述任务队列中任务的优先级别的通信事件触发中断时,执行所述通信事件,且暂停所述非阻塞任务调度函数的执行;在所述通信事件执行完毕后,重新启动所述非阻塞任务调度函数的执行;其中,所述高于所述任务队列中任务的优先级别的通信事件包括云网关与所述网络设备的连接及断开以及所述云网关与所述云平台的连接及断开。

若中断触发模块判断获知高于所述任务队列中任务的优先级别的通信事件触发中断时,则执行所述通信事件,正在执行的所述非阻塞任务调度函数的执行暂停;在所述通信事件执行完毕后,继续执行中断触发时相应任务的非阻塞任务调度函数。任务队列中的任务及所述通信事件的优先级别可以预先设定。其中,所述任务队列中的任务(包括所述协议转换任务、所述云端传输任务、所述协议反向转换任务及所述指令下发任务)的优先级别相同。高于所述任务队列中任务的优先级别的通信事件包括云网关与所述网络设备的连接及断开以及所述云网关与所述云平台的连接及断开。

在上述实施例的基础上,本发明实施例通过支持高优先级别的通信事件触发中断,有效提高了物联网通信的实用性及灵活性。

进一步地,基于上述实施例,所述任务调度模块40在通过依次调用所述任务队列中的任务对应的非阻塞任务调度函数实现所述协议转换模块或所述云端传输模块的任务处理,以及在通过依次调用所述任务队列中的任务对应的非阻塞任务调度函数进一步实现所述协议反向转换模块或所述指令下发模块的任务处理的过程中,均采用异步调度的方式,根据非阻塞任务调度函数中的任务数量将非阻塞任务调度函数中的任务分发给相应数量的多个任务处理单元进行分布式并行处理。

针对任务队列中的任务,任务调度模块40在调用完上一任务的非阻塞任务调度函数后会接着调用下一任务的非阻塞任务调度函数,而同一非阻塞任务调度函数中可能会存在待执行的任务序列。所述任务队列中的任务可以存储于内存数据库中。任务调度模块40通过异步调度的方式,根据非阻塞任务调度函数中的任务序列中的任务数量将非阻塞任务调度函数中的任务分发给相应数量的多个任务处理单元进行分布式并行处理。

在上述实施例的基础上,本发明实施例通过在调用非阻塞任务调度函数后进行分布式并行处理相应任务,进一步提高了物联网通信的实时性。

进一步地,基于上述实施例,所述云网关还包括故障检测模块,具体用于若判断获知任务队列中的任务执行失败或中断,则重新调用相应的非阻塞任务调度函数进行处理。

任务调度模块40通过调用非阻塞任务调度函数执行任务队列中的任务,若相应任务执行成功,非阻塞任务调度函数会返回相应任务执行成功的消息;若相应任务执行失败,非阻塞任务调度函数会返回相应任务执行失败的消息。在任务的执行过程中,故障检测模块还可以判断是否发送任务执行中断,可以通过心跳检测来判断是否发生任务执行中断。

若故障检测模块判断获知任务队列中的任务执行失败或中断,则重新调用相应的非阻塞任务调度函数进行处理。

在上述实施例的基础上,本发明实施例通过采用故障监测机制,在判断获知任务队列中的任务执行失败或中断时,重新调用相应的非阻塞任务调度函数进行处理,有效提高了物联网通信的可靠性。

本发明实施例提供的设备是用于上述方法的,具体功能可参照上述方法流程,此处不再赘述。

图7是本发明实施例提供的电子设备的结构示意图。如图7所示,所述电子设备包括处理器701、存储器702和总线703。其中,所述处理器701和所述存储器702通过所述总线703完成相互间的通信;所述处理器701用于调用所述存储器702中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:数据获取流程,具体包括获取异构网络中的网络设备采集的工业数据;协议转换流程,具体包括:对所述工业数据进行协议解析,并将具备不同通信协议的所述工业数据转换为opcua标准数据,并进一步将得到的所述opcua标准数据转换为mqtt协议数据;云端传输流程,具体包括:将所述mqtt协议数据发送给云平台;任务调度流程,具体包括:在所述数据获取流程执行完毕后触发协议转换任务的生成,所述协议转换任务用于执行所述协议转换流程;在所述协议转换流程执行完毕后触发云端传输任务的生成,所述云端传输任务用于执行所述云端传输流程;将所述协议转换任务和所述云端传输任务按照生成的时间顺序存储于任务队列中;按照任务生成的时间顺序,通过依次调用所述任务队列中的任务对应的非阻塞任务调度函数触发所述协议转换流程或所述云端传输流程的执行;其中,所述任务调度流程在调用所述任务队列中的任务对应的非阻塞任务调度函数时,采用非阻塞的处理模式,无需等待一个任务处理完成再执行下一个任务,而是调用完上一任务的非阻塞任务调度函数后立即调用下一任务的非阻塞任务调度函数。

本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:数据获取流程,具体包括获取异构网络中的网络设备采集的工业数据;协议转换流程,具体包括:对所述工业数据进行协议解析,并将具备不同通信协议的所述工业数据转换为opcua标准数据,并进一步将得到的所述opcua标准数据转换为mqtt协议数据;云端传输流程,具体包括:将所述mqtt协议数据发送给云平台;任务调度流程,具体包括:在所述数据获取流程执行完毕后触发协议转换任务的生成,所述协议转换任务用于执行所述协议转换流程;在所述协议转换流程执行完毕后触发云端传输任务的生成,所述云端传输任务用于执行所述云端传输流程;将所述协议转换任务和所述云端传输任务按照生成的时间顺序存储于任务队列中;按照任务生成的时间顺序,通过依次调用所述任务队列中的任务对应的非阻塞任务调度函数触发所述协议转换流程或所述云端传输流程的执行;其中,所述任务调度流程在调用所述任务队列中的任务对应的非阻塞任务调度函数时,采用非阻塞的处理模式,无需等待一个任务处理完成再执行下一个任务,而是调用完上一任务的非阻塞任务调度函数后立即调用下一任务的非阻塞任务调度函数。

本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:数据获取流程,具体包括获取异构网络中的网络设备采集的工业数据;协议转换流程,具体包括:对所述工业数据进行协议解析,并将具备不同通信协议的所述工业数据转换为opcua标准数据,并进一步将得到的所述opcua标准数据转换为mqtt协议数据;云端传输流程,具体包括:将所述mqtt协议数据发送给云平台;任务调度流程,具体包括:在所述数据获取流程执行完毕后触发协议转换任务的生成,所述协议转换任务用于执行所述协议转换流程;在所述协议转换流程执行完毕后触发云端传输任务的生成,所述云端传输任务用于执行所述云端传输流程;将所述协议转换任务和所述云端传输任务按照生成的时间顺序存储于任务队列中;按照任务生成的时间顺序,通过依次调用所述任务队列中的任务对应的非阻塞任务调度函数触发所述协议转换流程或所述云端传输流程的执行;其中,所述任务调度流程在调用所述任务队列中的任务对应的非阻塞任务调度函数时,采用非阻塞的处理模式,无需等待一个任务处理完成再执行下一个任务,而是调用完上一任务的非阻塞任务调度函数后立即调用下一任务的非阻塞任务调度函数。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

以上所描述的电子设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1