Фильтр по тематике

Применение ПО ICONICS для построения эффективной АСУ ТП

В продолжение популярной темы «GENESIS64 – это просто!» в рубрике «Вопросы–ответы» на постоянной основе будут публиковаться наиболее интересные материалы специалистов компании ПРОСОФТ. Интересы читателей затрагивают широкий круг вопросов, касающихся популярного пакета ПО ICONICS, таких как лицензирование, использование популярных протоколов передачи данных (SNMP, BACnet и многих других), обработка сигналов тревог для неменяющихся значений, создание двумерных элементов управления и т.п. Опубликованные ответы помогут не только начинающим, но и опытным пользователям.

В продолжение популярной темы «GENESIS64 – это просто!» в рубрике «Вопросы–ответы» на постоянной основе будут публиковаться наиболее интересные материалы специалистов компании ПРОСОФТ. Интересы читателей затрагивают широкий круг вопросов, касающихся популярного пакета ПО ICONICS, таких как лицензирование, использование популярных протоколов передачи данных (SNMP, BACnet и мно­гих других), обработка сигналов тре­вог для неменяющихся значений, создание двумерных элементов управления и т.п. Опубликованные ответы помогут не только начинающим, но и опытным пользователям.

Вопрос

Как использовать утилиту ICONICS Web Licensing Utility для программирования аппаратного ключа защиты лицензий?

Ответ

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

  1. Вставьте защитный аппаратный ключ (рис. 1) в компьютер. Компьютер должен автоматически распознать ключ и попытаться установить драйверы, если они не были установлены.

  2. После установки драйверов перейдите на сайт http://www.iconics.com/support и выберите ссылку справа License Product (Лицензировать продукт).
  3. Если вы используете аппаратный ключ защиты лицензии, нажмите на кнопку Hardware (Оборудование).
  4. Чтобы пройти авторизацию на сайте ICONICS, введите ваш адрес электронной почты и пароль. Если вы ранее не создавали учётную запись на сайте, создайте её, щёлкнув по ссылке Create New Account.

Иногда Internet Explorer не загружает утилиту Web Licensing Utility корректно. Если вы при выполнении действий по лицензированию получаете со стороны браузера IE отказ, выполните следующие шаги:

  1. Нажмите кнопку Alt на клавиатуре, в Internet Explorer появится меню.
  2. Перейдите Tools > Compatibility View Settings (Инструменты > Настройка просмотра в режиме совместимости).
  3. Добавьте адрес URL утилиты лицензирования в список и нажмите Close.

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

Замечание. Новый аппаратный USB-ключ не будет работать, пока эти действия не будут выполнены.

Для того чтобы добавить новые продукты на существующий ключ или удалить отдельные продукты с существующего ключа, выполните следующие действия:

  1. Подключитесь к утилите, выполнив действия, описанные в пункте «Шаги по подключению к утилите».
  2. Нажмите на кнопку Software вверху меню.
  3. Нажмите на кнопку Next (Далее) и подтвердите во всплывающем сообщении соответствие серийного номера ключа.
  4. Если вы добавляете продукт на этот ключ или программируете новый, введите Product Registration number (Номер регистрации продукта) и Customer Key (Номер ключа пользователя).
  5. Если вы только удаляете продукт с ключа, то просто нажмите кнопку Next и ничего не вводите.
  6. Введите информацию о конечном пользователе (End User), выбрав из списка существующих (Existing End Users), или введите нового, нажав на ссылку Create New (Создать нового), и нажмите кнопку Next.
  7. Снимите галочки с продуктов, которые вы хотите удалить с ключа, и отметьте галочками продукты, которые вы хотите добавить. Нажмите Next.
  8. Проверьте список продуктов, которые были добавлены на USB-ключ, и нажмите Complete (Закончить).
  9. Аппаратный USB-ключ запрограммирован на ваши продукты и готов к использованию.

Для того чтобы полностью удалить продукты с аппаратного USB-ключа и очистить его, выполните следующие действия.

  1. Подключитесь к утилите, выполнив действия, описанные в пункте «Шаги по подключению к утилите».
  2. Выберите Kill License (Удалить лицензию) вверху меню.
  3. Нажмите на кнопку Next (Далее) и подтвердите во всплывающем сообщении соответствие серийного номера ключа.
  4. Нажмите Complete (Закончить) и дважды нажмите OK в ответ на подтверждающие сообщения.
  5. Лицензия на вашем аппаратном USB-ключе удалена и ключ переформатирован. Вы можете использовать ключ в будущем для программирования новых продуктов.

