OPC历史数据访问——-OPC的基础工具的改进建议外文翻译资料

 2022-11-26 19:57:19

英语原文共 10 页,剩余内容已隐藏,支付完成后下载完整资料


OPC历史数据访问-------OPC的基础工具的改进建议

MichalBochenek1, Marcin Fojcik, and Rafal Cupek

西里西亚工业大学信息学院松恩-菲尤拉讷大学

michal.m.bochenek@gmail.com, rcupek@polsl.pl

marcin.fojcik@hisf.no

摘要:工业计算机系统不仅需要当前测量的数据,而且还需要被称为“历史数据”的之前数据。除了许多企业的解决方案之外,有一个“标准”的命名规范叫做OPC HDA(开放性、生产力、连接历史数据访问)。它描述了一个服务器以及通过服务器使得许多选项获取的数据可被访问。目前,OPC HAD软件开发工具包增加了开放性和通用性,不幸的是以效率为代价。本文介绍了工具箱的结构、效率测试和一些可能性的变化会增加效率。

关键字:OPC;历史数据访问;OPC软件开发工具包;历史服务器;COM/DCOM;客户端-服务端数据交换

  1. 介绍

在分布式工业控制系统正常运行的基本原理是数据交换。它触及到测量数据以及控制命令。介绍了许多不同的软件解决方案从一开始使用这种类型的应用程序。最初这种类型的系统显示的必要性具有不仅现在,而且之前的数据以及它们的时间戳。其中一个原因是效率的分析,另一个是生产计划。各种各样的转向应用和缺少通讯标准从许多不同的方面影响历史数据存储,最常见的是像数据库这样的辅助程序的运用。这种多样性引起这样的事实,历史数据不同于建在不同的结构,使得分组和简单数据计算成为可能。重要的区别也是时间戳。它没有定义是否应该改变的时刻检测(如传感器,在可编程逻辑控制器)或数据的时刻写(如数据库)。它介绍很多转换历史数据而引起的连接彼此不同的系统。同时当工业通信作为标准(OPC),历史数据标准性规范创建---OPC HDA.尽管OPC标准对于现今的数据(OPC DA)迅速变得流行,但是OPC HDA标准化并没有获得巨大的成功。作者的经验表明,许多次无论使用OPC DA和应用OPC技术可能性,注重科技进步企业拒绝接受这个机会,安装自己的(自定义)历史数据处理软件。本文的目的是试图解释这种现象通过选择研究了OPC软件开发工具包注重科技进步的效率和提供了一些可能的行动,提高标准。研究主要是基于分析内部设备的操作和与其他方法对比测试数据的收集和展示(SQL server数据库)。区别在于,OPC HDA是数据处理和传输的标准,但数据可以存储在不同的数据源(在我们的研究数据库),而SQL客户机应用程序能够访问数据存储没有专用的OPC协议。

  1. 协议描述

OPC数据访问协议用于为全球许多不同系统提供实时数据用于各种目的。OPC DA不是实时通信协议但时间戳机制提供了一致的:时间价值,质量(VTQ)流程变量信息和提供精准的数据和生产的时间。从这个原因是主要用于SCADA(监督控制数据采集)、HMI(人机界面)系统。如今MES(制造执行系统)成为工业计算机系统的重要组成部分。必须牢记,多次要求一个特定的产品包括产品谱系追踪、质量分析以及广泛理解维护。对于这样的活动,必须有一定数量的历史数据收集和用于进一步的处理。这就是OPC历史数据访问协议作为一个工业标准变得越来越重要的原因。OPC历史数据访问协议是OPC标准之一,OPC HDA规范提供一些应用程序需要提供历史数据。服务器连接到一个特定的数据源,比如数据库,被称为“历史的服务器”。有不同种类的历史服务器。OPC HDA标准支持一些主要类型,比如简单的趋势数据服务器和复杂的数据压缩和分析服务器,它有能力提供汇总数据或数据分析功能。尤其,有多个级别的能力来处理历史功能,从简单到复杂。从一个角度OPC HDA可以应用于MES系统,另一方面历史数据可能是一个常见的分布式控制站的数据存储库。我们要获得是数据一致性和易于管理中难以获得系统基于复制数据(分布式系统)或数据复制在本地存储库。显然,这个由许多不足,例如传送聚集的数据为了展示给客户端的必要性。本篇文章注重于OPC HDA客户应用和OPC HDA服务器的通信方面,创建于OPC基础,以效率为手段,应用于一个常规的SQL客户端。

OPC HDA协议使用相似,像SQL数据结构的请求,但包括开始和结束时间。

