opc服务器消息通知代码,OPC 服务器 操作示例源码

opc服务器消息通知代码,OPC 服务器 操作示例源码【实例简介】TestOPC【实例截图】【核心代码】usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingHaiGrang.Package.OpcNetApiChs.DaNet;usingHaiGrang.Package.OpcNetApiChs.Opc;usingHaiGr…

大家好,又见面了,我是你们的朋友全栈君。

【实例简介】TestOPC

【实例截图】

8e2c07ce98023e18ab4f594d35810ec9.png

【核心代码】

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using HaiGrang.Package.OpcNetApiChs.DaNet;

using HaiGrang.Package.OpcNetApiChs.Opc;

using HaiGrang.Package.OpcNetApiChs.Da;

namespace TestOPC

{

public class OPC_Interface

{

/// OPC服务器打开状态

bool openStatus = false;

/// OPC服务器地址

string serverIp = “”;

/// OPC服务器名称

string serverName = “”;

/// OPC连接服务对象

OpcServer _OpcServer;

/// 读取组对象

SyncIOGroup syncIoGroup;

///

/// 构造函数

///

/// OPC服务器地址

/// OPC服务器名称

public OPC_Interface(string _serverIp, string _serverName)

{

serverIp = _serverIp;

serverName = _serverName;

}

///

/// 打开OPC服务器

///

public void OpenServer()

{

int rtc = -1;

try

{

_OpcServer = new OpcServer();

var opcServerType = Type.GetTypeFromProgID(serverName, serverIp);

//rtc = _OpcServer.Logon(“Administrator”, “1”);

//Guid _guid = new Guid(“b6eacb30-42d5-11d0-9517-0020afaa4b3c”);

rtc = _OpcServer.Connect(serverIp, opcServerType.GUID);

if (HRESULTS.Succeeded(rtc))

{

openStatus = true;

syncIoGroup = new SyncIOGroup(_OpcServer);

}

else

{

openStatus = false;

_OpcServer = null;

}

}

catch(Exception exp)

{

openStatus = false;

_OpcServer = null;

throw exp;

//CommonClass.WriteLog(“连接OPC服务器异常:” exp.StackTrace, LogType.Error);

//记录日志

}

}

///

/// 断开与OPC服务器的连接

///

public void Close()

{

try

{

syncIoGroup.Dispose();

_OpcServer.Disconnect();

}

catch (Exception exp)

{

// CommonClass.WriteLog(“断开OPC服务器连接异常:” exp.StackTrace, LogType.Error);

//记录日志

}

}

/// 获取OPC服务器打开状态

public bool GetOpenStatus()

{

return openStatus;

}

///

/// 读取OPC服务器内指定item的值

///

/// item全名称

///

public object Read(string ItemName)

{

object retVal = null;

try

{

if (syncIoGroup.Item(ItemName) == null)

{

syncIoGroup.Add(ItemName);

}

ItemDef _OpcItem = syncIoGroup.Item(ItemName);

OPCDATASOURCE theSrc = OPCDATASOURCE.OPC_DS_DEVICE;

OPCItemState theVal = new OPCItemState();

int rtc = syncIoGroup.Read(theSrc, _OpcItem, out theVal);

if (HRESULTS.Succeeded(rtc))

{

if (theVal.DataValue != null)

retVal = theVal.DataValue;

}

}

catch (Exception exp)

{

//记录日志

// CommonClass.WriteLog(string.Format(“从OPC服务器读取Item({0})异常:”, ItemName) exp.StackTrace, LogType.Error);

}

return retVal;

}

///

/// 向OPC服务器写值

///

/// item全名称

/// 要写入的值

///

public bool Write(string ItemName, object theVal)

{

bool result = false;

try

{

if (syncIoGroup.Item(ItemName) == null)

{

syncIoGroup.Add(ItemName);

}

ItemDef _OpcItem = syncIoGroup.Item(ItemName);

int rtc = syncIoGroup.Write(_OpcItem, theVal);

if (HRESULTS.Succeeded(rtc))

{

result = true;

}

}

catch (Exception exp)

{

//CommonClass.WriteLog(string.Format(“从OPC服务器写Item({0})数据异常:”, ItemName) exp.StackTrace, LogType.Error);

//记录日志

}

return result;

}

}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151338.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 摩托罗拉me525刷机包_ipad刷机怎么刷机教程

    摩托罗拉me525刷机包_ipad刷机怎么刷机教程您好,仔细看完以下内容哦,很简单的,一定要一步一步来,不要偷懒,谢谢。小白也会刷机的,刷机是另一种乐趣。请珍惜我的劳动成果哦,写教程不容易的呢,弄好了后请小声的说一下哦。(*^__^*)谢谢备份好您的资料,准备内存卡,读卡器,数据线,保证电量50以上请下载以下内容,电脑里安装豌豆荚http://www.wandoujia.com/或者91助手http://soft.s

    2022年10月22日
    0
  • SQLyog 报错2058 :连接 mysql 8.0.11 解决方法

    SQLyog 报错2058 :连接 mysql 8.0.11 解决方法今天闲来无事,下载新版的 mysql8.0.11安装。为了方便安装查看,我下载了sqlyog工具连接mysql配置新连接报错:错误号码2058,分析是mysql密码加密方法变了。解决方法:windows下cmd登录mysql-uroot-p登录你的mysql数据库,然后执行这条SQL: ALTERUSER’root’@’localhost’IDENTIFI…

    2022年10月3日
    0
  • phpstorm2021.3.2激活码3月最新在线激活[通俗易懂]

    phpstorm2021.3.2激活码3月最新在线激活,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    131
  • 集群技术概述_集群计算机

    集群技术概述_集群计算机集群技术概述一、集群的起源二、集群的优点1.强扩展能力2.实现方式容易3.高可用性4.易管理性三、集群的类型1.负载均衡集群2.高可用性集群3.高性能集群四、集群的特点1.心跳监测2.漂移IP地址五、集群的应用1.石油地震数据处理2.数值天气预报一、集群的起源        集群并不是一个全新的概念,其实早在七十年代计算机厂商和研究机构就开始了对集群系统的研究和开发。由于主要用于科学工程计算,所以这些系统并不为大家所熟知。直

    2022年8月31日
    1
  • vue-响应式原理[通俗易懂]

    vue-响应式原理[通俗易懂]1.vue响应式原理核心使用的API是:Object.defineProperty(obj,key,val)会对props和data、computed中的数组和对象都进行一个遍历,这个过程其实就是赋予数据set和get方法,让数据的访问和赋值有一些内部处理2.由于vue的核心使用的是Object.defineProperty,但是IE8及其以下版本是不兼容这个API的,并且也没有提供相关的API支持这个功能,因此这也是为什么vue项目不兼容的根本原因3.在对数组和对象进行操作的过程中,会对对象进行一个

    2022年6月10日
    25
  • devtools安装_检测devtools

    devtools安装_检测devtoolsvue-devtools是一款基于chrome浏览器的插件,用于调试vue应用。安装:chrome商店直接安装。手动安装步骤:找到vue-devtools的github项目,并将其clone到本地:gitclonehttps://github.com/vuejs/vue-devtools.git安装项目所需要的npm包:npminstall编译项目文件:npmrunbuild添加至chrome浏览器:地址(“chrome://extensions/”)进入扩展程序页面,点击“加载

    2022年9月1日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号