Skip to content

Генерация глобального словаря Unimod

Данный материал описывает процесс генерации глобального словаря для среды программирования ПЛК Unimod PRO 2.

Исходные данныеЛисты OBJ.* модели ПЛК; шаблоны каналов в OBJTYPE; PlcOptions (opt.*StartAddr для Modbus)
Как запуститьОпция «Генерация глоб. словаря Unimod» в окне работы или «Запустить всё»
Результаты генерацииUnimod\Dictionary.csv в каталоге проекта ПЛК
Как посмотретьОткрыть файл Dictionary.csv; Результат сборки
Как импортироватьКопирование словаря в Unimodдо импорта Modbus и FBD/ST

Порядок шагов — в пути от модели к результатам.

Функция “Генерация глоб. словаря Unimod” — это ключевой этап в процессе автоматизированной подготовки проекта для среды программирования ПЛК ТРЕЙ — Unimod PRO 2. Она создает файл Dictionary.csv, который служит основой для импорта всех объектов (функциональных блоков, переменных) в проект Unimod 2.

Опция «Генерация глоб. словаря Unimod» в окне «Опции генерации»

Рисунок 1 — Опция «Генерация глоб. словаря Unimod»

Назначение и содержимое глобального словаря

Section titled “Назначение и содержимое глобального словаря”

Глобальный словарь — это таблица, содержащая описание всех экземпляров объектов, которые должны быть созданы в проекте Unimod 2. Он включает:

  • Экземпляры функциональных блоков (FB): Например, AiProc3, Mot2c4s, SpotDetector_1_PLC. Каждый экземпляр имеет уникальное имя (TAG) и настройки каналов (входы/выходы).
  • Переменные простых типов: Булевские, целые, вещественные переменные, используемые для диагностики, управления или обмена данными (например, Invalid, Status, OutCommand).

Описание полей глобального словаря

Section titled “Описание полей глобального словаря”

Файл Dictionary.csv соответствует формату, описанному в официальной документации Unimod 2. Ниже приведено уточнённое описание ключевых столбцов:

Описание столбцов файла импорта глобального словаря

Section titled “Описание столбцов файла импорта глобального словаря”

Файл импорта глобального словаря в проект Unimod 2 представляет собой .csv файл. Он содержит описание всех экземпляров объектов (функциональных блоков, переменных) и их атрибутов.

Каждая строка файла описывает один объект или канал. Столбцы разделены точкой с запятой (;).

Столбцы настройки каналов, влияющие на формирование глобального словаря:

СтолбецНазваниеОписание
NameИмяУникальный идентификатор переменной или экземпляра функционального блока (тег). Должен соответствовать правилам именования Unimod (латиница, без пробелов и специальных символов, кроме _).
TypeТипТип данных переменной. Может быть простым типом (B, I, R и др.).
ADDR_MODАдрес модуля / Индексы для массиваАдрес регистра Modbus (если используется) или индексы для массива. Формат: <Тип регистра>: <адрес>.
LibraryБиблиотекаЗаполняется автоматически на основании того, какие FB Unimod используются (см. ниже про лист template)
LengthДлинаЗаполняется автоматически на основании того, какие FB Unimod используются (см. ниже про лист template)
ValueЗначениеНачальное значение переменной. Для булевых — true/false, для числовых — число.
AttributeЧтение / записьR, RW
FRDФильтр дребезгаПараметр фильтрации дребезга сигнала.
SaveХранениеУказывает, должен ли канал сохраняться при перезагрузке.
AccessДоступНастройка доступа к каналу (например, только для чтения).
MOD_BUS_typeModbus типУказывает тип регистра Modbus (DI, COIL, IR, HR).
MOD_BUSModbus адресАдрес регистра Modbus (если используется).
EDUЕдин.изм.Единицы измерения (например, °C, %, мА).
Cold_startХолодный стартУказывает, должен ли канал инициализироваться при холодном старте.
IndexИндексИндекс элемента в массиве (если переменная является массивом).
Is_ArАрхивацияУказывает, должен ли канал архивироваться.
Ar_countСчётчик архиваКоличество записей в архиве.
Ar_periodПериод архивацииПериодичность записи в архив (в секундах).
Ar_filterФильтр архивацииФильтр дребезга для архивации.
AlphaServerNameИмя в Alpha.ServerПуть тега для карты адресов протокола UNET и привязки к alpha.DevStudio — см. ниже. Не связан с адресацией Modbus Slave.
CommentКомментарийПроизвольный текст, описывающий назначение переменной. Отображается в интерфейсе Unimod 2 и может использоваться для пояснений при отладке.
AlphaCategoryDevStudio категорияКатегория данных, используемая alpha.DevStudio. Определяет поведение тега (логирование, архивация, сигнализация).

