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

    技术2022-05-11  16

     

          最近研究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


    最新回复(0)