Миграция на ObjectTypeVersion 1.0
Все переходы выполняются вручную, по данным модели. Переводить модели можно постепенно: каждая модель собирается по своему формату, экземпляры в моделях верхнего уровня не меняются — Template в них остаётся коротким (CC).
| Откуда | Куда | Раздел |
|---|---|---|
| старый формат (монолит) | ObjectTypeVersion 1.0 | ниже |
| ранний 1.0 (аргументы с колонки E) | 1.0 с колонкой-выключателем | ниже |
$JSM без алиасов | $JSM с алиасами в F | ниже |
Старый формат → 1.0
Section titled “Старый формат → 1.0”-
Сохраните исходный лист шаблона рядом под именем
CC_OLD(или@CC_OLD, чтобы он не участвовал в анализе) — как эталон для сверки. -
Добавьте лист
systemсо строкой$ | VQ | ObjectTypeVersion | 1.0. -
Переименуйте лист шаблона в
Tmpl.<TemplateName>(CC→Tmpl.CC). Экземпляры трогать не нужно: парсер ищет сначалаTmpl.CC, затемCC. -
Таблицу каналов перенесите в листы
Ch.*: общие — в базовые Excel библиотеки, специфичные — в локальный листCh.<имя>этого файла. На каждый — строка$FL. -
Листы
DevSt.*/HMI.*/HMIS.*замените строками$FLна базы библиотеки (или оставьте локальными и подключите какthis). Для DevStudio:TechObject.devStudioTypeс манифеста уходит в$VQлистаDevSt.*, путь и имя — в аргументы$FL. -
Удалите с манифеста списки
devStudioTemplates,HmiIcons,StaburIconTemplates— в 1.0 они не используются.UnimodAliasesоставьте, только если нужен алиас без своего канала. -
Jsm из колонок
IGM.POU*/PouName*листаUnimodFBпри желании перенесите в строки$JSM— см. Подключение jsm. -
Сравните результат сборки с эталоном: состав каналов, объекты DevStudio, иконки, карту Modbus, ST.
Ранний 1.0 → колонка-выключатель E
Section titled “Ранний 1.0 → колонка-выключатель E”В ранних моделях 1.0 колонки E у $FL / $JSM не было — значения начинались с E. Теперь E — выключатель, и все значения сдвинулись на одну колонку вправо.

Рис. — манифест Tmpl.CC до переноса: значения с колонки E, списки devStudioTemplates / HmiIcons ещё на листе.
Перенос строки: вставить ячейку в E (со сдвигом вправо) и написать в ней x или условие.
| До | После |
|---|---|
$ FL CCB.xlsx Ch.CCB Open DiCC_Open | $ FL CCB.xlsx Ch.CCB x Open DiCC_Open |
$ FL Hmi-Trip.xlsx HMI.Trip | $ FL Hmi-Trip.xlsx HMI.Trip x |
Проверьте сразу после переноса:
- Пустая E = выключено. У строк без аргументов (типично — иконки HMI) после вставки E останется пустой, и подключение исчезнет. Проставьте
x. - Сдвиг аргументов.
aliasканала,DevStudioTemplateобъекта должны оказаться в F. Признак ошибки: в моделиaliasравен имени шаблона DevStudio. - Счёт
{argN}. Если база ждёт{arg4}, манифест должен передать четыре непустых значения — незакрытый аргумент в лог не пишется.
$JSM без алиасов → $JSM с алиасами в F
Section titled “$JSM без алиасов → $JSM с алиасами в F”Первое значение $JSM (F) теперь — алиасы строк UnimodFB, все значения сдвинулись на одну позицию: прежний arg1 стал arg2.
| До | После |
|---|---|
$ JSM …\di_do\{arg1}.jsm assign_di 1 Inp_Bool_apcs | $ JSM …\di_do\{arg2}.jsm assign_di 1 base Inp_Bool_apcs |
Перенос строки — два действия: вставить в F алиас строки, к которой относится jsm, и в самой строке заменить {arg1} → {arg2}, {arg2} → {arg3} и т.д.
Проверьте:
- Какой алиас писать. Тот, у чьей строки
UnimodFBjsm должен взять[template.name]. Раньше это всегда была первая строка объекта — если без разницы, пишите её алиас (base). - Номера
{argN}. Путь и имя вывода, ссылавшиеся на{arg1}, теперь должны ссылаться на{arg2}— иначе в путь подставится алиас. - Строки в базовых Excel. Если у
$JSMв базе своих значений не было, её трогать не нужно: она по-прежнему берёт{argN}из$FLи уходит к первой строке объекта.