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.

Read, Write and Subscribe to data change of complex data types

More
03 Apr 2017 13:44 #5063 by support
Live Mapping is definitely supported for OPC UA. I will point you to the right examples if thaat becomes necessary - but that is subject to an clarifying a possible confusion here first:

In your original post title, you used a term "(complex) data type".
That is, however, at least n OPC UA terms, something very different from a (custom/complex) object.

With great simplification, a complex object is basically a hierarchy nodes. Each of these nodes is also accessible separately, and when it is a variable, it has a value.

Values themselves can be simple (such as integers, floats, strings, arrays), or complex ("structures", as you have put it).

Complex values can then be of types that are pre-defined in OPC UA spec, or custom.

So, saying a "complex data type", you are talking about a situation where one variable already has a type that it itself complex.

QuickOPC definitely supports complex *objects*.
QuickOPC also supports those pre-defined complex data types that come from OPC UA spec itself and are needed to make the Data Access and Alarms&Conditions work.
What QuickOPC does *not* currently support are custom data types.

Regards
The following user(s) said Thank You: vinaypatel.ce@gmail.com

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

More
03 Apr 2017 12:19 #5062 by vinaypatel.ce@gmail.com
I can understand and appreciate all your help.

I was going through documents and on page opclabs.doc-that.com/files/onlinedocs/QuickOpc/2016.2/User%2...ta%20(Classic%20and%20UA).html, and I found Live Mapping concept. It mentioned to work for classic and UA both. For UA I do not find any example though.

Would you please help me to understand how Live Mapping functionality work with UA with example of read, write and monitor value changes for single complex object and array of complex objects?

Does it support custom complex objects?

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

More
29 Mar 2017 11:15 - 29 Mar 2017 11:15 #5045 by support
I am sorry but I cannot provide further help with that. As explained in my previous support, it is not supported - either accept it as "impossible with QuickOPC (as of version 2016.2)", you are on your own in the effort.

I am sorry I cannot give you better news.

Best regards
Last edit: 29 Mar 2017 11:15 by support.

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

More
29 Mar 2017 09:02 #5043 by vinaypatel.ce@gmail.com
Thanks for the replay.

So, there is no direct provision in QuickOPC to handle custom complex data types. I was doing some tests using QuickOPC library with sample server opcua.demo-this.com:51211/UA/SampleServer. I found an array of object node at browse path "[ObjectsFolder]/Data.Static.Array.StructureValue". I tried to ready it in my demo application and it is returning bytes array. Please refer attachment for visualization.

Again, is there any straight way to get it in proper object or any way to convert bytes array to object array? Same questions exist for single object.

If there is no an easy way to get or convert bytes to object through QuickOPC, What you suggest as an alternate approach to handle complex types and array of complex types?
Attachments:

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

More
28 Mar 2017 06:47 #5041 by support
There is a short answer, and a bit more elaborated answer.

The short answer is that unfortunately, complex data types are not yet supported.

A bit more elaborated answer is that 1) there is a partial/limited support for complex data types predefined in the OPC UA specifications (*not* custom data types): They will be returned to you as types from OPC UA .NET stack, and b) with extra effort, it may also be possible to pack/unpack other complex data types, using an ExtensionObject. See a related discussion here: www.opclabs.com/forum/ua-reading-writing-subscriptions/2029-opc-ua-extensionobject?start=0 . None of this is documented/supported and will never be (because when we eventually get to provide support for custom complex data types, it will be implemented very differently).

Best regards
The following user(s) said Thank You: vinaypatel.ce@gmail.com

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

More
27 Mar 2017 10:38 #5039 by vinaypatel.ce@gmail.com
I'm evaluating QuickOPC library to use in HMI application development. Also, I’m new to OPC world as well. I have gone through QuickOPC documentation and on below links I found how to read, write and subscribe data change events for single and multiple nodes. In all examples it used string, integer or float values and I have not found any example which show how to handle complex types for example struct. Would you please help me to figure out is it possible to Read, Write and Subscribe to data change of complex data types? Or I’m missing something?

opclabs.doc-that.com/files/onlinedocs/QuickOpc/Latest/User%2...s%20of%20OPC%20UA%20Nodes.html

opclabs.doc-that.com/files/onlinedocs/QuickOpc/Latest/User%2...s%20of%20OPC%20UA%20Nodes.html

opclabs.doc-that.com/files/onlinedocs/QuickOpc/Latest/User%2...%20UA%20Monitored%20Items.html

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

Moderators: support
Time to create page: 0.057 seconds