OPC UA 连接客户端测试连接工具(KEPServerEX6)

关于opc ua介绍
OPC是应用于工业通信的,在windows环境的下一种通讯技术,原有的通信技术难以满足日益复杂的环境,在可扩展性,安全性,跨平台性方面的不足日益明显,所以OPC基金会在几年前提出了面向未来的架构设计的OPC 统一架构,简称OPC UA,截止目前为止,越来越多公司将OPC UA作为开放的数据标准,在未来工业4.0行业上也将大放异彩。
在OPC UA的服务器端。会公开一些数据节点,或是方法等信息,允许第三方使用标准的OPC协议来进行访问,在传输层已经安全的处理所有的消息,对于客户端的访问来说,应该是非常清楚简单的。
前期准备
准备好开发的IDE,首选Visual Studio2017版本以及最新版本,新建项目,打开NuGet管理器,添加OpcUaHelper。
在程序页面可以引用 using OpcUaHelper;
节点浏览器
在窗体界面添加一个button按钮;
双击进入事件,编写程序

private void button1_Click(object sender, EventArgs e)
{
    using (FormBrowseServer form = new FormBrowseServer())
    {
        form.ShowDialog();
    }
}

OPC UA 连接客户端测试连接工具(KEPServerEX6)_第1张图片打开后
OPC UA 连接客户端测试连接工具(KEPServerEX6)_第2张图片连接Kepserver EX6读取数据
客户端实例化

 private OpcUaClient opcUaClient = new OpcUaClient();
        private async void Form1_Load(object sender, EventArgs e)
        {
            // connect to server, this is a sample
            try
            {
                await opcUaClient.ConnectServer("opc.tcp://127.0.0.1:49320");
                //opc.tcp://118.24.36.220:62547/DataAccessServer");
            }
            catch (Exception ex)
            {
                ClientUtils.HandleException("Connected Failed", ex);
            }

        }
         private void button1_Click(object sender, EventArgs e)
        {
            using (FormBrowseServer form = new FormBrowseServer("opc.tcp://127.0.0.1:49320")) // opc.tcp://118.24.36.220:62547/DataAccessServer"))
            {
                form.ShowDialog();
            }
        }
    在窗体载入的时候实例化,在窗体关闭的时候断开连接。下面的节点操作和其他操作使用的实例都是这个opcUaClient,如果你连接的服务器是需要用户名和密码的,那么修改Load中的代码如下:
private async void Form1_Load(object sender, EventArgs e)
        {
            // connect to server, this is a sample
            try
            {
           	 opcUaClient.UserIdentity = new Opc.Ua.UserIdentity("admin", "123456");
                await opcUaClient.ConnectServer("opc.tcp://127.0.0.1:49320");
                //opc.tcp://118.24.36.220:62547/DataAccessServer");
            }
            catch (Exception ex)
            {
                ClientUtils.HandleException("Connected Failed", ex);
            }

        }

节点读取操作
我们要读取一个节点数据,有两个信息是必须知道的

  1. 节点的ID标识,就是在上述节点浏览器中的编辑框的信息(“ns=2;s=Machines/Machine A/Name”)

  2. 节点的数据类型,这个是必须知道的,不然也不好读取数据。(“string”)

上面的两个信息都可以通过节点浏览器来获取到信息,现在,我们已经获取到了这两个信息,就上面的括号里的数据,然后我们在新增一个按钮,来读取数据:

 private void button2_Click(object sender, EventArgs e)  //单一节点读取操作
        {
            try
            {
                //string value = opcUaClient.ReadNode("i=2262");
                //MessageBox.Show(value); // 显示测试数据
                UInt16 value2 = opcUaClient.ReadNode<UInt16>("ns=2;s=通道 1.设备 1.标记 2");
                textBox5.Text = value2.ToString();
            }
            catch (Exception ex)
            { // 使用了opc ua的错误处理机制来处理错误,网络不通或是读取拒绝
                ClientUtils.HandleException(Text, ex);
            }
        }

KEP连接失败时:
在KEPserverEX6目录里找到opcuacm.exe,添加服务器端点可解决,在C#里也需要修改url。

你可能感兴趣的:(OPC UA 连接客户端测试连接工具(KEPServerEX6))