Формирование столбца AlphaServerName (протокол UNET)

Section titled “Формирование столбца AlphaServerName (протокол UNET)”

Столбец AlphaServerName заполняется при «Генерации глоб. словаря Unimod» и используется для автоматической генерации карты адресов протокола UNET в системе Альфа Сервер и для переноса unet.xml в проект alpha.DevStudio. Это поле содержит полный путь к тегу в иерархии DevStudio; к расчёту адресов Modbus Slave оно не относится — адреса Modbus см. Алгоритм присвоения адресов Modbus и Расчёт адресов Modbus Slave.

Значение в столбце AlphaServerName формируется на основе трёх ключевых полей из модели ПЛК (лист OBJ.*):

СтолбецНазваниеОписание
PathDevStudioПуть к объекту в DevStudioПолный путь в иерархии alpha.DevStudio: root.[Имя_ПЛК].[Группа].[Зона].[Помещение]. Например: root.P0_80_010.JF_CA_1001.Valve.Room_139.
TAGУникальный идентификатор экземпляраИмя экземпляра в модели ПЛК (например, P0_80_010_FA_BTH_047). Должно соответствовать правилам именования Unimod.
DevStudioNameИмя в DevStudioПуть к каналу внутри объекта в alpha.DevStudio. Если не заполнено, AlphaServerName остаётся пустым и канал не попадает в карту адресов UNET.

В модели ПЛК (P0-80-010-JF01-CA1001.xlsx) на листе OBJ.TechObject:

PathDevStudioTAGDevStudioName
root.P0_80_010.JF_CA_1001.Valve.Room_139P0_80_010_FA_BTH_047AFA_Struct_Input.CommFailure

В словаре и в карте UNET для DevStudio канал получит имя:

root.P0_80_010.JF_CA_1001.Valve.Room_139.P0_80_010_FA_BTH_047.AFA_Struct_Input.CommFailure
  • Формат: [PathDevStudio].[TAG].[DevStudioName]
  • Соединение: части пути соединяются точкой (.), без пробелов.
  • Назначение: привязка канала к объекту в DevStudio для работы по протоколу UNET; перенос — пункт «Копирование unet.xml в DevStudio» в результатах генерации.

При активации опции “Генерация глоб. словаря Unimod” конфигуратор Uniplant Atomix выполняет следующие действия:

  1. Сбор данных из моделей верхнего уровня
    Система читает листы OBJ.* в модели ПЛК (например, P0-80-010-JF01-CA1001.xlsx). Для каждого экземпляра объекта определяется:

    • Имя типа (OBJTYPENAME).
    • Шаблон (Template).
    • Уникальный тег (TAG).
    • Настройки каналов и параметров.
  2. Обработка базовых моделей (OBJTYPE)
    Для каждого найденного OBJTYPE (например, AiProc3.xls) система загружает его описание и подставляет значения из модели ПЛК. Это позволяет сформировать полную структуру экземпляра, включая все входы, выходы и внутренние переменные.

  3. Расчёт адресов Modbus (при включённых опциях «Генерация маппинга Modbus» и/или «Округление при адресации»)
    Адреса регистров рассчитываются по модели ПЛК и шаблонам OBJTYPE. Подробнее — в Алгоритм присвоения адресов Modbus и Расчёт адресов Modbus Slave.

  4. Сохранение результата
    Файл Dictionary.csv записывается в каталог проекта Unimod текущего ПЛК (путь из UnimodFolder в PlcOptions). В логе источник Unimod2 фиксирует создание и сохранение словаря.

  5. Импорт в Unimod 2
    После генерации используйте пункт «Копирование словаря в Unimod» в меню Unimod. Импорт словаря выполняют до импорта Modbus и импорта FBD/ST.