• 官方微信

    CA800二维码微平台 大视野

  • 工控头条

    CA800二维码工控头条App

当前位置:自动化网>自动化文库>其它>WinCC报表在提钒半钢冶炼中的实践应用

WinCC报表在提钒半钢冶炼中的实践应用

发布时间:2013-05-15 来源:中国自动化网 类型:其它 人浏览
分享到:
关键字:

导读:

1 引言2008年以来,玉溪新兴钢铁公司开展了转炉提钒半钢冶炼,以克服铁水供给不足,原料条件较差等不利因素[1]。为了能准确掌握生产实践数据,以对半钢冶炼工艺进行研究与优化,玉钢一直采用人工抄表的方式记录、汇总。...

1  引言
2008年以来,玉溪新兴钢铁公司开展了转炉提钒半钢冶炼,以克服铁水供给不足,原料条件较差等不利因素[1]。为了能准确掌握生产实践数据,以对半钢冶炼工艺进行研究与优化,玉钢一直采用人工抄表的方式记录、汇总。然而,人工抄表方式落后,效率低、错误率高、易被人为篡改,而电子报表不仅能有效解决以上问题,还能对记录数据进行复杂的统计分析,以供业主从大量的生产数据中分类别、分时段的提炼数据,从半钢冶炼中的供氧控制、造渣控制、温度控制、终点控制等方面优化工艺。本文正是围绕玉钢提钒及半钢冶炼自动化系统中报表功能的设计与实践展开的。

2  设计思路
报表设计与实现的核心对象是数据,而获取数据、挖掘数据间的关系、了解用户存储、查询、修改及删除数据的具体操作与权限分配是需求分析阶段必须理清的环节。报表设计一般可分为三个步骤:数据存储与读取方式、数据查询及修改设计、报表打印及保存方法。
2.1  数据存储
 由于应用对象为工业连续生产领域,报表功能应无缝嵌入上位机的HMI (Human Machine Interface, 人机交互接口) 项目中,不需要用户在多个软件界面中来回切换,提高软件的健壮性、降低操作的复杂度、增强计算机的运行权限管理;关系型数据库是数据存储最为广泛的应用方式,常见的Access、Microsoft SQL Server及MySQL等方便部署、操作简单的数据库均为可行方案。

玉钢半钢冶炼自动化HMI系统采用Siemens公司的WinCC (Windows Control Center,Windows控制中心)组态软件设计实现。WinCC是实现监视控制与数据采集的优秀上位组态软件,功能完备,图形编辑器功能强大,利用其设计报表交互页面,与工艺监测、控制画面同在一个WinCC项目中,实现了无缝嵌入。
本工程中,报表中一部分数据为WinCC内部变量,为传感器记录的生产实际数据,一部分为系统自动录入,如炉号、炉龄、枪龄等,还有部分数据为用户手工录入。
2.2  数据查询及修改
由于数据的存储形式为关系型数据库,通过基本的SQL语句即可完成数据的查删改操作,同时需根据用户需求,设计交互界面,以限定查询及修改条件。
根据本工程的实际特点,报表记录对象为每炉炼钢的生产实际数据,设计炉号为该数据集的主键。由于该炼钢厂采用四班三倒的工作方式,时间、班次、班别均为查询条件,班别为权限设计条件。查询及修改交互界面与录入界面风格保持一致,提高软件的易用性。
2.3  打印及保存报表
将查询结果输出到打印机或者导出为常用办公文件格式。对于特定的数据查询,可通过复杂的SQL语句或利用办公软件自身的功能,对数据进行统计分析后将结果导出。
WinCC软件自带报表编辑器组件,提供报表的创建和输出功能,输出报表后可直接打印。同时,WinCC集成了大量的微软开放性技术,可通过VBA (Visual Basic for Applications) 程序,将查询数据导入至Excel文件中,并根据实际需要,对导出数据进行统计、演算等复杂功能。

3  实现方法
在理清报表的设计思路之后,结合本项目的实际情况,提出如下的实现方法:

