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

一种基于自定义设备协议库及大数据架构的云平台的制作方法

2021-10-24 09:22:00 来源:中国专利 TAG:自定义 桥梁 架构 监测 协议


1.本发明涉及桥梁健康监测领域,特别涉及一种基于自定义设备协议库及大数据架构的云平台。


背景技术:

2.随着物联网技术、大数据和互联网的发展,桥梁健康监测领域也得到了飞速的发展。目前,典型的桥梁监测系统包括采集层、传输层和应用层。采集层利用各种传感器技术对动静态数据进行获取。传输层将数据传输到数据处理平台上。应用层对数据做近一步的展示和处理。在采集层,通常可采用在工控机上运行采集程序的方式来采集数据。然而在现有技术中,由于不同用途的传感器如温度、位移、应变传感器,都有不同的数据表现形式,即使是同一种类型的传感器如温度传感器,有的是通过串口向连接温度传感器的采集仪发送命令来采集,有的是通过串口直接向温度传感器发送命令来采集,并且不同厂家的传感器采集命令也不同,不同传感器串口通讯时,串口参数如波特率,奇偶校验位也不同。这就导致了系统需要做大量的工作如写不同的采集程序来支持不同厂家不同类型的传感器和采集仪。
3.在采集层,一些采集程序都有自已依赖的运行环境,比如用java语言运行的程序,就必须安装jdk,并配置环境变量,这就增加了采集端部署的工作量。在传输层,由于采集层采集到的数据是依据传感器和采集仪来划分的,这就需要传输层去适配不同的传感器和采集仪。在展现层,许多平台数据处理程序仅仅是把数据存放到数据库中,数据展示程序定时的查询数据库,数据展现的实时性取决于数据展示程序查询数据库的频率。查询数据频率越高,数据库压力越大,查询数据频率低,监测系统的实时性越差。


技术实现要素:

