基于OPC的数据采集系统
2015-01-16魏竹春南通醋酸纤维有限公司江苏南通226008
魏竹春(南通醋酸纤维有限公司,江苏 南通 226008)
基于OPC的数据采集系统
魏竹春(南通醋酸纤维有限公司,江苏 南通 226008)
南通醋酸纤维有限公司通过OPC标准接口,实现醋片生产管理系统采集PCS控制系统生成的生产数据,自动生成各类统计表,对醋片区域的生产信息进行综合归纳,以网页的形式实时发布产品、消耗、质量等有关方面的生产数据,使管理层及时了解醋片的生产状况,动态掌握产品、消耗、质量等信息。
OPC;WinCC;PCS控制系统;数据挖掘;Report Manager;Web Serve;批料报告;实时数据;事件消息;Web Serve;Batch Report;Real Time Data;Event Message
南通醋酸纤维有限公司成立于1987年3月,由中国烟草总公司与美国塞拉尼斯公司合资经营,是集化工、化纤、热电为一体的大型工业企业。主要产品为可再生资源的新型醋酸纤维丝束及其配套原料二醋酸纤维素片。
醋纤生产系统技术密集,生产自动化程度高,适合大规模集约化生产。其中,醋纤丝束生产能力为10万吨,国内市场占有率约为29%,全球市场占有率约为8%,销售范围达全国40多家卷烟生产企业;二醋酸纤维素片(醋片)生产能力为17.5万吨,国内市场占有率约为80%,全球市场占有率约为15%。
南通醋酸纤维有限公司醋片生产采用西门子公司基于WinCC的PCS控制系统,是以TI555作为控制器,以工业PC作为监控站,以工业以太网为控制网络(冗余)的大型过程控制系统。WinCC集成ODBC/SQL数据库,具有OLE、ActiveX、OPC标准接口,开放的API程序接口以及针对所有主要PLC厂商的通讯接口程序。
1 OPC技术研究
OPC是Object Linking and Embedding(OLE)for Process Control的缩写,它是微软公司的对象链接和嵌入技术在过程控制方面的应用。由一些世界上占领先地位的自动化系统和硬件、软件公司与微软紧密合作而建立的一套工业标准。OPC采用客户/服务器模式,把开发访问接口的任务放在硬件生产厂家或第三方厂家,以OPC服务器的形式提供给用户,解决了软、硬件厂商的矛盾,完成了系统的集成,提高了系统的开放性和可互操作性。OPC标准的制定,使所有的通信连接问题变得简单,它提供了一种软件的总线形式,使应用变得简单、轻巧,易于使用。应用程序只需知道如何从OPC数据源获取数据(OPC Cliet),设备的驱动程序只需知道如何以简单的格式提供数据(OPC Server)即可进行通信。
OPC服务器通常支持两种类型的访问接口,它们分别为不同的编程语言环境提供访问机制。这两种接口是:自动化接口、自定义接口。自动化接口通常是为基于脚本编程语言而定义的标准接口,可以使用VB、Delphi、PowerBuilder等编程语言开发OPC服务器的客户应用。而自定义接口是专门为C++等高级编程语言而制定的标准接口。OPC现已成为工业界系统互联的缺省方案,为工业监控编程带来了便利,用户不用为通讯协议的难题而苦恼。
OPC是以OLE/COM机制作为应用程序的通讯标准。OLE/ COM是一种客户/服务器模式,具有语言无关性、代码重用性、易于集成性等优点。OPC规范了接口函数,不管现场设备以何种形式存在,客户都以统一的方式去访问,从而保证软件对客户的透明性,使得用户完全从低层的开发中脱离出来。通过OPC服务器,OPC客户既可以直接读写现场控制设备的I/O数据,也可操作SCADA、DCS等系统的端口变量(只要该系统提供OPC服务)。
采用OPC规范设计系统的好处是:
(1)OPC规范以OLE/DCOM为技术基础,而OLE/DCOM支持TCP/IP等网络协议,因此可以将各个子系统从物理上分开,分布于网络的不同节点上;
(2)OPC按照面向对象的原则,将一个应用程序(OPC服务器)作为一个对象封装起来,只将接口方法暴露在外面,客户以统一的方式去调用这个方法,从而保证软件对客户的透明性,使得用户完全从底层的开发中脱离出来;
(3)OPC实现了远程调用,使得应用程序的分布与系统硬件的分布无关,便于系统硬件配置以及使得系统的应用范围更广;
(4)采用OPC规范,便于系统的组态化,将系统复杂性大大简化,可以大大缩短软件开发周期,提高软件运行的可靠性和稳定性,便于系统的升级与维护;
(5)OPC规范了接口函数,不管现场设备以何种形式存在,客户都以统一的方式去访问,从而实现系统的开放性,易于实现与其它系统的接口。
2 数据采集系统结构
基于OPC技术构建的醋片生产管理系统的主要作用有两个,一是对PCS控制系统生成的生产数据进行采集,并按工艺工程师提出的要求进行归类,自动生成各类统计表,使工艺技术人员对生产数据进行有效管理,以便提高产品的质量,该部分称为工艺管理系统;二是对醋片区域的生产信息进行综合归纳,以网页的形式实时发布产品、消耗、质量等有关方面的生产数据,使管理层能够及时了解醋片的生产状况,动态掌握产品、消耗、质量等信息。该部分称为生产信息系统。
醋片生产管控系统网络结构图如图1所示。
图1 醋片生产管控系统网络结构图
醋片生产管控系统组成及框架图如图2所示。
图2 系统组成及框架图
系统硬件配置:
· WinCC工作站:
SIEMENS工控机、双网卡
· Historian Server:
Dell服务器、RAID 1、2G RAM、双网卡
· Report Manager Server:
Dell服务器、RAID 1、2G RAM、双网卡
· Web Server:
Dell服务器、1G RAM、双网卡
系统软件配置:
· WinCC工作站:
Windows 2003 Server SP2
WINCC V7.0 SP2
KepServer TI505 OPC Server(用于连接TI505 PLC并提供OPC服务)
· Historian Server:
Windows 2003 Server SP2;
SIMATIC IT Full Services V6.4 SP2;
SIMATIC IT Historian Server V6.4 SP2;
SIMATIC IT Historian CAB Server V6.4SP2。
· Report Manager Server:
Windows 2003 Server SP2;
Business Objects Server 6.5.1;
SQL Server 2005 SP2;
Tomcat Apahe and Java runtime。
· Web Server:
Windows 2003 Server SP2;
SIMATIC IT Full Services V6.4 SP2 HF5;
SIMATIC IT Historian CAB Engineer V6.4 SP2;
SIMATIC IT Historian CAB Web Server V6.4 SP2;
Microsoft .Net 2005 SP2。
表1 —年—月醋片生产日报表
3 数据分析
基于OPC技术的醋片生产管控系统每天都采集到大量数据,如何从这些数据中提取工艺人员和管理者所需数据是我们需要解决的问题。数据挖掘技术正是解决这一问题行之有效的手段。
数据挖掘是从大量数据中提取或“挖掘”知识,由以下步骤组成:
(1)数据清理:消除噪音或不一致数据;
(2)数据集成:多种数据源可以组合在一起;
(3)数据选择:从数据库检索与分析任务相关的数据;
(4)数据变换:数据变换或统一成合适挖掘的形式;
(5)数据挖掘:基本步骤,使用智能方法提取数据模式;
(6)模式评估:根据某种兴趣度度量,识别表示知识的真正有趣的模式;
(7)知识表示:使用可视化和知识表示技术,向用户提供挖掘的知识。
经认真分析研究,综合归纳,醋片管控系统需生成如下五类报告:
(1)醋片生产日报
每日8时到次日8时为一个统计日;将统计日内的内容填入表1;保留当前月及上一月的表;
“投料数”为统计日内的投料数(批);
产量(吨)=投料数-废料批数(废料批数默认值为零,该值可人工输入维护)×0.977-废醋片(废醋片默认值为零,该值可人工输入维护),此公式可修改:
醋片合格率=产量/投料批数×0.977×100(%);
木桨量=吹送的木桨累计总量(吨);
混酸量=结晶器和醋化器混酸加料累积量(吨);
预处理醋酸量=预处理器醋酸加料累积量(吨);
硫酸量=结晶器硫酸加料累积量(吨);
氧化镁量=(A-MAG、B-MAG、C-MAG、D-MAG加料累积量)×20%/3.55(吨);
无离子水用量=CA工段无离子水累积数(吨);
蒸汽用量=醋片4kg、10kg蒸气流量累积数(累积数在回收DCS系统内)(吨)
用电量=EMS系统提供CA动力变、照明变、维修变、各螺杆机和离心机电度表累积用电量(kwh,注意不同倍率);
循环冷却水用量=两循环冷却水水表累积数(吨);
醋酸量=预处理器加料流量计加料累积量(吨);
水分标准偏差、粘度标准偏差、AV标准差、PV平均值:引自质量统计,为累积平均值。
(2)垂直单元批料报告
批料报告具有查询功能和快捷趋势线,可分单元查某一时段内的该单元批料报告,也可分时段查各生产线内6个垂直单元批料报告,双击某记录项目后出现该项目趋势线、平均值、最大值、最小值。数据保存2年。如表2所示。
表2 垂直单元批料报告
表3 —年—月木桨投料日报
(3)木浆投料日报
使用条码识别系统,将木浆批号、卷号、标签重量输入生产信息系统,记录每批木浆投料情况。如表3所示。
(4)冷冻机运行报告
运行报告显示前8小时采集的运行数据,具有查询功能和快捷趋势图,可分时段查询冷冻机的运行情况,双击某项目后出现趋势图、平均值、最大值、最小值。如表4所示。
冷量=0.1295 ×盐水流量×进出口温差(冷吨)
表4 冷冻机运行报告
(5)成品线运行状况报告
运行报告显示前8小时采集到的运行数据,具有查询功能和快捷趋势图,可分时段查询各条生产线的运行情况,双击某项目后出现趋势图、平均值、最大值、最小值。如表5所示。
二期醋片量=浆流量×进料时间×0.977/5.25(吨)
三期醋片量=浆流量×进料时间×0.977/5.5(吨)。
表5 成品线运行状况报告
4 数据采集系统的实现
4.1 采集PLC实时数据
由于KepServer TI 505 OPC Server比WinCC的通讯效率更高,所以采用KepServer TI 505 OPC Server收集PLC的实时数据,而WinCC Station用于数据换算(时间换算)和报警服务。WinCC Station的数据源同样来自KepServer TI 505 OPC Server1。
KepServer中通过建立多个通道(Channel)可以增加通讯的效率,在KepServer中,将过程数据和报警状态的采集放在不同的通道中,这样不仅提高了数据通讯效率而且当需要将报警采集停止时也比较方便,不会影响过程数据的采集。如图3所示。
虽然KepServer TI 505 OPC Server取代了WinCC数据采集的功能,但还需要WinCC实现其他两个功能:
(1)日期换算
在木浆吹料和投料批量等报告中都有时间格式的数据,这些数据是由PLC中多个整形数组合而成的,而RTDS的字符串运算功能很差,所以将此功能在WinCC中用脚本来实现。
图3 TI 505 OPC Server界面
(2)产生报警事件
Historian的PPA能够直接接收来自WinCC的事件消息,而生产用的WinCC Server的版本不够高,所以用此WinCC来产生报警。值得一提的是WinCC和Historian的版本匹配非常关键,必须严格按表6所示匹配。
表6 WinCC和Historian的版本匹配表
RTDS(Real Time Data Server)通过OPC方式收集来自KepServer TI 505 OPC Server和WinCC的实时数据,将数据引入Historian。
首先需要在RTDS Offline Configuration中定义OPC数据接口,由于数据量较大,通过将二、三期和四期的数据分成两个接口实例来采集,这样就可以提高性能、降低风险。
由于Database的点数较多,必须修改缺省的地址区域来允许定义更多的点数。通过Database Manager可以对点数据库进行备份、合并等操作。
RTDE(Real Time Data Engine)主要用于对实时数据的处理。在RTDE中定义脚本可以对定义好的变量进行计算和读写。
4.2 数据存储
PDA(Plant Data Archive)是对海量数据的直接存储,提供水平和斜率变化两种压缩算法对数据记录进行压缩,在定义PDA存储时,系统会自动根据上下限设置缺省的压缩限位,用户也可以人为修改这个限值。对PDA设置进行修改后必须使用PDA Configuration进行更新。
在两种情况下,将需要用到PDA:
(1)存储数据的实时值,已备日后用HDD查看数据的变化趋势。
(2)存储数据的实时值,然后在PPA中可以对PDA的数据归档做进一步的统计。
4.3 数据提取
PPA(Plant Performance Analyzer)的作用在于,从实时和海量的历史数据中提炼出用户最终想要得到的数据。如图4所示。
图4 PPA数据提取
PPA的数据源除了可以是RTDS、PDA、PPA,还可以是VBScript或OPC HDA(本项目中未用到OPC HDA,如果试图从WinCC的历史数据库中获得数据则需要用到它)。VBScript是PPA的重要功能,PPA内嵌了VBScript的编辑环境,并提供了访问PDA和PPA数据的函数,通过功能强大的VBScript功能,能够轻松获得想要的数据。
PPA数据记录的触发机制可以是定时触发、事件触发、数据变化时触发和COM触发,本项目中用到了事件触发、数据变化时触发。PPA数据最终存储在SQL Server中。
由于大部分的记录生成都是整点触发或是由某个标志位触发的,所以必须定义Event,通过Event触发PPA生成数据记录。
在Event Manager中定义Event,并可以在General Logger中查看Event触发记录。
PPA配置按下列步骤进行:
(1)定义Class:Class决定了PPA的数据源和触发方式,项目中基本上已报表来对Class进行分别定义。
(2)在Class中定义Item:Item即对应的每一项数据或报表字段。
(3)定义Equipment:为了生成报表查询更加简单,我们通过定义Equipment来表示报表,而Equipment的Property则代表报表的各个字段。这样,我们只需要将Property与相关的Item链接起来,最后在建立报表查询时只需查询相应的Equipment及其Property即可,无需填写一长串的Item Name。
4.4 报表系统
Report Manager的核心是著名的商业智能软件Business Objects(BO)。BO将复杂的数据库模式转换成对象呈现在用户面前,在进行数据查询时,用户只需选择自己想要的对象,BO能将用户的选择转换成SQL语句在后台查询数据库最终将结果反应到用户面前。如图5所示。
图5 报表系统原理图
这个将数据库变成对象的东西叫Universe。SIMATIC IT report manager提供了针对PPA数据库的Universe。
SIMATIC IT Report Manager内嵌了BO作为报表生成组件。SIMATIC IT Report Manager创建了对应于PPA、UniLab、PS等数据库的Universe,用户只要在编辑环境下直接选择Universe中的对象就可以简单的制作报表了。如图6所示。
系统制作的报表通常需要在刷新时弹出对话框提示用户输入查询时间段,PPA的Universe中也提供了一个名为“Select a Time Range”的条件对象。
图6 PPA Universe界面
运行如图6所示的查询时,将弹出一个时间选择的对话框,如图7所示。
这个对话框是用VBS编写的,同样PPA Universe中所有关于时间的条件都是包含VB Script的。用VBS固然可以创建自定义的Prompt窗口,但他在使用上有两个限制:
(1)含有VBS的条件即在包含“@Script()”函数的对象不能在WebIntelligence使用,即不能生成WebIntelligence文档。
图7 时间选择对话框
(2)包含“@Script()”函数的BO文档不能在Web上直接打开,只能选择“Business Objects format(Windows only)”,系统将运行本地安装的BO打开文档,这样对于用户来讲感觉不如直接在web中浏览那样方便。
用户希望可以直接在Web中输入查询时间,但出于性能的考虑,PPA Universe中的Item.Sample Timestamp (Local Time) 是不能作为条件的。所以在PPA Universe中创建了一些新的对象。目的在于让用户输入时间格式的条件,然后将时间转换为Seconds作为查询条件(PPA数据库中的时间字段为Seconds表示)。
首先在“General Time ObjectsCondition Objects”目录下创建一个对象“MyStartTime”,定义如下:
dbo.ufn_DateToSeconds( @Prompt('Begin Time : ', 'D', , mono, free, Not_Persistent, ) )
然后在“General Time ObjectsCondition Objects”目录下创建一个对象“MyEndTime”,定义如下:
dbo.ufn_DateToSeconds( @Prompt('End Time : ', 'D', , mono, free, Not_Persistent, ) )
最后在“PPAItemItem Samples”目录下创建一个Condition对象“My Select a Time Range”,定义如下:
@Select(Item Samplesitem.Sample Timestamp (C)) BETWEEN
@Select(Condition objectsMyStartTime) AND
@Select(Condition objectsMyEndTime)
将Universe保存、导出并在Supervisor中导入后,就可以在WebIntelligence或Business Objects中使用Condition“My Select a Time Range”了。在Web中显示的提示如图8所示。
由于在PPA中考虑了用设备来表示报表,用设备的属性来表示报表的字段,所以在制作报表时,只需要选择设备和设备的属性来检索数据。报表的版面设计相对比较简单,如同组态。
CAB(Client Application Builder)是一组NET组件,用于在NET环境中与SIMATIC IT组件进行交互。
本项目中的历史趋势和流程画面均由CAB组件开发,然后上传到Report Manager中。当客户首次访问含有CAB组件的Web页时,客户端会自动下载控件,所以需要事先将IE的安全设置配置为允许下载ActiveX控件。安装客户端组件后,需要重新启动PC,然后就可以很方便的浏览醋片生产管理信息。
在研究OPC技术原理的基础之上,设计出醋片生产信息管理系统。该系统自动生成各类统计表,使工艺技术人员对生产数据进行有效管理,以便提高产品的质量;同时对醋片区域的生产信息进行综合归纳,以网页的形式实时发布产品、消耗、质量等有关方面的生产数据,使管理层能够及时了解醋片的生产状况,动态掌握产品、消耗、质量等信息。
图8 时间提示对话框
[1] 管廷杰. 基于OPC技术的卸船机双模式监控系统研究[C]. 上海: 上海海事大学机械电子工程, 2005.
[2] 邹云涛. 吴重光. OPC技术初探及国内应用现状[J]. 石油化工自动化, 2003, (6):1 - 5.
[3] Jiawei Han. 范明等译. 数据挖掘:概念与技术[M]. 北京: 机械工业出版社, 2001. [4] OPCFoundation. OPC Historieai Data Access Automation Interface Standard Versionl.0[S/OL], 2001.
[5] 苏昆哲. 深入浅出西门子WinCCV6[M]. 北京: 北京航空航天大学出版社, 2004.
OPC-based Data Collecting System
With the standard OPC interface, the Ncfc develops the CA flake production management system for collecting production data which generates from PCS control system. A various types of statistic tables is automatically generated and the process information is integrated into the form. The real-time products, consumption, quality information related to the production data can therefore be delivered on web so that the management person is able to know the above-mentioned production status and monitor the dynamic information of products, consumption, and quality.
OPC; wincc; Process control system; Data mining; Report manager; Web serve; Batch report; Real time data; Event message
魏竹春(1965-),男,江苏如东人,中级工程师,研究生,现就职于南通醋酸纤维有限公司,主要从事化工行业自动化系统的维护工作。
B
1003-0492(2015)09-0100-06
TP311