admin管理员组

文章数量:1037775

OPC Classic(含OPC DA)和OPC UA之间对比

正如我们前几期所说的,当前 OPC 规范的标准化是 OPC UA(OPC 统一架构)。它是旧 OPC 标准的继承者,被称为 OPC Classic,或者称为经典OPC。直到今天,许多 OPC 服务器的安装仍然是经典 OPC 服务器。旧标准已经非常成功地解决了在自动化中实现独立于制造商的数据交换的任务,并定义了基本接口。

OPC Classic的缺点是缺乏平台独立性。OPC 经典基于 Microsoft 的技术 COM 和 DCOM,因此 OPC 服务器和 OPC 客户端的安装仅限于 Microsoft Windows 操作系统和网络。随着其他平台(Linux、Web 架构、云、物联网设备、CPS 等)的成功增加,OPC 的分布受到了限制。

OPC Classic

近年来,OPC基金会定义了一系列软件接口,以标准化从过程层到管理层的信息流。主要应用场景是工业自动化应用(如人机界面HMI和监控与数据采集SCADA系统)从设备中获取当前数据,并为管理应用提供当前和历史数据以及事件。根据工业应用的不同需求,OPC开发了三种主要的规范:数据访问(DA)、报警与事件(A&E)以及历史数据访问(HDA)。DA规范描述了对当前过程数据的访问,A&E规范描述了基于事件的信息接口,包括对过程报警的确认,而HDA规范描述了访问存档数据的功能。所有接口都提供了在地址空间中导航以及提供可用数据信息的方式。

OPC采用客户端-服务器模式进行信息交换。OPC服务器封装了过程信息的来源(如设备),并通过其接口提供这些信息。OPC客户端连接到OPC服务器,并可以访问和使用所提供的数据。消费和提供数据的应用程序既可以是客户端,也可以是服务器。下图展示了一个典型的OPC客户端和服务器的用例。

OPC Classic接口基于微软的COM和DCOM技术。这种方法的优点是减少了规范工作,只需定义不同专用需求的不同API,而无需定义网络协议或进程间通信机制。COM和DCOM为客户端调用服务器中COM对象的方法提供了一种透明机制,无论该服务器是运行在同一进程、其他进程还是其他网络节点上。利用这种在所有基于PC的Windows操作系统上可用的技术,减少了OPC规范和产品的开发时间以及上市时间。这种优势对于OPC的成功至关重要。

然而,主要缺点是OPC对Windows平台的依赖性以及在使用OPC进行远程通信时的DCOM问题。DCOM配置复杂,具有很长且不可配置的超时时间,且无法用于互联网通信。

OPC数据访问(OPC DA)

OPC数据访问接口允许读取、写入和监控包含当前过程数据的变量。其主要用途是将PLC、DCS和其他控制设备中的实时数据传输到HMI和其他显示客户端。OPC DA是最重要的OPC接口,目前在使用OPC技术的产品中,99%都实现了该接口。其他OPC接口大多作为补充实现。

OPC DA客户端明确选择其希望在服务器中读取、写入或监控的变量(OPC项目)。OPC客户端通过创建OPCServer对象与服务器建立连接。服务器对象提供了用于浏览地址空间层次结构以查找项目及其属性(如数据类型和访问权限)的方法。

为了访问数据,客户端将具有相同设置(如更新时间)的OPC项目分组到一个OPCGroup对象中。下图显示了OPC客户端在服务器中创建的不同对象。

当项目被添加到组中时,客户端可以读取或写入这些项目。然而,客户端循环读取数据的首选方式是监控服务器中值的变化。客户端在包含感兴趣项目的组上定义一个更新率。服务器使用该更新率周期性检查值的变化。在每个周期之后,服务器仅将变化的值发送给客户端。

OPC提供的实时数据可能并非始终可访问,例如,当与设备的通信暂时中断时。经典OPC技术通过为提供的数据提供时间戳和质量来处理此问题。质量表明数据是否准确(良好)、不可用(不良)或未知(不确定)。

OPC报警与事件(OPC A&E)

OPC A&E接口允许接收事件通知和报警通知。事件是单个通知,告知客户端事件的发生。报警是通知客户端过程条件发生变化的通知。例如,一个条件可以是储罐的液位。在这种情况下,当液位超过最大值或低于最小值时,会发生条件变化。许多报警要求必须对报警进行确认,这种确认也可以通过OPC A&E接口完成。

因此,OPC A&E提供了一个灵活的接口,用于从不同的事件源传输过程报警和事件。

