Table of Contents

3.3.1 Описание модели OBJTYPE и её связь с моделью ПЛК


3.3.1.1 Общее назначение модели OBJTYPE

Модель OBJTYPE — это типовое описание технического объекта, используемое системой AutomiqAutomation для автоматизированной генерации:

  • функциональных блоков (FB) в среде Unimod 2,
  • атрибутов диагностики и архивации в alpha.DevStudio,
  • привязки по Modbus,
  • параметров логирования (сигнализация, события),
  • инициализации HMI-символов.

Модель представляет собой Excel-файл, содержащий несколько листов, каждый из которых имеет строго определённое назначение и формат.


3.3.1.2 Префиксы листов в модели OBJTYPE

Префиксы листов определяют их назначение и критичны для корректной работы генераторов AutomiqAutomation.

Префикс Назначение
DevSt. Описание атрибутов для alpha.DevStudio (диагностика, архивация, сигнализация)
HMI. Параметры инициализации мнемосхем HMI (иконки, ссылки, пути)
Wntk. Параметры для панелей Weintek

⚠️ Важно: Листы, начинающиеся с @, являются закомментированными и игнорируются системой.

3.3.1.3 Структура модели OBJTYPE

3.3.1.3.1 Лист template — создание FB для Unimod 2

Это лист, определяющий структуру функционального блока (FB), который будет создан в среде Unimod 2.

Структура листа template:

Столбец Назначение
alias Тип строки (например, base, channel_4_20mA)
TreiFB Имя типа FB в библиотеке Unimod (например, CE_A, AiProc3)
prefix Префикс имени экземпляра (обычно пустой)
body Основная часть имени экземпляра — динамический параметр [TAG]
suffix Суффикс имени экземпляра (обычно пустой)
Library Библиотека FB (например, CE_A, AiProc3)
template1, template2, ... Дополнительные параметры шаблона (используются для выбора поведения FB)
IGM.POU1, IGM.POU2 Пути к JS-модулям (*.jsm) для привязки ST-кода
PouName1, PouName2 Имена выходных FBD-файлов
name Имя экземпляра в Unimod (обычно [TAG])

Пример (из AiProc3.xls):

d|base|AiProc3||[TAG]||AiProc3|4_20mA|0_20mA|Digital|4_20mA_R3||||ThFeedback|Th_feedback|||[TAG]|
  • Создаёт экземпляр FB AiProc3 с именем [TAG].
  • Использует шаблоны 4_20mA, 0_20mA, Digital, 4_20mA_R3.
  • Подключает ST-код через IGM.POU1 и IGM.POU2.

🔁 Важно: Значения в [], например [TAG], подставляется при обработке экземпляра на листе OBJ.* в моделях с верхнего уровня, в которых описывается создание экземпляров типов. Например модель ПЛК.


3.3.1.3.2 Листы без префиксов — шаблоны каналов

Листы без префиксов (например, 4_20mA, Digital, SpotDetector_1_ReReq) являются шаблонами каналов, которые выбираются при создании экземпляра через параметр Template.

Каждый шаблон описывает:

  • структуру каналов FB,
  • их привязку к объектам alpha.DevStudio,
  • параметры логирования (сигнализации, событий),
  • настройки Modbus,
  • правила расчета адресов в ПЛК.

Пример строки (из AiProc3.xls, лист 4_20mA):

d|base|InvalidPV|InvalidPV||B||FALSE|0|FALSE|R|нет|[Ar_count]|[Ar_period]|[Ar_filter]||[Ar_count]|[Ar_period]||Недостоверность входного сигнала||bit_coming|Invalid|x|DI|-|-|-|-|||

Ключевые поля:

Поле Назначение
Имя канала Имя канала в DevStudio (например, InvalidPV)
Тип Тип данных (B, I, R, UINT и т.д.)
Чтение / запись Доступ: R (чтение), W (запись), RW (чтение и запись)
Хранение Сохранять значение при перезагрузке: TRUE или FALSE
Доступ Права доступа (например, Public, Private)
Счётчик архива, Период архивации, Фильтр дребезга Параметры архивации сигнала
DevStudio категория Категория сигнала (например, Analog, Digital)
Описание Описание на русском и английском языках, разделённые символом | (например, Сигнал датчика\|Sensor signal)
Метка по умолчанию Метка для отображения на HMI (например, bit_coming, cmdComing)
Уровень аварии Уровень тревоги: Alarm, WarningHi, Invalid, Process, Maintenance, Imitation
Input Register, Holding Register и др. Привязка канала к Modbus-регистрам (адрес и тип)
Шаблон битовой привязки Формат данных: int3x, real4x, bool и т.п.
Объявление канала Признак VQ — переменная качества (quality tag)

