Каждая «переменная» в вашем посте (также называемый «тэг», фактический подходящий термин OPC будет «OPC элемент») представляет собой значение базового устройства или системы. Таким образом, одна и та же переменная, если она используется в нескольких местах, как правило, должна иметь одинаковую ценность - вот в чем ее цель.
Группы OPC - это то, как OPC-клиент сообщает OPC-серверу, какие объекты OPC заинтересованы. Они существуют главным образом по соображениям производительности: все элементы OPC в той же группе OPC имеют некоторые общие характеристики, такие как скорость обновления, независимо от того, они активно обновляются и т. д. Таким образом, после создания группы и добавления элементов к ней клиент не должен обращаться к каждому элементу индивидуально и повторять данные, если он хочет «сделать что-то» для всей группы (например, изменить скорость обновления или отказаться от подписки все предметы).
Клиенты OPC имеют полную свободу в том, как они создают группы OPC и какие элементы они вставляют в них. Не только вы можете иметь один и тот же элемент в нескольких группах; на самом деле вы можете даже иметь один и тот же элемент несколько раз в одной группе (хотя я сомневаюсь, что это полезно для чего-либо). Поэтому ответ на ваши вопросы отрицательный, по крайней мере, на сервере OPC: вы не можете «изолировать» группы; если вы помещаете элемент в одну группу, сервер должен (чтобы быть совместимым), вы можете поместить его в другие группы (помните, что могут быть и другие клиентов, которые создают свои группы тоже - и они также не должны влиять).
Если вы пишете OPC-клиент, то, конечно, вы можете наложить любые ограничения, которые вам нравятся, на то, что он позволяет пользователю делать или нет.
Понятное объяснение, спасибо Zbynek! – dee
и еще один вопрос: возможно ли «программно» создавать переменные (элементы OPC) на OPC-сервере? Я использую OPCDA.NET (Advosol). – dee
Это невозможно стандартизованным способом через интерфейсы спецификации доступа к данным OPC. У определенных серверов может быть несколько способов его достижения, но даже тогда это будет относительно редко. Я могу вспомнить, что (я думаю) серверы Kepware со своей моделью драйверов, по крайней мере для устройств на основе регистров, имеют идентификаторы элементов, которые в основном имеют предварительно определенный синтаксис, который содержит тип регистра и номер регистра. Затем можно «создать» переменную просто, читая/записывая/подписываясь на правильно сформированный Item ID, не будучи предварительно сконфигурированным. Но это делается вне/в сторону стандарта OPC. – ZbynekZ