OPC HDA客户端应用程序能够连接到由不同的供应商生产的OPC历史服务器。提供代码确定每个服务器的数据访问、数据名称和细节关于服务器上访问这些数据。厂商也提供其他OPC服务器以及它们的OPC历史数据服务器,但他们不需要。图1说明了OPC供应商服务器配置的一个例子,显示客户端应用程序可以建立连接服务器来自不同的供应商,每个连接可能会导致一个不同的服务器(数据、报警或历史学家服务器)。

图1:OPC服务器交互

任何客户机应用程序需要访问OPC HDA服务器应该配置各种服务器。以防有另一个OPC服务器(例如数据访问服务器)作为系统的一部分,需要客户端应该正常工作甚至在没有这些额外的服务器。

OPC历史数据服务器提供了一种方法来访问或一组历史数据来源。服务器实现的可用区域功能类型。服务器可以作为一个独立的OPC历史数据服务器的OPC数据访问服务器或另一个数据源收集数据,实现。它也可能是一组的接口,在现有的专有历史数据服务器的顶部是分层的。引用该OPC历史数据服务器可以简单的向包,只是希望值在给定的时间框架也可以是复杂的报表,需要多种格式数据的客户。

客户端应用程序通过指定的接口执行与服务器的通信。有两种主要类型的类:自定义和自动化接口。历史数据服务器的定制接口实现强制但自动化接口是可选的。OPC规范列表COM接口,但不是这些接口的实现。组件对象模型是一个二进制接口标准软件元件部分在1993年引入了微软。它是用来使进程间通信和动态对象创建在一个大范围的编程语言。在OPC规范开发人员能够找到规范的行为接口将提供给客户端应用程序使用它们。

OPC历史数据服务器对象提供了从历史的服务器读取数据和写入数据到一个历史的服务器的能力。历史数据的类型是服务器依赖的。所有组件都通过接口访问。客户端只看到接口。OPC客户端应用程序必须实现一个历史的回调接口支持关机请求。该客户还可以实现一个服务器可以提供的各种异步连接的接口。如果客户端希望使用(和服务器提供)一个特定的异步接口,客户端必须实现匹配的回调。

  1. 数据交换机制

在前面的部分提到,OPC HDA协议用于客户服务器体系结构。数据交换在这个特定的解决方案可以被描述就像在传统的系统建立在这种类型的拓扑。客户端应用程序代表软件的目标是获得数据在一段时间内,某些用户感兴趣,作为原始数据或处理数据,根据所选算法和特定系统的支持。返回类型的数据是由客户端应用程序的用户。软件开发工具包提供的OPC包括一些数据处理的实现算法,描述的OPC HDA规范。服务器部分通常是放置在一个远程机器和它负责满足查询收到的客户。服务器必须有一个特定的数据源建立连接,然而不同数据源的类型可以从简单的文本文件到复杂的数据库和客户端不需要知道数据存储在哪里。OPC HDA地址空间是供OPC HDA客户浏览器接口。

每个OPC HDA服务器必须实现该通知OPC标签的历史数据可供查询的客户机浏览方式。客户端应用程序的用户能够指定(如果特定的客户机/服务器实现这些功能)的标签名称,时间段,处理算法(例如标准偏差,和,平均),选择那些应该由服务器返回的数据,和客户端向服务器发送正确的请求。主OPC HDA组件之间的交互示于图2.有访问历史数据的四个主要方面:

图2:OPC HDA SDK客户端 - 服务器数据交换机制

----读:客户端可以阅读原始值,处理值,值在一个特定的时间点,修改值,或价值属性的同步或异步调用.

----更新:客户端可以插入或替换值同步或异步调用

----注释:客户端可以阅读和插入注释

----回放:客户端对原料和聚合数据读取的值对于一个定义的时间框架有定义的频率。

收到数据请求后,服务器应用程序连接到数据源,并将请求的记录发送回客户端。从案例中描述的角度来看这篇文章中,客户机-服务器数据交换机制可以被图2例证。当用户的客户端应用程序在特定的时间段内展示成为一种趋势,SyncRead()方法被调用,有一个趋势类对象,从COpcHda服务器 ReadRaw()被访问。这个特定的方法试图调用ReadRaw()COM方法(放在COM包装),最终与ReadRaw()方法包含在COpcHdaHistorian类。然后, ReadRaw()方法开始运作,内部的COpcHdaItem对象存在,方法LoadData()和LoadDataFromFile()执行实际的从数据源获取数据。

  1. 分析下载/分享数据时协议效率