4.本发明提出一种基于自定义设备协议库及大数据架构的云平台,该云平台具有快速便捷的支持各种厂家不同型号传感器和采集仪的能力,解决了工控机上环境的初始化、采集程序自动化部署和运行的问题,解决了监控数据的实时展示问题。
5.为了实现以上目的,本发明采用的技术方案为:
6.一种基于自定义设备协议库及大数据架构的云平台,包括基于storm的流式大数据处理程序、云平台管理程序、数据展现程序、docker hub镜像仓库、分布式消息队列kafka集群和分布式缓存redis;
7.云平台管理程序自定义了设备协议库。在自定义的设备协议库中,对于基于rs485通信的采集仪或传感器,创建了用于描述其采集命令和采集结果的模版语言,利用该模版语言,云平台管理程序可以对采集仪或传感器的采集命令和采集结果进行快速配置,配置后,设备协议库可以支持该设备的采集过程。从而,基于自定义的设备协议库,可以快速便捷的支持各种物联网桥梁监控设备。在通过云平台管理程序对物联网桥梁监控系统配置后,工控机从云平台管理程序中下载并运行工控机初始化程序,工控机初始化程序能自动
初始化工控机运行环境,从docker hub镜像仓库下载工控机采集程序镜像,从云平台管理程序获取工控机的配置,并启动工控机采集程序进行采集,采集程序将采集到的数据以自定义的数据格式通过网络发送到云平台分布式消息队列kafka集群中,基于storm的流式大数据处理程序从分布式消息队列kafka集群中获得数据,对数据进行处理,并将处理后的数据保存到分布式缓存redis中,数据展现程序从分布式缓存redis中获取数据后进行实时展示。
8.本发明的进一步技术:
9.优选的,云平台提出了“虚拟采集仪”和“设备库”的概念,对于直接通过串口与工控机相连的传感器,传感器连接到虚拟采集仪,虚拟采集仪通过串口连接到工控机,工控机采集程序向传感器发送采集命令获取数据的过程,为工控机向虚拟采集仪发送采集命令,虚拟采集仪通过传感器获取数据,再把结果返回给工控机采集程序;设备库是指包括不同厂家不同型号的传感器、采集仪和虚拟采集仪,自定义设备协议库是指用通用的方式来描述设备库里的设备,对于基于rs485通信的采集仪(包括虚拟采集仪),提供了模版语言描述采集仪的采集命令和采集结果。对于不是基于rs485通信的采集仪,和传统的监控系统一样,需开发对应的采集程序,目前系统内置了一些常用设备采集程序。不是基于rs485通信的采集仪不在本发明的支持范围之内。
10.优选的,云平台管理程序对物联网桥梁健康监测系统进行了抽象和并提供了配置功能,云平台管理程序将桥梁健康监测物联网系统抽象为传感器、采集仪(包括虚拟采集仪)、工控机、项目以及它们之间的关系,它们之间的关系可以理解为一个桥梁健康监测物联网系统是一个项目,一个项目包括多个工控机,一个工控机包括多个采集仪,一个采集仪可以连接多个传感器,云平台管理程序提供了配置健康监测物联网系统的功能。
11.优选的,云平台提供了一种部署和启动工控机采集程序的方式,在云平台管理程序配置完桥梁健康监测物联网系统后,工控机从云平台管理程序中下载并运行工控机初始化程序,输入云平台管理程序的账户和密码,登录成功后选择项目和工控机设备,之后在点击初始化环境按钮,这时工控机采集程序会给工控机安装docker服务程序,之后会去docker hub镜像仓库下载采集端采集程序镜像,从云平台获取工控机的配置信息,工控机的配置信息包括工控机上采集仪的信息,工控机的信息以及云平台的信息,紧接着启动采集端镜像开始采集数据,把采集到的数据以自定义的数据格式发送到云平台的分布式消息队列kafka集群中。
12.优选的,自定义的数据格式是由包头和数据包组成,其中包头共10个字节,由数据传输方式(3个字节),厂家编码(3个字节),分隔符(1个字节)和采集仪采集协议标准(3个字节)标准组成。本发明仅针对低频采集。数据包是以json格式传输,包括采集仪i d,采集时间和通道数据。
13.优选的,云平台提供了一种实时数据处理技术。采集程序把采集到的数据以自定义的数据格式发送到云平台的分布式消息队列kafka集群里,基于storm的流式大数据处理程序从云平台的分布式消息队列kafka集群获取数据,并对数据做实时的处理,并把处理的结果存放在分布式缓存redis中。云平台数据展示程序从分布式缓存kafka集群中获取实时的数据,并在页面中展示。
14.本发明具有以下有益效果:
15.本云平台具有通用性强、自动化程度高、可扩展性好、部署简单方便、数据实时性高的特点。本云平台提供了自有的设备库,自定义的用于描述采集仪采集命令和返回结果的模版语言,以及自有的采集数据传输协议,并利用基于storm的流式大数据处理程序来实时处理和展现监控数据。本云平台还具有通过在云平台管理程序配置传感器、采集仪和工控机等设备信息,自动在工控机上部署和运行采集程序的能力。
附图说明:
16.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图;
17.图1为本发明平台组成图;
18.图2为本发明系统架构图;
19.图3为本发明采集仪采集命令和采集结果示意图。
具体实施方式:
20.下面将结合本实用发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
21.一种基于自定义设备协议库及大数据架构的云平台,包括基于storm的流式大数据处理程序、云平台管理程序、数据展现程序、docker hub镜像仓库、分布式消息队列kafka集群和分布式缓存redis;
22.云平台管理程序自定义了设备协议库,对物联网桥梁监控系统进行了抽象,并提供了配置功能,在通过云平台管理程序对物联网桥梁监控系统配置后,工控机从云平台管理程序中下载并运行工控机初始化程序,工控机初始化程序能自动初始化工控机运行环境,从docker hub镜像仓库下载工控机采集程序镜像,从云平台管理程序获取工控机的配置,并启动工控机采集程序进行采集,采集程序将采集到的数据以自定义的数据格式通过网络发送到云平台分布式消息队列kafka集群中,基于storm的流式大数据处理程序从分布式消息队列kafka集群中获得数据,对数据进行处理,并将处理后的数据保存到分布式缓存redis中,数据展现程序从分布式缓存redis中获取数据后进行实时展示。
23.在软件层面上,云平台管理程序提出了虚拟采集仪的概念。传统的传感器数据的采集有两种方式:
24.(a)采集程序直接从传感器获得,
25.(b)传感器连接在采集仪的采集通道上,采集程序通过采集仪来获得数据。
26.本云平台规定对于方式(a),可以理解为:传感器连接在一个虚拟采集仪的采集通道上,采集程序是通过向虚拟的采集仪发送命令来获取的数据。
27.进一步的,在软件层面上,云平台管理程序提出了设备库的概念,设备库是用来管理不同厂家不同型号的传感器和采集仪(包括虚拟采集仪)。在设备库里创建这些设备时,需要提供设备的基本信息和采集信息。对于采集仪(包含虚拟采集仪)来说,除基本信息外,还需要提供采集仪的类型,采集相关的波特率、校验位、数据位、停止位,采集命令和返回结
果的格式。
28.再进一步的,对于设备库中基于rs485通信的采集仪或传感器,本云平台自定义了一套模版语言来描述这些采集仪和传感器的采集命令和返回结果。通常情况下,采集命令由标识采集仪或传感器的地址信息、采集命令码、数据信息和校验信息组成。如果使用通用的方式来描述采集命令,可以把采集命令拆分为设备地址码、采集命令、数据信息和校验方式。考虑到要支持各种厂家的设备,并具有更高的扩展性和更易于理解的表达方式,本发明将采集命令中变的部分和不变的部分进行分离,使用自定义的模版语言来描述。举例来说。某厂家的采集命令为以16进制的方式发送0103 00000002c40b,其中采集设备地址码为01,功能码为03,数据信息为00000002,校验信息为c40b。对于同一厂家同一型号的采集仪,设备地址是可变的,采集命令和校验方式是不变的,数据信息可能是变的,把所有变化的东西用变量来表示如设备地址,而不变的东西都放到模版里,如0300000002。使用模版语言描述为${address}0300000002${crc(lowandhigh)},其中address表示设备485地址,可在配置程序中配置设备地址为01即address=01,${crc(lowandhigh)}表示使用crc做高低位数据校验,可在配置程序中配置数据校验方式为crc高低位校验(低位在前,高位在后)。在自定义的模版语言中,把变量分为系统变量和自定义变量,如系统变量address表示设备地址,系统变量crc(lowandhigh)表示crc低位和高位校验。自定义变量使用“变量名=变量值”来表示如startflag= 就定义了startflag值为 ,在模版里可以用${startflag}来代替 。根据一个采集命令采集的是一个通道的数据还是多个通道的数据,可以把采集命令分为一个通道的数据采集和多个通道的数据采集。一个通道的数据采集中,又可以根据采集地址不同分为:直接通过设备的地址进行采集和通过采集仪地址和通道编号采集,多个通道的数据采集是通过采集仪的地址采集所有通道的数据。
29.采集结果的描述与采集命令类似,一般情况下,采集结果通常由设备地址、功能码、数据信息和校验位组成,在采集结果中,使用模版变量来表示同一类型传感器中变化的部分如设备地址码、数据信息。根据采集结果是单个通道的数据,还是多个通道的数据,可以把采集结果分为:
30.(i)单通道采集结果
31.(ii)多通道采集结果。
32.对于采集结果,模版语言中的变量使用括号来标记每个变量占用的字节数,如data1(4)表示data1占用了4个字节,ignoredata(6)表示被忽略的数据占用了6个字节。
33.采集结果中,多通道的采集结果可以看作多个单一通道采集结果组合在一个,如定义channeldata表示一个通道的数据,channeldata(8)就表示8个通道的数据,channeldata(16)就表示16个通道的数据。如某厂家的电流型信号采集仪返回的8通道采集数据为> 006393 007308 007301 005571 002002

