HMI-Генератор мнемосхем
Данный материал описывает функционал внешнего модуля HMI-Генератор мнемосхем.
Ожидаемый результат: Пользователь ознакомлен с базовым функционалом модуля и способен самостоятельно пользоваться его функционалом.
Введение
Section titled “Введение”Внешний модуль системы Uniplant Atomix, предназначенный для автоматизированной генерации мнемосхем в проекте Alpha.HMI на основе данных модели ПЛК и связанных моделей OBJTYPE. Создаёт структурированные мнемосхемы с привязанными символами, отражающими состояние оборудования.
Внешний вид модуля в Uniplant Atomix
Section titled “Внешний вид модуля в Uniplant Atomix”
Карточка внешнего модуля «HMI:Генератор мнемосхем» в Uniplant Atomix
Ключевые функции
Section titled “Ключевые функции”- Автоматическое создание мнемосхем с именем
{HmiTag}_tagsдля каждого уникального значения HmiTag, указанного в модели ПЛК. - Генерация всех возможных символов (иконок) из листов HMI.* соответствующих моделей OBJTYPE.
- Присвоение параметров инициализации каждому символу на основе данных из модели ПЛК и шаблонов OBJTYPE.
- Поддержка работы без предварительного создания IOS-представлений — символы создаются, но без привязки; привязка выполняется позже через HMI Менеджер.
Дополнительные возможности:
- Работает с любыми типами объектов, у которых есть листы
HMI.*в OBJTYPE. - Поддерживает многократный запуск — при повторном запуске перезаписывает существующие мнемосхемы, если это требуется.
- Интегрируется с HMI Менеджером для ручной или автоматической привязки символов к тегам DevStudio.
Исходные данные
Section titled “Исходные данные”- Модель ПЛК (JSC\Usr\Prj\Conf\Models\PLC\Logic\{Имя_ПЛК}.xlsx), содержащая:
- Листы OBJ.* с указанием TAG, OBJTYPENAME, Template,
HmiTag.
- Листы OBJ.* с указанием TAG, OBJTYPENAME, Template,
- Модели OBJTYPE (JSC\Conf\Models\ObjTypes\{Имя_Типа}.xls), содержащие:
- Листы
HMI.*, описывающие доступные символы и их параметры инициализации.
- Листы
- Настройки проекта HMI, заданные в SettingManager (выбор целевого проекта HMI).
Требования к запуску
Section titled “Требования к запуску”- Должны быть сформированы объекты в alpha.DevStudio (включая представления на уровне IOS — рекомендуется, но не обязательно).
- Запуск возможен как из внешнего модуля, так и через опцию «Генерация мнемосхем HMI» в интерфейсе конфигуратора ПЛК.
Интерфейс модуля
Section titled “Интерфейс модуля”Модуль интегрирован в интерфейс конфигуратора Uniplant Atomix и доступен после выбора конкретного ПЛК. Визуально представлен иконкой с надписью «HMI: Генератор мнемосхем» и кнопками запуска/останова.

