OPCBrowser C# (CSharp) Code Examples - HotExamples
同奇怪的技能又增加了,我学会了用ETS5配置KNX_wwyyxx26的专栏-CSDN博客_ets knx里提到的原因,我在做opcda接入。还真麻烦。这篇文件只讲讲opcda获取目录的时遇到的问,目前项目上接入了3个opcda服务,在接入其中一个服务时,获取目录总是出问题。
经过我不懈努力(上网搜索),终于找到了一个满意的方式,代码如下,就是置顶的连接所提到了的方法了。这个是基于动态库opcdaauto.dll的,好使。
/// <summary>
/// Рекурсивно обходит содержимое OPC-сервера.
/// </summary>
/// <param name="aBrowser">Браузер OPC-сервера.</param>
/// <param name="aPrefix">Префикс для построения дерева.</param>
private static void ShowOpcTagsRecurcive(OPCBrowser aBrowser, string aPrefix = "")
{
var isError = false;
try {
aBrowser.ShowBranches();
}
catch (Exception ex) {
Console.WriteLine("Ошибка при отображении ветки.");
isError = true;
}
if (!isError) {
foreach (var item in aBrowser) {
Console.WriteLine(aPrefix + "Ветвь: " + item);
aBrowser.MoveDown(item.ToString());
ShowOpcTagsRecurcive(aBrowser, aPrefix + "-");
aBrowser.MoveUp();
}
}
isError = false;
try {
aBrowser.ShowLeafs();
}
catch (Exception ex) {
Console.WriteLine("Ошибка при отображении листа.");
isError = true;
}
if (!isError) {
foreach (var item in aBrowser) {
Console.WriteLine(aPrefix + "Лист:" + item);
}
}
}
这里主要就是对函数ShowBranches MoveDown MoveUp ShowLeafs的使用,这几个函数的具体说明在文档OPC_DA_Auto_2.02_Specification.pdf的4.2.4 OPCBrowser Methods里,感兴趣的同学可以看看。也可以直接使用上面的函数了