我想为我的应用程序实现OPC UA通信(c#)
我发现了一些OPC UA服务器模拟(Prosys和Softing OPC UA)我可以毫无问题地连接和读取数据。我想要的是实施euromap 77标准。 http://www.euromap.org/euromap77
据我所知,我必须在通过OPC访问数据时使用模型结构。 我想将此模型加载到OPC UA服务器并处理该数据结构是否可以将此http://www.euromap.org/files/Opc_Ua.EUROMAP77.RC1_00.NodeSet2.xml模型导入任何免费的OPC UA服务器?
答案 0 :(得分:3)
OPC Foundation拥有带有节点管理器的示例服务器,这些节点管理器可以导入NodeStateCollections,即预定义节点。
您可以使用“UaNodeSetHelpers”类将NodeSet2文件转换为NodeStateCollections。
// First, read a NodeSet2.xml file from a stream.
var nodeSet = UANodeSet.Read(istrm);
// Then create an empty NodeStateCollection.
var nodes = new NodeStateCollection();
// Update namespace table
if (nodeSet.NamespaceUris != null && context.NamespaceUris != null)
{
for (int ii = 0; ii < nodeSet.NamespaceUris.Length; ii++)
{
context.NamespaceUris.GetIndexOrAppend(nodeSet.NamespaceUris[ii]);
namespaceUris.Add(nodeSet.NamespaceUris[ii]);
}
}
// Update server table
if (nodeSet.ServerUris != null && context.ServerUris != null)
{
for (int ii = 0; ii < nodeSet.ServerUris.Length; ii++)
{
context.ServerUris.GetIndexOrAppend(nodeSet.ServerUris[ii]);
}
}
// Convert the nodeset to nodeState collection, aka predefinedNodes.
nodeSet.Import(context, nodes);
```