OPC是OLE for Process Control的缩写。顾名思义,OPC是一种利用微软COM/DCOM技术来达到自动化控制的协定,那么在C#中怎么与OPC进行连接呢?
OPC为硬件制造商与软件开发商提供了一条桥梁,透过硬件厂商提供的OPC Server接口,软件开发者不必考虑各项不同硬件间的差异,便可自硬件端取得所需的信息,一般采用OPC Server/Client运行方式
首先,新建C#应用程序,命名为OPC Client,然后将OPCAutotomation.dll进行引用,并在代码页添加如下语句进行引用:
using OPCAutomation;
接着,定义相关接口类,OPC的三个主要接口类OPCServer类、OPCGroup类和OPCItem类,如下列代码:
OPCServer KepServer;
OPCGroups KepGroups;
OPCGroup KepGroup;
OPCItems KepItems;
OPCItem KepItem;
在使用前,要进行枚举网络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());
}