Как работают группы на OPC Server?

Я использую моделирование Matricon OPC. Я создал две группы, например. 'g1' и 'g2' и назначили одну переменную, например. 'Bucket Brigade.Int1' в обе группы.

Как работает группа?

Я вижу, что когда я обновляю значение переменной 'Bucket Brigade.Int1' в группе 'g1', значение переменной 'Bucket Brigade.Int1' в группе 'g2' также меняется.

Можно ли создавать как-то изолированные группы? Или переменные остаются каждый раз одинаковыми независимо от того, в какой группе они используются?

введите здесь описание изображениявведите здесь описание изображения


opc
person Daniel Dušek    schedule 23.10.2014    source источник


Ответы (1)


Каждая «переменная» в вашем сообщении (также называемая «тегом», фактическим правильным термином OPC будет «элемент OPC») представляет значение в базовом устройстве или системе. Таким образом, одна и та же переменная, если она используется в нескольких местах, как правило, должна иметь одно и то же значение - в этом вся ее цель.

Группы OPC — это способ, с помощью которого клиент OPC сообщает серверу OPC, какие элементы OPC его интересуют. Они существуют в основном из соображений производительности: все элементы OPC в одной группе OPC имеют некоторые общие характеристики, такие как частота обновления, активно ли они обновляются. , и так далее. Таким образом, после создания группы и добавления в нее элементов клиенту не нужно обращаться к каждому элементу в отдельности и повторять данные, если он хочет «что-то сделать» со всей группой (например, изменить частоту обновления или отказаться от подписки). все предметы).

Клиенты OPC имеют полную свободу в том, как они создают группы OPC и какие элементы они помещают в них. Вы можете не только иметь один и тот же элемент в нескольких группах; на самом деле вы даже можете иметь один и тот же элемент несколько раз в одной и той же группе (хотя я сомневаюсь, что это полезно для чего-либо). Поэтому ответ на ваши вопросы отрицательный, по крайней мере, в отношении сервера OPC: вы не можете «изолировать» группы; если вы помещаете элемент в одну группу, сервер должен (чтобы быть совместимым) разрешать вам помещать его и в другие группы (помните, что могут быть и другие клиенты, которые создают свои группы, тоже - и на них тоже нельзя влиять).

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

person ZbynekZ    schedule 23.10.2014
comment
и еще один вопрос: можно ли "программно" создавать переменные (OPC-элементы) на OPC-сервере? Я использую OPCDA.NET (Advosol). - person Daniel Dušek; 24.10.2014
comment
Это невозможно каким-либо стандартизированным способом через интерфейсы спецификации доступа к данным OPC. На определенных серверах могут быть некоторые способы достижения этого, но даже в этом случае это будет относительно редко. Я могу вспомнить, что (я думаю) серверы Kepware с их моделью драйвера, по крайней мере, для устройств на основе регистров, имеют идентификаторы элементов, которые в основном имеют предопределенный синтаксис, который содержит тип регистра и номер регистра. Затем можно создать переменную, просто прочитав/записав/подписавшись на правильно сформированный идентификатор элемента без его предварительной настройки. Но это делается вне/в стороне от стандарта OPC. - person ZbynekZ; 24.10.2014