C#如何与OPC连接

OPC是OLE for Process Control的缩写。顾名思义,OPC是一种利用微软COM/DCOM技术来达到自动化控制的协定,那么在C#中怎么与OPC进行连接呢?

403c0ead8bf2689a73e2800da8565465651.jpg

OPC为硬件制造商与软件开发商提供了一条桥梁,透过硬件厂商提供的OPC Server接口,软件开发者不必考虑各项不同硬件间的差异,便可自硬件端取得所需的信息,一般采用OPC Server/Client运行方式

9c27f3351a5315cf0b13d9a05831d638f54.jpg

首先,新建C#应用程序,命名为OPC Client,然后将OPCAutotomation.dll进行引用,并在代码页添加如下语句进行引用:

using OPCAutomation;

接着,定义相关接口类,OPC的三个主要接口类OPCServer类、OPCGroup类和OPCItem类,如下列代码:

OPCServer KepServer;

OPCGroups KepGroups;

OPCGroup KepGroup;

OPCItems KepItems;

OPCItem KepItem;

33d5b9821a6295e2537fca2821adc717676.jpg

在使用前,要进行枚举网络OPC服务器。枚举OPC服务器主要用到GetOPCServers()函数,关键代码如下

KepServer = new OPCServer();

object serverList = KepServer.GetOPCServers(strHostName);

//枚举网络所有OPC服务器并写入ComboBox控件

foreach (string turn in (Array)serverList)

{

    cmbServerName.Items.Add(turn);

}

连接OPC服务器,如下代码

KepServer.Connect(remoteServerName, remoteServerIP);

if (KepServer.ServerState == (int)OPCServerState.OPCRunning)

{

    tsslServerState.Text = "已连接到-" + KepServer.ServerName + "   ";

}

最后,创建组合列出OPC服务器中所有节点信息进行使用即可,关键代码如下:

//创建组

KepGroups = KepServer.OPCGroups;

KepGroup = KepGroups.Add("OPCDOTNETGROUP");

//列出OPC服务器中所有节点

//展开分支

oPCBrowser.ShowBranches();

 //展开叶子

oPCBrowser.ShowLeafs(true);

foreach (object turn in oPCBrowser)

 {

               listBox1.Items.Add(turn.ToString());

}

070847ae8e2a3b687d35eee8c020a4329e9.jpg

转载于:https://my.oschina.net/u/4006148/blog/2870284

  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值