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

Доступ к OPC Data к Объектам клиента (клиент opcda objects) представляет определенный экземпляр OPC-клиента, который может связаться только с одним сервером. Вы задаете сервер с помощью свойств Host и ServerID. Свойство Host задает компьютер, на котором установлен сервер. Свойство ServerID задает ID Программы (ProgID) сервера, созданного, когда сервер был установлен на том хосте. Объект клиента opcda действует как контейнер для нескольких групповых объектов и справляется со связью с сервером, связью с сервером и просмотром пробела имени сервера.
Групповые объекты Доступа к данным (объекты dagroup) представляют контейнеры для одного или нескольких серверных элементов (точки данных на сервере.) Объект dagroup справляется, как часто элементы в группе должны быть считаны, должна ли историческая информация об элементе храниться, и также справляется с созданием и удалением элементов. Группы не могут существовать без объекта клиента opcda. Вы создаете объекты dagroup с помощью функции addgroup объекта клиента opcda.
Объекты Элемента Доступа к данным (объекты daitem) представляют серверные элементы. Элементы заданы ID элемента, который исключительно задает тот серверный элемент в пространстве имен сервера. Объект daitem имеет Value, Quality и TimeStamp, представляя информацию, собранную сервером от инструмента или точки данных в системе SCADA. Value, Quality и свойства TimeStamp представляют информацию, известную серверу, когда сервер в последний раз попросили получить доступ к информации от того инструмента.
Объект dagroup может только существовать “в” объекте клиента opcda. Точно так же объект daitem может только существовать в объекте dagroup. Вы создаете объекты dagroup с помощью метода addgroup объекта клиента opcda. Вы создаете объекты daitem с помощью метода additem объекта dagroup.
Использование программного обеспечения OPC Toolbox возражает, чтобы задать сервер, который клиент должен соединить с, и расположение элементов в группах. Следующие данные показывают отношение между объектами Доступа к данным OPC Toolbox и Сервером OPC.

Объект клиента opcda устанавливает связь между программным обеспечением OPC Toolbox и Сервером OPC, с помощью OPC Data доступ к стандартам Спецификации. Стандарты основаны на стандартах функциональной совместимости Microsoft® COM/DCOM.
Объекты daitem представляют определенные серверные элементы. Обратите внимание на то, что клиент обычно требует только подмножества целого пространства имен сервера в порядке действовать эффективно. В фигуре выше, только PV и элементы SP FIC01 и элемент LIT01, требуются для той конкретной группы. Другая группа может только содержать один объект daitem, представляя один серверный элемент.
Объект dagroup не имеет никакого эквивалента на Сервере OPC. Однако сервер ведет учет каждой группы, которую клиент создал и использует то название группы, чтобы связаться с информацией о клиенте об элементах в той группе.
Если вы создали объект клиента opcda, можно добавить группы в клиент. Объект 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

