Professional OPC
Development Tools

logos

"SubscribeDataChange" using the read function

More
21 Jan 2020 12:24 #8160 by support
Hello.

I had to remove TfsBasic and TfsScript references from the project, as I do not have these things. Hopefull it has no influence.
I then changed the computer address in the source code, and ran it.

I check the "TimerRead aktiv" box, and I receive message where the "Value1" and "Value1B" stay at the same value.
I then check "TimerWrite aktiv". The values next to "Value1" and "Value1B", revert to 1, and then start incrementing.

I suppose this is the correct behavior. I am using dataFEED OPC Suite V5.00. No other OPC client is connecting to the server.

Best regards

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

More
21 Jan 2020 10:18 #8159 by Moien
Good morning,

I was wondering if you ran my test program.

Best regards,
Moien

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

More
20 Jan 2020 13:46 #8157 by Moien
Attached to this message you may find a copy of our test program "EAK_SoftingOPCClient_Test.zip".
In our test program there is a form with two information lists for logs and errors. There are two timer functions. One for OPC Read and the other one for OPC Write. The OPC Test variable is 'nsu=Local Items ;s=Local Items.EAK_Test1.EAK_Testwert1_I4';
In order to activate the timers (with 1000 ms intervals) you can click the buttons and you will see the item values in the log list.
The information for connecting to the OPC UA Softing Server is defined in the INI file "SoftingOPCClient.INI". You might change it regarding your connection definition.
"SoftingOPCClient_Test.exe" is located inside the same folder as INI.

Best regards,
Moien
Attachments:

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

More
20 Jan 2020 12:51 #8156 by support
I would also be possible to capture the network communication through Wireshark, and then have a look at what the data exchanged is.
But because a subscription from one client influences values to another client, this clearly points to a server bug. So, if we do this, with high probability we will end up with a Wireshark capture that will show the bug, and you will need to go after Softing anyway.

Best regards

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

More
20 Jan 2020 12:45 #8155 by support
As I described, it works for me with dataFEED 5.0.
You will need to provide a reproducible scenario for me to be able to work on this further.

Best regards.

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

More
20 Jan 2020 12:32 #8154 by Moien
Hi,

Like the tests that we have done previously, we started OPC UA Client Prosys after 10 minutes and activated monitor read of our test variable. Afterwards, our OPCLabs test program delievers current values of the test variable.

Any idea?

Best regards,
Moien

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

More
20 Jan 2020 12:24 #8153 by Moien
Hi,

I already installed dataFEEDOPCSuite verion V5.00. No differences... I don't get the new values of my test variable!

Best regards,
Moien

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

More
18 Jan 2020 15:13 #8152 by support
Hello,

if subscribing from one client (Prosys) changes the behavior of reads in another client (QuickOPC), then it is a server problem.
I have downgraded to dataFEED 4.61, and I started to see the behavior you have described.

There is a clear conclusion:
It a server bug, present at least in dataFEED 4.60 and 4.61, and fixed in dataFEED 5.00.

Upgrade to dataFEED 5.00, or contact Softing support to resolve it.

Best regards/MfG
Z.

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

More
17 Jan 2020 12:57 #8151 by Moien
I am using windows 10 version, Delphi 10.2, .NET FrameWork 4.7. on the developement computer. Moreover, I use QuickOPC 2019.1.
On the server side we have dataFEED Suite 4.60, windows 7, .NET 4.7.2.

In my previous post, I meant that I see you have a class for reading the variable on the OPC UA Server. Probabely, you make an instance of this class somewhere else and call this class. My question is if you are doing some kind of initialization or something like that before making the instance of this class?

We used Prosys UA Client Tool and we activated the "monitor read" option and your test program for reading just one variable (Local Items.EAK_Test1.EAK_Testwert1_I4) was running in parallel (at the same time with your test program). Then we got the current values every second (which means after activating the "monitor read" by Prosys). Isn't there any kind of internal function in background for the OPCLabs "read function" that initialize the UA Server?

Best regards,
Moien

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

More
17 Jan 2020 12:23 #8150 by support
Hello,

that's very weird that you get a behavior that differs from mine. On my part, I used basically "empty table": A virtual machine snapshot that has just clean installation of Windows, Delphi, and .NET Framework. And added QuickOPC 2019.2 from the official installation package, and same for Softing dataFEED.

Can you somehow identify the precise version of Softing dataFEED that you have installed?

Regarding your last question: I am not sure if I fully understand it, but if you are asking about the somewhat unusual header of the source code, then it is because I have used the structure of our UADocExample project, and added a new example, and this (with "class procedure") is how it then must look like. But that has no significance to this issue, and there are no other "preparation" actions with regard to EasyUAClient. The UADocExample code (which you have as part of QuickOPC installation as well) just shows a menu on the console and allows the user to pick the right example.

Best regards

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

Moderators: support
Time to create page: 0.224 seconds

      

 Recommend this on Google