E_NETWORK_ERROR Could not connect to OPC DA server using c#

0

Detect all opc server and then filter opc da server from detected server.

connecting opc da server.

          this.logger("Connect to OPC DA Server");
        var allServersList = new OpcCom.ServerEnumerator();
        var spec = Specification.COM_DA_20;
        var connectionData = new ConnectData(new System.Net.NetworkCredential
        {
            UserName = this.username,
            Password = this.password
        });

        this.logger("Get all detected OPC Servers");
        var servers = allServersList.GetAvailableServers(spec, string.IsNullOrEmpty(host) ? null : this.host, connectionData);

        if (servers == null)
        {
            this.logger("No OPC Servers detected");
            return false;
        }
        this.logger("Detected servers");
        foreach (var s in servers)
        {
            this.logger(string.IsNullOrEmpty(s.Name) ? string.Empty : s.Name + ", HostName : " + (string.IsNullOrEmpty(s.Url.HostName) ? string.Empty : s.Url.HostName) + ", Path : " + (string.IsNullOrEmpty(s.Url.Path) ? string.Empty : s.Url.Path) + ", Scheme : " + (string.IsNullOrEmpty(s.Url.Scheme) ? string.Empty : s.Url.Scheme) + ", Port : " + (string.IsNullOrEmpty(s.Url.Port.ToString()) ? string.Empty : s.Url.Port.ToString()));
        }

        this.logger("Filtering OPC DA servers from detected OPC servers");
        var oPCDAServers = servers?.Where(s => s.Url.Scheme.ToLower() == "opcda").ToList();
        if (!oPCDAServers.Any())
        {
            this.logger("No OPC DA Servers detected");
            return false;
        }

        this.logger("Detected OPC DA Servers");
        foreach (var s in oPCDAServers)
        {
            this.logger(string.IsNullOrEmpty(s.Name) ? string.Empty : s.Name + ", HostName : " + (string.IsNullOrEmpty(s.Url.HostName) ? string.Empty : s.Url.HostName) + ", Path : " + (string.IsNullOrEmpty(s.Url.Path) ? string.Empty : s.Url.Path) + ", Scheme : " + (string.IsNullOrEmpty(s.Url.Scheme) ? string.Empty : s.Url.Scheme) + ", Port : " + (string.IsNullOrEmpty(s.Url.Port.ToString()) ? string.Empty : s.Url.Port.ToString()));
        }

        this.logger("Matching " + this.oPCDAServerName + " OPC DA Server from detected OPC DA servers");
        oPCDAServer = oPCDAServers?.Where(o => o.Name.ToLower() == this.oPCDAServerName.ToLower()).FirstOrDefault();

        if (oPCDAServer == null)
        {
            this.logger(this.oPCDAServerName + " OPC DA Server not matched");
            return false;
        }
        this.logger(this.oPCDAServerName + " OPC DA Server matched");

        this.logger("Connecting OPC DA Server" + this.oPCDAServerName);
        **oPCDAServer.Connect();**

        if (!oPCDAServer.IsConnected)
        {
            this.logger(this.oPCDAServerName + " OPC DA Server connection failed.");
            return false;
        }

        this.logger("Successfully connected to " + oPCDAServer.Name + "OPC DA Server");

on connecting OPC server getting following error

Error during reading from OPC DA server 10...250.OPCDAServerName
at Opc.Server.Connect(URL url, ConnectData connectData)
at Opc.Da.Server.Connect(URL url, ConnectData connectData)
at Opc.Server.Connect()
at OPCDAConnector.ConnectServer()


iner exceptionSystem.Runtime.InteropServices.ExternalException (0x80004005): CoCreateInstanceEx: ?¼?´???°
at OpcCom.Interop.CreateInstance(Guid clsid, String hostName, NetworkCredential credential)
at OpcCom.Factory.Connect(URL url, ConnectData connectData)
E_NETWORK_ERROR Could not connect to server.


OPC Server and OPC client is on same machine. how to resolve this issue?

services
c#
asked on Super User May 10, 2019 by Sharanamma Jekeen

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0