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.
- Forum
- Discussions
- QuickOPC-Classic in .NET
- Reading, Writing, Subscriptions, Property Access
- error code -1073419774 when calling EasyDAClient.ReadMultipleItems(String, String)
error code -1073419774 when calling EasyDAClient.ReadMultipleItems(String, String)
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.
- dchuet@odotech.com
- Topic Author
- Offline
- Senior Member
- Posts: 6
- Thank you received: 0
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.
- dchuet@odotech.com
- Topic Author
- Offline
- Senior Member
- Posts: 6
- Thank you received: 0
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
Please Log in or Create an account to join the conversation.
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
Please Log in or Create an account to join the conversation.
- dchuet@odotech.com
- Topic Author
- Offline
- Senior Member
- Posts: 6
- Thank you received: 0
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.
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.
- dchuet@odotech.com
- Topic Author
- Offline
- Senior Member
- Posts: 6
- Thank you received: 0
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,
Please Log in or Create an account to join the conversation.
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.
- dchuet@odotech.com
- Topic Author
- Offline
- Senior Member
- Posts: 6
- Thank you received: 0
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.
- dchuet@odotech.com
- Topic Author
- Offline
- Senior Member
- Posts: 6
- Thank you received: 0
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.
- Forum
- Discussions
- QuickOPC-Classic in .NET
- Reading, Writing, Subscriptions, Property Access
- error code -1073419774 when calling EasyDAClient.ReadMultipleItems(String, String)