尾矿库安全监测系统与DCS系统数据通信研究

2022-10-25 06:50刘教敏徐胜旗
铜业工程 2022年4期
关键词:尾矿库上位脚本

刘教敏,徐胜旗 ,沈 奇

(1.江西铜业集团银山矿业有限责任公司,江西 德兴 334299;2.深圳市德传技术有限公司,广东 深圳 518063)

1 引言

尾矿库是矿山企业重大危险源之一,尾矿库安全监控一刻也不能放松[1]。通过尾矿库安全管理系统对尾矿库浸润线、降雨量、坝体位移、库水位等数据及时采集、分析与处理,为风险预警方案及灾害应对措施的制定提供依据,有利于提高尾矿库安全监测和管理水平,确保尾矿库安全运行。江铜集团银山矿业有限责任公司枫树岭尾矿库在线监测系统利用最新的物联网技术[2],实现了数据无线采集和自动存储、预警显示推送、网络分发、安全评价等功能。由于尾矿库在线监测系统远离选矿厂集控中心,导致系统数据稳定性差,不能满足安全生产和应急管理的需要,因此尾矿库在线监测系统的数据集中监测显得愈发重要。要实现数据集中监测,尾矿库在线监测系统的监测数据需要与中控DCS系统进行数据融合共享,实现选矿厂集控中心全面监测尾矿库运行状态。为此,本文探讨了尾矿库安全监测系统与中控DCS系统进行通信融合、数据共享的方法,以实现数据集中监控。

2 现状分析及数据访问思路

2.1 在线监测系统硬件架构

江铜集团银山矿业公司枫树岭尾矿库在线监测系统当前监测设置表面位移监测点3个、浸润线监测点12个、水位监测点1个、干滩长度监测点1个、内部位移监测点2个点(孔)、降雨量监测点1个,共计20个在线监测点,硬件组态图如图1。其中仪表采集数据方式如下:

图1 硬件组态图

①库水位、干滩长度监测:使用超声波液位计+研华4117模块采集库水位模拟量数据;雨量监测:使用脉冲型翻斗式雨量计+研华4150模块采集雨量数据。以上两种方法采集的数据,通过串口服务器连接至监测站中心机房核心交换机上。

②浸润线、内部位移监测:使用基康数采仪采集振弦式渗压计频率信号和标准毫安信号,通过算法换算成浸润线高度数据和内部位移数据,采用BGKMCUOverTCP协议与监测站通讯。

③表面位移监测:采用中海达GPS全球定位系统,将卫星定位实时数据与基准站数据对比,直接解算至数据库。

2.2 在线监测数据库结构

本系统在线监测系统所有监测仪表数据采用RS-485串行总线标准,服务器端通过北京矿冶研究总院开发的BGRIMM BMS-Source一体化数据采集软件统一配置,数据库为SQL Sever2008。BMSSource软件采集的数据和中间运算数据存储在本地数据库BGRIMMDB上。表面位移的数据由中海达GPS解算软件把解算结果存储在本地数据库HiMonitorDB表上。两个数据库数据通过编写代码交叉引用。

2.3 DCS系统上位机及特点

江铜集团银山矿业公司选矿厂中控DCS系统上位机采用美国罗克韦尔公司的产品FactoryTalk View Site Edition, FactoryTalk View Site Edition软件是专为自动化过程或机器监视以及管理控制而设计的[3],其 内 嵌Visual Basic For Application(VBA)为自定义及扩展软件功能提供了完整开发环境[4]。VBA提供了基于ActiveX数据对象库(ADO)强大的数据库交互功能,VBA 访问实时数据库方法简单、灵活[5]。

2.4 数据访问思路

经分析,由于两个数据库中所需要数据分布在不同表中,为了方便DCS系统ADO访问数据库,采用PHP语言设计脚本程序定时取数至同一个表中。DCS上位机系统通过编写程序对远程数据库进行查询,并关联交换数据至DCS系统的数据库内,实现数据融合交换。数据流示意图如图2所示。

图2 数据流示意图

3 数据库数据提取

由于BMS-Source采集软件采集的数据以不同的格式存放在不同的表中,为了提取需要的数据,采用PHP语言编写脚本。

3.1 脚本执行日志

为了准确记录提取脚本时间和便于后期维护,建立提取数据日志,代码如下:

