Создание объектов доступа к данным OPC Toolbox

Обзор объектов

Первый шаг во взаимодействии с Сервером OPC из MATLAB® программное обеспечение предназначено для установления соединения между сервером и программным обеспечением OPC Toolbox™. Вы создаете opcda клиентские объекты для управления соединением между Сервером OPC и тулбоксом. Затем вы создаете dagroup объекты для управления наборами daitem объекты, а затем вы создаете daitem сами объекты, которые представляют серверные элементы. Серверный элемент соответствует физическому устройству или месту хранения в системе SCADA или DCS.

Вы должны создать объекты тулбокса в порядке, описанном выше. Подключение к серверам доступа к OPC Data описывает, как создать opcda объект клиента. В этом разделе рассматриваются способы создания и настройки dagroup и daitem объекты.

Иерархия объектов тулбокса для стандарта доступа к данным

Программное обеспечение OPC Toolbox DA реализовано с использованием трех базовых объектов, призванных помочь вам управлять подключениями к серверам и наборами серверных элементов. Три объекта расположены в определенной иерархии, показанной на следующем рисунке.

Hierarchical view of client, groups, and items

  1. Объекты клиента доступа к OPC Data (opcda объект клиента s) представляет определенный образец клиента OPC, который может взаимодействовать только с одним сервером. Сервер определяется с помощью Host и ServerID свойства. The Host свойство определяет компьютер, на котором установлен сервер. The ServerID свойство задает идентификатор программы (ProgID) сервера, созданный при установке сервера на этом узле. The opcda объект клиента действует как контейнер для нескольких групповых объектов и управляет подключением к серверу, обменом данными с сервером и пространством имен сервера.

  2. Объекты группы доступа к данным (dagroup объекты) представляют контейнеры для одного или нескольких серверных элементов (точки данных на сервере.) A dagroup объект управляет тем, как часто должны считываться элементы группы, должна ли храниться информация об исторических элементах, а также управляет созданием и удалением элементов. Группы не могут существовать без opcda объект клиента. Вы создаете dagroup объекты, использующие addgroup функция opcda объект клиента.

  3. Объекты элемента доступа к данным (daitem объекты) представляют серверные элементы. Элементы определяются идентификатором элемента, который однозначно определяет, что серверный элемент в пространстве имен сервера. A daitem объект имеет Value, а Quality, и TimeStamp, представляющую информацию, собранную сервером из прибора или точки данных в системе SCADA. The Value, Quality, и TimeStamp свойства представляют информацию, известную серверу, когда серверу в последний раз было предложено получить доступ к информации с этого инструмента.

A dagroup объект может существовать только «внутри» opcda объект клиента. Точно так же, daitem объект может существовать только в dagroup объект. Вы создаете dagroup объекты, использующие addgroup метод opcda объект клиента. Вы создаете daitem объекты, использующие additem метод dagroup объект.

Как объекты тулбокса относятся к серверам OPC DA

Программное обеспечение OPC Toolbox использует объекты для определения сервера, к которому должен подключиться клиент, и расположения элементов в группах. Следующий рисунок показывает связь между OPC Toolbox Данных Доступа объектами и Сервером OPC.

Connections between client and server

The opcda объект клиента устанавливает соединение между программным обеспечением OPC Toolbox и сервером OPC, используя стандарты спецификации доступа к OPC Data. Стандарты основаны на Microsoft® Стандарты взаимодействия COM/DCOM.

The daitem объекты представляют определенные серверные элементы. Обратите внимание, что для эффективной работы клиента обычно требуется только подмножество всего пространства имен сервера в порядок. На рисунке выше только PV и SP элементы FIC01, и LIT01 элемент, требуется для этой конкретной группы. Другая группа может содержать только одну daitem объект, представляющий один серверный элемент.

Примечание

The dagroup объект не имеет эквивалента на сервере OPC. Однако сервер хранит запись каждой группы, созданной клиентом, и использует это имя группы для передачи клиенту информации об элементах этой группы.

Создание групповых объектов доступа к данным

Как только вы создали opcda объект клиента, можно добавить группы к клиенту. A dagroup объект управляет несколькими daitem объекты. Использование dagroup объект позволяет считывать данные из всех элементов этой группы в одном действии, записывать данные в элементы группы, задавать действия, выполняемые при изменении значения любого из элементов этой группы или регистрировать данные для всех элементов этой группы для анализа и обработки.

