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.

Exceptions vs Bad Quality?

More
24 Aug 2012 11:58 #998 by support
The problem is now fixed, in QuickOPC-UA build 1.00.1355.1, available from the usual location on the Web site (www.opclabs.com/Downloads/Quic...).
Let me know should you need anything else.

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

More
24 Aug 2012 07:26 #996 by support
Please disregard most of my previous post, I have now clarified better to myself how the different places where the UA StatusCode appears are used. I would still be interested in the full numeric value of your StatusCode.

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

More
23 Aug 2012 16:31 #994 by support
Hello,
I had a further look into the Exceptions vs Bad Quality, and found it more complicated than it seems at first. In the OPC "Classic" world, the distinction between the two came naturally from the standard, because the errors are reported as HRESULT-s on method calls, and if there is an error, there is no quality to talk about. And the quality, when available, generally indicated problems between the OPC server and the target device.
In OPC-UA, protocol-level (Client-to-Server) errors (except those coming from higher-level protocols used to encapsulate the UA communication) are all merged into the UA StatusCode, together with qualities. The idea of distinguishing between Client-to-Server and Server-to-Device errors does not appear directly in OPC-UA, although we feel that it is very useful and want to keep that distinction in our API. The current implementation makes an assumption that Severity=Bad in UA Status Code means Client-to-Server error (and therefore create an Exception), wherease other Severities mean "success" on Client-to-Server level, and are interpreted as a result from Server-to-Device communication (and therefore provide valid UAAttributeData). It looks like that this not a fully satisfactory approach.
The OPC UA Specification provides little guidance on how to make the distinction we want. The only way I can think of now is to identify specific UA StatusCode-s that have to do with Server-to-Device communications, and treat the rest as Client-to-Server statuses (the majority of them seem to be Client-to-Server). We can then change the implementation so that these Server-to-Device codes do not create an Exception. I have currently identified about 3 such StatusCode-s that are related to Server-to-Device comms, but this needs to be further verified for compatibility with existing servers etc.
Can you tell me the full status code (all bits) that you are getting from your server and that you want to be treated differently?
Thank you

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

More
22 Aug 2012 19:14 #991 by support
Hello and thanks.
ad 1: You are right with the reasoning about ReadValue behavior - that's the same as in QuickOPC-Classic; if we cannot deliver a value, we have to throw an exception. The behavior you described about Read or ReadMultiple is a bug - thanks for reporting it. We will fix it and post an updated build; please allow some time (max one week) for this.
ad 2: Definitely yes. The release date for new QuickOPC-UA version is not set yet, but can be expected in approx. 3-4 months.
Best regards,
Zbynek Zahradnik

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

More
22 Aug 2012 15:46 #990 by jgyenese
I have just begun using the QuickOPC products and find that they are truly outstanding! However, I do have two questions regarding the functionality/design decisions of QuickOPC-UA.
1. When reading a tag that has a bad quality (0x02 above high limit for example) the value does not come in with a bad quality, it throws an exception. I can understand how this is the correct behavior if you call the "ReadValue" method when there is no status code being passed back, but when you call either "Read" or "ReadMultiple" you do not get a valid UAAttributeData item with the bad status code, you get a null UAAttributeData item and have to check the exception code to know what happened. This is not how QuickOPC.NET works and seems rather counterintuitive. Having to code the two versions differently to handle the same condition can be confusing.What is the reason for changing this behavior from the .NET version?
2. The .NET version also has built-in dialogs for computer, server, and item browsing. With the UA version we have to build these ourselves. Is there a plan to add this functionality to the UA version?
Thank you,
John

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

Moderators: support
Time to create page: 0.046 seconds