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
- EasyUAClient.Read o ReadValue returns null instead Subscription returns a value
EasyUAClient.Read o ReadValue returns null instead Subscription returns a value
Beware that "AcceptAnyCertificate" should be set to true only for development/testing. It creates a security hole.
The proper way would be to make the client trust the server certificate by storing it into the proper certificate store.
See opclabs.doc-that.com/files/onlinedocs/QuickOpc/Latest/User%2...%20Instance%20Certificate.html .
The most common way of doing it is finding the server certificate in RejectedCertificates , and copying it to trusted peers ("UA Applications") store.
Also: opclabs.doc-that.com/files/onlinedocs/QuickOpc/Latest/User%2...html#Certificate%20Stores.html
Best regards
Please Log in or Create an account to join the conversation.
- sistemi@resdata.it
- Topic Author
- Offline
- Premium Member
- Posts: 10
- Thank you received: 1
EasyUAClient.SharedParameters.EngineParameters.CertificateAcceptancePolicy.AcceptAnyCertificate = true;
UAEndpointDescriptor endpointDescriptor =
"opc.tcp://ews1:50314/ToshibaOpcUa/DataAccessServer";
endpointDescriptor.EndpointSelectionPolicy = new OpcLabs.EasyOpc.UA.Engine.UAEndpointSelectionPolicy()
{
AllowZeroSecurityLevel = true,
AllowedMessageSecurityModes = OpcLabs.EasyOpc.UA.Engine.UAMessageSecurityModes.All
};
The question is: is this functionality available on QuickOpc 2016 libraries version?
Please Log in or Create an account to join the conversation.
- sistemi@resdata.it
- Topic Author
- Offline
- Premium Member
- Posts: 10
- Thank you received: 1
But now a new problem occurs: we use Opc libraries version 2016, so the call to Read method is slightly different
This is my code
UAAttributeArguments arg = new UAAttributeArguments();
arg.EndpointDescriptor = endpointDescriptor;
arg.NodeDescriptor = nodeDescriptor;
UAReadArguments uARead = new UAReadArguments(arg, UAReadParameters.FromDevice);
UAAttributeData attributeData = clientUA.Read(uARead);
The problem is that we receive an error related to Untrusted Certificate and I don't know how to resolve.
In the demo code example the application recognize the untrusted certificate and ask me to continue but I don't understand how to accomplish this in my code.
regards
JZ
Please Log in or Create an account to join the conversation.
The reason might be that the default parameters for Read specify reading from cache. First thing to do is to change it to read from the device. In our original example, the modified line would look like this:
attributeData = client.Read(new UAReadArguments(endpointDescriptor, "nsu=http://test.org/UA/Data/;i=10853", UAReadParameters.FromDevice));
Please Log in or Create an account to join the conversation.
- sistemi@resdata.it
- Topic Author
- Offline
- Premium Member
- Posts: 10
- Thank you received: 1
support wrote: Hello,
I have some additional questions:
1. Please confirm that you are seeing this both with our demo client, *and* with your own code.
2. Can you describe the sequence of OPC operations that you program does before it gets to the problematic Read? For example, is this actually the very first operation made on the target server, or are there other operation before it? If there are more operations, how long (very roughly) is the time delay between the first operation, and the problematic Read? (is it almost immediate, or maybe several seconds, or much longer?). The reason I am asking is that I want to know whether the Read follows quickly after establishing the connection, or significantly later.
Best regards
1. Yes
2. first attachment is your demo code with the exact endpoint and nodeid used to query the data
second attachment is the output of your demo code: attributedata is a valid object but value property is always empty/null
regards
JZ
Please Log in or Create an account to join the conversation.
I have some additional questions:
1. Please confirm that you are seeing this both with our demo client, *and* with your own code.
2. Can you describe the sequence of OPC operations that you program does before it gets to the problematic Read? For example, is this actually the very first operation made on the target server, or are there other operation before it? If there are more operations, how long (very roughly) is the time delay between the first operation, and the problematic Read? (is it almost immediate, or maybe several seconds, or much longer?). The reason I am asking is that I want to know whether the Read follows quickly after establishing the connection, or significantly later.
Best regards
Please Log in or Create an account to join the conversation.
- sistemi@resdata.it
- Topic Author
- Offline
- Premium Member
- Posts: 10
- Thank you received: 1
we have a very simple UA client (like example demo code) that must read tag values from an opcserver.
Even when using demo application provided with QuickOpc installation, we're able to read values only when using "subscription" to a specified tag.
Instead when we try the read functions we receive a valid response with Status good and timestamps but a null value.
(see image in attachment)
Can anyone explain this behavoir?
If we use an other opc client like UA-Expert we're able to read single values and subscriptions.
Thanks
JZ
Please Log in or Create an account to join the conversation.
- Forum
- Discussions
- QuickOPC-UA in .NET
- EasyUAClient.Read o ReadValue returns null instead Subscription returns a value