Как создать dagroup объект, вы используете addgroup функция, задающая opcda объект клиента, в который необходимо добавить группу, и необязательное имя группы. Правила определения имени собственной группы см. в разделе «Задание имени группы».

Приведенный ниже пример создает opcda клиентский объект, соединяет этот объект с сервером и добавляет к клиенту две группы. Первая группа автоматически именуется сервером, а второй группе присваивается заданное имя.

da = opcda('localhost','Matrikon.OPC.Simulation.1');
connect(da);
grp1 = addgroup(da);
grp2 = addgroup(da,'MyGroup');

Задайте имя группы

Каждая группа, созданная под определенным клиентским объектом, должна иметь уникальное имя. Это позволяет Серверу OPC уникально идентифицировать группу, когда клиент делает запрос сервера, используя эту группу. Имя может быть любым непустым вектором символов.

Вы не должны указывать имя группы для каждой группы, добавляемой к клиенту. Если вы не задаете имя, Сервер OPC автоматически присвоит вам имя группы. Каждый Сервер OPC определяет различные правила для автоматического присвоения имен группам.

При попытке создать группу с таким же именем, как и группу, уже созданную для этого клиента, будет создана ошибка.

Сведения о том, как группы автоматически именуются при создании групп с отключенным клиентом, см. в разделе Удаление объектов.

Просмотр Сводных данных Группового объекта

Просмотр сводных данных характеристик dagroup созданный вами объект, введите в командной строке имя переменной, присвоенное объекту. Для примера это сводные данные для объекта grp1.

grp1

Элементы этого списка соответствуют нумерованным элементам в сводных данных объектов:

  1. Область заголовка Summary включает имя dagroup объект. В примере это присвоенное серверу имя Group0.

  2. The Object Parameters В разделе перечислены значения ключевых dagroup свойства объекта. Эти свойства описывают тип группы, daitem объекты, связанные с группой, имя родительского элемента группы opcda объект клиента и свойства, которые управляют тем, как сервер обновляет сведения об элементах для этой группы. В этом примере все элементы, созданные в этой группе, будут обновляться на полсекунды интервалов с интервалом нечувствительности 0%. Дополнительные сведения о том, как сервер обновляет сведения об элементах, см. в разделах События изменения данных и Подписка.

  3. The Object Status В разделе перечислено текущее состояние объекта. A dagroup объект может находиться в одном из нескольких состояний:

    • The Active состояние определяет, применяется ли какая-либо операция в группе к элементу.

    • The Subscription состояние определяет, будут ли изменения в значении или качестве элемента приводить к событию изменения данных. Смотрите События Изменения данных и Подписка для получения дополнительной информации о Subscription свойство.

    • The Logging Состояние описывает, регистрируется ли группа или нет. Смотрите Журнал данных Сервер OPC для получения информации о том, как вести журнал данных.

  4. The Logging Parameters В разделе описываются значения свойств регистрации для этой группы. Свойства логгирования управляют тем, как dagroup объект регистрирует данные, включая длительность задачи регистрации и назначение записанных данных. Смотрите Логгирование Серверы OPC данных для получения информации о логгировании данных с помощью dagroup объекты.

Использование группового объекта

A dagroup объект без элементов не выполняет никаких полезных функций. После добавления элементов в группу можно использовать группу в

  • Считывайте данные из и записывайте данные в Сервер OPC. Для получения дополнительной информации см. раздел Чтение и запись данных.

  • Управление тем, как Сервер OPC уведомляет MATLAB об изменениях в любом элементе, связанном с dagroup объект. Дополнительные сведения см. в разделах События изменения данных и Подписка.

  • Журнал данных из всех элементов этой группы для последующей обработки и анализа. Журнал Сервер OPC Data описывает, как управлять логгированием.

Создание объектов элемента доступа к данным

A dagroup объект предоставляет контейнер для сбора одной или нескольких daitem объекты. A daitem объект предоставляет ссылку на конкретный серверный элемент. The daitem объект определяет способ извлечения и хранения клиентского значения серверного элемента, а также сохраняет последние данные, извлеченные с сервера для этого серверного элемента. Можно использовать daitem объект, чтобы считать данные с сервера для этого серверного элемента или записать значения в этот серверный элемент на сервере.

