APP下载

基于事件触发的高炉料批报表

2012-08-15关世才关朋李艳东展鹏刘辉罗青华

电气传动 2012年8期
关键词:数据源高炉报表

关世才,关朋,李艳东,展鹏,刘辉,罗青华

(天津电气传动设计研究所,天津 300180)

1 引言

随着近年来国家节能减排方针的深入实施,淘汰落后产能、提高生产效率已经成为各个钢铁企业的首要任务,在这样的背景下精确的成本核算变得尤为重要。在高炉炼铁中,槽下配料的重量统计报表就是公司核算原料成本的主要依据。文章中介绍的高炉上料系统PLC采用Rockwell的ControlLogix控制器,FactoryTalk View SE作为监控软件,并以Access为数据记录模型,通过ADO技术外部调用可执行文件实现Excel全自动报表功能。这种方法可以弥补工控软件报表功能的不足,满足实际生产的需要。

2 ADO技术简介

2.1 早期数据访问技术简介

DAO(database access object)数据访问对象使用Microsoft Jet数据库引擎来访问数据库,它提供了完成管理关系型数据库所需要的全部操作的属性和方法。RDO(remote data objects)远程数据对象是一个专门为访问远程ODBC、面向对象设计的接口,可以实现服务器/客户端的设计目标,但RDO访问Jet或ISAM数据库方面受到限制。随着数据访问技术的发展,微软推出ADO技术正在逐渐取代DAO和RDO技术。

2.2 ADO技术简介

ADO(microsoft activeX data objects),又称为OLE自动化接口,是目前Microsoft通用的数据访问技术。ADO是为OLE DB数据访问方式的一种主要对象模型,而OLE DB则是由ODBC延伸出来的COM组件,是一个便于应用的底层接口。使用ADO以后,OLE DB的使用变得更加简单,速度更快以及较低的内存占用。ADO对象中主要包括建立与数据库连接的Connection对象,可以发出命令操作数据源的Command对象,以及连接数据库中的表或者是Command对象的执行结果返回的记录集的Recordset对象。通过ADO可以访问多种类型的SQL数据库数据,包括SQL Server,Access,Oracle等,也可以访问非SQL应用程序的文件,如Excel文件,文本文件等。ADO的另一个功能是“远程数据访问”(RDS),能够通过一个来回的传输将数据从服务器移动到客户端应用程序或 Web页中,然后在客户端对数据进行操作,最后将更新数据返回服务器。

相对于DAO,ADO对象可以直接创建,而不必严格遵循对象的层次关系,因此可以只创建一个“Connection”对象,但是可以有多个独立的“Recordset”对象来使用它,这些对象均为平面型顶级对象,ADO的RDS包含了RDO对于OLE DB数据源交互的大部分功能。而且ADO对数据库操作相对以往数据访问方式不但易于使用,还有高速度、低内存支出和占用磁盘空间较少的特点。因为ADO是一个和编程语言无关的COM组件系统,经常用到的编程语言包括:V BA,VBScript,VC,Java等,以及集成了这些语言的上位机监控软件,如:Rockwell公司的FactoryTalk View SE以及早期的RSView32、西门子公司的Wincc,Intellution公司的IFix、施耐德公司的CITECT等许多主流上位机监控软件集成的VBA都可以调用ADO对象,所以ADO的适用范围非常广泛,并且成为主流的数据库访问方式。

3 工艺流程及系统架构

3.1 工艺流程介绍

通常高炉上料系统的生产工艺分成槽下配料和炉顶布料,槽下配料系统由料仓、振动给料机、筛分及称量设备、胶带运输机、返矿(焦)系统、地坑中间仓等组成。这些设备按上料程序,把矿、焦等原燃料按重量、料种配成比例装入上料小车,再由卷扬系统送至炉顶,最后通过炉顶布料器将原燃料均匀地放入炉内冶炼。如图1所示。

图1 槽下配料系统流程图Fig.1 Flowchart of blast-furnace burden distribution control system

3.2 系统架构

高炉上料系统PLC应用Rockwell公司的ControlLogix系列控制器。Logix平台提供了通用的控制引擎、软件编程环境,以及跨多个硬件平台的通讯支持。上位机监控软件选用FactoryTalk View SE,作为系统的人机界面软件,用于监视、控制设备状况完成数据采集管理。FactoryTalk View SE以内部集成的RSLinx Enterprise作为上位机对PLC采集数据的数据服务器。作为历史数据的记录,数据记录模型可以保存成文件集的格式,但这种格式不方便自动化接口调用,除了记录到文件集之外,用户还可以设置FactoryTalk View SE将数据记录到中央的ODBC兼容数据库,通过ODBC连接到Access数据库作为数据记录模型,通过ADO将Access数据库中的数据按条件查询并写入到Excel文件中。

