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

数据传输方法及相关设备与流程

2022-07-16 15:44:21 来源:中国专利 TAG:
1.本公开涉及物联网
技术领域
:,尤其涉及一种数据传输方法及相关设备。
背景技术
::2.物联网是通过各种信息传感器、射频识别技术、全球定位系统、红外感应器、激光扫描器等各种装置与技术,实时采集任何需要监控、连接、互动的物体或过程。3.在物联网系统中,不同硬件设备之间的传输协议可能是不同,在传输协议不同时,如何实现数据转换和传输是需要考虑的问题。技术实现要素:4.本公开提出一种数据传输方法及相关设备。5.本公开第一方面,提供了一种数据传输方法,应用于物联网网关,包括:6.接收按照第一协议传输的第一数据;7.调用存储在所述物联网网关中的数据映射表;8.基于所述数据映射表,将所述第一数据转换为具有第二协议的数据格式的第二数据;以及9.按照所述第二协议发送所述第二数据。10.本公开第二方面,提供了一种物联网网关,包括:11.一个或者多个处理器、存储器;以及12.一个或多个程序;13.其中,所述一个或多个程序被存储在所述存储器中,并且被所述一个或多个处理器执行,所述程序包括用于执行根据第一方面所述的方法的指令。14.本公开第三方面,提供了一种物联网系统,包括:15.第二方面所述的物联网网关;16.物联网终端,被配置为:按照第一协议与所述物联网网关传输数据;以及17.物联网平台,被配置为:按照第二协议与所述物联网网关传输数据。18.本公开第四方面,提供了一种包含计算机程序的非易失性计算机可读存储介质,当所述计算机程序被一个或多个处理器执行时,使得所述处理器执行第一方面所述的方法。19.本公开第四方面,提供了一种计算机程序产品,包括计算机程序指令,当所述计算机程序指令在计算机上运行时,使得计算机执行如第一方面所述的方法。20.本公开提供的数据传输方法及相关设备,通过在物联网网关中内置数据映射表,使得物联网网关能够将基于不同通信协议的数据进行转换并传输到目标设备,实现了两种通信协议规约的灵活数据映射。附图说明21.为了更清楚地说明本公开或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。22.图1示出了根据本公开实施例的一种示例性物联网系统的示意图。23.图2示出了本公开实施例所提供的一种示例性物联网系统的示意图。24.图3a示出了根据本公开实施例的示例性页面的示意图。25.图3b示出了根据本公开实施例的另一示例性页面的示意图。26.图3c示出了根据本公开实施例的又一示例性页面的示意图。27.图3d示出了根据本公开实施例的示例性物联网网关的通信拓扑示意图。28.图4示出了本公开实施例所提供的示例性方法的流程示意图。29.图5示出了本实施例所提供的示例性电子设备的硬件结构示意图。具体实施方式30.为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。31.需要说明的是,除非另外定义,本公开实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。32.图1示出了根据本公开实施例的一种示例性物联网系统100的示意图。33.如图1所示,物联网系统100可以包括物联网平台102、网络设备104和各种物联网终端106。其中,物联网终端106可以是各种信息传感器、射频识别装置、全球定位系统、红外感应器、激光扫描器等各种装置。该网络设备104可以是物联网网关,用于收集各物联网终端106产生的数据,并将该数据上传给物联网平台102。在一些实施例中,网络设备104也可以称为主站或主站点。物联网平台102则可以基于网络设备104上传的这些数据来进行具体应用,例如,基于这些数据来提供各种物联网服务。同时,物联网系统100也可以向网络设备104发布订阅消息,网路设备104则可以将该订阅消息转发到相应的物联网终端106。34.在这个数据传输过程中,物联网平台102与网络设备104之间、网络设备104与物联网终端106之间,均需要遵循相应的通信协议。35.一种实现方法中,物联网终端106和网络设备104之间使用modbus作为通信协议。例如,在类似智慧园区、电力系统等应用场景下,网络设备104采集数据采用modbus协议。这是因为,modbus协议作为工业领域通信协议的业界标准,而物联网系统的物联网终端较为适合采用该协议。36.一般地,网络设备104与物联网平台102之间的主要通信协议是mqtt协议(messagequeuingtelemetrytransport,消息队列遥测传输协议),因为mqtt协议可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务,从而可以很好地实现网络设备104与物联网平台102之间的通信。鉴于此,网络设备104向物联网平台102上传数据或从物联网平台102接收数据也需要遵循mqtt协议。37.由此可见,modbus作为大多数物联网终端的通信规约,mqtt作为大多数物联网平台的通信规约,当网络设备104向物联网平台102上传数据和从物联网终端106采集数据采用不同通信协议的情况下,网络设备104就需要对基于不同通信协议传输的数据进行格式转换,以在物联网平台102和物联网终端106之间构建交互的桥梁。38.此外,在实际应用场景中,网络设备104会接入很多不同的物联网终端106,不同项目下接入的物联网终端106不同,需要采集上传的数据类型也不同,这样就给项目的快速部署提出了挑战。如何在不改变程序,不需要开发人员的介入,只需要现场运维人员快速配置,就可以实现传感器数据上云的功能,也是亟待解决的问题。39.鉴于此,本公开实施例提供了一种数据传输方法,应用于物联网网关,包括:接收按照第一协议传输的第一数据;调用存储在所述物联网网关中的数据映射表;基于所述数据映射表,将所述第一数据转换为具有第二协议的数据格式的第二数据;以及按照所述第二协议发送所述第二数据。40.这样,通过在物联网网关中内置数据映射表,使得物联网网关能够将基于不同通信协议的数据进行转换并传输到目标设备,实现了两种通信协议规约的灵活数据映射。41.此外,由于该数据映射表存储在物联网网关中,当该物联网网关接入的物联网终端发生改变(例如,新增、修改)时,物联网系统中各设备的程序均可以不用修改,只需要修改物联网网关中存储的数据映射表即可。这样,当改变被采集的物联网终端(例如,设备或者传感器)的时候,在不改变程序的情况下,可以直接适配进而实现数据采集。42.图2示出了本公开实施例所提供的一种示例性物联网系统200的示意图。如图2所示,该系统200可以包括物联网平台102、物联网网关210和各种物联网终端106。43.在一些场景下,物联网网关210也可以是主站、主站点或主设备,相应地,物联网终端106可以是从站、从站点或从设备。在一些实施例中,物联网网关210可以是边缘网关,即靠近工业设备、传感器等物理设备的网络边缘侧的网关,主要担负物联网协议转换的功能。44.在一些实施例中,物联网网关210还可以是远程终端单元(remoteterminalunit,rtu),具体可以是指一种针对通信距离较长和工业现场环境恶劣而设计的具有模块化结构的、特殊的计算机测控单元。rtu是构成企业综合自动化系统的核心装置,通常由信号输入/出模块、微处理器、有线/无线通讯设备、电源及外壳等组成,由微处理器控制,并支持网络系统。rtu的硬件主要包括cpu、存储器、以及各种输入输出接口等功能模块。这些模块被集成到电路板中,通过电路板布线完成rtu各功能模块连接。cpu是rtu控制器的中枢系统,负责处理各种输入信号,经运算处理后,完成输出。存储器是rtu记忆系统,用来存储各种临时或永久性数据。rtu设备可以将采集的传感器数据上传到物联网平台102(例如,iot云平台),同时物联网平台102也可以发送控制命令给rtu设备,通过rtu设备来控制设置传感器终端。45.在一些实施例中,物联网终端106可以是传感器终端,例如,温度传感器、湿度传感器、环境传感器、红外报警器等。在一些实施例中,如图2所示,系统200还可以包括监控设备230。该监控设备230可以与物联网平台102进行通信以查看网关及其连接的终端的相关信息,并可以用于对物联网系统200中的各网关的运行状况、各终端的运行状态进行监控。46.以图2为例,物联网网关210与各物联网终端106之间可以通过第一协议212进行通信,物联网网关210与物联网平台102之间可以通过第二协议214进行通信。47.在一些实施例中,用户(例如,部署人员)可以先在物联网平台102中配置物模型以及注册物联网网关210,以建立物联网平台102与物联网网关210的连接。并且,用户(例如,部署人员)还可以在物联网网关210对物联网终端106进行配置,以建立物联网网关210与物联网终端106的连接。48.在一些实施例中,该系统200可以应用在智能园区场景、金融业务场景(例如,银行门店)等。在这些场景中,物联网终端106可以包括,例如,温湿度传感器、红外报警器、pm2.0传感器等。这些物联网终端106可以基于第一协议212与网关或主站进行通信,而将这些数据上传到物联网平台102,就需要按照第二协议214。49.在一些实施例中,第一协议212与第二协议214是不同的通信协议。例如,第一协议212为modbus协议,而第二协议214为消息队列遥测传输(mqtt)协议。又例如,第一协议212为modbusrtu协议,而第二协议214为modbustcp协议。这样,物联网网关210从物联网终端106采集数据所遵循的通信协议和物联网网关210向物联网平台102上传数据所遵循的通信协议就不同。因此,在一些实施例中,物联网网关210中可以存储用于进行协议转换的数据映射表216,如图2所示。50.在一些实施例中,物联网网关210中可以包括用于生成数据映射表216以及调用该数据映射表216的脚本,使得物联网网关210通过执行该脚本就可以实现相应的生成数据映射表216以及调用该数据映射表216来进行数据格式转换的操作。可以理解,物联网网关210中内置的脚本还可以包括用于执行其他操作的脚本,本公开各实施例中物联网网关210所执行的操作均可以是内置于物联网网关210中的脚本来实现的。51.初始状态下,数据映射表216可以是空表,并可以在物联网终端106与物联网网关210建立连接时在数据映射表216中加入相应的配置信息。52.例如,如图2所示,当物联网网关210需要接入新增的物联网终端106来采集该物联网终端的数据以及向其下发消息时,可以将物联网网关210分别与设备300以及对应的物联网终端106建立连接。53.当物联网网关210与物联网终端106建立连接之后,物联网网关210基于与物联网终端106已建立连接的消息,可以认为物联网网关210接收到了添加该物联网终端到物联网系统200的指令。可以理解,除了此处描述的实施方式外,还可以通过其他方式来向物联网网关210发送添加物联网终端的指令。例如,当物联网网关210与物联网终端106建立连接之后,物联网网关210可以向设备300提供确认界面,用户可以通过在设备300上选择确认按钮来向物联网网关210发送添加物联网终端的指令。54.接着,设备300可以显示配置页面,用于供用户填入该物联网终端106的配置信息。55.图3a示出了根据本公开实施例的示例性页面310的示意图。如图3a所示,设备300可以显示配置页面310。在一些实施例中,该页面310可以是物联网平台102所提供的web界面。56.该页面310中可以包括在配置物联网终端106时所需要填写的相关配置信息。其中,需要填写的信息可以进一步分为必须填写的信息和非必须填写的信息。例如,必须填写的信息可以包括该物联网终端106所检测的数据点的名称(简称测点名称)、该物联网终端106所检测的数据的存储地址、数据类型和所属分组等。非必须填写的信息可以包括该物联网终端106的数据读写权限、该物联网终端106所检测的数据的上传模式、单位、对该物联网终端106所检测的数据的描述等等。在一些实施例中,为了提示用户哪些信息是必须填写的信息,可以在相应的栏目前面用红色的“*”来表示,如图3a所示。57.用户(例如,部署人员、工作人员、运维人员等)可以通过设备300在配置页面310中对应填入相应的信息,然后点击确认按钮(如图3a所示),从而向物联网网关210发送相应的配置信息。相应地,物联网平台102也可以接收该配置信息并在物联网平台102中维护该配置信息。通过该web界面,在物联网网关210和物联网平台102中保证变量的一致,实现数据的一一绑定。58.物联网网关210接收用户在该配置页面310中填写的物联网终端106的配置信息之后,可以基于该配置信息,更新数据映射表216。例如,物联网网关210可以调用相应的脚本,基于该配置信息来在数据映射表216中生成物联网终端106对应的在进行协议转换时所需的信息,从而在需要采集物联网终端106的数据并向物联网平台102上传该数据以及从物联网平台102订阅数据并向物联网终端106下发数据时,可以基于该数据映射表216中对应的信息来实现数据格式的转换。59.在一些实施例中,物联网平台102和物联网网关210所维护的各物联网终端106的配置信息均可以被用户查看、修改、增删。60.图3b示出了根据本公开实施例的另一示例性页面320的示意图。61.如图3b所示,用户可以调取在物联网平台102中已经在维护的物联网终端的配置信息,从而展示页面320。例如,该页面320可以通过图2的监控设备230来展示。62.例如,如图3b所示,在页面320中,展示了已经与物联网网关210建立通信连接的湿度传感器和温度传感器的配置信息等。在一些实施例中,如图3b所示,页面330中还提供了一些可以对这些配置信息进行的操作的按钮,从而用户可以在该页面330中选择相应的按钮来对相应的配置信息进行相应的操作(例如,编辑、删除等)。63.图3c示出了根据本公开实施例的另一示例性页面330的示意图。64.如图3c所示,用户可以通过设备300调取物联网网关210中已经在维护的物联网终端的配置信息,从而展示页面330。例如,如图3c所示,在页面330中,展示了已经与物联网网关210建立通信连接的湿度传感器和温度传感器的配置信息以及最近一次修改该信息的时间。在一些实施例中,如图3c所示,页面330中还提供了一些可以对这些配置信息进行的操作的按钮,从而用户可以在该页面330中选择相应的按钮来对相应的配置信息进行相应的操作(例如,编辑、删除等)。65.这样,通过图3b和图3c的配置过程,将采集点和数据模型的属性值一一对应,实现数据的绑定,使得物联网平台102与物联网网关210的数据模型的统一,并可以利用相应的数据映射表216来实现数据转换。并且,通过这样的设计,使得现场部署人员就只需要基于页面310~330就能在物联网平台102与物联网网关210中配置相应的信息,进而实现传感器数据上云(物联网平台102)。66.回到图2,当物联网网关210完成各物联网终端106的配置并建立数据映射表216之后,物联网网关210可以按照第一协议212从物联网终端106中采集第一数据220。在采集第一数据220之后,物联网网关210可以把采集的数据存储在物联网网关本地。67.当需要将采集的数据220上传到物联网平台102时(例如,轮询到该数据220且需对其进行上传),物联网网关210可以调用存储在物联网网关210中的数据映射表216,然后基于该数据映射表216,将第一数据220转换为具有第二协议的数据格式的第二数据222,再按照第二协议214将该第二数据222发送到物联网平台102。68.在一些实施例中,该数据映射表216可以包括用于查询目标信息的目标字段。这样,当物联网平台102需要将第一数据220转换为第二数据222时,则可以先确定第一数据220对应的目标字段(target)的信息(例如,temperature),然后利用该目标字段信息(例如,temperature),在数据映射表216中查询得到该目标字段信息对应的存储地址,然后在所述存储地址中提取目标信息,并根据该目标信息,封装得到第二数据222。69.例如,当第一协议212为modbus协议且第二协议214为mqtt时,物联网网关210可以基于第一协议212从物联网终端106中采集数据,并且,根据数据映射表216中的配置信息,物联网网关210可以将从物联网终端106采集的数据对应存储在相应的存储地址中。该配置信息,不仅包括了数据的存储地址,还可以包括用于查询该数据的目标字段(target)的信息(例如,temperature)。这样,在需要上传该数据到物联网平台102时,物联网网关210可以利用该目标字段的信息,在数据映射表216中查找到相应的配置信息,并获得相应的存储地址,进而在该存储地址中调取相应的数据来生成具有第二协议214的数据格式的第二数据222。例如,通过在数据映射表216中查找target字段为temperature的配置信息,对应的存储地址就是存放相应的物联网终端的数据的地址。70.由于需要基于mqtt协议上传第二数据222,因此,在封装第二数据222时,需要按照mqtt协议要求将数据封装为json(javascriptobjectnotation,js对象简谱)格式,此时,只需要将前述的目标字段及其信息以及从相应存储地址中获取的数据添加到相应的json字段中即可。相应的json字段举例如下:[0071][0072]其中,deviceid字段对应的是物联网终端(该示例为温度传感器)的id,目标字段及其信息为target和temperature,对应的数据(该示例为温度)的值(value)为34.5(℃)。[0073]可以理解,根据需求的不同,上述json字段的内容可以调整,并且还可以增加新字段。[0074]作为一个可选实施例,下面以物联网网关210接入一个温湿度传感器(物联网终端106)为例来说明整个系统200的交互策略。[0075]首先,可以在物联网平台102中利用web界面(例如,图3b的页面320)配置数据模型,定义两个数据属性,humidity和temperature,配置完后如图3b所示。[0076]然后,在物联网网关210的web界面(例如,图3a的页面310)对变量humidity和temperate进行相应的配置,配置结果如图3c所示。[0077]物联网网关210和物联网平台102的web界面保证这两个变量的一致,实现数据的一一绑定。同时,也要保证数据类型的一致,比如double、float、int、bool类型需要定义清楚,数据的单位也定义一致,数据类型是否只读也要保持一致,这样保证上下数据模型保持一致。[0078]在物联网网关210内部,通过web界面的配置形成一个modbus与mqtt的数据映射表(xml文件),其中,例如,数据映射表中可以出现如下的字段:[0079]《itemaddr="4001"target="temperater"storage_addr="2038"reg_num="1"datatype="s16"exact="1"unit="℃"/》;[0080]《itemaddr="4002"target="humidity"storage_addr="2039"reg_num="1"datatype="s16"exact="1"unit="%rh"/》;[0081]目标字段target和web界面的配置保持一致,通过该字段可以实现数据查找。[0082]物联网网关210在上报采集的传感器数据的消息之前,需要先按照约定的mqtttopic发布上线消息,用于通知物联网平台102设备上线。上线消息示例如下:[0083]{[0084]"ver":"1.0",[0085]"did":"00a21125",[0086]"pid":"1234",[0087]"time":1499325090[0088]}。[0089]然后,物联网网关210将采集的温湿度传感器的数据按照相应数据格式封装,示例如下:[0090][0091][0092]这样,物联网网关210按照和物联网平台102约定好的mqtttopic发布消息,数据字段中“ver”表示数据模型的版本,“did”表示物联网网关210的sn号,“pid”表示产品类型,用于约定一类设备。“time”用来表示消息发布的时间戳。[0093]图3d示出了根据本公开实施例的示例性物联网网关210的通信拓扑示意图。[0094]如图3d所示,传感器设备,比如温度传感器、湿度传感器等,可以采用modbus协议规约与物联网网关210进行通信。物联网网关210和物联网平台102之间采用mqtt协议规约通信。[0095]物联网网关210中对于数据映射功能的实现可以由8个模块来实现。如图3d所示,其中:[0096]映射表解析模块2102,负责将数据映射表216解析存储到本地数据结构变量中。[0097]数据查询模块2104,负责根据就json字段中的“target”字段来查询modbus通信所需的寄存器地址和数据内存存储地址。[0098]modbus读寄存器队列2106,负责管理读寄存器数据。[0099]modbus写寄存器队列2108,负责管理写寄存器数据。[0100]消息封装模块2110,负责将modbus采集的数据封装为mqtt通信所需的json字段消息。[0101]mqtt消息订阅模块2112,负责从物联网平台102(例如,mqtt代理服务器)订阅消息。[0102]mqtt消息发布模块2114,负责将消息发布到物联网平台102(例如,mqtt代理服务器)。[0103]modbus通信模块2116,用于与传感器终端之间采用modbus协议规约进行通信。[0104]从图3d所示可知,图3d所示的整个数据链路实现了传感器数据通过网关或者主站上传到物联网平台(例如,iot云平台)的功能,而数据映射表216更加方便地实现了这样一个功能:不管是接入的什么类型的传感器,只需要配置数据映射表就可以实现数据在物联网平台102的展示,而不需要大幅度改动网关或者主站中的程序。[0105]在一些实施例中,数据映射表216可以包括5级目录。其中:[0106]根(root)目录包括根配置信息,具体地,可以包括所述物联网网关的id以及所述第二协议的参数配置信息。该根配置信息,例如,可以用于标记主站或者网关id、mqtt的相关配置。[0107]根配置信息举例如下:[0108]《cfgid="0504304050607"qos="0"subtopic="/setval"pubtopic="/msg"mqttserverip="192.168.1.2"mqttclientid="device123"mqttport="1883"tls="yes"keepalive="60"pwd=""username=""mqttver="v311"》[0109]其中,id为网关id,qos为mqtt的qos等级,subtopic为网关的订阅消息的类型,pubtopic为网关的发布消息的类型,mqttserverip为mqtt代理服务器的ip地址,mqttclientid为网关的mqtt客户端id,mqttport为网关的mqtt端口,tls指代网关的数据传输是否基于安全传输层协议(transportlayersecurity),keepalive是指存活检测机制(在tcp中一个可以检测死连接的机制),“60”是指存活检测机制的检测周期为60s,pwd为网关的密码,mqttver为网关所采用的mqtt协议的版本。[0110]一级目录可以包括一级配置信息,具体地,可以包括所述物联网终端采用所述第一协议的连接方式的配置信息。该一级配置信息,例如,可以用于指定物联网终端采用modbus连接方式的配置信息,比如采用tcp还是rtu的规约方式、采集周期、字节序等信息。[0111]一级配置信息举例如下:[0112]《deviceslavetag="pvws"group="1"link="mb_tcp"comport=""baud=""slaveid="1"byteorder="abcd"mode="slave"ip="10.10.86.106"ethport="502"readtime="100"》[0113]其中,slavetag为作为从设备的物联网终端的标签,group为该物联网终端的分组,link为连接方式(例如,rtu或tcp),comport为所使用的串口,slaveid为作为从设备的物联网终端的id,byteorder为字节序,mode为物联网终端的模式,ip为物联网终端的ip地址,ethport为以太网端口,readtime为多少毫秒读一次。[0114]由于功能码在modbus协议中用于表示信息帧的功能,常用的功能码有03、04、06、16,其中,功能码03的作用是读保持寄存器内容,功能码04的作用是读输入寄存器内容,功能码06的内容是写单个保持寄存器,功能码16的内容是写多个保持寄存器,等等。因此,需要对功能码的信息进行配置。[0115]因此,二级目录可以包括二级配置信息,用于标识所述第一协议(例如,modbus协议)的功能码。[0116]二级配置信息举例如下:[0117]《tableaction="read_coils"》《/table》《tableaction="read_discrete_inputs"》《/table》[0118]其中,tableaction指代功能码。[0119]由于modbus协议的数据模型定义了四种可访问的数据,分别是:离散量输入(discreteinput)、线圈(coils)、输入寄存器(inputregisters)、保持寄存器(holdingregisters)。modbus协议允许设备将四种数据分别映射到不同的存储区块中,各个区块之间相互独立,使用不同的功能码可读取到不同的数值。[0120]并且,该数据模型是对可访问数据的一种抽象,数据模型中的每一种数据都最多允许有65536个元素(编号1~65536),元素的地址编号从0开始,因此地址的范围为:0~65535。在实际使用时须将其映射到真实的物理存储区才能被访问。[0121]为了简化数据模型与设备存储区的对应关系,引入了一种地址模型。该模型通过编号的方式对不同类型数据进行区分,各数据的地址编号请看下面的表1。[0122]表1[0123]modbus数据模型/数据区modbus地址编号线圈0离散量输入1输入寄存器3保持寄存器4[0124]modbus地址模型的编号从1开始。[0125]由于每一种数据都最大支持65536个元素,因此理论上,对于线圈型数据来说,其地址范围为:000001~065536;类似的,离散量输入,其地址范围为:100001~165536;输入寄存器,其地址范围为:300001~365536;保持寄存器,其地址范围为:400001~465536。[0126]由于65536是比较大的数值,实际应用一般不需要这么大的存储区,因此可以采用的是10000以内的地址范围,即:[0127]线圈地址范围:00001~09999;[0128]离散量输入地址范围:10001~19999;[0129]输入寄存器地址范围:30001~39999;[0130]保持寄存器地址范围:40001~49999。[0131]有了该地址模型,我们就可以从modbus寄存器地址判断要访问的区块的类型。比如,地址40001就是保持存储器的第一个值的地址,而10001就是离散量输入的第一个值的地址。要注意的是,保持寄存器和输入寄存器的每个值的大小为16bits(字),而线圈和离散量输入每个值的大小为1bit(位)。[0132]鉴于此,三级目录可以用于单播轮询所述物联网网关采集的数据。三级目录可以包括三级配置信息,其中包括单播轮询的起始地址的信息。[0133]三级配置信息举例如下:[0134]《parastartaddr="2168"readregnum="2"basestorage="2038"》[0135]其中,startaddr为轮询的数据的起始寄存器地址,readregnum为读寄存器的个数,basestorage为轮询的数据的实际数据存储地址的起始地址。上述配置信息示例性地展示了一个物联网终端的一个属性的配置信息,换言之,采用上述配置信息,当轮询到该信息对应的物联网终端的数据时,可以以startaddr为起始地址获取2个寄存器的数据,然后将数据写入basestorage来等待上传。[0136]四级目录可以包括四级配置信息,用于指定每个寄存器属性的信息。[0137]四级配置信息举例如下:[0138]《itemaddr="2168"target="temperature"storage_addr="2038"reg_num="1"datatype="s16"exact="1"unit="℃"/》[0139]其中,addr为采集相应物联网终端的数据对应的寄存器地址,target为用于查询信息的目标字段,storage_addr为采集相应物联网终端的数据对应的实际数据存储地址,reg_num为读寄存器的个数,datatype为数据类型,exact为上传的数据的倍率,unit为采集相应物联网终端的数据的单位。[0140]上述5级目录具有对应的层级关系。其中,因为物联网网关210上传信息时只需要与物联网平台102交互,因此根目录记载了物联网网关210的配置信息以及该网关210与平台102进行交互的mqtt协议的配置信息等基础配置信息。其次,因为物联网网关210需要和多个物联网终端106进行通信,而每个物联网终端106所采用的modbus协议的配置信息都可能存在一些不同,因此一级目录记载了物联网网关210所连接的各物联网终端106所使用的modbus协议的一些基础配置信息。进一步地,因为modbus协议的核心参数是功能码,其与modbus协议的数据模型和地址模型密切相关,因此在二级目录中记载了每个物联网终端106所采用的modbus协议的功能码的配置信息。接着,由于每个物联网终端106对应的寄存器地址和数据存储地址的不同,在三级目录中记录了物联网网关210所需要轮询的各终端的各数据对应的寄存器地址信息和数据存储地址信息。最后,在四级目录中记录了各物联网终端106的详细配置信息。[0141]由此可见,采用这样的层级关系的数据映射表,也可以看作以根目录为根节点的树形结构。通过解析这5级目录的配置文件信息,可以形成一个字典链表结构,该字典链表结构可以是一个可以完成快速查找的数据结构,能够比较方便数据的解析。[0142]其中,三级目录的startaddr和四级目录的addr都是modbus寄存器的地址,四级目录的basestorage和storage_addr都是modbus的数据存储地址,这就将modbus的寄存器地址和实际的数据存储地址形成了一一映射。[0143]modbusrtu协议中的指令由地址码(一个字节)、功能码(一个字节)、起始地址(两个字节)、数据(n个字节)、crc校验码(两个字节)五个部分组成。而modbustcp协议是在modbusrtu协议前面添加mbap报文头,由于modbustcp是基于可靠连接的服务,modbusrtu协议中的crc校验码就不再需要,所以在modbustcp协议中没有crc校验码。[0144]由此可见,modbusrtu协议与modbustcp协议的差别主要在于mbap报文头和crc校验码,而地址码、功能码、起始地址和数据都是相同的,并且地址码、功能码、起始地址和数据的信息在数据映射表中均能查询到。并且,实现modbusrtu协议与modbustcp协议的转换主要在于寄存器地址与实际数据存储地址的映射关系。因此,在一些实施例中,所述数据映射表216可以包括寄存器地址和数据存储地址的映射关系,用于实现modbusrtu协议与modbustcp协议的转换。这样,本公开实施例的数据映射表216不仅可以实现modbus协议与mqtt协议的转换,还可以实现modbusrtu协议与modbustcp协议的转换,从而拓宽了应用范围。[0145]回到图2,可以看到,在物联网网关210中内置前述数据映射表216的前提下,由于数据映射表216包括了mqtt和modbus的配置信息,因此,不仅可以实现modbus向mqtt的转换,也能反向实现mqtt向modbus的转换。因此,在一些实施例中,当物联网平台102需要将物联网网关210订阅的数据224下发到物联网网关210时,物联网网关210可以接收按照第二协议(例如,mqtt)传输的第三数据224,然后调用存储在物联网网关210中的数据映射表216,并基于该数据映射表216,将第三数据224转换为具有第一协议(例如,modbus)的数据格式的第四数据226,再按照第一协议212将该第四数据226发送到对应的物联网终端106。[0146]mqtt是一个基于客户端-服务端消息发布/订阅传输协议,例如,网关或者主站可以订阅消息主题"/setval",然后物联网系统200根据目标字段target在数据映射表216中查找到modbus对应的寄存器的地址、功能码、数据类型等信息,然后添加到网关或者主站的写命令队列,再基于该队列将相应的数据发送给对应的物联网设备或者子站。[0147]从上述实施例可以看出,本公开实施例涉及工业自动化领域,具体涉及一种modbus规约和mqtt规约可配置的数据映射方法,实现不同规约之间的数据转换、目标查找。[0148]本公开实施例中,主站或者网关向本地站控端或者云平台上送采集的数据、发布mqtt消息,云平台服务端订阅网关或者主站发布的消息就可以得到采集数据。同时采用该映射表的中addr寄存器地址和内存地址直接的映射关系,可以实现modbusrtu到modbustcp的转换,本地站控端可以采用modbustcp的直接采集网关或者主站采集的modbusrtu的数据。[0149]本公开实施例中,采用一个可配置的映射表,系统解析配置映射表,在内部形成一个可查找节点的数据链表,实现modbus到mqtt的映射。通过该映射表,云平台或者本地站控点可以下发命令给被采集设备,被采集设备也可以通过映射表传输给云平台数据,同时系统策略逻辑也可以通过映射表快速查找对应的值进行逻辑处理。[0150]通过本公开实施例的数据传输方法,可以实现modbusrtu到modbustcp的映射,也可以实现modbus规约到mqtt规约数据的映射;可以实现当改变被采集的设备或者传感器的时候,不改变程序的情况下,直接适配实现数据采集;系统策略逻辑也可以通过映射表快速查找对应的值进行逻辑处理。[0151]通过本公开实施例的数据传输方法,可以提高网关或者主站通信效率,当更换从机采集设备,只需要修改映射表,不修改程序,就可以实现部署。特别是,本公开实施例只需要修改网关中的映射表(xml文件)的配置信息,该文件较小,易于存储和修改。而现有技术一般将这些数据存储在数据库中,数据量较大且修改不方便。[0152]本公开实施例还提供了一种数据传输方法。图4示出了本公开实施例所提供的示例性方法400的流程示意图。该方法400可以应用于物联网网关,并且,如图4所示,该方法400可以进一步包括以下步骤。[0153]在步骤402,可以接收按照第一协议(例如,图2的协议212)传输的第一数据(例如,图2的数据220)。[0154]在步骤404,可以调用存储在所述物联网网关(例如,图2的网关210)中的数据映射表(例如,图2的表216)。[0155]在一些实施例中,所述数据映射表包括5级目录,其中,根目录包括所述物联网网关的id以及所述第二协议的参数配置信息,一级目录包括所述物联网终端采用所述第一协议的连接方式的配置信息,二级目录用于标识所述第一协议的功能码,三级目录用于单播轮询所述物联网网关采集的数据,四级目录用于指定每个寄存器属性的信息。[0156]在步骤406,可以基于所述数据映射表,将所述第一数据转换为具有第二协议(例如,图2的协议214)的数据格式的第二数据(例如,图2的数据222)。[0157]在一些实施例中,所述数据映射表包括用于查询目标信息的目标字段,基于所述数据映射表,将所述第一数据转换为具有第二协议的数据格式的第二数据,包括:确定所述第一数据对应的目标字段信息;利用所述目标字段信息,在所述数据映射表中查询得到所述目标字段信息对应的存储地址;在所述存储地址中提取目标信息;以及根据所述目标信息,封装得到所述第二数据。这样,基于数据映射表实现了数据的快速查找和格式转换。[0158]在步骤408,可以按照所述第二协议发送所述第二数据。[0159]在一些实施例中,所述第一数据为所述物联网网关与物联网终端(例如,图2的终端106)之间传输的数据,所述第二数据为所述物联网网关与物联网平台(例如,图2的平台102)之间传输的数据。[0160]在一些实施例中,所述第一协议为modbus协议,所述第二协议为消息队列遥测传输mqtt协议,所述物联网终端为传感器终端。[0161]在一些实施例中,所述第一协议为modbusrtu协议,所述第二协议为modbustcp协议,所述数据映射表包括寄存器地址和数据存储地址的映射关系,用于实现modbusrtu协议与modbustcp协议的转换。[0162]在一些实施例中,方法400还包括:接收按照第二协议传输的第三数据(例如,图2的数据224);基于所述数据映射表,将所述第三数据转换为具有第一协议的数据格式的第四数据(例如,图2的数据226);以及按照所述第一协议发送所述第四数据,从而实现反向的数据传输。[0163]在一些实施例中,方法400还包括:响应于接收到新增物联网终端的配置信息(例如,用户在图3a中填写的配置信息),基于所述新增物联网终端的配置信息,更新所述数据映射表。[0164]需要说明的是,本公开实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本公开实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。[0165]需要说明的是,上述对本公开的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。[0166]基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种电子设备,包括一个或者多个处理器、存储器;以及一个或多个程序;其中,所述一个或多个程序被存储在所述存储器中,并且被所述一个或多个处理器执行,所述程序包括用于执行根据所述方法400的指令。[0167]图5示出了本实施例所提供的一种更为具体的电子设备500的硬件结构示意图。该设备可以用于实现图2的物联网网关210。在一些实施例中,该设备还可以用于实现图2的各物联网终端106以及物联网平台102、设备300和监控设备230。如图5所示,该设备可以进一步包括:处理器502、存储器504、输入/输出接口506、通信接口508和总线510。其中处理器502、存储器504、输入/输出接口506和通信接口508通过总线510实现彼此之间在设备内部的通信连接。[0168]处理器502可以采用通用的cpu(centralprocessingunit,中央处理器)、微处理器、应用专用集成电路(applicationspecificintegratedcircuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。[0169]存储器504可以采用rom(readonlymemory,只读存储器)、ram(randomaccessmemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器504可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器504中,并由处理器502来调用执行。[0170]输入/输出接口506用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。[0171]通信接口508用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。[0172]总线510包括一通路,在设备的各个组件(例如处理器502、存储器504、输入/输出接口506和通信接口508)之间传输信息。[0173]需要说明的是,尽管上述设备仅示出了处理器502、存储器504、输入/输出接口506、通信接口508以及总线510,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。[0174]上述实施例的电子设备用于实现前述任一实施例中相应的方法400,并且具有相应的方法实施例的有益效果,在此不再赘述。[0175]基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种包含计算机程序的非易失性计算机可读存储介质,当所述计算机程序被一个或多个处理器执行时,使得所述处理器执行所述方法400。[0176]本实施例的计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。[0177]上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的方法400,并且具有相应的方法实施例的有益效果,在此不再赘述。[0178]基于同一发明构思,与上述任意实施例方法400相对应的,本公开还提供了一种计算机程序产品,其包括计算机程序指令。在一些实施例中,所述计算机程序指令由计算机的一个或多个处理器可执行以使得所述处理器执行所述的方法400。对应于方法400各实施例中各步骤对应的执行主体,执行相应步骤的处理器可以是属于相应执行主体的。[0179]上述实施例的计算机程序产品用于使处理器执行如上任一实施例所述的方法400,并且具有相应的方法实施例的有益效果,在此不再赘述。[0180]所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本公开实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。huo[0181]另外,为简化说明和讨论,并且为了不会使本公开实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(ic)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本公开实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本公开实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本公开实施例。因此,这些描述应被认为是说明性的而不是限制性的。[0182]尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态ram(dram))可以使用所讨论的实施例。[0183]本公开实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本公开实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。当前第1页12当前第1页12
再多了解一些

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

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

相关文献