基于大数据技术的油库生产远程监控系统设计

2019-10-09 00:45徐敬波李天峰张锡年
自动化仪表 2019年9期
关键词:油库报警远程

徐敬波,李天峰,张锡年

(中国石油西北销售公司,甘肃 兰州 730070)

0 引言

成品油库的高效安全生产是保障区域成品油产销稳定的重要因素。运用先进的信息化技术、自动化技术、网络化以及数据处理技术,构建高效、实时的油库生产监控系统,是降低安全生产风险、提升生产效率效益的必然举措。目前,我国炼化、矿山、制造、化工等行业主要利用生产制造执行系统(manufacturing execution system,MES)[1-2]对生产过程进行实时监控和预警。MES受规模、功能和部署要求等限制,难以完全满足异地分布的多座油库远程实时监控的应用要求。同时,现有生产监控系统中海量的实时传感、测量、控制数据的读写、集成、处理和存储[3],主要依托实时数据库技术,存在采购和运维成本高、并发处理能力相对低、扩展和维护难度大、综合检索和分析能力差等不足,限制了后续对生产、设备、作业等数据的进一步分析、挖掘和利用的潜力。

为提升对油库等生产过程的远程实时监控和预警能力,以及对实时数据的处理和分析能力,结合Storm大数据流处理、Kafka高速消息队列、Flume数据采集技术[4-6],设计并实现了基于实时数据处理、可扩展的油库生产远程监控系统。该系统能对油库实时生产状态进行同步监控和预警,为广域分布的油库在线监测提供了一种新思路。

1 成品油库生产过程和关键监控参数

成品油库是收发和储存汽油、柴油和乙醇等轻质油品的仓库或设施,按生产功能分为油区、工艺控制区、收发油区、行政管理及辅助生产区等单元。

油库自动化系统主要由储运、消防自动化、安防自动化、环保自动化四类系统及其他辅助监控系统构成。各系统之间互相关联,形成油库的整体自动化系统。为确保对成品油库安全生产运行的全面监控,需要监控的储运、消防、安防及环保主要参数如下。

①储油区作业:对防火堤以内的储罐、管线、工艺阀等设备进行监控。采集和监控的参数包括储罐液位、温度、体积、空容、油品质量、进出管流速、管线压力、浮盘升降、阀门开度、存储周期、化验时间等。

②工艺控制区作业:对工艺泵房/棚中电机、泵、电动阀等设备进行监控。采集和监控的参数包括机泵进出口压力、机泵启停、机泵运行时长、机泵故障、机泵振动等。

③收发油区作业:对收发油作业中铁路栈桥、公路发油岛、码头等设施的鹤管、装/卸油泵、阀门、计量设备、车辆、船舶、静电/溢油/道闸/接地传感等设备进行监控。采集和监控的参数包括油品、车牌、收发油流量/流速、机泵启停、机泵运行时长、压力、静电连接、溢油、接地等。

④消防/安防区作业:对分布在油库各区域可燃气体探测、手动报警、周界报警、光纤光栅测温、火焰探测等设备,以及消防池液位、消防泵启停、消防阀门开启、消防管线压力等参数进行采集和监控。视频监控系统对油库主要生产作业区域进行全覆盖。

⑤环保设备区作业:对油气回收、污水处理装置的相关参数进行采集和监控。

⑥行政管理及辅助生产区作业:对变配电能耗、温度等参数进行采集和监控。

2 油库生产远程监控系统架构功能分析

2.1 远程监控系统体系架构

针对油库远程实时监控的要求,设计的安全生产远程监控系统功能架构分为基础层、传输层、平台层和生产管理应用层四部分。系统具有数据采集、数据实时和批处理、油库综合监控的特点[7]。远程监控系统功能架构如图1所示。

图1 远程监控系统功能架构图

①基础层。

基础层是安全生产远程监控系统的物理最底层。监控系统基础层通过包含OPC、Modbus等协议集的混合标准接口,对油库各自动化系统关键监控参数进行自动采集,实现对油库安全生产过程中多源、多类型数据的可靠获取。

②传输层。

传输层采用现场的无线、有线相结合的组网方式,为基础层采集的数据提供安全、可靠的网络传输系统。在广域网传输中,为确保工控网络及设备的信息安全,采用数据照相传送技术的数采安全隔离设备实现企业网与工控网信息的单向隔离[8]。

③平台层。

