在什么情况下应该使用哪个,如果可以提供 OPC UA 和 OPC DA 的示例,将会很有帮助。
OPC-UA是OPC-DA的继任者,它有许多好处,其中最突出的一点是它是平台无关的。有各种语言的SDK可用,而且OPC-UA可以在任何东西上实现,从运行Linux的小型嵌入式设备到运行Windows的桌面电脑或运行您选择的操作系统的服务器。
对于任何新开发,如果有选择的话,应该使用OPC-UA。唯一使用OPC-DA的原因是如果您要连接到仅支持OPC-DA且无法被替换或升级的旧产品。
OPC UA不仅适用于OPC-DA,而且适用于所有的OPC经典版(DA、AE、HDA等)。OPC经典版使用DCOM通信进行客户端-服务器连接。DCOM是为Windows操作系统设计的。DCOM和RPC端口是工程师头疼的问题。
因此,OPC UA是一种新技术,它不依赖于DCOM通信,并且是平台(操作系统)无关的。OPC UA还支持Linux。
市场上很多OPC服务器还没有准备好支持OPC UA,但我相信它们正在逐步实现。
OPC客户端应用程序开发人员需要关注你的OPC客户端应用程序支持哪些OPC?以及支持哪些目的,例如:AE:告警和事件收集或者DA:数据访问)
所有OPC知识都可以在https://opcfoundation.org/找到。您可以下载源代码和一些组件DLL,但必须成为会员。
OPC UA 是 OPC 的统一架构。
规范没有关于平台、操作系统等的说明。
OPC DA 是 OPC 规范的旧版本,在其中有数据建模(不像 OPC UA 那样到了更大程度)。服务器和客户端之间传输的唯一信息是 VQT(值、质量和时间)。
而 OPC UA 具有数据和信息建模功能,除了 VQT 之外,还有许多属性/属性可以在服务器和客户端之间共享有关变量的信息(例如,描述此变量正在执行什么操作,使用哪个转换公式,变量是否可由用户访问等等)。
OPC DA 完全依赖于操作系统。而 OPC UA 则独立于操作系统。使用某些 OPC UA SDK,可以在不存在操作系统的平台上创建服务器。
OPC DA 的通信介质是 COM/DCOM。而 OPC UA 使用 TCP/IP 和/或 HTTPS。这取决于 SDK 是否支持其中任意一种或两种。
这些是一些关键的区别。
何时使用哪种:
我的建议是,无论您是否拥有 OPC DA 服务器,请使用 OPC UA。因为有些产品即使使用旧的 OPC DA 产品,也可以使用新的基于 OPC UA 的产品收集数据。
OPC UA 服务器可以独立于操作系统(这完全取决于 SDK 的类型)。将来,如果您想迁移到任何操作系统,则不会有麻烦。
希望这可以帮助您了解差异。
对于OPC-DA,您只能使用Windows操作系统作为OPC服务器,因为DCOM协议仅受Windows支持。另一方面,OPC-UA是跨平台的,甚至可以在嵌入式设备上开发。
在旧的DCS和工业设备中,您找不到任何OPC-UA服务器,因此必须使用OPC-DA。由于DCOM,配置OPC-DA太困难了,可能会导致许多奇怪的问题。