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.

error code -1073419774 when calling EasyDAClient.ReadMultipleItems(String, String)

More
01 Nov 2017 08:29 #5623 by support
You are welcome :-)

It would be nice to share here the steps, or just the basic info about what you needed to do to make it work, so that others can benefit from that information in the future.

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

More
26 Oct 2017 16:43 #5613 by dchuet@odotech.com
Hello,


Just to let you know that we successfully made our 64 bits application work with the Rockwell factoryTalk Gateway platform. Thanks you for your help, you can close this issue.

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

More
21 Oct 2017 22:02 - 22 Oct 2017 10:12 #5610 by dchuet@odotech.com
Thank you so much for this very detailed explanation.

Please note that I wrongly told you that we were using the Gateway version, we are instead using RSLinx Classic OEM. I read in their documentation that the Gateway edition should work with 64bits client software, we will ask the client to install this version instead.


Jean
Last edit: 22 Oct 2017 10:12 by dchuet@odotech.com.

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

More
20 Oct 2017 17:18 - 20 Oct 2017 17:19 #5606 by support
Yes, I think that it is the OPC server that is reporting "Class is not licensed for use", we are just delivering this error to you.

We have seen following issue with some FactoryTalk products earlier. It may (or may not) be the issue you are facing.

Vast majority of OPC server are so-called out-of-process servers, i.e. they are implemented in an EXE and run in a separate process. Some/all? Rockwell servers are in-process, i.e. implemented in a DLL that gets loaded into the client process. And, they sometimes have a licensing requirement that only allows you to run them locally, i.e. the OPC client must be on the computer as the OPC server.

For *remote* connections to servers that are implemented in a DLL, Microsoft DCOM automatically provides a host process ("surrogate"), and loads the DLL into this process. Apparently, Rockwell uses this knowledge to detect that the OPC server is being used remotely: If it is loaded into a surrogate process and not licensed for remote usage, it will issue "Class is not licensed for use" error.

So far so good. But the DLL is 32-bit, and OPC clients (on 64-bit systems) can now be either 32-bit or 64-bit. This is not a problem with EXE-based servers, because they run in separate processes and communicate over (L)RPC provided by Microsoft COM. But when the server is implemented in a 32-bit DLL, it *cannot* be loaded into a 64-bit client. In this case, Microsoft COM still allows it work. Similarly as with the remote situation, it will provide a 32-bit surrogate process for the DLL, and run it in this process.

In this case, i.e. when the OPC client is 64-bit, the Rockwell server thinks it is also being used remotely - because it runs in a surrogate.

In the past, the workaround was to run the OPC client in a 32-bit process. This can be done either by building it for "x86" instead of "AnyCPU", or by modifying the EXE after it is built, using the CorFlags.exe tool.

Regards
Last edit: 20 Oct 2017 17:19 by support.

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

More
20 Oct 2017 10:19 #5604 by dchuet@odotech.com
Hello,

1. Our Application is compiled for x64
2. the operating system is windows 7 Pro 64 bits (physical computer)
3. Yes, the factoryTalk Gateway is running on the same computer
4. No, it's a fresh install, 64 bits


I will look into the client's Rockwell representative, it seems they had some issues with licensing when they installed the gateway. When you say "Microsoft-defined COM error code that comes from the server itself", you mean the OPC server?

Thanks for your support,

Jean

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

More
20 Oct 2017 08:34 #5603 by support
Error code -2147221230 (0x80040112) corresponds to "Class is not licensed for use". This time, however, it not "our" error. It is a common, Microsoft-defined COM error code that comes from the server itself.

So, you may need to look into licensing on the server side.

In addition, because you have mentioned FactoryTalk and we have seen similar issues with it in the past, can you please answer following questions:

1. Is your .NET application compiled for "AnyCPU", or for x64 or x86?
2. Is the operating system you are running on 32-bit or 64-bit?
3. I assume the server and the client are on the same machine - please confirm.
4. If you have moved your application/server from a different computer, was the original system 32-bit or 64-bit?