为了接收通知,OPC A&E客户端连接到服务器,订阅通知,然后接收服务器中触发的所有通知。为了限制通知的数量,OPC客户端可以指定某些过滤条件。客户端通过在A&E服务器中创建OPCEventServer对象与服务器连接,然后生成OPCEventSubscription用于接收事件消息。这些事件消息的过滤器可以为每个订阅单独配置。下图显示了OPC客户端在服务器中创建的不同对象。

与OPC DA不同,OPC A&E没有明确请求特定信息(如读取值);然而,所有过程事件都会被提供,客户端可以通过设置某些过滤条件(例如,按事件类型、优先级或事件源)来限制事件的数量。

OPC历史数据访问(OPC HDA)

与OPC数据访问提供对实时、持续变化数据的访问不同,OPC历史数据访问提供对已存储数据的访问。从简单的串行数据记录系统到复杂的SCADA系统,历史存档都可以以统一的方式检索。

OPC客户端通过在HDA服务器中创建OPCHDAServer对象进行连接。该对象提供了读取和更新历史数据的所有接口和方法。第二个对象OPCHDABrowser被定义用于浏览HDA服务器的地址空间。

其主要功能是以三种不同方式读取历史数据。第一种机制从存档中读取原始数据,客户端定义一个或多个变量以及其希望读取的时间范围。服务器返回在指定时间范围内存档的所有值,最多为客户端定义的最大值数量。第二种机制读取一个或多个变量在指定时间戳的值。第三种读取机制从历史数据库中计算指定时间范围内的一个或多个变量的聚合值。值始终包含相关质量和时间戳。

除了读取方法外,OPC HDA还定义了在历史数据库中插入、替换和删除数据的方法。

其他OPC接口标准

OPC还定义了几个其他标准,作为基础规范或针对特定需求的扩展。基础规范包括OPC概述和OPC公共规范,定义了所有基于COM的OPC规范的通用接口和行为。下图提供了所有经典OPC规范的概览。

OPC安全规范定义了如何控制客户端对服务器的访问,以保护敏感信息并防止未经授权修改过程参数。

OPC Complex Data复杂数据、OPC Batch批量处理和OPC Data eXChange数据交换(DX)是OPC DA的扩展。复杂数据定义了如何描述和传输具有复杂结构数据类型的值。OPC DX通过定义客户端行为以及服务器内客户端的配置接口,规范了数据访问服务器之间的数据交换。OPC批量处理扩展了DA,以满足批量处理的特定需求。它提供了与S88.01物理模型和当前操作条件相对应的设备能力交换接口。

OPC命令定义了通过OPC调用方法或执行程序的机制。由于该规范在OPC UA启动后才完成,因此从未发布。但其内容和功能已完全纳入UA。

OPC XML-DA

OPC XML-DA是第一个平台无关的OPC规范,用HTTP/SOAP和Web服务技术取代了COM/DCOM。因此,引入了一种供应商和平台中立的通信基础设施,并保留了OPC数据访问的广泛接受功能。

由于典型的Web服务是无状态的,因此功能被减少到交换OPC数据访问信息所需的最小方法集,无需创建和修改通信上下文的方法。仅需八个方法即可涵盖OPC数据访问的关键功能。

这八个服务如下:

  • GetStatus:验证服务器状态
  • Read:读取一个或多个项目值
  • Write:写入一个或多个项目值
  • Browse 和 GetProperties:获取有关可用项目的信息
  • Subscribe:为项目列表创建订阅
  • SubscriptionPolledRefresh:交换订阅中已更改值
  • SubscriptionCancel:删除订阅

OPC XML-DA旨在实现互联网访问和企业集成。但由于其平台无关性,它主要在嵌入式系统和非微软平台上实现。然而,由于其高资源消耗和有限的性能,它并未像预期那样成功应用于此类应用。

OPC UA和OPC Classic

在 OPC UA 中,OPC Classic 规范提供了可以随时查询的功能模块。这些规范包括 OPC DA(数据访问)、OPC AE(报警和事件)、OPC 安全、OPC 批处理、OPC 命令、OPC XML、OPC 数据交换(DX)和 OPC HAD(历史访问数据)。它们通常统称为 OPC Classic 或简称 OPC。

OPC UA准确的说,包含OPClassic的上述所有规范。我们可以参考下图的OPC UA layer 模型:

最后一幅图来做总结(它们是继承和发展的关系):

参考链接:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2025-03-16,如有侵权请联系 cloudcommunity@tencent 删除数据服务器接口客户端事件