Вы создаете daitem объект с использованием additem функция, задающая dagroup объект, к которому должен быть добавлен элемент, и полный идентификатор элемента серверного элемента. Вы можете получить список полных идентификаторов товаров для всех серверных элементов, используя serveritems функция.

Приведенный ниже пример основан на примере создания групповых объектов доступа к данным путем добавления daitem объект первой группе, созданной в этом примере. Серверный элемент, связанная с этим элементом, вызывается 'Random.Real8'.

itm1 = additem(grp1,'Random.Real8');

Укажите локальный тип данных для элемента

Когда вы создаете daitem вы создаете объект, который хранит значение серверного элемента локально в клиенте. Можно указать, что тип данных локального хранилища отличается от типа данных серверного хранилища. Например, можно задать, что значение, сохраненное на сервере в виде целого числа, будет сохранено в MATLAB как значение с двойной точностью с плавающей точностью, потому что вы знаете, что будете выполнять вычисления с двойной точностью со значением этого элемента.

Несмотря на возможность изменения типа данных элемента после его создания, можно также создать элемент с определенным типом данных, указав тип данных в качестве третьего параметра для additem функция. Спецификация типа данных должна быть вектором символов, описывающей этот тип данных. Допустимыми типами OPC Data являются любой тип числовых данных MATLAB, плюс 'char', и 'logical'. Дополнительные сведения о поддерживаемых типах данных см. в разделе Работа с различными типами данных.

В приведенном ниже примере в группу добавляется другой элемент grp1 созданный в примере в разделе «Создание групповых объектов доступа к данным». Идентификатор элемента 'Random.UInt2', который хранится на сервере в виде беззнакового 16-битного целого числа. Путем определения типа данных следующим 'double'значение будет возвращено в MATLAB и сохранено локально в виде числа с плавающей запятой двойной точности.

itm2 = additem(grp1,'Random.UInt2','double');

Примечание

Процесс преобразования типа данных сервера в тип данных элемента выполняется сервером с помощью правил преобразования варианта Microsoft COM. Если вы пытаетесь преобразовать значение в тип данных, который не имеет области значений этого значения, Сервера OPC вернёт ошибку при попытке обновить значение этого элемента. Затем необходимо изменить тип данных на тот, который имеет ту же или большую область значений, чем тип данных серверных элементов. Для получения дополнительной информации см. раздел «Работа с различными типами данных».

Задайте активный статус объекта элемента

Вы можете опционально задать Active состояние daitem объект путем передачи вектора символов в качестве четвертого параметра в additem функция. The Active статус можно 'on' или 'off'. Элемент с Active состояние 'off' ведет себя так, как будто элемент не был создан: обновления значения элемента не будут выполняться сервером, и чтение или запись с этим элементом не будет выполняться. Вы используете Active состояние, чтобы временно отключить элемент без удаления этого элемента из MATLAB. Для получения дополнительной информации о Active status, см. страницу с описанием для Active свойство.

Просмотр Сводных данных объекта Item

Просмотр сводных данных характеристик daitem созданный вами объект, введите в командной строке имя переменной, присвоенное объекту. Для примера это сводные данные для объекта itm1.

itm1

Элементы этого списка соответствуют нумерованным элементам в сводных данных объектов:

  1. Область заголовка Summary включает полный идентификатор элемента элемента. В примере элемент связан со 'Random.Real8' Серверный элемент.

  2. The Object Parameters В разделе перечислены значения ключевых daitem свойства объекта. Эти свойства описывают имя элемента Parent группа и Access Rights объявленный сервером.

  3. The Object Status В разделе перечислено активное состояние объекта. The Active состояние определяет, применяется ли к элементу какая-либо операция в родительской группе и нужно ли уведомлять об изменениях в значении элемента.

  4. The Data Parameters В разделе перечислены Data Type используется в daitem объект для хранения значения и Value, Quality, и TimeStamp последнего значения, полученного с сервера для этого элемента. Для получения дополнительной информации о Value, Quality, и TimeStamp элемент см. OPC Data: Значение, Качество и TimeStamp.

Использование объекта элемента

Вы создаете daitem объект, чтобы запросить значение связанного серверного элемента или записать значения в этот серверный элемент. Можно записать значения в один элемент и считать значения из одного элемента, используя daitem объект. Для получения дополнительной информации о чтении и записи значений смотрите Чтение и Запись данных.

