唐巍
通号通信信息集团有限公司 北京市 1000073
摘要:本文通过对管廊环境监控业务的分析,结合OPC统一架构(OPC UA)的技术特点,设计基于Java的 milo库实现的管廊环境监控系统,实现为上层平台提供数据读写、告警推送、事件记录、历史查询等功能接口,为最终实现智慧管廊运维平台提供了有力支撑。
关键字:OPCUA,城市综合管廊,环境监控
1.引言
随着城市建设的快速发展,城市综合管廊作为智慧城市的重要基础设施和组成部分发挥着重要作用,管廊安全问题也越来越引起人们的关注,为更好的解决地下综合管廊安全问题,提高管廊运维的安全性,本文提出了基于OPCUA实现的地下综合管廊环境监控技术解决方案。
2.管廊环境监控业务分析
综合管廊是指在城市地下建造一个隧道空间,将电力、通讯、热力、给水等各类工程管线集于一体,是保障城市运行的重要基础设施和“生命线”。管廊长度一般在几公里到几十公里不等,在管廊建设中会分段来设置防火分区,每个防火分区中地上附着物为出装口及通风口等设施,并根据铺设管线类型和防护要求不同来布设监控电子设备,以实现对廊内及夹层等位置的全面监控。综合管廊环境监控系统是管廊运维系统的重要组成部分,它实现了对管廊内部环境的实时监测和对通风、排水、照明等设备的控制。
管廊属于地下的封闭空间,通风条件较差,为了保证廊内各种管线能够正常运行,保证进入廊内的运维人员可以在安全的环境下工作,需要对管廊进行通风换气,排出有毒有害气体,并保证正常的氧气水平,通风系统一般会监测管廊内的温度、湿度、氧气含量,一氧化碳、甲烷、硫化氢等有害气体含量。
由下雨渗透,内部凝水,管道检修放水等原因致使管廊内部存在积水,如果长期下去会对廊内管线、设备等使用寿命构成威胁,也同时影响管廊运维工作,排水系统主要的任务就是监测廊内的积水坑水位,利用水泵将废水排出。排水系统中主要包含集水坑内液位探测器和水泵。
综合管廊设置于地下,内部无自然采光,所以需要长期稳定合理的光照。廊下的照明系统一般会配备应急照明和检修照明两种,应急照明作为常规照明方式,检修照明用于在人员巡检、设备检修等条件下提供额外的亮度。
.png)
如上图所示,监测、监控设备都先接入防火分区中PLC,PLC再连接到OPC服务上进行数据聚合与汇总,监控平台只需和OPC服务交互即可完成对大多数廊下设备的数据监测和控制要求。
3.OPC统一架构(UA)技术简介
OPC UA 是OPC基金会推出的一个新的工业软件接口规范,目的在于提出一个统一的企业级模型对象定义和架构定义,将各个OPC Classic规范的所有功能集成到一个可扩展的框架中,独立于平台并且面向服务,从而使其具备了跨平台,增强命名空间,支持复杂数据类型等新特点,使用OPC UA技术对各种监控设备接入实现统一平台接口服务,无疑可以降低系统开发难度,提升系统的可用性和安全性,节省大量的开发与调试时间,为综合管廊的环境监控提供可靠保障。
4.管廊环境监控系统设计
如图4.1所示,整个环境监控系统可以分成3层,自下而上分为基础感知层,网络传输层,应用服务层。
图4.1 整体架构图
基础感知层是系统的神经末梢,主要包含各种采集传感器和控制设备,按照不同输出类型分别接入到PLC的数字量接口或模拟量接口,再由PLC通过网络通信模块和上层服务交互。
网络传输层是系统的神经网络,主要负责数据的传递。在管廊网络环境中会采用多种不同的异构网络,包括各种私有网络,有线或无线通信网络,这些网络最终会统一接入到主干环网上,通过划分VLAN实现不同应用之间的网络隔离,最终为上层应用提供安全的数据传输功能。
应用服务层是管廊环境监控系统的核心,它包含了系统运行的主要构件、算法逻辑以及支持的软件服务。它利用OPCUA技术获取现场的实时数据,然后通过事件告警分析模块对数据进行校验,分类,存储,判断,推送等一系列操作,为上层平台提供实时读取数据,发送控制命令,事件配置,历史数据查询,告警推送等功能接口,也是本文主要的研究内容。
环境监控应用服务的基本工作流程可用图4.2表示,首先是连接OPCUA服务,连接成功后读取OPC节点树,在关注的节点上配置事件,然后订阅节点数据,收到OPCUA服务推送的变更数据后,对变更数据进行分析和处理。
.png)
使用基于Java开源库milo来连接OPCUA服务,示例代码如下:
// 查询连接节点,这里取查询到的第一个地址
EndpointDescription endpoint = DiscoveryClient
.getEndpoints("opc.tcp://192.168.4.9:49320").get()
.stream().findFirst().get();
// 创建客户端配置
OpcUaClientConfig config = OpcUaClientConfig.builder()
// 设置应用名称
.setApplicationName(LocalizedText.english("OPC UA SCREEN"))
// 设置应用统一资源标识
.setApplicationUri("urn:eclipse:milo:examples:client")
// 设置证书
.setCertificate(certificate)
// 设置密钥对
.setKeyPair(keyPair)
// 设置连接地址
.setEndpoint(endpoint)
// 设置认证方式,这里使用的是匿名认证
.setIdentityProvider(new AnonymousProvider())
// 设置请求超时时间
.setRequestTimeout(uint(5000))
.build();
// 创建OPC UA客户端
OpcUaClient client = OpcUaClient.create(config);
// 连接客户端
client.connect().get();

