油田物联网系统边缘计算研究与实践

2020-08-19 10:42梁尚斌闫丽萍徐建军郭晓东
计算机工程与应用 2020年16期
关键词:通信协议云端仪表

石 锋,梁尚斌,蒋 勇,闫丽萍,徐建军,郭晓东

1.中国石油化工股份有限公司 西北油田分公司,乌鲁木齐 830011

2.四川大学 电子信息学院,成都 610065

1 引言

石油和天然气工业,从原油开采到油气集输,需要高效可靠的技术和系统来监测生产运行情况,及时发现异常并进行处理,提高安全生产水平。近年来,由于无线传感器具有小型化、低速率、低功耗、快速部署、便于维护的特点,在油气工业数据监测和生产控制方面得到了广泛应用。基于物联网的油田生产数据在线监测系统,由智能感知层、网络层、服务资源层和应用层组成,通常在智能感知层对采集的异构数据打包,通过网络层发送至远端服务器层,在远端应用层进行协议解析和异常数据处理,同时在云端进行控制指令下发[1-2]。基于云端的物联网应用具有资源按需分配、快速弹性部署和服务可计量的特点[3-4]。但是基于云端的物联网应用,存在数据在服务器端处理和展示,在进行逻辑控制时,也需要在云端进行规则判断,然后把控制指令下发至现场感知层,异常数据处理和逻辑控制严重依赖网络,由于网络时延、拥塞,不能及时响应现场异常情况。

应对这种挑战,计算领域最近出现了范式转变,即边缘计算[5-6]。边缘计算可以看作是云计算的补充,在靠近物或数据源头的网络边缘侧,融合云计算中的计算、存储、网络和应用资源,利用边缘计算提供计算和存储能力,使应用、服务和内容实现本地化部署,满足业务低时延、海量连接的需求,缓解网络负载压力[7-8]。在油田物联网应用中,云计算和边缘计算之间可以相互协作和补充,实现云端计算下沉至边缘端[9-10],实现业务本地化,降低能耗,避免了因网络拥塞和中断时造成的服务中断和数据丢失。通过在边缘端实现异常数据检测和逻辑控制,降低生产安全风险[11-12]。

本文首先分析了基于云端应用的物联网系统的特点以及进行异构海量数据连接、实时处理、分析和逻辑控制的缺陷,提出基于边缘计算的油田物联网架构,在边缘端实现数据接入、协议转换与数据异常检测和逻辑控制。根据油田应用实际,在边缘网关部署阿里巴巴公司的Link Edge边缘计算环境,结合油田应用实际开发设备接入驱动程序和数据处理用户程序,使用孤立森林算法进行异常数据检测和处理[13-15],利用边缘端的计算和存储能力进行函数计算,实现加热炉温度控制功能,满足业务低时延、高可靠和实时服务,同时在云端实现设备管理、数据展示、报警信息查询。

2 油田物联网边缘计算设计

边缘计算通过把小型带有计算、存储和网络接入能力的设备部署在网络边缘,与智能传感器、有线仪表和用户紧密相连,既可以满足边缘设备计算能力扩展需求,又可以有效减少网络负载,降低数据时延。边缘计算面向的对象包括来自边缘端物联网的上行数据和来自云计算中心的下行数据[16-17]。

油田现场生产活动分散地处于偏远且难以到达的恶劣自然环境地区,网络连接时常发生中断情况,现场生产数据无法回传和实时控制。现场数据采集、传输和业务逻辑的实时性要求较高,如果数据分析和控制逻辑全部集中在云端完成,难以满足实时性需求。另一方面,边缘计算可以提供计算卸载,在边缘端进行通信协议解析、数据格式转换后可以实时响应感知层设备,将异常数据过滤后进行规则学习,计算报警阈值,数据异常时触发报警,减少传统云端计算模式下报警信息大量冗余和淹没有效报警信息的弊端,提高响应,降低时延,实现安全生产的目标。油田物联网边缘计算整体架构自下而上分为智能感知层、边缘计算层、云计算层[18-20],总体设计如图1所示。

