Express Interface Information about the OPC Xi Specification and OPC Xi Products
Skip Navigation Links
Xi Specification Expand   Xi Specification
Xi Overview Expand   Xi Overview
Public License
News
Demo ApplicationsExpand Demo Applications
Vendor InformationExpand Vendor Information

IResourceDiscovery Contract

This interface is composed of methods used to:
- initiate a context with the server,
- read the server's MIB,
- discover objects, alarms, and events supported by the server,
- create lists within the server of selected objects, alarms, or events, and
- create read and write endpoints and add one or more lists to them.

 

Context Management

Initiate

This method is used to establish a context between the client and the server. The server must authenticate the client when this method is called.
Once created, the context is capable of multiplexing concurrent WCF connections to Xi endpoints. In some cases, there may be more than one instance of the Read or Write endpoints (see the CreateEndpoint() method for more information about endpoints.
If the WCF connection to the Resource Discovery Endpoint is inadvertently disconnected, the client can prevent the context from timing-out and automatically closing by calling the ReInitiateContext() method.
Heritage: This method corresponds to the Initiate service defined by the ISO 9506 Manufacturing Messaging Specification (MMS) that is used to open an MMS environment between the client and server.
The term "context" is taken from IEC 61158 IEC 61158-5-9: Digital data communications for measurement and control -- Fieldbus for use in industrial control systems -- Part 5-9: Application layer service definition -- Type 9 elements. This specification derives its context object from the MMS Environment.
 

ReInitiate

This method is used to reinitate an existing context after a failure of the underlying WCF connection. The server must reauthenticate the client when this method is called.  

Conclude

This method is used to close a context. When the context is closed, all resources/endpoints associated with the context are released.
Heritage: This method corresponds to the Conclude service defined by the ISO 9506 Manufacturing Messaging Specification (MMS) that is used to close the MMS environment between the client and server.
 

ClientKeepAlive

To prevent a client - server context from timing out it is necessary to invoke a method that requires a Context Id within the timeout interval. This method provides a very low overhead method to keep a context alive when a client has no other actions to perform. A common situation may be where the client has setup ICallback to monitor data values.  

Discovery

Identify

This method is used to get the description of the server. This method can be called before a context has been established with the server.
Heritage: This method corresponds to the Identify service defined by the ISO 9506 Manufacturing Messaging Specification (MMS).
  

Status

This method is used to get the state of the server. The client can also register for changes in the ServerState by adding it to a data object list. See the ServerStateId class for the definition of the Object Id of the ServerState object.
Heritage: This method corresponds to the Status service defined by the ISO 9506 Manufacturing Messaging Specification (MMS).  

LookupResultCodes

This method returns text descriptions of error codes.
Heritage: This method corresponds to the Microsoft errlook.exe utility.
 

FindObjects

This method is used to find objects in the server. The client uses the findCriteria parameter to identify a starting branch and a set of filter criteria. It also specifies the maximum number of objects to return.
The server examines the objects that are children of the specified branch and selects those that match the filter criteria. Note that "children" are objects whose root paths can be created by appending their names to the path used to identify the starting branch.
The base object attributes of the selected objects are returned to the client. The number returned is limited by the number specified in the numberToReturn parameter. If the number returned is less than than that number, then the client can safely assume that the server has no more to return.
However, if the number returned is equal to that number, then the client can retrieve the next set of results by issuing another FindObjects() call with the findCriteria parameter set to null. A null findCriteria indicates to the server to continue returning results from those remaining in the list. The client eventually detects the end of the list by receiving a response that returns less than specified by the numberToReturn parameter.
Heritage: This method is based on the List service of the ISO 9594-1 Information technology -- Open Systems Interconnection -- The Directory: Overview of concepts, models and services. ISO 9594 also defines the object hierarchy model that is used by the server.  

FindTypes This method is used to find type definitions in the server. The client uses the findCriteria parameter to identify a starting branch and a set of filter criteria. It also specifies the maximum number of types to return.

FindRootPaths

Each discoverable object in the server has at least one path to the root (called the root path). A root path is represented by an ordered list of object names beginning with "Root" and ending with the name of the object.
This method identifies an object by one of its root paths and requests the server to return any additional root paths that exist. If there are no other root paths that can be used to reach the object, then null is returned.  

GetTypeAttributes

This method is used to get the description of a data type or an object type. This description is intended to be used by the client to understand the semantics and composition of the data type or object type. It cannot be used for standard data types.
Heritage: This method is derived from the GetNamedTypeAttributes service defined by the ISO 9506 Manufacturing Messaging Specification (MMS). It has been adapted to also apply to Object Types.  

GetStandardMib

This method is used to read the standard MIB.
Heritage: This method corresponds to the IETF RFC 1157 Simple Network Management Protocol Get-Request PDU, with the exception that there is only one standard MIB object, so a list of MIB Object Ids is not required.
  

GetVendorMib

This method is used to read the vendor-specific MIB objects.
Heritage: This method corresponds to the IETF RFC 1157 Simple Network Management Protocol Get-Request PDU.  


Endpoint Management

AddListToEndpoint

This method adds one or more lists to an endpoint.  

RemoveListsFromEndpoint

This method removes one or more lists from an endpoint.  

 

List Management

DefineList

This method is used to create a list of data objects or alarms/events within the context.
Heritage: Data object lists correspond to Named Variable Lists as defined by the ISO 9506 Manufacturing Message Specification (MMS), with the exception that the server provides the name of the list as an alias.
Alarms/events correspond to Alarm Lists described in EEMUA Publication 191 "Alarm Systems: A Guide to Design, Management and Procurement". See http://www.eemua.org
They are implemented by the Microsoft .NET Framework List class.
 

DeleteLists

This method deletes a list. It does not, however, delete the elements of the list from the server.
Heritage: This method is adapted from the DeleteNamedVariableList service defined by the ISO 9506 Manufacturing Messaging Specification (MMS). It has been adapted to also apply to Event Lists.  

GetListAttributes

This method gets the attributes of a list.
Heritage: This method is adapted from the GetNamedVariableListAttributes service defined by the ISO 9506 Manufacturing Messaging Specification (MMS). It has been adapted to also apply to Event Lists.  

ModifyListAttributes

This method is used to change the filters and attributes of a list. The new filters replace the old filters if they exist.  

AddDataObjectsToList

This method is used to add objects to a list. Objects are added with updating of their values by the server disabled. Updating of values by the server can be enabled using the EnableListUpdating() method.
Heritage: This method is derived from the Add method of the more generic List class defined by the Microsoft .NET Framework.  

RemoveDataObjectsFromList

This method is used to remove members from a list. It does not, however, delete the corresponding data object from the server.
Heritage: This method is derived from the Remove method of the more generic List class defined by the Microsoft .NET Framework.  

AddEventMessageFields

This method is used to request that category-specific fields be included in event messages generated for alarms and events of the category for the specified Event/Alarm List.  

EnableListUpdating

This method can be used to enable or disable updating of an entire list. When this method is called, the enabled state of the list is changed, but the enabled state of the individual elements of the list is unchanged.  

EnableListElementUpdating

This method can be used to enable or disable updating of individual elements of a list. If the server aliases parameter is null, then all elements of the list are enabled/disabled. This call does not change the enabled state of the list itself.  

TouchDataObjects

This method is used to cause one or more data objects of a list to be "touched". This method cannot be used with event lists.
Touching a data object causes the server to update the data object, mark it as changed independent of the deadband, and then return it to the client in the next callback.
When wrapping an OPC DA Server the touch results in an Async Read to the OPC DA Server the On Read Complete then results in an On Data Change callback to the XI Client.
Touching a Data Object applies for both Poll Reads and On Data Change callbacks.
Heritage: The concept of touch is derived from the POSIX (IEEE Std 1003.1-2008) touch utility that causes file access and modification times to be changed, thus forcing them to be included in the next compile.

TouchList

This method is used to cause a list to be "touched".
For lists that contain data objects, this method causes the server to update all data objects in the list, mark them as changed, and then return them all to the client in the next callback.
For lists that contain events, this method causes the server to mark all alarms/event in the list as changed, and and then return them all to the client in the next callback.
When wrapping an OPC DA Server the touch results in an Asych Refresh to the OPC DA Server the resulting On Data Change then results in a On Data Change to the XI Client.
Touching applies to both Poll Read and On Data Change callbacks.
Heritage: The concept of touch is derived from the POSIX (IEEE Std 1003.1-2008) touch utility that causes file access and modification times to be changed, thus forcing them to be included in the next compile.  

 

Alarm and Events

GetAlarmSummary

This method is used to request summary information for the alarms that can be generated for a given event source.
Heritage: This method is adapted from the GetAlarmSummary service defined by ISO 9506 Manufacturing Message Specification.  

 

 

 

Xi Vendors

Advosol Inc.

Emerson DeltaV


InduSoft


TIPS


Mobiform


MYNAH Technologies


Smar




Product Overview


White Papers






 
Copyright © 2009-2010 Advosol Inc. All Rights Reserved.