opcda205cust中文.docx
《opcda205cust中文.docx》由会员分享,可在线阅读,更多相关《opcda205cust中文.docx(30页珍藏版)》请在冰豆网上搜索。
![opcda205cust中文.docx](https://file1.bdocx.com/fileroot1/2023-5/20/6b46c00f-4017-4e0e-83bb-92479a32e225/6b46c00f-4017-4e0e-83bb-92479a32e2251.gif)
opcda205cust中文
数据访问定制接口标准
版本2.05
2001年12月17日,
简介:
规格型号的工业标准规格
标题:
OPC数据访问定制接口规范
日期:
2001年12月17日,
版本:
2.05软MS-Word中
来源:
opcda205_cust
作者:
OPC基金会
状态:
发布
本规范的OPC数据访问客户端和OPC服务器的开发接口的规范..该规范是一个结果的分析和设计过程中,制定一个标准接口,以方便多个供应商,应间无缝地一起运作的服务器和客户端的发展。
商标:
大多数计算机和软件的品牌名称,商标或注册商标。
个人商标没有在这里列出。
所需的运行时环境:
本规范要求的Windows95,WindowsNT4.0或更高版本
非排他性的许可协议
OPC基金会,一个非营利性的公司(“OPC基金会”),已建立了一套标准的OLE/COM接口协议,旨在促进更大的自动化/控制应用,现场系统/设备之间的互操作性,和商业/办公室应用过程控制行业。
OPC规范,原型软件的例子和相关的文件(统称“OPC材料”),形成了一套基于微软的OLE/COM技术的功能要求的标准OLE/COM接口协议。
这种技术如分布式处理系统,可编程逻辑控制器,智能现场设备和分析仪的实时信息服务器定义标准的对象,方法和属性,以沟通的信息,这些服务器包含标准的OLE/COM兼容技术使设备(例如,服务器,应用程序等)。
OPC基金会将授予您(“用户”),无论是个人或法人实体,使用许可,并提供一个,当前版本的OPC材料的副本的用户,只要用户遵守所载的条款在这种非排他性的许可协议(“协议”)。
如果用户不同意本协议中的条款及条件,OPC材料可能无法使用,用户拥有这种材料的所有副本(所有格式),必须予以销毁或退回到OPC基金会。
通过使用OPC材料(包括任何员工和用户代理),用户同意本协议条款的约束。
授权许可:
除本协议的条款及条件,OPC基金会特此授予用户非排他性的,免版税的,有限的许可使用,复制,显示和分发的OPC材料制造,使用,销售或分发任何产品和/或产品说明书符合标准,包括在OPC材料。
作出的OPC材料的所有副本和/或用户分布必须包括所有版权和其他所有权声明或由OPC基金会向用户提供的这些材料的副本包括。
OPC基金会保留所有权利,所有权和利益(包括但不限于版权,)在OPC材料,受本协议项下的有限许可授予用户。
保证和责任免责声明:
用户承认,OPC基金会提供信息为目的不仅是为了帮助用户了解微软的OLE/COM技术的OPC材料。
OPC的资料提供的“原样”,没有任何形式的的担保,明示或暗示,包括,但不限于,性能,适销性,特定用途的适用性或非侵权的保证。
用户承担质量,设计,使用和性能的OPC材料有关的所有风险。
OPC基金会及其成员不保证OPC材料,其设计或它们的使用将满足用户的要求,在运行中不会中断或无差错。
在任何情况下,OPC基金会,其成员或任何第三方承担任何成本,费用,损失,损害(包括,但不限于,直接的,间接的,继发的,偶发,特殊或惩罚性损害)或伤害发生由用户或任何第三方的本协议或任何的OPC材料的使用。
一般规定:
用户停止使用所有的OPC材料本协议和用户许可证的OPC的材料应终止
(一),
(二)由用户获得一个OPC的材料取代版本,或(三)由OPC基金会,在其选项,如果用户提交的材料违反本法。
任何本协议终止后,用户应立即停止使用所有的OPC材料,销毁所有副本,在其身上,并采取其他行动作为OPC基金会的合理要求,以确保根据本许可的OPC材料无份保持一致,在其身上。
用户不得出口或转口的OPC材料或直接使用其未被授权接收他们在美国的出口管制法律和法规的任何人或目的地生产的任何产品。
软件和文档提供的权利进行了限制。
(二)(c)项
(1)的权利
(一)技术使用,复制或披露,美国政府是受
(一)DFARS227.7202-3
(一)根据本协定所规定的限制;数据和计算机软件DFARS252.227-7013条款;或(c)商用计算机软件限制权利在FAR52.227-19细分(C)
(1)条款和
(2),适用。
承包商/制造商是OPC基金会,PO140524箱,奥斯汀,德克萨斯州78714-0524。
如果本协议的任何条款被裁定为无效,无效的,由法院强制执行或非法,其他规定的有效性和可执行性不得不受影响。
本协议应根据明尼苏达州的法律解释,排除其选择或法律规则。
此协议体现了有关各方之间的完整理解,并取代先前任何谅解或协议(口头或书面),OPC材料。
修订2.05亮点
该版本包括了许多澄清,第4.2.13关于本机,并要求数据类型之间的数据转换。
修订2.04亮点
该版本包括在互操作性会议,并在符合性测试的发展中发现的某些含糊不清的其他未成年人澄清。
受影响的部分包括:
TimeBias和死区的讨论,组对象的一般属性:
(4.5.1)。
SetState的LocaleID(作出明确的行为是可选的)。
增加或澄清错误返回E_INVALIDARGGetItemProperties,LookupItemIDs,AddItems,ValidateItems,RemoveItems,SetActiveState,SetClientHandles,SetDataTypesSyncIO和AsyncIO阅读和写入S_FALSE返回。
特别是为S_FALSE:
改变“部分成功”到“完成一个或多个错误”。
这显然意味着,在这种情况下定义的方法输出(具体ppErrors返回)。
调整文本的其他错误返回一致的跨职能。
澄清GetItemID行为。
Refresh2和IOPCDataCallback:
OnDataChange交易ID参数澄清。
具体做法是:
0是一个允许值。
又见OPCAsyncIO(4.5.6)的引进。
作为一个客户端和服务器的LocaleIDresponsibilites的一般性讨论,还添加4.2.14节。
修订2.03亮点
该版本包括死区讨论(4.5.1.6)的未成年人澄清。
这也说明空统计员的行为;描述的IOPCServer:
:
CreateGroupEnumerator和IOPCBrowseServerAddressSpace:
BrowseAccessPaths得到澄清和纠正。
他们现在IOPCBrowseServerAddressSpace现有的描述是一致的:
BrowseOPCItemIDs。
修订2.02亮点
该版本包括OPCItemProperties接口讨论(4.4.6),GroupStateMgt轻微澄清:
SetState(4.5.3.2)和旧(1.0)流编组讨论(4.6.4.6)。
修订2.01摘要
该版本包括IOPCBrowseServerAddressSpacedwAccessRightsFilter和一般的访问权限(6.7.6节)的讨论澄清。
2.0版摘要
该版本包括增强1.0a规范。
虽然改变整个文档,在以下几个方面特别重要:
•这是现在被称为有其他的OPC努力正在进行的OPC数据访问规范。
•自动化接口规范已经被分隔成独立的文件。
以前所有的自定义接口(1.0A)留在原地,除了轻微澄清不变。
•异步和异常连接现在应该做使用,而不是IDataObject的ConnectionPoints。
现有IOPCAsyncIO,IDataObject和客户端IAdviseSink接口支持“旧式”(1.0版)的连接。
新IOPCAsyncIO2,IConnectionPointContainer和客户端IOPCDataCallback接口支持的“新风格”2.0版连接。
•现有IOPCAsyncIO的行为,IDataObject和客户端的IAdviseSink接口是不变的,但他们的支持是可选的OPC2.0投诉软件。
新IOPCAsyncIO2,IConnectionPointContainer和客户端IOPCDataCallback接口需要2.0兼容的软件。
•定义一个新的“便利”界面。
IOPCItemProperties可以轻松地获得共同和供应商的特定项目或标记的属性或属性。
•添加一个ShutdownRequest能力通过服务器上的对象和一个客户端IOPCShutdown的接口,它允许服务器要求所有的客户端从服务器断开连接点。
此接口也可用于其他的OPC服务器类型。
•一个IOPCCommon接口添加到服务器。
这个接口提供了几种常见的LocaleID相关的功能。
此接口也可用于其他的OPC服务器类型。
•添加到BrowseServerAddressSpaceOPC_BROWSE_TO能力。
目录表
导言1
1.1受众1
1.2可交付1
2OPC数据访问基本面2
2.1OPC概述2
2.2其中的OPC的FITS3
2.3一般OPC架构和组件4
2.4概述的对象和接口6
2.5地址空间和配置的服务器7
2.6应用级服务器和网络节点选择8
2.7同步和序列化问题8
2.8公众(AKA共享)9
2.9持久性存储的故事9
3OPC数据访问快速参考10
3.1自定义界面10
3.1.1OPCServer对象11
3.1.2OPCGroup对象13
3.1.3EnumOPCItemAttributes对象14
3.2自定义界面/客户端15
4OPC自定义接口16
4.1概述OPC自定义接口16
4.2一般资料17
4.2.1版本互操作性17
4.2.2所有权内存18
4.2.318标准接口
4.2.4空字符串和18个空指针
4.2.5返回数组18
4.2.6公共团体18
4.2.7缓存数据,设备数据和时间戳19
4.2.8时间序列值19
4.2.9异步与同步接口19
4.2.10活动的标志,盲区和更新率19
4.2.11错误和返回代码20
4.2.1220启动问题
4.2.13Variant数据类型和互操作性20
4.2.14本地化的LocaleID23
4.3数据采集和ACTIVE状态的行为24
4.3.1IOPCSyncIO24
4.3.2IOPCASyncIO225
4.3.3通过IOPCDataCallback26认购
4.3.4IOPCASyncIO(旧)27
4.3.5认购通过IDataObject的(旧)28
4.4OPCSERVER对象29
4.4.1概述29
4.4.2IUnknown的30
4.4.3IOPCCommon30
4.4.4IOPCServer31日
4.4.5IConnectionPointContainer的(上OPCServer)40
4.4.6IOPCItemProperties43
4.4.7IOPCServerPublicGroups(可选)55
4.4.8IOPCBrowseServerAddressSpace(可选)58
4.4.9IPersistFile(可选)67
4.5OPCGROUP对象71
4.5.1一般属性72
4.5.2IOPCItemMgt75
4.5.3IOPCGroupStateMgt84
4.5.4IOPCPublicGroupStateMgt91
4.5.5IOPCSyncIO93
4.5.6IOPCAsyncIO299
4.5.7IConnectionPointContainer的(上OPCGroup)111
4.5.8IEnumOPCItemAttributes114
4.5.9IOPCAsyncIO(旧)118
4.5.10IDataObject的(旧)127
4.6用户端侧接口132
4.6.1IOPCDataCallback132
4.6.2IOPCShutdown140
4.6.3IAdviseSink(旧)141
4.6.4IAdviseSink-数据流格式(旧)143
5安装问题148
5.1组件类别148
自定义接口1485.2注册表项
5.3为149代理/存根DLL注册表项
6描述数据类型,参数和结构150
6.1项定义150
6.2ACCESSPATH151
6.3BLOB的152
6.4时间戳152
6.5Variant数据类型OPC数据项目153
6.6常数154
6.6.1OPCHANDLE154
6.7结构和口罩155
6.7.1OPCITEMSTATE155
6.7.2OPCITEMDEF156
6.7.3OPCITEMRESULT157
6.7.4OPCITEMATTRIBUTES158
6.7.5OPCSERVERSTATUS160
6.7.6访问权利161
6.8OPC质量FLAGS162
7总结OPC错误代码166
8附录A-OPCERROR.H168
9附录B-数据访问的IDL规范172
10附录D-OPCPROPS.H185
一,引言
一个总介绍到OPC是包含在一个单独的OPC概述文档(OPCOVW.DOC)。
这种特殊的文件专门处理与OPC数据访问接口。
1.1观众
本规范的目的是作为OPC兼容的客户端和服务器的开发人员的参考材料。
这是假定读者熟悉微软的OLE/COM技术和过程控制行业的需求。
本规范是为了方便开发OPC服务器在C和C++和OPC客户端应用程序选择的语言。
因此,各组件的开发预计将在特定的组件所需的技术流利。
1.2交付
从OPC基金会的OPC数据访问规范2.0的成果包括OPC规范,OPCIDL文件(包括本文件作为附录)和OPC错误的头文件(包括本文件)。
为方便起见,标准proxystubDLL和一个标准的数据访问直接从IDL生成的OPC接口的头文件,将提供OPC基金会的网站。
这OPC数据访问规范中包含的设计提供以下信息:
1。
OPC数据访问定制接口-该文件将描述OPC组件和对象的接口和方法。
2。
OPC数据访问自动化接口-一个单独的文件(OPC数据访问自动化规范2.0)描述了OPC自动化接口,方便使用的VisualBasic,Delphi和其他自动化功能的产品,与OPC服务器的接口。
2OPC数据访问基础
本节介绍了OPC数据访问,包括OPC数据访问的具体的主题是。
更多的共同主题,包括WindowsNT中,UNICODE,线程模型等进行了讨论OPC概述文档(OPCOVW.DOC)。
2.1OPC概述
本规范描述的OPCCOM对象和OPC服务器实现它们的接口。
OPC客户端可以连接到一个或多个供应商提供的OPC服务器。
图2-1OPC客户端
不同的厂商可以提供OPC服务器。
供应商提供的代码确定的设备和每个服务器可以访问的数据,数据的名称,以及如何在服务器物理访问数据的细节。
在随后的一节命名约定的细节提供。
图2-2OPC客户机/服务器的关系
OPC服务器在高层次上,是由几个对象:
服务器,组,该项目。
OPC服务器对象维护有关服务器的信息,并作为OPC组对象的容器。
OPC组对象维护自己的信息和提供的机制,遏制和逻辑组织OPC项。
OPC组提供了为客户组织数据的方式。
例如,本集团可能代表在一个特定的操作显示或报告的项目。
可以读取和写入数据。
异常基于连接,也可以创建和客户机之间的项目组中,可以根据需要启用和禁用。
OPC客户端可以配置OPC服务器提供的数据变化的OPCcleint率。
有两种类型的团体,公众和当地(或“私”)。
公众在多个客户端共享,当地的本地客户端。
公共团体的意图,目的和功能,并作进一步的细节,请参阅节。
也有市民团体的具体可选接口。
各组内的客户端可以定义一个或多个OPC项。
图2-3-组/项目的关系
OPC项代表服务器内的数据源的连接。
一个OPC项,自定义界面的角度来看,是不是作为OPC客户端的对象访问。
因此,没有外部的接口定义为一个OPC项。
所有OPC项的访问是通过OPC组对象“包含”OPC的项目,或者干脆定义OPC项目。
与每个项目相关的,是一种价值,质量和时间戳记。
该值是一个VARIANT的形式,质量是类似现场总线指定。
请注意该项目不是数据源-他们只是来连接他们。
例如,在DCS系统的标签存在,不管是否OPC客户端当前访问。
OPC项目应被认为是指定地址的数据,不作为的实际物理地址所引用的数据源。
2.2其中的OPC适合
虽然主要是从网络服务器访问数据而设计的OPC,OPC接口,可用于在应用程序内的的许多地方。
从成SCADA或DCS的物理设备的最低水平,他们可以得到的原始数据,或从SCADA或DCS系统到应用程序..体系结构和设计使得它可以构建一个OPC服务器,它允许客户端应用程序访问从许多许多不同的OPC通过一个单一的对象,在不同的节点上运行的厂商提供的OPC服务器的数据。
图2-4-OPC客户端/服务器的关系
2.3一般OPC架构和组件
OPC是两套接口规范;OPC定制接口和OPC自动化接口。
修改后的自动化接口将提供OPC规范的2.0版本。
这是如下所示。
图2-5-OPC接口
OPC规范指定的COM接口(接口),这些接口的实现(而不是如何实施)。
它指定的行为,预计将提供使用它们的客户端应用程序接口。
包括架构和接口,似乎为这些架构中最适当的描述。
所有的COM实现一样,OPC的架构是客户-服务器模型的OPC服务器组件提供了一个接口的OPC对象和管理他们。
有几个独特的因素,在实施OPC服务器。
主要的问题是对非共享通信路径到物理设备的数据传输频率。
因此,我们预计,OPC服务器将本地或远程的EXE,其中包括代码,负责收集从物理设备的高效的数据。
OPC客户端应用程序通过指定的OPC定制和自动化接口OPC服务器通信。
OPC服务器必须实现自定义接口,并选择实现自动化接口。
使用inproc(OPC处理程序)可用于元帅的接口和OPC自动化接口提供额外的项目级别的功能。
请参考如下图所示:
典型的OPC架构。
图2-5-OPC接口
OPC规范指定的COM接口(接口),这些接口的实现(而不是如何实施)。
它指定的行为,预计将提供使用它们的客户端应用程序接口。
包括架构和接口,似乎为这些架构中最适当的描述。
所有的COM实现一样,OPC的架构是客户-服务器模型的OPC服务器组件提供了一个接口的OPC对象和管理他们。
有几个独特的因素,在实施OPC服务器。
主要的问题是对非共享通信路径到物理设备的数据传输频率。
因此,我们预计,OPC服务器将本地或远程的EXE,其中包括代码,负责收集从物理设备的高效的数据。
OPC客户端应用程序通过指定的OPC定制和自动化接口OPC服务器通信。
OPC服务器必须实现自定义接口,并选择实现自动化接口。
使用inproc(OPC处理程序)可用于元帅的接口和OPC自动化接口提供额外的项目级别的功能。
请参考如下图所示:
典型的OPC架构。
图2-6-典型的OPC体系结构
还预计,服务器将巩固和优化各种客户的要求,以促进有效的沟通与物理设备的数据访问。
输入(读取),由设备返回的数据缓冲异步分发或收集各种OPC客户端的同步。
对于输出(写入),OPC服务器更新代表OPC客户端的物理设备的数据。
2.4对象和接口概述
OPC服务器对象提供了一种方法来访问(读/写)或通信的数据源设置..来源获得该类型的服务器上执行的功能。
OPC客户端连接到OPC服务器和通信通过OPC服务器的接口。
OPC服务器对象提供一个OPC客户端来创建和操纵OPC组对象的功能。
这些群体,使客户能够组织他们要访问的数据。
A组作为一个单元被激活和停用。
A组也提供了一个客户端“订阅”的项目清单,以便它可以通知时,他们改变的方式。
注:
所有COM对象都通过接口访问。
客户端只能看到接口。
因此,这里所描述的对象是“逻辑”的陈述可能不会有什么做的与实际的服务器内部实施。
下图是一个总结的OPC对象和它们的接口。
请注意,一些接口是可选的([]表示)。
图2-7-标准的OPC服务器对象
图2-8-标准的OPC组对象
2.5地址空间和配置服务器
此版本的OPC规范假定服务器配置地址空间可能会管理,并坚持使用IPersistFile接口存储。
只有服务器的特定信息是永久存储。
所有客户端的配置信息(集团和项目定义)必须坚持各自的客户端应用程序存储。
在系统中定义的所有句柄是不能保证有相同的值之间的客户端和服务器的对话会议。
重要的是,这个空间在一个特定的时间(也称为称为“团体”和“项目”,在一个特定的客户端可能会感兴趣的小的子集,以区别于服务器的地址空间(又称服务器配置))。
在本规范中详细讨论了如何保持这些客户端的特定群体的细节。
群体的持久性存储各自的客户的责任。
故意不指定服务器的地址空间是如何定义和配置的细节。
例如,服务器的地址空间可能是:
•完全固定的(例如,一个特定的设备,如规模为专用接口)。
•配置完全的OPC环境(如现有的外部DCS系统的接口)外。
•自动启动一个“智能”的服务器可以轮询现有的系统安装的硬件或接口的配置。
•根据目前要求客户端应用程序的数据项的名称由“智能”服务器自动配置飞。
据预计,此服务器的地址空间是稳定的,是在服务器管理。
客户将定义和管理相对较小列出所谓的“群体”的项目,根据需要不时。
这里所描述的接口提供客户端的能力,可以轻松地定义,管理,并通过使用“OPCGroups”需要重新创建这些名单。
客户直接创建,管理和删除这些团体代表他们(持久性的群体,是客户端应用程序的责任)的服务器。
虽然它是可能的,与公共团体的用法,该服务器可以提供持久存储这些类型的群体,或把它们定义为服务器组。
2.6应用程序级服务器和网络节点的选择
OPC数据访问支持在服务器组织成组的客户端请求的概念。
这些组可以包含从只有一个特定的OPC服务器对象的数据的请求。
为了访问数据,客户端应用程序将需要指定以下内容:
•OPC数据访问服务器的名称(使用CoCreateInstance的,CoCreateInstanceEx,等)
•机器的名称,主办的OPC数据访问服务器(由CoCreateInstanceEx)
•在特定的供应商的OPC条目定义(名称服务器的地址空间中的特定数据项)
这是讨论这个客户端程序的架构和用户界面上的影响超出了本规范的的范围。
2.7同步和序列化问题
由“同步”,我们指的是客户端的能力,读或写在一个单一的交易值和属性。
例如,大多数应用程序,以确保特定项目的价值,质量和时间戳记属性“同步”。
此外,报告程序,可能要确保一组的几个值,读了“批报告”的一部分,实际上同一批次的一部分。
最后,配方下载包要确保组中的所有值一起被送往配方没有启动,直到所有的值已收到。
这些只是几个例子,同步是很重要的。
简短的回答是,OPC的本身并不能保证所有这些同步任务可以完成。
将需要额外的握手和客户端应用程序和设备服务器之间传递信号“准备”和“完成”等国家的标志。
也有事情,需要指定OPC服务器的行为,以确保OPC不会阻止正在做这种同步。
这将被视为后的OPC允许明确读取和写入项目或个别项目的团体以及异常数据连接(OnDataChange)。
不太远向前跳跃,它有可能使一些一般性的意见,对这些问题和有关服务器的行为。
1。
OPC服务器在一般