002500

002497

00249827其中>为起始符, 或

为通道数据分隔符,8个通道的数据为:006393,007308,007301,005571,002002,002500,002497,002498。使用模版描述语言用channeldata=${ignoredata(1)}${data1(6)}表示一个通道。用>${channeldata(8)}${crc(highandlower)}表示采集结果。其中ignoredata(1)表示忽略了第一个字节,data1(6)表示该通道返回的第一个数据,该数据占用6个字节。若一个通道有多个数据,如3个6字节的数据可以使用${data1(6)}${data2(6)}${data3(6)}来表示。最终程序会提取出datan,floatdatan,reversefloatdatan作为通道
的采集结果。channeldata(8)表示8个通道的数据,每个通道的数据都如channeldata所描述的一样。表1列举出了模版语言的系统变量名、含义和适用范围。
34.[0035][0036]
再进一步的,如果用户使用的设备在设备库中不存在,则用户必须使用云平台管理程序来在设备库中添加该设备。
[0037]
再进一步的,云平台管理程序对物联网桥梁健康监测系统进行了抽象和并提供了配置功能。云平台管理程序将桥梁健康监测物联网系统抽象为传感器、采集仪(包括虚拟采集仪)、工控机、项目以及它们之间的关系,它们之间的关系可以理解为一个桥梁健康监测物联网系统是一个项目,一个项目包括多个工控机,一个工控机包括多个采集仪,一个采集仪可以连接多个传感器。云平台管理程序提供了配置健康监测物联网系统的功能。
[0038]
再进一步的,云平台管理程序提供了配置功能来配置物联网桥梁健康监测系统。云平台管理程序配置传感器时需要配置传感器的厂商、名称、类别、设备型号等基本信息。配置采集仪时,需要配置设备厂商、类别、设备型号等基本信息、采样频率、采集命令、采集结果、采集仪与传感器的通道关系,其中采集命令和采集结果是通过自定义的模版描述语言来配置。云平台管理程序配置工控机时,需要配置工控机的基本信息如操作系统版本以及工控机串口与采集仪和虚拟采集仪的关系。云平台管理程序配置项目时,需要配置项目的基本信息,以及项目和工控机的关系。
[0039]
再进一步,配置完成后,通过云平台管理程序会生成工控机的配置信息,工控机的配置信息生成后会保存在数据库表中。
[0040]
再进一步,工控机从云平台管理程序中下载并运行采集端初始化程序,采集端初始化程序需要输入云平台的账户和密码,登录成功后会,云平台会返回用于认证的token,可用的项目列表和工控机设备列表。
[0041]
再进一步,用户选择相应的应用和工控机设备,并点击初始化环境按钮,这时工控机初始化程序会在工控机上安装docker镜像服务程序,docker镜像服务程序程序安装成功后,会去dockerhub镜像仓库下载采集端镜像。
[0042]
再进一步,采集程序会去云平台获取运行镜像所需的配置信息。即发送当前工控机的machineid,云平台会返回采集端镜像程序配置文件,该配置信息定义了2个采集仪(昆仑海岸4118采集仪和北京基康采集仪)的信息、工控机的信息、云平台的地址和分布式消息主题。
[0043]
再进一步,启动采集端采集程序读取上一步返回的配置信息,并开始采集数据,把采集到的数据以自定义的格式向平台发送数据。在自定义的数据传输格式中,每个数据包的数据由包头和数据组成。
[0044]
数据包=包头 数据
[0045]
包头=数据传输方式(3个字节) 厂家编码(3个字节) 分隔符(1个字节) 采集协议标准(3个字节)
[0046]
数据包头长度(字节)说明数据传输方式3dtu/net厂家编码3bgk/klm等分隔符1.采集协议标准3485/486/232等
[0047]
目前桥梁健康监测领域传感器采集数据的频率分为高频和低频,把小于1hz的频率定义为低频采集,大于或等于1hz的频率定义为高频采集。本发明仅针对低频数据。数据=以json字符串的形式展示了传感器id,采集时间,通道号及其数据,数据传输方式共3个字节,针对本发明,用dtu表示。dtu表示将串口数据转换为数据传输单元.
[0048]
采集仪由于是由不同厂家生产的,因此采集到的数据的样式,范围是不同的。所以用不同的编号来表示不同的厂家。如昆仑海岸klm,北京基康bgk。
[0049]
采集协议标准表示采集程序获取采集仪的协议标准,如485协议,232协议,486协议。
[0050]
数据包数据包括采集仪id、采集的时间和通道的数据。采集仪id用来标示不同的采集仪设备(包括虚拟的采集仪),其值由平台在创建采集仪时生成,包含在平台返回的工控机配置信息中。采集的时间自1970月1日到采集时刻经历的毫秒数,用time表示。数据包括了各个通道上的数据用data表示。每个通道用no来表示,同一通道上可能有多个数据,使用serial来区分。val表示对应的数据。
[0051]
再进一步,采集程序以固定的格式向平台kafka集群发送数据。而不是直接发送到平台上某个服务。这样做的好处在于:分布式消息队列kafka集群具有高可靠性,不会因为集群里的某一台机器挂了而停止服务。业务之间相互解耦,使用kafka集群后,采集程序并不依赖于流式数据处理程序。kafka集群自身具有高吞吐、低延迟等特性。
[0052]
再进一步,云平台上运行的基于storm的流式大数据处理程序从kafka集群中获得数据,对于基于storm的流式大数据处理程序来说,可以定制出各种bolt来进行业务处理,如计算传感器原始数据bolt,实时告警处理的bolt,数据持久化等。
[0053]
再进一步,基于storm的流式大数据处理程序处理业务的bolt,将与前台展示相关的数据如告警数据,传感器的实时数据,设备的状态,发布到分布式缓存redis里,如告警的信息,根据不同的应用和级别,来存储出现问题的设备id。
[0054]
再进一步,数据展示程序从分布式缓存redis里获取最新的数据在网页上做实时的展示。
[0055]
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