如何学习c#开发opcclient

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何学习c#开发opcclient相关的知识,希望对你有一定的参考价值。

参考技术A
新建C#应用程序,命名为OPC
Client,将OPCAutomation.dll引用,如图。
using
OPCAutomation;
2.
定义OPC的三个接口类OPCServer类、OPCGroup类和OPCItem类;
OPCServer
KepServer;
OPCGroups
KepGroups;
OPCGroup
KepGroup;
OPCItems
KepItems;
OPCItem
KepItem;
3.
枚举网络OPC服务器
枚举OPC服务器用到GetOPCServers()函数
//获取计算机IP,计算机名称
IPHostEntry
IPHost
=
Dns.Resolve(Environment.MachineName);
if
(IPHost.AddressList.Length
>
0)

strHostIP
=
IPHost.AddressList[0].ToString();

else

return;

//通过IP来获取计算机名称,可用在局域网内
IPHostEntry
ipHostEntry
=
Dns.GetHostByAddress(strHostIP);
strHostName
=
ipHostEntry.HostName.ToString();//获取本地计算机上的OPCServerName
try

KepServer
=
new
OPCServer();
object
serverList
=
KepServer.GetOPCServers(strHostName);
//枚举网络所有OPC服务器并写入ComboBox控件
foreach
(string
turn
in
(Array)serverList)

cmbServerName.Items.Add(turn);

cmbServerName.SelectedIndex
=
0;
btnConnServer.Enabled
=
true;

catch
(Exception
err)

MessageBox.Show("枚举本地OPC服务器出错:"
+
err.Message,
"提示信息",
MessageBoxButtons.OK,
MessageBoxIcon.Warning);

4.
连接OPC服务器
try

KepServer.Connect(remoteServerName,
remoteServerIP);
if
(KepServer.ServerState
==
(int)OPCServerState.OPCRunning)

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

else

//这里你可以根据返回的状态来自定义显示信息,请查看自动化接口API文档
tsslServerState.Text
=
"状态:"
+
KepServer.ServerState.ToString()
+
"
";


catch
(Exception
err)

MessageBox.Show("连接远程服务器出现错误:"
+
err.Message,
"提示信息",
MessageBoxButtons.OK,
MessageBoxIcon.Warning);
return
false;

5.
创建组和列出OPC服务器中所有节点
//创建组
try

KepGroups
=
KepServer.OPCGroups;
KepGroup
=
KepGroups.Add("OPCDOTNETGROUP");
SetGroupProperty();
KepGroup.DataChange
+=
new
DIOPCGroupEvent_DataChangeEventHandler(KepGroup_DataChange);
KepGroup.AsyncWriteComplete
+=
new
DIOPCGroupEvent_AsyncWriteCompleteEventHandler(KepGroup_AsyncWriteComplete);
KepItems
=
KepGroup.OPCItems;

catch
(Exception
err)

MessageBox.Show("创建组出现错误:"+err.Message,"提示信息",MessageBoxButtons.OK,MessageBoxIcon.Warning);
return
false;

//列出OPC服务器中所有节点
//展开分支
oPCBrowser.ShowBranches();
//展开叶子
oPCBrowser.ShowLeafs(true);
foreach
(object
turn
in
oPCBrowser)

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

以上是关于如何学习c#开发opcclient的主要内容,如果未能解决你的问题,请参考以下文章

C# BS方向 该如何规划学习?学习路线指南

C#新手该如何规划学习学习路线指南

C#学习之路-连接MySQL数据库

新手如何从零开始学习unity?

如何改进程序编码[关闭]

我是如何学习软件开发的