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.

Handling of PubSub messages with custom data types inside

More
17 Jul 2023 08:10 #11913 by H64P
Thanks for you reply.

@1: Yes, the error message is exactly except for the placeholders. When I just checked again, I saw the error id. Maybe this will help you: "OpcLabs.{9B4BADED}"

@2: I'm using the QuickOPC Nuget 5.71.273.

@4: Here is the .InnerException:
{"Data type Id not found for encoding Id: ns=2;i=15016 (available encoding Ids: 0, available data type Ids: 0)."}
System.Exception {OpcLabs.BaseLib.Portable.CustomException}

No recursive .InnerExceptions exists.

Some extended details: With the PubSub message we receive 3 data items. Each of the items is a custom data type.
The InnerException was thrown when EasyUASubscriber try to encode the first item of our data type. When we browse the server with UAExpert out custom data types are listed in Base Data Types → Structure. When we look to e.g. the details of the data type which caused the error above, HasEncoding is set and we can resolve the specified encoding ( ns=2;i=15016) by clicking on the HasEncoding reference.

Do you need further informations?

Many thanks for your support!
Best regards.

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

More
15 Jul 2023 10:27 #11908 by support
Hello,

the scenario you describe should work. It is, however, fairly new and still rare functionality, where not so many interop testing could have been performed with independent parties.

I have some additional questions:

1. Is the error message provided in your post provided exactly (except for placeholders)? I could not find it in current version; but I could find a similar, more detailed one.

2. Which QuickOPC version are you using?

3. If you are not using the current version, please upgrade to QuickOPC 5.71 (2023.1) first. There might have been fixes that address the problem.

4. If upgrading does not resolve the problem, please provide the full new error message again, and this time with the .InnerException as well, recursively (if it has .InnerException).

Best regards

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

More
13 Jul 2023 11:24 #11905 by H64P
Hello,
can QuickOPC process UAExtensionObjects received via Pubsub?

Our server distributes pubsub messages (variants) with several user-defined data types inside.
Each field of our pubsub message has HasEncoding set to Default Binary.

As a basis for my test I used this example ( Link ). But I'm pulling the metadata from the server using the following approach:
var publishSubscribeClient = new EasyUAPublishSubscribeClient();
IUAReadOnlyPubSubConfiguration pubSubConfiguration =
    publizSubscribeClient.AccessReadOnlyConfiguration("opc.tcp://<ip:port>");
var pubSubConnectionNames = 
    pubSubConfiguration.FindPublishedDataSetElement("<datasetName>", null);
var metaData =
    pubSubConnectionNames.DataSetMetaData;

I get the following error message: "***Error: Data conversion failed for record field '<field name>' (value type name 'UAExtensionObject')."
Is this caused by the variant data type of our pubsub message that wraps the fields? How can I solve this problem?

Thank you already at this point.

Best regards.

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

Moderators: support
Time to create page: 0.049 seconds