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.
- Forum
- Discussions
- QuickOPC-UA in .NET
- Reading, Writing, Subscriptions
- Using KEPServerEx Sim Driver && Getting dropped subscriptions
Using KEPServerEx Sim Driver && Getting dropped subscriptions
Best regards
Please Log in or Create an account to join the conversation.
Kepserver "Project Properties" have "OPC UA" tab, where I had to modify "Max Data Queue Size" to 100 (from default 2).
It works now, thank you.
Please Log in or Create an account to join the conversation.
Note that the server is free to revise the size of the queue (or may not support it).
Best regards
Please Log in or Create an account to join the conversation.
I tried this with tag that changes every 10ms, but then I received ONLY one value per 500ms.
CODE:
easyUAMonitoredItemArguments.Add(
new EasyUAMonitoredItemArguments(MonitoredItemChangedEvent,
dataItemHandle,
endPointDescriptor,
nodeDescriptor,
new UAMonitoringParameters(dataItem.SamplingIntervalMs,
new UADataChangeFilter(dataItem.DeadBandType, dataItem.DeadBandValue, UADataChangeTrigger.StatusValue)
)
, new UASubscriptionParameters(500) // 500ms
));
Please Log in or Create an account to join the conversation.
About p.1 : Here are the subscription details, unfortunately I cannot decrease the rates:
QuickOPC-UA client (v5.32) subscribed to Kepserver with ~1700 tags with total update rate ~100Hz
All tags subscribed with 200ms rate, except of one tag with 100ms. The tags are updated 4 times/s maximum (250ms).
By the way, what does "queueSize" in UAMonitoringParameters mean?
I tried to increase "publishingIntervalMs", but then got only two points in 1 second instead of 100.
CODE:
easyUAMonitoredItemArguments.Add(
new EasyUAMonitoredItemArguments(MonitoredItemChangedEvent,
dataItemHandle,
endPointDescriptor,
nodeDescriptor,
new UAMonitoringParameters(dataItem.SamplingIntervalMs,
new UADataChangeFilter(dataItem.DeadBandType, dataItem.DeadBandValue, UADataChangeTrigger.StatusValue)
, 10000 // queue size (?)
)
// , new UASubscriptionParameters(dataItem.SamplingIntervalMs/2 ) // set publishingIntervalMs = SamplingIntervalMs / 2
));
Please Log in or Create an account to join the conversation.
There are several things that can be done.
First, what are the parameters of your subscription; specifically, what is the fastest sampling rate you are using? Isn't is unnecessarily fast? Can you increase the value (i.e. slow it down?)
Second, it may help to separate the EasyUAClient instances that you use for the subscriptions, and for node browsing. And, set the .Isolated parameter on them to 'true'. This should result in two separate OPC sessions, with less likeliness to interfere.
And third, we are working on an improvement to keep-alive mechanism that would, besides other changes, allow you to further tweak the parameters from the code, if it turns out that that a longer keep-alive interval is needed.
Best regards
Please Log in or Create an account to join the conversation.
from:
// Callback from monitored item changed event:
private void MonitoredItemChangedEvent(object self, EasyUAMonitoredItemChangedEventArgs e)
{
if(e.Succeeded && e.Exception == null)
{
... // normal operation
}
else
{
// error: add handle to failed list and log the error:
logger.Log(string.Format("[OpcDataCollector] Failed to log item changed event, error code: {0}, error message: {1}", e.ErrorCode, e.ErrorMessage), Log.LogType.Info);
...
}
}
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
IDictionary<UANodeDescriptor, UANodeElement> elementCollection = new Dictionary<UANodeDescriptor, UANodeElement>();
UABrowseParameters browseParameters = new UABrowseParameters(UANodeClass.All, referenceTypeIds);
UANodeElementCollection nodeElementCollection = easyUAClient.BrowseNodes(endpointDescriptor, rootNode, browseParameters);
It creates ~90% CPU load
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
- Forum
- Discussions
- QuickOPC-UA in .NET
- Reading, Writing, Subscriptions
- Using KEPServerEx Sim Driver && Getting dropped subscriptions