需了解的 OPC UA 客户端知识

时间:2021-07-28点击次数:779

需了解的 OPC UA 客户端知识

OPC UA 客户端的基本知识

OPC UA 客户端程序可用于执行以下操作:

从 OPC UA 服务器进行信息访问(如 S7-1500 CPU):读/浏览访问、写访问、订阅

通过 OPC UA 服务器执行方法

但是,OPC US 客户端仅可访问为此目的启用的数据(请参见“管理读写权限”)。

要建立与 OPC UA 服务器的连接,需通过服务器的端点(请参见“OPC UA 服务器的端点”)。

从 OPC UA 服务器读取信息

如果存在与服务器端点的连接,则可使用客户端的导航功能:从既定的起始点(“根”节点)开始,浏览服务器的地址空间。

该过程提供了以下信息:

启用的 PLC 变量、数据块和数据块元素

这些 PLC 变量、数据块和 DB 元素的命名空间索引及标识符

PLC 变量和 DB 元素的数据类型

数组中的元素数量(读取和写入数组时需要)

此外,还可读取有关 OPC UA 服务器自身的信息,以及基于 OPC Foundation 中“OPC UA for Devices”标准的 S7-1500 信息(如,序列号和固件版本)

从服务器中读取数据和写入服务器中的数据

现在,您已明确 PLC 变量的命名空间、标识符和数据类型。这表示,用户现在可专门读取各个 PLC 变量和 DB 元素,以及整个数组和结构。

有关读取布尔变量和数组数据块的示例,请参见“寻址节点”部分。

有关访问结构的规则,请单击此处。

基于浏览服务器地址空间时所读取的信息(索引、标识符和数据类型),还可通过 OPC UA 客户端将这些值传输到 S7-1500 中。在以下示例中,介绍了如何覆盖数组数据块“MyDB”中的**个值。

对于“Array Range”,可*待覆盖的数组元素。状态代码“Good”用于指示数据传输已成功。不过,您只能向 S7-1500 写入值,而不能写入这些值的时间戳。时间戳为只读。

通过注册提高访问速度

Registered Read/Write 有助于对数据进行重复的优化访问 – 具有较高性能。注册变量节点时,OPC UA 服务器会创建一个直接引用所注册节点的数字 Identifier(数字 NodeId)。对于客户端对此数字 Identifier 的读取或写入作业,服务器不必将任何字符串解析为 Identifier,并且可以通过优化的方式访问所请求的变量。

该 Identifier 仅适用于当前会话。会话连接中断/丢失时,需重新查询。

在以下示例中,首先在服务器上注册一个“StartTimer”变量。之后,将使用快速功能“RegisteredWrite”对该值进行设置。

在相同模式中,也可使用函数“RegisteredRead”。在重复读出数据时,该函数优势彰显。但在具体应用中,则建议使用 Subscription 进行代替。

建议:由于注册需要等待一段时间,因此建议在将注册信息保存在 OPC UA 客户端的启动程序中。

请注意 S7-1500 CPU 属性中可设置的注册节点较大数目,同时客户端需也需符合该数目的要求。具体信息,请参见“OPC UA 服务器的常规设置”。

订阅

术语“Subscription”时一个函数,该函数仅传输 OPC UA 服务器上已注册 OPC UA 客户端中的变量。数值发生变更后,OPC UA 服务器仅向 OPC UA 客户端发送一条有关已注册变量的消息 (monitored Items)。通过对这些变量进行监视,OPC UA 客户端*再进行固定采样 (Polling),这有助于降低网络负荷。

要使用该功能,需创建一个 Subscription。为此,需在 UA 客户端中*“发布间隔”(Publishing Interval),并单击“创建”(Create) 按钮。发布时间间隔是服务器在通知 (data change notification) 中向客户端发送新值的时间间隔。

在下面的示例中,已创建了一个订阅:客户端将每隔 50 ms 接收一条包含新值的消息(发布间隔为 50 ms)。

防止服务器过载

可通过“较小发布时间间隔”(Minimum publishing interval) 设置 S7-1500 CPU 的 OPC UA 服务器,确保不会提供客户端请求的较短发送时间间隔。请参见“服务器的订阅设置”。

示例:如上所述,客户端想要以 50 ms 的发布时间间隔进行操作。但是,这样短的发布时间间隔会导致网络负荷和服务器负荷较高。因此,应将服务器的“较短发布时间间隔”(Minimum publishing interval) 设置为 1000 ms。并将那些订阅需要较短发布时间间隔的客户端“减速”为 1000 ms,从而防止服务器过载。

订阅范围内的采样和传输 (Sampling & Publishing) 属于通信过程,与其它通信过程(TCP/UDP/Web 服务器通信...)一样,均由 CPU 按**级 15 进行处理。**级较高的 OB 会中断通信。如果设置的采样和传输时间间隔过短,该设置会导致通信负荷过高。因此,在满足应用需求的前提下,应尽可能选择较大的时间间隔。

有关变量一致性的信息,请参见“CPU 变量的一致性”。

监视 PLC 变量

Subscription 创建后,系统将通知服务器该功能待监视的变量。在以下示例中,将“Voltage”变量添加到订阅中。

在“Voltage”变量中,包含 S7-1500 CPU 检测的电压值。

采样间隔(“Sampling Interval”)包含一个负值 (-1)。该值决定了将为采样间隔使用 OPC UA 服务器的默认设置。默认设置由订阅的传输间隔(“Publishing Interval”)定义。如果要设置较小的可行采样间隔,请选择数值“0”。

在本示例中,该队列的长度设置为“1”:每隔 50 ms,从 CPU 中仅读取一个值,并在该值发生变更后发送到 OPC UA 客户端。

在本示例中,“死区”(Deadband) 参数设置为“0.1”:值的更改值需要达到 0.1 V;只有这样,发送方才会向客户端发送新值。若值的更改幅度小于该值,则服务器不会发送。例如,可使用该参数禁用信号噪声:没有实际意义的过程变量的轻微变化。


http://shtxjd.cn.b2b168.com

产品推荐