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-Classic in .NET
- Browsing, Browse Dialogs and Controls
- Cannot browse OPC servers in remote computer
Cannot browse OPC servers in remote computer
1. You should not use properties for getting the value. That's one of the big "Don't-s" in OPC. I am not sure why you have given that example, it brings nothing useful.
2. The other example with ReadMultiple looks good. It is important to read many variables like this, and not one by one. For important, however, it is very important what MaximumAge are you specifying. If it is 0, it instructs the server to read form the device, which may take long. Similarly, if it a low number. What value are you using?
3. When you use any of the interactive clients such as the Quick Client, the timings are very different. What happens is that you first connect to the server, and that takes some time and the server is processing it. Because a human is slow, it takes time before next action is taken - and, you actually need to Add Group in the client. That again can take some time, while the server is internally working on it. The you need to select/Add Item. The situation repeats. And then you do a Read. So, from the moment you started, to the moment you do the Read, quite a time elapses. But with the coded client like QuickOPC, it (simplified: ) connects -adds the group - adds the item - calls the Read, so the processing times that were "hidden" in the interactive client become apparent.
For most part of it, however, it is usually the "set-up" that takes long. Once you are already connected,a and the OPC Group and OPC Item are there, things are faster. QuickOPC keeps the connection/group/item for some time (these are the hold periods). So, this explains why sometimes it is slow and sometimes faster. It can also be used as a work around: If you are reading, let's say, once per minute, Increasing the hold periods so that the connection stays always open would be a good idea - make them higher than one minute. This helps with subsequent operations but not the very first one. If you are concerned about the very first one as well, you can subscribe upfront to anything from the server - and give it some time after that. Any other operations later then will not require a new connection, because the subscription must keep the connection open. But they may still require new Group/Item, so the Hold periods advise above is still valid.
Best regards
Please Log in or Create an account to join the conversation.
So the below post is related to the GUI.
We have a WCF service, that read the OPC tag values and insert the data to a database.
Out requirements:
- Read 300 tag values every minute.
I create a test application to make my tests faster, so the test cases:
CASE: A
In the first test I use this code:
Private Sub BtnRead_Click(sender As Object, e As EventArgs) Handles btnRead.Click
btnRead.Enabled = False
txtLog.Text &= "------------------------------------------------------------------" & vbCrLf
Try
Dim item As New DAReadItemArguments(txtServer.Text, txtProgId.Text, txtTag.Text, CInt(txtValueAge.Text))
Dim res = ReadTagValuesFromOPC(item)
For Each i In res
txtLog.Text &= "Result: " & i.ToString() & vbCrLf
Next
Catch ex As Exception
txtLog.Text &= "Error during read OPC tag values: " & ex.Message & vbCrLf
If ex.InnerException IsNot Nothing Then
txtLog.Text &= "InnerException: " & ex.InnerException.Message & vbCrLf
End If
Finally
btnRead.Enabled = True
End Try
End Sub
Public Function ReadTagValuesFromOPC(ByVal tagData As DAReadItemArguments) As DAVtqResult()
Using CL As New EasyDAClient()
CL.InstanceParameters.Mode.AllowAsynchronousMethod = True
CL.InstanceParameters.Mode.AllowSynchronousMethod = True
CL.InstanceParameters.HoldPeriods.TopicRead = 59000
CL.InstanceParameters.Timeouts.ReadItem = 58000
CL.InstanceParameters.Timeouts.BrowseServers = 50000
Return CL.ReadMultipleItems(New DAReadItemArguments() {tagData})
End Using
End Function
The result:
CASE: B
I see in Kepware Qucik Client that the property id [2] contains the value of the tag, so I create a function to read specified property id. My code:
Private Sub BtnReadByPropId_Click(sender As Object, e As EventArgs) Handles btnReadByPropId.Click
btnReadByPropId.Enabled = False
txtLog.Text &= "------------------------------------------------------------------" & vbCrLf
Try
Dim value = ReadTagValueByPropertyId()
txtLog.Text &= "Value: " & value.ToString() & vbCrLf
Catch ex As Exception
txtLog.Text &= "Error during read OPC tag values: " & ex.Message & vbCrLf
If ex.InnerException IsNot Nothing Then
txtLog.Text &= "InnerException: " & ex.InnerException.Message & vbCrLf
End If
Finally
btnReadByPropId.Enabled = True
End Try
End Sub
Public Function ReadTagValueByPropertyId() As Double
Dim value As Object = Nothing
Try
Dim pid As New DAPropertyId(CLng(txtPropId.Text))
Using CL As New EasyDAClient()
value = CL.GetPropertyValue(txtServer.Text, txtProgId.Text, txtTag.Text, pid)
End Using
Catch ex As OpcException
txtLog.Text &= "Error during read OPC tag values: " & ex.Message & vbCrLf
If ex.InnerException IsNot Nothing Then
txtLog.Text &= "InnerException: " & ex.InnerException.Message & vbCrLf
End If
End Try
If value Is Nothing OrElse IsNumeric(value) = False Then
Return Nothing
End If
Return CDbl(String.Format(CultureInfo.CurrentCulture, "{0}", value))
End Function
The result:
The reading of the tag value works, but the read duration of 1 tag is about 40 seconds to >60 seconds. If it is >60 seconds I get timeout error.
With Kepware Quick Client I can read all tag values in 1-2 seconds:
Can you help me please why the read operation is so slow. I read only one tag in >40 seconds and in this project I need read 300 tags every minute.
Thank you!
Attachments:
Please Log in or Create an account to join the conversation.
The timeout problem is normal I think because the OPC Server contains lot of tags and the control cannot read it inside 1 minute over network.
So we try increase the timeout from 1 minute to 10 minute.
Firstly we try with your Connectivity Explorer app.
After this the control can browse all tags. It may be a coincidence (probably the tag browsing is faster second time…).
With our application we try increase the timeout with this:
OpcLabs.EasyOpc.DataAccess.Engine.EasyDAClientTimeouts.Default.BrowseServers = 600000
OpcLabs.EasyOpc.DataAccess.Engine.EasyDAClientTimeouts.Default.BrowseNodes = 600000
OpcLabs.EasyOpc.DataAccess.Engine.EasyDAClientTimeouts.Default.BrowseAccessPaths = 600000
OpcLabs.EasyOpc.DataAccess.Engine.EasyDAClientTimeouts.Default.BrowseProperties = 600000
First time, the browsing throws timeout error. Second time its working and the tag list showing.
The error message:
Type: System.Runtime.InteropServices.COMException
Data:
HelpLink:
HResult: -2146233088 (0x80131500)
InnerException:
OpcLabs.EasyOpc.OperationModel.OpcException: An OPC operation failure with error code -1073430527 (0xC004C001) occurred, originating from 'OpcLabs.EasyOpcRaw.DataAccess.RawEasyDAClient'. The inner exception contains details about the problem. ---> System.Runtime.InteropServices.COMException: Cannot connect Data Access client (timeout).
--- End of inner exception stack trace ---
at OpcLabs.EasyOpcRaw.DataAccess.RawEasyDAClient.CheckOpcResult(CHResult* hResult)
at OpcLabs.EasyOpcRaw.DataAccess.RawEasyDAClient.InternalBrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.ForwardingEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.ForwardingEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.ForwardingEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.PSBoxingEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.EasyDAClientCompositor.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.CompositeEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.ForwardingEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.EasyDAClientCompositor.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.CompositeEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.ForwardingEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.LicensingEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.EasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Browsing.DANodeBrowseable.BrowseBranches(Object parentNode, Object nodeFilter, IEnumerable`1& branches, IEnumerable`1& exceptions)
Data:
ErrorCode: -1073430527
HelpLink:
HResult: -2146233088 (0x80131500)
InnerException: System.Runtime.InteropServices.COMException (0xC004C001): Cannot connect Data Access client (timeout).
Data:
ErrorCode: -1073430527
HelpLink:
HResult: -1073430527 (0xc004c001)
InnerException:
Message: Cannot connect Data Access client (timeout).
Source: OpcLabs.EasyOpcRaw.DataAccess.RawEasyDAClient
StackTrace:
TargetSite:
Message: An OPC operation failure with error code -1073430527 (0xC004C001) occurred, originating from 'OpcLabs.EasyOpcRaw.DataAccess.RawEasyDAClient'. The inner exception contains details about the problem.
Source: App_Web_OpcLabs.EasyOpcClassicRaw.amd64
StackTrace:
at OpcLabs.EasyOpcRaw.DataAccess.RawEasyDAClient.CheckOpcResult(CHResult* hResult)
at OpcLabs.EasyOpcRaw.DataAccess.RawEasyDAClient.InternalBrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.ForwardingEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.ForwardingEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.ForwardingEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.PSBoxingEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.EasyDAClientCompositor.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.CompositeEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.ForwardingEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.EasyDAClientCompositor.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.CompositeEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.ForwardingEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.LicensingEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.EasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Browsing.DANodeBrowseable.BrowseBranches(Object parentNode, Object nodeFilter, IEnumerable`1& branches, IEnumerable`1& exceptions)
TargetSite: Void CheckOpcResult(CHResult*)
DeclaringType: OpcLabs.EasyOpcRaw.DataAccess.RawEasyDAClient
Module: App_Web_OpcLabs.EasyOpcClassicRaw.amd64.dll
Assembly: App_Web_OpcLabs.EasyOpcClassicRaw.amd64, Version=5.50.405.1, Culture=neutral, PublicKeyToken=6faddca41dacb409
CustomAttributes:
FullyQualifiedName: C:\Windows\Microsoft.Net\assembly\GAC_64\App_Web_OpcLabs.EasyOpcClassicRaw.amd64\v4.0_5.50.405.1__6faddca41dacb409\App_Web_OpcLabs.EasyOpcClassicRaw.amd64.dll
MDStreamVersion: 131072
MetadataToken: 1
ModuleHandle: System.ModuleHandle
MDStreamVersion: 131072
ModuleVersionId: fb27278c-e26b-4bf6-a169-8ff35033a83c
Name: App_Web_OpcLabs.EasyOpcClassicRaw.amd64.dll
ScopeName: App_Web_OpcLabs.EasyOpcClassicRaw.amd64.dll
Message: Problem browsing OPC Data Access (OPC-DA) branches.
Source:
StackTrace:
TargetSite:
So I search for a way to increase the control timout to 10 minute, because currently sometimes works, sometimes not.
Thank you!
Please Log in or Create an account to join the conversation.
But anyway, there is currently no way to change the settings for the "client" object used inside the OpcBrowseControl.
But it's not clear to me what is it that you have changed in the demo app that has helped. Maybe I am misunderstanding something. Please post
- the precise error you were getting in the demo app
- at which moment
- how you have fixed it in the demo app
- the precise error you are getting with the OpcBrowseControl.
Thank you
Please Log in or Create an account to join the conversation.
With this format we have timeout problems, but in the QuickOPC demo application it works when we increase the timeout limits.
Can you help me please how can I increase the timeout of the "OpcBrowseControl" control in my project programatically?
Thank you!
Please Log in or Create an account to join the conversation.
Which QuickOPC version are you using?
Try this: add a node under "Any computer", and enter
opcda://172.25.118.1/Kepware.KEPServerEX.V5
I hope this helps
Please Log in or Create an account to join the conversation.
We develop an application to browse OPC tags in local or remote computer.
We use the "OpcBrowseControl" control.
The local browsing working well, but the remote not (remote computer IP: 172.25.118.1). I try add the remote server name to the "Any computer" and "Network", but it throw errors:
(I dont know the required format and I not found the documentation about this)
In "Any computer" node:
Exceptions
Type: OpcLabs.BaseLib.Browsing.BrowseException
Data:
HelpLink:
HResult: -2146233088 (0x80131500)
InnerException:
OpcLabs.EasyOpc.OperationModel.OpcException: An OPC operation failure with error code -2147221005 (0x800401F3) occurred, originating from 'OpcLabs.EasyOpcRaw.DataAccess.RawEasyDAClient'. The inner exception contains details about the problem. ---> System.Runtime.InteropServices.COMException: Invalid class string
--- End of inner exception stack trace ---
at OpcLabs.EasyOpcRaw.DataAccess.RawEasyDAClient.CheckOpcResult(CHResult* hResult)
at OpcLabs.EasyOpcRaw.DataAccess.RawEasyDAClient.InternalBrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.ForwardingEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.ForwardingEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.ForwardingEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.PSBoxingEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.EasyDAClientCompositor.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.CompositeEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.ForwardingEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.EasyDAClientCompositor.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.CompositeEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.ForwardingEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.LicensingEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.EasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Browsing.DANodeBrowseable.BrowseBranches(Object parentNode, Object nodeFilter, IEnumerable`1& branches, IEnumerable`1& exceptions)
Data:
ErrorCode: -2147221005
HelpLink:
HResult: -2146233088 (0x80131500)
InnerException: System.Runtime.InteropServices.COMException (0x800401F3): Invalid class string
Data:
ErrorCode: -2147221005
HelpLink:
HResult: -2147221005 (0x800401f3)
InnerException:
Message: Invalid class string
Source: OpcLabs.EasyOpcRaw.DataAccess.RawEasyDAClient
StackTrace:
TargetSite:
Message: An OPC operation failure with error code -2147221005 (0x800401F3) occurred, originating from 'OpcLabs.EasyOpcRaw.DataAccess.RawEasyDAClient'. The inner exception contains details about the problem.
Source: App_Web_OpcLabs.EasyOpcClassicRaw.amd64
StackTrace:
at OpcLabs.EasyOpcRaw.DataAccess.RawEasyDAClient.CheckOpcResult(CHResult* hResult)
at OpcLabs.EasyOpcRaw.DataAccess.RawEasyDAClient.InternalBrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.ForwardingEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.ForwardingEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.ForwardingEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.PSBoxingEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.EasyDAClientCompositor.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.CompositeEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.ForwardingEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.EasyDAClientCompositor.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.CompositeEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.ForwardingEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Internal.LicensingEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.EasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DABrowseParameters browseParameters)
at OpcLabs.EasyOpc.DataAccess.Browsing.DANodeBrowseable.BrowseBranches(Object parentNode, Object nodeFilter, IEnumerable`1& branches, IEnumerable`1& exceptions)
TargetSite: Void CheckOpcResult(CHResult*)
DeclaringType: OpcLabs.EasyOpcRaw.DataAccess.RawEasyDAClient
Module: App_Web_OpcLabs.EasyOpcClassicRaw.amd64.dll
Assembly: App_Web_OpcLabs.EasyOpcClassicRaw.amd64, Version=5.50.405.1, Culture=neutral, PublicKeyToken=6faddca41dacb409
CustomAttributes:
FullyQualifiedName: C:\Windows\Microsoft.Net\assembly\GAC_64\App_Web_OpcLabs.EasyOpcClassicRaw.amd64\v4.0_5.50.405.1__6faddca41dacb409\App_Web_OpcLabs.EasyOpcClassicRaw.amd64.dll
MDStreamVersion: 131072
MetadataToken: 1
ModuleHandle: System.ModuleHandle
MDStreamVersion: 131072
ModuleVersionId: fb27278c-e26b-4bf6-a169-8ff35033a83c
Name: App_Web_OpcLabs.EasyOpcClassicRaw.amd64.dll
ScopeName: App_Web_OpcLabs.EasyOpcClassicRaw.amd64.dll
Message: Problem browsing OPC Data Access (OPC-DA) branches.
Source:
StackTrace:
TargetSite:
In "Network" node:
Exceptions
Type: OpcLabs.BaseLib.Network.Management.NetworkManagementException
Data:
HelpLink:
HResult: -2146233088 (0x80131500)
InnerException:
Message: The parameter is incorrect
Source: OpcLabs.BaseLib
StackTrace:
at OpcLabs.BaseLib.Network.Management.NetworkEnum.GetServerInfos(UInt32 serverType, String domainName)
at OpcLabs.BaseLib.Browsing.ComputerBrowseable.BrowseLeaves(Object parentNode, Object nodeFilter, IEnumerable`1& leaves, IEnumerable`1& exceptions)
TargetSite: System.Collections.Generic.IEnumerable`1[OpcLabs.BaseLib.Network.ServerInfo] GetServerInfos(UInt32, System.String)
DeclaringType: OpcLabs.BaseLib.Network.Management.NetworkEnum
Module: OpcLabs.BaseLib.dll
Assembly: OpcLabs.BaseLib, Version=5.50.405.1, Culture=neutral, PublicKeyToken=6faddca41dacb409
CustomAttributes:
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "namespace", Target = "OpcLabs.BaseLib.Diagnostics")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "namespace", Target = "OpcLabs.BaseLib.Extensions")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "namespace", Target = "OpcLabs.BaseLib.Utilities")]
FullyQualifiedName: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\OpcLabs.BaseLib\v4.0_5.50.405.1__6faddca41dacb409\OpcLabs.BaseLib.dll
MDStreamVersion: 131072
MetadataToken: 1
ModuleHandle: System.ModuleHandle
MDStreamVersion: 131072
ModuleVersionId: b3f16609-ca33-4c25-a8b2-129c178603b9
Name: OpcLabs.BaseLib.dll
ScopeName: OpcLabs.BaseLib.dll
Another client, for example Kepware Quick Client can connect to the remote OPC Server from the same computer:
Can you help me please what is the correct format or what is the problem in this case?
Thank you!
Attachments:
Please Log in or Create an account to join the conversation.
- Forum
- Discussions
- QuickOPC-Classic in .NET
- Browsing, Browse Dialogs and Controls
- Cannot browse OPC servers in remote computer