This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.


Make copy of OPC data access object


NewObj = copyobj(Obj)
NewObj = copyobj(Obj, ParentObj)


NewObj = copyobj(Obj) makes a copy of all the objects in Obj, and returns them in NewObj. Obj can be a scalar OPC Toolbox™ object, or a vector of toolbox objects.

NewObj = copyobj(Obj, ParentObj) makes a copy of the objects in Obj inside the parent object ParentObj. ParentObj must be a valid scalar parent object for Obj. If any objects in Obj cannot be created in ParentObj, a warning will be generated.

A copied toolbox object contains new versions of all children, their children, and any parents that are required to construct that object. A copied object is different from its parent object in the following ways:

  • The values of read-only properties will not be copied to the new object. For example, if an object is saved with a Status property value of 'connected', the object will be recreated with a Status property value of 'disconnected' (the default value). You can use propinfo to determine if a property is read-only. Specifically, a connected opcda object is copied in the disconnected state, and a copy of a logging dagroup object is not reset to the logging state.

  • A copied dagroup object that has records in memory from a logging session is copied without those records.

    OPC HDA objects do not support copyobj.


Create a connected Data Access client with a group containing an item:

da1 = opcda('localhost', 'Matrikon.OPC.Simulation');
grp1 = addgroup(da1, 'CopyobjEx');
itm1 = additem(grp1, 'Random.Real8');

Copy the client object. This also copies the group and item objects.

da2 = copyobj(da1);
grp2 = da2.Group

Change the first group’s name, and note that the second group’s name is unchanged:

grp1.Name = 'NewGroupName';

Introduced before R2006a