Skip to content
Wireshark Wiki 中文翻译整理专题首页原始页面

OPC

OPC 是一系列标准规范。第一个标准(最初简称为 OPC Specification,现在称为 Data Access Specification)源自全球多家领先自动化供应商与 Microsoft 合作开展的协作成果。该规范最初基于 Microsoft 的 OLE COM(component object model)和 DCOM(distributed component object model)技术,定义了一组用于过程控制和制造自动化应用的标准对象、接口和方法,以促进互操作性。COM/DCOM 技术为软件产品开发提供了框架。现在已有数百个 OPC Data Access 服务器和客户端。

历史

OPC Data Access 是第一个 OPC 规范。它非常易用,因为 COM/DCOM 被用作底层协议,并且从 C++、Visual Basic 到 Office 应用中的 VBA,各类 IDE 都很好地支持 COM 技术。它作为访问过程数据的供应商无关标准迅速普及,随后又出现了面向不同自动化技术需求的其他规范,例如 Alarm & Events。尽管它有优点,基于 DCOM 的解决方案也存在缺点。除了 DCOM timeout 和网络中断方面的一些问题外,最大的问题之一是它绑定于 Microsoft,无法移植到其他操作系统。

解决这一问题的第一个方案是基于 SOAP 的 XML-DA 协议。它原本面向更高层级的企业应用,但出人意料地被嵌入式设备供应商大量使用,因为它是第一个允许从其他操作系统以标准化方式访问过程数据的协议。遗憾的是,XML-DA 并不是最高效、最节省资源的协议。

OPC Unified Architecture 是 OPC 的一项全新发明,而不仅仅是一种新协议。所有现有规范都已集成到一个面向对象的地址空间中。它有一个新的信息模型,允许描述各种数据,包括 meta data 和复杂关系。冗余、可配置 timeout 等大量需求都已被集成。其中一个最重要的特性是它完全可移植,不再绑定于 Microsoft。OPC UA 在抽象层面描述服务,这些服务可以映射到不同类型的协议。最重要的协议映射之一是到一种高效的、基于 TCP/IP 的协议的二进制映射,该协议通常被称为 "OPC/TCP" 或 "OPC Binary"。更准确地说,这是通过 native TCP/IP 协议传输的服务数据的二进制编码。"OPC/TCP" 的 IANA 注册端口为 4840。在用户界面层面,UA server 通过类似 Web 浏览器中的 URL 来识别。访问此类服务器的协议前缀是 "opc.tcp://"。

另一个重要的协议映射是 SOAP 映射,它实际上是一个 WebService。编码以 XML 完成,传输通过 HTTP/SOAP 完成。其协议前缀就是 "http://"。

还有第三种映射,它是另外两种协议的混合。数据像 OPC/TCP 一样以二进制编码,但通过名为 "Invoke" 的单个 SOAP 服务传输。这样,二进制数据会进行 BASE64 编码,并在 Invoke 调用中通过 HTTP/SOAP 传输。这是在高效二进制编码和防火墙友好的 HTTP 协议之间的一种折中。

协议

基于 DCOM 的协议

  • OPC DA:OPC Data Access 协议

  • OPC HDA:OPC Historical Data Access 协议

  • OPC AE:OPC Alarm & Events 协议

  • OPC Commands:OPC Commands 协议

基于 SOAP 的协议

  • OPC XML-DA:第一个基于 webservice 的 OPC 协议。

基于 TCP/IP 的协议

  • OPC UA:OPC Unified Architecture 协议。

外部链接

讨论

导入自 https://wiki.wireshark.org/OPC,时间为 2020-08-11 23:17:40 UTC

相关 Wireshark Wiki 页面

网络分析技术档案