智能感知层,通常包括无线智能压力、温度、抽油泵示功图传感器、电量监测设备、流量计、调节阀以及电动机变频器等。感知层设备与上层设备通信方式有无线和有线两种方式,通信协议分别为基于IEEE 802.15.4标准和ZigBee 通信协议标准的油田SZ9-GRM(G 代表网关Gateway,R代表路由Router,M代表无线仪表等测量设备Measurement)私有通信协议和工业标准Modbus通信协议,感知层设备的安全主要考虑设备的物理安全和内容安全。

边缘计算层,在油田物联网边缘计算系统中边缘网关设备具有丰富的下联设备接口,包含以太网口、RS-232/485串口、数字量输入/输出接口以及3G/4G模块。边缘网关具有访问互联网的功能,充当边缘网关的角色,既可以实现设备数据的采集、过滤、流转、存储、分析和处理,又可以将设备数据上报至云端,同时提供规则引擎和函数计算功能,方便应用场景编排和业务扩展,边缘计算层的核心功能接口如图2所示。

图1 油田物联网边缘计算架构

图2 边缘计算层核心功能

云计算层,通常包括服务器计算资源、存储资源、云端网络和用户应用程序部分,除了提供复杂的数据处理、分析和展示外,还提供异常数据报警管理、设备管理和控制功能,与边缘端处理协同,满足不同的业务应用需求。

从图2可知,在边缘计算层需要实现底层设备接入驱动的开发和管理,支持设备驱动程序云端下发、子设备通道设定管理和子设备添加、删除管理与维护等功能;协议数据解析与转换,经过数据过滤后,利用异常数据处理算法进行数据实时检测和异常值判断和报警提醒;基于规则引擎进行多个数据逻辑控制,进而实现设备连锁控制功能。通过在边缘端部署边缘网关,将原来云端计算和存储资源下放至边缘端,在边缘端实现设备协议数据包解析、数据格式转换、数据过滤和报警提醒以及设备连锁逻辑控制,降低网络时延和由于网络中断造成数据丢失和控制功能失效,提高业务实时连续性,保障生产平稳运行。

3 边缘计算功能

油田物联网边缘计算功能主要包括设备程序开发封装和部署、基于孤立森林算法的异常数据检测和设备逻辑控制三方面。

3.1 设备接入

边缘计算的实现依托Link Edge 提供的支撑环境,设备接入模块在Link Edge 中实现。一个完整的设备接入驱动由设备的连接管理、协议数据转换、数据交互与命令处理组成。连接管理是指设备与网关建立通信连接,Link Edge不限制建立通信连接的协议,可根据业务需求灵活选择。协议数据转换是指设备接入驱动将获取到的终端设备数据转换为符合物联网模型规范的数据格式,并上报到云端。数据与命令处理是指驱动可以处理云端对于设备的操作请求,并完成对设备的服务调用和处理调用结果,最终将结果返回到云端。

设备接入驱动是Link Edge 中独立的服务模块,Link Edge 除了提供常用协议驱动,如Modbus、OPC UA驱动外,还支持自定义驱动开发。本文根据GRM私有通信协议开发自定义设备接入驱动,并自定义驱动功能和数据流向。

GRM 协议系统是基于国际标准实现的通用协议,是在油气行业的具体应用,包含仪表通信协议、仪表配置协议、仪表标定协议和仪表工作状态转换规定等。其基本思路是通过无线接收终端采集无线仪表的数据,再经路由形成ZigBee 网络将数据传送到就近的网关,再将数据传送至云端。仪表通信协议基于ZigBee通信协议,在协议数据包中嵌入应用协议数据,应用层协议数据帧包括帧头和数据两大部分,帧头部分包含协议类型、仪表厂商代码、仪表类型、仪表组号、仪表序号和数据类型几个数据段。仪表通信协议数据帧格式如表1所示。