Можно также использовать родительский dagroup объект для чтения и записи значений для всех daitem объекты, содержащиеся в этой группе, или для регистрации изменений в значении элемента в течение определенного периода времени. Смотрите Журнал Сервера OPC данных для получения информации о регистрационных данных.

Построение иерархии объектов с отключенным клиентом

Когда вы создаете объекты с подключенным клиентом, программное обеспечение OPC Toolbox проверяет эти объекты с Сервером OPC перед их созданием на клиенте. Например, при добавлении группы к клиенту используя addgroup функция, процесс проверки гарантирует, что на сервере не существует другой группы с таким именем и что сервер примет эту группу. При добавлении элемента идентификатор элемента считается допустимым серверным элементом.

Иногда может потребоваться создать иерархию объектов тулбокса без подключения к серверу. Например, вы можете быть вне сайта и хотите сконфигурировать задачу регистрации для использования на следующий день, а не ждать, чтобы сконфигурировать объекты для этой задачи, когда вы находитесь на сайте.

Программное обеспечение OPC Toolbox позволяет вам конфигурировать целую иерархию объектов тулбокса, не подключаясь к серверу. Однако без подключения к серверу тулбокс не может проверить созданные объекты с этим сервером. Вместо этого программное обеспечение OPC Toolbox выполняет некоторую базовую валидацию созданных объектов и повторно оценивает эти объекты с сервером при подключении.

При создании объектов тулбокса с отключенным клиентом выполняется следующая валидация:

  • При добавлении группы с помощью addgroup функция, если вы не задаете имя, программное обеспечение OPC Toolbox автоматически присваивает уникальное имя 'groupN', где N - самое низкое целое число, которое гарантирует, что имя группы уникально. Для примера будет создана первая группа 'group1', затем 'group2'и так далее.

  • Когда вы задаете имя группы при использовании addgroup функция, ошибка генерируется, если группа с таким именем уже существует.

  • При добавлении элемента в группу с помощью additem функция, ошибка генерируется только в том случае, если элемент с таким именем уже существует в этой группе. Другие проверки на элемент не выполняются.

  • При добавлении элемента в группу, если вы не задаете тип данных для этого элемента, тип данных устанавливается на 'unknown'. При подключении к серверу тип данных будет изменен на CanonicalDataType серверного элемента.

Несмотря на все проверки, описанные выше, сервер может не принимать все объекты, созданные на отключенном клиенте, когда этот клиент соединяется с сервером, используя connect функция. Для примера идентификатор элемента может быть недопустимым для этого сервера, или имя группы может быть недопустимым для этого сервера. Когда вы соединяете клиент с сервером используя connectвсе объекты, которые сервер отклоняет, будут удалены из иерархии объектов, и будет сгенерировано предупреждение. Таким образом, все объекты на подключенном клиенте гарантированно были приняты сервером.

Создайте векторы объекта доступа к данным OPC Toolbox

Программное обеспечение OPC Toolbox поддерживает использование векторов объектов. Вектор объекта является одной переменной в рабочем пространстве MATLAB, содержащей ссылку на несколько объектов. Например, все группы, добавленные в opcda объект клиента хранится в Group клиента свойство. The Group свойство содержит dagroup вектор объекта, который представляет все группы в этом клиенте. Точно так же, dagroup объект имеет Item свойство, содержащее ссылку на каждую daitem объект, созданный в группе.

Можно создать векторы с помощью любого из стандартных методов конкатенации, доступных в MATLAB. Однако программное обеспечение OPC Toolbox накладывает некоторые ограничения на конструкцию векторов объектов:

  • Объекты должны быть совпадающими классами. Например, можно объединить две dagroup объекты, но вы не можете объединить dagroup объект со daitem объект.

  • Группа и объекты элемента должны иметь одинаковый родительский элемент.

  • Одна из размерностей получившегося массива должна быть скалярной. Можно создать вектор-столбец (объекты m на 1) или вектор-строка (объекты 1 на n), но не матрицу m на n.

  • Программное обеспечение OPC Toolbox не заполняет отсутствующие элементы в векторе. Вместо этого генерируется ошибка. Для примера вы не можете назначить скалярный объект по 4-му индексу скалярному объекту.

В следующих разделах обсуждается, как создать и использовать векторы объекта тулбокса:

Конструкция векторов объектов