平台层主要在区域监控中心部署分布式大数据处理系统集群,包含实时处理集群(Flume+Kafka+Storm+MySQL)和历史数据处理集群(Hadoop+Hive)。

实时数据处理流程如图2所示。

图2 实时数据处理流程图

由图2可知:Flume agent接收基础层采集的数据和其他来源数据;Kafka集群持久化存储采集的数据;Storm流处理集群对数据进行实时处理;处理过程的中间数据、最终数据、元数据等由MySQL数据库存储。处理集群系统通过面向服务架构(service-oriented architecture,SOA)套件对外提供Web Service服务。Web Service服务与其他生产管理系统进行交互,作为支持生产管理应用层的数据、应用服务器和Web服务器,支持二次开发,具备和其他系统的融合能力。

④生产管理应用层。

生产管理应用层基于SOA架构,实现对油库生产状态远程实时监控的服务化;按照油库监控管理的要求,提供实时监控、专项管理、统计分析和综合展示四大服务[9],实现油库生产状态监控的服务化。远程监控系统数据处理结构如图3所示。

图3 远程监控系统数据处理结构图

2.2 远程监控系统的功能设计

油库安全生产远程集中监控平台系统的主要功能设计如下:建立了统一、实时的生产运行数据仓库,实现了综合展示、运行监控、储罐监控、收发油监控、消防/安防监控、设备监控、计质量监控、报警管理、数据分析和统计等功能。

2.3 远程监控系统的软件架构

为便于支持多种应用服务的远程使用和订阅,油库生产远程监控系统的设计采用了基于服务的软件架构设计模式。监控平台系统软件架构如图4所示。每个服务实现一个不同的应用特性或者功能,且相互独立运行在系统进程中。每个服务可通过基于简单对象访问协议(simple object access protocol,SOAP)Web service API对外提供服务资源调用,确保系统灵活满足整体应用的需求,能够适用于构建基于云服务的分布式应用系统。

图4 监控平台系统软件架构图

3 油库生产远程监控系统的关键技术

3.1 数据采集技术

在监控系统基础层,根据各地区油库自动化系统实际情况,利用混合协议软件接口,实现对库级自动化系统的实时数据自动采集和数据格式转换。油库数据采集接口如图5所示。

图5 油库数据采集接口示意图

对已具备PKS、WinCC、iFiX等数据采集与监视控制系统(supervisory control and data acquisition,SCADA)软件的自动化系统,采用用于过程控制的对象链接与嵌入工业标准(object linking and embedding for process control,OPC)2.0标准软件接口进行数据采集,以实现异构环境中自动化控制网络数据的统一集成[10]。对部分不具备SCADA系统的油库,则从PLC、智能仪表等自动化设备直接采集实时数据。数据采集协议则采用标准或统一扩展的Modbus协议。

为保证各油库实时过程数据的采集时间标签同步,使用网络时间协议(network time protocol,NTP)服务,利用同一GPS时钟,将监控系统实时数据库服务器作为时间源,其他服务器、缓存机配置与该服务器同步,保证平台系统时间同步。

高中生,因为文理分科,往往在高二时就会进行分班。在这个时候,我们通常会通过其他班主任了解高一时学生担任班干部的情况,然后初步确定班干部人选。

3.2 数据接入技术

为确保多个油库基础层感知、测量的大量现场生产数据,能通过安全、可靠、高效的方式实时上传至系统平台层,对生产管理应用层提供数据支持。本文采用Flume和kafka组合,对以现场位号、时间戳为标签的实时数据进行采集、存储和处理。

Flume是一个分布式、可靠、高可用的海量日志采集、聚合和传输的收集系统,具备从console、rpc、text、tail、syslog、exec等数据源高速收集数据的能力,同时能够解决不同数据源接入的差异性问题。Flume采集数据基本单位Event,运行核心是Agent,含有Source、Channel、Sink三个核心组件,分别实现从外部数据源采集数据、简单处理和中间存储数据、将数据写入接收方的功能。

针对监控系统基础层采集的实时数据,首先通过设置OPC接口 Client中Group Item的名字、激活状态、服务器向客户程序提交数据变化的刷新速率、数据死区以及数据写入的TXT文件等参数,实现油库系统设备实时数据向Flume agent服务器的实时传递。为保证各油库设备位号产生的实时数据与后续数据处理队列相对应,在各油库设备位号与Flume agent、Kafka Topic消息队列之间建立实时映射关系。

