首页 > 编程语言 >c# opc协议,连接plc

c# opc协议,连接plc

时间:2023-09-21 16:22:37浏览次数:73  
标签:group c# items opc Da Item plc Opc new

 原网址:https://www.coder.work/article/3045229

 我正在使用来自 OPCFoundation 的两个 .dll 文件 - opcNetApi.dll 和 opcNetApi.Com.dll

 

private void readplc() { Opc.URL url = new Opc.URL("opcda://48.5.0.05/RSLinx OPC Server"); Opc.Da.Server server = null; OpcCom.Factory fact = new OpcCom.Factory(); server = new Opc.Da.Server(fact, null); try { server.Connect(url, new Opc.ConnectData(new System.Net.NetworkCredential())); } catch (Exception exy) { MessageBox.Show(exy.Message); } // Create a group Opc.Da.Subscription group; Opc.Da.SubscriptionState groupState = new Opc.Da.SubscriptionState(); groupState.Name = "Group"; groupState.Active = true; group = (Opc.Da.Subscription)server.CreateSubscription(groupState); // add items to the group. Opc.Da.Item[] items = new Opc.Da.Item[6]; items[0] = new Opc.Da.Item(); items[0].ItemName = "[ALARM]F20:9"; items[1] = new Opc.Da.Item(); items[1].ItemName = "[ALARM]F22:30"; items[2] = new Opc.Da.Item(); items[2].ItemName = "[ALARM]F22:6"; items[3] = new Opc.Da.Item(); items[3].ItemName = "[ALARM]F18:8"; items[4] = new Opc.Da.Item(); items[4].ItemName = "[ALARM]F22:32"; items[5] = new Opc.Da.Item(); items[5].ItemName = "[ALARM]F22:5"; items = group.AddItems(items); try { group.DataChanged += new Opc.Da.DataChangedEventHandler(OnTransactionCompleted); // COM EXCEPTION THROWN HERE Console.ReadLine(); } catch (Exception ex) { MessageBox.Show(ex.Message); Console.ReadKey(); } } private void OnTransactionCompleted(object group, object hReq, Opc.Da.ItemValueResult[] items) { for (int i = 0; i < items.GetLength(0); i++) { } }

标签:group,c#,items,opc,Da,Item,plc,Opc,new
From: https://www.cnblogs.com/xxbShare/p/17720237.html

相关文章

  • git多个commit合并成一个
    前言一个功能有多个commit要合并成一个更加美观操作打开gitbase1.输入gitlog-8  //查看前8条提交2.输入gitrebase-iHEAD~3  //表示最近的3条合并成一条3.输入完后界面如下,按i进入编译模式,将第2,3个pick改为s,表示将后2条合并到第一条中,然后按esc退出编译模式,然后......
  • 必看!S3File Sink Connector 使用文档
    S3File是一个用于管理AmazonS3(SimpleStorageService)的Python模块。当前,ApacheSeaTunnel已经支持S3FileSinkConnector,为了更好地使用这个Connector,有必要看一下这篇使用文档指南。描述将数据输出到AWSS3文件系统。提示:如果您使用的是Spark/Flink,在使用此连接......
  • 【C语言】指针(二)
    在上一次的博客中我了解到了指针变量、const的作用、指针之间的运算、还有野指针的介绍以及assert断言指针(一)一、数组名的理解见如下代码intarr[10]={1,2,3,4,5,6,7,8,9,10};int*p=&arr[0];这里我们使用&arr[0]的⽅式拿到了数组第⼀个元素的地址,但是其实数组名本来就是地址,......
  • 小白也能看懂的插件化DroidPlugin原理(三)-- 如何拦截startActivity方法
    **前言:**在前两篇文章中分别介绍了动态代理、反射机制和Hook机制,如果对这些还不太了解的童鞋建议先去参考一下前两篇文章。经过了前面两篇文章的铺垫,终于可以玩点真刀实弹的了,本篇将会通过Hook掉startActivity方法的一个小例子来介绍如何找出合适的Hook切入点。开始之前我们......
  • 更新wsl,docker无法启动wrong fs type, bad option, bad superblock on cgroup, missi
    PSC:\Users\xxxx>wsl-vWSL版本:2.0.0.0内核版本:5.15.123.1-1WSLg版本:1.0.57MSRDC版本:1.2.4485Direct3D版本:1.608.2-61064218DXCore版本:10.0.25880.1000-230602-1350.mainWindows版本:10.0.22000.2295sudoservicedockerstartmount:/sys/fs/cgroup/cpuset:wron......
  • Oracle 序列
    ORACLE没有象SQLSERVER中一样的自增加字段,要实现只能通过SEQUENCE来实现。1、创建序列语法:(需要CREATESEQUENCE系统权限)CREATESEQUENCE序列名[INCREMENTBYn]---用于定义序列的步长。                               如果省略,则默认为1......
  • 使用maskbarcode.jar实现一维条形码
    1.在项目的WEB-INF下的lib目录添加maskbarcode.jar2.配置web.xml文件,代码如下:1.<?xmlversion="1.0"encoding="UTF-8"?>2.<web-appversion="2.5"3.xmlns="http://java.sun.com/xml/ns/javaee"4.xmlns:xsi="h......
  • Oracle数据库索引
    索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。数据库索引什么是索引数据库索引好比是一本书前面的目录,能加快数据库的查询速度。例如这样一个查询:select*fromtable1whereid=44。如果没有索引,必须遍历整个表,直到ID等......
  • Oracle 分析函数的使用
    Oracle分析函数使用介绍  分析函数是oracle816引入的一个全新的概念,为我们分析数据提供了一种简单高效的处理方式.在分析函数出现以前,我们必须使用自联查询,子查询或者内联视图,甚至复杂的存储过程实现的语句,现在只要一条简单的sql语句就可以实现了,而且在执行效率方面也有......
  • Linux系统的物理cpu数、核数、逻辑cpu个数查看
    1#总核数=物理CPU个数X每颗物理CPU的核数2#总逻辑CPU数=物理CPU个数X每颗物理CPU的核数X超线程数34#查看物理CPU个数5cat/proc/cpuinfo|grep"physicalid"|sort|uniq|wc-l67#查看每个物理CPU中core的个数(即核数)8......