随着工业自动化水平的迅速提高和计算机在工业领域的广泛应用,人们对工业自动化的要求越来越高,提出了以信息化带动工业化的口号,信息化的关键就是实现企业的信息集成和数据交换、跨平台访问,本文针对此问题进行了有益的探索,分析了工业企业综合自动化系统的总体结构,提出了建立工业企业实时数据信息共享平台,方便了ERP/MES/底层控制系统的整体集成,提高企业的综合竞争力,在此基础上,具体介绍系统中应用的两个关键技术:基于XML(eXtensible Markup Language)的信息表示和集成技术,基于OPC(OLE for Process Control)的控制技术,在文章的最后,利用本文提出的设计思想和技术建立了一个企业信息共享平台。
a) 以PCS(Process Control System)为代表的基础自动化层。在PCS层,以DCS/PLC/FCS为主要数据支持方式的基础控制部分,主要内容包括集散控制系统(DCS)、现场控制系统(FCS)、多总线网络化控制系统、基于高速以太网和无线技术的现场控制设备、传感器技术、特种执行机构、可靠性技术、实时数据管理技术、数据融合与数据处理技术、实时优化技术(RTO:Real-time Optimization)、先进控制技术等等
b) 以MES(Manufacturing Execution System)为代表的生产过程运行优化层。它是以大型实时数据库系统为主要的数据支持方式。主要内容包括先进控制技术、建模与流程模拟技术(AMT:Advanced Modeling Technologies)、故障诊断维护技术、实时数据库技术、动态质量控制与管理技术、动态成本控制与管理技术等等。
c) 以ERP(Enterprise Resource Planning)为代表的企业生产经营优化层。主要内容包括企业资源管理(ERP)、供应链管理(SCM )、客户关系管理(CRM )、产品质量数据管理(PQDM )、数据仓库技术、设备资源管理、企业电子商务平台、先进计划与调度技术(APS:Advanced Planning and Scheduling)、与数据校正技术等等。
通过在实时数据库系统中引入XML技术,实时数据库系统增强了数据服务的能力,在应用上扩展能力更强,同时数据集成能力、异构数据库的互联能力都得到了质的突破。如图3所示,在实时数据系统上建立中间层组件(XML Web services),使实时数据库系统对于企业的信息集成和数据交换、跨平台访问和各种应用提供了更为强大的支持。
图3 在实时数据库基础上构建XML Web services
4. 基于三层结构和XML的信息共享平台的实现
此信息共享平台由三个逻辑层组成:数据层、业务对象层和用户界面层,是一个多层的分布式应用程序。数据层是Industrial SQL Servers实时数据库和SQL Server 2000关系数据库。业务对象层处理如何访问数据以及如何将数据分发到客户端。用户界面层由基于 Web 的应用程序和传统的 Windows 应用程序组成。图4描述了此应用程序的结构。
图4 在实时数据库上构建三层结构的示意图
开发分布式应用程序的方案是一次创建一层,从数据层开始,然后移到中间层业务规则对象,最后创建用户界面层。InSQL实时数据库中已经保存了工厂多年的事实和历史数据,我们将从创建业务对象,即 XML Web services 开始,然后生成两个用户界面:Web 窗体页和 Windows 窗体。
4.1 INSQL实时数据库数据层介绍
Industrial SQL Server是Wonderware公司的用于工厂和过程数据的开放的实时关系型数据库。在整个Industrial SQL Server 实时数据库系统中有一个关键的运行数据库(Runtime database),它是整个Industrial SQL Server 系统的SQL Server 在线数据库。由于大量的与工厂相关的数据与普通的商业数据具有共同的特征。例如,配置数据相对稳定或不发生实时变化。在工厂的日常活动中,可能会发生标签的添加和删除、描述的改变和工程范围的改变。运行数据库(Runtime database)就是用来存储这种类型的信息。运行数据库与所有的数据库实体一起工作,如表、视图和存储过程,这对于典型的工厂环境配置数据的存储都是必需的。可以使用InSQL Console 中的Configuration Editor 很容易地向运行数据库中添加配置反应工厂环境的数据。
我们可以通过Microsoft SQL Server的对数据库的对象联接与嵌入(OLE DB)来访问实时工厂数据,这些数据是 Industrial SQL Server 在SQL Server数据库的外面存储的。通过查询Microsoft SQL Server ,你不仅可以查询运行数据库中的配置信息,而且可以查询磁盘中的历史数据,并且这种集成是无缝集成。
InSQL OLE DB 提供者的注册名称为INSQL。提供者包含一个目录和概要(分别为Runtime和dbo),在本文中我们主要用到以下数据库中的表:AnalogHistory,DiscreteHistory,AnalogLive,DiscreteLive。XML Web Services通过OLE-DB访问数据库中的这些表,然后把从工厂采集到的实时和历史数据通过Windows应用程序和Web应用程序的方式展现给用户。
但是,这些并不是相同的表。它们不是在SQL Server的运行数据库中产生的。相反,它们是在OLE DB 内部由网络提供者产生的。
我们通过SQL Server的查询分析器可以很方便的查询数据库中的这些表。
所提供的表以下面格式的四段表命名:
图5 InSQL数据库表四段命名结构图
下面是一个从AnalogHistory表中检索数据的SELECT语句示例:
SELECT * from INSQL.Runtime.dbo.AnalogHistory WHERE TagName = ‘ReactTemp’
4.2 创建中间层业务对象
1) 创建 ASP.NET Web 服务项目
ASP.NET Web 服务项目模板是基于 Web 的项目,旨在创建将其自身的接口公开为 XML Web services 的中间层组件。创建的业务对象将在 Web 服务器上运行,提供分布式应用程序所需的性能和可伸缩性。另外,把业务对象中间层实现为 XML Web services,这样客户端可以使用标准 Internet 协议从任何平台与您的业务对象进行通信。
我们将在InSQLWebService组件中创建与数据存储区的连接并通过数据集获取数据实例。
2) 创建并配置数据库连接和数据集架构
XML Web services 组件将保存数据连接和数据集定义。然后将添加 XML Web services 方法以公开此数据集,这使其他应用程序能够查看和修改此数据集。
在本文中使用 SqlDataAdapter 对象,此对象已针对使用 SQL Server 7.0 或更高版本进行了优化。也可以使用 OleDbDataAdapter 对象,这是因为它更通用,并提供对任何与 OLE DB 兼容数据源的 ADO.NET 访问权。如果要连接的数据库不是 SQL Server 数据库,我们创建一个 OleDbDataAdapter 对象和一个 OleDbConnection 对象。
XML Web services 将公开八个方法。第一个方法 GetAnalogLive 将从数据库返回模拟量实时数据集。第二个方法 UpdateAnalogLive 将用用户的更改更新数据库。数据库中的模拟量和离散量数据分为实时数据Live和历史数据History,下面八个方法实现类似的功能,并且创建了若干私有成员来实现这些方法。它们包括数据集定义、数据适配器、数据连接和若干从数据库中检索数据和更新数据库的命令对象。
下面是GetAnalogLive和UpdateAnalogLive方法的代码:
[WebMethod]
public AnalogLive GetAnalogLive ()
{
AnalogLive yyy = new AnalogLive ();
AnalogLivesqlDataAdapter.Fill(yyy);
return yyy;
}
[WebMethod]
public AnalogLive UpdateAnalogLive (AnalogLive tagChanges)
{
if (tagChanges != null)
{
AnalogLivesqlDataAdapter.Update(tagChanges);
return tagChanges;
}
else
{
return null;
}
}
4.3 创建用户界面
在创建了用于数据访问的中间层业务对象并将其公开为 XML Web services 后,我们就可以在客户端软件中调用这些Web services。这些客户端可以是 Windows应用程序、Web应用程序或者非Windows应用程序,并且Microsoft office systems 2003对Web services也提供了强大的支持,这样的话方便了我们在管理层要访问工厂数据,并且可以对数据库中的坏值进行更改。限于篇幅,不一一阐述。
参考文献
1) Kurt T. Haus(Feb 2003),OPC XML-DA Introduction,Technosoftware Inc.
2) Industrial SQL Server 培训手册,Wonderware公司
3) J Huang, J A Stankovic,An Integrated Real-Time Data Management Architecture for Industrial Control Systems[R],TR93-08,1993
4) Visual Studio .NET 2003 MSDN,Microsoft Corporation 1987-2002
5) 王成光,苏宏业,褚健,石化企业大型实时数据库系统的结构设计,化工自动化及仪表,2002,29
6) 王成光,苏宏业,褚健。流程工业实时数据库数据管理模型设计。浙江大学学报(工学版)
7) 汪海,张云生,“基于XML的多层分布式工业信息系统的软件开发”,昆明理工大学学报增刊,2002.9