SimServer How To #1: 创建并模拟OPC UA数据模型
22.03.2022
2022年7月1日更新:已对所用语言进行了事实检查,并使其更加清晰。开始时的流程图已更新。操作步骤现在包括更多解释。
为了充分利用Prosys OPC UA Simulation Server,必须了解如何构建模拟系统。在本文中,您将学习如何创建信息模型,将其导入Simulation Server,并通过创建具有自定义值的对象和变量来充分利用它们。最后,我们将讨论如何使用客户端应用程序测试和监视系统。
您可能会问,为什么需要模拟呢?在几种情况下,模拟是必不可少的。比如,当您组装一个新系统或对一个旧系统进行更改时,您需要确保一切正常工作。有时,现实生活中的OPC UA服务器不可用于测试,因为它尚未构建、或正在使用中、或由于其他原因无法使用。在这些情况下,使用虚拟服务器可以节省您的时间,并让您继续进行开发。
产品
您需要4个产品来理解这个指南
-
Prosys OPC UA Simulation Server
- 该软件的免费版本可用于添加文件夹、对象和变量。
- 您需要专业版来导入和导出信息模型。您可以联系我们以获得免费的评估许可证。
-
- 此免费OPC UA客户端应用程序用于连接到模拟服务器以验证新的信息模型。
-
- 该应用程序用于创建信息模型并将其导出为NodeSet格式。
-
- 这些免费节点集被用作基础,您可以在此基础上构建自己的信息模型。
概况
下图显示了从具有需要数字表现形式的物理系统到启动该系统并与使用OPC UA的服务器一起运行的过程。
系统首先需要的是一个表现物理系统域的信息模型。模型可能已经以OPC Foundation Companion Specification或其他标准模型的形式存在。如若不然,您需要在现有模型或全新模型的基础上创建自己的模型。如上图所示,可以按原样将足够的信息模型导入Simulation Server或您自己的现有服务器,而无需通过UaModeler。
使用UaModeler对自定义类型建模后,可以将信息模型导入Simulation Server。使用Simulation Server,您可以使用模拟值为真实设备创建实例,以测试系统。如果信息模型的类型足够,您可以使用OPC UA Browser(或您自己的OPC UA客户端应用程序)测试和验证模拟系统。如果没有,则需要返回UaModeler对模型进行更改。
当一切都正常工作时,您可以将实例从模拟服务器导出为NodeSet文件,并将其导入到真实的OPC UA服务器中。以下各节将更深入解释这些步骤。为了使本教程更有趣,让我们假设Prosys OPC有新的设备,我们希望能够在OPC UA服务器上跟踪和识别。现在,我们将完成为新设备创建充足的信息模型的过程。
在本文中讨论信息模型时,我们使用了不同的术语。根据OPC UA规范,信息模型是 “定义、表现和联系给定系统信息资源的组织框架” 。以XML格式导出信息模型时,它遵循 “信息模型XML模式” 定义的语法。这些文件称为NodeSets XML文件。在将节点集导入Simulation Server时,可以看到名称空间是从这些节点集文件创建的,并添加到服务器的名称空间表中。通常,每个信息模型都是在一个明确标识的(NamespaceURI)名称空间内创建的,以便为它们提供易于区分的名称,这就是为什么在导入信息模型时会得到一个名称空间。
查找和创建所需的信息模型(OPC UA Modeler)
当您有一个需要数字表示的新设备或系统时,配套规范是开始寻找的好地方。这些信息模型为各种情况提供了各种领域的现成类型。每个模型都使用相同的标准,因此不同模型之间的兼容性是无缝的。如果你没有找到你所需要的,你可以很容易地在这些配套规范的基础上添加最适合你的情况。请参阅我们关于配套规范的博客文章。.
在我们的示例中,我们阅读了我们在这里下载的OPC基金会的配套规范,发现我们可以在DI模型的基础上进行构建。我们将为DeviceType添加一个子类型,然后为该子类型添加一个字符串标识符。
如何使用DI信息模型创建节点集
-
创建一个新项目。
-
选择要添加的所需基础模型。Opc.Ua.DI.NodeSet2.ua包含我们要用于创建新类型的模型。该模型取决于Opc.Ua.NodeSet2.ua中定义的模型。我们需要导入这两种模型。
-
定义信息模型的名称和命名空间URI。URI将在服务器上可见,并用于标识模型,因此它应该是描述性的。
-
浏览信息模型以查找要扩展的类型。Information Model 视图列出了可以用于定义新类型的所有相关信息模型。这些信息模型将作为您的信息模型的依赖项列出,而您所做的任何更改都将显示在您的模型中。
-
转到Types > ObjectTypes >BaseObjectType > TopologyElementType > DeviceType。这是我们将为其添加新子类型的类型。通过参考OPC基金会关于DI模型的文档,可以很容易地找到路径。当您找到可用的类型定义时,您可以向后查找路径。
-
选择DeviceType时,单击Add Subtype按钮。这将创建一个从DeviceType继承所有组件和属性的新类型。
-
为您的子类型命名。此子类型将定义设备的类型,因此我们将其命名为“ProsysDeviceType”。
-
单击Override按钮并在对话框中选择标识。此对话框列出了可以从该类型继承的所有可选组件。单击OK。现在设备子类型具有标识文件夹。
-
单击窗口右下角的“OK”。现在,您的子类型已被添加到信息模型中。
-
接下来,我们将在“Identification”文件夹中添加一个变量。单击信息模型中的“Identification”文件夹。
-
为标识文件夹添加新的子项。
使用以下属性:
- NodeClass: Variable
- Name: ProsysOPCIdentifier
- TypeDefinition: BaseDataVariableType
- ModellingRule: Mandatory
- DataType: String
-
再次点击OK。
-
检查您的信息模型在“Identification”中是否有一个名为“ProsysOPCIdentifier”的新变量。
-
转到项目树并找到您的模型。左键单击并选择Export XML。
-
检查输出日志中节点集的保存位置。
将信息模型导入Prosys OPC UA Simulation Server
现在我们有了一个满足我们需求的节点集,我们可以将其导入Prosys OPC UA Simulation Server,以创建新设备类型的实例。这是一个重要的步骤,因为通过实例,我们可以为设备创建模拟值,然后可以观察到信息模型如何工作。这一切都可以数字化完成,无需将物理系统或设备纳入测试。
如何将节点集导入Prosys OPC UA Simulation Server
-
运行Prosys OPC UA Simulation Server并转到 Namespaces 标签下。由于名称空间使信息模型的名称独一无二,因此最好列出名称空间,而不是信息模型。
-
由于我们使用DI信息模型来创建自定义信息模型,因此新模型依赖于DI模型,我们必须首先导入DI模型。单击”+”按钮并选择导入节点集。
-
单击 + 并再次选择导入节点集。现在查找并添加新节点集。
-
从左边的锁图标可以看出,我们无法以任何方式修改这些名称空间。让我们为实例再添加一个名称空间。再次单击+按钮,但这次选择AddNamespace。这将创建一个空名称空间,我们可以在其中从自定义信息模型添加新实例。
-
为新名称空间提供URI。选择一个描述性名称。我们将使用http://www.prosysopc.com/OPCUA/ProsysDeviceInstances,这符合我们的命名规则。
向模拟系统添加文件夹、对象和变量
我们已成功将节点集导入模拟服务器。接下来,我们将创建实例并为标识符提供一些初始值。
如何在Prosys OPC UA Simulation Server上从节点集创建实例
-
转到 Objects 标签以创建ProsysOPCDeviceType的实例。让我们先在 Objects 文件夹下为实例添加一个新文件夹。 Objects 文件夹包含服务器上的所有对象
-
选择新添加的名称空间作为新文件夹的正确命名空间。这样,文件夹和我们在其中添加的所有内容都将添加到该名称空间中。为您的文件夹命名。我们将使用“ProsysDevices”。
-
现在我们将在文件夹中添加一些对象。在文件夹上单击鼠标右键,然后选择Add Node > Add Object。
-
确认您选择了正确的名称空间,并为对象命名。
-
单击 Type 字段以获得一个对话框,您可以在其中选择新对象的类型。接下来,查找您自己的设备类型。查找类型的最简单方法是在对话框顶部的搜索栏中键入类型名称。选择正确的类型并单击OK。我们现在已创建该自定义类型的实例。
-
我们还想为对象添加标识符,单击Select Optional Members按钮打开一个新对话框。此对话框显示该类型可具有的每个可选成员。找到标识符并单击OK。
-
在Object creation对话框上单击OK。现在,您应该在步骤2中创建的文件夹中列出第一个设备。
-
现在,我们将给出标识符的初始值。选择标识符并打开Value标签。从Value标签顶部的开关禁用 Value 继承。如果保持启用状态,将无法设置自定义值。
-
标识符的数据类型为字符串,因此Value类型应保持不变。将标识符的值写入初始值字段。
-
按照步骤3-9创建更多设备类型的实例。
-
完成实例后,返回到名称空间标签。右键单击为实例创建的名称空间,然后选择 Export Namespace。这允许您创建新名称空间的节点集。
-
为新节点集选择位置和文件名。然后单击保存。
-
现在,您可以从保存的文件夹中找到新的实例节点集文件。在将其导入其他位置之前,让我们使用Prosys OPC UA Browser对其进行测试。
监控和测试模拟系统
我们现在已经进入了流程的测试阶段。我们将把我们的Prosys OPC UA Browser连接到Prosys OPC UA Simulation Server,并从地址空间中找到我们的新建实例。然后,我们可以读取设备标识符的值,并确保一切都像我们预期的那样工作。
如何将客户端应用程序连接到服务器并查找实例
-
运行Prosys OPC UA Browser并连接到Simulation Server。
(您可以从Prosys OPC UA Simulation Server的 Status 标签复制服务器的连接地址)。
-
浏览窗口左侧的地址空间。转到Objects >ProsysDevices以查找设备。
-
深入了解您的一个设备:FirstDevice>Identification>ProSysOpcidIdentifier。选择标识符以在 Attributes and References 标签上查看其值。
-
右键单击标识符并选择Monitor Data以打开数据视图,您可以在其中监视数值。
-
添加要监视的所有设备的标识符。
下一步
请记住,本文介绍了一个相对简单的案例,旨在帮助您入门,并让您了解如何最大限度地利用Prosys OPC UA Simulation Server。您可以创建和测试更复杂的系统和类型。如果您在构建自己的系统和模型时有任何问题,请联系我们:sales@prosysopc.com.
如果您现在想按照本教程进行操作,请为下载以下软件:
- Prosys OPC UA Browser
- Prosys OPC UA Simulation Server
- 您可以使用免费版来添加文件夹,对象和变量.
- 要导入和导出命名空间,您需要专业版。
- 要获得解锁专业版功能的评估或商业许可,请联系 sales@prosysopc.com.
- OPC UA Modeler
你可能会想,下一步是什么?使用新导出的实例节点集从何处开始?请继续关注我们未来的帖子。您可以订阅RSS源。

Kaisa Voutilainen
Software Engineer
Email:kaisa.voutilainen@prosysopc.com
Tags: OPC UA, Information Models, NodeSet, Simulation Server, Guides
comments powered by DisqusProsys OPC Ltd
Prosys OPC是OPC和OPC UA软件领域中拥有20年技术经验的行业佼佼者。 OPC和OPC UA(Unified Architecture)是工业和高科技公司使用的通信标准。
最新博客文章
如何在生产分析项目中取得成功
工业4.0分析项目将在未来几年内成为显著增长的业务。阅读如何绕过最常见的陷阱以及成功交付项目。
Prosys OPC UA Forge为什么是工业4.0工厂的重要组成部分
如今,边缘计算应用程序提供了比OPC UA聚合服务器更广泛的功能。事实上,它是工业4.0工厂的主要组成部分。"
Prosys OPC UA Forge介绍
关于Prosys OPC UA Forge的第一篇博文。本文介绍了Forge软件的主要特点和功能。