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.

Delay in subscription callback acknowledgement

More
26 Nov 2015 14:31 #3706 by Shea
I can not be certain that the tracing had been stopped manually, but I used the "File -> Save Trace" operation within the application which appears to stop the trace automatically when executed (v.1.3.1014).

I have received the download link - thanks.

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

More
26 Nov 2015 06:04 #3704 by support
I will send you a download link by email.

Note that it is possible that the issue with OPC Analyzer crashing is not related to its version. Are you sure that the analyzer "tracing" (or the analyzer as a whole) has been properly stopped, before the copy of the .TRA file was taken?

Best regards

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

More
24 Nov 2015 15:04 #3701 by Shea
Thank you for checking. Is it possible to get access to a new version of OPC Analyzer for the duration of this experiment?

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

More
23 Nov 2015 16:54 #3699 by support
Unfortunately, I was not able to open the trace file with older versions of the analyzer either. For Build 1020, the format is too old and it claims it comes from Build 1014. Build 1014 crashes. And for older builds, the format is too new.

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

More
20 Nov 2015 19:26 #3695 by support
Hello.

My version of OPC Analyzer did not crash, but rejected the file as being from a version that's too old. I do have, however, older versions of OPC Analyzer in the archive; except that the archive is on offline media and in a different office - cannot access it today. Either tomorrow, or at the beginning of next week. I will let you know then.

Also note that, if you can still access the remote computer, OPC analyzer allows to export the trace into a TXT file. That is not optimal (some information even gets lost), but better than nothing (the resulting file is even bigger, and should be compressed).

Regards

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

More
20 Nov 2015 16:39 #3694 by Shea
Good day,

Thank you for the suggestion - we are using performance counters to monitor GC.

The event in question has occurred again. I was able to log into the customers computer and save the trace, but my version of OPC Analyzer crashes when I attempt to open it. Is there anything we can do to recover the data? Given the (in)frequency of the event I would really like to get access to this data for analysis.

I have attached the trace file.

Thanks,

Shea
Attachments:

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

More
23 Jul 2015 05:25 #3456 by support
Thank you for additional details.

One possible reason might be the intervention of .NET garbage collector. Can you please use PerfMon to watch the GC ?

Thank you

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

More
22 Jul 2015 19:45 #3455 by Shea
1. Our application is a .NET project (.NET 4.5.2 runtime, 64 bit, release configuration).

2. There are timers (one for each distinct tag poll rate, usually 500ms and 1000ms) in the application that take the most recent value and OPC timestamp for each tag and log it to disk. If the timestamp for a tag has not changed since the last timer elasped call, the value is logged to disk again with Datetime.UtcNow as the timestamp (unless an interim OnDataChange callback has been received indicating DAVtq.Quality bad). There is no data logged for any of the ~7000 tags for the 5 second period in question, implying that either the quality went bad for all of them, or our internal timers were not firing. Given that we don't see any quality bad messages in the OPC Analyzer trace, I think it's safe to assume that the internal timers were not firing for > 5s implying a process-wide issue.

If you see a fault in my reasoning please let me know. I have added logging of some performance monitors for the process and will inspect those if it happens again.

Thanks,

Shea

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

More
21 Jul 2015 15:47 #3451 by support
Hello, and thank you for the detailed information.

Our code inside the OnDataChange handler is designed in such a way that (assuming that all works as designed) it should be quickly finished, and not block for extended periods of time (essentially, it just enqueues the incoming information and returns).

Can you please answer:

1. Is your application a .NET project, or are using a COM interface of QuickOPC (Delphi, VB6, PHP etc.)?

2. Are you saying that it "appears" as not only the OnDataChange processing was blocked, but also (all) other processing in your application ?

Thank you

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

More
20 Jul 2015 18:50 #3447 by Shea
Good day,

I am using QuickOPC 5.31 Build 1331.1 on Windows Server 2012. We are subscribed to ~ 7000 tags with poll rates ranging from 500ms to 1000ms. The OPC Server and client application are running on the same machine.

Note that the information in this paragraph is provided as background information to explain why we were running the experiment described below. Our customer has been reporting intermittent issues whereby the historian to which we are logging all ItemChanged updates was intermittently missing updates from the PLC (e.g., they were sure the PLC was indicating value x at time t but the database did not contain the update, but would get subsequent updates).

I installed OPC Analyzer and instructed 4 of the 7000 tags to subscribe through it rather than directly to Kepware. I also logged instructed the same 4 tags to log directly from the PLC to our historian (using ControlLogix drivers from ingeardrivers.com/). To detect instances where the data received from the OPC Server differed from that which was being logged directly from the PLC, we set up email alerts (so that we could quickly log in and save the OPC Analyzer Trace).

Yesterday I received an email alert and immediately logged in to save the OPC Analyzer Trace. It turns out the alert was generated because a subscription call from the OPC Server to our application took 5437ms to be acknowledged (assuming I am interpreting the highlit line of the trace correctly - please see attached screenshot). Most CallTime's are < 200ms.

What could be responsible for the high CallTime? When QuickOPC receives a subscription update from the OPC Server, does it attempt to immediately send the acknowledgement to the OPC Server? Or does it synchronously pulse all methods subscribed to the to the ItemChanged event before sending acknowledgement to the OPC Server? Is there anything you can think of which we could try to eliminate extremely high CallTime's such as this? Note that during the event no data for any of the other 7000 tags was logged which is a concern.

The machine running the code is not under heavy load (16 cores - usually around 33% utilization, 128 GB ram, and the process calling QuickOPC is typically using 2-3% CPU).

I have attached the trace as well.

Thanks,

Shea
Attachments:

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

Moderators: support
Time to create page: 0.075 seconds