Skip to content

Подмена объектов

Подмена объектов — инструмент пакетной замены графических символов AlphaHMI на выбранных мнемосхемах проекта HMI. Замены задаются шаблонами на специальных мнемосхемах подмен: в шаблоне указано, какие символы (или группы символов) искать и на что их менять.

Функционал должен быть встроен в HMI Менеджер и использовать:

  • мнемосхемы подмен — источник шаблонов замены;
  • выбранные рабочие мнемосхемы — область поиска и применения подмен;
  • таблицу (string grid) — просмотр и выбор предлагаемых замен;
  • панель лога — сообщения об объектах, для которых подходящий шаблон не найден или замена не выполнена.

Поддерживается замена как одиночных символов, так и комбинаций (групп символов) в соответствии с правилами из раздела Правила подмены по шаблонам ниже.

  1. Выбор мнемосхем для поиска — пользователь указывает мнемосхемы, на которых нужно искать объекты для подмены.
  2. Чтение шаблонов замен — модуль считывает все шаблоны с мнемосхем подмен и формирует список символов (или групп символов), которые подлежат поиску.
  3. Поиск вхождений — на выбранных мнемосхемах находятся все вхождения перечисленных символов (групп).
  4. Подбор шаблона — для каждого найденного вхождения выполняется попытка подобрать подходящий шаблон замены (с учётом правил подмены: свойства, координаты, вращение и отражение).
  5. Список предлагаемых замен — сопоставленные пары «найденный объект → шаблон подмены» выводятся в string grid для просмотра и отбора.
  6. Применение замен — пользователь выполняет подмену выборочно (по отмеченным строкам) или сразу для всех предложенных замен.
  7. Запись в лог — в лог выводятся все объекты, у которых тип символа совпадает с типом, представленным на мнемосхемах шаблонов подмен, но для которых замена не выполнена (шаблон не подобран, отклонено по свойствам, вращению/отражению и т. п.).

Правила подмены по шаблонам

Section titled “Правила подмены по шаблонам”

Цель и мнемосхема подмен

Section titled “Цель и мнемосхема подмен”

Замена графических объектов AlphaHMI.

Для определения подмен предлагается использовать мнемосхему подмен — одну или несколько мнемосхем, на которых в графическом виде представлены варианты выполняемых подмен.

Структура на мнемосхеме подмен

Section titled “Структура на мнемосхеме подмен”

На мнемосхеме подмен реализуются следующие структуры:

ЭлементНазначение
ReplaceRectangle (общий прямоугольник)Объединяет пару «подменяемые объекты» и «подменяющие» (шаблон подмены)
From (прямоугольник)Содержит объекты, которые нужно заменить (подменяемые объекты)
To (прямоугольник)Содержит объекты, которые нужно подставить (подменяющие объекты)

Пример шаблона на HMI

Рис. 1 — Пример шаблона на HMI

Пример шаблонов в структуре формы

Рис. 2 — Пример шаблонов в структуре формы

Если в наборе всех шаблонов подмен некоторый набор типов для замены (один или несколько типовых элементов) встречается однократно, то для каждого свойства исходного и результирующего объекта:

  • если значения одинаковы, используется значение свойства из конкретного экземпляра (например, для сохранения надписи экземпляра при подмене ScreenNavigation);
  • если значения различны:
    • для координат (свойства X и Y) и поворота (Rotation) вычисляется разница, которая затем прибавляется к значениям свойств конкретного экземпляра;
    • для прочих свойств поиск экземпляров для замены выполняется с учётом значения данного свойства.

Если же в наборе всех шаблонов подмен некоторый набор типов для замены встречается несколько раз, следует:

  1. вычленить отличающиеся свойства у типов для замены (кроме координат — свойств X и Y);
  2. выполнять поиск экземпляров для замены с учётом значений выявленных свойств;
  3. логировать экземпляры типа, которые не были заменены из‑за поиска с учётом свойств.

Учёт расположения объектов

Section titled “Учёт расположения объектов”

Подменяемые объекты могут располагаться по‑разному относительно нулевой точки; это необходимо учитывать при размещении результата. Для механизма подмены требуется вычислять разницу в координатах между подменяющим и подменяемым объектом.

Стрелка из библиотеки ГА

Рис. 3 — Стрелка из библиотеки ГА

Стрелка из библиотеки Сатурна

Рис. 4 — Стрелка из библиотеки Сатурна

Если объект вращается или отражается нестандартным образом (например, при наличии точки трансформации), для каждого варианта размещения в шаблоне задаётся своя подмена; из неё берутся значения соответствующего свойства (поворота или отражения).

Объекты на HMI, у которых вращение или отражение не совпадает с шаблоном, подменять не следует.

Для объектов с «нормальным» вращением указывается один вариант подмены — в этом случае подменяются все объекты данного типа.

Стрелки с точкой вращения и ScreenNavigation без неё

Рис. 5 — Стрелки с точкой вращения и ScreenNavigation без неё

← К описанию HMI Менеджера