myavr.info Laws Opc Da 3.00 Specification.pdf

OPC DA 3.00 SPECIFICATION.PDF

Sunday, June 30, 2019


Download: OPC Data Access (OPC DA) Specification. OPC is a series of standards specifications. The first standard (originally called simply the OPC. +, OPC Alarms & Events (OPC AE) Specification (4, kb, PDF) +, OPC Data Access (OPC DA) Specification (7, kb, PDF). OPC DA Specification - Ebook download as PDF File .pdf), Text File .txt) or read book online.


Opc Da 3.00 Specification.pdf

Author:OSSIE ELDRIDGE
Language:English, Spanish, Indonesian
Country:Lebanon
Genre:Religion
Pages:721
Published (Last):09.06.2015
ISBN:896-2-58152-713-7
ePub File Size:28.38 MB
PDF File Size:14.25 MB
Distribution:Free* [*Regsitration Required]
Downloads:25496
Uploaded by: ENOLA

Documentation Type. Industry Standard Specification. Title: OPC Data Access Automation. Specification. Date: February 3, Version: Soft. MS-Word. OPC DA Specification_电子/电路_工程科技_专业资料。OPC Data Access Custom Interface Specification FOUNDATION Data Access. OPC DA - This document will describe the Interfaces and Methods of OPC Components and Objects. This OPC Data Access specification1 contains design .

Servers which support arrays must implement conversion logic using additional code.

The same applies for I2 and I4. For purposes of compliance either round up or round down is acceptable when the fraction exactly equals.

This is an incorrect behavior by ChangeVariantTypeEx. For Write. Experience has shown that some floats and doubles with a fraction exactly equal to. These conversions are supported by VariantChangeTypeEx. For the TIME the fraction represents the time of day moving ahead from midnight e.

Client programs and users should be aware that most servers will exhibit this behavior since most servers will use VariantChangeTypeEx.

Conversions between types with different numbers of bits e. So an I1 of —1 turns into a UI1 of Note that in the case of Data Access.

GetProperties method. As a result. Analog Inputs. The formating of numbers. These interfaces can be used by clients to browse the available properties also referred to as attributes or parameters associated with an ITEMID and to read the current values of these properties.

Localization is important not just for error strings and messages. These record items would have properties like current value. It differs from these interfaces in two important respects. These methods provide a way to easily determine if such an alternate method of It also allows such information to be read without the need to create and manage OPCGroups.

It is also potentially important for values that are read or written as strings. Servers can easily use the function VariantChangeTypeEx to accomplish this. So for example. The generally expected behavior is that the Client will query the server for the Locales it supports and will chose one to use via SetLocaleID or a similar function. The Client should expect that the server will return strings which are translated and formatted according to the LocaleID in effect for the object e.

However certain issues require some discussion. Rather it is intended to allow an application to easily browse and read small amounts of additional information specific to a particular ITEMID. He would select the properties he wanted to see from the list. DESC or even A Refer to each method definition for the behavior description. These include. All of these properties are associated with each other by virtue of their common association with FIC Given a list of Item Property IDs.

For example an Analog Input function block might have a value. Line" hierarchy however for the moment we will ignore this as it is not relevant to this discussion.

A system like the one above i. Another way to look at this is that things. CV or A The resulting list would be presented to the user. It is not intended to impose any particular structure on any server implementation. Examples This is just an example.

These properties. Note that the A item could in fact be embedded in a higher level "Plant. This could represent the current value of a tag or function block called FIC The general intent of these methods is to provide the following functions: Timestamp and Quality. These might have ItemIDs of F Passing any of these ItemIDs to DESC as 'children'. The client would pass this set to GetItemProperties to get a 'snapshot' of the data.

This interface provides a convenient shortcut to accessing those related properties. This function block could also have alarm limits and status. In other words.

