在上文成功的建立和OPCServer的连接之后,就可以和Server进行互操作..

  主要的操作有:读,写以及捕捉数据的变化..

  捕捉数据的变化是被动操作..服务器会将变化的数据发送到客户端..客户端只需要在连接Server时候,生成的theGrp_DataChanged事件中,写代码就可以..

捕捉数据变化

 

根据HandleClient来判断是哪一个数据项发生变化..降变化的数据保存下来,供系统调用..

数据的读写操作....

theGrp_ReadCompleted和theGrp_WriteCompleted 这个两个方法,是获取操作结果的方法..

在theGrp_ReadCompleted中可以,获取到最近一次读取的数据项的值..

代码如下:

获取读取数据结果
 
将读取到的数据更新到数据表中..
读取数据代码:
读取最新数据

 

 

其中,readSer数组保存的是服务器端句柄..transactionID 是一个标致,在返回读取结果的时候,会用到,可以判断是不是上次读取的结果..

 

写入数据的代码如下:

写入数据

 

最后,因为项目的需要,自己写了两个写入的方法..1个单值写入,1个一次多值写入..写出来,只是为了方便大家的使用,代码并没有什么含金量,如下:

写入数据(自定义方法)

 

因为theGrp_WriteCompleted 方法,项目中没有使用到..所以,就没有添加代码,只是留了个空方法..

 

至此,OPCServer和c#客户端的通讯已经介绍完毕,基本满足简单应用,更深层的需要可能还需要继续努力..

奉献上完整代码:

写入数据(自定义方法)


数据库中Point创建的SQL语句

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Point]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Point]
GO

CREATE TABLE [dbo].[Point] (
    [PointId] [int] NOT NULL ,
    [PointName] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [PointDesc] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [ClientHandel] [int] NULL ,
    [ServerHandel] [int] NULL ,
    [PV] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
    [isUse] [int] NULL
) ON [PRIMARY]
GO

到此,该系列结束..还包括很多应用没有提到,包括OPCServer的浏览等..以后,如果用到这方面的东西,再继续补充...

posted @ 2010-05-21 17:49 CoderLau 阅读(2489) 评论(5) 推荐(0)
摘要: 接上文,继续写OPC的应用.. 拿到从codeproject上下载的代码后,就开始迫不及待的研究代码的使用方法..在代码中,发现有很多示例程序,在里面找到了C#的源码..仔细的研究修改之后,程序可以完美运行,为此兴奋了很久.. 说了这么多的废话,开始说说具体的代码应用... 最先开始的,当然是连接OPC服务器...在连接服务器之前,添加命名空间的引用,然后定义几个变量...OPC相关命名空间using OPC.Common;using OPC.Data.Interface;using OPC.Data;OPC相关变量const string serverAdress = "192.1 阅读全文
posted @ 2010-05-05 09:54 CoderLau 阅读(3722) 评论(2) 推荐(1)
摘要: 很久之前的文章了,现在重新整理下,再发布出来,以后总结使用 项目的设计思路:由组态软件来进行设备的控制以及数据的读取,组态软件作为OPC服务器提供数据,C#开发自己的程序来作为客户端来访问OPC服务器,将数据信息显示出来,C#修改OPC服务器中的数据,OPC服务器降控制指令通过组态软件发送出去. 项目开发中,遇到的难题是C#与OPC服务器的通讯问题..网上也翻找了不少代码,很多都因为驱动的问题,而不能使用..项目也一直处于停滞状态..最后,终于在codeproject上面发现了牛人提供的C# OPC源码..试验之后,通讯一切正常.整理提供源码地址http://www.codeproject.. 阅读全文
posted @ 2010-04-29 11:54 CoderLau 阅读(3460) 评论(1) 推荐(1)
点击右上角即可分享
微信分享提示