Копирование объекта доступа к OPC Data
NewObj = copyobj(Obj)
NewObj = copyobj(Obj, ParentObj)
NewObj = copyobj(Obj)
делает копию всех объектов в Obj
и возвращает их в NewObj
. Obj
может быть скалярным объектом OPC Toolbox™ или вектором объектов тулбокса.
NewObj = copyobj(Obj, ParentObj)
делает копию объектов в Obj
внутри родительского объекта ParentObj
. ParentObj
должен быть допустимым скалярным родительским объектом для Obj
. Если какие-либо объекты в Obj
невозможно создать в ParentObj
будет сгенерировано предупреждение.
Скопированный объект тулбокса содержит новые версии всех дочерних элементов, их дочерних элементов и всех родительских элементов, которые необходимы для создания этого объекта. Скопированный объект отличается от своего родительского объекта следующими способами:
Значения свойств, доступных только для чтения, не будут скопированы в новый объект. Например, если объект сохранен с Status
значение свойства 'connected'
объект будет воссоздан с помощью Status
значение свойства 'disconnected'
(значение по умолчанию). Вы можете использовать propinfo
для определения, доступно ли свойство только для чтения. В частности, подключенное opcda
объект копируется в отключенном состоянии, и копия логгирования dagroup
объект не сбрасывается в состояние регистрации.
Скопированный dagroup
объект, который имеет записи в памяти из сеанса логгирования, копируется без этих записей.
Объекты OPC HDA не поддерживают copyobj
.
Создайте подключенный клиент Доступ с группой, содержащей элемент:
da1 = opcda('localhost', 'Matrikon.OPC.Simulation'); connect(da1); grp1 = addgroup(da1, 'CopyobjEx'); itm1 = additem(grp1, 'Random.Real8');
Скопируйте объект клиента. Это также копирует группу и объекты элемента.
da2 = copyobj(da1); grp2 = da2.Group
Измените имя первой группы и обратите внимание, что имя второй группы не изменено:
grp1.Name = 'NewGroupName';
grp2.Name