Skip to content

OpcAddressMap

Данный материал описывает внешний модуль OpcAddressMap — генератор Excel-карты OPC-адресов для выбранного ПЛК.

Ожидаемый результат: пользователь понимает, какие данные нужны для запуска, куда сохраняется файл и как настройки влияют на состав карты.

Внешний модуль OpcAddressMap (библиотека StandardModules.dll) формирует Excel-карту OPC-адресов для выбранного ПЛК на основе:

Модуль не изменяет проект DevStudio — только создаёт итоговый файл документации в каталоге результатов.

Внешний вид модуля в Uniplant Atomix

Section titled “Внешний вид модуля в Uniplant Atomix”

Внешний вид модуля OpcAddressMap в Uniplant Atomix

Карточка внешнего модуля «OpcAddressMap» в Uniplant Atomix

Связь с моделью ПЛК и OBJTYPE

Section titled “Связь с моделью ПЛК и OBJTYPE”

Карта OPC строится на пересечении данных модели ПЛК, шаблонов OBJTYPE и дерева IOS в DevStudio. Ошибки или пропуски в XLS-моделях напрямую влияют на состав строк в итоговом Excel.

Источник — файл логики ПЛК (JSC\Usr\Prj\Conf\Models\PLC\Logic\{Имя_ПЛК}.xlsx), листы OBJ.*.

Для каждого инстанса в модели ПЛК задаётся:

Поле в модели ПЛКРоль для OpcAddressMap
OBJTYPENAMEСсылка на файл OBJTYPE с описанием каналов
TemplateИмя листа-шаблона в OBJTYPE (например, 4_20mA_R3)
TAGИмя тега/сигнала — попадает в колонку карты «тег», «сигнал»

Модуль обходит инстансы выбранного объекта в Uniplant Atomix и для каждого канала подтягивает параметры из соответствующего листа OBJTYPE.

Источник — JSC\Conf\Models\ObjTypes\{Имя_Типа}.xls (имя типа = OBJTYPENAME из модели ПЛК). На листе шаблона (Template) описаны каналы объекта.

Колонки OBJTYPE, важные для OPC-карты (см. листы шаблонов OBJTYPE):

Колонка OBJTYPEРоль для OpcAddressMap
OpcIntegrationПризнак «интеграция по OPC». При включённой настройке модуля «Учитывать параметр: интеграция по OPC» в карту попадают только каналы, где флаг задан
DevStudioNameИмя канала в IOS — по нему выполняется сопоставление с объектами DevStudio при пересечении ПЛК и Application
alarmLevelУровень аварии — для подстановки описаний из AplhaAlarms.xls
Шкалы, единицы, тип доступа и др.Заполняют соответствующие поля строки OPC-карты (MinScale/MaxScale, единицы измерения, тип, комментарий и т.д.)

Как данные сходятся в одну строку карты

Section titled “Как данные сходятся в одну строку карты”
  1. Из модели ПЛК берётся инстанс (OBJTYPENAME, Template, TAG).
  2. Из OBJTYPE по листу Template — параметры канала (OpcIntegration, шкалы, тип и т.д.).
  3. Из DevStudio (IOS) — фактический объект и канал по DevStudioName.
  4. Из EventLists — позиция объекта в структуре ПЛК; из AplhaAlarms — текстовые описания по alarmLevel.

Куда сохраняется результат

Section titled “Куда сохраняется результат”
  1. Папка результата формируется по шаблону:
    %JSC%\USR\PRJ\ResultFiles\PLC\<имя ПЛК>\Docs\OpcAddressMap
  2. Если переменные ПЛК в шаблоне не подставились — в логе ошибка «Переменная(ые) не подставились», модуль может завершиться без файла.
  3. При отсутствии папки она создаётся автоматически.
  4. Папка появляется в Result-кнопках Uniplant Atomix (иконка папки — быстрый переход к каталогу).
  5. Имя файла: <имя ПЛК>_OPCAddressMap.<расширение>, где расширение задаётся настройкой «Расширение файла» (xls или xlsx).

Подготовка перед запуском

Section titled “Подготовка перед запуском”

Перед генерацией модуль выполняет проверки и подготовку данных:

ШагЧто проверяется
Проект DevStudioОткрывается Solution/Project, загружаются домены и атрибуты Application
Шаблон ExcelДолжна быть задана переменная JSC EXCEL_SIGNALS_TEMPLATE_PATH — путь к шаблону карты сигналов
OPC-серверПо выбранному IOS Application ищется и проверяется конфигурация OPC UA
Модели событийAplhaAlarms.xls и EventLists.xls (см. также Карты атрибутов и DS:Назначение базовых типов)

Если шаблон Excel или данные OPC не найдены — модуль завершается с ошибкой в логе.

  1. Имя выбранного объекта в настройках Uniplant Atomix должно содержать не менее трёх уровней: <домен>.<узел>.<AlphaServer>. Иначе — ошибка «Не найден объект OPC сервера».
  2. В DevStudio ищется узел с модулем OPC UA, имя которого задано настройкой «Название OPC UA сервера» (по умолчанию UaServer), тип модуля — OpcUaModule.
  3. Из найденного сервера в шаблон Excel подставляются имя, версия (OPC UA) и TCP-порты (основной и резервный).

Сбор данных и формирование карты

Section titled “Сбор данных и формирование карты”
  1. Собираются объекты управления (ControlObject) текущего ПЛК и выбранного IOS Application (полная развёртка дерева).
  2. Загружаются инстансы выбранного объекта из модели ПЛК.
  3. Подключаются описания уровней аварий из AplhaAlarms и позиции объектов из EventLists.
  4. Выполняется пересечение данных IOS и ПЛК по выбранному Application Object:
    • при включённой настройке «Учитывать параметр: интеграция по OPC» — в карту попадают только инстансы с флагом интеграции OPC;
    • при выключенной — все инстансы.
  5. Для каждой строки карты заполняются поля: позиция, имя, тег, сигнал, период опроса, шкалы (MinScale/MaxScale), единицы, коэффициент, состояния и знаки, тип, тип доступа, источник метки времени, время, комментарий.
  6. Шаблон Excel обрабатывается и сохраняется в результирующую папку. В логе: «Файл OpcAddressMap сохранен в …».
  • Любая ошибка в процессе работы фиксируется в логе («Во время работы модуля произошла ошибка …»).
  • Итоговый файл может не создаться или оказаться неполным.
  • Проект DevStudio модуль не изменяет.
ПараметрПо умолчаниюНазначение
Расширение файлаxlsФормат итогового файла: xls или xlsx
Название OPC UA сервераUaServerИмя OPC-модуля внутри Alpha-сервера в DevStudio
Учитывать параметр: интеграция по OPCвключеноФильтр по колонке OpcIntegration в OBJTYPE — только каналы с интеграцией OPC

Окно настроек модуля OpcAddressMap

Окно «Настройки модуля» для OpcAddressMap в Uniplant Atomix