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");

 

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

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

 

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

 

四、节点变化监听:

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

 1 public void UAGroup()
 2         {
 3             OpcClient client = new OpcClient(new Uri("opc.tcp://127.0.0.1:26543/Workstation.RobotServer"));
 4             OpcGroup group = client.AddGroup("Test");
 5             client.AddItems("Test", new string[] { "Robot1.Axis1", "Robot1.Axis2" });
 6             group.DataChange += Group_DataChange;
 7             Console.WriteLine(group);
 8         }
 9 
10         private void Group_DataChange(object sender, System.Collections.Generic.List e)
11         {
12             foreach (OpcItemValue o in e)
13             {
14                 Console.WriteLine(o.Value);
15             }
16         }

 

 

 

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

 

原文地址:http://www.ucasp.net/opc/opcda-opcua-Csharp.shtml