/UcAsp.Opc

opc.client for da and ua

Primary LanguageC#

UcAsp.Opc

opc for da and ua

注 意:

[OPC.DA 环境下先安装lib文件夹下的:Core Components Redistributable (x64).msi ]

Nuget 安装

Install-Package UcAsp.Opc -Version 1.0.0.5 

OPC.DA 读取变量

OpcClient client = new OpcClient(new Uri("opcda://127.0.0.1/Matrikon.OPC.Simulation.1"));
string r = client.Read<string>("Random.String");

OPC.UA 读取变量

OpcClient client = new OpcClient(new Uri("opc.tcp://127.0.0.1:26543/Workstation.RobotServer"));
float r = client.Read<float>("Robot1.Axis1");
var list = client.Read(new string[] { "Robot1.Axis1", "Robot1.Axis2" });

读取和写入

OpcClient client = new OpcClient(new Uri("opc.tcp://127.0.0.1:26543/Workstation.RobotServer"));
client.Write<float>("Robot1.Axis1", 2.0090f);
float r = client.Read<float>("Robot1.Axis1");
var result = client.Write(new string[] { "Robot1.Axis1", "Robot1.Axis2" }, new object[] { 2.0090f, 2.0090f });

分组监听数据变化

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<OpcItemValue> e)
{
  foreach (OpcItemValue o in e)
   {
       Console.WriteLine(o.Value);
   }
}

获取节点信息

OpcClient client = new OpcClient(new Uri("opc.tcp://127.0.0.1:26543/Workstation.RobotServer"));
INode root = client.RootNode;           
IEnumerable<INode> list = client.ExploreFolder(root.Tag);
IEnumerable<INode> server = client.ExploreFolder(list.ToList()[0].Tag);
IEnumerable<INode> s = client.ExploreFolder(server.ToList()[0].Tag);