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