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.

After we browse and select multiple items we get a crash

More
19 Nov 2020 18:57 #9207 by micham
Thank you. It is working now.
Michael

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

More
19 Nov 2020 18:46 #9206 by support
UAObjectIds is a class in the OpcLabs.EasyOpc.UA.AddressSpace.Standard Namespace:

opclabs.doc-that.com/files/onlinedocs/QuickOpc/Latest/User%2...rd.UAObjectIds_properties.html

Add "Imports OpcLabs.EasyOpc.UA.AddressSpace.Standard" to the list of Imports at the beginning of the code file.

Best regards
The following user(s) said Thank You: micham

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

More
19 Nov 2020 18:28 #9205 by micham
Hi,

When I add this line before the ShowDialog line, I get an error on "UAObjectIds.ObjectsFolder". Do I need to define this variable? If yes, how?

uaDataDialog1.NodeDescriptor = New UANodeDescriptor(UAObjectIds.ObjectsFolder)
If uaDataDialog1.ShowDialog() = DialogResult.OK Then

Thanks.

Michael

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

More
19 Nov 2020 17:22 #9204 by support
Hello.

I wrote "a workaround would be ... always just before calling ShowDialog();"

There is just one line in your code snippet that calls ShowDialog, thus the instructions are unambiguous. So, you need to insert the additional statement just before the statement that calls ShowsDialog.

Best regards

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

More
19 Nov 2020 16:43 #9203 by micham
I am not kidding you...
I know the difference between C# and VB.Net...

Can you show me what to replace in my VB.Net code by your line of code (dataDialog.NodeDescriptor = New UANodeDescriptor(UAObjectIds.ObjectsFolder)).

Thank you.

Michael

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

More
19 Nov 2020 16:26 #9202 by support
You must be kidding me. Have not tested that, but in VB.NET it will probably look like this:
Code:
dataDialog.NodeDescriptor = New UANodeDescriptor(UAObjectIds.ObjectsFolder)
So the difference would be the missing semicolon at the end, if I do not count the uppercase 'N' in "new".

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

More
19 Nov 2020 15:57 #9201 by micham
Hi,

Thank you. Our code is in VB.Net. Do you have a workaround in VB.net?

Thanks.

Michael

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

More
19 Nov 2020 14:27 #9200 by support
Hello,

this turned out to be a bug in UADataDialog, thank you for pointing it out.
It will be fixed in QuickOPC 2020.3 which should be out in December.

For now, a workaround would be to reset the NodeDescriptor proeprty of the dialog always just before calling ShowDialog(); in C#, it looks like this:
Code:
dataDialog.NodeDescriptor = new UANodeDescriptor(UAObjectIds.ObjectsFolder);
Best regards

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

More
19 Nov 2020 08:07 - 19 Nov 2020 08:14 #9196 by micham
Here it is. I have a button that calls this sub.
Code:
Public Sub GlobalTagBrowse_UA(MyServer As String) 'Dim server_properties As OPC_servers_data Dim easyDAClient = New EasyDAClient() Dim values() As UANodeDescriptor Dim i As Integer = 0 Dim itmX As ListViewItem Dim itemF As ListViewItem Dim nodeId As String 'Dim Index As Integer 'Dim NamespaceIndex As Integer Dim L As String nodeId = "" If (MyServer.Length > 0) Then uaDataDialog1.EndpointDescriptor = MyServer uaDataDialog1.MultiSelect = True If uaDataDialog1.ShowDialog() = DialogResult.OK Then values = uaDataDialog1.NodeDescriptors 'NodeDescriptors For i = 0 To (values.Count - 1) L = "s" Select Case values(i).NodeId.NodeIdType.ToString Case "String" L = "s" Case "Numeric" L = "n" End Select nodeId = "ns=" + values(i).NodeId.NamespaceIndex.ToString + ";" + L + "=0:" + values(i).NodeId.Identifier.ToString itemF = ListView2.FindItemWithText(nodeId) 'values(i).NodeId.ToString) ' If (itemF Is Nothing) Then itmX = ListView2.Items.Add(nodeId, 0) ' values(i).NodeId.ToString If values(i).BrowsePath.Length > 0 Then itmX.SubItems.Add(values(i).BrowsePath.ToString) Else itmX.SubItems.Add("") End If End If Next i End If Else MsgBox("Enter the OPC-UA server endpoint first.", vbExclamation, "Info") End If End Sub

Thank you.
Michael
Last edit: 19 Nov 2020 08:14 by support. Reason: code formatting

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

More
18 Nov 2020 20:40 #9192 by support
Thank you. This is what I needed. It does not yet give me the full picture, but it is a step forward.

I suspect that this problem might be a combination of not-too-well documented requirements for arguments used with MultiSelect (my fault), and some specific thing in your code that violates these requirements (which you could not know). Specifically, I am interested in how you set the NodeDescriptors and and EndpointDescriptors of the UADataDialog in your code.

Can you post here the whole loop (so that I can see what happens when between the subsequent runs of the dialog)? Or, if it is confidential, can you send it to me by email?

Thank you

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

Moderators: supportvaclav.zaloudek
Time to create page: 0.153 seconds