This function block commonly has other properties associated with it such as Engineering Units. H file. This allows the client to more easily manage the list of properties it wants to access. Note again that this interface is NOT intended to allow efficient access to large amounts of data. The vendor specific properties should use ID codes above An MMI package for example might use these methods to allow the user to indicate that the Hi and Lo Engineering Units values should be used to scale a bar graph representation of the value.

GetProperties would also produce the same results for the values of each attribute. Servers that provide the corresponding properties. This includes information directly related to the OPC Server for the system. Symbolic equates for these properties are provided in the OPCProps. OPC Specific Properties.

The one thing that would be different would be that passing any of the 8 reserved property IDs would fetch information related to the specific ItemID i. ID Set 1. GetProperties would also give the same result in each case in that it would return the ItemIDs mentioned here. Note that because these associations can be 'many to many' and can also be circular.

GetProperties would likely produce the same result. See Appendix to this document. SetLocaleID will be used by the server to localize any data items returned as strings. The item descriptions are not localized. It is NOT intended that property browsing be hierarchical. The assigned IDs for the first two sets are fixed.

This represents the fastest rate at which the server could obtain data from the underlying data source. The nature of this source is not defined but is typically a DCS system.

This includes additional ranges of values that are reserved for use by other future OPC specifications. This is additional information which is commonly associated with ITEMs. For information about the newest field ID assignments. Recommended Properties. This represents a string to be associated with this contact when it is in the open zero state e.

This represents the lowest value that can be returned by the instrument. This represents a string to be associated with this contact when it is in the closed non-zero state e. This represents the highest value likely to be obtained in normal operation and is intended for such use as automatically scaling a bargraph display.

This represents the highest value that can be returned by the instrument. This represents the lowest value likely to be obtained in normal operation and is intended for such use as automatically scaling a bargraph display. A server can provide any subset of these values or none of them. MID Additional IDs may be added without revising the interface ID. They do not need to be sequential. The Value and Quality are the values that the server has in cache. The Values and Quality for the requested items are returned to the client as return values from the method.

The Value and Quality are the values that the server obtains from the device when this method is called. ID codes for these properties must have values of or greater. Read Cache NA The Values and Quality for the requested items are returned to the client as return values from the method.

ID Set 3. Different vendors may not provide the same information for IDs of and above. Clients should be prepared to deal with this.

The cache of the server should be updated with the acquired value and quality. The client should take care dealing with these vendor specific IDs. OnDataChange method. OnReadComplete method. The cache of the server should be updated with the acquired values and qualities. The Values and Quality for all the InActive items in the group are not provided to the client.

The Value and Quality are the values that the server obtains from the device at a periodic rate sufficient to accommodate the specified UpdateRate. If the Quality has changed from the Quality last sent to the client, then the new value and new quality will be sent to the client through the IOPCDataCallback:: OnDataChange method, and the cache of the server should be updated with the acquired value and quality.

If the Quality has NOT changed from the Quality last sent to the client, the server should compare the acquired value for a change that exceeds the Deadband criteria. If the change in value exceeds the deadband criteria, , then the new value and new quality will be sent to the client through the IOPCDataCallback:: Server only acquires values from physical data sources for active items.

OnDataChange NA. Server only acquires values from physical data sources for active items that are contained in active groups. If the Quality has changed from the Quality in the cache, then the cache of the server should be updated with the acquired value and quality.

If the Quality has NOT changed from the Quality in the cache, the server should compare the acquired value for a change that exceeds the Deadband criteria. If the change in value exceeds the deadband criteria, , then the cache of the server should be updated with the acquired value and quality. The interfaces that this object provides include: The functionality provided by each of the above interfaces is defined in this section.

Version 1. This was an error and has been removed. The semantics of QueryInterface do not allow such an implementation. Since this is a well defined interface it is not discussed in detail. This interface must be provided, and all functions implemented as required by Microsoft..

That is, as with a Group definition, the actions of one client do not affect any other clients. A quick reference for this interface is provided below. Client Specifies the fastest rate at which data changes may be sent to OnDataChange for items in this group. The name must be unique among the other groups created by this client. Parameters szName Description Name of the group. If no name is provided szName is pointer to a NUL string the server will generate a unique name.