根据高炉的工艺要求,任何时刻都能直接查找Excel表格,生产过程中每上完一批料把上料的品种、重量记录并统计到实时报表中。根据这种要求,需要做成能随生产实时更新数据的Excel报表。FactoryTalk View SE提供了事件触发功能,可以利用此功能实现报表的实时记录更新。虽然FactoryTalk View SE内嵌了VBA语言可以作为自动化辅助接口,但是FactoryTalk View SE的事件中无法调度内部脚本事件,不能很好实现上述的报表功能,因此选择通过VB6.0编写报表程序并生成的可执行文件,再由FactoryTalk View SE利用外部事件触发命令APPSTART调用此程序,实现将数据记录到Excel表格文件中。数据流向的系统架构如图2所示。

图2 数据流向Fig.2 The flow of statistics

4 应用分析

4.1 报表触发条件

称量报表需要记录的是每批料放入高炉内的实际称量值,根据工艺要求,当炉顶料流调节阀开启后,料罐内炉料放空的时候PLC发出料批结束信号,这时将料罐内的料批数据记录更新至报表。称量斗中的料批重量数据是从槽下通过料车、受料斗、料罐逐级传递到高炉内并对历次净重进行累加,当料批中出现结束标志时将料批信息放入报表中间变量并清空料批信息,并调用报表程序。为便于上位机准确从PLC检测到料批结束的信号,所以需要在PLC程序中将料批结束信号变成一个延时的脉冲信号以满足HMI的采样时间。

4.2 创建数据库文件

Microsoft Office Access数据库是由微软发布的关联式数据库管理系统,拥有图形用户界面的特点,比较Sql Server数据库用户可以直观的查看数据库中的数据内容。Windows的开放数据互联ODBC数据源管理器是微软开放服务结构中有关数据库的一个组成部分,提供了一组对数据库访问的接口,在ODBC的系统DNS中添加Driver do Microsoft Access数据库,设置数据源名Access Database,对应的数据库选择在D盘TG3_BAOBIAO文件夹下创建一个BAOBIAO.mdb的空数据库文件。

4.3 HMI连接数据库

典型的数据源依然需要支持开放式数据库连接(ODBC)标准的关系型数据库,首先在数据记录中把需要报表归档的数据记录到ODBC数据源中,数据源的名称写成ODBC数据管理器中名称Access Database,连接后自动在BAOBIAO.mdb中创建了一个含有标记表TagTable,浮点表FloatTable,字符串表StringTable的数据库,数据就记录在浮点表中。记录触发器选择根据要求,当一个批料完全放入炉内时触发FactoryTalk View命令DataLogSnapshot,将料批重量记录到数据库中并调用VB程序,将Access数据写入到Excel中。

4.4 VB6.0读取数据库

