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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux安装siege

    linux安装siegesiege安装笔记本文介绍centos和ubuntu安装方法centos安装下载:[root@siege-4.0.4]#wgethttp://download.joedog.org/siege/siege-4.0.4.tar.gz解压:[root@siege-4.0.4]#tarzxvfsiege-4.0.4.tar.gz打开解压包:…

    2025年7月10日
    2
  • MATLAB 数学应用 微分方程 时滞微分方程 具有常时滞的DDE「建议收藏」

    MATLAB 数学应用 微分方程 时滞微分方程 具有常时滞的DDE「建议收藏」本文讲述了如何使用dde23对具有常时滞的DDE(时滞微分方程)方程组求解。方程组为:y1′(t)=y1(t−1)y’_1(t)=y_1(t−1)y1′​(t)=y1​(t−1)y2′(t)=y1(t−1)+y2(t−0.2)y’_2(t)=y_1(t-1)+y_2(t-0.2)y2′​(t)=y1​(t−1)+y2​(t−0.2)y3′(t)=y2(t)y’_3(t)=y_2(t)y3′​(t)=y2​(t).t≤0的历史解函数是常量y1(t)=y2(t)=y3(t)=1y_1(t)=y

    2022年9月28日
    3
  • s一般怎么称呼自己的m_男人一般都这样称呼自己的情人?

    s一般怎么称呼自己的m_男人一般都这样称呼自己的情人?阅读本文前,请您先点击上面的“蓝色字体”,再点击“关注”,这样您就可以继续免费收到文章了。每天都会有分享,都是免费订阅,请您放心关注。注:本文转载自网络,不代表本平台立场,仅供读者参考,著作权属归原创者所有。我们分享此文出于传播更多资讯之目的。如有侵权,请在后台留言联系我们进行删除,谢谢!…

    2022年6月23日
    99
  • python模块之psutil详解

    python模块之psutil详解python模块之psutil详解一、psutil模块:1.psutil是一个跨平台库(http://pythonhosted.org/psutil/)能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息。它主要用来做系统监控,性能分析,进程管理。它实现了同等命令行工具提供的功能,如ps、top、lsof、netstat、ifconfig、who、df、kill…

    2022年6月12日
    34
  • LARS(最小角回归)

    LARS(最小角回归)优缺点LARS是一个适用于高维数据的回归算法。优点: 特别适合于特征维度n远高于样本数m的情况。 算法的最坏计算复杂度和最小二乘法类似,但是其计算速度几乎和前向选择算法一样 可以产生分段线性结果的完整路径,这在模型的交叉验证中极为有用 缺点:由于LARS的迭代方向是根据目标的残差而定,所以该算法对样本的噪声极为敏感。…

    2022年4月20日
    38
  • 对servlet\jsp九大内置对象的介绍及部分对象的区别

    对servlet\jsp九大内置对象的介绍及部分对象的区别

    2021年7月16日
    69

发表回复

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

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