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.
Subscription
Please Log in or Create an account to join the conversation.
- I-Tecnology
-
Topic Author
- Offline
- Elite Member
-
- Posts: 26
- Thank you received: 0
I will ask to technical support of OPC server.
Can I post on their forum a link to this discussion?
Best regards
Please Log in or Create an account to join the conversation.
Specifically:
For BadSequenceNumberUnknown, at 25/11/2017 10:26:00.650 in the PublishRequest the client is trying to acknowledge an unacked sequence number 1 (from previous PublishResponse at 25/11/2017 10:26:00.630), and the server is rejecting that sequence number as unknown in PublishResponse at 25/11/2017 10:26:20.508.
For BadTimeout, there are two of them, both of them are ServiceFaultResponse, they are both at 25/11/2017 10:27:31.916. They correspond to PublishRequest-s at 25/11/2017 10:26:27.231 and 25/11/2017 10:26:27.283. I do not know what reason the server may have to time out after a few seconds.
As all this information is observable from the server log which you have obtained and sent, I would recommend to send that log with my explanation to Kepware, and ask them for comments. My opinion is that the server is not behaving fully in compliance with the spec (at least not in the case of BadSequenceNumberUnknown; technically, it is entitled to return BadTimeout to any request, but it still does not feel right) , but I would be curious to hear what they have to say; and if they think differently, we can then take it from there.
Best regards
Please Log in or Create an account to join the conversation.
Explanation:
The BadNodeIdUnknown is for a node Server.ServerCapabilities.OperationLimits.MaxNodesPerRead which we read at the very beginning in order to be able to chunk the read requests to the size supported by the server. We can normally communicate fine without the server supporting that (typically, embedded servers limit the number of nodes per read; but PC-based servers handle large numbers well). There are other similar errors further down in the log - they are for other operation limits, and it's fine too.
Regards
Please Log in or Create an account to join the conversation.
I wanted to reply that we normally do not have such problems with KepServer, as it is well established product. But, of course, older version can have some issues, so I suppose the stopping subscriptions were due to something on the server side.
Now, to the remaining errors: They are not normal. I will further analyze the log you have sent, or ask you to make a Wireshark capture should the log be insufficient. Just give me some time.
Best regards
Please Log in or Create an account to join the conversation.
- I-Tecnology
-
Topic Author
- Offline
- Elite Member
-
- Posts: 26
- Thank you received: 0
I continue having this errors in your log but subscription has no problem:
25/11/2017 09:26:20 The OPC-UA server on endpoint URL "opc.tcp://127.0.0.1:49380" has reported a subscription acknowledgement error with code 0x807A0000 for subscription ID 4 and sequence number 1. Further subscription acknowledgement errors with this code on this session will not be logged.
Operation result: BadSequenceNumberUnknown. ============ Date:2017-11-25 Time:10:26:20
25/11/2017 09:27:31 The OPC-UA client session with connect sequence number 1 on endpoint URL "opc.tcp://127.0.0.1:49380" has encountered a publish error with code 0x800A0000 for subscription ID 0 and sequence number 0. The error might be from the Publish or the Republish service. Further publish errors with this code on this session will not be logged.
Service result: BadTimeout 'BadTimeout'. ============ Date:2017-11-25 Time:10:27:31
In OPC server I have this log (I attacch the complete log):
25/11/2017 10:26:00.150 [OpcLabs.EasyOpc.UA.Implementations.NetSdk.EasyUASession;5.51.465.1@NB-TecnicoVM/3868:1;1] ReadResponse
0000000000: Event started
0000000000: Response Header:
0000000000: timestamp (UTC): 2017-11-25T09:26:00.150
0000000000: requestHandle: 4
0000000000: serviceResult: 0x00000000 (Good)
0000000000: Parameters:
0000000000: readResults []: Size: 1
0000000000: readResults [ 0 ]:
0000000000: statusCode: 0x80340000 (BadNodeIdUnknown)
0000000000: Event complete
25/11/2017 10:27:31.916 [OpcLabs.EasyOpc.UA.Implementations.NetSdk.EasyUASession;5.51.465.1@NB-TecnicoVM/3868:1;1] ServiceFaultResponse
0000000000: Event started
0000000000: Response Header:
0000000000: timestamp (UTC): 2017-11-25T09:27:31.916
0000000000: requestHandle: 7
0000000000: serviceResult: 0x800a0000 (BadTimeout)
0000000000: Event complete
Is it normal? or I must adjust something in my software?
Best regards
Please Log in or Create an account to join the conversation.
- I-Tecnology
-
Topic Author
- Offline
- Elite Member
-
- Posts: 26
- Thank you received: 0
Please Log in or Create an account to join the conversation.
- I-Tecnology
-
Topic Author
- Offline
- Elite Member
-
- Posts: 26
- Thank you received: 0
Please Log in or Create an account to join the conversation.
My understanding was that you are subscribing to some data changes. In such case. EasyUAClient should remain connected (or at least attempt to stay connected) until all subscriptions are removed. So, if you have not removed the subscription, and there is a connection attempt after 1 minute, something must have gone wrong in between, and the client is try to re-connect.
Can you please attach a handler to the static EasyUAClient.LogEntry event, and make a record of the messages (with their timestamps) that occurr?
Thank you
Please Log in or Create an account to join the conversation.
- I-Tecnology
-
Topic Author
- Offline
- Elite Member
-
- Posts: 26
- Thank you received: 0
I modified my plc program to fire just 1 event on 1 bit variable only when I command it.
At startup it seems all ok. DatachangeNotification are right.
After about 1 minute, are fired some events (without any variable changes) with subscription errors, see attacched image.
I also paste the errrors:
Any suggestion?
Please Log in or Create an account to join the conversation.