OPC.Client for DA and UA 使用C#开发库UcAsp.OPC.Client使用案例

OPC.Client for DA and UA 使用C#开发库UcAsp.OPC.Client使用案例

UCAsp.OPC是一个基于OPC基金会的库的支持DA和UA的OPC客户端C#的中间件,可以在不同的协议中轻松、透明地执行OPC Server操作。

UcAsp.Opc C#的客户端API共有15个,支持.Net 4.0~4.6;

 

一、如何连接一个OPC服务器:

DA:

 OpcClient client = new OpcClient(new Uri("opcda://127.0.0.1/Matrikon.OPC.Simulation.1"));

UA:

OpcClient client = new OpcClient(new Uri("opc.tcp://127.0.0.1:26543/Workstation.RobotServer"));

在使用中通过Url的Scheme区分是DA还UA,开发者不用需要关心UA还是DA;

 

二、如何读取对应节点的值:

string r = client.Read("Random.String");

 

三、如何写入一个节点的值:

client.Write("Robot1.Axis1", 2.0090f);

 

上面两个环节UA和DA没有差别

 

四、节点变化监听:

   该库采用的建立Group的方式监听组的变化情况,实现代码如下

        public void UAGroup()
        {
            OpcClient client = new OpcClient(new Uri("opc.tcp://127.0.0.1:26543/Workstation.RobotServer"));
            OpcGroup group = client.AddGroup("Test");
            client.AddItems("Test", new string[] { "Robot1.Axis1", "Robot1.Axis2" });
            group.DataChange += Group_DataChange;
            Console.WriteLine(group);
        }

        private void Group_DataChange(object sender, System.Collections.Generic.List e)
        {
            foreach (OpcItemValue o in e)
            {
                Console.WriteLine(o.Value);
            }
        }

项目开源地址:https://github.com/servucn/UcAsp.Opc

 

如上图就是利用UcAsp.Opc制作的一个WWB SCADA的演示模型;

 

留言