开运行到获取服务器内Item的时候,出现如下异常:
E_UNKNOWN_ITEM_NAME
Cannot browse because the server is not compliant because it does not support the BROWSE_TO function
代码如下:
1 List<Item> lItems = new List<Item>(); 2 /// <summary> 3 /// 获取所有CPS内的节点 4 /// </summary> 5 /// <param name="parent"></param> 6 /// <param name="itemID"></param> 7 void LoadItems(BrowseElement parent = null, ItemIdentifier itemID = null, string ParentName = null) 8 { 9 10 // begin a browse. 11 Opc.Da.BrowsePosition position = null; 12 itemID = new ItemIdentifier("PlantArea1"); 13 BrowseElement[] elements = ((Opc.Da.Server)_currectServer).Browse(itemID, m_filters, out position);//获取地址列表 14 15 if (elements != null) 16 { 17 foreach (var browseElement in elements) 18 { 19 if (!browseElement.IsItem && browseElement.HasChildren) 20 { 21 string TempName = browseElement.Name; 22 if (!string.IsNullOrEmpty(ParentName)) 23 { 24 TempName = string.Format("{0}.{1}", ParentName, browseElement.Name); 25 } 26 27 28 LoadItems(browseElement, new ItemIdentifier(ParentName), TempName); 29 } 30 31 else if (browseElement.IsItem) 32 { 33 browseElement.ItemName.Contains("ZVS-JD-001-XON")) 34 LstItem.Items.Add(browseElement.ItemName); 35 lItems.Add(new Item(new ItemIdentifier(browseElement.ItemPath, browseElement.ItemName))); 36 37 } 38 39 } 40 } 41 }
Browse 功能不支持
可是用别人写的exe可以获取的,如果别人的也获取不到我就直接和服务厂家说让他们家功能了。
@MageChen: 那可能是你没用对,检查下类型,值是否有问题