Элементы в этом списке соответствуют пронумерованным элементам в объектных сводных данных:
Заголовок Summary включает имя объекта dagroup. В примере это - присвоенное серверу имя Group0.
Раздел Object Parameters перечисляет значения свойств объектов ключа dagroup. Эти свойства описывают тип группы, объекты daitem сопоставили с группой, именем родительского объекта клиента opcda группы и свойствами, которые управляют, как сервер обновляет информацию об элементе для этой группы. В примере любые элементы, созданные в этой группе, будут обновлены в полувторых интервалах с мертвой зоной 0%. Для получения информации о том, как сервер обновляет информацию об элементе, смотрите События Изменения Данных и Подписку.
Раздел Object Status перечисляет текущее состояние объекта. Объект dagroup может быть в одном из нескольких состояний:
Состояние Active задает, применяется ли какая-либо операция на группе к элементу.
Состояние Subscription задает, произведут ли изменения в значении или качестве элемента событие изменения данных. Смотрите События Изменения Данных и Подписку для получения дополнительной информации о свойстве Subscription.
Состояние Logging описывает, регистрирует ли группа или нет. Смотрите Регистрируют Данные о Сервере OPC для получения информации о как к данным логов.
Раздел Logging Parameters описывает значения свойств журналирования для той группы. Журналирование свойств управляет как данные логов объекта dagroup, включая длительность задачи журналирования и место назначения записанных данных. Смотрите Регистрируют Данные о Сервере OPC для получения информации о журналировании данных с помощью объектов dagroup.
Объект dagroup без элементов не выполняет полезных функций. Если вы добавили элементы в группу, можно использовать группу для
Считайте данные из и запишите данные к, Сервер OPC. Смотрите Чтение и запись данных для получения дополнительной информации.
Управляйте, как Сервер OPC уведомляет MATLAB об изменениях в любом элементе, сопоставленном с объектом dagroup. Смотрите События Изменения Данных и Подписку для получения дополнительной информации.
Данные логов от всех элементов в той группе, для дальнейшей обработки и анализа. Регистрируйте Данные о Сервере OPC, описывает, как управлять журналированием.
Объект dagroup обеспечивает контейнер для сбора одного или нескольких объектов daitem. Объект daitem обеспечивает ссылку на определенный серверный элемент. Объект daitem задает, как вы хотите получить и сохранить клиентское значение серверного элемента, и также хранит последние полученные данные с сервера для того серверного элемента. Можно использовать объект daitem считать данные из сервера для того серверного элемента или записать значения в тот серверный элемент на сервере.
Вы создаете объект daitem с помощью функции additem, задавая объект dagroup, к которому элемент должен быть добавлен и полностью определенный ID элемента серверного элемента. Можно получить список полностью определенных идентификаторов элемента для всех серверных элементов с помощью функции serveritems.
Пример ниже основывается на примере в, Создают Групповые объекты Доступа к данным путем добавления объекта daitem в первую группу, созданную в том примере. Серверный элемент, сопоставленный с этим элементом, называется 'Random.Real8'.
itm1 = additem(grp1,'Random.Real8');
Когда вы создаете объект daitem, вы создаете объект, который хранит значение серверного элемента локально на клиенте. Можно указать, что локальный тип данных устройства хранения данных отличается от типа данных устройства хранения данных сервера. Например, можно указать, что значение сохранило на сервере как целое число храниться в MATLAB как значение с плавающей точкой с двойной точностью, потому что вы знаете, что будете выполнять вычисления с двойной точностью со значением того элемента.
Несмотря на то, что возможно изменить тип данных элемента после того, как это создается, можно также создать элемент с определенным типом данных путем определения типа данных как третьего параметра к функции additem. Спецификация типа данных должна быть вектором символов, описывающим тот тип данных. Допустимые типы OPC Data являются любым типом числовых данных MATLAB плюс 'char' и 'logical'. Смотрите работу с Различными типами данных для получения дополнительной информации о поддерживаемых типах данных.
Пример ниже добавляет другой элемент в группу, grp1, созданный примером в, Создает Групповые объекты Доступа к данным. ID элемента является 'Random.UInt2', который хранится на сервере как 16-битное целое число без знака. Путем определения типа данных как 'double' значение будет возвращено к MATLAB и сохранено локально как число с плавающей запятой с двойной точностью.
itm2 = additem(grp1,'Random.UInt2','double');
Процесс преобразования от типа данных сервера до типа данных элемента выполняется сервером, используя правила преобразования Microsoft COM Variant. При попытке преобразовать значение в тип данных, который не имеет области значений того значения, Сервер OPC возвратит ошибку при попытке обновить значение того элемента. Необходимо затем изменить тип данных на тот, который имеет ту же или большую область значений, чем тип данных серверного элемента. Смотрите работу с Различными типами данных для получения дополнительной информации.
Можно опционально задать состояние Active объекта daitem путем передачи вектора символов как четвертого параметра к функции additem. Состоянием Active может быть 'on' или 'off'. Элемент с состоянием Active 'off' ведет себя, как будто элемент никогда не создавался: Никакие обновления сервера значения элемента не произойдут, и чтение или запись с тем элементом перестанут работать. Вы используете состояние Active, чтобы временно отключить элемент, не удаляя тот элемент из MATLAB. Для получения дополнительной информации о состоянии Active смотрите страницу с описанием для свойства Active.
Чтобы просмотреть сводные данные характеристик объекта daitem, вы создали, введите имя переменной, которое вы присвоили объекту в командной строке. Например, это - сводные данные для объекта itm1.
itm1