各Flume agent实时监听TXT文件中的新增数据后,对新增数据进行实时采集并汇集到总Flume agent中。总Flume agent对不同的来源数据,按照公司、油库、自动化系统、监测点(位号)、监测点类型(开关量、模拟量)、仪表类型(开关、温度、压力、流量、液位等)、监测点采样时间、监测值,整体处理成统一的数据格式,具体如下所示。

{公司4位字节;油库8位字节;自动化系统(装置)8位字节;监测点(位号)12位字节;监测点类型2位字节;仪表类型8个字节;监测点采样时间8个字节;监测值16位字节;}

Flume采集的实时数据需要实时写入Kafka,实现对大量、高速数据的实时发布和订阅,以及数据的存储,以确保后续的实时数据处理的实施、减少可能的数据丢失风险。

Kafka是一种高吞吐量的分布式发布订阅消息系统,主要用于处理活跃的流式数据。Kafka通过0(1)的磁盘数据结构提供消息的持久化,保持对于TB级别的消息存储的长时间稳定性能,同时具备较强横向扩展、并行处理能力。Kafka消息传输吞吐量高,一般超过105~106条/s。

Kafka中的消息(record记录,也被称为消息)由一个key、一个value和时间戳构成。消息发送者称为生产者(producer);消息接收者称为消费者(consumer);消息类别记录称为topic,每一类的消息称之为一个主题(topic)。为实现Flume与Kafka的整合,接收Flume传输的各油库系统设备的实时数据,在Kafka Cluster中创建与各油库系统设备位号相对应的Topic。然后,Flume将其采集到的数据分别发送到相对应的topic上进行发布,为后续系统对各设备位号状态信息的实时处理以及特定时段特定设备的复杂处理奠定了良好的基础。

3.3 实时数据处理技术

实时数据处理是远程监控系统平台层的核心模块,从各地区油库现场采集的工业实时数据经实时处理后,实现作业操作分析、故障识别与诊断、监控预警报警、实时决策支持、即时消息推送等功能,提升整体管理效率。本文针对油库生产管理安全预警的实时性要求,选择Storm流处理框架作为实时数据处理的平台模块。

Storm是一个免费开源、分布式、高容错的实时计算系统,支持集群化部署,在实时分析、在线机器学习、持续计算、分布式远程调用等领域具有广泛的应用。在Storm应用中,Storm提交面向需求的运行程序称为Topology,由Spout和Bolt构成,两者通过消息Tuple机制进行数据传递。Spout是发出Tuple的节点,Bolt则负责数据流(Streams可以包含多个Tuple)接收、转换、计算、过滤和发出其他Tuple等操作,Bolt可以随意订阅某个Spout或者Bolt发出的Tuple。Topology处理的最小消息单位是一个Tuple,可以是一个任意对象的数组。在实际集群运行中,Topology由集群中的主控节点(Nimbus)将任务分配给工作节点(Supervisor),工作节点管理多个工作进程(Worker),工作进程包含多个运算任务(Task),每个Spout和Bolt都由若干个运算任务来具体执行。

Storm对实时数据流处理的关键是Kafka与Storm的整合,由Storm中Spout实时获取Kafka发布的topic消息数据,即利用Storm-Kafka的整合库中Storm-Kafka API提供的KafkaSpout对象实现Spout对kafka中实时数据的获取,完成Kafka与Storm之间数据的传递和流处理。

本系统利用Storm,实现了油库储运、消防、安防等工艺参数的实时监控,油库储罐液位、温度、压力、流速、静电、溢油、可燃气体、火焰探测等参数的实时超阈值报警以及储罐液位异常、管线流速异常、设备状态异常等规则的实时判断预警,以及报警预警的实时推送等功能。

油库数据采集、处理过程中的非实时数据存储和查询采用MySQL数据库,包括类型、配置、元数据、处理的中间数据等。实时数据、非实时数据最后导入历史数据库集群,实现整体监控数据的归档存储和离线的大数据挖掘。

4 油库生产远程监控系统的实现和测试

基于上述研究内容,对油库远程监控系统进行设计和试点。该系统试点部署于兰州,对分布在甘肃、四川、陕西、湖北等多座大型油库的储运生产、消防安防、设备等过程数据进行了实时采集、监控和预警。系统实现的具体功能描述如下。

①运行监控。该监控用于实现对油库储运工艺中电动阀、储罐液位、泵、储罐液位、动转管线的图形化实时监控;实现对油气回收、污水处理等成套辅助装置的工艺参数、设备异常、运行记录等进行图形化实时监控和异常报警推送。