Вопрос

Как подключить BBMD-устройства (BACnet/IP Broadcast Management De­vice)?

Ответ

Для лучшего понимания этой технологии приведём немного теории.

Интересным атрибутом автоматизации зданий и сети управления по протоколу BACnet является то, что Ethernet поддерживает как несколько каналов пе­редачи данных, так и связь между раз­личными каналами передачи данных с использованием маршрутизаторов. Каждый канал данных рассматривается как отдельная сеть, и несколько объединённых каналов передачи данных считаются одной BACnet-подсетью. BACnet-маршрутизаторы облегчают соединения, но когда BACnet/IP используется в качестве одного из каналов передачи данных, должны быть сделаны корректировки в настройке того, как BACnet-маршрутизаторы используются в IP-сети.

Дополнительную информацию об архитектуре BACnet можно найти в Интернете или обратившись к Application Notes ICONICS “BACnet – Quick Start”, “BACnet – Fast Browsing BACnet Devices”.

Влияние BACnet/IP на маршрутизаторы BACnet. BACnet/IP включает в себя четырёхуровневую модель ISO, описанную в стандарте BACnet ANSI/ASHARE Standard 135-2004. Маршрутизаторы действуют на сетевом уровне. Поскольку маршрутизаторы были уже определены на сетевом уровне (п. 6 стандарта), приложение J ссылается на этот пункт. Приложение J вводит понятие уровня виртуальной связи – BACnet Virtual Link Layer (BVLL), который обеспечивает интерфейс между оборудованием, указанным в п. 6, и оборудованием другой коммуникационной подсистемы. Сообщения BVLL могут быть или направленными, или широковещательными. Направленными сообщениями обмениваются только два IP-адреса и никакие другие. Широковещательное сообщение исходит от одного IP-адреса и отправляется на все IP-адреса в подсети.

В общем случае сеть BACnet состоит из одной или более IP-подсетей, содержащих устройства BACnet/IP и использующих один и тот же номер порта UDP. Вполне возможно, что BACnet-сеть имеет только одну подсеть. Это самый простой случай, когда направленные и широковещательные сообщения рассылаются внутри подсети без ограничений.

Тем не менее, если в сеть BACnet/IP включена более чем одна подсеть, возникает проблема. Как показано на рис. 2, IP-маршрутизатору требуется подключить IP-подсеть к Интернету или к корпоративной сети. 


IP-маршрутизаторы работают не так, как BACnet-маршрутизаторы. Широковещательные сообщения могут (и обычно так и происходит) блокироваться IP-маршрутизаторами, если они не поддерживают так называемое направленное широковещание (directed broadcast). Для того чтобы пакеты directed broadcast проходили через IP-маршрутизатор, он должен иметь параметр bridging. В этом случае IP-маршрутизатор обрабатывает пакеты directed broadcast как коммутатор, а не маршрутизатор. Если IP-маршрутизатора такого типа нет, то способ управления передачами сообщений в подсетях BACnet должен быть разработан.

Устройства BBMD. В сети BACnet/IP, состоящей из двух или более IP-подсетей, локальное вещание может быть не способно распространиться на другие сети. Если это так, то необходимо использовать так называемые устройства BBMD (BACnet/IP Broadcast Management Device – устройство управления вещанием BAC/IP). Устройства BBMD, расположенные в IP-сетях, контролируют организацию широковещательных сообщений в IP-подсети и, в свою очередь, создают другое широковещательное сообщение, замаскированное под направленное, чтобы оно могло быть передано через IP-маршрутизатор в другую сеть. Это замаскированное сообщение направляется другим BBMD-устройствам (расположенным в различных подсетях), которые получают направленные сообщения и ретранслируют их в подсети, к которым они подключены. Поскольку BBMD-сообщения направленные, то каждому устройству BBMD должны быть отправлены отдельные сообщения. Каждое BBMD-устройство создаёт таблицу рассылки Broadcast Distribution Table (BDT), содержание которой, как правило, одинаково для всех устройств BBMD в сети. На рис. 2 в каждой подсети есть одно устройство BBMD.