表1 仪表通信协议数据帧格式

在本文构建的边缘计算物联网系统中使用无线接收终端接收无线仪表的数据,然后将数据通过RS-485接口传送至边缘网关中,处理后发送至远端数据中心服务器。无线接收终端使用API模式进行数据接收,支持用户开发程序通过串口直接读取数据,其数据帧通用格式如表2所示。基于以上两种数据帧内容定义,开发用户驱动程序进行仪表设备数据读取请求与应答,实现数据实时监控。

表2 终端接收数据帧通用格式

用户驱动的开发基于Link Edge 的集成开发环境Docker 镜像进行,设备驱动开发包括程序编码、编译打包、程序上传至云端、部署至边缘设备、数据查看和运行日志查看等流程。

3.2 孤立森林法异常数据检测

在基于云端应用的物联网架构下,海量异构设备数据在云端进行异常数据实时检测处理无法满足业务需求,因此数据在云端应用上通过设定报警值的阈值范围来检测异常,当数据超出阈值范围时触发报警。现场生产数据情况波动、仪表设备采集数据时,不可避免地产生噪声、数据缺失和错误及信号传输异常,导致产生大量报警信息,淹没了有效报警信息,并且需要生产监控管理人员进行现场确认,带来许多额外工作。

基于边缘计算的物联网架构,可以在边缘端对关键生产数据进行异常检测,同时将异常数据值和报警规则上传至云端,提高业务响应的实时性,降低网络负载。

异常数据检测方法是对正常样本进行特征描述,不在正常特征空间中的样本被视为异常。异常数据具有两个特点:一是异常数据只占少量,属于异常特征值;二是和正常数据差别很大。

孤立森林(Isolation Forest)检测算法是不再描述正常的样本点,而是要孤立异常点。异常数据被定义为“容易被孤立的离群点”,可以认为是分布稀疏且距离密度高的群体较远的点。在样本特征空间中,分布稀疏的区域表示事件发生在该区域的概率很低,认为落在这些区域里的数据是异常的。孤立森林算法是一种无监督异常数据检测方法,不需要有标记的样本来训练,但是要求样本特征是连续的变量,随机递归地分割样本数据集,直到所有的样本点都是孤立的,在这种随机分割的策略下,异常点通常具有较短的路径。

孤立森林算法对数据集进行随机采样并构造树iTree。iTree 是一种随机二叉树,每个节点要么有两个孩子,要么就是叶子节点,一个孩子都没有。然后将多个iTree 集成为森林iForest,将传入的数据遍历每一棵树的节点,根据平均路径深度检测是否为异常。

构造iTree的思想如下:

(1)从给定的数据集中随机选择ψ个样本点作为子采样数据集,并构造一棵初始的iTree,将子采样放入树的根节点。

(2)根据数据集特征,指定数据集的一个属性项q,在属性项q中随机产生一个分割点p,分割点p介于属性数据项q的最大值与最小值之间。

(3)根据数据点的p值对每条记录进行划分,构造iTree,把小于p值的记录放在左节点,把大于等于p值的记录放在右节点。

(4)递归执行步骤(2)和步骤(3),不断构造新的树节点,直到子采样数据集中只有一条数据,无法继续分割,或者树的高度已经达到初始定义好的限定高度。

iTree是一个完全二叉树,树中的每个节点都有0或两个子节点。假设所有实例都是不同的,当一个iTree完全生长时,每个实例都被隔离到一个外部节点,在这种情况下,外部节点的数量是n,内部节点为n-1,节点总数为2n-1。异常检测的任务是提供一个反映异常程度的排序。

根据给定数据集构建完成t个iTree 之后生成孤立森林模型iForest,然后用来评估测试数据,发现异常数据。对于一个测试数据x,遍历每一棵iTree,计算x落在每一棵树的深度,即叶子节点到根节点的路径长度,记为h(x),根据h(x)来判断一条记录x是否是异常点,所有h(x)的平均值为E(h(x)),因此设置标准平均搜索长度c(ψ)为:

