Professional OPC
Development Tools


Some items doesn't update when callin ReadMultipleItemValues (or ReadMultipleItems) using Kepware

05 Feb 2015 11:16 #2713 by support
I agree that it is weird.
Is this with a tag that truly resides on a PLC, or isn't it somehow set to be "simulated"?

Can you please do the following.

1) Download and install the latest build of QuickOPC (5.32.1063.1 or later). Just today, we have posted an update that can have an influence on this. And, rebuild your app with the new assemblies then.

2) With this latest QuickOPC build, perform the steps for disabling automatic subscriptions, as described here:

If this does not help, we will investigate further.
Best regards

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

05 Feb 2015 08:47 #2710 by forum-dv

I am using Kepware + Simenes Suite version V5.14.493.0.
I have 4 DBs with identical structure in S7-PLC.
There are about 20 Tags created on OPC server.
- few STRING tags
- then some WORD tags
- some BOOLs
- and finally 4 DINTs

I use ReadMultipleItemValues to read 1 DBs structure (those 20 tags).
To read 4 DBs the system takes around 40-60ms (4 calls of ReadMultipleItemValues).
So far so good.

The problem is that I don't get right values for last 4 tags (DINT).
Actually I do get right value, when I start the application (first read), but after that
value doesn't change (maybe it changes after 30, 60++ seconds, but I need changes on 1s interval).

I have tried to make changes with:
- Step7 Manager
- Kepware's Quick OPC Client
- I even put WriteItemValue command to change value using QuickOPC Library
//easyDAClient1.WriteItemValue("", opcServer, opcPath + "." + "DB601" + "." + "TEST_TAG_1", DateTime.Now.Millisecond);

When I do writes in my application, I can see changes in OPC server's Quick Client.
OK. Next I started to blame my application, so I replace the value of DINT with current time (ms).
var a = easyDAClient1.ReadMultipleItemValues(sd, items);
//var b = easyDAClient1.ReadMultipleItems(sd, items);  // same results
testObj.TestTag1 = (int)a[18].Value; // READS CACHED VALUE, CHANGES ARE NOT VISIBLE
testObj.TestTag1 = DateTime.Now.Millisecond; //(int)a[18].Value; // WORKS FINE IN MY APP

This shows that my app works fine, but there must be something I am missing.
Well now I "blame" QuickOPC.NET Library. :(

Other values works fine and changes are visible in a second.
Btw: I even tried to read each item with ReadItemValue command. Result was the same, it only took more time to read all tags (around 1500 ms)

Hope I give you enough information, sou you can suggest a solution.

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

Moderators: support
Time to create page: 0.176 seconds


 Recommend this on Google