C#实现OPCUA客户端数据订阅功能 点击:2399 | 回复:5



ml_hanjie

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 0回
  • 年度积分:0
  • 历史总积分:32
  • 注册:2019年7月19日
发表于:2019-07-19 21:29:01
楼主
求助帖30分-未结帖

求助各位:

        请问我要用C#实现一个功能,就是    opcua 服务器端一个节点里面内容有变化,立刻得到这个节点的数据。我网上查了,需要用数据订阅功能。下面是我代码,但是运行到      m_OpcUaClient.AddSubscription("A", "ns=2;s=Machines/Machine B/TestValueFloat", SubCallback);

这段后,跳转不到SubCallback()这个方法。报如下错误

System.NullReferenceException:“未将对象引用设置到对象的实例。”


 

代码如下:

private OpcUaClient m_OpcUaClient;

        private void button4_Click(object sender, EventArgs e)
        {
            // sub
          
            m_OpcUaClient.AddSubscription("A", "ns=2;s=Machines/Machine B/TestValueFloat", SubCallback);

        }


 private void SubCallback(string key, MonitoredItem monitoredItem, MonitoredItemNotificationEventArgs args)
        {
            if (InvokeRequired)
            {
                Invoke(new Action<string, MonitoredItem, MonitoredItemNotificationEventArgs>(SubCallback), key, monitoredItem, args);
                return;
            }

            if (key == "A")
            {
                // 如果有多个的订阅值都关联了当前的方法,可以通过key和monitoredItem来区分
                MonitoredItemNotification notification = args.NotificationValue as MonitoredItemNotification;
                if (notification != null)
                {
                    textBox1.Text = notification.Value.WrappedValue.Value.ToString();
                }
            }
         
        }




一夜飘雪

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 69回
  • 年度积分:0
  • 历史总积分:334
  • 注册:2019年7月20日
发表于:2019-07-20 23:24:40
1楼

非常不错的东西,学习中

lumax

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 1回
  • 年度积分:0
  • 历史总积分:105
  • 注册:2019年7月21日
发表于:2019-07-21 07:32:54
2楼

建议找付费的控件比较好哦

不然很花时间

tianshanyunyue

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 14回
  • 年度积分:0
  • 历史总积分:269
  • 注册:2016年5月03日
发表于:2019-07-21 13:49:43
3楼

我C#不行。但会不会跟你大量私有化有关系?毕竟错误提示引用连接不到实例。改成public试试。

不在爱了

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 100回
  • 年度积分:0
  • 历史总积分:253
  • 注册:2017年10月17日
发表于:2019-07-22 11:06:12
4楼

异步通讯 OPCsever数据变化会通知看客户端触发事件 通过此事件更新数据

QQ244157887

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 132回
  • 年度积分:0
  • 历史总积分:410
  • 注册:2015年7月26日
发表于:2019-07-25 15:19:11
5楼

安装一个PC ACCESS ,里面有西门子得C#得OPC 通信案例,不复杂


热门招聘
相关主题

官方公众号

智造工程师