



版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.using System;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using OPCAutomation;using System.Net;namespace Opc_ClientpublicpartialclassForm1 :FormpublicForm1()InitializeComponent();#region私?有?D变à?量?OPCServer SyServer;OPCGroups SyGroups;OP
2、CGroup SyGroup;OPCItems SyItems;OPCItem SyItem;stringstrHostIP =string.Empty;1 / 9.stringstrHostName =string.Empty;boolopc_connected =false ;/ 连?接¨?状á?态?intitmHandleClient = 0;/ 客¨a户?ì端?句 ?柄à¨2intitmHandleServer = 0;/ 服¤t务?端?句?柄à¨2#endregion#region方¤
3、?法 ¤?§privatevoid GetLocalServer()strHostIP = IPHost.AddressList4.ToString();this .tboxServerIP.Text = strHostIP.ToString();elsereturn ;trySyServer =new OPCServer();objectserverList = SyServer.GetOPCServers(strHostName);foreach ( stringturnin ( Array )serverList)cmbServerName.SelectedIndex
4、 = 0;btnConnServer.Enabled =true ;catch ( Exceptionerr)MessageBox.Show(" 枚 ?举¨本à?地ì?OPC服¤t务 ?器?出 ?错?¨a:ê o"+err.Message, " 提?¨示o?信?息?é",MessageBoxButtons .OK, MessageBoxIcon.Warning);2 / 9.privatebool CreatGroup()trySyGroups = SyServer.OPCG
5、roups;SyGroup = SyGroups.Add("OPCDOTNETGROUP");SetGroupProperty();SyGroup.DataChange +=newDIOPCGroupEvent_DataChangeEventHandler(SyGroup_DataChange);SyGroup.AsyncWriteComplete +=newDIOPCGroupEvent_AsyncWriteCompleteEventHandler(SyGroup_AsyncWriteComplete); SyItems = SyGroup.OPCItems;catch
6、( Exceptionerr)MessageBox.Show(" 创 ?建?§ 组á¨|出?现?错?¨a误¨?" +err.Message, " 提?¨示o?信?息?é",MessageBoxButtons .OK, MessageBoxIcon.Warning);returnfalse ;returntrue ;private void LoadDataToTree(OPCBrowser oPCBrowser, TreeNodeCollection treeNodeCollectio
7、n)oPCBrowser.ShowBranches();foreach ( objectturnin oPCBrowser)TreeNode node = treeNodeCollection.Add(turn.ToString();treeView1.SelectedNode = node;oPCBrowser.MoveDown(turn.ToString();LoadDataToTree(oPCBrowser, node.Nodes);oPCBrowser.MoveUp();oPCBrowser.ShowLeafs(false );foreach ( objectturnin oPCBro
8、wser)3 / 9.privatevoid RecurBrows(OPCBrowser oPCBrowser)/string i = oPCBrowser.OrganizationLoadDataToTree(oPCBrowser, treeView1.Nodes0.Nodes);oPCBrowser.ShowBranches();oPCBrowser.ShowLeafs(true );foreach ( objectturnin oPCBrowser)privatevoid GetServerInfo()this .toolStripStatusLabel1.Text =" 开a
9、始o?时o?à间?:êo"+""this .toolStripStatusLabel2.Text =" 版?本à?:êo" +".""."+private Boolean ConnectRemoteServer( string remoteServerIP, string remoteServerName)trySyServer.Connect( remoteServerName,remoteServerIP);if(SyServer.ServerState = (
10、int )OPCServerState.OPCRunning)this .toolStripStatusLabel3.Text =" 已°?连?接¨?到ì?-" +SyServer.ServerName +""elsethis .toolStripStatusLabel3.Text =" 状á?态?:êo"+""catch ( Exceptionerr)4 / 9.MessageBox.Show(" 连?接¨?远?程¨?服¤t
11、务?器?出?错?¨a:êo" + err.Message, " 提 ?¨示o?信?息?é", MessageBoxButtons .OK, MessageBoxIcon.Warning);returnfalse ;returntrue ;privatevoid SetGroupProperty()Convert .ToBoolean( this .comboBox1.SelectedItem);Convert .ToInt32(textBox1.Text);SyGroup.UpdateRate =Convert .ToInt
12、32(textBox2.Text);SyGroup.IsActive =Convert .ToBoolean(comboBox2.SelectedItem);SyGroup.IsSubscribed =Convert .ToBoolean(comboBox3.SelectedItem);#endregion#region事o?件tvoid SyGroup_AsyncWriteComplete( int TransactionID, int NumItems, ref Array ClientHandles, ref Array Errors)this .lblState.Text ="
13、;" ;for ( inti = 1; i <= NumItems; i+)this .lblState.Text +="Tran :êo"+ TransactionID.ToString() +"CH:êo"+ ClientHandles.GetValue(i).ToString() +"Error:êo"+Errors.GetValue(i).ToString();void SyGroup_DataChange(intTransactionID,intNumItems, refArra
14、y ClientHandles,refArray ItemValues,refArray Qualities,refArray TimeStamps)for ( inti = 1; i <= NumItems; i+)this .tboxcurrvalue.Text = ItemValues.GetValue(i).ToString();this .tboxcurrquality.Text = Qualities.GetValue(i).ToString();this .tboxcurrtime.Text = TimeStamps.GetValue(i).ToString();5 / 9
15、.#endregionprivatevoid Form1_Load( objectsender,EventArgs e)btnConnServer.Enabled =false ;btnServerBrush.Enabled =false ;btnsetproparty.Enabled =false ;btnwritevalue.Enabled =false ;"Root" );GetLocalServer();privatevoid listBox1_SelectedIndexChanged(objectsender,EventArgs e)tryif(itmHandle
16、Client != 0)this .tboxcurrvalue.Text ="" ;this .tboxcurrquality.Text ="" ;this .tboxcurrtime.Text ="" ;Array Errors;OPCItem bItem = SyItems.GetOPCItem(itmHandleServer);int temp =new int 2 0, bItem.ServerHandle ;Array serverHandle = (Array )temp;SyItems.Remove(SyItems.Co
17、unt,ref serverHandle,out Errors);/int cancelID;itmHandleClient = 1234;itmHandleServer = SyItem.ServerHandle;out TimeStamp);/SyGroup.AsyncRead(1,refserverHandle,out Errors,2016, out cancelID);catch ( Exceptionerr)itmHandleClient = 0;6 / 9.this.tboxcurrvalue.Text ="Error ox"this.tboxcurrqual
18、ity.Text ="Error ox"this.tboxcurrtime.Text ="Error ox" ;MessageBox.Show(" 此 ?项?为 a系| ì统a3保à?留ê ?项?: êo"+err.Message, " 提?¨示o?信?息?é");privatevoid Form1_FormClosing( objectsender,FormClosingEventArgse)if(!opc_connected)return ;if(Sy
19、Group !=null )SyGroup.DataChange -= new DIOPCGroupEvent_DataChangeEventHandler(SyGroup_DataChange);if(SyServer !=null )SyServer.Disconnect();SyServer =null ;opc_connected =false ;privatevoid btnsetproparty_Click(objectsender,EventArgs e)SetGroupProperty();privatevoid btnConnServer_Click(objectsender
20、,EventArgs e)tryif(!ConnectRemoteServer(tboxServerIP.Text, cmbServerName.Text)return ;btnsetproparty.Enabled =true ;opc_connected =true ;GetServerInfo();RecurBrows(SyServer.CreateBrowser();if(!CreatGroup()7 / 9.return ;catch ( Exceptionerr)MessageBox.Show(" 初 ?始o?化 ?¥出?错?¨a:êo"+e
21、rr.Message, " 提?¨示o?信 ?息?é",MessageBoxButtons .OK, MessageBoxIcon.Warning);privatevoid btnwritevalue_Click(objectsender,EventArgs e)OPCItem bItem = SyItems.GetOPCItem(itmHandleServer);int temp =new int 2 0,bItem.ServerHandle ;Array serverHandle = (Array )temp;object valueTemp =new object 2 "" , t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 蒸汽杀菌锅知识培训要点
- 2025年社区卫生服务知识考试题库(附答案)
- 2025年普通处方权考试题及答案
- 2025诊所租赁合同范本参考
- 叉车实操考试全套试题及答案
- 2025年高考化学试题分类汇编:有机化学基础(含解析)
- 2025全面授权合同协议书汇编
- 物业安全生产试题及答案
- 2025年4月护理理论知识考试模拟题(含参考答案)
- 2025年北京市旅游合同范本(BF)
- 如何做一名理性爱国者课件
- U8开发之单据控件
- 初高中衔接数学教学的心得
- 2023-2024学年湖南省耒阳市小学语文六年级下册期末自测测试题
- 12YJ4-1 常用门窗标准图集
- GB/T 12190-1990高性能屏蔽室屏蔽效能的测量方法
- 高血压的危害-课件
- ISO15189医学实验室认可概况课件
- 轻钢龙骨、双层石膏板吊顶施工方案
- 安全网(平网)张挂安全技术要求
- 政务云收费标准 云托管收费标准
评论
0/150
提交评论