c#opc客户端开发_第1页
c#opc客户端开发_第2页
c#opc客户端开发_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingOPCAutomation;usingSystem.Net;namespaceOpc_ClientpublicpartialclassForm1:FormpublicForm1()InitializeComponent();#region私?有?D变d僵

2、:©OPCServerSyServer;OPCGroupsSyGroups;OPCGroupSyGroup;OPCItemsSyItems;OPCItemSyItem;stringstrHostIP=string.Empty;stringstrHostName=string.Empty;boolopc_connected=false;/连©接,?状d?态?intitmHandleClient=0;/客,'a户?i?柄"2intitmHandleServer=0;服。t务遍?句?柄a"2#endregion#region方。?法。?§pr

3、ivatevoidGetLocalServer()IPHostEntryIPHost=Dns.GetHostEntry(Dns.GetHostName();if(IPHost.AddressList.Length>0)strHostIP=IPHost.AddressList4.ToString();this.tboxServerIP.Text=strHostIP.ToString();elsereturn;IPHostEntryipHostEntry=Dns.GetHostByAddress(strHostIP);strHostName=ipHostEntry.HostName.ToSt

4、ring();trySyServer=newOPCServer();objectserverList=SyServer.GetOPCServers(strHostName);foreach(stringturnin(Array)serverList)this.cmbServerName.Items.Add(turn);cmbServerName.SelectedIndex=0;btnConnServer.Enabled=true;catch(Exceptionerr)MessageBoxShow("枚?举.本d弛?OPC服。t务?器?出?错?a:eo"+err.Messag

5、e"提?"际o?信?息?3,MessageBoxButtons.OK,MessageBoxIcon.Warning);privateboolCreatGroup()trySyGroups=SyServer.OPCGroups;SyGroup=SyGroups.Add("OPCDOTNETGROUP");SetGroupProperty();SyGroup.DataChange+=newDIOPCGroupEvent_DataChangeEventHandler(SyGroup_DataChange);SyGroup.AsyncWriteComplete+

6、=newDIOPCGroupEvent_AsyncWriteCompleteEventHandler(SyGroup_AsyncWriteComplete);SyItems=SyGroup.OPCItems;catch(Exceptionerr)MessageBoxShow("创?建?§组d"|出濒?错?"a误,?"+err.Message"提?"标o?信?息?e",MessageBoxButtonsOK,MessageBoxIcon.Warning);returnfalse;returntrue;privatev

7、oidLoadDataToTree(OPCBrowseroPCBrowser,TreeNodeCollectiontreeNodeCollection)oPCBrowser.Organization.ToString();oPCBrowser.ShowBranches();foreach(objectturninoPCBrowser)TreeNodenode=treeNodeCollection.Add(turn.ToString();treeView1.SelectedNode=node;oPCBrowser.MoveDown(turn.ToString();LoadDataToTree(o

8、PCBrowser,node.Nodes);oPCBrowser.MoveUp();oPCBrowser.ShowLeafs(false);foreach(objectturninoPCBrowser)treeView1.SelectedNode.Nodes.Add(turn.ToString();privatevoidRecurBrows(OPCBrowseroPCBrowser)/stringi=oPCBrowser.OrganizationLoadDataToTree(oPCBrowser,treeView1.Nodes0.Nodes);oPCBrowser.ShowBranches()

9、;oPCBrowser.ShowLeafs(true);foreach(objectturninoPCBrowser)listBox1.Items.Add(turn.ToString();)privatevoidGetServerInfo()(this.toolStripStatusLabel1.Text="开a始o?时o?d间?:eo"+SyServer.StartTime.ToString()+""this.toolStripStatusLabel2.Text="版??本a?:eo"+SyServer.MajorVersion.T

10、oString()+"."+SyServer.MinorVersion.ToString()+"."+SyServer.BuildNumber.ToString();)privateBooleanConnectRemoteServer(stringremoteServerIP,stringremoteServerName)(try(SyServer.Connect(remoteServerName,remoteServerIP);if(SyServer.ServerState=(nt)OPCServerState.OPCRunning)(this.too

11、lStripStatusLabel3.Text="已。?连0#''?到?-"+SyServer.ServerName+")else(this.toolStripStatusLabel3.Text="状a?态?:时+SyServer.ServerState.ToString()+;)catch(Exceptionerr)(MessageBoxShow("连接,.?远?程"?服。t务滞?出?错?"a:"+err.Message,"提?赤o?信?息?3,MessageBoxButtons.OK,

12、MessageBoxIconWarning);returnfalse;)returntrue;)privatevoidSetGroupProperty()(SyServer.OPCGroups.DefaultGroupIsActive=Convert.ToBoolean(boBox1.SelectedItem);SyServer.OPCGroups.DefaultGroupDeadband=Convert.ToInt32(textBox1.Text);SyGroup.UpdateRate=Convert.ToInt32(textBox2.Text);SyGroup.IsActive=Conve

13、rt.ToBoolean(comboBox2.SelectedItem);SyGroup.IsSubscribed=Convert.ToBoolean(comboBox3.SelectedItem);)#endregion#region事o?件tvoidSyGroup_AsyncWriteComplete(intTransactionlD,intNumitems,refArrayClientHandles,refArrayErrors)(this.lblState.Text=""for(inti=1;i<=Numitems;i+)(this.lblState.Text

14、+="Tran:eo"+TransactioniD.ToString()+"CH:eo"+ClientHandles.GetValue(i).ToString()+"Error:eo"+Errors.GetValue(i).ToString();)voidSyGroup_DataChange(intTransactionlD,intNumitems,refArrayClientHandles,refArrayitemValues,refArrayQualities,refArrayTimeStamps)(for(inti=1;i<

15、;=Numitems;i+)(this.tboxcurrvalue.Text=itemValues.GetValue(i).ToString();this.tboxcurrquality.Text=Qualities.GetValue(i).ToString();this.tboxcurrtime.Text=TimeStamps.GetValue(i).ToString();)#endregionprivatevoidForm1_Load(objectsender,EventArgse)btnConnServer.Enabled=false;btnServerBrush.Enabled=fal

16、se;btnsetproparty.Enabled=false;btnwritevalue.Enabled=false;treeView1.Nodes.Add("Root");GetLocalServer();/SyServer.OPCGroups.DefaultGroupisActive=Convert.ToBoolean(boBoxl.Selecteditem);)privatevoidlistBox1_SelectedindexChanged(objectsender,EventArgse)tryif(itmHandleClient!=0)this.tboxcurrv

17、alue.Text=""this.tboxcurrquality.Text=""this.tboxcurrtime.Text=""ArrayErrors;OPCitembitem=Syitems.GetOPCitem(itmHandleServer);inttemp=newint20,bitem.ServerHandle);ArrayserverHandle=(Array)temp;SyItems.Remove(SyItems.Count,refserverHandle,outErrors);)/intcancelID;itmHand

18、leClient=1234;SyItem=SyItems.AddItem(listBox1.SelectedItem.ToString(),itmHandleClient);itmHandleServer=SyItem.ServerHandle;/SyItem.Read(listBox1.SelectedItem.ToString(),outValue,outQuality,outTimeStamp);/SyGroup.AsyncRead(1,refserverHandle,outErrors,2016,outcancelID);)catch(Exceptionerr)itmHandleCli

19、ent=0;this.tboxcurrvalue.Text="Errorox"this.tboxcurrquality.Text="Errorox"this.tboxcurrtime.Text="Errorox"MessageBoxShow("此??项?为a系|统a3保d?e留©项?:eo"+err.Message"提?"际o信?息?当;)privatevoidForm1_FormClosing(objectsender,FormClosingEventArgse)if(!opc_co

20、nnected)return;)if(SyGroup!=null)SyGroup.DataChange-=newDIOPCGroupEvent_DataChangeEventHandler(SyGroup_DataChange);)-if(SyServer!=null)SyServer.Disconnect();SyServer=null;)opc_connected=false;一privatevoidbtnsetproparty_Click(objectsender,EventArgse)SetGroupProperty();privatevoidbtnConnServer_Click(o

21、bjectsender,EventArgse)tryif(!ConnectRemoteServer(tboxServerIP.Text,cmbServerName.Text)return;)btnsetproparty.Enabled=true;opc_connected=true;GetServerInfo();RecurBrows(SyServer.CreateBrowser();if(!CreatGroup()return;)catch(Exceptionerr)MessageBoxShow(”初?始o?化?雄?错?"a:时+err.Message"提?"际

22、o?信?息?e,MessageBoxButtons.OK,MessageBoxIcon.Warning);)privatevoidbtnwritevalue_Click(objectsender,EventArgse)OPCItembItem=SyItems.GetOPCItem(itmHandleServer);inttemp=newint20,bItem.ServerHandle);ArrayserverHandle=(Array)temp;objectvalueTemp=newobject2"",tboxvaluewrite.Text);Arrayvalues=(Array)valu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论