OPC数据服务器开发工具研究与实现 点击:5108 | 回复:12



gongkongedit

    
  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2002-09-03 09:03:00
楼主
[关键词] OPC、OPC数据服务器、开发工具 [Key Words] OPC、OPC Data Access Server、Toolkit [摘要] 介绍了OPC技术,结合OPC数据服务器设计原型,提出了OPC服务器开发工具的设计方案,并给出了开发工具的接口函数集合。 [Abstract] The technology of OPC is expounded. Combined with the model of OPC data access server,the scheme of OPC data access server toolkit is adopted. In addition ,the interface functions of OPC toolkit are designed. 1.引言 OPC(OLE for Process Control)是过程控制业中的新兴标准,它的出现为基于Windows的应用和基于现场控制的应用建立了桥梁。在过去,为了存取现场设备的数据信息,每一个应用软件开发商都需要编写专用的接口函数。由于现场设备的种类繁多,且产品的不断升级,往往给用户和软件开发商带来了巨大的工作负担。通常这样也不能满足工作的实际需要,系统集成商和开发商急切需要一种具有高效性、可靠性、开放性、可互操作性的即插即用的设备驱动程序。在这种情况下,OPC标准应运而生,OPC技术的出现把开发访问设备接口的任务放在硬件生产厂家或第三方厂家,以OPC服务器的形式提供给用户,解决了软、硬件厂商的矛盾,完成了系统的集成,提高了系统的开放性和可互操作性。 2.OPC技术与OPC数据服务器接口分析 OPC数据服务器是以MicroSoft公司的OLE/COM/DCOM技术为依托,采用客户/服务器模式,是过程控制应用中的“软件总线”。基于OPC技术的工业软件模块自由的分布在这条软总线上,现场数据对于软件模块完全透明,软件模块可以分布在网络上的不同接点。OPC技术不仅可以灵活的应用于工控软件体系结构的各个层次,同时OPC技术也可以作为任何软件模块间数据通信的标准接口,图1是OPC技术的典型使用。OPC标准的产生将使得整个控制软件体系更趋于合理,系统的开放性和可互操作性将得到进一步的体现。 OPC规范的主要目的是为了统一、标准的描述用户数据源,用户数据源可能来自于现场的硬件设备,也可能来自于某些软件模块。对于OPC客户端应用,OPC服务器表现为具有一些特定功能的COM对象集合,而这些特定功能就是OPC规范的技术细节。OPC技术细节的制定完全是为了满足设备间的互操作性,因此它们的实现完全可以脱离具体设备,或通过一些编程机制独立于具体设备。那么那些功能是依赖于设备,那些功能又是相对独立的呢?可以具体分析一下OPC数据服务器及其提供的标准接口。 OPC数据服务器定义了两种标准的COM对象,即OPC Server 、OPC Group对象。通过实现这两种标准的COM对象及相应接口,用户就完成了OPC数据服务器的开发。OPC Server对象,是客户端软件与服务器交互的首要对象。客户端访问OPC Server对象的接口函数组织管理OPC Group对象,OPC Group对象用于组织管理服务器内部的实时数据信息。在OPC标准中使用Items对象描述实时数据,Items是非COM对象,是客户端不可见的对象。 OPC Server对象功能主要表现为:1)创建和管理OPC Group对象;2)管理服务器内部的状态信息;3)将服务器的错误代码翻译成描述性语句;4)浏览OPC服务器内部的数据组织结构。从OPC Server对象的功能可以看出,OPCServer对象面向OPC服务器的技术细节,基本独立于实时数据源,可以统一实现,其中数据的组织结构与数据源属性与具体数据源有关,需要从用户处获取信息。 OPC Group对象的主要功能表现为:1)管理OPC Group对象的内部状态信息;2)创建和管理Items对象。3)OPC服务器内部的实时数据存取服务(同步与异步方式)。从OPC Group对象的功能可以看出,该对象面向OPC服务器中的数据存取信息,对实时数据源的依赖性很强,需要从用户数据源处获取信息。 3.OPC数据服务器设计 OPC数据服务器的设计与实现是一个较为复杂与繁重的任务。设计者既需要有很高的编程水平,同时也必须掌握相应的硬件产品特性。 OPC数据服务器的设计可以分解为不同的功能模块(图二)。OPC/COM接口管理、OPCGroup与Item管理、Item数据管理与检测模块的基本功能是完成OPC的标准接口功能,在OPC服务器的开发中,存在着共性,可以统一设计,形成可以推广的OPC数据服务器开发工具。专用设备通信协议与管理模块是依赖于具体的数据源,对于不同的服务器,该模块是不同的,应该单独设计。因此,基于软件组件化的设计思想,OPC数据服务器的开发是可以工具化的,关键是明确、完善的定义模块间的通信接口,既能保证服务器符合OPC国际标准,又能合理的同数据源特性联系起来,为用户提供高度的灵活性。 4.OPC数据服务器开发工具实现 OPC服务器开发工具的目的是将MicroSoft公司的OLE/COM/DCOM技术和OPC的技术细节隐藏起来,使用户开发OPC服务器的工作集中在自己特定的数据采集任务上来。目前,OPC数据服务器开发工具在国际工业控制领域中使用已经相当广泛,比较著名的供应厂商有FactorySoft、Softing等公司,这些开发工具的价格十分昂贵 。OPC服务器开发工具通常分为原码级开发工具和快速开发工具两种。原码级开发工具包括OPC服务器的全部原码(一般使用的编程语言为VC++),和实现例程。这种开发工具比较灵活,方便用户根据需要定制开发,但是使用起来对用户的要求很高,要求用户通常有良好的编程能力。另一种开发工具是快速开发工具,快速开发工具一般是以动态连接库(DLL)形式提供给用户,用户只要按照动态连接库中提供的应用编程接口(API)即可完成OPC服务器的开发,这种开发工具使用简单,虽然缺少一些灵活性,但通常能够满足多数用户的开发需求。下面将根据OPC数据存取服务器的接口要求,讨论一个完整的OPC数据服务器快速开发工具原型,给出一组OPC数据服务器开发工具需要实现的函数集合。 1. OPC数据存取服务器快速开发工具原型 根据上述的分析及OPC服务器设计框图,将OPC服务器开发工具的编程接口按功能划分成三大类: 1) OPC数据与属性管理,组织OPC数据服务器的浏览地址空间,提供OPC数据的属性管理。 2)OPC实时数据管理,提供OPC服务器的实时数据读写功能。 3)OPC服务器管理,提供OPC服务器的启动/停止、注册等功能。 实现这些功能,基本完成了OPC数据服务器开发工具的设计工作。图三是OPC数据服务器快速开发工具原型。采用OPC开发工具后,用户根据数据源的特性和特有的数据通信协议进行数据采集,编写数据采集程序,更新OPC服务器中的实时数据,将OPC服务器开发的工作进一步集中到数据扫描与优化处理任务上。 2. OPC数据存取服务器快速开发工具API定义 在实际设计中,我们定义了一组函数集合,描述了用户数据采集程序与OPC服务器之间的编程接口,现简单归纳如下: 1) 开发工具初使化API BOOL InitServerDLL(HINSTANCE hInstance, CLSID* pCLSID, UINT UpdateRate, CString vendorInfo, CString progId, CString versionId, CString description ); 在使用开发工具之前,必须使用初使化函数对开发工具进行初使化,提供OPC服务器刷新率、OPC服务器的程序信息(如CLSID)、服务器的版本信息等。 2) 注册与注册删除API。 HRESULT RegisterOPC(void); HRESULT UnRegisterOPC(void); 向注册表提供OPC服务器的注册信息,支持OPC服务器的浏览及远程访问。 3) 启动/停止OPC开发工具API及获取开发工具的运行状态API。 BOOL StartServerDLL() BOOL StopServerDLL(); BOOL ServerDLLInUse(); 在用户程序退出之前,应该获取OPC服务器的运行状态,检查是否有OPC客户与服务器连接,决定是否退出程序。用户可以调用 ServerDLLInUse() 函数,观察是否有OPC客户程序与OPC服务器连接。 4) OPC服务器变量写值API HRESULT WriteCallback( WRITEPROC lpCallback); 为了完成OPC客户程序对现场设备中参数的修改,用户程序需要提供相应的函数指针,供OPC工具调用。用户可以利用回调函数完成设备参数的修改工作。 5) 添加及删除数据变量API HANDLE AddTag(CString name,VARIANT value,BOOL readOnly); BOOL RemoveTag(HANDLE hTag); 数据变量是用户提供给OPC客户的数据访问点,用户程序需要维护数据点的变化,根据现场数据的变化及时更新。同时利用变量的命名规则定义OPC服务器的浏览地址空间,如使用“.”表示树状结构的分枝,变量名称为FI302.VFD.AI.MODE.TARG