Возможно взаимодействовать с устройством из другой подсети, не имеющей BBMD-устройства, как показано на рис. 3. 


Устройство такого типа называется внешним («иностранным»), так как оно находится в другой IP-подсети, а не в той, где расположены устройства, пытающиеся с ним взаимодействовать.

Обычно в терминологии BACnet «иностранные» устройства находятся в другой сети, но в терминологии BACnet/IP «иностранные» устройства находятся в другой подсети. Если внешние устройства зарегистрированы в BBMD-устройстве, то они могут быть видны и доступны для связи со всеми другими устройствами в сети. BBMD-устройство должно создать таблицу внешних устройств Foreign Device Table (FDT).

Ещё один пример организации передачи данных показан на рис. 4. 


Здесь две сети – BACnet и не BACnet – посредством BACnet-маршрутизатора образуют единую BACnet-сеть. Этот пример демонстрирует гибкость BACnet, при которой унаследованные каналы передачи данных (legacy data links) или менее затратные каналы (lower-cost data links) могут поддерживаться наряду с более современными IP-сетями. Нет ничего, что бы не позволило встраивать BBMD-устройства в BACnet-маршрутизатор, исключая тем самым одно устройство из подсети.

Подготовка сети/маршрутизатора/BBMD-устройства. Перед тем как продолжить, проверьте следующее.

Сетевая топология – по крайней мере, две разные сети соединены с помощью маршрутизатора, который играет роль шлюза. В нашем случае:

  • сеть 1 – офисная сеть (172.16.0.0);
  • сеть 2 – BACnet/IP-сеть 1 (172.16.55.0);
  • Шлюз – Интернет-маршрутизатор:
    – внутренний интерфейс – 172.16.0.1,
    – внешний интерфейс – 172.16.55.1.

Правильно настроенный Интернет-маршрутизатор:

  • Интернет-маршрутизатор играет роль шлюза: BACnet-сеть (внутренняя), GENESIS64 (внешняя);
  • порты межсетевого экрана 47808–47809 открыты;
  • преобразование сетевых адресов (NAT – Network Address Translation) недоступно, по крайней мере, в целях тестирования.

BBMD-устройство: таблица рассылки BDT сконфигурирована и включает информацию (IP-адрес) о сервере GENESIS64.

Организация доступа к BBMD-устройству через Workbench. Покажем, как сконфигурировать BBMD-устройство, роль которого играет сервер GENESIS64. Обратите внимание, что уст­ройство BBMD по умолчанию не выбрано.

  1. Узнайте IP-адрес устройства BBMD, к которому вы хотите подключиться.
  2. Запустите Workbench из меню Пуск.
  3. Нажмите значок BACnet в Workbench project explorer.
  4. Расширьте localhost – расширьте активную конфигурацию базы данных (по умолчанию называемую BACnet).
  5. Щёлкните правой клавишей на Ports и выберите Port или нажмите кноп­ку на панели инструментов и выберите Port. Появится панель с параметрами BACnet-порта.
  6. Введите название в текстовом поле Name и описание Description.
  7. Убедитесь, что выбрали правильный сетевой адаптер (Network Adapter) в поле BACnet IP Channel Type.
    Замечание. Если у вас две сетевые карты, убедитесь, что выбрали нужную в выпадающем меню.
  8. Поставьте галочку напротив поля BBMD device в разделе IP Settings и убедитесь, что максимальное количество внешних устройств (Maximum Foreign Devices) выбрано верно.
  9. Добавьте адреса BDT к списку – нажмите кнопку Add Address (рис. 5) и, используя диалоговое окно, добавьте все устройства BBMD во всех сегментах IP-сетей, с которыми будет происходить обмен информацией (включая то, которое вы настроили только что).

  10. Нажмите кнопку Apply, чтобы применить изменения.
    Замечание. За дополнительной информацией об устройствах BBMD обратитесь к Справке GENESIS64: Tools > Data Connectors > BACnet > Connecting to BBMD (Инструменты > Коннекторы данных > BACnet > Подключение к устройствам BBMD).

