Зачем нужен конструктор скриптов
Что происходило до конструктора
Section titled “Что происходило до конструктора”В книгах проекта в ячейках стоят вызовы вида
<script GAP.AUCS.Thresholds.GetThTag([TAG], 1)/>Такой вызов — это обращение к методу из внешней сборки GAP.dll. Ячейка подаёт аргументы по порядку: вместо [TAG] подставляется значение столбца TAG той строки, где стоит вызов, вторым идёт число. Метод внутри GAP.dll ходит по объектам проекта, что-то ищет, что-то склеивает и возвращает строку, которая и оказывается в ячейке.
У этого две беды, и обе не про код.
- Логику видно только в исходниках. Что именно делает
GetThTag, наладчик узнать не может: он видит имя и результат. Если результат не тот, единственный способ разобраться — просить того, кто писал сборку. - Правка — это пересборка. Поменять одно сравнение внутри функции нельзя, не собрав и не разложив новую GAP.dll всем.
Что делает конструктор
Section titled “Что делает конструктор”Конструктор скриптов — это то же самое вычисление, но собранное из шагов, каждый из которых читается фразой на русском. Та же GetThTag становится схемой из четырёх шагов: найти объект по тегу → перейти по связи «пороги» → взять порог под номером → взять у него поле. Схема лежит файлом, правится в окне, проверяется пробным запуском и не требует пересборки программы.
Что схема умеет и чего не умеет
Section titled “Что схема умеет и чего не умеет”| Схема умеет | Схема не умеет |
|---|---|
| Посчитать значение для своей ячейки: найти объекты, прочитать их поля, собрать строку, сравнить, разветвиться, подставить по таблице. | Сделать что-то «на всю сборку»: включить отчёт об ошибках, почистить выгрузку, собрать файлы конфигурации. Такие функции GAP остались в GAP.dll — см. Ограничения. |
| Прочитать текстовый файл по собранному пути и вернуть его текст. | Записать файл. |
| Задать переменные шаблона — то же, что AddVariable в первой строке .jsm. | Позвать функцию GAP.dll из своего шага: «Вызвать схему» зовёт только схемы. |
| Содержать кусок C# шагом «Свой код» — там, где готового действия в палитре ещё нет. | Дать этому коду столбцы строки книги напрямую: то, что коду нужно, подают ему аргументом. |
Где схема считается
Section titled “Где схема считается”Схема считается в двух случаях, и это надо различать, потому что от этого зависит, какие шаги вообще сработают.
| Когда | Что доступно |
|---|---|
| Во время чтения экселей | Объектов проекта ещё нет — они как раз собираются. Так читаются ячейки, которые определяют, какие файлы вообще будут открыты: TAG, OBJTYPENAME, Template, IOBJ, localObject, PathDevStudio. Шаг, которому нужны собранные объекты, в этой фазе честно обрывается с сообщением. |
| После чтения экселей | Эксели прочитаны целиком, объекты проекта собраны. Работают все шаги. |
В справке действия, требующие собранного проекта, помечены нужен прогон.
Где это открывается
Section titled “Где это открывается”Кнопка в заголовке главного окна Uniplant Atomix раскрывает панель «Быстрый переход»; в ней — пункт «Конструктор скриптов». Открывается отдельное окно с заголовком «Конструктор скриптов» и вкладками: «◂ Каталог» и по вкладке на каждую открытую схему.
Панель «Быстрый переход» — общая для инструментов: рядом стоят «Инспектор объектов» (Ctrl+I), «Проводник», Selector, SettingManager, ExcelFinder, DevStudio, HMI.