Skip to content

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.).
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
ЛистНазначение
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 или путь к файлу.

$ VQ ObjectTypeVersion 1.0

Ключ принимается в двух написаниях — ObjectTypeVersion и TechObject.ObjectTypeVersion; значение — любое непустое. Нет листа или переменной — модель считается старой, строки $FL не применяются.

Кол. AСтрока
$директива; маркер — в колонке B (VQ, LST, FL, JSM, ATTFL)
#маркеры колонок
H / hзаголовки колонок
@комментарий, игнорируется
dстрока данных

Чтобы отключить строку подключения насовсем, замените $ на @. Чтобы отключить её для части объектов — используйте выключатель в колонке E. Общие правила — Служебные символы.

  1. Создайте Excel в папке Models\ObjTypes\….

  2. Добавьте лист system со строкой $ | VQ | ObjectTypeVersion | 1.0.

  3. Создайте манифест Tmpl.<TemplateName> (в примерах — Tmpl.CC):

    • $VQ-строки конфига (TechObject.modbusTemplate, …);
    • $LST TechObject.UnimodAliases — только если нужно переопределить набор алиасов;
    • на каждое подключение — строка $FL: файл (C), лист с префиксом (D), выключатель (E — любое непустое значение), значения (F…N) по позиции;
    • при необходимости — строки $JSM для jsm-шаблонов ST.
  4. Свои каналы, которых нет в библиотеке, — на локальном листе Ch.<имя>, подключение $FL this Ch.<имя>.

  5. Для Unimod — лист UnimodFB.

  6. Проверьте порядок значений в $FL, непустой выключатель и совпадение DsTemplate канала с DevStudioTemplate объекта.

  7. Сверьте результат сборки, а не только лог: неподставленный {argN} в лог не пишется.

  8. Сохраняйте файл только через Excel — сторонние редакторы и скрипты могут сделать его нечитаемым для парсера.

Базы (Ch.*, DevSt.*, HMI.*) обычно уже есть в библиотеке: новый OBJTYPE — это новый набор строк $FL.

ЗадачаЧто делать
Новый OBJTYPEновый манифест со своим набором строк $FL
Новый шаблон в том же файлеещё один лист Tmpl.<имя>
Новый аргумент базыпоставить {argN} в базе и дописать значение в $FL — во всех манифестах, что её подключают
Общая правка сущностипоправить базовый Excel
Общая вставка атрибутов / опцийвынести в отдельный лист и подключить в базах через $ATTFL
Другой набор jsmстроки $JSM в манифесте или в базе, подключаемой $FL
Подключение по данным объектапеременная или <script/> в колонке C/D $FL — с учётом цены
ТерминЗначение
манифестлист 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