APP下载

面向化工车间环境的实时监控系统设计

2023-03-22孙成富李晓晨

物联网技术 2023年3期
关键词:网关串口车间

孙成富,李晓晨

(淮阴工学院,江苏 淮安 223001)

0 引 言

化工车间作业属于有限空间作业,由于环境特殊,容易出现各种危险。化工车间的事故与车间中温湿度、可燃气体浓度[1]以及电力数据[2]等指标有着密切关系。为了避免化工生产过程中出现事故对人和财务造成损失,必须实时地对车间进行监控。对化工车间环境和电力系统数据进行监测的传统方法主要是通过管理人员巡视进行现场查看,但是人力检测既不能实时地获取化工车间的各项指标,而且每次巡逻周期较长、效率低下,并不能及时发现化工车间存在的问题。本文针对复杂的化工车间环境,通过数据融合的监控系统,实时采集环境数据和电力系统数据,并通过协议网关将基于不同协议的数据实时传输到时序数据库[3]。最后,采用Echarts实现了可视化的数据显示系统,使管理者能够实时查看化工车间运行状态。

1 系统整体架构设计

面向化工车间环境的实时监控系统可以划分为三层:(1)感知层,实时采集化工车间现场数据,并通过ZigBee和ModBus协议将数据发送到协议网关;(2)协议转换层,获取感知层采集的数据,并将感知层协议数据进行重新组合,同时将数据通过MQTT协议传输到服务器;(3)应用层,通过MQTT代理服务器接收网关发来的数据,并保存到时序数据库,以便进行数据处理。系统结构示意图如图1所示。

图1 系统结构

2 感知层设计

面对化工车间环境中获取温湿度以及烟感的位置较多,想要实现多点获取数据时,有线系统的布线复杂、传输速率慢、实时性差。针对这些问题,本系统将多个ZigBee节点连入无线传感器网络,使得数据采集过程中拥有延时短、成本低、结构灵活等特点。由于化工厂房对电气设备和用电的要求高,需要对电压和电流进行监测,所以采用ModBus协议的交流多功能通信模块获取电力数据。感知层节点主要有两种类型:基于ZigBee协议的无线感知节点、基于ModBus协议的有线感知节点。

2.1 无线感知节点

ZigBee协议是物联网感知层的协议之一,它具有近距离、低功耗、低复杂度、成本低以及自组织等特点[4],其低功耗的特点可以使其在有限能源供应的场合下工作更长的时间。技术人员通过ZigBee协议可以在厂房环境中设置多个节点,并将节点采集的数据实时传输到网关设备。本设计中的ZigBee协调器节点与终端节点的硬件电路基本一致,ZigBee硬件电路的主控芯片选用了CC2530,是目前ZigBee应用的主流微控制芯片。

图2为协调器节点与终端节点。终端节点与温湿度传感器以及可燃气体传感器相连,协调器通过串口与网关控制器相连。

图2 ZigBee协调器节点与终端节点

ZigBee网络有三种拓扑形式:星形、簇树形和网络。网络节点根据其功能分为终端节点、路由器节点和协调器节点。根据实际情况,本设计使用的是星形拓扑结构。在星形结构中,多个终端只能连接到一个协调器,如果终端想要相互通信,必须要通过协调器节点,而协调器节点直接负责终端节点的数据转发[5]。

2.2 有线感知节点

ModBus协议是MODICON公司开发的一种工业现场总线协议标准,是一种较为常见的有线通信协议,使用串口作为硬件接口。它采用命令答应的通信方式,主机发出请求后,从机将给出应答并返回相应的数据或寄存器状态信息。从机不能主动向主机发送数据。

ModBus RTU报文帧每8个字节含有两个4 bit十六进制的字符,因此具有较高的数据流密度。ModBus RTU没有规定起始和结束标志,需要至少3.5个字符的通信暂停和启动间隔读取下一帧。帧模式如图3所示。

