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
- Connections, Reconnections, Certificates
- EasyOpcUaDemo - no branches or leaves
EasyOpcUaDemo - no branches or leaves
Best regards
Please Log in or Create an account to join the conversation.
- FrancescoZ
- Offline
- Senior Member
- Posts: 5
- Thank you received: 0
Unfortunately I have no direct access to it so this is the only information I've received so far...
Please Log in or Create an account to join the conversation.
The null NodeIds were something I had hard time believing, because that's basically against OPC specs - but they were really null, you are right, it is clear from the screenshots. And, you were using the terms right, - sorry for suspecting that.
If you could share the basics about what was the server-side configuration problem, it would be helpful if somebody else runs into the same problem.
Best regards
Please Log in or Create an account to join the conversation.
- FrancescoZ
- Offline
- Senior Member
- Posts: 5
- Thank you received: 0
The problem was server-side. We are now able to see the actual NodeIds and to read them using the modified sample of EasyOpcUaDemo.
Furthermore, we are able to browse branches and leaves when using this code to provide a valid UserIdentity:
OpcLabs.EasyOpc.UA.EasyUAClient.AdaptableParameters.SessionParameters.UserIdentity.UserNameTokenInfo.UserName = "myUsername"; OpcLabs.EasyOpc.UA.EasyUAClient.AdaptableParameters.SessionParameters.UserIdentity.UserNameTokenInfo.Password = "myPassword";
Please Log in or Create an account to join the conversation.
- FrancescoZ
- Offline
- Senior Member
- Posts: 5
- Thank you received: 0
I suspect you improperly using some OPC UA terms which makes it difficult for me to understand
This, could very well be - first time working with it.
1) First of all, what are you are trying to achieve? In your original post, the problem was with browsing. Now it looks like that you are referring to reading. Can you please explain. And, what is the larger goal?
Let me try to rephrase the problem from the start and to explain the larger goal: I am trying to read the values of some variables on an OPC UA server hosted by a Siemens Sinumerik.
This is something I have already accomplished with a previous server (which had no authentication) and I used the sample "EasyOpcUaDemo" to verify the variables node id and value correctness during the process (as I'm doing this time).
With the previous server and the unmodified sample "EasyOpcUaDemo" I was able to browse each and every variable contained and read their values.
With the current server I don't see any branch or leaf when browsing its content (as shown in the attachment of the first post).
2) In your original post, you wrote "values on it can be viewed using the application “UaExpert DataAccess View” even though their NodeId is apparently null.". Can you please send a screenshot of this, because I find it hard to believe.
This is a screenshot of UaExpert showing that even though the NodeId is null, its Value is readable.
(I know it's barely readable under "StatusCode", but right now I'm not able to provide a better one)
3) You wrote "One thing I've noticed is that I can read a value using the attribute on UaExpert named BrowseName on the modified application". I do not understand what are you trying to say. Are you saying the reading BrowseName is possible using UaExpert, or are you saying that it is possible using an application written with QuickOPC - and if so, why is UaExpert mentioned? If reading is possible using QuickOPC, post the code here.
4) Can you please post a screenshot that illustrates the same sentence ("One thing I've noticed is that I can read a value using the attribute on UaExpert named BrowseName on the modified application") and "this one is different from the NodeId (which is null) but contains a namespace index and a string (e.g. 2,node1/node2/varname that I convert to "nsu=machinename;ns=2;s=/node1/node2/varname").
Basically, as shown in the previous screenshot, the UaExpert displays an attribute named "BrowseName"; I have converted that one (2, /Channel/ChannelDiagnose/aveCycleTimeNet in the picture) to a "NodeId format" (nsu=SinumerikVarProvider;ns=2;s=/Channel/ChannelDiagnose/aveCycleTimeNet) and pasted it into the sample EasyOpcUADemo to which I've only added these lines of code:
this.easyUAClient1.Isolated = true;
this.easyUAClient1.IsolatedParameters.SessionParameters.UserIdentity.UserNameTokenInfo.UserName = "myUsername";
this.easyUAClient1.IsolatedParameters.SessionParameters.UserIdentity.UserNameTokenInfo.Password = "myPassword";
This is how I am able to read even if the NodeId is null.
(Not shown here, unable to take screenshots right now)
Just to make sure, let me give you a step-by-step example (previous OPC UA server and current have the same variables and NodeIds):
A variable had (on the first server I've worked with) the NodeId nsu=SinumerikVarProvider;ns=2;s=/Channel/GeometricAxis/actProgPos[u1,5];
Right now, on UaExpert - under the Attribute tab, I can see that the NodeId is null;
If I use the modified sample of the EasyOpcUaDemo and read on the NodeId nsu=SinumerikVarProvider;ns=2;s=/Channel/GeometricAxis/actProgPos[u1,5], the server responds with a BadNodeInvalidId;
If I check on UaExpert the variable's BrowseName, convert it to a NodeId (nsu=SinumerikVarProvider;ns=2;s=/Channel/GeometricAxis/actProgPos) format and use the modified sample of the EasyOpcUaDemo to read its value, I get a correct reading;
5) Please post a code that you used when doing "I'm not able to Subscribe (BadNodeIdInvalid) to said attribute"
I've now solved this. Apparently I needed to install the server's certificate in order to be able to subscribe.
So, to sum it up, I'm still not able to get the NodeIds but I can read/subscribe to variables using the attribute "BrowseName". Has this ever happened to you?
Thank you for your time and patience.
Best regards
Please Log in or Create an account to join the conversation.
I am sorry but I do not get large parts of your answer. I suspect you improperly using some OPC UA terms which makes it difficult for me to understand.
1) First of all, what are you are trying to achieve? In your original post, the problem was with browsing. Now it looks like that you are referring to reading. Can you please explain. And, what is the larger goal?
2) In your original post, you wrote "values on it can be viewed using the application “UaExpert DataAccess View” even though their NodeId is apparently null.". Can you please send a screenshot of this, because I find it hard to believe.
3) You wrote "One thing I've noticed is that I can read a value using the attribute on UaExpert named BrowseName on the modified application". I do not understand what are you trying to say. Are you saying the reading BrowseName is possible using UaExpert, or are you saying that it is possible using an application written with QuickOPC - and if so, why is UaExpert mentioned? If reading is possible using QuickOPC, post the code here.
4) Can you please post a screenshot that illustrates the same sentence ("One thing I've noticed is that I can read a value using the attribute on UaExpert named BrowseName on the modified application") and "this one is different from the NodeId (which is null) but contains a namespace index and a string (e.g. 2,node1/node2/varname that I convert to "nsu=machinename;ns=2;s=/node1/node2/varname").
5) Please post a code that you used when doing "I'm not able to Subscribe (BadNodeIdInvalid) to said attribute".
Best regards
Please Log in or Create an account to join the conversation.
- FrancescoZ
- Offline
- Senior Member
- Posts: 5
- Thank you received: 0
Isolated = true
One thing I've noticed is that I can read a value using the attribute on UaExpert named BrowseName on the modified application: this one is different from the NodeId (which is null) but contains a namespace index and a string (e.g. 2,node1/node2/varname that I convert to "nsu=machinename;ns=2;s=/node1/node2/varname").
For some reason, though, I'm not able to Subscribe (BadNodeIdInvalid) to said attribute; is there a workaround?
Please Log in or Create an account to join the conversation.
There are three ways you can set them:
1) When the easyUAClient.Isolated property is 'false' (the default), you can set them in the static property EasyUAClient.AdaptableParameters.UserIdentity. This affects all non-isolated EasyUACLient instances.
2) When the easyUAClient.Isolated property is 'true', you can set them in the instance property EasyUAClient.IsolatedParameters.UserIdentity.
3) In addition to identities given by 1) or 2), you can set user identity for an individual connection inside the UAEndpointDescriptor passed to the EasyUAClient methods - in its UserIdentityProperty.
Your code tries to use method 2) above, but does not set the 'Isolated' to true.
Best regards
Zbynek
Please Log in or Create an account to join the conversation.
- FrancescoZ
- Offline
- Senior Member
- Posts: 5
- Thank you received: 0
this.easyUAClient1.IsolatedParameters.SessionParameters.UserIdentity.UserNameTokenInfo.UserName = "myUsername";
this.easyUAClient1.IsolatedParameters.SessionParameters.UserIdentity.UserNameTokenInfo.Password = "myPassword";
Please Log in or Create an account to join the conversation.
It could that when this is not done right, the user is actually not authenticated and the server gives an empty address space to this "unknown" user.
Best regards
Please Log in or Create an account to join the conversation.
- Forum
- Discussions
- QuickOPC-UA in .NET
- Connections, Reconnections, Certificates
- EasyOpcUaDemo - no branches or leaves