Рисунок 1 - “Интерфейс модуля HMI: Генератор мнемосхем”
Пример выбора опции ПЛК: Генератор мнемосхем HMI в интерфейсе конфигуратора Uniplant Atomix
Section titled “Пример выбора опции ПЛК: Генератор мнемосхем HMI в интерфейсе конфигуратора Uniplant Atomix”
Рисунок 2 - “Опция ПЛК: Генератор мнемосхем HMI”
Алгоритм работы
Section titled “Алгоритм работы”- Анализирует модель ПЛК и извлекает все строки с
OBJ.*, содержащиеHmiTag. - Для каждого
OBJTYPENAMEзагружает соответствующую модель OBJTYPE. - Считывает все листы
HMI.*из модели OBJTYPE — они содержат описание доступных символов и их параметров инициализации. - Формирует список уникальных значений
HmiTag. - Для каждого
HmiTagсоздаёт мнемосхему с именем{HmiTag}_tags. - Размещает на мнемосхеме все символы, соответствующие типу объекта, с подстановкой значений из модели ПЛК (например,
TAG,parentDescr,EqtDescr). - Сохраняет результат в проект HMI, указанный в настройках Uniplant Atomix.
Детализация режима HmiTagsCreator (HMI/TagScreensCreator)
Section titled “Детализация режима HmiTagsCreator (HMI/TagScreensCreator)”HMI: Генератор мнемосхем выполняется классом HmiTagsCreator и формирует/обновляет мнемосхемы *_tags по данным HmiData выбранных техобъектов.
Что попадает в обработку
Section titled “Что попадает в обработку”1. Перед запуском должна быть включена хотя бы одна настройка:
- Создавать мнемосхемы Diagnostic;
- Создавать мнемосхемы DevStMbDevice;
- Создавать мнемосхемы ПЛК.
Если все три настройки выключены, модуль завершается с ошибкой: «Не выбрано ни одного элемента для обработки».
2. По включённым настройкам загружаются наборы инстансов:
- Diagnostic —
LoadAndGetUpdatedNetSwitches; - DevStMbDevice —
LoadAndGetUpdatedDsModbusDevices; - ПЛК —
LoadOnlyPlc.
3. Если не загружен ни один объект, модуль завершается с ошибкой: «Не удалось загрузить указанные в настройках объекты».
Подготовка проекта
Section titled “Подготовка проекта”1. Открывается проект DevStudio (Solution/Project) выбранного техобъекта, создаются AxmlHlp и Api.
2. По пути HMI из конфигурации (Parser.Config.HmiDirectory) и имени ПЛК открывается HmiProject.
3. Проверяется/находится список файлов Object Type (CheckOrFindObjectTypeFiles).
Как обрабатывается один инстанс
Section titled “Как обрабатывается один инстанс”1. Если у инстанса нет HmiData, в лог пишется info-сообщение, и инстанс пропускается.
2. Для каждой записи HmiData:
- если отсутствует
MnemoName, запись пропускается с ошибкой в логе; - в значениях
HmiDataрезолвятся подстановки переменных поAdditionDataинстанса; - в
HmiProjectищется или создаётся мнемосхема с именемMnemoName; - в мнемосхеме ищется или создаётся текстовый контейнер с именем, равным
InstanceName; - в свойство
Textконтейнера записываетсяInstanceName; - внутри контейнера создаётся вложенный объект:
- имя:
<InstanceName>_<ViewName>; - тип: из
HmiData; Description:ViewName;DisplayName:<InstanceName>_<ViewName>;- применяются параметры из
HmiData(ApplyHmiOptions).
- имя:
3. Для каждой обработанной мнемосхемы в лог пишется сообщение: «Мнемосхема ’…’ обновлена или создана».
Сохранение результата
Section titled “Сохранение результата”При завершении без исключений:
- вложенные объекты раскладываются по позициям (
PlaceAllMnemosInnerObjects); - мнемосхемы сохраняются на диск (
SaveAllMnemos); - созданные/обновлённые мнемосхемы добавляются в проект
HMI; - эти же мнемосхемы помечаются как скрытые (
AddMnemosToHidden).
При исключении в лог пишется сообщение: «Проект HMI не был сохранен так как возникла ошибка во время работы модуля», и сохранение не выполняется.
Настройки режима
Section titled “Настройки режима”- Создавать мнемосхемы Diagnostic — генерация по объектам диагностики (по умолчанию выключено).
- Создавать мнемосхемы DevStMbDevice — генерация по Modbus-устройствам
DevStudio(по умолчанию выключено). - Создавать мнемосхемы ПЛК — генерация по объектам ПЛК (по умолчанию выключено).

Рисунок 4 - “Ссылка на расположение проекта HMI”
Пример сгенерированных мнемосхем в Alpha.HMI
Section titled “Пример сгенерированных мнемосхем в Alpha.HMI”На рисунке ниже показан проект Alpha.HMI, открытый в дизайнере. Проект содержит множество мнемосхем, сгенерированных внешним модулем HMI: Генератор мнемосхем. Каждая мнемосхема имеет имя формата {HmiTag}_tags и содержит набор графических элементов, соответствующих экземплярам объектов из модели ПЛК.

Рисунок 5 - “Пример сгенерированных мнемосхем в Alpha.HMI”
Связанный модуль
Section titled “Связанный модуль”- HMI Менеджер — проверка, фильтрация и донастройка/перепривязка элементов на мнемосхемах после генерации.