本文简单介绍OPC HDA规范的基本概念,更多通信资源请登录网信智汇(wangxinzhihui)。
目前,大多数历史数据系统都使用自己的专有接口对外提供数据服务,不能与任何其他系统互操作。OPC HDA规范旨在提供历史数据访问的标准接口,促进用C和C++开发用于历史数据访问的OPC服务器/客户端应用程序。规范中描述的接口的体系结构和设计旨在支持其他语言的OPC服务器的开发。
OPC HDA规范与其他OPC规范之间存在松散的绑定。此OPC规范不是从另一个OPC规范派生而来,也不是从其继承接口。OPC HDA规范的接口提供时间序列历史数据。如果需要实时数据,则应使用OPC DA接口。
OPC HDA规范描述了OPC COM对象及其由OPC历史服务器实现的接口。OPC客户端可以连接到一个或多个供应商提供的OPC历史服务器。供应商也可以提供其他OPC服务器。下图说明了可能的OPC供应商服务器配置:
任何供应商,甚至是不提供服务器的供应商,都可以提供客户端。客户端应该能够与任何服务器一起工作。如果需要另一个OPC服务器(如数据访问服务器)才能实现全部功能,则客户端仍应能够在没有其他OPC服务器的情况下对历史数据进行操作。
1. 历史数据服务器类型
1)简单的趋势数据服务器。这些服务器只提供简单的原始数据存储。(数据通常是可从OPC数据访问服务器获得的数据类型,通常以元组[时间、数值、质量]的形式提供)。
2)复杂的数据压缩和分析服务器。这些服务器提供数据压缩以及原始数据存储。它们能够提供汇总数据或数据分析功能,如平均值、最小值和最大值等。它们可以支持数据更新和更新历史。它们可以支持注释的存储以及实际的历史数据存储。
这些不同的服务器都包含在OPC HDA规范的可选接口中。如果服务器不支持一组功能,则不需要实现该功能组的可选接口。
2. 数据源
OPC历史数据服务器提供了一种访问一组历史数据源的方式。可用的源类型是服务器实现的一个函数。
服务器可以实现为独立的OPC历史数据服务器,从OPC数据访问服务器或另一数据源收集数据。它也可能是一组分层在现有专有历史数据服务器之上的接口。引用OPC历史数据服务器的客户端可能是简单的趋势包,只需要给定时间范围内的值,也可能是需要多种格式数据的复杂报告。
3.对象和接口概述
OPC历史数据服务器对象提供从历史服务器读取数据和向历史服务器写入数据的能力。所有COM对象都是通过接口访问的。客户端只能看到接口。下图概述了OPC对象及其接口。请注意,有些接口是可选的(如[]所示)。
下图为Historian Server模型。
浏览器接口为客户端提供了一种查看历史记录的地址空间的方法。预期该地址空间对于一些服务器可能是分层的,而对于其他服务器可能是平面的。此接口旨在支持分层视图,其中平面地址空间表示为单层分层视图。浏览器接口在大多数大型历史数据服务器中是必不可少的,它允许客户端以简单的图形方式查看地址空间。
OPC Historian Client应用程序必须实现回调接口以支持关闭请求。客户端还可以实现用于服务器可以提供的各种异步连接的接口。如果客户端希望使用(而服务器提供)特定的异步接口,则客户端必须实现匹配的回调。
下图为Historian Client模型。
关闭请求是允许OPC历史数据服务器干净关闭所必需的。当HDA服务器访问时,客户端应释放服务器提供的内存(请参阅自定义接口内存部分)并终止所有连接。
4. 所需接口定义
OPC HDA服务器开发人员必须实现所需接口的所有方法,并且必须实现所述方法的所有功能。OPC历史客户端通过调用OPC所需接口的功能与OPC历史数据服务器通信。对于所需接口上的可选方法,OPC历史数据服务器可能会返回E_NOTIMPL。
5. 可选接口定义
OPC HDA服务器开发人员可以实现可选接口的功能。当OPC HDA服务器支持可选接口时,必须实现该可选接口中的所有功能,即使该功能仅返回E_NOTIMPL。希望使用可选接口功能的OPC历史客户端将向OPC HDA服务器查询可选接口。客户端必须设计为不要求存在此可选接口。
未完待续。更多通信资源请登录网信智汇(wangxinzhihui)。