Skip to content

Ограничения и «Ещё в GAP»

Раздел «Ещё в GAP» в каталоге отвечает на два вопроса: какие функции GAP.dll конструктор пока не умеет и чего он не умеет вообще. Список ведётся руками, а не читается из GAP.dll: сборка GAP лежит вне репозитория, и её перечень публичных методов наполовину состоит из внутренностей, которых ячейка не зовёт. Здесь только то, что инженер может встретить в книге.

Раздел «Ещё в GAP» в каталоге: сверху не перенесённые функции по причинам, ниже

Раздел «Ещё в GAP» в каталоге: сверху не перенесённые функции по причинам, ниже — «Чего конструктор пока не умеет» с ответом «Что делать» на каждую строку.

Функции GAP, которые не перенесены

Section titled “Функции GAP, которые не перенесены”

Их объединяет одно: они ничего не считают для ячейки. Схема умеет только посчитать значение для своей ячейки.

Отчёт об ошибках сборки

Section titled “Отчёт об ошибках сборки”

Почему нет: эти функции включают и выключают отчёт на всю сборку.
Сейчас: вызов из книги считает GAP.dll, как раньше.

ФункцияАргументыЧто делает
GAP.ScadaProjectBase.General.EnableGenerationErrorReport—включить отчёт: рядом с книгой появится файл «<имя книги>_errors.txt»
GAP.ScadaProjectBase.General.DisableGenerationErrorReport—выключить отчёт
GAP.ScadaProjectBase.General.ClearGenerationErrorReport—стереть накопленные ошибки
GAP.ScadaProjectBase.General.WriteGenerationErrorReportfilePathзаписать накопленные ошибки в файл по пути

Чистка одинаковых строк в выгрузке обвязки тренажёра

Section titled “Чистка одинаковых строк в выгрузке обвязки тренажёра”

Почему нет: эти функции правят уже сохранённый файл выгрузки.
Сейчас: вызов из книги считает GAP.dll, как раньше.

ФункцияАргументыЧто делает
GAP.ScadaProjectBase.General.EnableDuplicateRowCleanup—включить чистку одинаковых строк
GAP.ScadaProjectBase.General.DisableDuplicateRowCleanup—выключить чистку

Конфигурация КАУ для FireSec

Section titled “Конфигурация КАУ для FireSec”

Почему нет: эта функция собирает файлы конфигурации КАУ по шаблону. Файлы схема не пишет.
Сейчас: вызов из книги считает GAP.dll, как раньше.

ФункцияАргументыЧто делает
GAP.FireSec.Config.Generators.FireSecGenerator.GenerateKauDeviceConfigtemplateFilePathсобрать конфигурацию КАУ для каждого устройства по шаблону

Чего конструктор пока не умеет

Section titled “Чего конструктор пока не умеет”

Каждая строка — то, на что можно наткнуться в книге или на схеме, и что с этим делать.

Готовые схемы для функций GAP с Uniplant Atomix пока не приходят

Section titled “Готовые схемы для функций GAP с Uniplant Atomix пока не приходят”

Как сейчас: большинство функций GAP конструктор уже умеет повторить, но готовых схем для них в каталоге пока нет. Поэтому вызовы из книг по-прежнему считает GAP.dll.

Что делать: ничего менять не нужно — книги считаются как раньше. Чтобы вызов считала схема, соберите её в своей библиотеке под тем же именем, что у функции GAP.

Отчёт об ошибках сборки

Section titled “Отчёт об ошибках сборки”

Как сейчас: файл «<имя книги>_errors.txt» рядом с книгой пишет GAP.dll, и попадают в него только ошибки функций GAP. Если значение не смогла посчитать схема, в этом файле этого не будет.

Что делать: откройте схему, впишите пробные значения аргументов и нажмите «▶ Запустить»: шаг, на котором схема споткнулась, встанет в красную рамку, и рядом будет написано почему.

Чистка одинаковых строк в выгрузке обвязки тренажёра