This also indicates the desired accuracy of Cached Data. Description Add a Group to a Server. TRUE if the Group is to be created as active. How the server deals with the update rate and how often it actually polls the hardware internally is an implementation detail. Client provided handle for this group. The OPC server is registered with the operating system as specified in the Installation and Registration Chapter of this specification.

This interface must be provided. This is intended only to control the behavior of the interface. Passing 0 indicates the server should use the fastest practical rate. The rate is specified in milliseconds. The interface riid asked for is not supported by the server. The type of interface desired e. The server returns the value it will actually use for the UpdateRate which may differ from the RequestedUpdateRate. Server does not support requested rate.

Duplicate name not allowed. The operation failed. Place to store the unique server generated handle to the newly created group. A NULL pointer is equivalent to 0. Not enough memory An argument to the function was invalid. This parameter only applies to items in the group that have dwEUType of Analog. The percent change in an item value that will cause a subscription callback for that value to a client. This could also include such things as alarm or status conditions or digital contact states.

Note that this may also be slower than the rate at which the server is internally obtaining the data and updating the cache.

The client will use the server provided handle for many of the subsequent functions that the client requests the server to perform on the group. See also the CreateGroupEnumerator function. The level of localization supported dwLCID is entirely server specific. One way for the server to implement this is to assign the group an initial reference count of 2.

The client expects that for the same server configuration or workspace. If the client requests an optional interface that the server does not support. Even if all the interfaces are released. This should not be necessary for a well-behaved client. Comments The expected object lifetime behavior is as follows. The client should not call RemoveGroup without releasing all interfaces for the group.

The client should also not release the server without removing all private groups. Parameters dwError Description A server specific error code that the client application had returned from an interface function from the server.

Note that if this method is called on a remote server. The operation succeeded. The Client must free the returned string. To get the default value for the system. Description Returns the error string for a server specific error code. The locale for the returned string. It is recommended that the server put any OPC specific strings into an external resource to simplify translation.

For this reason it is probably good practice for the client to attempt to call a local Win32 function if this function fails. The expected behavior is that this will include handling of Win32 errors as well such as RPC errors. If needed. Parameters szName riid ppUnk Description The name of the group.

Comments This function can be used to reconnect to a private group for which all interface pointers have been released. The client must release the returned interface when it is done with it.

That is the group must have been created by the caller. The type of interface desired for the group e. Description Given the name of a private group created earlier by the same client. Client must free the structure as well as the VendorInfo string within the structure.

The structure is allocated by the server. Description The operation failed. Description Returns current status information for the server. Periodic calls to GetStatus would be a good way for the client to determine that the server is still connected and available.

Remove group will mark the group as 'deleted'. For historical reasons the following rules also exist. Group will be marked as deleted. It is very strongly recommended that clients follow this guideline to insure reliable operation. The client may still call GetGroupByName after all the interfaces have been released. Comments A group is not deleted when all the client interfaces are released.

OPC Data Access Custom Interface Specification Version 3.0

However newly coded clients should not rely on the following information but should follow standard COM practice as noted above. The bForce flag is supported only for backwards compatibility. It is very strongly recommended that client software avoid use of this flag.

A well behaved COM client should call this function only after either completing or canceling all outstanding async operations.

Was not removed because references exist. If interfaces still exist. Use of the bForce flag is subject to the following rules. When all the interfaces are released. Subsequent use of such interfaces by the client will result in an access violation. If bForce is TRUE then the group is deleted unconditionally even if client references interfaces still exist.

After a return from RemoveGroup any use. However this behavior has been found to be difficult or impossible to implement in practice. Where to return the interface. The description here represents a simplification of this behavior. Description Create various enumerators for the groups provided by the Server.

OPC DA 3.00 Specification

