OPC Data Access Custom Interface Specification 2.04
Data Access Custom Interface
Standard
Version 2.05
December 17, 2001
TM
OPC Data Access Custom Interface Specification 2.05
ii
Synopsis:
This specification is the specification of the interface for developers of OPC
Data Access clients and OPC servers.. The specification is a result of an
analysis and design process to develop a standard interface to facilitate the
development of servers and clients by multiple vendors that shall inter-operate
seamlessly together.
Trademarks:
Most computer and software brand names have trademarks or registered
trademarks. The individual trademarks have not been listed here.
Required Runtime Environment:
This specification requires Windows 95, Windows NT 4.0 or later
Specification Type Industry Standard Specification
Title: OPC Data Access Custom
Interface Specification
Date: December 17,
2001
Version:
2.05 Soft MS-Word
Source:
opcda205_cust
Author:
Opc Foundation Status:
Released
OPC Data Access Custom Interface Specification 2.05
iii
NON-EXCLUSIVE LICENSE AGREEMENT
The OPC Foundation, a non-profit corporation (the “OPC Foundation”), has established a set of standard
OLE/COM interface protocols intended to foster greater interoperability between automation/control
applications, field systems/devices, and business/office applications in the process control industry.
The current OPC specifications, prototype software examples and related documentation (collectively, the
“OPC Materials”), form a set of standard OLE/COM interface protocols based upon the functional
requirements of Microsoft’s OLE/COM technology. Such technology defines standard objects, methods,
and properties for servers of real-time information like distributed process systems, programmable logic
controllers, smart field devices and analyzers in order to communicate the information that such servers
contain to standard OLE/COM compliant technologies enabled devices (e.g., servers, applications, etc.).
The OPC Foundation will grant to you (the “User”), whether an individual or legal entity, a license to use,
and provide User with a copy of, the current version of the OPC Materials so long as User abides by the
terms contained in this Non-Exclusive License Agreement (“Agreement”). If User does not agree to the
terms and conditions contained in this Agreement, the OPC Materials may not be used, and all copies (in
all formats) of such materials in User’s possession must either be destroyed or returned to the OPC
Foundation. By using the OPC Materials, User (including any employees and agents of User) agrees to be
bound by the terms of this Agreement.
LICENSE GRANT:
Subject to the terms and conditions of this Agreement, the OPC Foundation hereby grants to User a non-
exclusive, royalty-free, limited license to use, copy, display and distribute the OPC Materials in order to
make, use, sell or otherwise distribute any products and/or product literature that are compliant with the
standards included in the OPC Materials.
All copies of the OPC Materials made and/or distributed by User must include all copyright and other
proprietary rights notices include on or in the copy of such materials provided to User by the OPC
Foundation.
The OPC Foundation shall retain all right, title and interest (including, without limitation, the copyrights) in
the OPC Materials, subject to the limited license granted to User under this Agreement.
WARRANTY AND LIABILITY DISCLAIMERS:
User acknowledges that the OPC Foundation has provided the OPC Materials for informational purposes
only in order to help User understand Microsoft’s OLE/COM technology. THE OPC MATERIALS ARE
PROVIDED “AS IS” WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING,
BUT NOT LIMITED TO, WARRANTIES OF PERFORMANCE, MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. USER BEARS ALL RISK RELATING
TO QUALITY, DESIGN, USE AND PERFORMANCE OF THE OPC MATERIALS. The OPC
Foundation and its members do not warrant that the OPC Materials, their design or their use will meet
User’s requirements, operate without interruption or be error free.
IN NO EVENT SHALL THE OPC FOUNDATION, ITS MEMBERS, OR ANY THIRD PARTY BE
LIABLE FOR ANY COSTS, EXPENSES, LOSSES, DAMAGES (INCLUDING, BUT NOT LIMITED
TO, DIRECT, INDIRECT, CONSEQUENTIAL, INCIDENTAL, SPECIAL OR PUNITIVE DAMAGES)
OR INJURIES INCURRED BY USER OR ANY THIRD PARTY AS A RESULT OF THIS
AGREEMENT OR ANY USE OF THE OPC MATERIALS.
OPC Data Access Custom Interface Specification 2.05
iv
GENERAL PROVISIONS:
This Agreement and User’s license to the OPC Materials shall be terminated (a) by User ceasing all use of
the OPC Materials, (b) by User obtaining a superseding version of the OPC Materials, or (c) by the OPC
Foundation, at its option, if User commits a material breach hereof. Upon any termination of this
Agreement, User shall immediately cease all use of the OPC Materials, destroy all copies thereof then in its
possession and take such other actions as the OPC Foundation may reasonably request to ensure that no
copies of the OPC Materials licensed under this Agreement remain in its possession.
User shall not export or re-export the OPC Materials or any product produced directly by the use thereof to
any person or destination that is not authorized to receive them under the export control laws and
regulations of the United States.
The Software and Documentation are provided with Restricted Rights. Use, duplication or disclosure by
the U.S. government is subject to restrictions as set forth in (a) this Agreement pursuant to DFARs
227.7202-3(a); (b) subparagraph (c)(1)(i) of the Rights in Technical Data and Computer Software clause at
DFARs 252.227-7013; or (c) the Commercial Computer Software Restricted Rights clause at FAR 52.227-
19 subdivision (c)(1) and (2), as applicable. Contractor/ manufacturer is the OPC Foundation, P.O. Box
140524, Austin, Texas 78714-0524.
Should any provision of this Agreement be held to be void, invalid, unenforceable or illegal by a court, the
validity and enforceability of the other provisions shall not be affected thereby.
This Agreement shall be governed by and construed under the laws of the State of Minnesota, excluding its
choice or law rules.
This Agreement embodies the entire understanding between the parties with respect to, and supersedes any
prior understanding or agreement (oral or written) relating to, the OPC Materials.
OPC Data Access Custom Interface Specification 2.05
v
Revision 2.05 Highlights
This revision includes numerous clarifications to Section 4.2.13 regarding data conversion between Native
and Requested data types.
Revision 2.04 Highlights
This revision includes additional minor clarifications to certain ambiguities which were discovered during
Interoperability sessions and during the development of the Compliance Test. The affected sections include:
TimeBias and DeadBand discussion in Group Object: General Properties (4.5.1). LocaleID for SetState (to
make it clear the behaviour is optional). Addition or Clarification of error returns E_INVALIDARG and
S_FALSE return for GetItemProperties, LookupItemIDs, AddItems, ValidateItems, RemoveItems,
SetActiveState, SetClientHandles, SetDataTypes, both SyncIO and AsyncIO Read and Write. In particular
for S_FALSE: change 'was partially successful' to 'completed with one or more errors'. This now clearly
implies that the method outputs (specifically the ppErrors returns) are defined in this case. Other
adjustments to the text were to make error returns more consistant across functions. Clarify GetItemID
behavior. In Refresh2 and IOPCDataCallback::OnDataChange the Transaction ID parameter is clarified.
Specifically: 0 is an allowed value. See also the introduction to OPCAsyncIO (4.5.6). Also add section
4.2.14 as a general discussion of Client and Server responsibilites regarding LocaleID.
Revision 2.03 Highlights
This revision includes minor clarifications to the Deadband discussion (4.5.1.6). It also clarifies the
behavior of empty enumerators; The descriptions of IOPCServer::CreateGroupEnumerator and
IOPCBrowseServerAddressSpace::BrowseAccessPaths have been clarified and corrected. They are now
consistant with the existing description of IOPCBrowseServerAddressSpace::BrowseOPCItemIDs.
Revision 2.02 Highlights
This revision includes minor clarifications to the OPCItemProperties Interface discussions (4.4.6),
GroupStateMgt::SetState (4.5.3.2) and the old (1.0) Stream Marshalling Discussion (4.6.4.6).
Revision 2.01 Highlights
This revision includes clarifications to the dwAccessRightsFilter in IOPCBrowseServerAddressSpace and
also the discussion of access rights in general (section 6.7.6).
Revision 2.0 Highlights
This revision includes enhancements to the 1.0A Specification. Although changes were made throughout
the document, the following areas are or particular importance:
• This is now refered to as the OPC Data Access Specification as there are other OPC efforts underway.
• The Automation Interface specification has been separated into a separate document.
• All previous (1.0A) Custom Interfaces remain in place and unchanged except for minor clarifications.
• Async and exception based connections should now be done using ConnectionPoints rather than
IDataObject. The existing IOPCAsyncIO, IDataObject and Client side IAdviseSink interfaces support
‘old style’ (Version 1.0) connections. The new IOPCAsyncIO2, IConnectionPointContainer and Client
side IOPCDataCallback interfaces support the ‘new style’ Version 2.0 connections.
• The behavior of the existing IOPCAsyncIO, IDataObject and Client side IAdviseSink interfaces is
unchanged however their support is optional for OPC 2.0 complaint software. The new
IOPCAsyncIO2, IConnectionPointContainer and Client side IOPCDataCallback interfaces are required
for 2.0 compliant software.
• A new ‘convenience’ interface is defined. IOPCItemProperties allows easy access to common and
vendor specific properties or attributes of an Item or Tag.