zoukankan      html  css  js  c++  java
  • PLC衔接新方式UcAsp.Opc

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

    下载地址:
    https://github.com/servucn/UcAsp.Opc#ucaspopc
  • 相关阅读:
    如何有效地报告 Bug
    Linux开始结束ping命令
    【转】未能加载文件或程序集“XXX”或它的某一个依赖项。试图加载格式不正确的程序。
    .net session 使用误区
    [转] ADO.NET调用存储过程带输出参数或返回值
    ASP.NET Easyui datagrid增删改+sqlhelper
    C#分割字符串并统计重复出现的次数
    C# 读取TXT文本数据 添加到数据库
    记一次Spring项目打包问题排查
    Wiki系列(三):我的Wiki
  • 原文地址:https://www.cnblogs.com/xiaoxihebei/p/10623495.html
Copyright © 2011-2022 走看看