3.1  数据存储
WinCC采用标准的MS SQL Server数据库作为组态数据和归档数据的存储数据库,同时提供了多种访问WinCC数据库的方法,如WinCC OLE-DB、MS OLE-DB (Object Linking and Embedding Database,对象链接嵌入数据库)、OPC HAD (面向过程控制的OLE技术)、ODK API (开放式开发工具包) 等等[2]。结合本项目的实际需求,利用SQL Server Management创建一个报表数据库:报表.mdf,将用户报表转换为3张数据库表Table <报表>,<铁水成分>,<半钢成分>。主表<报表>的主键为“炉号”,同时作为外键约束<铁水成分>及<半钢成分>。
同时WinCC提供了两种脚本:VBScript和ANSI-C。脚本用来为对象组态动作(触发函数)。在运行系统中,后台任务,例如打印日常报表、监控变量或完成指定画面的计算等,均将作为动作来完成。这些动作均由触发器来启动。
本项目中,利用VBScript脚本建立全局函数,调用MS OLE-DB对象与MS SQL Server数据库连接与断开。


3.2  数据查询及修改
数据查询及修改的核心是面向数据的SQL语言。典型的SQL查询语句如下:
Select A,B,C,D,E,F,G
From Report

该类型的查询语句,最重要的部分是Where语句条件的生成。本工程设计的方法是用户通过查询页面上的输入框或下拉菜单选择查询条件,利用VBScript脚本的HMIRuntime对象,判断输入框或下拉菜单中变量值的变化,动态的生成Where语句。再调用MS OLE-DB的Connection对象,运行该查询语句。
对于更复杂的自定义查询,要求在查询结果中显示统计结果。如常用的求和、取平均值等计算,可以通过SQL语句在数据库端完成统计工作,示例语句如下:
Select SUM(A) AS A,AVG(B) AS B,AVG(C) AS C,AVG(D) AS D,AVG(E) AS E,SUM(F) AS F
From Report
Where ( Date > ‘2012-8-1’ and Date < ‘2012-8-22’) and Class=’乙’
对于更为复杂的Where条件判断,还可通过SQL提供的Convert, Like, Datediff等函数对字符串、时间类字段进行判断和筛选,或利用定义变量及嵌套语句同时查询多张数据库表获得一条报表记录或统计数据。
MS OLE-DB的查询返回值为一结果集对象RecordSet,该对象具有RecordCount, Sort等属性及Find, Cancel, Delete, GetRows等方法,不论是查询多条数据或单条数据,均可通过VBScript程序对查询结果集进行判断和筛选,将数据库数据赋给WinCC内部变量,显示在组态画面上。
本项目中,对炉长权限的用户,开放修改报表记录权限,典型的SQL修改语句如下:
Update Report
Set A = 15, B = 0.23, C = 3.59, D = ‘11#’
Where Date = ’2012-8-23’ and FurNO = ’23-10025’
可通过Connection.Execute方法的返回值RecordsAffected,判断Update语句是否执行成功,并通过组态画面或弹出对话框给用户以反馈。

3.3  打印及保存报表
WinCC报表编辑器组件提供打印作业功能,可通过报表编辑器设计用户需要的报表格式,再通过添加报表动态部分的ODBC (Open Database Connectivity, 开放数据库互连) 组件,将查询数据填入报表,再启动打印作业,完成报表输出。
报表编辑器将报表分为静态部分和动态部分,静态部分一般用来制作报表表头或添加静态变量,如本报表的打印时间、打印操作人员等,动态部分则将数据查询结果填入报表。本项目中,由于为自定义数据库表,在利用ODBC组件查询数据前,还需配置ODBC数据源,创建报表与数据库的连接。而对于自定义查询中随时都在变化的SQL查询语句,报表ODBC组件提供了变量接口,当用户输入查询条件后,VBScript脚本将动态生成的查询语句写入WinCC内部变量,供ODBC组件执行。
前文中提到WinCC集成大量的微软开放性技术,在保存报表功能中,便需要用到WinCC图形编辑器中集成的VBA功能,它不仅能访问WinCC对象,同时能访问其他具有COM组件的应用,通过VBA的Application对象,可以创建微软Office对象,如常见的Word, Excel及PowerPoint文档,并访问办公文档中每一个单一对象,如某一单元格,某行文字,还能进行填充内容、更改属性等动作。本项目中,当用户完成自定义查询后,通过VBA访问查询获得的结果集对象,以循环语句的方式将结果集中的对象分条目、分类别的填入事先创建好的Excel模板文件,保存到指定目录下后,关闭Application对象即完成报表导出保存工作,并以弹出窗口的方式给予用户提示。核心程序段如下:
Sub ExportToExcel()
Dim xlApp As Excel.Application
Dim xlWB As Excel.Workbook
Dim sSql
Dim i, j As Integer
 ConnectDB()
    Set xlApp = CreateObject("Excel.Application")
    xlApp.Visible = True