②储罐监控。该监控用于实现对油库分罐液位、温度、体积、质量、空容、油品质量、进出罐流速、进出油状态、存储时长等进行图形化实时数据监控和记录自动存储,对液位超限、温度超限、进出罐流速超限进行远程实时报警推送。

③公路、铁路收发油监控。该监控用于实现对铁路栈桥、公路发油岛等收发油作业中的收发油种类、分仓、油品体积/质量、温度、车辆车牌、静电/溢油/道闸/接地传感等数据进行图形化的实时监控和记录存储,并对静电/溢油/道闸/接地等参数异常进行远程实时报警推送。

④消防安防监控。该监控用于对分布在油库各区域可燃气体探测、手动报警、周界报警、光纤光栅测温、火焰探测等设备以及消防池液位、消防泵启停、消防阀门开启、消防管线压力等参数进行实时监控、记录和报警。

⑤设备监控。该监控用于对油库机泵的启停、电动阀的启停、机泵运行时长、管线压力、数据采集设备、网络设备等进行实时监控和异常报警。

⑥计质量监控。该监控用于对进出库油品数量与储罐进出罐油品数量进行实时监控和比对,对误差超限进行报警推送。

⑦报警管理。该监控用于跟踪实时报警推送的油库异常情况的后续处理、审核、确认流程,报警记录的查询和统计,实现报警流程的闭环管理。

⑧数据管理。该监控用于实时采集和汇总各油库生产实时数据,构建统一、实时的生产运行数据平台,实现生产运行数据的标准化管理,为其他生产应用提供完备和标准的基础数据源。

油库生产远程监控系统试点的硬件环境为:浪潮x86架构计算机服务器节点6个(1个管理节点、3个流处理节点、2个历史数据处理节点),CPU为2路8核处理器,ECC DDR4内存128 GB,硬盘为32 TB,核心交换机配备多模光纤光接口板,油库数采工作站4台。

为保证系统的实际应用效果,使用自动化软件测试工具UFT、性能测试工具Loadrunner以及测试管理工具ALM,对试点的监控系统进行了功能、性能和应用的全面测试。

功能测试全面覆盖系统模块,包括运行监控、储罐监控、收发油监控、消防/安防监控、设备监控、计质量监控、报警管理和综合展示,测试功能点174个,执行2385个测试用例。测试结果显示,系统实现了油库生产监控、报警、报警处理和统计分析等功能,能够满足油库远程监控的功能要求。

性能测试内容主要包括运行监控、储罐监控、收发油监控、设备监控、消防/安防监控等功能点的并发能力和实时数据处理的系统响应。测试结果显示在模拟最大并发用户500个、最大测试点为100 000个的压力测试条件下,平均事物处理的响应时间≤6 s。

试点该油库生产远程监控系统对西固、彭州、咸阳、武汉四座油库进行了实际应用测试。监控系统部署在兰州,在4座油库部署的实时监控点超过5000个,系统整体功能正常,最大响应时延低于5 s,能够满足油库实时监控和预警的要求。

总体来说,通过功能、性能和应用测试,表明该监控系统具备一定实际推广应用的潜力。利用大数据流处理框架处理生产实时数据,为油库或其他工业环境远程实时监控和预警提供了一种可选择的解决方案。

5 结束语

本文从满足多座油库生产过程远程实时监控的需求入手,为整体提升区域多座油库生产管理智能化水平、降低远程监控管理成本,基于大数据流处理技术,搭建了一套油库生产远程监控系统,实现了对西部地区多座大型油库生产、安全等过程数据的实时监控和预警。该系统能够满足油库日常生产远程实时监控的要求。

该系统利用Flume、Kafka、Storm、MySQL实时数据处理框架,代替目前工业MES、工业监控等系统常用的实时数据库技术。系统具有成本低、易扩展、并行能力强等特点,在后期的装备在线状态监测、复杂故障预测和诊断、视频融合处理、综合决策支持等大数据应用方面具有潜力。

猜你喜欢
油库报警远程
热点
远程求助
远程工作狂综合征
提高油库消防预案工作效果的措施
基于神经网络算法在机场油库安全的应用
远程诈骗
2015款奔驰E180车安全气囊报警
2014款奥迪Q5车发动机OBD灯报警
死于密室的租住者
奔驰E260车安全气囊报警