Генерация глобального словаря Unimod
Данный материал описывает процесс генерации глобального словаря для среды программирования ПЛК Unimod PRO 2.
Сводка
Section titled “Сводка”| Исходные данные | Листы OBJ.* модели ПЛК; шаблоны каналов в OBJTYPE; PlcOptions (opt.*StartAddr для Modbus) |
| Как запустить | Опция «Генерация глоб. словаря Unimod» в окне работы или «Запустить всё» |
| Результаты генерации | Unimod\Dictionary.csv в каталоге проекта ПЛК |
| Как посмотреть | Открыть файл Dictionary.csv; Результат сборки |
| Как импортировать | Копирование словаря в Unimod — до импорта Modbus и FBD/ST |
Порядок шагов — в пути от модели к результатам.
Введение
Section titled “Введение”Функция “Генерация глоб. словаря Unimod” — это ключевой этап в процессе автоматизированной подготовки проекта для среды программирования ПЛК ТРЕЙ — Unimod PRO 2. Она создает файл Dictionary.csv, который служит основой для импорта всех объектов (функциональных блоков, переменных) в проект Unimod 2.

Рисунок 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 файл. Он содержит описание всех экземпляров объектов (функциональных блоков, переменных) и их атрибутов.
Структура файла
Section titled “Структура файла”Каждая строка файла описывает один объект или канал. Столбцы разделены точкой с запятой (;).
Столбцы настройки каналов, влияющие на формирование глобального словаря:
| Столбец | Название | Описание |
|---|---|---|
| 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_type | Modbus тип | Указывает тип регистра Modbus (DI, COIL, IR, HR). |
| MOD_BUS | Modbus адрес | Адрес регистра 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 и может использоваться для пояснений при отладке. |
| AlphaCategory | DevStudio категория | Категория данных, используемая alpha.DevStudio. Определяет поведение тега (логирование, архивация, сигнализация). |
Формирование столбца AlphaServerName (протокол UNET)
Section titled “Формирование столбца AlphaServerName (протокол UNET)”Столбец AlphaServerName заполняется при «Генерации глоб. словаря Unimod» и используется для автоматической генерации карты адресов протокола UNET в системе Альфа Сервер и для переноса unet.xml в проект alpha.DevStudio. Это поле содержит полный путь к тегу в иерархии DevStudio; к расчёту адресов Modbus Slave оно не относится — адреса Modbus см. Алгоритм присвоения адресов Modbus и Расчёт адресов Modbus Slave.
Источник данных
Section titled “Источник данных”Значение в столбце 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. |
Пример
Section titled “Пример”В модели ПЛК (P0-80-010-JF01-CA1001.xlsx) на листе OBJ.TechObject:
| PathDevStudio | TAG | DevStudioName |
|---|---|---|
root.P0_80_010.JF_CA_1001.Valve.Room_139 | P0_80_010_FA_BTH_047 | AFA_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Правила формирования
Section titled “Правила формирования”- Формат:
[PathDevStudio].[TAG].[DevStudioName] - Соединение: части пути соединяются точкой (
.), без пробелов. - Назначение: привязка канала к объекту в DevStudio для работы по протоколу UNET; перенос — пункт «Копирование unet.xml в DevStudio» в результатах генерации.
Процесс генерации
Section titled “Процесс генерации”При активации опции “Генерация глоб. словаря Unimod” конфигуратор Uniplant Atomix выполняет следующие действия:
-
Сбор данных из моделей верхнего уровня
Система читает листыOBJ.*в модели ПЛК (например,P0-80-010-JF01-CA1001.xlsx). Для каждого экземпляра объекта определяется:- Имя типа (
OBJTYPENAME). - Шаблон (
Template). - Уникальный тег (
TAG). - Настройки каналов и параметров.
- Имя типа (
-
Обработка базовых моделей (OBJTYPE)
Для каждого найденного OBJTYPE (например,AiProc3.xls) система загружает его описание и подставляет значения из модели ПЛК. Это позволяет сформировать полную структуру экземпляра, включая все входы, выходы и внутренние переменные. -
Расчёт адресов Modbus (при включённых опциях «Генерация маппинга Modbus» и/или «Округление при адресации»)
Адреса регистров рассчитываются по модели ПЛК и шаблонам OBJTYPE. Подробнее — в Алгоритм присвоения адресов Modbus и Расчёт адресов Modbus Slave. -
Сохранение результата
ФайлDictionary.csvзаписывается в каталог проекта Unimod текущего ПЛК (путь изUnimodFolderвPlcOptions). В логе источник Unimod2 фиксирует создание и сохранение словаря. -
Импорт в Unimod 2
После генерации используйте пункт «Копирование словаря в Unimod» в меню Unimod. Импорт словаря выполняют до импорта Modbus и импорта FBD/ST.