


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【教案版】小学二班级上册 球类活动2
- 2025年电气工程师中级面试实战指南及模拟题答案详解
- 2025年熔化焊接工艺考试宝典与模拟题集
- 2025年营养师中级考试指南与备考策略
- 2025年电子商务运营专家初级面试预测题与解析
- 2025年电子商务网络安全工程师面试秘籍与预测题
- 电力基础安全知识培训课件
- 2025年护士执业资格高级考试试题集及答题技巧
- 2025年烈士纪念设施保护单位招聘面试常见问题及答案
- 2025年山东省青岛李沧区中考化学二模试卷
- 《电器火灾的防范》课件
- 路灯CJJ检验批范表
- 农村厕所改造合同书完整版
- 建筑工程安全管理提升方案
- 对新员工保密基本培训
- 民用无人机操控员执照(CAAC)考试复习重点题库500题(含答案)
- GB/T 6553-2024严酷环境条件下使用的电气绝缘材料评定耐电痕化和蚀损的试验方法
- 2024年苏教版四年级数学上册全册教案
- 2024新科普版英语七年级上单词默写表
- 金融行业高质量发展专题研究报告
- 知识题库-人社练兵比武竞赛测试题及答案(五)
评论
0/150
提交评论