20

C#开发opc client访问艾默生的dcs服务,服务已经连上了但是读取不到值

服务已经连上但是DataChange没触发,安装的艾默生客户端opcwatchlt已经连上获取数据也没问题。下面是测试代码

        public Form1()
    {
        InitializeComponent();

        OPCServer server = new OPCServer();

        String serIp = "OPC-SERVER";//服务器的IP地址
        String serverName = "OPC.DeltaV.1";//OPC服务器名称
        server.Connect(serverName, serIp);
        OPCGroups groups = server.OPCGroups;
        OPCGroup group = groups.Add("myGroup");
        group.UpdateRate = 1000;
        group.IsActive = true;
        group.IsSubscribed = true;
        server.OPCGroups.DefaultGroupDeadband = 0;
        server.OPCGroups.DefaultGroupIsActive = true;
        group.DataChange += Group_DataChange;
        OPCItem myItem = group.OPCItems.AddItem("PI20105/AI1/PV.CV", 1);       

    }


    private void Group_DataChange(int TransactionID, int NumItems, ref Array ClientHandles, ref Array ItemValues, ref Array Qualities, ref Array TimeStamps)
    {
        //此处注意i是从1开始,因为getvalue没有0.下面输出分别为数据的ClientHandles(就是上文AddItem方法的第二个参数。),Itemvalue就是值,Qualities为质量,timestamps为时间。
        listBox1.Items.Add(ItemValues.GetValue(1));//取到改变的值
    }
查看全部
freeds
freeds
2019/06/20 15:26
  • c#
  • visual studio
  • 点赞
  • 收藏
  • 回答
    私信

1个回复