IEnumUnknown creates an additional interface pointer to each group in the enumeration even if the client already has a connection to the group. There is nothing to enumerate there are no groups which satisfy the request. For this reason. However an empty Enumerator is still returned and must be released. OPC Compliant servers are not required to support more than one connection between each Server and the Client.

The reader is assumed to be familiar with this technology. Likewise the details of the IEnumConnectionPoints. Given that servers are client specific entities it is expected that a single connection will be sufficient for virtually all applications.

The general principles of ConnectionPoints are not discussed here as they are covered very clearly in the Microsoft Documentation. Additional vendor specific callbacks are also allowed.

Description The function was successful. Parameters ppEnum Description Where to save the pointer to the connection point enumerator. See the Microsoft documentation for a discussion of IConnectionPoint. If this is a secondary call to Browse. The methods in this interface are designed to mirror the corresponding methods in the XML-DA interface. If the root branch is to be browsed then a NUL string is passed. On subsequent calls.

A flat space will always be presented to the client as not having children. A hierarchical presentation of the server address space would behave much like a file system. It is assumed that the underlying server address space is hierarchical. A hierarchical space can be presented to the client as either not having children or having children.

Clients must pass a NUL string in the initial call to Browse. This is an opaque This browse can also be filtered by a vendor specific filter string. An array of Property IDs to be returned with each element.

If the server supports Continuation Points. If dwMaxElementsReturned is 0 then there is no client side restriction on the number of returned elements. A server specific filter string. The size of the pdwPropertyIDs array. The Continuation Point will allow the Client to resume the Browse from the previous completion point. A pointer to a NUL string indicates no filtering. If the server does not support Continuation Points.

Server must return the property values in addition to the property names. The size of the returned ppBrowseElements array. If true. This is entirely free format and may be entered by the user via an EDIT field. A NUL String implies no filter. Server must return all properties which are available for each of the returned elements. Refer to individual error returns for more information.

The filter string element or vendor is not valid. The szItemID does not conform to the server's syntax. The specified continuation point is not valid. The item is not known to the server.

The operation succeeded but there are one or more errors in ppBrowseElements. If the level specified szItemID is valid. An item that is not a branch A branch that has children. The Flag Values. Comments See section 6. If the filter criteria result in an empty result. An invalid argument was passed. The operation could not be executed due to memory limitations. The operation succeeded but there are one or more errors in ppItemProperties. The function failed. Not enough Memory.

If NULL. The array of item IDs for which the caller wants properties. Some servers maintain a global cache for all clients. Description Reads one or more values. In this case MaxAge is not relevant. A list of fully qualified ItemIDs. Read method. Programmers should be aware that in most servers. Without existence of a cache the server will always read from device. For each item that has not been updated within the last MaxAge milliseconds.

Or if the item is not available from the cache. If the needed item is in this global cache. The server will calculate. A second purpose of this interface is to provide a method for writing timestamp and quality information into servers that support this functionality.

In terms of performance. Servers should not automatically create or change the caching of This indicates whether the read succeeded in obtaining a defined value. Note that these must be freed by the client. The operation succeeded but there are one or more errors in ppErrors. Note that the array and its contained variants must be freed by the client after receipt.

An array of Words in which to store the Quality of each result. Vendor specific information can be provided if this item quality is other than GOOD. The Read failed for this item The item is not readable The item is no longer available in the server address space. These vendor specific codes can be passed to GetErrorString.

Vendor specific error if this item cannot be accessed. The ItemID doesn't conform to the server's syntax. This functionality is in place to prevent the server from recursively attempting to obtain the values. Be sure to call VariantClear on the variants in the Values before freeing the memory containing them. Once this item is obtained. Some servers may return always the actual value.

The client is responsible for freeing all memory associated with the out parameters. If a client attempts to write VQ. WriteVQT except that there is no associated group. True indicates write. The list of errors resulting from the write 1 per item. There is a Boolean value associated with each Quality and Timestamp.

Each structure will potentially contain a value. The list of ItemIDs to be written. Description Writes one or more values. If writing the timestamp is supported by the server.