Visual Basic(VB)是近年来在国内外得到迅速推广应用的可视化程序设计语言,通过VB环境与其他应用软件数据连接需要通过引用其他程序的目标库接口实现。首先在VB工程菜单下的引用中选中需要用到的在本机注册的接口目标库:Microsoft Access12.0 Object Library,Microsoft ActiveX Data Objects2.8(Mulit dimensional Library以及 Microsoft Excel12.0Object Library,接下来就可以访问VB中的ADO对象来访问数据库,并写入Excel报表文件中。

With ExcelApplication

.Workbooks.Add’新建工作簿

.Visible=False’自动报表窗体不可见

.Sheets(1).Name= "日报表"’表单名称

.Cells(3,1)= "时间"

.Cells(3,2)= "批数"

.Cells(3,3)= "焦1"’设置表头其余省略

.Worksheets("日报表").ActivateSet’激活表单

Excel Application = CreateObject("Excel.Application")’创建 Excel对象

Set cn1= CreateObject("adodb.connection")’连接ODBC数据源

cn1.Open"driver={Microsoft Access Driver(*.mdb)};DBQ=d:\TG3_BAOBIAO\BAOBIAO"’通过ODBC数据源打开数据库文件

Set rs= CreateObject("adodb.recordset")’将rs定义为数据集

Sql="select*from FloatTable where datediff(’d’,DateAndTime,date())<1order by DateAndTime asc,tagindex asc"’筛选方法

rs.Open Sql,cn1’对打开的数据库文件中当天内所有记录数据进行查询并且按照从早到晚的顺序排序

Do While Not rs.EOF

.Cells(I,1)=rs("DateAndTime")

.Cells(I,J)=rs("Val")

If J<=19Then

J=J+1

Else

J=2

I=I+1

End If

rs.MoveNext

Loop’将查询后得到的结果循环写入Excel报表文件中

.DisplayAlerts=False’报警信息不提示

.ActiveWorkbook.SaveAs FileName:="D:\" &Day(Date)&".xls"’保存为当前日期

.DisplayAlerts=True’报警信息提示

.Quit’退出并释放内存

综上,从工程环境下注册接口目标库、对连接对象的创建、打开Excel以及ADO对象、重新排序、写入数据到Excel、保存报表到指定位置并且最终释放内存,完成了对报表的数据检索的基本工作。

4.5 VB6.0制表

报表的格式是依据工艺要求制定的,它需要直观地反映实际的料批重量。报表内容方面包括:报表的标题,仓位的名称,料批时间,当前时间日期,汇总计算等。格式方面包括:字体大小要适合阅读,由于用A4纸张打印Excel需要制表,需要用到合并单元格指令Merge,合理设置表格的高度RowHeight和列的宽度ColumnWidth,设置字体指令 Font.Bold,Font.Size,Name,HorizontalAlignment等,识别到数据的最后一列和最后一行后要把表格内部以及边框写到表格中的工作都需要通过程序代码调整以满足打印和查看的需要。下面列出了部分制表命令。

’row=ExcelApplication.Cells.SpecialCells(11).row ’查找用户使用的最后一行,与行是否连续无关’

COL=ExcelApplication.Cells(row,255).End(-4159).Column’从得到的最后一行,从右向左查找用户最后使用的的列,与列是否连续无关.

Range(Cells(3,1),Cells(Row,21)).Borders(xlEdgeLeft).LineStyle=1’设置边框

制表完成后保存表格到指定目录中,并命名为当前日期以便查找。最后将文件复制到需要查看报表的网络客户端。生成的报表如图3所示。

图3 报表Fig.3 Report statistics

5 结论

1)表格扩展。报表的内容不仅限于前述的料批重量,可以根据不同的要求增加本批的探尺料位、布料方式、原料来源、炉身温度、水系统温度、风压风温、透气性指数、喷煤富氧量、理论燃烧温度等工艺参数,通过不同的数据组合方式生成趋势报表、班报表、日报表、月报表等。对工艺生产更加重要的是通过在表格中植入配料计算功能,根据配比公式计算出各种物料需求的比值,对比炉况后向卷称工段下发上料料单。这样通过报表的反馈和理论计算可以使铁水的含碳量含硫量等数据控制得更加精确,高炉更加高效稳定地运行。

2)数据通讯方式。报表中的VB可执行文件是通过料批脉冲来触发执行。这样设计是结合现场生产的需求,使报表中VB窗体不可见,这样不需要现场人员进行其他操作,直接查看Excel,实现了尽可能少的人工干预,完全实现了报表的全自动。在制作此程序时,同时也制作了通过人为触发查询执行的程序,这样就可以在RSView SE的画面中插入ActiveX控件中Microsoft Data and Timer Picker控件或者ADO控件中的日历控件,再通过RSView SE中内嵌的VBA辅助程序制作成针对两个时间点之间的数据查询并输出报表。也可以通过AB的OPC(OLE for process control)服务器的自动化接口软件RSLinx连接VB中引用的RSLinx OPC Automation 2.0接口,按照时间循环将报表信息通过比较写入到Excel表格(也可以通过数据库存储)生成需要格式的报表,或者在VB中建立可视窗体,这样可以不依赖于HMI和数据库环境独立于服务器系统,形成一套独立的系统,通过消耗少量的CPU硬件通讯时间和以太网连接数节省服务器计算机的内存占用,经过现场试验同样非常稳定。

[1]韩小良,韩舒婷.Excel VBA从入门到精通[M].北京:中国铁道出版社,2006.

[2]刘玠.炼铁生产自动化技术[M].北京:冶金工业出版社,2005.

[3]靳平,方康玲,赵万峰.ADO技术在IFIX报表中的应用[D].武汉:武汉科技大学,2003.

猜你喜欢

数据源高炉报表
5100m3高炉长期休风快速恢复实践
昆钢2500m3高炉开炉快速达产实践
昆钢2500m3高炉停炉及开炉快速达产实践
高炉前
LabWindows/CVI中Excel报表技术研究
Web 大数据系统数据源选择*
从三大报表读懂养猪人的成绩单
基于不同网络数据源的期刊评价研究
基于真值发现的冲突数据源质量评价算法
分布式异构数据源标准化查询设计与实现