🔄 Выбор шаблона: При создании экземпляра на листе OBJ.* в модели ПЛК указывается значение Template (например, 4_20mA_R3). AutomiqAutomation подставляет соответствующий лист из OBJTYPE.

💡 Перечень параметров может быть расширен, в случае необходимости реализации доп. функционала.


3.3. Глобальные параметры ($|VQ|TechObject.*)

Назначение: Определение системных свойств объекта.

Пример:

$|VQ|TechObject.modbusTemplate|CE_A
$|VQ|TechObject.devStudioType|CAUSE_EFFECT_A

Интерпретация:

  • TechObject.modbusTemplate — имя шаблона Modbus (используется при генерации обвязки).
  • TechObject.devStudioType — тип объекта в DevStudio (для диагностики).
  • TechObject.TemplateUnimod2x — шаблон FBD, описанный в библиотеке Unimod2 (Libraries\Unimod\2x[LibName]) .
  • TechObject.FbdFileName — имя файла вывода при генерации FBD.

💡 Эти параметры читаются модулями генератора при работе (например, CauseEffectFBDGenerator) для выбора правильных параметров генерации.


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

Модель OBJTYPE не автономна — она используется в связке с моделью ПЛК, где описываются экземпляры объектов.

4.1. Место в структуре проекта
  • Глобальный уровень:
    JSC\Conf\Models\ObjTypes\ — содержит модели OBJTYPE, общие для всех проектов.

  • Локальный уровень:
    JSC\USR\PRJ\Conf\Models\ObjTypes\ — содержит модели OBJTYPE, используемые только в текущем проекте. JSC\USR\PRJ\Conf\Models\PLC\Logic\{PLC}.xlsx — модель ПЛК, содержащая описание параметров генерации ПЛК, в том числе описание экземпляров объектов.

4.2. Лист OBJ.* — экземпляры объектов

Пример строки:

d|TIC101|AiProc3|4_20mA_R3|HMI_MAIN
  • TAG = TIC101 — тег экземпляра,
  • Type = AiProc3 — имя модели OBJTYPE,
  • Template = 4_20mA_R3 — шаблон из листа 4_20mA_R3 в AiProc3.xls,
  • HmiSrc = HMI_MAIN — источник мнемосхемы.

Процесс обработки:

  1. AutomiqAutomation находит модель AiProc3.xls.
  2. Загружает лист template — создаёт FB AiProc3 с именем TIC101.
  3. Загружает лист 4_20mA_R3 — применяет настройки каналов, Modbus, архивации.
  4. Подставляет [TAG] = TIC101 в шаблон.
  5. Генерирует:
    • FBD-файл в Unimod,
    • Глобальный словарь для Unimod2,
    • объект в alpha.DevStudio,
    • привязку по Modbus,
    • экраны HMI,
    • и т.д.

5. Логирование каналов и уровни аварий

  • Каждый канал в OBJTYPE может иметь уровень аварии (alarmLevel), определяющий его поведение при логировании, генерации событий и отображении в системе.
  • Для каждого уровня аварии задаются параметры: необходимость архивации, приоритет, звуковое сопровождение, стратегия квитирования и описание.
  • Соответствие между уровнем аварии и параметрами задаётся в файле AplhaAlarms.xls.

Подробнее см. в 5. Логирование каналов и уровни аварий.md.

Рекомендации по созданию новых моделей OBJTYPE

  1. Создайте лист template — опишите FB и путь к .jsm.
  2. Создайте шаблоны (без префиксов)4_20mA, Discrete, FireDetector и т.д.
  3. Укажите Уровень аварии для каждого канала.
  4. Убедитесь, что AplhaAlarms.xls содержит все используемые уровни.
  5. Укажите TechObject.modbusTemplate — имя шаблона Modbus.
  6. Проверьте, что в OBJ.* модели ПЛК указан корректный Template.

Такой подход обеспечивает гибкость, унификацию и автоматизацию всей цепочки от тега до мнемосхемы.