NodeId作为ModelCompiler OPC UA中的字符串

时间:2018-08-31 07:32:32

标签: github deployment opc opc-ua

我正在尝试自行开发OPC UA服务器,但是由于我是编码方面的新手,因此这对我来说很难。 我从此处找到的QuickstartApplication开始:https://github.com/OPCFoundation/UA-.NET-Legacy

尤其是我编辑ModelDesign.xml文件以根据需要对其进行自定义 https://github.com/OPCFoundation/UA-.NET-Legacy/blob/master/ComIOP/Common/Common/ModelDesign.xml

我想用NodeId作为字符串定义一些节点(示例中ModelDesign.xml中的所有NodeId都是数字) 在此xsd之后,我发现“ StringId”和“ NumericId”看起来像是在寻找
https://github.com/OPCFoundation/UA-ModelCompiler/blob/master/ModelCompiler/UA%20Model%20Design.xsd
但是在ModelDesign.xml中更改其值对NodeId无效。没有错误,只是编译器分配了新的NodeId(全数字),就好像它没有考虑我所做的更改一样。

作为编译器,我正在使用GitHub上的ModelCompiler https://github.com/OPCFoundation/UA-ModelCompiler

有人可以帮我吗?如何自定义节点的NodeId?

谢谢 江户

1 个答案:

答案 0 :(得分:0)

我目前可以提供的最好建议是克隆UA-.NETStandard并在

中运行NetCoreConsoleServer。

UA-.NETStandard/SampleApplications/Samples/NetCoreConsoleServer

通过调试器。锅炉节点管理器(如果我的记忆很好)将使用stringID。 ISystemContext.cs中的Interface INodeIdFactory提供了有关如何生成ID的一些见识。

恕我直言,模型设计者没有执行强制执行字符串ID as you know的开关。因此,您需要在服务器启动时以编程方式将stringID而不是数字ID分配给节点。我也没有想出来。

因此,您可以在BoilerNodeManager.cs中设置断点,并查看nodeID的实际构造方式。