图3 ModBus报文帧模式

下面是对各数据域的详细解释。地址码:该字节表示用户设置地址码对应的从设备将会接收主机发送的信息,主机发送的地址码表示发送的从机地址,从机发送的地址码表示返回的从机地址。功能码:作为传送的第二个字节,当主机采集数据请求发送时,功能码告诉从机要执行的具体操作。数据区:根据不同的功能码而不同。CRC码是二字节的错误检测码。

本设计中网关平台作为主机,发送格式为:

01 04 00 00 00 09 30 0C

从机为多功能通信模块,收到主机发送的命令之后返回的数据为:

01 04 12 08 98 03 E8 00 00 00 1D 00 00 00 01 00 00 01 F4 00 32 78 F555

其中电压为十六进制的0x0898,换算为十进制的2 200,表示220.0 V;电流为十六进制数据0x000003E8,换算为十进制1 000,表示为1.000 A。

3 协议转换层设计

协议转换层的主要作用是实现对底层设备的数据上传、数据更新等应用[6]。网关系统可以完成传感设备数据快速存取,加快事件处理速度,减轻平台压力,实现网关对设备的管理。

3.1 协议转换层硬件设计

网关硬件平台由WiFi网卡与主处理器两部分组成,WiFi网卡负责与服务器进行无线通信,主处理器负责协议格式的处理和转换。网关主控制器使用STM32MP157,该控制器集成Arm Cortex-A7和Cortex-M4两种内核的异构架构,既通过多核架构提供高性能,还能兼顾低功耗的实时控制。为缩短研发周期,本系统采用华清远见公司的FS-MP1A,其主要硬件模块包括4 GB eMMC、512 MB DDR3、4路USB HOST接口以及板载WiFi模组,完全满足了网关对运算、存储等性能的需求。

3.2 协议转换层软件设计

协议转换层软件设计分为三个模块,分别为串口通信模块、事件处理模块以及MQTT通信模块,如图4所示。

图4 协议转换层组成结构

协议转换层采用嵌入式Linux系统,该系统具有Linux操作系统强大的网络功能,并且开发环境友好,能够快速完成系统的部署[7]。首先,通过串口读取传感器设备所采集的各种类型的数据。串口设备也是一种文件,利用文件接口函数,实现数据从感知层到协议转换层的传输。使用open()函数获得该串口设备的句柄,然后进行配置。对于不同协议设备,串口设置的波特率也有所不同,在本实验中两个串口的波特率均为9 600。完成串口运行参数配置后,通过串口读写感知层发来的数据,使用协议解析模块对化工车间现场数据进行解析。

MQTT协议由IBM公司在1999年提出,又称消息队列遥测传输协议,它可以运行在TCP协议之上,是基于发布/订阅模式的即时通信协议。MQTT协议拥有轻量级的特点,用于带宽较小、设备受限或者网络不稳定的物联网网络中[8]。

采取MQTT异步访问模式,首先通过MQTTAsync_create 函数创建句柄,用MQTTAsync_setCallbacks 函数设置MQTT通信过程中对相应事件进行响应的回调函数。如若连接失败,执行回调函数connlost();若成功,则执行回调函数messageArrived()。MQTTAsync_connect()函数与MQTT服务器连接,连接完成后进行数据处理。用MQTT_sendMessage()将MQTT消息发送到服务器,让订阅者获取相关消息。最后执行MQTTAsync_destroy函数销毁句柄,断开与服务器的连接。由于MQTT协议只实现了传送消息的格式,并没有限制用户数据的格式。在本系统实现中,在MQTT协议之上通过JSON对协议数据进行管理。

4 服务器搭建与客户端功能实现

4.1 服务器搭建

