Сделайте копию объекта доступа к 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, который имеет записи в памяти от сеанса журналирования, копируется без тех записей.
Объекты ОПКА ХДЫ не поддерживают 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