public function index() {

import(′@.ORG.Mlog′);

$log = new Mlog(′./Log/′, ′request_record′); //新建一个日志记录集

$log->mwrite(sprintf("%s... ", date(′Y-m-d H:i:s′))); }// 写入日志,记录脚本执行时间。

3.2 数据库BGRIMMDB查询操作

查询从表tdm_monitor_point中查询最新数据(依次是:库水位、干滩高程、浸润线1~21、内部位移15~18、降雨量),将数据依次存入$d数组中,写入 V1 ~ V19主要代码:

3.3 数据库HiMonitorDB查询操作

从表tdm_deform_surface中查询表面位移最新数据,将表面位移数据存入$d数组中,写入V20~ V31。

3.4 程序调度

系统定时执行PHP脚本文件,完成了2个数据的查询工作,等待下一个事件触发。清空表中上一次查询数据,定时提取最新一条数据至tdm_monitor_latest_value表中,使其保持最新数据,表中的数据刷新时间可以自行设定。代码如下:

M(′tdm_monitor_latest_value′)->where(′1=1′)->delete(); // 清空表

M(′tdm_monitor_latest_value′)->add($d); // $d中已经包含V1~V31个最新数据,将数据写入表tdm_monitor_latest_value中。

3.5 效果展示

根据数据定义,V1:库水位;V2:干滩高程;V3~V14:1#~21#浸润线;V15~V18:1#~4#内部位移;V19:降雨量;V20~V22:1#表面位移X/Y/Z;V23~V25:2#表面位移X/Y/Z;V26~V28:3#表面位移X/Y/Z;V29~V31:4#表面位移X/Y/Z。提取的效果,如图3所示。

图3 数据提取效果图

4 上位机数据通信

由于枫树岭尾矿在线监测系统为实时运行,不便于在数据库中直接做实验。本文以在实验室服务器建立一个本地数据库BGRIMMDB的方式进行仿真实验,建立laster-value数据表,并通过SQL数据库管理软件强制写入V1~V6的变量数据,通过编写VBA脚本建立数据库链接,实现数据查询、变量关联交换,实时将数据库数据写入上位机软件FactoryTalk View SE中,具体步骤如下:

4.1 变量声明

要在FactoryTalk View SE中获取数据库数据,首先在上位机建立内部标签通过VBA脚本完成数据的关联交换,如图4所示。在VBA中要使用FactoryTalk View SE中的标签,首先建立标签组对象TagG roup,然后利用标签组对象的Add方法将具体标签加入标签组对象,再利用标签组对象的Itam属性将所加点赋予一个标签对象,利用标签对象的Vaue属性进行标签值的操作[6]。变量声明代码如下:

图4 建立内部标签

4.2 数据关联交换

通过ADO数据访问,与远程数据库建立链接,查询结果存储在Recordset中。设定对象OtagG为创建标签组,循环执行查询数据并与OtagG对象关联,使OtagG对象数据处于最新状态。关联具体代码如下:

4.3 实验结果

FactoryTalk View SE客户端在切换页面时,VBA脚本程序自动执行,上述循环程序可以完成自动刷新数据操作。通过FactoryTalk View SE的内部数据存储功能,可以实现趋势图和历史数据分析,实时把尾矿库在线安全监测系统与FactoryTalk View SE系统完整融合。利用现有的FactoryTalk View Point软件远程发布到公司局域网进行Web实时访问。事例运行效果图如图5。

图5 运行效果图

5 结语

本文以尾矿库安全监测系统为例,利用DCS系统上位机FactoryTalk View SE支持VBA编程的功能,通过系统数据结构分析、编写代码,实现了数据库定时提取、上位机数据交换融合的效果。实验结果表明,通过VBA脚本访问SQL数据库,与上位机数据标签组建立关联,实时提取SQL数据库数据至DCS系统的方法切实可行,为矿山大数据平台实现数据融合提供一种思路,具有广阔的应用前景。

猜你喜欢
尾矿库上位脚本
一场史无前例的乐队真人秀
卫星遥感视角下的尾矿库
关于尾矿库的建设与环境保护问题的思考
自动推送与网站匹配的脚本
基础油“上位”
举一反三新编
捕风捉影新编
尾矿库整治的实践
“邻家失火我查灶”
基于VC的PLC数据采集管理系统