Section titled “Чистка одинаковых строк в выгрузке обвязки тренажёра”

Как сейчас: одинаковые строки из выгрузки обвязки убирает только GAP.dll — и только если шаблон тренажёра эту чистку включил.

Что делать: пока GAP.dll на месте, всё как раньше.

Конфигурация КАУ для FireSec

Section titled “Конфигурация КАУ для FireSec”

Как сейчас: файлы конфигурации КАУ собирает только GAP.dll.

Что делать: пока GAP.dll на месте, всё как раньше.

Функцию GAP из схемы не позвать

Section titled “Функцию GAP из схемы не позвать”

Как сейчас: шаг «Вызвать схему» зовёт только схемы. Если для функции GAP схемы нет, из своей схемы её не вызвать.

Что делать: сначала соберите нужную функцию схемой под её именем — тогда её можно звать шагом «Вызвать схему».

Порядок аргументов не сверяется с функцией GAP

Section titled “Порядок аргументов не сверяется с функцией GAP”

Как сейчас: схема под именем функции GAP перехватывает её вызовы из книг. Ячейка подаёт аргументы по порядку: в GetThTag([TAG], 1) первым идёт тег, вторым — номер порога. Если в схеме аргументы стоят в другом порядке, конструктор не предупредит.

Что делать: расставьте аргументы в овале «Из ячейки» в том же порядке, что в вызове из книги.

В книге нет столбца, на который ссылается вызов

Section titled “В книге нет столбца, на который ссылается вызов”

Как сейчас: в вызове GetThTag([TAG], 1) вместо [TAG] подставляется значение из столбца TAG. Если такого столбца в книге нет — удалили или закомментировали, — подставлять нечего, и в вызов уходит сам текст [TAG]. GAP.dll такой текст обычно отбрасывал и считал, что значения нет. Схема примет «[TAG]» за настоящий тег и посчитает с ним дальше.

Что делать: если столбца в книге может не быть, поставьте в схеме развилку: значение «не задано» или «начинается с [» — и решите, что отдавать в этом случае.

Регистр букв в сравнениях

Section titled “Регистр букв в сравнениях”

Как сейчас: схема сравнивает без учёта регистра: «Дымовой» и «дымовой» для неё одно и то же. Функции GAP в одних местах их различали, в других — нет.

Что делать: если регистр важен, сравнивайте через «подходит под образец» — образец регистр различает.

Шаг «Свой код» видит только то, что ему подали

Section titled “Шаг «Свой код» видит только то, что ему подали”

Как сейчас: код получает только то, что подано в его строки, и объекты проекта. Столбцы строки книги, из которой позвали схему, ему напрямую не видны, и переменную шаблона он задать не может.

Что делать: нужный столбец передайте в схему аргументом — в вызове из ячейки это [TAG] — и подайте этот аргумент в код. Переменные шаблона задавайте шагом «Переменные шаблона».

Ещё несколько ограничений, не вошедших в тот список

Section titled “Ещё несколько ограничений, не вошедших в тот список”
ОграничениеПояснение
Схемы не едут в SVN вместе с проектомСхемы лежат рядом со сборкой AutoMix. У коллеги, забравшего проект, тот же вызов уйдёт в GAP.dll. См. Библиотеки и решение.
Схема не пишет файлыЧитать текстовый файл умеет («Прочитать файл»), писать — нет.
Часть действий снята с полкиДержать в палитре недоделанное дороже, чем не иметь его вовсе: инженер выбирает действие по названию, ставит его в схему и узнаёт о недоделке, только упёршись в неё. Поэтому палитра содержит только доведённое.
Признак и словарь в «Своём коде» — строкиflag ? … и map.ContainsKey(…) не соберутся. См. Свой код.
У шага один выходВся палитра первой версии такая. Несколько ответов одного шага («Подставить по списку» с несколькими ответами) — это дополнительные столбцы одного выхода, а не второй выход.