Set xlWB = xlApp.Workbooks.Open("E:\Report\DailyReportTemplate.xls")
sSql = GenerateInquireSQL()
rst.Open sSql, Connection, 1, 3
With xlWB.Worksheets(1)
For i = 1 To ReportColumn
        For j = 1 To rst. RecordCount
            .Cells(j, i).Formula = rst.GetRows(j,0).Column(i)
        Next i
        Next j
    End With
    xlWB.Close True
    xlApp.Quit
    Set xlWB = Nothing
    Set xlApp = Nothing
End Sub
 打印报表页面如下。

4  总结与优化
该项目已于今年正式投入使用,系统运行良好,报表记录准确、高效。在项目的实施过程中,报表的格式、查询条件、统计字段、报表的操作方式以及组态页面的信息交互方式都经历了反复的修改,在这个过程中也对WinCC的集成功能、报表编辑器的功能有了更深刻的理解,下面仍就从报表设计的三步骤入手,对本工程的报表设计予以优化与总结。
4.1  数据存储
本项目中,用户报表对应的自定义数据库、对应的WinCC内部变量、报表编辑器中的静态表头、动态数据查询语句均由开发人员手工创建,通过VBScript脚本完成变量之间、存储介质之间的转变。当用户需求发生变更时,即用户报表发生变化时,所有相关变量均需手动创建或修改,查询语句也需相应修改,提高了软件维护的门槛和成本,降低了软件的健壮性。
WinCC软件包含有用户归档组件,用来在服务器PC上连续的保存来自技术过程的数据,这一组件中创建的归档变量,默认与SQL Server数据库关联,同时还可以被报表编辑器访问,大大提高了组件间的关联性,使得数据的操作更为方便[3][4]。
4.2  数据查询及修改
数据查询及修改涉及到用户输入与修改涉及,为方便用户的使用,查询条件中日期录入部分应严格规范格式,或使用专用的时间控件[5],而在班次、班别、炉长等信息应使用下拉菜单让用户选择,尽可能的减少手工键盘输入,避免使用过程中发生的格式错误,对于必须通过人工录入的部分,应严格控制录入格式,做好容错判断,并对用户的错误输入进行有效反馈,增强软件的易用性,降低项目交工时的培训成本。
4.3  打印及保存报表
WinCC集成的VBA功能虽然强大,但若碰上极为复杂的报表,或者导出保存报表较频繁的生产需要,图形文件加载大量的VBA代码会使画面文件过于臃肿,执行缓慢。对于这类应用,可通过WinCC支持的OPC方式访问WinCC项目的数据[6],将数据的导出保存工作放在Excel端来完成,能有效提高WinCC系统的运行效率。

5  结束语
综上所述,电子报表是工业控制系统中自动控制的一个重要组成部分,对于小规模运行的项目,在没有二级MES (Manufacturing Execution System, 制造执行系统)系统支持的情况下,一级组态软件的报表功能也逐渐成为客户的需要。WinCC作为行业内领先的软件,具有完备的功能和开放性,在报表的开发与设计中,还有很多有待挖掘的思路与优化的潜能。

参考文献:
[1] 王定树,杨春雪,邓官平等.玉钢提钒半钢冶炼的生产实践[J].钢铁研究,2010,38(增刊2):337-341.
[2] 西门子(中国)有限公司.A0459:WinCC数据开放性[EB/OL]. 2010.6.
[3] 西门子(中国)有限公司.A0296:使用用户归档实现报表简介[EB/OL]. 2009.3.
[4] 西门子(中国)有限公司.A0300:WinCC数据报表实现方法介绍[EB/OL]. 2010.6.
[5] 王前厚,王炳辉.锅炉自动抄表系统实现——一种用WinCC实现自定义报表的方法[J]. 自动化博览,2011,(8):72-77.
[6] 西门子(中国)有限公司.A0106:WinCC与Excel.VB的本地DDE通讯[EB/OL]. 2007.12.

作者简介:任韬(1984-),男,工程师,硕士,从事工业电气设计及自动化控制方面的研究。

本文地址:本文地址: http://www.ca800.com/apply/d_1nrutga2l2hvt_1.html

拷贝地址

上一篇:PLC及PID技术在烟草薄片水份控制系统上的应用

下一篇:工业以太网在特种冷却控制系统中的应用

免责声明:本文仅代表作者个人观点,与中国自动化网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容!