opc ua XML文件创建

opc ua XML文件创建,xml,data-modeling,datamodel,opc,opc-ua,Xml,Data Modeling,Datamodel,Opc,Opc Ua,在编写XML文件以导入OPC UA的模型编译器时,我找不到任何指定如何选择“I”值的文档。我正在引用由建模工具生成的代码,以帮助我进行常规格式化 例如,在这段代码中: <Alias Alias="Boolean">i=1</Alias> <Alias Alias="Byte">i=3</Alias> <Alias Alias="UInt16">i=5</Alias> <Alias A

在编写XML文件以导入OPC UA的模型编译器时,我找不到任何指定如何选择“I”值的文档。我正在引用由建模工具生成的代码,以帮助我进行常规格式化

例如,在这段代码中:

      <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=1
i=3
i=5
i=10
i=12
i=13
i=15
i=35
i=37
i=40
i=45
i=47
i=291
报警
i=58
ns=1;i=6006
ns=1;i=6001
ns=1;i=6002
ns=1;i=6003
ns=1;i=6007
ns=1;i=6005
ns=1;i=6004
ns=1;i=6008
ns=1;i=6010
ns=1;i=6009

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

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


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

感谢您的帮助。当您提到标准名称空间时,使用标准名称空间最理想的例子是什么?在当前的情况下,我试图创建一个数据模型来表示工业环境中的控制器,并且我想使用在GITHUB上可用的OPC基金会SDK和模型编译器来实现这个名称空间0包含OPC基金会在OPC UA规范中定义的节点。您将在上的规范中对其进行描述。其中大部分将在第5部分:信息模型中介绍。实际上,UA中的所有内容都由节点描述:对象类型、变量类型、对象、变量、方法、视图、引用类型和数据类型。例如,XML第一部分中的所有别名都引用标准节点:OPC规范告诉您,数据类型字符串的NodeId为“i=12”,而别名引用的是“i=12”。