The passed data type cannot be accepted for this item The item is not writeable The item is no longer available in the server address space The item ID doesn't conform to the server's syntax. If a client attempts to write any value. There is no way to validate the writing of the timestamp.

The value was out of range. The function was unsuccessful. The value was accepted but was clamped. Writing timestamps is generally expected to be used for values which are in some sort of manual override mode or for values which are in some form of holding register. Descriptive information for such errors can be obtained from GetErrorString.

In general it is not useful to write timestamps for values which are actually being generated or scanned by the device since the device will generally re-stamp the data each time it is generated or scanned. Vendor specific errors may also be returned. This section also identifies the interfaces required to be implemented to support the OLE mechanism for delivering a COM interface. It is also expected that clients will simply set and clear active flags of groups and items as a more efficient alternative to adding and removing entire groups and items.

The state of these flags affects the described behavior of various interfaces in a well defined way. The way the functions described below behave differs slightly based on which source is specified.

The server can return values and quality flags for those items within the group that changed this will be discussed more in later sections.

OnDataChange within the client's address space can be called whenever any active data item in a active group changes. Refer to the Data Acquisition and Active State Behavior summary earlier in this document for a quick overview of the behavior of a client and server with respect to the active state of a group and items. In most cases. Group1 would be different from group1. In practice it is expected that most servers will make use of this flag to optimize their use of communications and CPU resources.

These are discussed here in order to minimize duplication. Changing the state of the group does not change the state of the items. Group names are Case Sensitive. For example if an operator display is minimized. Note again that although we sometimes make suggestions. As discussed earlier these terms are simply part of the interface definition.

The active state of the group is maintained separately from the active state of the items. The actual details of the implementation of this functionality are up to the server vendor. The name must be unique among the other groups that belong to that clientThe client can change the name of a group.

For example if a device is performing PID control at 0. In the case where an item has a different sampling rate than the update rate of the group. If the exception limit is exceeded. It is there only for the convenience of the client. The sampling rate associated with individual items does not effect the callback period. The server should never send data to a client at a rate faster than the client requests.

There is an implicit assumption in this design that the DST characteristics at the data site are the same as at the client site. The server should respond with an update rate that is as close as possible to that requested. The amount of data buffered is server dependent.

The default value for this is the time zone of the host computer. The purpose of the TimeBias is to indicate the timezone in which the data was collected which may occasionally be different from the timezone in which either the client or server is running. Note that this is NOT necessarily related to the server's underlying processing rate. The TimeBias is never changed 'behind the scenes' by the server. All the update rate indicates is that a callbacks should happen no faster than this and b the cache should be updated at at least this rate.

This time zone information may rarely be used and the device providing the data may not know its local time zone. If this is not the case. This determines the time between when the exception limit is checked. Then it will be useful to know what the time of the device was at the time the data was collected e. The OPCServer will not make use of this value. Note that the timestamp will be updated regardless of whether the cached value is updated.

An exception is determined as follows: Exception if absolute value of last cached value. Deadband will only apply to items in the group that have a dwEUType of Analog available. This range will be multiplied with the Deadband to generate an exception limit. If the dwEUType is Analog. This allows the client to identify the group to which the data belongs. The UpdateRate for a group or the sampling rate of the item.

It is expected that a client will assign unique value to the client handle if it intends to use any of the asynchronous functions of the OPC interfaces. If the client does not specify this value on a server that does support the behavior. The PercentDeadband is used to keep noisy signals from updating the client unnecessarily. The pPercentDeadband is an optional behavior for the server.

This means that each item can potentially override the PercentDeadband set for the group it resides within. It is intended that newer applications use OnDataChange.

There are five ways to write data out: WriteVQT This tells the client additional information about the item including the server assigned item handle and the canonical datatype.

These tell the server everything it needs to know about the item including the access path. For any item which failed it provides a reason. Description Add one or more items to a group. This tells the client which of the items was successfully added. Refer to individual error returns for failure analysis. The server provided item handle will be unique within the group.

