AnyMath 文档
Notebook

Engee与Prosys OPC仿真服务器通过OPC UA进行数据交换的示例

导言

此示例演示如何使用Prosys OPC UA Simulation Server的示例,在Engee中的模型与外部OPC UA server之间通过OPC UA协议组织数据交换。\的
场景演示双向操作:

-从Engee中的OPC UA服务器读取值;
-值从Engee模型写回服务器。

标准Prosys仿真服务器用作测试数据源,Engee使用OPCUA客户端块,该块连接到服务器并读取变量 Triangle 并将值写入变量 MyVar.

此示例可用作将Engee模型与工业系统、控制器、SCADA和其他支持OPC UA的数据源/接收器集成的基本模板。


简要参考

什么是OPC UA?

**OPC UA(开放平台通信统一架构)**是一种工业数据交换协议,旨在实现各种程序和设备之间的可靠和标准化交互。

OPC UA的主要特点:

-平台独立性;
-客户端-服务器架构;
-存在具有节点的地址空间(节点);
-支持阅读,写作,订阅更改;
-内置安全机制。

在这个例子中,交换是如何工作的

在所考虑的例子中:

-Prosys OPC UA仿真服务器充当服务器;
-工程师担任OPC UA的客户;
-工程中的OPCUA客户区块:
-从服务器节点接收数据 Triangle;
-向服务器节点发送数据 MyVar.

节点和节点Id

OPC UA服务器上的每个变量都有一个节点标识符NodeID
该示例使用以下节点:

-阅读用:

  • Triangle
  • ns=3;i=1006
    -记录在案:
  • MyVar
  • ns=3;i=2

这里:

  • ns -命名空间索引;
  • i -节点的数字ID。

模型的逻辑

Engee模型实现了一个典型的方案:

  1. 正在形成用于写入OPC UA的输入数据总线;
  2. 在战场上 MyVar 正在记录测试信号;
  3. OPCUA客户端块将此值发送到服务器;
  4. 从服务器读取的变量是从块的输出总线中提取的 Triangle;
  5. 结果进一步根据方案显示以供观察。

Prosys OPC UA仿真服务器

提供一组模拟变量的测试OPC UA服务器。
在启动时,服务器生成并使用类似的连接地址:

opc.tcp://alexevs:53530/OPCUA/SimulationServer

主机名和端口在特定系统上可能不同。
对于您自己的启动,您需要使用Prosys OPC UA Simulation Server窗口中显示的地址。


设置的描述

1. 配置Prosys OPC UA仿真服务器

首先,启动Prosys OPC UA仿真服务器并检查其状态。

发射后可以看出:

*服务器处于运行状态;
*UA TCP协议用于连接;
*连接地址:

opc.tcp://alexevs:53530/OPCUA/SimulationServer.
image.png

您还可以在服务器对象树中的文件夹中看到测试变量。 Simulation,其中可用,例如:

  • Constant
  • Counter
  • MyVar
  • Random
  • Sawtooth
  • Sinusoid
  • Square
  • Triangle

对于一个变量 Triangle 可见:

  • NodeId = ns=3;i=1006
    -数据类型: Double

对于一个变量 MyVar 可见:

  • NodeId = ns=3;i=2

在参数选项卡中 Triangle 可以看出,该信号为三角形型,其范围和周期设置在仿真服务器侧。

image.png

2. 在Engee中配置OPCUA客户端块

OPCUA客户端块添加到Engee模型并打开其参数。

为了正确操作,必须设置以下基本块设置:

连接参数

-服务器地址: opc.tcp://alexevs:53530/OPCUA/SimulationServer
-安全政策: None
-讯息保安: None
-超时,s: 2.0

设置阅读

设置了一本字典供阅读 Read variables,将变量添加到其中:

  • Triangle("ns=3;i=1006", Float64)

也就是说,块应该读取节点值。 Triangle 作为数字类型 Float64.

录音设置

设置了一个用于记录的字典 Write variables,在指定的地方:

  • MyVar("ns=3;i=2", Float64)

这意味着节点 MyVar 来自模型的值将被传输到服务器。

轮胎名称

总线名称也用于块参数中。:

-输出总线名称: OPCOutputBus
-输入总线名称: OPCInputBus

这允许您通过结构化总线方便地组织一组变量的交换。


