ObjectTypeVersion 1.0 (маркеры $FL)
ObjectTypeVersion 1.0 (формат FL) — новый формат модели OBJTYPE, доступен с Uniplant Atomix 1.6.3.0. OBJTYPE в нём собирается из общих базовых Excel: лист-манифест Tmpl.* подключает каналы, объекты DevStudio и иконки HMI из библиотеки. Меняется общая сущность — правится одна база, а не каждый OBJTYPE.
В старом формате OBJTYPE — монолит: один Excel держит конфиг, все строки каналов и листы DevStudio/HMI. Когда меняется общая сущность (например, типовой объект DevStudio), правку приходится повторять во всех OBJTYPE, где она встречается.
Формат FL разделяет общее и конкретное:
- общее (строки каналов, атрибуты DevStudio, опции HMI) — в базовых Excel, переиспользуемых заготовках библиотеки;
- конкретное (какие базы взять и с какими значениями) — в манифесте, листе
Tmpl.<TemplateName>внутри OBJTYPE.
Отсюда:
- общая правка — в одном месте, её подхватят все OBJTYPE, что подключают базу;
- новый OBJTYPE — это другой набор строк
$FL, без правки баз; - любое подключение пишется одинаково: «взять лист из файла с такими значениями», а вид данных понятен по префиксу имени листа (
Ch.,DevSt.,HMI.,HMIS.).
Картина целиком
Section titled “Картина целиком”OBJTYPE ESD_VlvSDV_DS.xlsx│├─ system $VQ ObjectTypeVersion 1.0 ← включает формат├─ Tmpl.CC манифест (Template экземпляра = CC)│ $VQ конфиг modbusTemplate, …│ $FL файл | лист | вкл | значения по позиции …│ $FL CCB.xlsx | Ch.CCB | 1 | Open DiCC_Open│ $FL this | Ch.Vlv | 1 | base VlvSDV│ $FL DiCC.xlsx | DevSt.DiCC_ССВ | 1 | DiCC_Open [PathDevStudio].[TAG]_ADD [TAG]_Open_CC│ $JSM файл .jsm | файл вывода | вкл | алиасы | значения …├─ Ch.Vlv локальный канал (подключается как this)└─ UnimodFB алиасы и типы FB
БИБЛИОТЕКА — базовые Excel (вид данных = префикс имени листа) Ch.* канал строки каналов {alias}, {DsTemplate} DevSt.* объект DevStudio $VQ-метаданные + атрибуты {DevStudioTemplate}, {DevStudioPath}, {DevStudioName} HMI.* иконка Alpha.HMI $VQ HmiType + опции {argN} HMIS.* иконка СТАБУР $VQ Lib, HmiType + опции {argN}
Сборка → DevStudio · мнемосхемы HMI · карта Modbus · ST-код UnimodСостав OBJTYPE
Section titled “Состав OBJTYPE”| Лист | Назначение |
|---|---|
system | обязателен — включает формат (см. ниже) |
| Tmpl.* (манифест) | обязателен, минимум один. Имя = Tmpl. + TemplateName — значение колонки Template экземпляра (по умолчанию main). В экземпляре имя пишется коротко (CC), префикс дописывает парсер. Несколько шаблонов — несколько манифестов (Tmpl.di, Tmpl.di_m, …) |
| Ch.*, DevSt.*, HMI.*, HMIS.* | локальные листы данных, специфичные для этого OBJTYPE; подключаются из манифеста как this. Общие — лежат в библиотеке |
| UnimodFB | нужен для работы с Unimod — UnimodFB и template |
| Wntk.* | панели Weintek, свой модуль; через $FL не подключаются |
Лист данных в OBJTYPE и лист базового Excel одинаковы по формату — отличается только источник в строке $FL: this или путь к файлу.
Лист system
Section titled “Лист system”$ VQ ObjectTypeVersion 1.0Ключ принимается в двух написаниях — ObjectTypeVersion и TechObject.ObjectTypeVersion; значение — любое непустое. Нет листа или переменной — модель считается старой, строки $FL не применяются.
Разметка строк
Section titled “Разметка строк”| Кол. A | Строка |
|---|---|
$ | директива; маркер — в колонке B (VQ, LST, FL, JSM, ATTFL) |
# | маркеры колонок |
H / h | заголовки колонок |
@ | комментарий, игнорируется |
d | строка данных |
Чтобы отключить строку подключения насовсем, замените $ на @. Чтобы отключить её для части объектов — используйте выключатель в колонке E. Общие правила — Служебные символы.
Как создать OBJTYPE
Section titled “Как создать OBJTYPE”-
Создайте Excel в папке
Models\ObjTypes\…. -
Добавьте лист
systemсо строкой$ | VQ | ObjectTypeVersion | 1.0. -
Создайте манифест
Tmpl.<TemplateName>(в примерах —Tmpl.CC):$VQ-строки конфига (TechObject.modbusTemplate, …);$LST TechObject.UnimodAliases— только если нужно переопределить набор алиасов;- на каждое подключение — строка
$FL: файл (C), лист с префиксом (D), выключатель (E — любое непустое значение), значения (F…N) по позиции; - при необходимости — строки
$JSMдля jsm-шаблонов ST.
-
Свои каналы, которых нет в библиотеке, — на локальном листе
Ch.<имя>, подключение$FL this Ch.<имя>. -
Для Unimod — лист
UnimodFB. -
Проверьте порядок значений в
$FL, непустой выключатель и совпадениеDsTemplateканала сDevStudioTemplateобъекта. -
Сверьте результат сборки, а не только лог: неподставленный
{argN}в лог не пишется. -
Сохраняйте файл только через Excel — сторонние редакторы и скрипты могут сделать его нечитаемым для парсера.
Базы (Ch.*, DevSt.*, HMI.*) обычно уже есть в библиотеке: новый OBJTYPE — это новый набор строк $FL.
Разделы
Section titled “Разделы”Расширение модели
Section titled “Расширение модели”| Задача | Что делать |
|---|---|
| Новый OBJTYPE | новый манифест со своим набором строк $FL |
| Новый шаблон в том же файле | ещё один лист Tmpl.<имя> |
| Новый аргумент базы | поставить {argN} в базе и дописать значение в $FL — во всех манифестах, что её подключают |
| Общая правка сущности | поправить базовый Excel |
| Общая вставка атрибутов / опций | вынести в отдельный лист и подключить в базах через $ATTFL |
| Другой набор jsm | строки $JSM в манифесте или в базе, подключаемой $FL |
| Подключение по данным объекта | переменная или <script/> в колонке C/D $FL — с учётом цены |
Глоссарий
Section titled “Глоссарий”| Термин | Значение |
|---|---|
| манифест | лист Tmpl.<TemplateName>, перечисляющий, что подключить, без самих данных |
TemplateName | значение колонки Template в экземпляре; пишется без префикса Tmpl. |
| база | переиспользуемый лист-заготовка в библиотеке (канал / DevStudio / HMI) |
| подключение | строка $FL: взять лист из файла с переданными значениями |
| префикс вида | начало имени листа: Ch. / DevSt. / HMI. / HMIS. — подключаемые виды; Tmpl. — манифест, Wntk. — Weintek |
| аргумент | значение из строки $FL, внутри листа доступно как {argN} или {семантическое имя} |
| выключатель | колонка E строки $FL / $JSM: пусто — подключения нет |
| отложенное подключение | $FL, у которого файл или лист зависят от данных объекта; читается под каждый объект |
$ATTFL | подключение общего блока атрибутов / опций внутри базы |
$JSM | подключение jsm-шаблона ST к строкам UnimodFB |