从而可以定义一个待测数据x的异常评分为:

从式(3)中可以看出:

当E(h(x))→c(ψ),s→ 0.5;

当E(h(x))→ 0,s→ 1;

当E(h(x))→n-1,s→0 。

根据异常评分可以判断出,当评分值为1 时,该数据点为异常值;当评分值小于0.5 时,该数据点为正常值;如果所有数据点评分值全部约为0.5时,说明整个数据集都没有明显异常。

通过在观测数据的最大值与最小值之间生成随机数构建孤立森林,因为物联网观测数据的正常值变化范围较小,在构建孤立森林时子采样空间大小为观测值去重后数量的4 倍,建立孤立树的个数为50,最大树高度为10层。由于正常数据与异常数据的临界值需要在具体应用中分析来确定,本文使用包含训练数据在内的一系列数据进行模拟计算10组数据,然后计算其均值,确定正常数据与异常数据的临界值为0.581。模拟计算结果如图3所示。在进行异常数据实时检测时,计算的孤立森林值大于0.581时,则进行异常报警提醒。

图3 临界值模拟计算结果

3.3 边缘端过程控制

在传统的油田物联网系统应用场景中,油井生产现场的各类传感器负责实时采集数据,通过3G/4G或者光缆等有线网络将数据传输至远端数据中心服务器,在远端数据中心服务器进行数据格式转换、处理、分析和运算,然后将处理结果及生产控制指令再通过网络传输至现场仪表层,实现现场过程控制。这种传统的物联网架构,数据异常处理和过程控制严重依赖网络,当网络中断时,不可避免地产生业务中断,给安全生产带来极大的隐患。如果将云端的计算、存储资源下沉至边缘端,在边缘端集成异常数据检测处理和逻辑控制,可以提高业务连续性、实时性,降低安全风险[21]。本文构建的油田物联网边缘计算模式,依托边缘端计算、存储资源和Link Edge 边缘计算环境以及轻量级存储环境SQLite,构建近端边缘层与云端计算层协同处理的新模式。在近端边缘层对仪表感知层的数据进行预处理、异常检测和数据修正,同时完成现场的过程控制和故障诊断,同时将数据、异常检测结果和过程控制逻辑上传至云端,在云端进行深层次的计算,云端展示给用户使用和判断,这样就实现了一个立体的分层式数据协同处理过程[22-23]。

在如图4的实际逻辑场景中,油井加热炉对开采的原油进行加热后经过输油管线运输,为了防止非金属输油管线因原油加热温度过高,导致使用寿命降低,或者物理损伤后造成原油泄漏,进而导致环境污染现象发生,需要实时监测和控制加热后的出口温度,设定控制逻辑如下:当火焰探测器监测无火焰时,同时关闭调节阀1和调节阀2;当出口温度大于65 ℃时,减少供气,打开调节阀2,关闭调节阀1,当温度小于45 ℃时,增加供气,打开调节阀1,关闭调节阀2。

图4 加热炉逻辑控制场景

本文在Link Edge 中通过函数计算功能实现现场逻辑控制,函数计算是一种运行时框架,遵循事件驱动模型。可以使用本地函数计算框架基于设备数据、事件的业务逻辑开发实现控制,在本地数据存储的基础上,进行数据过滤、计算,然后根据函数计算实现控制,同时利用边缘端的消息路由功能,控制本地数据在边缘计算节点中的流转,如将设备数据流转至函数计算、流数据分析,进行数据清洗、加工、聚合之后再流入至企业云端服务器,大大减少数据传输成本,实现数据安全可控。边缘计算节点在断网或者网络条件较弱的时候,将数据保存在本地存储区,不但可以提供数据恢复能力,由于计算和存储资源下沉在本地,还能够实现本地控制的业务连续性。边缘计算节点通过函数计算实现逻辑控制功能的结构如图5所示。

4 性能评估

