admin管理员组文章数量:1442755
你知道吗?OPC UA除了C/S模型,还有Pub/Sub模型!
在上期,我们详细的介绍了:OPC UA的传统模型,即:
OPC Server服务器和OPC Client客户端!
简称:OPC UA C/S模型。当然除了这个模型,还有扩展的Pub/Sub模型,我们这期重点分享下Pub/Sub发布/订阅模式。
OPC UA C/S模型
代码语言:javascript代码运行次数:0运行复制
OPC UA C/S模型(客户端/服务器模型)是 OPC UA 传统的通信模型。它基于这样的理念:存在一个被动的服务器组件,它为充当客户端的其他应用程序公开数据。客户端应用程序可以通过几种标准化的服务从服务器访问数据和信息。
客户端需要做的第一件事是,打开与服务器的连接。它需要一个连接地址(省略一些细节),然后就会创建一个会话到服务器。会话包含安全上下文,其中包括可选的加密和身份验证参数 —— 用于在服务器中识别客户端应用程序和用户。客户端还可以识别服务器,并决定是否允许与它通信。
在建立会话之后,客户端应用程序可以向服务器请求几种标准化的服务。这些服务包括:
- 连接并创建会话
- 浏览地址空间 —— 查看服务器提供了什么
- 读取 —— 变量值或元数据
- 写入 —— 变量值 —— 有时甚至是元数据
- 调用方法
- 读取历史记录 —— 针对变量和事件
- 关闭会话并断开连接
所以最后,当客户端完成操作后,它将关闭会话并断开连接。
C/S Subscriptions
代码语言:javascript代码运行次数:0运行复制客户端/服务器模型还包含一个订阅模型。在这个模型中,每个客户端可以创建任意数量的订阅到服务器。每个订阅可以包括变量的监控项(MonitoredItems)和事件通知器(设置了事件通知器属性的对象节点)。
订阅创建后,客户端将开始调用“发布”服务到服务器,服务器则以通知消息(NotificationMessages)进行响应。通知消息可能包含数据变化和事件,分别对应监控项的类型。
客户端/服务器优缺点
客户端/服务器模型在典型的 SCADA 场景中已成功使用,并且在不同应用程序之间的连接数量不是很高时表现良好。如果你有几十个或几百个设备(即服务器)需要保持连接——或者类似数量的客户端需要连接到任何服务器,你可能会在资源方面遇到麻烦,因为每个连接和订阅都需要管理,并且它们会在网络中产生单独的流量。
传统上,OPC UA 并非旨在实现任何确定性通信或在不可靠网络上的通信。但它允许同步服务调用,这些调用可以立即获得结果或对操作的确认,这对于应用程序来说可能非常重要。
安全性也很灵活,你可以按应用程序和用户定义规则——必要时甚至可以按变量定义。
Pub/Sub发布者/订阅者模型
发布者/订阅者模型与客户端/服务器模型截然不同,但在OPC UA的背景下,两者也有相似之处。
在发布者/订阅者模型中,我们有一个发布者组件,它可以定义包含变量或事件通知器的数据集DataSet。然后,发布者会发布数据集消息,其中分别包含数据变化或事件。因此,传输的数据与客户端/服务器订阅中的数据相似,只是其排列方式略有不同。
消息被发布到一个网络中,订阅者可以监听这些消息并筛选出他们需要的内容。
因此,与客户端/服务器模型中的订阅不同,在发布者/订阅者模型中,发送方通过数据集定义了将要发送的内容,而不是由接收方定义。不过,数据集消息中的数据与通知消息中的数据基本相同(尽管格式不同)。
该模型具有可扩展性,因为理论上可以有任意数量的发布者和任意数量的订阅者。它们都连接到同一个网络,但彼此之间并不直接相连,这是与客户端/服务器模型相比的主要改进之处。
发布者/订阅者网络
OPC UA为发布者/订阅者模型定义了两种不同的网络类型。
- 本地网络——可以使用UDP广播(或在某些情况下使用单播)或以太网APL。消息采用优化的二进制UADP格式,这是在OPC UA规范中定义的。因此,只有OPC UA订阅者才能解释这些消息。
- 消息队列代理——在实践中,可以是一个MQTT或AMQP代理。在这种情况下,消息通常是JSON消息,尽管为了提高性能,也可以使用UADP。OPC基金会为消息定义了一个标准的内容结构,但原则上任何JSON订阅者都可以解释这些消息。
发布者/订阅者安全
发布者/订阅者模型中的安全机制比客户端/服务器模型中的要复杂一些,且不够细粒度。
在本地网络中,你需要一个额外的组件——安全密钥服务器,所有发布者和订阅者都连接到该服务器,它为它们提供共享密钥,以便它们可以加密和解密消息。除非密钥服务器对应用程序进行身份验证,否则没有身份验证。
在代理网络中,安全机制基于SSL/TLS,代理可能会为传输启用SSL/TLS。它们还可以定义应用程序级别的身份验证。
在这两种模型中,原则上没有针对数据项的规则可以仅适用于某些发送方的某些接收方。对于能够加入网络的每个人来说,要么全部可以访问,要么全部无法访问。
发布者/订阅者优缺点
因此,发布者/订阅者模型解决了可扩展性问题,这也是MQTT已经在许多(非OPC UA)应用中非常流行和成功的原因之一。在这些应用中,你需要通过不可靠的连接将成千上万的数据提供者(如小型传感器或远程仪表)连接到中央监控系统。工业界已经提出了如何在更广泛的背景下实际使用该模型的新想法。现在,OPC UA为消息内容添加了一些标准化的格式以及将OPC UA数据映射到这些格式的标准方法,这应该会带来好处。新的标准化工作仍在进行中,尚未定义例如OPC UA丰富的信息模型如何以最佳方式映射到MQTT。
另一方面,OPC UA使用发布者/订阅者模型在本地网络中实现非常快速的通信。一旦通过以太网TSN和APL技术使网络变得确定性和快速,我们可以预见通过OPC UA发布者/订阅者实现实时通信的可能性。这就是OPC UA现场级通信(FLC)倡议的全部内容,也是新的现场交换(FX)规范可以提供的内容。
结论
我们仍然需要OPC UA客户端/服务器模型,以便能够在典型的SCADA场景中进行“同步”通信。
OPC基金会于2018公布发布/订阅模式,其为基于内容的传输方式,每个内容都设一个主题,于该内部网路中可以依主题进行订阅,当发布某个主题消息时,有订阅者能即时收到该主题消息。其定义两种不同网路类型,其一为本地型网路,使用UDP文字广播,其二为消息队列代理协议,可由MQTT或AMQP代理,以JSON格式发布,过去工业3.0有着名的自动化金字塔发展到工业4.0,此阶段即能让工厂设备进行联网并传输重要的生产资讯。
发布者/订阅者模型能够实现更好的可扩展性,并且提高了通信性能,这使得它成为实时通信的良好候选,并且在OPC UA现场级通信(FLC)倡议以及新的现场交换(FX)标准中发挥着重要作用。
本文标签: 你知道吗OPC UA除了CS模型,还有PubSub模型!
版权声明:本文标题:你知道吗?OPC UA除了CS模型,还有PubSub模型! 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/biancheng/1748061735a2800569.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论