The item's access path is not known to the server. This will generate a 2nd item with a unique ServerHandle. The client must be designed to deal with this.

Description The function was successful for this item. This can occur very quickly. One simple solution is for the client to clear the Active state of the group while doing AddItems and to restore it after the AddItems is completed and the results are processed. Note that if an Advise is active. The operation completed with one or more errors.

This tells the client additional information about the item including the canonical datatype. Not enough memory An argument to the function was invalid e. Description Determines if an item is valid could it be added without error.

This tells the client which of the items was successfully validated. Also returns information about the item such as canonical datatype. Does not affect the group in any way. The ItemID is not syntactically valid The ItemID is not in the server address space The requested data type cannot be returned for this item See comment The function was unsuccessful for this item. Basically this is the reverse of AddItems. An argument to the function was invalid e. These were returned from AddItem.

OPC Introduction

Description The corresponding item was removed. It simply indicates whether or not the client is interested in those particular items. See the ppErrors to determine what happened The function was unsuccessful.

The function completed with one or more errors. The client should insure that no further references are made to deleted items. Items are not really objects in the custom interface do not have interfaces. The corresponding Item handle was invalid. Indicates which items were successfully removed. Description Removes deletes items from a group. See the ppErrors to determine what happened An argument to the function was invalid e.

Activating items which were previously inactive must result in a callback at the next UpdateRate period FALSE if items are to be deactivated. TRUE if items are to be activated.

Deactivating items will not result in a callback since by definition callbacks do not occur for inactive items. This controls whether or not valid data can be obtained from Read CACHE for those items and whether or not they are included in the OnDataChange subscription to the group.

Indicates which items were successfully affected. Description Sets one or more items in a group to active or inactive. The Client handles do not need to be unique. Description Changes the client handle for one or more items in a group. Array of new Client item handles to be stored.

See the itemResults to determine what happened An argument to the function was invalid e. Comments In general. The requested datatype cannot be supported for this item. Description Changes the requested data type for one or more items in a group. Array of new Requested Datatypes to be stored. The previous requested type is left unchanged. See comment. Description The interface requested. There is nothing to enumerate There are no items in the group.

Primarily this allows changes to the update rate and active state of the group. Description The current update rate. The Update Rate is in milliseconds The current active state of the group. The current name of the group The TimeZone Bias of the group in minutes The percent change in an item value that will cause an exception report of that value to a client.

The client supplied group handle The server generated group handle. This information was all supplied by or returned to the client when the group was created. This function is also useful for debugging. All out arguments must be valid pointers. The marshaling mechanism requires valid pointers for proper behavior.

The client must free the returned ppName string. This handle is returned in the clients callback. New client supplied handle for the group. The percent change in an item value that will cause an exception report of that value to a client. TRUE non-zero to active the group. FALSE 0 to deactivate the group. TimeZone Bias of Group in minutes. The pRevisedUpdateRate argument must contain a valid pointer. Description Client can set various properties of the group.

Servers that do not support dynamic localization. The server does not support the requested data rate but will use the closest available rate. The name must be unique. Description Change the name of a group. Once the new group is created it is entirely independent of the old group. Requested interface type Place to return interface pointer. You can add and delete items from it without affecting the old group.

The client would need to establish new connections for the new group. The client should query for these if it needs them. Description Creates a second copy of a group with a unique name. New Item SeverHandles may also be assigned by the server. If no name is provided szName is a pointer to a NUL string the server will generate a unique name. All of the group and item properties are duplicated as if the same set of AddItems calls had been made for the new group.

See AddGroup for a discussion of Group object lifetime issues. As with AddGroup the group must be deleted with RemoveGroup when the client is done with it. Comments This represents a new group which is independent of the original group. The client must also release the returned interface when it is no longer needed. By providing callbacks at a minimum known frequency.

It is expected that Data Access 3. When a subscription has a non-zero keep-alive time. Description Clients can set the keep-alive time for a subscription to cause the server to provide client callbacks on the subscription when there are no new events to report. Clients can then be assured of the health of the server and subscription without resorting to pinging the server with calls to GetStatus.

