点击下载——新钢11号高炉L2级系统数据采集的实现探讨.doc
新钢11号高炉L2级系统数据采集的实现探讨
孙立翔
(新余钢铁集团有限公司,江西 新余 338001)
摘 要:介绍新钢11号高炉L2级数据采集系统的结构和功能,在设计上还充分考虑了该系统后续维护工作和扩展工作的方便性和易使用性。
关 键 词:L2级系统;OPC;ADO
1 前言
新钢11号高炉于2011年12月底建成投产,高炉引入了L2级生产系统。该系统通过整合分析原本分散在各个L1级生产系统上的数据,生成格式统一易于分析的生产画面和生产报表。这些画面和报表为高炉操作提供了及时、准确的信息,便于炼铁工作者及时、全面了解炉况并采取相应措施。L2级生产系统是建立在大量及时、准确的L1级生产数据的基础上的,该系统能否及时、高效地获取各个L1级系统的数据便成为L2级系统功能实现的基础。
2 数据采集系统功能概述
L2级数据采集系统是新钢11号高炉L2级系统的重要组成部分。数据采集系统主要承担L2级系统基础数据的采集汇总工作,并将数据按固定格式和要求进行保存。它通过OPC数据访问接口读取L1级的高炉本体、炉顶、槽下、热风炉和喷煤的PLC数据,这些数据经过汇总整理后,通过ADO接口存储到数据库中。数据采集系统整理存储的数据将作为L2级其他子系统的基础数据供进一步分析使用。
数据采集系统的功能图见图1。
2.1 OPC数据访问简介
OPC数据访问是OPC协议族的一部分,由OPC基金会统一定义和管理。OPC数据访问定义了一组统一的数据访问接口用来向外部应用提供数据,这组数据访问接口称为OPC数据访问接口。OPC数据访问接口基于微软COM技术实现,可以被多种编程语言编译的应用程序访问,如:C,C++,Delphi,C#等。
OPC数据访问接口由OPC数据访问服务器提供和具体实现,接口的请求和释放管理工作也都由OPC数据服务器来完成。在使用OPC数据访问接口前需要安装OPC数据访问服务器并进行相关配置。
当实时数据从现场设备采集到OPC数据访问服务器后,OPC数据访问服务器就会通过COM接口形式提供给外部应用使用。OPC数据访问以接口形式统一,性能稳定,数据容量大的特点在工控领域被广泛应用。
2.2 ADO简介
ADO(活动数据访问对象)是微软为访问数据库中数据而设计的编程接口。ADO封装了OLEDB的数据库底层接口,能够编写通过OLEDB提供者访问和操作数据库服务器中数据的应用程序。它是一个便于使用的应用程序层接口。ADO最主要的优点是易于使用,速度快,内存支出少和磁盘I/O量少。ADO在关键的应用方案中使用最少的网络流量,并且在前端和数据源之间使用最少的层数,所有这些都是为了提供轻量和高性能的接口。
3 数据采集系统结构
11号高炉L2级数据采集系统是一套独立运行的子系统,它包括以下7个方面的内容。
1)可执行文件OPCreader.EXE是此系统的主程序,所有的OPC建立连接,注册回调接口和连接数据库等的实现都由它来完成。
2)文本文件conifg.ore是OPCreader.EXE的一个配置文件,用来保存用户需要读取的数据点的Item项。
3)数据库存储过程proc_opc_div(varchar2)是用来将数据按要求格式存储在数据库中的存储过程。
4)数据库存储过程proc_create_real_table()是根据数据库表opc_mapping自动构造出系统的所有实时表。
5)数据库表opc_mapping。存储过程proc_opc_div(varchar2)会按照此表的内容将数据映射到对应的实时表中去。
6)数据库表opc_items是用来记录conifg.ore中Item项的序号、Item名称、设备位号等相关信息。
7)数据库视图opc_items_all是数据库表opc_mapping和数据库表opc_items的交叉索引视图,在系统调试时使用。
3.1 数据采集系统内容说明
3.1.1 数据采集系统主程序
数据采集系统主程序OPCreader.EXE逻辑包括用户输入部分,用户设置解析模块,配置文件解析模块,数据定时刷新模块,数据缓冲池模块和OPCCli-ent模块等组成。OPCClient模块又由数据缓存模块和OPC回调接口模块等组成。系统逻辑结构示意图见图2。
3.1.2 配置文件
配置文件conifg.ore按规定格式记录Item项,其在主程序打开后由用户加载到主程序中。文件结构如下:
////////////////////////////////////////
OPCreader.config//配置文件头
////////////////////////////////////////
//ITEMS列表项S7:[DEMO]DemoTemperature//def
S7:[DEMO]DemoS7_A
S7:[DEMO]DemoS7_E
S7:[DEMO]DemoPower
其中配置文件头不可缺少,否则主程序不会识别该文件为正确的配置文件。ITEMS列表每一行代表一个Item项。配置文件中还可以在“//”后添加需要的注释内容。
3.1.3 数据库存储过程
1)存储过程proc_opc_div(varchar2)由主程序调用。它将以参数形式传递进数据库的长字符串拆分成单个数据值,并且根据表opc_mapping中的映射方式把数据存储到相应的实时表中。
2)存储过程proc_create_real_table()在系统部署和调整时手动运行一次。它根据表opc_mapping中的实时表与Item值的映射关系自动创建所有实时表。
3.1.4 数据库表和视图
1)数据库表opc_mapping结构如下:
opc_mapping(itemNrintegerprimarykey,//Item值序号
tnamevarchar2(40),//Item值被映射的实时表名
tcolumnvarchar2(40))//Item值被映射的实时表列名
2)数据库表opc_items结构如下:
opc_items(
itemNrintegerprimarykey,//Item值序号
itemNamevarchar2(40),//Item项名称
dataNamevarchar2(100),//数据值名称
equipmentItemvarchar2(40))//数据值设备位号
3)数据库视图opc_items_all视图结构为表opc_mapping和表opc_items的连接视图。
3.2 主程序功能实现
3.2.1 取值部分
取值部分的功能主要由配置文件模块和OPCClient模块来完成。参见图2。
当“用户设置”启动OPC时,数据采集系统读取“用户配置文件”并解析成相应的“Item”。然后OPCClient将这些“Item”以订阅方式添加到OPCServer并且向OPCServer注册“OPC回调接口”。添加和注册成功后,OPCServer就会在这些“Item”的值发生变化后立即调用“OPC回调接口”通知OPCClient。变化后的数据通过数据缓存模块保存在数据缓冲池中。
3.2.2 存储部分
存储部分的功能主要由数据定时刷新模块来完成。参见图2。
当“用户设置”启动写数据库时,“数据定时刷新”就会按照固定的时间间隔调用存储过程将缓存在数据缓冲池中的数据写入数据库中。
4 结语
经过模拟测试分析,该数据采集系统在1000个数据采集点的容量下工作正常。用户界面简洁清晰,内容一目了然。系统维护人员不需要记忆操作步骤也能正确操作。系统采用的是已经广泛使用的成熟技术,运行稳定性有可靠保证。系统采用了通用型接口,因此具有良好的兼容性和扩展性能。