Разрешение значений в GraphWorX64

  1. Запустите GraphWorX64 из меню Пуск.
  2. Добавьте в нём новую точку процесса (process point).
  3. Когда Data Browser откроется, выберите BACnet и просмотрите его теги.
    Замечание. Может потребоваться некоторое время для выполнения, так как все устройства BBMD должны быть опознаны. Вы можете также нажать на кнопку Refresh, чтобы обновить список устройств в Data Browser.
  4. После того как вы добавили точку процесса на экран GraphWorX64, переключитесь в режим Runtime, и вы увидите разрешённые значения BACnet.
    Замечание. Обратите внимание, что BACnet Runtime создает кэш-буфер и хранит его в файле. Так что, если вы сделали какие-то изменения в Work­bench или определили устройство BACnet и Unified Browser не отразил эти изменения, вы всегда можете очистить кэш-буфер, перейдя в BACnet Runtime provider через Workbench или выполнив следующие действия.

  • Удалите следующие файлы:
    – C:\ProgramData\ICONICS\BAC-netCache.csv,
    – C:\ProgramData\ICONICS\BAC-netCache.csv.bak.
  • BACnetRuntime64.exe может появиться в Task Manager.
  • Или вы можете нажать кнопку Clear now в конфигураторе BACnet в Workbench в настройках устройств Device Settings в разделе Device & Object Cache.

Вопрос

Как создать сигнал тревоги для неизменяющегося значения в AlarmWorX64 Server?

Ответ

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

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

В приведённом далее примере мы будем инициировать цифровой сигнал тревоги, когда значение тега @sim64:Float.Static("Static1") не изменяется в течение 60 секунд. Выражение будет храниться в Unified Data Manager (UDM) и может быть использовано для различных OPC-тегов, если имя OPC-тега будет установлено в качестве строкового параметра.

Сигнал будем создавать в три этапа.

  1. Создать новое UDM-выражение для разницы между локальным временем и временем OPC-тега.
  2. Создать новую цифровую тревогу в AlarmWorX64 Server, которая использует это выражение.
  3. Открыть GraphWorX64 и проверить корректность генерации тревоги в AlarmWorX64 Viewer.

Создание UDM-выражения

  1. В выражении сконфигурируем разницу между локальным временем ПК currentdatetimeutc (1000) в UTC и меткой времени (также в UTC) последнего обновления OPC-тега.
  2. timestamp(@sim64:Float.Static("Static1").Value)
  3. Используем функцию totalseconds() для преобразования результата в секунды.
  4. Логическая функция IF THEN ELSE с порогом в секундах будет определять значение выражения. Значение 1 будет возвращено в случае, если разница во времени больше 60 с и 0, если разница меньше.
  5. Проверим синтаксис выражения с помощью кнопки «Проверить синтак­сис» в редакторе выражений.
  6. Сохраним выражение. На рис. 6 можно увидеть конечный результат.

  7. Синтаксис выражения следующий:
    IF totalseconds( currentdatetimeutc( 1000 )-{{timestamp( @sim64:Float.Static( "Static1").Value )}}) > 60
    THEN 1
    ELSE 0
    Замечание. Локальное время берётся в UTC, потому что OPC-метки времени возвращаются в формате UTC.

Создание сигнала тревоги

  1. Создайте новый сигнал тревоги в конфигураторе сервера AlarmWorX64. OPC-вход будет установлен на использование UDM-выражения, созданного на предыдущем шаге.
  2. Установите значение 1 для Alarm State Value и сохраните конфигурацию тревоги (рис. 7).

Проверка работы настроенной тревоги в GraphWorX64

Откройте GraphWorX64, выведите на экран AlarmWorX64 Viewer и подождите. Если значение не будет меняться в течение 60 с, то появится сигнал тревоги (рис. 8).

Вопрос

Как создаются элементы управления 2D в GraphWorX64?

Ответ

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

Мы рассмотрим основы функциональности и некоторые полезные советы для элементов управления Scale (Шкала) и Pipe (Труба), представленных на рис. 9.

Элемент Scale. Некоторые из наиболее трудных аспектов проектирования манометра или шкал включают равномерное нанесение делений, выравнивание нумерации или при необходимости создание точной дуги. С использованием элемента Scale сложностей с этим не будет.

