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 OPC-DA server

More
13 Dec 2024 16:43 #13324 by bruce@invertbio.com
Thank you - yes I will be troubleshooting with DCOM once the device is available.

Unfortunately it is now offline until the new year for year-end maintenance.

Thank you for your assistance.

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

More
12 Dec 2024 14:04 #13321 by support
Hello,
I am glad you found the reason.

I totally agree that the behavior is not as it should be. There are many things that can go wrong in OPC "Classic" with regard to Windows user accounts/permissions/DCOM settings, and they are usually manifested by an error ("Access denied" or similar). I can assure you that in our code, we do not "hide" such errors - we transfer them through the API to the developer.

What you are observing is therefore unusual. I guess that it might be simply something given by the server side - i.e. the server gets the call, and the results it returns depend on who is making the call. Hint: Run DCOMCNFG, and see how the OPC Server is set with regard to the account it runs on. When it is something like "Launching user", try to change it to a specific account instead.

Regards

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

More
11 Dec 2024 21:19 #13319 by bruce@invertbio.com
Thank you for the answers, although they're not quite what I had hoped for.

Notes:

1./2. BrowseTree was just one thing I tried. I tried all possible combinations of it, BrowseNodes, BrowseBranches, and BrowseLeaves. I just didn't include everything for simplicity.

Questions:

1. This does not work. This is pretty much what I started with, and then moved on to other calls when it didn't work. It just returns and empty list of nodes when called on the root node.

2. This is a Sartorius OPC Server.Net system that is then connected to several Sartorious B-DCU systems.


With all that, I believe I have figured out the issue. My OPC-DA client code runs as part of AWS Greengrass, and was running as a local user created and used by Greengrass. When I tested the code using the an Admin user, the code works and I can browse nodes. So I can work to adjust users and permissions on the machine to make this work.

What is somewhat frustrating is this just failed to return any information about an error or throw an Exception.

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

More
11 Dec 2024 19:54 #13318 by support
Hello.
I do not know the resolution to your issue, but I will try to provide as much information as possible and maybe it will get us somewhere.

Answers:

1. Unfortunately there isn't a detailed logging option available. In some cases it is possible to use OPC Analyzer (if we get to that point I will help with that) which sits between the client and the server and does the logging.
2. No, you cannot switch to OPC_NS_FLAT from your code, sorry.
3. Also unfortunately not, the version selection is done internally and cannot be influenced.

Notes:

1. BrowseTree need to be used differently and is just a higher level of recursive BrowseNodes, so let's not complicate the investsigation with that.
2. If you have BrowseBranches call you should probably also have BrowseLeaves call.


Questions:

1. Can you please try the "canonical" example of recursive browsing, already given in Python.NET: opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Late...wse%20nodes%20recursively.html (adapted to your server ProgId)? What results does it give?
2. Can you expose which OPC server are you communicating with?

Best regards

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

More
11 Dec 2024 19:32 #13317 by bruce@invertbio.com
Thank you - I apologize for the two posts. I thought the other one had failed to post - I missed the moderation message before navigating away.

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

More
11 Dec 2024 19:16 #13316 by support
Hello.
I will reply to the actual subject of this post separately later.

I just want to let you know that the other post you made on the forums (for which I have received email notification with copy of the text) is somehow technically damaged (not your fault) and cannot be easily approved/replied to. But I have the text and will handle it together with this post, as it appears to be the same issue.

I apologize for the inconvenience.

Best regards

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

More
11 Dec 2024 19:02 #13315 by bruce@invertbio.com
I am attempting to browse and item tree starting from the root node. This is code that works
correctly with three other OPC-DA servers, but it not working correctly with one. Other clients
(e.g. the Softing OPC Demo Client) can connect to the server and display nodes. The server claims to support OPC-DA 3.0.

My code looks like this (some minor details left out).

import opclabs_quickopc

...

client = EasyDAClient()
servers = IEasyDAClientExtension.BrowseServers(client)

for server in servers:
sd = ServerDescriptor(server)
results = IEasyDAClientExtension2.BrowseTree(client, sd)
print(results)

for server in servers:
branches = IEasyDAClientExtension.BrowseBranches(client, "", server.ServerClass)
for branch in branches:
print(branch)


Neither results or branches contains any data.

I have several questions to help me attempt to troubleshoot this further.

1. How can I enable detailed logging for the Python wrapper code and the underlying OpcLabs .NET
objects?

2. Is there any way through the Python code that I can modify the enum tagOPCNAMESPACETYPE used in
function calls? I would like to try settin OPC_NS_HIERARCHIAL and OPC_NS_FLAT to see if the
behavior differs.

3. Is there any way I can access the OPC-DA groups functionality from version 2 from Python? I
would like to see if that is an option.

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

Moderators: support
Time to create page: 0.058 seconds