OPC Classic(含OPC DA)和OPC UA之间对比

正如我们前几期所说的,当前 OPC 规范的标准化是 OPC UA(OPC 统一架构)。它是旧 OPC 标准的继承者,被称为 OPC Classic,或者称为经典OPC。直到今天,许多 OPC 服务器的安装仍然是经典 OPC 服务器。旧标准已经非常成功地解决了在自动化中实现独立于制造商的数据交换的任务,并定义了基本接口。

OPC Classic的缺点是缺乏平台独立性。OPC 经典基于 Microsoft 的技术 COM 和 DCOM,因此 OPC 服务器和 OPC 客户端的安装仅限于 Microsoft Windows 操作系统和网络。随着其他平台(Linux、Web 架构、云、物联网设备、CPS 等)的成功增加,OPC 的分布受到了限制。

OPC Classic

近年来,OPC基金会定义了一系列软件接口,以标准化从过程层到管理层的信息流。主要应用场景是工业自动化应用(如人机界面HMI和监控与数据采集SCADA系统)从设备中获取当前数据,并为管理应用提供当前和历史数据以及事件。根据工业应用的不同需求,OPC开发了三种主要的规范:数据访问(DA)、报警与事件(A&E)以及历史数据访问(HDA)。DA规范描述了对当前过程数据的访问,A&E规范描述了基于事件的信息接口,包括对过程报警的确认,而HDA规范描述了访问存档数据的功能。所有接口都提供了在地址空间中导航以及提供可用数据信息的方式。

OPC采用客户端-服务器模式进行信息交换。OPC服务器封装了过程信息的来源(如设备),并通过其接口提供这些信息。OPC客户端连接到OPC服务器,并可以访问和使用所提供的数据。消费和提供数据的应用程序既可以是客户端,也可以是服务器。下图展示了一个典型的OPC客户端和服务器的用例。

OPC Classic接口基于微软的COM和DCOM技术。这种方法的优点是减少了规范工作,只需定义不同专用需求的不同API,而无需定义网络协议或进程间通信机制。COM和DCOM为客户端调用服务器中COM对象的方法提供了一种透明机制,无论该服务器是运行在同一进程、其他进程还是其他网络节点上。利用这种在所有基于PC的Windows操作系统上可用的技术,减少了OPC规范和产品的开发时间以及上市时间。这种优势对于OPC的成功至关重要。

然而,主要缺点是OPC对Windows平台的依赖性以及在使用OPC进行远程通信时的DCOM问题。DCOM配置复杂,具有很长且不可配置的超时时间,且无法用于互联网通信。

OPC数据访问(OPC DA)

OPC数据访问接口允许读取、写入和监控包含当前过程数据的变量。其主要用途是将PLC、DCS和其他控制设备中的实时数据传输到HMI和其他显示客户端。OPC DA是最重要的OPC接口,目前在使用OPC技术的产品中,99%都实现了该接口。其他OPC接口大多作为补充实现。

OPC DA客户端明确选择其希望在服务器中读取、写入或监控的变量(OPC项目)。OPC客户端通过创建OPCServer对象与服务器建立连接。服务器对象提供了用于浏览地址空间层次结构以查找项目及其属性(如数据类型和访问权限)的方法。

为了访问数据,客户端将具有相同设置(如更新时间)的OPC项目分组到一个OPCGroup对象中。下图显示了OPC客户端在服务器中创建的不同对象。

当项目被添加到组中时,客户端可以读取或写入这些项目。然而,客户端循环读取数据的首选方式是监控服务器中值的变化。客户端在包含感兴趣项目的组上定义一个更新率。服务器使用该更新率周期性检查值的变化。在每个周期之后,服务器仅将变化的值发送给客户端。

OPC提供的实时数据可能并非始终可访问,例如,当与设备的通信暂时中断时。经典OPC技术通过为提供的数据提供时间戳和质量来处理此问题。质量表明数据是否准确(良好)、不可用(不良)或未知(不确定)。

OPC报警与事件(OPC A&E)

OPC A&E接口允许接收事件通知和报警通知。事件是单个通知,告知客户端事件的发生。报警是通知客户端过程条件发生变化的通知。例如,一个条件可以是储罐的液位。在这种情况下,当液位超过最大值或低于最小值时,会发生条件变化。许多报警要求必须对报警进行确认,这种确认也可以通过OPC A&E接口完成。

因此,OPC A&E提供了一个灵活的接口,用于从不同的事件源传输过程报警和事件。