为了评估在边缘侧进行异常数据处理和函数计算逻辑控制的精度和运行效率,分别从异常数据检测处理计算时间和算法精度两方面进行评估。

4.1 异常检测计算时间对比

在边缘端使用的边缘网关硬件配置和云端数据中心服务器硬件配置如表3所示。

表3 边缘端和云端异常检测设备配置对比

图5 边缘计算节点函数计算

在边缘端和云端分别运行异常数据检测程序,运行10次,得到平均运行消耗的时间如表4所示。从边缘端运行时间可以看出,在边缘端进行单个数据异常检测的平均时间仅为1.05 s,处理的时效性满足生产应用需要。同时结合云数据过滤功能,可以仅将异常数据和报警规则上传至云端,降低网络传输成本。

表4 边缘端和云端异常检测运行时间对比

基于函数计算的逻辑控制功能的时间响应也在秒级,由此可知,基于边缘计算设备实现云端的计算功能,可以满足生产实际需要。

4.2 检测算法精度分析

由于物联网监测的正常数据的变化范围较小,而且数值固定在某一个区间,因此在进行算法精度评估中,按照实际监测数据个数的两倍生成一个序列进行精度监测,实际监测数据值为0.82至1.10之间,共18个不同的数据。在精度分析中根据实际数据最大值和最小值以及数据个数,计算数据变化间隔,然后按照间隔数据生成一个从0.692至1.237的区间,使用混淆矩阵进行精度评价。

混淆矩阵中的真阳性(True Positive,TP)是正常数据被异常检测程序正确识别为正常数据的数量;伪阳性(False Positive,FN)是实际为异常数据被异常检测为正常数据的数量;真阴性(True Negative,TN)是实际为异常数据被识别为异常数据的数量;伪阴性(False Negative,FN)是实际为异常数据被识别成正常数据的数量。真阳性和真阴性是正确的识别,一个好的检测算法应该有较大的真阳性和真阴性值,较小的伪阳性和伪阴性值。

在精度评价中,使用36 个数据值的序列,运行10次,求得平均值,进行混淆矩阵计算,计算结果如表5所示。

表5 精度评价混淆矩阵

精确度(Accuracy)或者称为总成功率是度量检测算法能够正确地对数据进行正常检测的比例,被定义为TP和TN的总和除以数据总数,如式(4)所示:

真阳性率(True Positive Rate,TPR)是被检测程序正确识别为正常数据的比例;伪阳性率(False Positive Rate,FPR)是异常数据被检测为正常数据的比例,FPR也称为错误率;伪阴性率(False Negative Rate,FNR)是正常数据被标记为异常数据的比例,FNR 也称为误报率。参数计算如式(5)所示:

由式(4)、(5)计算得到检测算法的精确度为94.44%,真阳性率为88.89%,伪阳性率即漏报率为0,伪阴性率即误报率为11.11%,从实际应用安全要求本质来看,误报率可以接受,而漏报不能被接受。

5 结束语

针对油田物联网边缘计算问题,提出了边缘计算整体的架构,实现了行业数据接入驱动和云端设备监控与管理功能,并基于边缘端的设备实现基于监测数据的最值之间的随机数生成孤立森林进行异常数据检测和异常报警,同时使用边缘计算的函数计算功能实现设备间的逻辑控制,最终实现基于边缘设备进行数据就地监测和就近控制,避免了网络时延和中断带来的影响。通过从异常检测计算时间对比和检测精度分析对比来看,孤立森林算法可以很好地应用于物联网边缘计算场景中。但是在异常数据检测中误报率较高,仍然需要进一步改进和提高。

猜你喜欢
通信协议云端仪表
◆ 仪表
四海心连·云端汇聚
仪表
基于Wireshark的列控中心以太网通信协议解析器的研究与实现
云端之城
热工仪表自动化安装探讨的认识
云端创意
奔驰E260车行驶过程中仪表灯熄灭
关于电力物联网信息模型及通信协议的设计要点分析
在云端