- Posts: 6
- Thank you received: 1
Online Forums
Technical support is provided through Support Forums below. Anybody can view them; you need to Register/Login to our site (see links in upper right corner) in order to Post questions. You do not have to be a licensed user of our product.
Please read Rules for forum posts before reporting your issue or asking a question. OPC Labs team is actively monitoring the forums, and replies as soon as possible. Various technical information can also be found in our Knowledge Base. For your convenience, we have also assembled a Frequently Asked Questions page.
Do not use the Contact page for technical issues.
- Forum
- Discussions
- QuickOPC-UA in .NET
- Discovery, Browsing, Browse Dialogs and Controls
- Cannot browse particular ObjectFolder
Cannot browse particular ObjectFolder
I had originally tried adjusting the method to BrowseObjects to see if I could see the c# node under the BrowseProvider node which is an Object Class. Although it appears that the Object has neither of those reference types you had mentioned, which explains why it couldn't see it. I have added in the HasChild reference type to the Browse method and it is now working expected.
Thanks very much for your help.
Please Log in or Create an account to join the conversation.
The example you borrowed is for browsing "data nodes", not "any nodes". The BrowseDataNodes method, used in this example, is intentionally restricted to only return some child nodes. Specifically, it only follows Organizes (35), HasComponent (47) and HasProperty (46) references, and it only returns node with Object or Variable class. The purpose of this method is to browse the structure of objects/variables/properties that are used for generic data operations (read/write/subscribe to changes).
The full OPC UA Information model contains references of other types, and nodes of other classes. You can use the BrowseNodes method and specify precisely what you are interested in. Or, you can pass it parameters such as that BrowseNodes would truly return everything. In effect, you will use the code structure you already have, but replace the method by borrowing from the following example:
opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Late...0all%20kinds%20of%20nodes.html
Beware that OPC UA address space is not a tree. It is a full mesh. When navigating in this unrestricted way, you may encounter cycles, and unless other limitations are put into place (e.g. depth of search, or check for recursion), you may end up browsing indefinitely.
I hope this helps
Please Log in or Create an account to join the conversation.
private static void BrowseFromNode(EasyUAClient client, UAEndpointDescriptor endpointDescriptor, UANodeDescriptor parentNodeDescriptor, int level)
{
Debug.Assert(!(client is null));
Debug.Assert(!(endpointDescriptor is null));
Debug.Assert(!(parentNodeDescriptor is null));
UANodeElementCollection nodeElementCollection = client.BrowseDataNodes(endpointDescriptor, parentNodeDescriptor);
foreach (UANodeElement nodeElement in nodeElementCollection)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(parentNodeDescriptor);
Console.ResetColor();
NodeCounter++;
Debug.Assert(!(nodeElement is null));
WriteToExcel(nodeElement.NodeId.ToString(), nodeElement.BrowsePath.ToString());
Console.WriteLine(nodeElement.TypeDefinition);
Console.WriteLine(nodeElement + "-----" + nodeElement.NodeId);
BrowseFromNode(client, endpointDescriptor, nodeElement, level + 1);
}
}
Please Log in or Create an account to join the conversation.
I have received your WireShark captures by email, thank you.
You have only captured the outgoing packets (one direction), so I can see the BrowseRequest, but not the BrowseResponse.
But do not repeat the capture, it appears that I might be able to work with this already.
The parameters passed to BrowseRequest are different from MatrikonOPC. I wanted to check your code, but only then noticed that the link you provided (see your original post) is wrong - it refers to an example for OPC DA. It cannot be the code you are using. Please provide the actual code you are using (or link).
Best regards
Please Log in or Create an account to join the conversation.
if the files are, after zipping, reasonable size (say to 20 MB), please email them to support09 (at) opclabs.com (which will go to myself).
Otherwise, use some service like DropBox, and email us the link.
Best regards
Please Log in or Create an account to join the conversation.
Is a way to share the PCAP's outside of the public forum? I prefer to send these directly rather than publishing them here.
Please Log in or Create an account to join the conversation.
Thanks for your assistance.
Please Log in or Create an account to join the conversation.
If you could either 1) provide us with the server+configuration, or 2) expose your server endpoint on the Internet (with firewall open only for a specific source IP address of ours), we could troubleshoot the problem ourselves.
Assuming that you cannot either 1) or 2), which usually is the case, next option is to obtain WireShark traces of the communication (both the case from the client that works, and from the client that does not work), and send them to us for analysis. Information to this is here: kb.opclabs.com/Collecting_information_for_troubleshooting (the other pieces of info mentioned in the article are not actually needed in this case; just follow the WireShark-related links under Learning Material).
Can you do that?
Best regards
Please Log in or Create an account to join the conversation.
1. Correct. I cannot see ns=3;s=0:#c1 at all in the output.
2. When I explicitly select ns=3;s=0:#c1 there is no error, but also no output in the console. Likewise if I select s=BrowseProvider it doesn’t see ns=3;s=0:#c1 underneath it.
Please Log in or Create an account to join the conversation.
Are you saying that
1) when you browse s=BrowseProvider, you do not get ns=3;s=0:#c1 in the results?
2) when you browse s=BrowseProvider, you get ns=3;s=0:#c1, BUT when you explicitly browse ns=3;s=0:#c1, you get no error, but also no children?
Regards
Please Log in or Create an account to join the conversation.
- Forum
- Discussions
- QuickOPC-UA in .NET
- Discovery, Browsing, Browse Dialogs and Controls
- Cannot browse particular ObjectFolder