# UcAsp.Opc **Repository Path**: servucn/UcAsp.Opc ## Basic Information - **Project Name**: UcAsp.Opc - **Description**: opc for da and ua - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 1 - **Created**: 2017-08-22 - **Last Updated**: 2024-01-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # UcAsp.Opc opc for da and ua ## 注 意: [OPC.DA 环境下先安装lib文件夹下的:Core Components Redistributable (x64).msi ] ## Nuget 安装 ```ps Install-Package UcAsp.Opc -Version 1.0.0.5 ``` ## OPC.DA 读取变量 ```C# OpcClient client = new OpcClient(new Uri("opcda://127.0.0.1/Matrikon.OPC.Simulation.1")); string r = client.Read("Random.String"); ``` ## OPC.UA 读取变量 ```C# OpcClient client = new OpcClient(new Uri("opc.tcp://127.0.0.1:26543/Workstation.RobotServer")); float r = client.Read("Robot1.Axis1"); var list = client.Read(new string[] { "Robot1.Axis1", "Robot1.Axis2" }); ``` ## 读取和写入 ```C# OpcClient client = new OpcClient(new Uri("opc.tcp://127.0.0.1:26543/Workstation.RobotServer")); client.Write("Robot1.Axis1", 2.0090f); float r = client.Read("Robot1.Axis1"); var result = client.Write(new string[] { "Robot1.Axis1", "Robot1.Axis2" }, new object[] { 2.0090f, 2.0090f }); ``` ## 分组监听数据变化 ```C# 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; } private void Group_DataChange(object sender, System.Collections.Generic.List e) { foreach (OpcItemValue o in e) { Console.WriteLine(o.Value); } } ``` ## 获取节点信息 ```C# OpcClient client = new OpcClient(new Uri("opc.tcp://127.0.0.1:26543/Workstation.RobotServer")); INode root = client.RootNode; IEnumerable list = client.ExploreFolder(root.Tag); IEnumerable server = client.ExploreFolder(list.ToList()[0].Tag); IEnumerable s = client.ExploreFolder(server.ToList()[0].Tag); ```