Давайте ознакомимся с этим элементом на примере.

  1. Откройте GraphWorX64: Start > Programs > ICONICS > GENESIS64 > GraphWorX64 > GraphWorX64.
  2. Выберите Controls, затем Scale Control.
  3. Создайте в произвольном месте элемент Scale.
    Замечание. В зависимости от формы прямоугольника, который вы нарисовали для элемента Scale, он будет иметь вертикальную шкалу, если вы нарисовали высокий прямоугольник, или горизонтальную шкалу, если вы нарисовали широкий прямоугольник, или круглую шкалу, если вы нарисовали квадрат. Тип шкалы может быть изменён в любое время после создания.
  4. Если вам нужно, чтобы шкала была вертикальной, то в свойствах элемента измените ScaleType на Vertical. Обратите внимание, что изменение размера элемента Scale ведёт к пропорциональному изменению расстояния между делениями.
  5. В свойствах элемента измените зна­чение параметра MajorDivision, расположенного в категории Scale, с 5 на 10.
  6. Для отображения указателя нарисуйте многоугольник Polygon и разместите его справа от шкалы. Окрасьте его в желаемый цвет.
  7. В свойствах многоугольника (Polygon) отметьте положение (Location) как динамическое (Dynamic), так чтобы начало было внизу шкалы, а конец наверху, как это показано на рис. 10.

  8. Параметр DataSource свойства Location Dynamic установите в localism: ramp.
  9. Установите режим Runtime и посмотрите, как указатель перемещается вдоль шкалы в зависимости от изменения сигнала симуляции.

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

  1. Откройте GraphWorX64: Star > Programs > ICONICS > GENESIS64 > GraphWorX64 > GraphWorX64.
  2. Выберите Controls, затем Pipe Control.
  3. Создайте в произвольном месте элемент Pipe.
    Замечание. В зависимости от формы прямоугольника, который вы нарисовали для элемента Pipe, получится вертикальная труба, если вы нарисовали высокий прямоугольник, или горизонтальная труба, если вы нарисовали широкий прямоугольник.
  4. Сделайте двойной щелчок на новом элементе Pipe, вы увидите, что он принял вид красной линии с белыми квадратами в начале и конце трубы, как это показано на рис. 11.

  5. Сейчас можно добавить места сгибов, щёлкнув на красной линии в нужном месте и перетащив её в выбранную позицию. Поведение похоже на свойство Location Dynamic.
  6. После того как вы создали несколько дополнительных мест сгиба, можно увидеть, как они плавно формируются в одну трубу.
  7. Перейдите к свойствам элемента Pipe. В категории Pipe измените значения параметров торцов StartCap и EndCap с плоского (Flat) на скруглённый (Round). Теперь концы труб имеют скруглённый вид.
  8. Разместите объект Ellipse на одном из концов трубы.
  9. Добавьте свойству Location объекта Ellipse значение Dynamic. На этом этапе вам нет необходимости определять путь для Ellipse.
  10. Выберите Ellipse, потом элемент управления Pipe при помощи клавиш Shift, используя их на Object Explorer или экране.
  11. Щёлкните по ним правой клавишей мыши, появится опция Copy Path To Location Dynamic (Скопировать путь в свойство Location Dynamic).
  12. Опция может не появиться, если это произошло, выберите свойство Location Dynamic объекта Ellipse, щёлкните на Edit Dynamic On-Screen (Редактировать динамику на экране) внизу окна свойств. Результат представлен на рис. 12.

  13. Путь свойства Location Dynamic будет автоматически проложен по тому же пути, как и у элемента управления Pipe.
  14. Параметр DataSource свойства Location Dynamic установите в localism:ramp.
  15. Установите режим Runtime и наблюдайте, как эллипс перемещается вдоль трубы.

В следующем выпуске «GENESIS64 – это просто!» будут предложены ответы на другие интересные и часто задаваемые вопросы пользователей. ●

Автор – сотрудник фирмы ПРОСОФТ
Телефон: (495) 234-0636
E-mail: info@prosoft.ru

Комментарии
Рекомендуем

ООО «ПРОСОФТ» 7724020910 2SDnjeti7ig
ООО «ПРОСОФТ» 7724020910 2SDnjeti7ig