服务器平台选用Linux操作系统,服务器平台包括MQTT代理服务器和时序数据库。其中MQTT代理服务器作为消息中间件转发消息。MQTT消息服务器选择EMQX代理服务器,EMQX服务器是一款高可用的分布式MQTT消息服务器软件,其支持最新的MQTT5协议规范,并向下兼容。EMQX服务器支持集群和高并发技术,具有优秀的并发处理能力以及通信支持能力[9],能够使设备之间的通信简单化,所以非常适合物联网的信息传递。时序数据库TDengine部署于服务器的存储空间中,用于保存监控系统采集的历史数据。EMQX服务器提供了规则引擎[5]功能,该功能可以结合开源时序数据库TDengine的RESTful API完成数据的入库。

4.2 后台可视化实现

后台可视化界面基于springboot框架进行编写,利用JAVA数据库连接接口(JDBC),连接时序数据库TDengine管理数据,最后使用Echarts框架实现数据的可视化。

当后台监控系统启动后,会读取数据库中的数据,然后每隔1 s刷新可视化界面。但频繁加载整个页面会增加用户等待时间,影响用户体验。由于Ajax技术可以使网页在不重新加载整个页面的前提下,有选择性地更新部分内容[10]。因此采用Ajax通过异步回调函数获取数据,从而实现网页的局部刷新,Web客户端首先会向服务器发送异步请求,将获取到的数据以JSON格式进行传输,最后使用处理后的数据对Echarts图表进行初始化,异步刷新流程如图5所示。如果无法请求到数据库中的数据,就会执行请求失败函数,网页会跳出提示框。

图5 Ajax异步刷新流程

5 结果分析

首先组建好相应的硬件模块,如ZigBee终端和传感器的连接、ZigBee协调器与网关的串口连接,以及将交流电通信模块与网关串口相连等。在服务器端启动EMQX服务器以及TDengine数据库后,通过EMQX代理服务器所对应的1883端口可查看MQTT消息是否发送成功。在客户端的Web端输入服务器的IP地址后可以实时查看相关信息。进入系统后,可视化界面一共分为5个模块,分别是电压监控模块、电流监控模块、温度监控模块、湿度监控模块和烟雾监控模块。

电压监控模块如图6所示,电压表设计的纵坐标为电压测量范围-300~300 V。如果在-250~250 V的区间范围内,则电压正常,电压数据显示绿色的折线;如果在小于-250 V或者大于250 V的区间内,则异常。电流监控模块图表设计与电压设计基本类似,电流测量范围为-100~100 A,设定-63~63 A之间为正常电流范围。

图6 电压监控模块

温度监控模块图表使用的是散点图。温度测量范围为0~50 ℃,如果是在15~30 ℃的区间范围内,则温度正常。当温度异常时,散点为红色,显示情况如图7所示。湿度监测数据图表设计与温度基本类似,湿度测量范围为0%~80%,设定30%~60%之间为正常湿度范围。

图7 温度监控模块

烟感监控模块图表使用的是柱状图。如图8所示,其中烟感测量范围为0~70 obs/m,如果在20~45 obs/m的区间范围内,则烟感正常。如果超出范围,为异常。

图8 烟感监控模块

6 结 语

本文为了能够实时监控化工车间各环境指标,从而保证化工安全生产,设计了一个基于多协议网卡的化工车间实时监控系统,将ZigBee协议和ModBus协议转换为MQTT协议发送至服务器,同时对数据进行持久化操作,并存入时序数据库。同时设计了可视化界面实时异步调用数据,并动态显示出来。本系统解决了物联网在不同通信方式、不同的通信协议环境下的模块对接问题,提高了化工车间环境数据监测的效率。经过测试,系统与服务器连接正常,系统运行正常、稳定。

猜你喜欢

网关串口车间
浅谈AB PLC串口跟RFID传感器的通讯应用
招工啦
把农业搬进车间
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
应对气候变化需要打通“网关”
基于并行控制的FPGA多串口拓展实现
一种实时高效的伺服控制网关设计
基于Zigbee与TCP的物联网网关设计