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
— источник мнемосхемы.
Процесс обработки:
- AutomiqAutomation находит модель
AiProc3.xls
. - Загружает лист
template
— создаёт FBAiProc3
с именемTIC101
. - Загружает лист
4_20mA_R3
— применяет настройки каналов, Modbus, архивации. - Подставляет
[TAG]
=TIC101
в шаблон. - Генерирует:
- FBD-файл в Unimod,
- Глобальный словарь для Unimod2,
- объект в alpha.DevStudio,
- привязку по Modbus,
- экраны HMI,
- и т.д.
5. Логирование каналов и уровни аварий
- Каждый канал в OBJTYPE может иметь уровень аварии (
alarmLevel
), определяющий его поведение при логировании, генерации событий и отображении в системе. - Для каждого уровня аварии задаются параметры: необходимость архивации, приоритет, звуковое сопровождение, стратегия квитирования и описание.
- Соответствие между уровнем аварии и параметрами задаётся в файле
AplhaAlarms.xls
.
Подробнее см. в 5. Логирование каналов и уровни аварий.md.
Рекомендации по созданию новых моделей OBJTYPE
- Создайте лист
template
— опишите FB и путь к.jsm
. - Создайте шаблоны (без префиксов) —
4_20mA
,Discrete
,FireDetector
и т.д. - Укажите
Уровень аварии
для каждого канала. - Убедитесь, что
AplhaAlarms.xls
содержит все используемые уровни. - Укажите
TechObject.modbusTemplate
— имя шаблона Modbus. - Проверьте, что в
OBJ.*
модели ПЛК указан корректныйTemplate
.
Такой подход обеспечивает гибкость, унификацию и автоматизацию всей цепочки от тега до мнемосхемы.