该OPC HAD定义连接客户端和服务器的接口。这个不会定义数据是如何被收集和存储的。不同的系统能够通过一些指定法的方法提供数据的读和写。它导致努力寻找标准可以被测量为了比较许多系统提供的效率,每一个使用不同的机制从数据源获取数据。许多方面之一并列系统提供的功能站基于各种协议将测量所需的时间收集不同的从数据库的数据量。测试环境已经呈现在图3中。

图3:测试环境

这里介绍的测试让有机会看到使用常规SQL语句(存储过程)和样本OPC HDA客户端应用程序进行测量。在每种情况下有20种测量。数字代表最小、最大和平均测量时间毫秒聚集在表1中给出。测量了同一段时间在每种情况下,然而有不同数量的记录从数据库加载代表不同频率的获得的数据字段。

所有测量均由使用c#语言提供的功能时间计算在每一个应用程序。SQL客户机在表1中提到的描述是简单的应用程序,使用该用户能够查看数据已经存储在数据库中。

分析数据后导致的结论。在SQL客户机的情况下与预期结果一致。这意味着,从数据库中检索数据的时间是提高线性的记录应该是加载。更有趣的是,然而,OPC HDA客户端所需要的时间。有必要解释每一个测试客户端应用程序重新启动后提供相同的一组操作,通常客户的地方获得数据在内存使用它作为一种缓存最小化数据展示给用户。相比常规的SQL客户机,使用OPC HDA协议加载大量的数据似乎无利可图。如果有8000条记录(每小时大约代表一个测量期间一年)从数据库加载,用户将不得不等上25秒使用所需的数据,这是不可接受的。它应该是显而易见的,这个数字的记录很少,如果我们认为大多数系统收集数据每小时比曾经更频繁。对于较大的数据量最好是使用简单的SQL查询或存储过程提供更快的数据加载。使用OPC HDA协议对小数据包可以考虑。

这导致了对服务器应用程序进行一些修改,只能加载数据中指定一个时间周期OPC HDA客户端接口。收集后分析结果(表1)表明,加载不同的数据量所需的时间,更大的数据集时间短,然而,值得惊奇的是,更小的数据集时间更长。然而,相对于不断变化的应用程序代码,获取的都不够令人满意。对于这个事实的原因之一是对于OPC HAD客户端的时间测量不同于作者在下一章中描述的其他结果(改进的考虑),随着一些关于OPC HAD客户端样本的工作的正确性的结论。

表1. 总结测试结果的时间(时间以毫秒为单位)

  1. 改进的考虑

虽然SQL客户机被证明是更适合使用在获取数据存储在数据库中,它将不提供数据处理机制(如标准差、回归行)除非软件开发人员努力为应用程序提供OPC HAD规范中描述的这些机制。使用OPC HAD客户端应用程序,比如示例客户机包含在软件开发中的工具包(SDK)由OPC协会准备。用户从刚开始就拥有这些功能,然而数据获取部分必须修改。必须提到的示例客户机应用程序操作数据存储在CSV(逗号分隔值)文件和解决方案主要用于在数据存储在数据库中。OPC HAD客户端和数据库在测试环境下得到一些类库的修改,意味着

只有在指定时间内的数据在OPC HAD客户端加载,得出进一步的结论。客户机应用程序没有正常工作,所需的任何改变在指定时间段内的历史数据收集了错误的结果。相关的事实是,OPC HAD客户端只有在最开始连接服务器,执行任何进一步数据请求只能存储在客户端机器的内存。因此,如果一开始请求一个月时间段的数据,然后接着用户想要收集一年的数据,但是只显示一个月的数据,在内存中没有其他的数据。过程请求数据的时间比起之前对于DLL的改变有一些不同,因为数据从数据库中获取存储在一个数组中,然后通过记录复制到内存中的表结构,从而增加了数据处理的时间。另一个改进的地方需要注意的是数据是从OPC HAD服务器传输到客户端的。不管传输的数据量是什么,它从服务器发送到客户端作为一个字符串,包含价值、时间戳、质量和可选地,任何特定的实现所需的额外信息。当大量的数据请求时,超过几千条记录,提到的字符串长度被估计超过100000字节。

然而,它不是数据传输时间问题,但过程收集数据所需的时间从字符串数组,然后进入列表,然后再排序数组,然后适当的网格图形用户界面(图4)。将数据从内存中的一个结构移到另一个也不应该成为一个问题, 因为即使变成更大的现代处理单元的数据量将能够有能力处理这个任务。但是进行一

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[29824],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。