在OPCUA中每一个节点都有唯一的标识,这个标识一般由命名空间加标识符组成,节点结构为树形,通过指定一个根节点ID来查询其下的子节点列表。在应用中可以取Identifiers.RootFolder作为默认的根节点。
// 浏览节点,这里使用默认的根节点作为起始节点
List<Node> nodeList = client.getAddressSpace()
.browse(Identifiers.RootFolder).get();

依据对事件类型及处理方式的分析,建立了系统的事件模型。事件定义应包含事件名称,事件类型,事件描述,事件等级,处理方式等,从事件类型上可分成状态量事件和模拟量事件,OPCUA节点数据类型为布尔值的配置状态量事件,对应事件类型中DI_0(状态0)和DI_1(状态1)两种事件类型;节点数据类型为数字的配置模拟量事件,对应事件类型中AI_Upper(超上限)、AI_Lower(超下限)和AI_Fixed(固定值)三种事件类型。对于事件处理方式分为记录和告警。
OPCUA数据订阅过程如图4.3所示,客户端发送创建订阅请求,服务端返回订阅ID,客户端设置订阅监控请求及回调,服务端创建监测项,客户端等待采样间隔后向服务端发送查询请求,服务端返回自上次请求后变化的数值,客户端接受数据并调用事件分析和处理函数,等待采样间隔后再次发送请求以此循环,直到订阅结束。

图4.3订阅执行过程图
事件分析和处理过程如图4.4所示,系统在接收到OPCUA传回来的变更数据后调用事件定义服务获取之前对节点上绑定的事件定义列表,并对事件列表逐条进行处理。
1、根据事件定义对值进行分析,确定事件等级;
2、获取上一次节点事件的处理结果,和本次结果进行比对,确定事件动作(事件动作包括事件提醒,事件升级,事件降级,事件结束4种),最终形成新的事件分析结果;
3、将本次结果记录到缓存和数据库中;
4、如果事件处理类型是告警则向上一级监控平台推送告警消息。
图4.4事件分析处理过程图
5.测试
测试环境中使用了Kepware 公司研发的KEPServerEX6 OPC服务器做为OPCUA的服务端,KEPServerEX是行业内领先的通信平台,包含100多种设备驱动程序,用户可以通过简单直观的界面来连接,管理,监视与控制不同的自动化设备。
启动编写好的测试客户端,连接OPCUA服务,浏览节点并配置事件。

图5.1节点配置界面
启动订阅,然后修改温度值后查看推送报文。
2021-07-17 10:57:00.663 INFO 38804 --- [d-thread-pool-0] c.c.rsip.opc.service.ClientInfoService : OpcNotifyMessage{messageAction=告警提示, nodeEventId=23, currValue='NodeValue{, nodeInfoId=27, alarmLevel=1, code='ns=2,s=RSIP-SIM.Test.2001_1', varType=FLOAT, value=35.0, serverTime=1626490617067, sourceTime=1626490617067}', name='温度超限告警', eventType=AI_Upper, description='温度超限告警', lastLevel=0, currLevel=1, alarmType=TEMP, notifyTime=Sat Jul 17 10:57:00 CST 2021}
系统已经向上一级平台成功发送了告警消息。
6.结论
本文通过对管廊环境监控业务分析和系统设计及最终测试结果得出结论,使用OPCUA技术作为管廊环境监测数据采集和监控设备控制的方案是完全可行的,它为综合管廊的监测监控、日常管理、运营维护、预测预警提供了有力支撑,为实现高效、节能、安全、环保智慧型管廊提供了技术保障。
参考文献:
[1]张泳.城市综合管廊监控系统信息安全设计[J].自动化博览,2018(01):40-44.
[2]杨虎,乔立慧.OPC技术在工业网络控制系统中的应用[J].电子技术与软件工程, 2019(16):137-138.
[3]李敏峰,欧阳帆.基于OPC UA协议得设备数据采集系统开发[J].信息技术与信息化, 2018(7):70-72.
[4]闫晓风, 赵艳领, 韩丹涛. 基于OPC UA通用数据采集模块设计[J].仪器仪表标准化与计量,2015(6):26-27.
[5]姚海波,尹力文.城市综合管廊工程[M].第一版.北京:中国建材工业出版社, 2020:207-209
[6]邱云,季振山,张祖超, 等. 基于OPC UA技术的Labview与PLC通信[J].计算机系统应用,2017,26(2):231-234.
[7]中华人民共和国国家标准.GB 50838-2015 城市综合管廊工程技术规范[S].北京:中国计划出版社,2015