横扫千军

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 41回
  • 年度积分:0
  • 历史总积分:112
  • 注册:2001年9月05日
发表于:2002-05-21 08:48:00
1楼
你好,我正好有个项目要开发OPC-SERVER,请问有什么最好的快速开发工具?怎么得到?我要急用,望能指点

Gary

  • 精华:0帖
  • 求助:0帖
  • 帖子:14帖 | 35回
  • 年度积分:0
  • 历史总积分:133
  • 注册:2002年5月21日
发表于:2002-05-21 14:24:00
2楼
给你电话跟他联系:024-23970100-3431

killinger

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:54
  • 注册:2002年5月21日
发表于:2002-05-21 19:48:00
3楼
我也是在从事这方面工作的 不过是个菜鸟,有没有这方面的客户机开发程序实例? 有一教我?

ring

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 9回
  • 年度积分:0
  • 历史总积分:15
  • 注册:2001年10月16日
发表于:2002-05-22 10:55:00
4楼
我们也开发了一个商用的OPC 快速开发工具,支持DA和AE标准。实现方式与FactorySoft开发工具类似。

前者

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 15回
  • 年度积分:0
  • 历史总积分:45
  • 注册:2001年12月23日
发表于:2002-05-25 10:03:00
5楼
写的内容挺好的,能不能给大家提供一些演示软件用用或者一些例子,因为这样没有感性的认识啊!

