Professional OPC
Development Tools

logos

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.

Cannot browse nodes on Red Lion OPC server through VPN

More
21 May 2019 19:47 #7406 by support
Yes, have a look at this example: opclabs.doc-that.com/files/onlinedocs/QuickOpc/Latest/User%2...%20of%20a%20single%20node.html . You need to read the DataType attribute of the node.

The returned UA type is represented by a Node ID. This is where it gets a bit complex.It can be one of the types defined in the standard, in which case you can test it against constants that can be found in UADataTypeIds class, such as UADataTypeIds.Int16. Less frequently, it can refer to a node describing a type derived from some of the standard, or a custom (complex) data type. Fully describing how these more complicated cases work isn't realistic or even reasonable to make here - for that, I refer you to the OPC UA specs.

Best regards

Please Log in or Create an account to join the conversation.

More
21 May 2019 17:03 #7404 by gtan14
Thank you! Everything seems to be working. Is there a way to determine the value data type? The OPCDA client seems to have GetDataTypePropertyValue, but I don't see it for OPCUA?

Please Log in or Create an account to join the conversation.

More
20 May 2019 16:05 #7403 by support
I am glad that it works. You may want to consider reporting it to Red Lion (with reference to analysis in this thread), because the server's behavior is not conformant with OPC UA spec in this respect.

The node you want to browse is in the second argument, where you now have the UAObjectIds.Server .
- If you want to browse from some other predefined node, simply change it to that node's name.
- If it's not a predefined node but you somehow know the NodeID, you can construct UANodeId (or UABrowsePath or UANodeDescriptor) object and use it as that 2nd argument.
- Or, if you want to browse recursively, results from one Browse can be used as inputs to subsequent Browse.

Best regards

Please Log in or Create an account to join the conversation.

More
20 May 2019 15:40 #7402 by gtan14
That seems to have fixed it, thank you! Is there a way to browse a specific sub folder of Server/Objects folder?

Please Log in or Create an account to join the conversation.

More
20 May 2019 15:04 - 20 May 2019 15:57 #7401 by support
Thank you. I have found following main differences between what QuickOPC calls and what the other client calls:

1) QuickOPC browses for References and subtypes (as specified in your code), the other client browses for HierarchicalReferences and subtypes.
This probably isn't causing the problem and we will leave it for later.

2) QuickOPC uses zero for requestedMaxReferencesPerNode parameter, the other client uses 16384. According to the UA spec, "The value 0 indicates that the Client is imposing no limitation".
We are doing it right, but I can imagine a bug in the client in which they might have forgotten to include code for "zero" case. I will therefore propose to test out a modified setting on our side - see further below.

3) QuickOPC explicitly lists all wanted node class in the nodeClassMask, the other client uses 0. According to the UA spec, "If set to zero, then all NodeClasses are returned.".
In my view both clients are doing it right, but at least in theory there might be a bug in the server in which causes it to have problem with our value.

Because changing the QuickOPC behavior for case (2) is the easiest, can you please add the following line to your code, before any actual OPC operation is called?
EasyUAClient.AdaptableParameters.SessionParameters.MaximumReferencesPerBrowseNode = 16384;
(assuming they you are not setting the Isolated property of EasyUAClient to 'true').

... and then repeat the test, to see if you now get some nodes from the browse?

Thank you
Last edit: 20 May 2019 15:57 by support.

Please Log in or Create an account to join the conversation.

More
20 May 2019 13:28 #7400 by gtan14
Sorry, I was messing around with different code before. This attachment should have what you need. Let me know if you need anything else

File Attachment:

File Name: quickopcOPCUA2.pcapng
File Size:27 KB
Attachments:

Please Log in or Create an account to join the conversation.

More
19 May 2019 14:26 #7397 by support
Thank you for the Wireshark traces. I am, however, puzzled by what I see in them. In your report, you wrote that your browse call looks like this:
nodeElementCollection = client.Browse(
                    endpointDescriptor,
                    UAObjectIds.Server,
                    new UABrowseParameters(UANodeClass.All, new[] { UAReferenceTypeIds.References }));
In the Wireshark trace, however, I see something completely different. I see two browse operations at once,
- first on node BaseObjectType, for reference type Organizes and subtypes, and NodeClass = Object,
- second on node ObjectsFolder, for reference type HasComponent and subtypes, and NodeClass = Object

It looks like that you are running something different from what was in the original report? If so, can you change it back and make Wireshark trace with it?

Regards

Please Log in or Create an account to join the conversation.

More
17 May 2019 16:01 #7391 by gtan14
I am sending the Wireshark files that contain the logs of opcua for both apps. Let me know if you need anything more, or if I didn't do something right. All I did was start wireshark, start my vpn, then connect to server.

File Attachment:

File Name: mendingerOPCUA.pcapng
File Size:59 KB

File Attachment:

File Name: quickopcOPCUA.pcapng
File Size:207 KB
Attachments:

Please Log in or Create an account to join the conversation.

More
17 May 2019 14:13 #7385 by support
Hello.

Doing a TeamViewer wouldn't normally be of much value, as I need to debug the communication using tools that I have on my development machine only. I therefore suggest to collect the Wireshark traces. Please have a look at this: kb.opclabs.com/Collecting_information_for_troubleshooting , and the two external links in that article that relate to Wireshark (under "Learning material"). You can, at least for now, ignore the instructions about extended tracing, instrumenting using the LogEntry event, etc. We can start with simply two Wireshark, one with QuickOPC, and one with the tool that works.

Best regards

Please Log in or Create an account to join the conversation.

More
17 May 2019 12:28 #7382 by gtan14
The VPN option is actually not available anymore. I could do a teamviewer session and share my screen with you. Though I think collecting the traces might be the better option. The username and password are both empty, so really no authentication.

Please Log in or Create an account to join the conversation.

Moderators: support
Time to create page: 0.059 seconds