freeds 2019-06-20 15:26 采纳率: 50%
浏览 1137
已结题

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));//取到改变的值
    }
  • 写回答

1条回答 默认 最新

  • threenewbee 2019-06-20 23:50
    关注

    先找一个标准的opc客户端程序,看能不能读取到数据,然后再和你的程序对照

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题