Можно создать вектор объекта с помощью любого из следующих методов:

  • Использование конкатенации списков отдельных переменных объекта

  • Использование индексированного назначения

  • Использование свойств объекта для извлечения векторов объекта

Создание векторов объектов с помощью конкатенации.  Чтобы создать вектор объекта OPC Toolbox Data Access с помощью конкатенации, вы используете обычный синтаксис MATLAB для конкатенации. Создайте список всех объектов, которые вы хотите создать, и окружите этот список квадратными скобками ([]). Разделите каждый элемент вектора объекта либо запятыми (,), чтобы создать вектор-строку, либо точкой с запятой (;), чтобы создать вектор-столбец.

В следующем примере создаются три фиктивных opcda клиентские объекты и объединяет их в вектор-строку.

da1 = opcda('Host1','Dummy.Server.1');
da2 = opcda('Host2','Dummy.Server.2');
da3 = opcda('Host3','Dummy.Server.3');
dav = [da1, da2, da3];

Создание векторов объектов с использованием индексированного назначения.  Индексированное назначение относится к созданию векторов путем назначения элементов конкретным индексам в векторе. В следующем примере создается тот же самый трехэлементный opcda вектор клиентского объекта, как и в предыдущем примере, с использованием индексированного назначения.

dav(1) = opcda('Host1','Dummy.Server.1');
dav(2) = opcda('Host2','Dummy.Server.2');
dav(3) = opcda('Host3','Dummy.Server.3');

Создайте вектор объекта с использованием свойств объекта.  Вы можете получить вектор объекта, если вы присвоите Group свойство opcda объект клиента или Item свойство dagroup объект, переменной. Если у клиента более одной группы или у группы более одного элемента, получившееся свойство является вектором объекта.

Для получения информации о получении свойств объекта смотрите Просмотр значения конкретного свойства.

Отображение сводных данных векторов объектов

Чтобы просмотреть сводные данные по вектору объекта, введите имя вектора объекта в командной строке. Для примера это сводные данные вектора клиента dav.

dav
   OPC Data Access Object Array:

   Index:  Status:         Name:
   1       disconnected    Host1/Dummy.Server.1
   2       disconnected    Host2/Dummy.Server.2
   3       disconnected    Host3/Dummy.Server.3

Сводная информация для каждого класса объекта OPC Toolbox Data Access различна. Однако базовое отображение аналогично.

Использование векторов объектов

Векторы объектов используются так же, как и переменная нормального объекта. Функция, которую вы вызываете с вектором объекта, просто применяется ко всем объектам в векторе. Для примера передайте вектор клиента dav к функции connect соединяет каждый объект в векторе с его Сервером OPC.

Примечание

Некоторые функции OPC Toolbox не принимают векторы объектов в качестве аргументов. Если вы пытаетесь использовать вектор объекта с функцией, которая не принимает векторы объекта, будет сгенерирована ошибка. Обратитесь к соответствующей странице с описанием функции за информацией о том, поддерживает ли функция векторы объектов.

Если необходимо извлечь элементы вектора объекта, используйте стандартные обозначения индексации MATLAB. Например, в следующем примере второй элемент извлекается из вектора клиента dav.

dax = dav(2);

Работа с общедоступными группами

Спецификация доступа к OPC Data предоставляет механизм совместного использования строения группы многими клиентами. Обычно клиент имеет частный доступ к группе; ни один другой клиент, подключенный к тому же серверу, не может видеть эту группу и элементы, настроенные в этой группе. Однако клиент может определить группу как общедоступную, позволяя другим клиентам, подключенным к тому же серверу, получить доступ к этой группе.

Примечание

Спецификация доступа к OPC Data определяет поддержку общедоступных групп как необязательную. Следовательно, некоторые серверы OPC не будут поддерживать общедоступные группы.

Открытая группа отличается от частной следующим образом:

  • Если группа определена как общедоступная, вы не можете добавлять элементы в эту группу и удалять элементы из нее. Это ограничение гарантирует, что каждый клиент, использующий эту общедоступную группу, имеет доступ к тем же элементам и не должен беспокоиться о добавлении или удалении элементов из этой группы. Перед открытием этой группы необходимо убедиться в правильности элементов группы.

  • Каждый клиент, который обращается к общей группе, может задать свои собственные свойства группы, такие как UpdateRate, DeadbandPercent, Active, и Subscription свойства. Для примера один клиент может задать UpdateRate от 10 секунд для общей группы, в то время как другой клиент задает UpdateRate как 2 секунд.

  • Каждая общедоступная группа, заданная на сервере, должна иметь уникальное имя. При попытке создать общедоступную группу с таким же именем, как и открытая группа на сервере, генерируется ошибка.

  • Один клиент не может иметь открытую группу и частную группу с таким же именем. Например, вы не можете подключиться к общей группе с именем 'LogGroup' а затем создайте частную группу под названием 'LogGroup'.

