【问题标题】:opc ua XML file creationopc ua XML 文件创建
【发布时间】:2018-12-04 05:35:20
【问题描述】:

在编写要导入 OPC UA 模型编译器的 XML 文件时,我找不到任何说明如何选择“i”值的文档。我正在引用由建模工具生成的代码来帮助我进行一般格式设置。

例如在这个sn-p的代码中:

      <Alias Alias="Boolean">i=1</Alias>
    <Alias Alias="Byte">i=3</Alias>
    <Alias Alias="UInt16">i=5</Alias>
    <Alias Alias="Float">i=10</Alias>
    <Alias Alias="String">i=12</Alias>
    <Alias Alias="DateTime">i=13</Alias>
    <Alias Alias="ByteString">i=15</Alias>
    <Alias Alias="Organizes">i=35</Alias>
    <Alias Alias="HasModellingRule">i=37</Alias>
    <Alias Alias="HasTypeDefinition">i=40</Alias>
    <Alias Alias="HasSubtype">i=45</Alias>
    <Alias Alias="HasComponent">i=47</Alias>
    <Alias Alias="NumericRange">i=291</Alias>
</Aliases>
<Extensions>
    <Extension>
        <ua:ModelInfo Tool="UaModeler" Hash="uA8gb4iKYIgjKYj3GAUpcQ==" Version="1.6.0"/>
    </Extension>
</Extensions>
<UAObjectType NodeId="ns=1;i=1002" BrowseName="1:Alarm">
    <DisplayName>Alarm</DisplayName>
    <References>
        <Reference ReferenceType="HasSubtype" IsForward="false">i=58</Reference>
        <Reference ReferenceType="HasComponent">ns=1;i=6006</Reference>
        <Reference ReferenceType="HasComponent">ns=1;i=6001</Reference>
        <Reference ReferenceType="HasComponent">ns=1;i=6002</Reference>
        <Reference ReferenceType="HasComponent">ns=1;i=6003</Reference>
        <Reference ReferenceType="HasComponent">ns=1;i=6007</Reference>
        <Reference ReferenceType="HasComponent">ns=1;i=6005</Reference>
        <Reference ReferenceType="HasComponent">ns=1;i=6004</Reference>
        <Reference ReferenceType="HasComponent">ns=1;i=6008</Reference>
        <Reference ReferenceType="HasComponent">ns=1;i=6010</Reference>
        <Reference ReferenceType="HasComponent">ns=1;i=6009</Reference>
    </References>

选择“i”值的方式背后的基本逻辑是什么?

【问题讨论】:

    标签: xml data-modeling datamodel opc opc-ua


    【解决方案1】:

    如果您从标准命名空间 (ns=0) 引用节点,则所有节点 ID 都来自 OPC UA 规范,您只需使用它们即可。您不能添加新的,并且如果标准命名空间中的 ID 背后有任何逻辑,则此逻辑与您无关,也应该与您无关。如果您指的是其他地方的其他人定义的节点,同样适用 - 例如在 OPC UA 配套规范中为各种问题域定义的命名空间中的节点。

    如果您正在创建自己的命名空间(可能是,在 ns=1 下),那么您可以以任何您喜欢的方式定义节点 ID(在示例中,节点 ID 带有整数标识符),并使用任何逻辑你觉得有用(或者根本没有逻辑——只要你的节点保持唯一)。另请注意,您可以使用其他形式的节点 ID,例如字符串 (s=)、GUID (g=) 或不透明。

    【讨论】:

    • 感谢您的帮助。当您提到标准命名空间时,什么时候使用标准命名空间是理想的示例?在我目前的情况下,我正在尝试创建一个数据模型来表示工业环境中的控制器,我想使用 GitHub 上提供的 OPC 基础 SDK 和模型编译器来实现这一目标
    • 命名空间 0 包含 OPC 基金会在 OPC UA 规范中定义的节点。您将在规范中对它们进行描述,在 opcfoundation.org/developer-tools/… 上。其中大部分将在第 5 部分:信息模型中。实际上,UA 中的所有内容都由节点描述:对象类型、变量类型、对象、变量、方法、视图、引用类型和数据类型。例如,XML 第一部分中的所有别名都指标准节点:OPC 规范告诉您数据类型 String 的 NodeId 为“i=12”,别名指的是那个。
    猜你喜欢
    • 1970-01-01
    • 2020-03-08
    • 1970-01-01
    • 2017-08-23
    • 2021-03-26
    • 2023-02-09
    • 2017-06-14
    • 1970-01-01
    • 2019-02-04
    相关资源
    最近更新 更多