Skip to content

Миграция на ObjectTypeVersion 1.0

Все переходы выполняются вручную, по данным модели. Переводить модели можно постепенно: каждая модель собирается по своему формату, экземпляры в моделях верхнего уровня не меняются — Template в них остаётся коротким (CC).

ОткудаКудаРаздел
старый формат (монолит)ObjectTypeVersion 1.0ниже
ранний 1.0 (аргументы с колонки E)1.0 с колонкой-выключателемниже
$JSM без алиасов$JSM с алиасами в Fниже
  1. Сохраните исходный лист шаблона рядом под именем CC_OLD (или @CC_OLD, чтобы он не участвовал в анализе) — как эталон для сверки.

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

  3. Переименуйте лист шаблона в Tmpl.<TemplateName> (CC → Tmpl.CC). Экземпляры трогать не нужно: парсер ищет сначала Tmpl.CC, затем CC.

  4. Таблицу каналов перенесите в листы Ch.*: общие — в базовые Excel библиотеки, специфичные — в локальный лист Ch.<имя> этого файла. На каждый — строка $FL.

  5. Листы DevSt.* / HMI.* / HMIS.* замените строками $FL на базы библиотеки (или оставьте локальными и подключите как this). Для DevStudio: TechObject.devStudioType с манифеста уходит в $VQ листа DevSt.*, путь и имя — в аргументы $FL.

  6. Удалите с манифеста списки devStudioTemplates, HmiIcons, StaburIconTemplates — в 1.0 они не используются. UnimodAliases оставьте, только если нужен алиас без своего канала.

  7. Jsm из колонок IGM.POU* / PouName* листа UnimodFB при желании перенесите в строки $JSM — см. Подключение jsm.

  8. Сравните результат сборки с эталоном: состав каналов, объекты DevStudio, иконки, карту Modbus, ST.

Ранний 1.0 → колонка-выключатель E

Section titled “Ранний 1.0 → колонка-выключатель E”

В ранних моделях 1.0 колонки E у $FL / $JSM не было — значения начинались с E. Теперь E — выключатель, и все значения сдвинулись на одну колонку вправо.

Манифест Tmpl.CC в ранней раскладке: значения начинаются с колонки 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

Проверьте сразу после переноса:

  1. Пустая E = выключено. У строк без аргументов (типично — иконки HMI) после вставки E останется пустой, и подключение исчезнет. Проставьте x.
  2. Сдвиг аргументов. alias канала, DevStudioTemplate объекта должны оказаться в F. Признак ошибки: в модели alias равен имени шаблона DevStudio.
  3. Счёт {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} и т.д.

Проверьте:

  1. Какой алиас писать. Тот, у чьей строки UnimodFB jsm должен взять [template.name]. Раньше это всегда была первая строка объекта — если без разницы, пишите её алиас (base).
  2. Номера {argN}. Путь и имя вывода, ссылавшиеся на {arg1}, теперь должны ссылаться на {arg2} — иначе в путь подставится алиас.
  3. Строки в базовых Excel. Если у $JSM в базе своих значений не было, её трогать не нужно: она по-прежнему берёт {argN} из $FL и уходит к первой строке объекта.