一诺

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 7回
  • 年度积分:0
  • 历史总积分:60
  • 注册:2002年6月21日
发表于:2002-06-21 09:24:00
6楼
怎么这么多人都开发出来OPC???? 我怀疑!

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2002-08-07 10:02:00
7楼
请下载演示板 http://www.china-control.com/xiazai.htm 内部包括用户手册!

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2002-09-03 09:03:00
8楼
http://www.china-control.com/rj4.htm 网址更新,欢迎下载!

coverlove

  • 精华:0帖
  • 求助:0帖
  • 帖子:13帖 | 41回
  • 年度积分:0
  • 历史总积分:142
  • 注册:2004年1月05日
发表于:2011-02-22 17:41:06
9楼
OPC开发套件-数据访问服务器开发工具包3.8

下载地址:http://www.xdowns.com/soft/38/110/2011/Soft_72907.html

OPC开发套件开发包以标准动态连接库(DLL)形式提供二次开发接口,与 Win98、WinNT、
WIN2000、 WIN2003系统完全兼容。OPC开发软件包由服务器软件包、客户端开发软件包组成, 完全封装了 OPC 技术和COM技术实现细节,使二次开发的程序员无需 OPC规范和COM技术底层细节,降低服务器和客户端程序开发的复杂程度和减少了熟悉OPC 技术的时间,只需专注于自己熟悉的数据采集和过程控制,其他的一切都交给软件开发包来完成。由于软件开发包以标准的WINDOWS API方式提供,故可以在目前主流的所有开发语言和开发工具中得到支持。

数据访问服务器工具包于 2004 年 6 月开始研发,吸取了各大OPC开发包的优点,经过多次升级,实现了对 OPC数据访问服务器规范(以下简称DA 规范)的全面支持(支持规范版本 1.0、2.0、3.0)。软件包具有以下特点:
完全符合DA 标准,通过OPC 基金会兼容性产品测试
完全的封装使二次开发人员不需要了解COM 技术和OPC 规范接口细节
工具包支持多种开发语言,如 VC、BC、VB、Delphi、C# 等
逻辑清晰、功能明确的二次开发函数保证用户进行二次开发简单容易
支持同步、异步数据通讯方式
支持自定义属性读写
支持树型地址空间
支持动态创建标签
支持分布式体系结构
高效(20ms/5000 标签)
良好的兼容性(支持所有组态软件、DCS 系统、Scada 系统)
优良的稳定性,软件运行 CPU 占用率(2% 10000 个节点)
完备的产品升级和完善的技术支持,提供现场技术服务和远程技术指导

sssaaa900

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 75回
  • 年度积分:0
  • 历史总积分:106
  • 注册:2018年11月29日
发表于:2018-11-29 10:57:02
10楼

学习OPC中,有资源必须先下看看

宁静,致远。

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:0
  • 历史总积分:92
  • 注册:2018年10月23日
发表于:2019-04-19 11:07:14
11楼

学习OPC中,有资源必须先下看看

Liu_xinxing

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 56回
  • 年度积分:0
  • 历史总积分:177
  • 注册:2018年5月04日
发表于:2019-04-21 09:49:16
12楼

学习OPC中,有资源必须先下看看


热门招聘
相关主题

官方公众号

智造工程师