Professional OPC
Development Tools

logos

The server stops due to an error

More
24 Mar 2015 12:44 #2995 by support
There is no artificial limit on number of items inside ReadMultipleItemValues.

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

More
24 Mar 2015 08:50 #2992 by peter.eidsvik@siemens.com
Hi,
I have solved the case. It was a license and a program bug which I have solved. There are no problems with the OPCClient software. (I got a demo license from Software Toolbox).

Now I poll 50 values from an OPC server, and it has run for 24 hours without errors :woohoo:
I use the ReadMultipleItemValues().

Is there a limit on how many items I can poll when using ReadMultipleItemValues ?

Thanks for excellent support :)

Peter

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

More
23 Mar 2015 14:47 #2990 by support
To further qualify what I wrote above, which may explain the behavior in some instances, when the EasyDAClient.Dispose is called or the instance is finalized, the disconnection may happen immediately, without applying the hold period. In such case, using a single instance would resolve it.

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

More
23 Mar 2015 14:23 #2989 by support
Yes, Live Binding is only for Windows Forms.

You can safely call EasyDAClient.ReadItemValue every 5 seconds or so, that's one of the usage cases we have designed for. With the default settings (when the Isolated property of the EasyDAClient instance is set to false), there would be very little difference whether you use a single EasyDAClient instance, or a new instance each time - in both cases a common connection will be shared.

You are seeing connections and disconnections because the time between the operations is longer than our "hold period" - the time we keep the connection when it's not in use. The hold period can be configured to be longer, in which case you should start seeing a steady, uninterrupted OPC connection.

You should place exception handling around the ReadItemValue call, and catch OpcException. In it, there will be an InnerException with details.

It is true that the trial license only gives valid data for 30 minutes since the process was started. We often issue an evaluation license to customers who need it, typically with 30 days validity and no further limitations. I can do the same for you, but would like to see a confirmation from your side that you have caught the exception and the exception indicates a licensing problem - pls post the message text of the outer and inner exception here.

Best regards

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

More
23 Mar 2015 13:20 #2987 by peter.eidsvik@siemens.com
Hi,
On the client side (IE) there are no errors. I only restart server-side and all clients start working again.

Server-side:
When I look at the OPC server side (which is on a separate server) I see that the instance of the
OPCclient() is connecting and disconnecting every time it reads values...

I think from a performance view I should create global declaration and use that instance of the client to read every 5 seconds?

Peter.


I see that Live Binding is only for Windows Forms so that is not an approach.

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

More
23 Mar 2015 12:07 #2985 by peter.eidsvik@siemens.com
Hi,
Some explanation: By Server-side I mean ASP.NET 4.5 c# code running on IIS 8.0. And by Client-side I mean code (JavaScripts+++) running on the IE on a client pc.
On the server-side have I installed QuickOPC.Net for use with ASP.NET 4.5. So the two functions is running on the server-side (IIS) using a Timer for triggering. Then I use SignalR to push data read by EasyDAClient() to the clients. NO QuickOPC.Net code is used on the client-side (Forms etc).

OPC server is running on another server,and is working fine and there are no errors on this side.

Can You please answer this question first:
Can I call this code every 5 seconds? (Code is triggered by a Timer)
var client = new EasyDAClient();
object value = client.ReadItemValue(“ArchestrA.FSGateway.3”,”OPC.Devicegroup.Value”);

OOps!!! I use the demo license and that stops every 30 minutes I think? Is it possible to send a demo license that runs for 7 days?

Peter.

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

More
23 Mar 2015 09:42 #2982 by support
Thanks for you interest in our products.
I am missing details (and I do not quite understand) to this part of your explanation:

"Then the server stops due to an error."

Does it mean that something happens on the OPC server side? What? Is there a specific error message? Is the OPC client side (your program) also affected? How?

Thank you

BTW, which programming language is this in?

Best regards

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

More
23 Mar 2015 09:38 #2981 by support
From: ...
Sent: Monday, March 23, 2015 8:56 AM
To: Zbynek Zahradnik
Subject: RE: OPC Labs Contact Form - Demo license EasyOPC.NEt

Hi,

I’m using v5.32 and it works fine.

My goal is to have an OPC Client installed on the server side updating a local object.
Then I use SignalR to push this object out to the clients.

On my ASP.NET server side I made a procedure (ProcessValues.cs) with a Timer that trigger every 5 second.

First I call this:
function TryUpdateProcessValues(oeevalues oeevalues)
var client = new EasyDAClient();
object value = client.ReadItemValue(“ArchestrA.FSGateway.3”,”OPC.Devicegroup.Value”);
oeevalues.value01 = Int32.Parse(value.ToString());
Second I call this (SignalR 2 hub):
function BroadcastProcessValues(oeevalues)
Clients.All.updateProcessValues(oeevalues);

When I run this it runs fine for about 10 minutes. Then the server stops due to an error.
The problem is the “function TryUpdateProcessValues(oeevalues oeevalues)” because of the code:
var client = new EasyDAClient();
object value = client.ReadItemValue(“ArchestrA.FSGateway.3”,”OPC.Devicegroup.Value”);
which trigger every 5 seconds.

So, maybe I must use LiveBinding or ???

Else I have to rewrite the code in such a way that the “var client = new EasyDAClient();” runs only once in an initial code segment.

Please give me feedback or suggestion – Thanks 


With best regards,
P.

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

Moderators: support
Time to create page: 0.202 seconds

      

 Recommend this on Google