一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种通信方法、物联网系统与流程

2022-02-22 03:48:53 来源:中国专利 TAG:


1.本发明涉及通信领域,具体为一种通信方法、物联网系统。


背景技术:

2.近年来工业的智能化成为技术和产业发展的重要方向,工业物联网要真正达到智能化,必须倚靠云端平台提供的各种服务,而智能网关就是实现下端控制器和上端云平台的中间桥梁。工业领域的特点就是产品需求的多样化和个性化,根据业务需求选择适合云平台或者自己开发的云平台,当前比较大的云平台有百度云、华为云、腾讯云、阿里云、azure、aws等云平台。网关设备与云平台建立连接和通信协议方面存在较大的差异性,与控制器通信协议也存在多样性,因此网关厂商一般是为客户定制开发应用程序来满足需求。定制的应用程序,方式存在通用性不强,应用程序种类越来越多的问题,这必将造成应用程序的开发和维护就需要更多的人力。如果客户对接一个新的云平台,学习云平台的连接方式和重新开发应用程序来适配新的云平台,可能存在给客户反馈较慢的问题。这些问题对智能网关产品在社会的竞争性产生影响。


技术实现要素:

3.本发明的目的在于提供一种通信方法,智能网关设备中为了满足客户对接不同云平台的需求,适当的减少开发工作量,实现与云平台建立连接功能,下端控制器采集数据上报给云平台功能,云平台下发数据的控制下端控制器功能,并能快速提供应用程序给客户进行功能测试,增强智能网关产品的竞争性,开发一个通用的应用程序实现不同客户对接不同云平台的需求。
4.本发明还公开了一种物联网系统。
5.为实现上述目的,本发明提供如下技术方案:
6.一种通信方法,所述方法涉及网关、云平台、控制器;所述网关中搭载有通用app和若干控制器app;每个控制器app与一类控制器进行通信连接;
7.所述控制器app从控制器获取数据,将数据发送至通用app;
8.所述通用app将数据转换成为云平台的协议适配的数据格式发送给云平台。
9.在上述的通信方法中,所述控制器app和通用app之间传输的数据的数据格式、所述通用app和云平台之间传输的数据的数据格式均为json格式。
10.在上述的通信方法中,控制器app和通用app之间传输的数据包括第一上传数据和第一控制数据,所述第一上传数据包括控制器的标识和采集的数据,所述第一控制数据为云平台发送给控制器的指令。
11.在上述的通信方法中,所述通用app和云平台之间传输的数据包括第二上传数据和第二控制数据,所述第二上传数据经第一上传数据转换得到且含主题和采集的数据;所述第二控制数据为云平台发送给控制器的指令。
12.在上述的通信方法中,所述通用app内置有针对不同云平台的配置文件,所述通用
app根据对应的配置文件与云平台进行通信;
13.所述配置文件用于使通用app和云平台建立通信连接、将数据转换成为云平台的协议适配的数据格式。
14.此外,本发明还公开了一种物联网系统,包括网关、云平台、控制器,所述网关中搭载有通用app和若干控制器app;每个控制器app与一类控制器进行通信连接;
15.所述控制器app从控制器获取数据,将数据发送至通用app;
16.所述通用app将数据转换成为云平台的协议适配的数据格式发送给云平台。
17.在上述的物联网系统中,所述控制器app和通用app之间传输的数据的数据格式、所述通用app和云平台之间传输的数据的数据格式均为json格式。
18.在上述的物联网系统中,所述网关中还包括存储模块,所述存储模块中存储有针对不同云平台的配置文件,所述通用app根据对应的配置文件与云平台进行通信;
19.所述配置文件用于使通用app和云平台建立通信连接、将数据转换成为云平台的协议适配的数据格式
20.与现有技术相比,本发明的有益效果是:
21.基于mqtt协议开发的通用应用程序屏蔽了网关设备与下端控制器因协议差异特殊处理,适合多控制器一个云平台的场景;与云平台建立连接、发布和订阅topic、发送和接收消息完整过程设计成通用流程,对于平台参数、topic格式、通信格式等差异进行特殊处理。如果新增云平台,保持整个处理流程不变,只需要实现其差异化方面,减少了一定的工作量,也能更快的向客户提供测试的产品。同时解耦下端控制器和上端云平台的耦合性,其实用性和扩展性都较强,提高了产品自身的竞争性。
附图说明
22.图1为本发明的实施例1的流程框图;
23.图2为本发明的实施例2的结构框图。
具体实施方式
24.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
25.实施例1
26.如图1,一种通信方法,所述方法涉及网关、云平台、控制器;所述网关中搭载有通用app和若干控制器app;每个控制器app与一类控制器进行通信连接;
27.所述控制器app从控制器获取数据,将数据发送至通用app;
28.所述通用app将数据转换成为云平台的协议适配的数据格式发送给云平台。
29.具体来说,所述控制器app和通用app之间传输的数据的数据格式、所述通用app和云平台之间传输的数据的数据格式均为json格式,控制器app和通用app之间传输的数据包括第一上传数据和第一控制数据,所述第一上传数据包括控制器的标识和采集的数据,所述第一控制数据为云平台发送给控制器的指令。
30.第一上传数据包括下文所述3.1上报数据;第一控制数据为3.2写控制数据和3.3读控制数据,除此之外,还包括控制器app发送的响应数据至通用app,响应数据为下文的3.4写/读控制数据。
31.3.1上报数据格式
[0032][0033][0034]
3.2写控制数据下发格式
[0035][0036]
3.3读控制数据下发格式
[0037][0038]
3.4写/读控制数据回应
[0039]
[0040]
[0041][0042]
参数说明:
[0043]
cmd:消息命令(上报数据:s2n_report_ack;下发控制数据:n2s_control_req;下发控制数据回应:n2s_control_ack)
[0044]
souraddr:发送者地址(app名字)
[0045]
destaddr:接收者地址(app名字)
[0046]
subdeviceid:子设备id(例:modbus rtu:串口名ttycom0;tcp:ip)
[0047]
subprotocol:子设备的协议(例:modbus)
[0048]
subdevicetag:子设备标识(例:modbus:slaveid),无效值为n/a
[0049]
msgid:平台下发的消息id
[0050]
cmdtype:命令类型(writereq/writeack/readreq/readack)
[0051]
retcode:所有控制操作的结果(0:成功;其它:失败)
[0052]
tag:标识,表示需要控制寄存器标识
[0053]
tagresult:tag操作结果(0:成功;其它:失败)
[0054]
tagvalue:tag对应寄存器的值
[0055]
tagremark:tagresult对应描述
[0056]
timestamp:上报数据时间戳
[0057]
可见通用app、控制器app之间通过约定协议进行通信,这两者之间具有其适配的通信手段。
[0058]
所述通用app和云平台之间传输的数据包括第二上传数据和第二控制数据,所述第二上传数据经第一上传数据转换得到且含主题和采集的数据;所述第二控制数据为云平台发送给控制器的指令。
[0059]
第二上传数据包括如下文4.1的通用app向云平台上报数据,第二控制数据包括下文的4.2的云平台向通用app下发写操作数据、4.3云平台向通用app下发读操作数据;此外,通用app和云平台之间还有4.4的通用app向云平台回应读/写数据。
[0060]
4.1通用app向云平台上报数据格式
[0061][0062]
4.2云平台向通用app下发写操作数据格式
[0063]
[0064][0065]
4.3云平台向通用app下发读操作数据格式
[0066]
[0067][0068]
4.4通用app向云平台回应读/写数据格式
[0069]
[0070][0071]
参数说明:
[0072]
version、id、method:上报数据给云平台需要的字段
[0073]
onlinetag:工作网关的sn
[0074]
subdeviceid、devicetype:确认工作控制器的描述
[0075]
params:上报给云平台的数据
[0076]
param:下发给网关的数据
[0077]
所述通用app内置有针对不同云平台的配置文件,所述通用app根据对应的配置文件与云平台进行通信;
[0078]
所述配置文件用于使通用app和云平台建立通信连接、将数据转换成为云平台的协议适配的数据格式。
[0079]
下文5.1示出了阿里云平台的配置数据,下文5.2示出了thingsboard平台的配置数据。
[0080]
5.1阿里云平台配置数据
[0081]
[0082][0083][0084]
备注1:在此步骤中,标注了从上报数据格式3.1到上报数据格式4.1的转换方式,其标注了需要从3.1至4.1所需提取的参数,如version、id、method、onlinetag、
subdeviceid、devicetype、params,当然在3.1中有部分参数未被赋值,因为平台要求回应中必须的参数,并且不能从设备中获取,比如version、method等,在本步骤中赋予具体值代入4.1中。
[0085][0086]
以阿里云平台详细说明云平台的配置数据和通信数据结构,具体如下:连接参数结构(connparam),topic参数结构(topicparam),上报数据结构(reportparam)和控制数据结构(ackparam)。
[0087]
参数说明:
[0088]
(1)connparam:网关连接云平台broker需要的参数
[0089]
brokeraddress、brokerport、clientid、username、password:mosquito库客户端连接服务端broker端需要的参数
[0090]
阿里云配置参数说明:
[0091]
${productkey}、${devicename}/${devicesecret}云平台上创建设备时生成
[0092]
${region}所在地域
[0093]
${clientid}:设备、app或web等场景下的client id信息;设置成设备sn
[0094]
${mode}:安全模式
[0095]
securemode=3:tcp直连模式,无需设置ssl/tls信息。
[0096]
securemode=2:tls直连模式,需要设置ssl/tls信息。
[0097]
${signmethod}:算法类型,支持hmacmd5和hmacsha1。
[0098]
(2)topicparam:网关与云平台通信用到的主题
[0099]
dtoc_report_topic:网关上报采集数据给云平台的topic,用于向云平台推送采集数据
[0100]
ctod_cmd_topic:网关订阅topic,用于接收云平台下发数据
[0101]
dtoc_cmd_topic:网关控制数据响应给云平台的topic,用于向云平台推送控制响应数据
[0102]
(3)reportparam:网关主动上报数据到云平台格式
[0103]
"version"、"id"、"method":固定值
[0104]
"onlinetag":工作网关的${sn}
[0105]
"subdeviceid":3.1数据中的${subdeviceid}
[0106]
"devicetype":3.1数据中的${subprotocol}_${subdevicetag}
[0107]
"params":3.1数据中的${param}
[0108]
(4)ackparam:网关与云平台控制数据格式
[0109]
"version"、"method":固定值
[0110]
"id":3.4数据中的${msgid}
[0111]
"onlinetag":工作网关的${sn}
[0112]
"subdeviceid":3.4数据中的${subdeviceid}
[0113]
"devicetype":3.4数据中的${subprotocol}_${subdevicetag}
[0114]
"cmdtype":3.4数据中的${cmdtype}
[0115]
"ack":3.4数据中的${param}
[0116]
5.2thingsboard平台配置数据(可参考阿里云平台配置参数)
[0117][0118]
thingsboard云平台配置参数说明:
[0119]
password:云平台不校验该值,可以为空
[0120]
topicparam:3个topic是云平台系统定义的topic
[0121]
${devicesn}:工作网关的sn
[0122]
${访问令牌}:平台上创建设备的时生成。
[0123]
通过上述的阿里云平台的配置参数和thingsboard平台配置数据可以发现,通过作为中间数据转换所需的配置参数如阿里云平台的配置参数和thingsboard平台配置数据,其主要是为了满足第二上传数据和第二控制数据的生成所需的参数,依据此参数从第一上传数据和第一控制数据中进行提取或直接赋值。
[0124]
本发明的网关(智能网关)属于嵌入式设备,在内存和带宽方面需要考虑到设备的资源受限问题。mqtt协议设计的初始目的是为了在有限的内存设备和带宽很低的网络进行通信,非常适合网关设备与云平台之间进行通信。json是一种轻量级的数据交换格式,其简洁和清晰的层次结构特点使得json成为理想的数据交换格式,网关设备中与下端控制器,与上端云平台进行通信采用json格式。网关设备与云平台对接的通用应用程序功能包含三部分内容:控制器通信协议的定义,云平台连接、通信的通用部分功能的实现,不同云平台差异部分功能的实现。
[0125]
智能网关设备与控制器的通信数据包含采集数据上报,控制数据下发和响应两部分数据。网关设备根据控制协议操作控制器,协议格式不同造成下发的参数和获取到数据的描述会有差异。控制器通信协议定义是屏蔽控制器采用协议的差异,提取出用户感兴趣的数据进行统一封装。
[0126]
网关设备与云平台采用mqtt协议进行通信,mqtt基于客户端-服务器通信模式,网关设备属于mqtt客户端,云平台属于broker服务端。mqtt客户端行为可以概括为:建立连接、订阅主题、接收消息并处理、向指定主题发布消息、取消订阅、断开连接,已经有专门的mqtt库实现相应的功能。网关设备上与云平台的通用功能是指由mqtt库实现的mqtt客户端的行为;不同平台之间的差异部分体现在与连接云平台的参数、topic格式和数据通信格式,可以通过配置文件来选择,也可以做成配置模板来处理,具体的内容根据各个云平台进行差异化处理。
[0127]
实施例2
[0128]
如图2,一种用于实现实施例1所述方法的物联网系统,包括网关1、云平台2、控制器3,所述网关1中搭载有通用app4和若干控制器app5;每个控制器app5与一类控制器3进行通信连接;
[0129]
所述控制器app5从控制器3获取数据,将数据发送至通用app4;
[0130]
所述通用app4将数据转换成为云平台2的协议适配的数据格式发送给云平台2;
[0131]
所述控制器app5和通用app4之间传输的数据的数据格式、所述通用app4和云平台2之间传输的数据的数据格式均为json格式。
[0132]
在本实施例中,所述网关1中还包括存储模块,所述存储模块中存储有针对不同云平台2的配置文件,所述通用app4根据对应的配置文件与云平台2进行通信;
[0133]
所述配置文件用于使通用app4和云平台2建立通信连接、将数据转换成为云平台2的协议适配的数据格式。
[0134]
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献