为了接收通知,OPC A&E客户端连接到服务器,订阅通知,然后接收服务器中触发的所有通知。为了限制通知的数量,OPC客户端可以指定某些过滤条件。客户端通过在A&E服务器中创建OPCEventServer对象与服务器连接,然后生成OPCEventSubscription用于接收事件消息。这些事件消息的过滤器可以为每个订阅单独配置。下图显示了OPC客户端在服务器中创建的不同对象。

与OPC DA不同,OPC A&E没有明确请求特定信息(如读取值);然而,所有过程事件都会被提供,客户端可以通过设置某些过滤条件(例如,按事件类型、优先级或事件源)来限制事件的数量。

OPC历史数据访问(OPC HDA)

与OPC数据访问提供对实时、持续变化数据的访问不同,OPC历史数据访问提供对已存储数据的访问。从简单的串行数据记录系统到复杂的SCADA系统,历史存档都可以以统一的方式检索。

OPC客户端通过在HDA服务器中创建OPCHDAServer对象进行连接。该对象提供了读取和更新历史数据的所有接口和方法。第二个对象OPCHDABrowser被定义用于浏览HDA服务器的地址空间。

其主要功能是以三种不同方式读取历史数据。第一种机制从存档中读取原始数据,客户端定义一个或多个变量以及其希望读取的时间范围。服务器返回在指定时间范围内存档的所有值,最多为客户端定义的最大值数量。第二种机制读取一个或多个变量在指定时间戳的值。第三种读取机制从历史数据库中计算指定时间范围内的一个或多个变量的聚合值。值始终包含相关质量和时间戳。

除了读取方法外,OPC HDA还定义了在历史数据库中插入、替换和删除数据的方法。

其他OPC接口标准

OPC还定义了几个其他标准,作为基础规范或针对特定需求的扩展。基础规范包括OPC概述和OPC公共规范,定义了所有基于COM的OPC规范的通用接口和行为。下图提供了所有经典OPC规范的概览。

OPC安全规范定义了如何控制客户端对服务器的访问,以保护敏感信息并防止未经授权修改过程参数。

OPC Complex Data复杂数据、OPC Batch批量处理和OPC Data eXChange数据交换(DX)是OPC DA的扩展。复杂数据定义了如何描述和传输具有复杂结构数据类型的值。OPC DX通过定义客户端行为以及服务器内客户端的配置接口,规范了数据访问服务器之间的数据交换。OPC批量处理扩展了DA,以满足批量处理的特定需求。它提供了与S88.01物理模型和当前操作条件相对应的设备能力交换接口。

OPC命令定义了通过OPC调用方法或执行程序的机制。由于该规范在OPC UA启动后才完成,因此从未发布。但其内容和功能已完全纳入UA。

OPC XML-DA

OPC XML-DA是第一个平台无关的OPC规范,用HTTP/SOAP和Web服务技术取代了COM/DCOM。因此,引入了一种供应商和平台中立的通信基础设施,并保留了OPC数据访问的广泛接受功能。

由于典型的Web服务是无状态的,因此功能被减少到交换OPC数据访问信息所需的最小方法集,无需创建和修改通信上下文的方法。仅需八个方法即可涵盖OPC数据访问的关键功能。

这八个服务如下:

  • GetStatus:验证服务器状态
  • Read:读取一个或多个项目值
  • Write:写入一个或多个项目值
  • Browse 和 GetProperties:获取有关可用项目的信息
  • Subscribe:为项目列表创建订阅
  • SubscriptionPolledRefresh:交换订阅中已更改值
  • SubscriptionCancel:删除订阅

OPC XML-DA旨在实现互联网访问和企业集成。但由于其平台无关性,它主要在嵌入式系统和非微软平台上实现。然而,由于其高资源消耗和有限的性能,它并未像预期那样成功应用于此类应用。

OPC UA和OPC Classic

在 OPC UA 中,OPC Classic 规范提供了可以随时查询的功能模块。这些规范包括 OPC DA(数据访问)、OPC AE(报警和事件)、OPC 安全、OPC 批处理、OPC 命令、OPC XML、OPC 数据交换(DX)和 OPC HAD(历史访问数据)。它们通常统称为 OPC Classic 或简称 OPC。

OPC UA准确的说,包含OPClassic的上述所有规范。我们可以参考下图的OPC UA layer 模型:

最后一幅图来做总结(它们是继承和发展的关系):

参考链接:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2025-03-16,如有侵权请联系 cloudcommunity@tencent 删除数据服务器接口客户端事件

本文标签: OPC Classic(含OPC DA)和OPC UA之间对比