c#编写扩展OPCDAAuto.dll组件 (ScaleOPClient.dll)



 

      最近研究OPC相关的知识,在这之前以WtOPCSvr.dll为基础,用C#封装了一个公司内部使用的组件(ScaleOPC.dll),ScaleOPC.dll具休信息请参见博客。为了能够更深的理解OPC服务的相关知识,最近用OPCDAAuto.dll开发了自己的组件(用C#),目的就是,如果有OPC的相关开发工作,能够减少同事的工作量,并且快速、便捷的开发自己的OPC服务商和客户端。

      OPC底层技术有很多是关于COM(Component Object Model,组件对象模型)的。在后续的文章中会专门介绍一下COM的相关知识。对于不太了解COM的朋友也不必担心,我们完全可以利用第三方开发包来开发自己的OPC服务端和客户端。但是,对于服务器端的开发,大多第三方开发包是收费的。如果是本着学习的目的,在网上也可以下载的。

      下面,我就介绍一下,以OPCDAAuto.dll为基础,用C#封装的OPC客户端开发包(ScaleOPClient.dll):

 

       一、ScaleOPClient.dll介绍

       ScaleOPClient.dll是在OPCDAAuto.dll基础上开发,集成了OPCDAAuto.dll绝大部分功能。

       1、组件内部集成了对服务器、组别和标签的管理,其中包括参数的管理。但是利用ScaleOPClient.dll开发自己的程序,有些属性和函数是不对外的,以免对核心东西的操作造成程序混乱。

       2、对服务器、组别和标签的管理,以及参数的管理,完全是通过窗体进行配制就可以了。减少编程人员编写代码的工作量。

       3、对于环境需要的组件(OpcEnum.exeOpcRcw.Comn.dll,OpcRcw.Da.dll等),ScaleOPClient.dll会自动释放资源,并且进行注册,不需要再配制环境了。但是对于DCOM,还是需要自己手动配制。

       4、当开发人员利用ScaleOPClient.dll的窗体配制好客户端之后,可以利用AutomationHandler 和ParameterHandler事件,进行接数据更新操作。

       总之,利用ScaleOPClient.dll开发客户端,我们只需要做两件事,第一:调用主空体配制OPC客户端相关信息。第二:利用事件通知开发人员进行数据更新,并传递更新的数据信息。

 

        二、ScaleOPClient.dll的使用

        ScaleOPClient.dll提供一个对外的类(ScaleOPClient.Interface),这个类提供了用户需要操作的几个函数,一切以这个类为中心进行功能操作就可以了。

      1、我们需要创建一个对外的接口类

          ScaleOPClient.Interface _opclient=new ScaleOPClient.Interface ();

 

       2、我们需要调配制函数

          _opclient.ConfigClient();

           任何OPC客户端的的配制都是通过这个函数,这个函数会调用一个主窗体,开发人员或手动配制就可以了。

 

      3、配制好客户端信息之后,我们需要加载两个接收数据更新的事件。

           _opclient.AutomationHandler +=new ScaleOPClient.OPCAutomationHandler(Automation);
            _opclient.ParameterHandler +=new ScaleOPClient.OPCParameterInfoHandler (Parameter);

 

             在事件里进行操作

             private void Automation(object sender,OPCAutomationArgs e)
            { //-------你的代码-----------//  }
            private void Parameter(object sender,OPCParameterInfoArgs  e)
            { //-------你的代码-----------//  }

 

        4、选择事件类型,默认值为:OPCEventType.Automation

            _opclient.EventType 

             这个属性有两种类型

              1)、OPCEventType.Automation :当EventType为该类型的时候,程序会调用AutomationHandler 事件,做为OPC数据更新默认事件,这个事件是采用OPC订阅方式读取服务器的数据信息。

              2)、OPCEventType.ParamaterInfo:当EventType为该类型的时候,程序会调用ParameterHandler事件,做为OPC数据更新默认事件,这个事件采用OPC的同步方式读取服务器的数据信息,循环组别依次读取数据,并传递服务器名称、组别名称等信息。

           EventType属性的目的是,在数据更新的时候不能同时响应两个事件,如果客户端比较多的时候,这样会阻塞信道。

 

          5、OPC客户端的结构信息

          _inter.Servers 属性

         用户可以调用这个属性,轮询服务器、组和标签,并且获得相关信息,这个属性可以配合AutomationHandler 事件使用,每个有数据更新了会响应这个事件,在这个事件里去轮询,获得标签值。

 

        三、图片说明

配制信息的主窗体 

                                获得服务器列表

 

                              服务器属性

                             增加组信息

                                增加标签

 

 

配制好之后的主窗体

 

多服务器

 

其他功能(右键)菜单

以上的就是关于ScaleOPClient.dll组件的相关内容,基本功能都实现了,主要目的就是快速便捷的开发OPC客户端,但是,还有不完善的地方,希望广大朋友能够和我多多交流,接受批评、指教。

 

下面是并于OPC的其他资料,有需要的朋友可以下载。

C#扩展OPC客户端OPCDAAuto.dll组件(ScaleOPClient.dll)

http://download.csdn.net/source/1047266

OPC C#封装包 access和SQL数据源配制 V1.0.0.8 资源 下载:
http://download.csdn.net/source/1000802

c#扩展WtOPCSvr.dll组件OPC SERVER服务,ScaleOPC.DLL 博客 文章:
http://blog.csdn.net/lsjwq/archive/2009/02/08/3868536.aspx

关于OPC自动化接口编程(OPCDAAuto.dll)几点注意问题  博客 文章:
http://blog.csdn.net/lsjwq/archive/2009/02/12/3881345.aspx

 

网名:唯笑志在

QQ:504547114

DotNet 改善程序代码 群:54256083

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iNeuOS工业互联网

提升动力值

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值