首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重新连接到OPC

重新连接到OPC
EN

Stack Overflow用户
提问于 2017-12-08 14:15:50
回答 0查看 1K关注 0票数 0

我正在创建一个OPC connection,并按如下方式获取数据。当连接为lost时,操作不会继续。当连接断开时,我需要reconnect到OPC。

我该怎么做呢?或者,我如何理解连接断开了?

代码语言:javascript
复制
public Opc.Da.Server Server { get; set; }
public Opc.Da.Subscription GroupRead { get; set; }

public Result StartListening()
{
    Result result = new Result(true);

    try
    {
        var surl = string.Format("opcda://{0}", MyOpcClientClass.ServerName);
        var url = new Opc.URL(surl);
        Server = new Opc.Da.Server(new OpcCom.Factory(), null);
        Server.Connect(url, new Opc.ConnectData(new System.Net.NetworkCredential()));

        Server.ServerShutdown += ServerShutdown;

        var group = new Opc.Da.SubscriptionState();
        group.Name = MyOpcClientClass.GroupName;
        group.UpdateRate = MyOpcClientClass.Period;
        group.Active = true;

        GroupRead = (Opc.Da.Subscription)Server.CreateSubscription(group);
        GroupRead.DataChanged += new Opc.Da.DataChangedEventHandler(DataChanged);

        var items = this.MyOpcClientClassFieldMappingList.Select(i => new Opc.Da.Item
        {
            ItemName = i.OpcTagName
        }).ToList();

        GroupRead.AddItems(items.ToArray());

    }
    catch (Exception e)
    {
        // error log
    }

    return result;
}

private void DataChanged(object subscriptionHandle, object requestHandle, Opc.Da.ItemValueResult[] values)
{
    try
    {
        // do smth...
    }
    catch (Exception e)
    {
        // error log
    }
}
EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47708764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档