基于MQTT的混凝土泵车机群数据接入系统设计
2020-07-06邓子畏朱红求唐朝晖黄科科
邓子畏 朱红求 唐朝晖 黄科科
摘 要:针对远程数据采集和解析过程中各设备制造企业数据协议不一致的问题,设计了一种基于MQTT的混凝土泵车机群数据接入系统。该系统基于MQTT设计了统一的应用层消息协议,边缘层采用蜂窝网络进行远程数据传输。服务器端采用分布式和集群架构高速处理超大并发数据,利用配置和脚本结合的方式实现了对新数据协议的高度可扩展。数据接入测试实验验证了本系统的有效性。
关键词:泵车机群;数据接入;数据解析;MQTT
中图分类号:TP274.2 文献标识码:A
文章编号:1003—6199(2020)02—0001—05
Abstract:A data access system for concrete pump truck group based on MQTT is designed to solve the problem of inconsistent data protocol among equipment manufacturers for remote data acquisition and analysis. The system designs a unified application layer message protocol based on MQTT,and the edge layer uses cellular network for remote data transmission. The server adopts the distributed and cluster architecture to process the super-large concurrent data at high speed,and high scalability to new data protocols is achieved by combining configuration and script. Data access test experiments verify the effectiveness of the developed system.
Key words:concrete pump truck group;data access system;data parsing;MQTT
隨着信息技术和人工智能技术的发展,工程机械设备的远程监控与智能故障诊断已经成为当今工程机械智能化的发展趋势[1]。完整真实的数据源是智能化方法的分析基础和证据支持,有效的数据获取至关重要[2]。然而,由于缺乏统一的数据采集和存储标准,不同工程机械设备厂商各自设计开发数据协议和采集平台,大量的重复建设导致资源浪费,并给数据分析带来了困难。
云计算技术的发展给公共数据平台的建设创造了条件[3]。在建设公共数据采集系统过程中,数据协议不一致导致系统数据对接困难。为了解决这一问题,通常采取边缘层解析转换、服务器端开发扩展、配置化、脚本解析等手段实现不同数据协议的数据接入。上述数据接入方式会带来了终端成本增加、服务器端维护成本高、接入周期延长等问题。
在综合分析各主流接入方案的基础上,设计基于MQTT的混凝土泵车机群数据接入系统,通过融合协议封装、配置、动态脚本的联合方案,实现低成本开发数据终端,并快捷接入新的数据通信协议数据。研发的混凝土泵车机群数据接入和处理系统,方便快捷地接入各类数据协议的混凝土泵车机群,为机群设备远程智能化监控创造了条件。
1 系统设计
1.1 系统架构
系统从混凝土泵车机群电控箱的控制器采集数据,封装后通过蜂窝无线网络传输到远程服务器端。服务器对数据进行解析并存储、发布,供各类数据应用使用。系统的整体架构如下图1所示:
系统采用具备RTU基本通讯功能的终端与车辆电控系统的PLC对接,通过CAN总线与PLC通信,获取设备运行数据,并根据设计的封装协议对用户数据进行封装。然后,基于消息队列遥测传输协议(Message Queuing Telemetry Transport,MQTT)通过蜂窝网络无线传输,将信息上传到服务器端。服务器端收到信息后,对信息进行解包,选择对应的路由解析出所有的参数,根据终端运行配置选择进行存储和发布。具体的数据流转如下图2所示:
1.2 统一封装协议设计
由于不同厂家的数据协议各不相同,服务器端无法直接识别用户数据的内容。为了降低终端设计开发的成本,将数据协议解析放在了服务器端,充分利用云计算的强大计算能力,从而提高设备接入的并发量。为了使服务器端能统一识别不同厂家的数据协议,参考MQTT v3.1.1的协议结构[4],设计了统一的封装协议对用户数据进行封装,封装后的数据在MQTT消息payload中进行传输。设计的封装协议栈如下图3所示:
封装协议的消息头部分包含了统一的通信控制参数,定义了消息的序号、生成时间戳、消息类型、消息标题、协议版本号,固定长度为9个字节,是通信消息中最重要的部分。固定消息头的具体结构如下图4所示:
封装协议并不严格规定消息体(Payload)的格式,消息体内容长度可变,包含参数与参数长度两类信息,用户数据也作为其中一个参数进行传输,这正是封装协议能够封装其他各类数据协议的关键所在。所以在终端对用户数据进行封装的时候,无须关心用户数据的具体内容,只需要知道这个用户数据是运行数据还是控制数据即可,这在定制终端的时候,直接根据CANID的分配即可体现出来[5]。消息尾部设有校验值(Check Value),用来校验消息完整性和准确性。
整个测试试验一共运行稳定运行157小时,数据处理峰值为42477条/秒,处理数据超过161亿条,解析出参数超过644亿个。经过数据统计分析,多次测试的数据丢失率为0,实现了大规模机群下的数据准确采集。
2 系统实际应用
在设计开发统一接入服务平台的基础上,构建了工程机械设备集中管理平台。集中管理平台采集的数据主要包含定位数据、通讯数据、电控数据、运行数据等,用户数据协议中的部分运行数据如下表1所示。
分析用户的数据协议,大于1个字节的数据按照字节参数处理,占1位的开关量,可以按照位参数进行处理。有些数据含有小数,为了在传输过程中保持精度,对数据进行了放大处理,在配置解析的时候可以通过线性校正进行复原。在GPS数据中,为了兼容全球位置,终端通过字母标识符对东经、西京、南纬、北纬进行区分。终端定位信号统一的行为,可以通过编写信号后处理脚本进行处理。根据分析结果,将信号配置与脚本在接入平台上的解析规则模块进行设置,在终端数据到达后,通信系统会获取这些解析规则并进行缓存,应用这些规则对终端的数据进行解析,规则设置和解析详情如下图9和图10所示。
截至目前,开发的工程机械设备管理平台已经成功接入混凝土泵车设备4198台。平台已持续稳定运行超过一年,混凝土泵车上的终端每30s回传一次所有数据,终端与接入平台保持长连接,从而实现双向通信。接入平台将终端的数据解析后根据设置存入非关系型数据库数据库、缓存数据库,以及通过消息中間件进行发布,从而支持设备管理平台的历史轨迹、实时告警、运行状态等功能。具体的应用功能界面如下图11、图12和图13所示。
依托通信管理平台,工程机械设备管理平台实现了设备实时状态展示、设备实时告警、设备远程控制、历史轨迹查询、工作量统计报表、电子围栏等功能,满足工程设备制造企业、设备租赁企业等企业远程设备监控、运行成本分析等日常运营管理需求。这种方式取代了以往粗放式的管理模式,能够为企业大量节省运营与设备维护成本。
2 结 论
针对工程机械设备集中管理平台开发中远程数据采集存在的问题,设计了混凝土泵车机群数据接入系统。基于MQTT设计了统一封装协议,结合“配置+动态脚本”的方式进行数据解析,有效解决了混凝土泵车机群数据接入时遇到的多个设备生产厂家数据协议不兼容的难题。系统设计的通讯架构及数据解析流程,很好地实现了混凝土泵车群的数据接入。该系统也可以扩展到其他离散型设备行业的数据接入,特别适用于移动式离散设备行业的数据接入。
参考文献
[1] 高金吉. 工业互联网赋能装备智能运维与自主健康[J]. 计算机集成制造系统,2019,25(12):3013-3025.
[2] 林维,陈曦,王松. OSSData:面向开源社区的分布式数据采集框架[J]. 计算技术与自动化,2019,38(1):102-107.
[3] 王元卓,靳小龙,程学旗. 大数据分析系统创新平台与生态建设[J]. 大数据,2018,4(1):2018010.
[4] 邱雨,彭大芹,梁吉申,等. 基于消息过滤算法实现MQTT协议智能家居的识别[J]. 现代电子技术,2018,41(16):64-67.
[5] 徐刚,陈立平,张瑞瑞,等. 基于精准灌溉的农业物联网应用研究[J]. 计算机研究与发展,2010,47(S):333-337.
[6] 阳旺,樊振宇,吴帆. 基于6LoWPAN与MQTT的无线传感网络设计[J]. 国防科技大学学报,2019,41(1):164-171
[7] JUTADHAMAKORN P,PILLAVAS T,VISOOTTIVISETH V,et al. A scalable and low-cost MQTT broker clustering system[C]. The 2nd International Conference on Information Technology,Nakhonpathom,2017,1-5.
[8] ZABASTA A,KUNICINA N,KONDRATJEVS K,et al. MQTT service broker for enabling the interoperability of smart city systems[C]. 2018 Energy and Sustainability for Small Developing Economies,Funchal,2018,1-6.
[9] 孙元浩.如何构建安全的Kafka集群[J]. 电信网技术,2015,8:10-14.
[10] IONESCU V M. The analysis of the performance of rabbitMQ and activeMQ[C]. The 14th RoEduNet International Conference - Networking in Education and Research,Craiova,Romania,2015,132-137.
[11] DAWAR S,VAN DER MEER S,FALLON E,et al. Building a scalable event processing system with messaging and policies test and evaluation of rabbitMQ and drools expert[C]. The 12th International Conference on Information Technology and Telecommunication,Athlone,Ireland,2013,127-134.