Servers shall reset their keep-alive timers when real data is sent i. Using this facility. OnDataChange with dwCount set to zero. A value of zero indicates the client does not wish to receive any empty keep-alive callbacks. A bad parameter was passed. Keep-alive callbacks will not occur when the subscription is inactive. Description Returns the currently active keep-alive time for the subscription. A value of zero indicates the server will not send any empty keep-alive callbacks.

Parameters pdwKeepAliveTime Description The maximum amount of time in milliseconds between subscription callbacks. Description This function reads the value. Refer to the discussion of the quality bits later in this document for further information. The function runs to completion before returning. The errors correspond to the handles passed in phServer. Also refer to the Serialization and Syncronization issues section earlier in this document. The operations will run to completion.

The list of server item handles for the items to be read Array of structures in which the item values are returned. If either the group or the item is inactive. The Read failed for this item The item is not readable The passed item handle was invalid. The item is no longer available in the server address space. Depending on the details of the Refer to individual error returns for more infomation. The ppItemValues and ppErrors arrays are allocated by the server and must be freed by the client.

The function runs to completion. Description Writes values to one or more items in a group. However an error will be returned if a conversion cannot be done. The datatypes of the values do not need to match the datatypes of the target items. This indicates whether the target device or system accepted the value. Parameters dwCount phServer pItemValues Description Number of items to be written The list of server item handles for the items to be read List of values to be written to the items.

Depending on the details of the implementation e. The item is no longer available in the server address space Vendor specific errors may also be returned. The passed data type cannot be accepted for this item See comment The item is not writeable The passed item handle was invalid. The ppErrors array is allocated by the server and must be freed by the client.

The server will make the determination as whether the information will be obtained from the device or cache. If the information in the cache is within the MaxAge. The list of server item handles for the items to be read. The purpose of this interface is to provide a group level method for writing timestamp and quality information into servers that support this functionality.

This decision will be based upon the MaxAge parameter. Without existence Servers should not automatically create or change the caching of an item based on a Read call with MaxAge. Clients should not expect that a cache exists. The passed item handle was invalid. It is important only for remote access. The registration of OPC Server is optional.

This installation programs are called e. OPC Server Connect, etc. A OPC server registered by this way, of course, can't be run on the client side. Manual registration of the OPC server on the client side. Proceed as follows: Copy the OPC server from the computer where has been installed into an auxiliary directory on the client side computer. Run the command line from the directory. Register the OPC server. If the OPC server name is e. If the OPC server is only as. The auxiliary directory and files can be deleted.

Always study the OPC server manual from its manufacturer in details and confront it with the procedures described above. On both the local OPC client and remote OPC Server computer, there must be created the same user with the same password and the user must be logged on the client side or the KOM process running as Windows service must start up under the account of this user. Make sure that DCOM is enabled, i. In the list of components, select required OPC server and open the dialog box containing its parameters Properties.

Click the Security tab. Enable the options "Remote Launch" and "Remote Activation". The parameter Access permission set to Customize and click Edit In the "Identity" tab check whether "The launching user" or "This user" option is enabled, which is also the checking of user account that you configure.Client Specifies the fastest rate at which data changes may be sent to OnDataChange for items in this group. Deadband and Update Rate An array of Words in which to store the Quality of each result.

Since this is completely automatic and transparent it is not discussed further. OPC Unified GetProperties would also produce the same results for the values of each attribute. For example a vendor who mostly sells his own client and server components as a packaged system and for whom OPC Compatability represents a long term strategy will have less need to support multiple versions of the interfaces.

The client should UnAdvise all connections.

In practice it is expected that most servers will make use of this flag to optimize their use of communications and CPU resources. The information in the callback will indicate the transaction ID and the results of the operation.

PAULITA from Rhode Island
Look over my other articles. I enjoy high power rifle. I do love studying docunments knowingly.