c#opc客户端开发

  • 格式:doc
  • 大小:44.39 KB
  • 文档页数:8

下载文档原格式

  / 8
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

using System;

using System.Collections.Generic;

using ponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using OPCAutomation;

using ;

namespace Opc_Client

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

#region私?有®D变À?量¢?

OPCServer SyServer;

OPCGroups SyGroups;

OPCGroup SyGroup;

OPCItems SyItems;

OPCItem SyItem;

string strHostIP = string.Empty;

string strHostName = string.Empty;

bool opc_connected = false; //连¢?接¨®状Á¡ä态¬?

int itmHandleClient = 0; //客¨ª户¡ì端?句?柄À¨²

int itmHandleServer = 0; //服¤t务?端?句?柄À¨²

#endregion

#region方¤?法¤¡§

private void GetLocalServer()

{

IPHostEntry IPHost = Dns.GetHostEntry(Dns.GetHostName());

if (IPHost.AddressList.Length > 0)

{

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

this.tboxServerIP.Text = strHostIP.ToString();

}

else

{

return;

}

IPHostEntry ipHostEntry = Dns.GetHostByAddress(strHostIP);

strHostName = ipHostEntry.HostName.ToString();

try

{

SyServer = new OPCServer();

object serverList = SyServer.GetOPCServers(strHostName);

foreach (string turn in (Array)serverList)

{

this.cmbServerName.Items.Add(turn);

cmbServerName.SelectedIndex = 0;

btnConnServer.Enabled = true;

}

}

catch (Exception err)

{

MessageBox.Show("枚?举¨´本À?地Ì?OPC服¤t务?器¡Â出?错䨪:êo"+err.Message,"提¬¨¢示º?信?息¡é",MessageBoxButtons.OK,MessageBoxIcon.Warning);

}

}

private bool CreatGroup()

{

try

{

SyGroups = SyServer.OPCGroups;

SyGroup = SyGroups.Add("OPCDOTNETGROUP");

SetGroupProperty();

SyGroup.DataChange += new

DIOPCGroupEvent_DataChangeEventHandler(SyGroup_DataChange);

SyGroup.AsyncWriteComplete += new

DIOPCGroupEvent_AsyncWriteCompleteEventHandler(SyGroup_AsyncWriteComplete);

SyItems = SyGroup.OPCItems;

}

catch (Exception err)

{

MessageBox.Show("创ä¡ä建¡§组Á¨¦出?现?错䨪误¨®"+err.Message,"提¬¨¢示º?信?息¡é",MessageBoxButtons.OK,MessageBoxIcon.Warning);

return false;

}

return true;

}

private void LoadDataToTree(OPCBrowser oPCBrowser, TreeNodeCollection treeNodeCollection)

{

anization.ToString();

oPCBrowser.ShowBranches();

foreach (object turn in oPCBrowser)

{

TreeNode node = treeNodeCollection.Add(turn.ToString());

treeView1.SelectedNode = node;

oPCBrowser.MoveDown(turn.ToString());

LoadDataToTree(oPCBrowser, node.Nodes);

oPCBrowser.MoveUp();

}

oPCBrowser.ShowLeafs(false);

foreach (object turn in oPCBrowser)

{

treeView1.SelectedNode.Nodes.Add(turn.ToString());

}

}

private void RecurBrows(OPCBrowser oPCBrowser)

{

//string i = anization

LoadDataToTree(oPCBrowser, treeView1.Nodes[0].Nodes);

oPCBrowser.ShowBranches();

oPCBrowser.ShowLeafs(true);

foreach (object turn in oPCBrowser)

{

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

相关主题