Используя программное обеспечение OPC Toolbox, можно определять и публиковать собственные общедоступные группы или подключаться к существующим общедоступным группам. Вы также запросами, чтобы открытые группы были удалены из Сервера OPC. В следующих разделах показано, как можно работать с общедоступными группами с помощью программного обеспечения OPC Toolbox:

Определите новую открытую группу

Определите новую открытую группу путем создания частной группы обычным способом (описанным в разделе «Создание групповых объектов доступа к данным») и последующего преобразования этой частной группы в общедоступную группу.

Вы используете makepublic функция для преобразования частной группы в общедоступную группу. Единственный аргумент в makepublic функция является групповым объектом, который необходимо преобразовать в общедоступную группу.

В следующем примере создается частная группа с определенными элементами в этой группе. Затем группа преобразуется в открытую группу.

da = opcda('localhost','My.Server.1');
grp = addgroup(da,'PublicGrpExample');
itms = additem(grp,{'Item.ID.1','Item.ID.2'});
makepublic(grp);

Тип группы можно проверить с помощью GroupType свойство.

grp.GroupType
public

Подключение к существующей общедоступной группе

В дополнение к созданию новых общедоступных групп можно также создать подключение к существующей общедоступной группе на сервере. Чтобы получить список доступных общедоступных групп на сервере, используйте opcserverinfo function, передает клиентский объект, который соединяется с сервером в качестве аргумента. Возвращенная структура включает поле, называемое 'PublicGroups', содержащего массив ячеек из общих групп, определенных на этом сервере. Если на 'PublicGroups' поле пустое, тогда вы должны проверить 'SupportedInterfaces' чтобы убедиться, что сервер поддерживает общедоступные группы. Сервер, поддерживающий общедоступные группы, реализует IOPCServerPublicGroups интерфейс.

Если у вас есть список доступных общедоступных групп, вы можете создать соединение с этой группой с помощью addgroup функция, передающая ее клиенту, который соединяется с сервером, содержащим общедоступную группу, имя общей группы и 'public' спецификатор типа группы.

Примечание

Вы не можете создать подключение к существующей общедоступной группе, если ваш клиентский объект отключен от сервера.

Следующий пример соединяется с общей группой с именем 'PublicTrends' на сервере с идентификатором программы 'My.Server.1'.

da = opcda('localhost','My.Server.1');
connect(da);
pubGrp = addgroup(da,'PublicTrends','public');

При соединении с общедоступной группой элементы этой группы создаются автоматически.

itm = pubGrp.Items
itm =

   OPC Item Object Array:

   Index:  DataType:  Active:  ItemID:
   1       double     on       item.id.1
   2       uint16     on       item.id.2
   3       double     on       item.id.3

Вы не можете добавлять или удалять элементы из общей группы. Однако можно по-прежнему изменять частоту обновления группы, процент мертвых полос, а также активный статус и статус подписки группы, и можно использовать группу для чтения, записи или журнала данных так же, как для частной группы.

Когда вы закончили использовать общедоступную группу, можно использовать delete функция для удаления этой группы из объекта клиента. Удаление группы из клиента не приводит к удалению общедоступной группы с сервера; другие клиенты могут потребовать эту группу после завершения работы с ней. Вместо этого удаление группы из клиента указывает серверу, что эта группа больше не интересует вас.

Удаление общих групп с сервера

Можно запросить удаление общедоступной группы с сервера с помощью removepublicgroup функция, передающая удаляемый клиентский объект, подключенный к серверу, и имя общедоступной группы.

Внимание

Спецификация доступа к OPC Data не обеспечивает какого-либо механизма безопасности для удаления общедоступных групп; любой клиент может запросить удаление общедоступной группы. Вы должны использовать эту функцию с особой осторожностью!

Если какие-либо клиенты в данный момент подключены к этой группе, сервер выдаст предупреждение о том, что группа будет удалена после завершения использования группы всеми клиентами.