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: ++编写的全面介绍。 opcdaauto.dll是一种使用C++编写的Windows DLL文件,它是OPC自动化核心组件库的一部分。 OPC自动化是指使用微软所定义的基于COM和DCOM的技术,通过程序化方式实现与OPC服务器进行通信的方法。 opcdaauto.dll为其它组件提供了一些基础服务,以便它们可以通过DCOM连接到OPC服务器并获取数据。该DLL文件使得OPC自动化可以更容易地实现数据交换。 当使用opcdaauto.dll库时,C++程序员需要创建一个COM对象并使用现有的OPC服务器连接到其接口。使用该DLL文件,程序员可以直接访问OPC服务器和其数据点,而无需了解服务器和客户端之间的复杂交互过程。 在使用opcdaauto.dll时,C++程序员可以自由选择使用所需的版本,以及根据自身的应用程序需求,进行自定义修改和应用。使用opcdaauto.dll库,C++程序员可以获得高效可靠的通信,轻松实现数据交换,从而为其它应用程序提供更灵活高效的数据获取手段。 总之,opcdaauto.dll作为OPC自动化核心组件库的一部分,是一个强大的DLL文件。使用C++编写的该DLL文件,可以在Windows操作系统上提供高效的通信,为用户带来方便,同时也为C++程序员在应用程序中取得成功的基本服务。 ### 回答2: OPC自动化组件opcdaauto.dll是一种用于实现OPC自动化的动态链接库文件。它提供了一组可供开发人员调用和使用的功能接口,以帮助他们开发和实现OPC自动化应用程序。 OPC DA是"数据访问"标准,其允许应用程序从数据源中读取或写入数据。 OPC DA自动化维护了一些标准接口,可以让应用程序直接调用和使用器COM对象。调用这些接口的最常用方法是使用opcdaauto.dll。 使用opcdaauto.dll,开发人员可以编写各种支持数据访问或数据源和一些常规操作的应用程序。一些应用程序例子包括工业实时控制,监测和其他领域的数据采集和处理。opcdaauto.dll还支持多线程操作和多个客户端同时使用数据源,可以使得许多不同的客户端同时访问数据源。 对于开发人员而言,使用opcdaauto.dll是相对容易的,因为它提供了简便的COM接口。开发人员需要了解如何通过COM接口与OPC DA自动化器进行交互以及如何实现相应的回调方法。对于新手开发者,OPC DA CAB告诉用户如何实现opcdaauto.dll的用户控件,例如可以通过VB脚本或其他编程语言使用。同时,可以找到很多完整的例子,使用它们可以熟悉opcdaauto.dll的基本使用方法。 ### 回答3: OPC(OLE for Process Control)是一种用于工业自动化的标准通信协议。OPC DAData Access)是OPC的一种子协议,用于实时数据的读取和写入。opcdaauto.dll是一个OPC DA自动化客户端库,可用于连接到OPC服务器并读取数据。 使用C++编程语言可以调用opcdaauto.dll库中的函数来实现与OPC服务器的通信。首先,需要加载opcdaauto.dll库,然后使用CoInitialize函数初始化COM(Component Object Model)运行时库,以便调用COM接口。接下来,使用CLSIDFromProgID函数获取OPC服务器的CLSID(Class ID),并使用CoCreateInstance函数创建一个与OPC服务器的连接。通过IOPCServer接口,可以查询OPC服务器上的所有标签(Items),并使用IOPCSyncIO接口同步读取或写入标签的值。读取或写入完成后,需要使用CoUninitialize函数关闭COM运行时库并释放与OPC服务器的连接。 除了opcdaauto.dll库,还有许多其他的OPC DA客户端库可供选择,例如opcdaclient.dll、QT OpcUa Client SDK等。选择哪一种库取决于具体应用的需求和开发人员的编程能力。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

iNeuOS工业互联网

提升动力值

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

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

打赏作者

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

抵扣说明:

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

余额充值