Thank you

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

More
19 Oct 2017 19:14 #5598 by dchuet@odotech.com
OK, sorry, since I had to re-install QuickOPC, the license I installed previously was removed....

I re-installed the license, but now I have the error code -2147221230 when I read tags

We will soon recompile our platform to support error messages display but in the meantime if you could tell me what is error code -2147221230 it would be very useful.

Thank you,
Attachments:

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

More
19 Oct 2017 18:03 #5597 by support
The actual error code is -1073419774 as it was in your original email (the minus sign is significant). It corresponds to 0xC004EA02.

We do not provide a list of error codes. There is an error message and more details that come with each error. The code could you the Exception property, to provide that information. Had it done that, the error message would be:

Not allowed to run by the license. You might be using a trial license, and the version of the software you are using is obsolete. Obtain a recent version to resolve this problem.


I need a picture of the License Manager screen with the license installed. You can post it here, or send by email.

Best regards

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

More
19 Oct 2017 17:39 #5596 by dchuet@odotech.com
Hi,

we hare an error while trying to fetch Tags from a Rockwell FactoryTalk Gateway server which runs on the same computer as our application. The only information I have right now, without having to recompile the code, is the numerical error contained in the DAVtqResult object returned by EasyDAClient.ReadMultipleItems(string, string).

What does error 1073419774 mean? Is there a place where I could have the exhaustive list of all error codes returned by your API?

Here's a sample of our code:

EasyDAClient client = new EasyDAClient();
var resultArray = client.ReadMultipleItems( new ServerDescriptor(this.m_serverSettings.URL, this.m_serverClass),
descriptors.ToArray());

List<OPCTagEntity> entities = new List<OPCTagEntity>();
for (int i = 0; i < resultArray.Count(); i++)
{
// check that there is pb with tag communication, check normal status and check that the result object is not null
if (resultArray.Succeeded && null != resultArray.Vtq && null != resultArray.Vtq.Value)
{
entities.Add(new OPCTagEntity(tags.ElementAt(i).TagName,
resultArray.Vtq.Value.ToString(), resultArray.Vtq.Value.GetType(), resultArray.Vtq.Quality.ToString(), tags.ElementAt(i).DefaultTagUnit));
}
else
{
// if no valid value available, create an empty object (not valid) and continue with the next one.
entities.Add(new OPCTagEntity(tags.ElementAt(i).TagName, resultArray.ErrorCode));
}
}

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

More
19 Oct 2017 17:29 #5595 by dchuet@odotech.com
Hi, we have an error when trying to read tags from a server. We connect to a Rockwell FactoryTalk Gateway installed on the same computer as where our code run. I could re-compile the code to extract more information, but presently the only thing I have is the numerical error code contained in the DAVtqResult object returned by ReadMultipleItems(String, String).


Here's our code:

EasyDAClient client = new EasyDAClient();
var resultArray = client.ReadMultipleItems( new ServerDescriptor((string)<server name>, (string)<o-bjectId>),
descriptors.ToArray());

List<OPCTagEntity> entities = new List<OPCTagEntity>();
for (int i = 0; i < resultArray.Count(); i++)
{
// check that there is pb with tag communication, check normal status and check that the result object is not null
if (resultArray.Succeeded && null != resultArray.Vtq && null != resultArray.Vtq.Value)
{
entities.Add(new OPCTagEntity(tags.ElementAt(i).TagName,
resultArray.Vtq.Value.ToString(), resultArray.Vtq.Value.GetType(), resultArray.Vtq.Quality.ToString(), tags.ElementAt(i).DefaultTagUnit));
}
else
{
// if no valid value available, create an empty object (not valid) and continue with the next one.
entities.Add(new OPCTagEntity(tags.ElementAt(i).TagName, resultArray.ErrorCode));
}
}


What error represents the error code 1073419774? Where could I have an exhaustive list of all the error codes returned by the API?

Thanks,

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

Moderators: support
Time to create page: 0.069 seconds