01-21-2025 04:01 AM
Hello,
I would like to use ExtensionObject (custom data types) with the Labview OPC UA library but cannot find the corresponding Vis to do so.
https://reference.opcfoundation.org/Core/Part6/v105/docs/5.2.2.15
Can you please help?
Thank you
Ch. Content
01-21-2025 04:06 AM
I don't think it is supported with the OPC UA Toolkit. The only datatypes supported are the standard scalars, string, byte string, timestamp and 1D and 2D variants of them.
I'm working on a library of my own using the open62541 library underneath but haven't gotten to implementing support for ExtensionObjects yet (open62541 only has very preliminary support for that although it is worked on, sort off).
01-22-2025 08:13 AM
Hello,
I am the Editor of VDMA OPC UA 40450-1 and 40451-1 Specifications and we have developed the OPC UA Server application based on the CS. It uses OPC UA Structures as per UA 1.04 and 1.05.02.
Does the OPC UA Toolkit from NI support OPC UA Structures?
One of our customers is using the NI OPC UA Toolkit as a Client module and we wanted to understand if this toolkit supports it.
We have the reference server available in GitHub: https://github.com/umati/UA-for-Industrial-Joining-Technologies/tree/main/OPC_UA_Servers/Release2
If someone can help us understand if the OPC UA Toolkit can be used as a Client and consume the Structure data from the OPC UA Reference Server above?
03-26-2025 04:50 AM
Rolf,
got any update about the ExtensionObjects?
Since a customer is also using this to communicate with there device. And asked if we can also provide this.
Thank in advance for your answer.
03-26-2025 05:24 AM
I'm still busy with testing and finalizing the first version of the OPC UA Client library. It looks pretty good, but getting the final things and packaging right proofs to be a tedious job. It's also not may main work, so happens mostly on the side.
To make sure I'm testing the right thing, can you explain in more detail which specific nodeIDs you are trying to read or write? Pretty much every data element that is not a basic data type is in fact wrapped into Extension Objects to be transferred over the wire and so far it seems to work for every one I tested. I'm not providing access to extension objects as such but the actual data wrapped in there as the extension object gets wrapped and unwrapped automatically internally. However, the whole conversion to and from Variants is quite involved and requires specific code paths for various data types, so I'm sure there are some where the current implementation could trip over and just return an error.
Support for direct access to generic extensions objects would likely not be feasible as it translates badly to a LabVIEW data type and access of the binary encoded content would be in most cases pretty useless for a user.
03-26-2025 07:24 AM
Hey Rolf,
the customer made a blackbox and told me that it will send the Fieldobject to the client.
And the client then needs to fill in the data using the FieldID and then there is a array with the data. Depending on what the field id requires.
This is the example I received on how it should be. I hope this can help you out on what is requested.
Best regards
03-26-2025 08:21 AM - edited 03-26-2025 08:24 AM
Seems he created an array of clusters as data object. Will have to see how I can get a similar data type in a test server to make sure this works as expected. The planned idea is that the Variant version of the data access VIs would simply use a compatible internal LabVIEW datatype. But, I haven't really made tests with multi-level complex datatypes so far. There is a chance that the recursive data type parsing is not yet fully up to snuff for this.
I was hoping it was just a nodeID in the example server that Mohir Agarwal had posted. That would have saved me the trouble of trying to build a sample server somehow that uses such a datatype.
03-26-2025 01:30 PM - edited 03-26-2025 01:30 PM
Rolf,
I am going to the customer on Friday.
Noticed that with the OPC UA driver we can make the Byte array available also.
Maybe we can use it that way. Only thing is that currently they use the ID ins stead of the Tag to communicate.
So will see how it goes when I can link the hardware.
I will keep you informed.
Thanks in advance for the help you already gave.
03-28-2025 04:45 AM
Hey Rolf,
I am at the customer and noticed that in the UA Expert they are able to communicate.
I looked at these settings from the current OPC UA driver where we need the tags to send data (noticed that this is on the top right the ID) and I am able to read out some of the strings where there is a tag with the Labview.
Apparently they have a method that they use --> Look at the following link UA Part 3: Address Space Model - 4.7 Methods
So I wonder how we are able to have a way to work with this.
Thank in advance for helping me out.
Best regards
Joris Willems
03-28-2025 04:59 AM
Hmm, not exactly sure what the image shows to be honest. I haven't used UA Expert at all so far.
But you mention methods. That's another feature of OPC UA that you can't do with the NI Toolkit but that I have already implemented in my toolkit. But I haven't gotten to testing it beyond very basic data types though.