Элементы в этом списке соответствуют пронумерованным элементам в объектных сводных данных:
Заголовок Summary включает полностью определенный ID элемента элемента. В примере элемент сопоставлен с серверным элементом 'Random.Real8'.
Раздел Object Parameters перечисляет значения свойств объектов ключа daitem. Эти свойства описывают имя группы Parent элемента и Access Rights, рекламируемый сервером.
Раздел Object Status перечисляет Активное состояние объекта. Состояние Active задает, применяется ли какая-либо операция на родительской группе к элементу, и хотите ли вы быть уведомленными относительно любых изменений в значении элемента.
Раздел Data Parameters перечисляет Data Type, используемый объектом daitem сохранить значение, и Value, Quality и TimeStamp последнего значения, полученного из сервера для этого элемента. Для получения дополнительной информации о Value Quality и TimeStamp элемента, видят OPC Data: Значение, Качество и TimeStamp.
Вы создаете объект daitem запросить значение связанного серверного элемента или записать значения в тот серверный элемент. Можно записать значения в один элемент и считать значения из одного элемента, с помощью объекта daitem. Для получения дополнительной информации о чтении и записи значений, смотрите Рида и запись данных.
Можно также использовать родительский объект dagroup считать и записать значения для всех объектов daitem, содержавшихся в той группе или регистрировать изменения в значении элемента сроком на время. Смотрите Регистрируют Данные о Сервере OPC для получения информации о регистрации данных.
Когда вы создаете объекты со связанным клиентом, программное обеспечение OPC Toolbox подтверждает те объекты с Сервером OPC прежде, чем создать их на клиенте. Например, при добавлении группы в клиент, использующий функцию addgroup, процесс валидации гарантирует, что никакая другая группа с тем же именем не существует на сервере, и что сервер примет группу. При добавлении элемента ID элемента проверяется, чтобы быть допустимым серверным элементом.
Иногда можно хотеть создать иерархию объектов тулбокса, не соединяясь с сервером. Например, можно быть от сайта и хотеть сконфигурировать задачу журналирования для использования на следующий день, вместо того, чтобы ожидать, чтобы сконфигурировать объекты для той задачи, когда вы находитесь на сайте.
Программное обеспечение OPC Toolbox позволяет вам конфигурировать целую иерархию объектов тулбокса, не соединяясь с сервером. Однако без связи с сервером, тулбокс не может подтвердить созданные объекты с тем сервером. Вместо этого программное обеспечение OPC Toolbox выполнит некоторую основную валидацию на объектах, которые вы создаете и подтверждаете те объекты с сервером, когда вы соединяетесь с сервером.
Когда вы создаете объекты тулбокса с разъединенным клиентом, следующая валидация выполняется:
При добавлении группы, использующей функцию addgroup, если вы не задаете имя, программное обеспечение OPC Toolbox автоматически присваивает уникальное имя 'group N ', где N является самым низким целым числом, которое гарантирует, что название группы уникально. Например, первая группа создала, будет 'group1', затем 'group2', и так далее.
Когда вы зададите название группы при использовании функции addgroup, ошибка будет сгенерирована, если группа с тем же именем уже будет существовать.
При добавлении элемента в группу, использующую функцию additem, будет сгенерирована ошибка, только если элемент с тем же именем уже существует в той группе. Никакая другая проверка не выполняется на элементе.
При добавлении элемента в группу, если вы не задаете тип данных для того элемента, тип данных установлен в 'unknown'. Когда вы соединитесь с сервером, тип данных будет изменен на CanonicalDataType серверного элемента.
Несмотря на все проверки, описанные выше, сервер не может принять все объекты, созданные на разъединенном клиенте, когда тот клиент соединяется с сервером с помощью функции connect. Например, ID элемента элемента не может быть допустимым для того сервера, или название группы не может быть допустимым для того сервера. Когда вы соедините клиент с сервером с помощью connect, любых объектов, что отклонения сервера будут удалены из иерархии объектов, и предупреждение будет сгенерировано. Таким образом все объекты на связанном клиенте, как гарантируют, будут приняты сервером.
Программное обеспечение OPC Toolbox поддерживает использование объектных векторов. Объектный вектор является одной переменной в рабочем пространстве MATLAB, содержащем ссылку больше чем на один объект. Например, все группы, добавленные к объекту клиента opcda, хранятся в свойстве Group клиента. Свойство Group содержит вектор объекта dagroup, который представляет все группы в том клиенте. Точно так же объект dagroup имеет свойство Item, которое содержит ссылку на каждый объект daitem, созданный в группе.
Можно создать векторы с помощью любого из стандартных методов конкатенации, доступных в MATLAB. Однако программное обеспечение OPC Toolbox налагает некоторые ограничения на конструкцию объектных векторов:
Объекты должны быть тем же классом. Например, можно конкатенировать два объекта dagroup, но вы не можете конкатенировать объект dagroup с объектом daitem.
У группы и объектов элемента должен быть тот же родительский элемент.
Одна из размерностей полученного массива должна быть скаляром. Можно создать вектор-столбец (m-1 объекты) или вектор - строка (объекты 1 на n), но не матрица m на n.
Программное обеспечение OPC Toolbox не заполняет недостающие элементы в векторе. Вместо этого ошибка сгенерирована. Например, вы не можете присвоить скалярный объект в 4-м индексе к скалярному объекту.
Следующие разделы обсуждают, как создать и использовать векторы объекта тулбокса:
Создайте Объектные Векторы, описывает, как создать объектные векторы.
Отобразитесь Сводные данные Объектных Векторов описывают, как объектные векторы отображены в командной строке.
Используйте Объектные Векторы, описывает, как можно использовать объектные векторы с программным обеспечением OPC Toolbox.
Можно создать объектный вектор с помощью любого из следующих методов:
Используя конкатенацию списков переменных отдельного объекта
Используя индексируемое присвоение
Используя свойства объектов, чтобы получить объектные векторы
Создайте Объектные Векторы Используя Конкатенацию. Чтобы создать вектор объекта 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 отличается. Однако основное отображение подобно.
Вы используете объектные векторы так же, как вы были бы переменная обычного объекта. К функции, которую вы вызываете с объектным вектором просто, применяются все объекты в векторе. Например, передавая клиентский вектор dav функции подключения соединяет каждый объект в векторе к его Серверу 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:
Задайте New Public Group, описывает, как можно создать новые общедоступные группы.
Соединитесь с Existing Public Group, описывает, как можно использовать общедоступную группу, которая уже задана на сервере.
Remove Public Groups с Сервера описывает, как можно удалить общедоступные группы из Сервера OPC.
Вы задаете новую общедоступную группу путем создания частной группы нормальным способом (описанный в, Создают Групповые объекты Доступа к данным), и затем преобразование, что частная группа в общедоступную группу.
Вы используете функцию 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, передавая объект клиента, который соединяется с сервером в качестве аргумента. Возвращенная структура включает поле под названием 'PublicGroups', содержа массив ячеек общедоступных групп, заданных на том сервере. Если поле 'PublicGroups' пусто, то необходимо проверять поле 'SupportedInterfaces', чтобы гарантировать, что сервер поддерживает общедоступные группы. Сервер, который поддерживает общедоступные группы, реализует интерфейс IOPCServerPublicGroups.
Если у вас есть список доступных общедоступных групп, можно создать связь с той группой, использующей функцию addgroup, передав его клиент, который соединяется с сервером, содержащим общедоступную группу, имя общедоступной группы и спецификатор типа группы 'public'.
Вы не можете создать связь с существующей общедоступной группой, если ваш объект клиента отключается от сервера.
Следующий пример соединяет с общедоступной группой под названием 'PublicTrends' на сервере с ID программы '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 доступ к Спецификации не обеспечивает механизма защиты для удаления общедоступных групп; любой клиент может запросить, чтобы была удалена общедоступная группа. Необходимо использовать эту функцию с экстремальной осторожностью!
Если какие-либо клиенты будут в настоящее время соединены с той группой, сервер выдаст предупреждение, утверждая, что группа будет удалена, когда все клиенты закончили использовать группу.