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.

EasyUAClient write UARange and UAEUInformation

More
05 Sep 2021 08:50 #10181 by support
Hello.

LocalizedText is a different story. It is not a structure. It is an OPC UA built-in type.
When QuickOPC-UA API was originally designed, approx. 10 years ago, we intentionally decided to treat LocalizedText as a string (i.e. only the text part; the locale is ignored). This is documented here: opclabs.doc-that.com/files/onlinedocs/QuickOpc/Latest/User%2...ata%20Types%20in%20OPC-UA.html .

The decision was made because at that time, OPC UA was so new that users wanted to get anything simply working, and we wanted to make it as easy as possible.

LocalizedText does not appear just as a value of some nodes/attributes, but also at other places (browsing etc.).

Looking back, the decision was probably right at that time, but it is causing issues today, because users are getting more experienced and demand more advanced capabilities. Unfortunately, supporting LocalizedText in full would be a larger change, plus it may break some existing programs. We probably *will* change the way the LocalizedText is handled at some point (and it may even be soon), but the decision has not yet been made.

Best regards

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

More
31 Aug 2021 15:57 #10169 by Nick
Hello,

thank you for your answer. October for Writing EURange and UAEUInformation is ok for us.

I have a similar problem reading (and writing) LocalizedText. I always get the plain (string) text no additional information (Locale). I also tried to read with the method "ReadValue" but the cast to UAGenericObject fails because plain string is returned? Do you have a simple example how to read and write the LocializedText structure.

Best regards

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

More
09 Aug 2021 07:35 #10100 by support
Hello.

First, a correction: The current version is 2021.2 actually.
The write-direction conversion of EURange and UAEUInformation will be in QuickOPC 2021.3, which does not have release date set yet - but it will probably by October 2021.

If you really need it sooner, we can try to do it as as bug fix into current 2021.2 version. Let me know if this is needed. In such case, it would probably be ready by end of August, possibly sooner (the only issue is prioritizing with other issues in the vacation season).

Best regards

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

More
06 Aug 2021 14:04 #10098 by Nick
Hello,

thank you for your proposal. It would be nice If you could implement the write-direction conversion for this data types.

Your answer:
C) We can implement the write-direction conversion for these data types (#2 above). We can try to do it as bug fix, but only to the current version - which is 2021.1 at the moment.

When will the new version be released?

Best regards

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

More
22 Jul 2021 06:57 - 22 Jul 2021 06:57 #10030 by support
Hello.
This will need some explanation first.

With simplification, QuickOPC handles data types in OPC UA as follows:
1) UA built-in types are mapped to specific .NET types.
2) Certain other types that have their intrinsic meaning in UA are mapped to .NET classes too - this is the case with UARange and UAEUInformation.
3) Other types are mapped to UAExtensionObject (and usually encoded in binary there).
4) With Complex Data Type extension (Enterprise edition and higher), types that the server exposes using data type dictionary (1.03) or data type definition (1.04) mechanism are decoded/encoded too, and mapped to UAGenericObject.

The problem you are seeing is that the mapping for some of the types under 2) is only implemented in one direction - i.e. not for writing.

Options are:
A) Use the Complex Data Type approach (#4 above) (it is described in the documentation, with examples). It would involve creating a UAGenericObject with the fields that correspond to the fields of the target types.
B ) Manually encode the binary contents of UAExtensionObject (#3 above) and pass it to Write. This is somewhat nasty approach, but the types you mentioned are relatively small, so in the end it would not be so much of work.
C) We can implement the write-direction conversion for these data types (#2 above). We can try to do it as bug fix, but only to the current version - which is 2021.1 at the moment.

It should be noted that UAEUInformation contains localized text fields, and QuickOPC has a limited support for localized texts, so I am not sure how well this aspect will work.

Regards
Last edit: 22 Jul 2021 06:57 by support.

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

More
21 Jul 2021 14:52 #10023 by Nick
Hello,

we develop our own server base on softing stack. But for a test you can also use the " www.unified-automation.com/downloads/opc-ua-servers.html "
ua-cpp-demo-server. We changed the nodeSetFile "uanodesetimport.xml" -> write Access to EURange and EngineerinUnits of the parameter "VariableWithEngineeringUnits".

Now we can change the properties with an OPC UA Client e.g. UAExpert.

In our applications we use the EasyUAClient, do you have a Code Example how this can be done?

Best Regards

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

More
21 Jul 2021 13:50 #10022 by support
Hello,
can you tell me which OPC server does support writing of these - and if there is a public demo if it?

Thank you

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

More
21 Jul 2021 07:40 #10021 by Nick
Dear Mr/Mrs,

we use the OPC Labs QuickOPC 2019.1.
We want to write Structures like UARange and UAEUInformation with the EasyUAClient, but it does not work.

I tried to set the value direct and get the following error message:
"OPC-UA service result - The type 'OpcLabs.EasyOpc.UA.DataAccess.UARange' cannot be stored in a Variant object."

I tried to set the value via an Extension Object and get following error message:
"The body (of type OpcLabs.EasyOpc.UA.DataAccess.UAEUInformation)) is not any of the supported extension object types.\r\nParameter name: value"

Can you please give me an Code Example how to write UAEUInformation and UARange with the EasyUAClient.

Best Regards

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

Moderators: support
Time to create page: 0.210 seconds