3. 在Engee中配置仿真和连接参数

以下建模参数在模型的属性中定义:

-使用固定间距;
-求解器:欧拉;
-整合步骤: 1e-3 秒数;
-模拟时间: 30 几秒钟。

要在Engee和服务器之间建立连接,安装PC并[Engee.Integration。](https://engee.com/helpcenter/stable/ru/engee-hardware/engee-integrations.html)


4. 在Engee中组装电路

下面的结构被组装在模型中用于测试通信。

image.png

形成用于记录的输入总线

首先,创建轮胎空白:

-使用形式的转换 convert(OPCInputBus, …) 以形成所需类型的轮胎;
-然后应用总线分配块(BusAssignment),其中选择字段:

  • MyVar

来自发生器的测试信号记录在该字段中。

OPCUA客户端块

备好的轮胎 OPCInputBus 连接到OPCUA客户端块的输入。
块同时执行两个功能:

-接受写入服务器的数据;
-形成输出总线 OPCOutputBus 用从服务器读取的值。

提取读取值

OPCUA客户端块之后,安装了一个BusSelector,其中选择了信号:

  • Triangle

该值沿着电路进一步馈送以用于显示或分析。


工作过程的描述

第1步。 启动OPC UA服务器

首先,启动Prosys OPC UA仿真服务器
它检查服务器是否处于活动状态,并且模拟变量在对象树中可用。

在这个阶段,马上看很方便。:

-服务器连接地址;
-必要的变量;
"他们 NodeId;
-数据类型。

示例使用节点:

  • Triangle 阅读用;
  • MyVar 记录在案。

第二步。 连接Engee到服务器

在Engee中,服务器地址在OPCUA客户端中指定块参数和安全设置配置。

由于演示使用本地测试服务器,因此选择了以下选项:

  • Security policy = None
  • Message security = None

之后,将以下内容添加到块中:

-可读变量 Triangle;
-可记录变量 MyVar.


第三步。 生成用于记录的数据

在模型内部创建一个测试信号,并将其记录在现场。 MyVar 输入总线 OPCInputBus.

因此,Engee开始将其自己的计算值传输到OPC UA服务器。


第四步。 从服务器读取数据

与此同时,OPCUA客户端块读取变量的值 Triangle 从服务器并通过输出总线输出 OPCOutputBus.

然后BusSelector块提取字段 Triangle 以在模型中单独使用。


第五步。 启动模型

运行模拟后,Engee建立与服务器的连接。
在Engee客户端程序中。将显示成功连接状态以进行集成:

-与服务器的连接已建立;
-客户端重新连接/连接到Engee;
-之后,模型切换到执行模式。


第六步。 检查数据交换

开始仿真后Prosys OPC UA仿真服务器窗口显示变量值的变化。

在模拟过程中,你可以注意到。 什么:

-对于变量 Triangle 电流值根据三角信号变化;
-对于变量 MyVar 从Engee写入的实际值也出现。;
-操作状态为成功。

这证实了交易所的双向运作。:

-服务器→Engee:阅读 Triangle;
-Engee→服务器:记录 MyVar.

此外,该过程支持在飞行中改变数据的能力-改变用于在服务器上产生三角形信号的参数导致Engee中显示的信号的相应变化。


image.png

结论

作为配置的结果,Engee和OPC UA服务器之间的工作双向交换已经实现。:

-Engee成功连接Prosys OPC UA仿真服务器;
-读取节点值 Triangle;
-生成并将值写入节点 MyVar;
-使用轮胎 OPCInputBusOPCOutputBus 进行结构化交换。

此示例可用作更复杂任务的基础。:

-连接到真正的OPC UA服务器;
-在同一时间交换多个变量;
-Engee模型与外部自动化系统的集成;
-在仿真数据上测试控制算法。


该示例演示了将EngeeOPC UA集成的基本和可视化场景。
它的关键价值在于它显示了整个周期。:

  1. 启动和检查OPC UA服务器;
  2. 搜索必要的变量及其 NodeId;
  3. 在Engee中配置OPCUA客户端块;
  4. 阅读和写作的巴士组织;
  5. 运行模型并验证实际交换。

对于培训和演示任务,此示例非常方便,因为Prosys OPC Simulation Server已经包含一组现成的测试变量,这意味着您可以专注于通过OPC UA连接和交换数据的机制。