Main Content

writeasync

(Not recommended) Asynchronously write values to group or items

Support for the OPC Data Access (DA) standard will be removed in a future release. Instead use OPC Unified Architecture (UA). See Compatibility Considerations.

Syntax

TransID = writeasync(GObj,Values)
TransID = writeasync(IObj,Values)

Description

TransID = writeasync(GObj,Values) asynchronously writes values to all the items contained in the dagroup object GObj. Values is a cell array of values and is the same size as the number of items in GObj. TransID is a unique transaction ID for the asynchronous request.

TransID = writeasync(IObj,Values) asynchronously writes values to all the items contained in the vector of daitem objects specified by IObj.

To ensure that a specific value is written to the correct item object, you should construct the Values cell array based on the order of the items returned by the Item property. Because the values are written to the device, this operation might be time consuming.

The data types of the values do not need to match the canonical data type of the associated items. If a data type conversion cannot be performed, a warning is issued.

When the asynchronous write operation completes, a write async event is generated by the server. If a callback function file is specified for the WriteAsyncFcn property, then the function executes when the event is generated.

Note

The behavior of an OPC server when writing NaN to an item is server-dependent. If you attempt to write NaN to an OPC server, the value might be silently ignored by the OPC server. That is, the server might not generate any events in response to writing NaN to an item.

Examples

Configure a client, group, and items, for the Matrikon™ Simulation Server:

da = opcda('localhost', 'Matrikon.OPC.Simulation');
connect(da);
grp = addgroup(da, 'ExWrite');
itm = additem(grp, {'Bucket Brigade.Real8', ...
    'Bucket Brigade.String'});

Configure the WriteAsyncFcn callback to read from the group:

grp.WriteAsyncFcn = 'r=read(grp,''device'')';

Write values asynchronously to the group:

writeasync(grp, {123.456, 'MATLAB is great!'})

Version History

Introduced before R2006a

expand all