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.

MonitoredItemChanged datachange occured after 3 minutes tag was changed

More
05 May 2015 16:41 #3081 by support
Hello.

From the information you provided, it is fairly clear that you should be primarily investigating for the problem cause on the OPC server side.

The server generates the ServerTimestamp just before it sends the data to the client. The server time-stamped the coilStatus at 3:07:41 PM, and you have logged this change at 18:07:43, just 2 seconds later. That means that we, as a client component, did our job just fine.

Now, WHY it has taken the server almost 3 minutes from the actual value change, you need to figure out on the server side, probably with the server vendor. In theory there can be some indirect reasons for it originating on the client side, such as very slow publish rate or improper trigger/filter settings, but I do not think this is the case here.

Best regards
The following user(s) said Thank You: adid@contel.co.il

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

More
05 May 2015 16:13 #3080 by adid@contel.co.il
hello,

i used wireshark and don't see any traffic problems.
why sometimes the datachange jumps after 3 minutes ?

thank you,
Adi Damty

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

More
05 May 2015 15:17 #3078 by adid@contel.co.il
hello,

another live example :


this is from logEntry :

2015-05-05 18:04:39 – m_EasyUAClientCoils_MonitoredItemChanged PlantModel 2407 Exception OpcLabs.EasyOpc.UA.Engine.UAClientEngineException: The OPC-UA subscription publishing has stopped.

2015-05-05 18:09:34 – m_EasyUAClientCoils_MonitoredItemChanged PlantModel 2406 Exception OpcLabs.EasyOpc.UA.Engine.UAClientEngineException: The OPC-UA subscription publishing has stopped.

and this is from my log :

2015-05-05 18:07:43 – m_EasyUAClientCoils_MonitoredItemChanged line 2406 state MachineMode Value 4
2015-05-05 18:07:43 – m_EasyUAClientCoils_MonitoredItemChanged line 2407 state ExtruderOn Value False
2015-05-05 18:07:43 – m_EasyUAClientCoils_MonitoredItemChanged line 2407 state MachineMode Value 1
2015-05-05 18:07:43 – m_EasyUAClientCoils_MonitoredItemChanged line 2406 state MainConFault Value 0
2015-05-05 18:07:43 – m_EasyUAClientCoils_MonitoredItemChanged line 2406 state ExtruderOn Value True
2015-05-05 18:07:43 – m_EasyUAClientCoils_MonitoredItemChanged line 2407 state InsertionConFault Value 0
2015-05-05 18:07:43 – m_EasyUAClientCoils_MonitoredItemChanged line 2406 state InsertionConFault Value 0
2015-05-05 18:07:43 – m_EasyUAClientCoils_MonitoredItemChanged line 2407 state MainConFault Value 0
2015-05-05 18:07:43 – m_EasyUAClientCoils_MonitoredItemChanged line 2406 state Coil Value 9002
2015-05-05 18:07:43 – ServerTimestamp 5/5/2015 3:07:41 PM SourceTimestamp 5/5/2015 3:07:41 PM StatusCode Good


1. pay attention what happened at 18:07:43 : i get the tag dataChanges with ServerTimestamp=SourceTimestamp=5/5/2015 3:07:41 PM , but the tag coilStatus was changed in 18:04-18:05 - i saw this in live, and it takes me to get the dataChange event 2 minutes and 43 seconds and this a lot of time, and i want to reduce it to 3 seconds at max.

2. also pay attention that in 18:07:43 i get 7 dataChanges of different tags, and i am sure this 7 tags doesn't change at the same time, and it's like someting was stuck and than after 3 minutes was released.

any explanation why i am getting this delay in when using dataChange event ?

Thank you,
Adi Damty

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

More
05 May 2015 11:57 #3071 by adid@contel.co.il
hello,

also is there any settings i can put to EasyUAClient so the Keep Alive Mechanisam work faster ?

thank you,
Adi Damty

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

More
05 May 2015 11:56 #3070 by adid@contel.co.il
hello,

i don't see somthing unusaul at logEntry.
no this is not running under debugging, it's running as windows service mode.
could you please explain and supply instructions how to analyze using Wireshark ?
this problem is Urgent, i need to solve this immediately, so i appriciate quick responses.

thank you,
Adi Damty

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

More
05 May 2015 09:42 #3069 by support
This is hard to diagnose without further information.

Anything unusual when you hook to the LogEntry and capture the events? Is it run under debugger (in which case the keep-alive would be effectively turned off, possibly hiding the problems?) Would it be possible to analyze using Wireshark?

Thank you
The following user(s) said Thank You: adid@contel.co.il

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

More
03 May 2015 09:17 #3064 by adid@contel.co.il
hello,

My service that use OPCLabs and Kepware located at the same computer.
i am using MonitoredItemChanged and it's working, but the problem is sometimes i get the event MonitoredItemChanged in my code 3 minutes (!!!) after the tag was changed in Kepware.
the Kepware tag has scan rate 100 milliseconds.
i want to get the event of the data change immediately or maximum 3 seconds after the tag was changed.
below attached the code how i am using the MonitoredItemChanged. is there any other properties i should set to easyUaClient in order to get the data change immediately ?

thank you,
Adi Damty


the code :

samplingInterval = 200;
uaDataChangeFilter = new UADataChangeFilter(UADataChangeTrigger.StatusValue);
uaMonitoringParameters = new UAMonitoringParameters(samplingInterval, uaDataChangeFilter);
state = "Coil";
m_EasyUAClient.SubscribeMonitoredItem(new EasyUAMonitoredItemArguments(state, dataPointInfo.OpcServerUrl, nodeId, uaMonitoringParameters));

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

Moderators: support
Time to create page: 0.067 seconds