Первая схема
Соберём схему, которая по тегу датчика и номеру порога отдаёт тег этого порога — то есть повторим GAP.AUCS.Thresholds.GetThTag([TAG], 1). Четыре шага. По дороге встретится почти всё, что есть в конструкторе.
Шаг 0. Открыть конструктор и завести схему
Section titled “Шаг 0. Открыть конструктор и завести схему”- Лента Uniplant Atomix → группа «Быстрый переход» → «Конструктор скриптов».
- Откроется вкладка «Каталог». Нажмите «Новая схема».
- Схема ляжет в библиотеку. Если в рейле слева выбрана библиотека — в неё; если библиотека в решении одна — в неё же, без вопросов; если их несколько — конструктор спросит, в какую. Библиотек нет вовсе — он скажет: «Схему некуда положить: в решении нет ни одной библиотеки. Заведите библиотеку — схема живёт только в её составе.»
- Схема откроется своей вкладкой, на листе уже будет каркас.

Новая схема. Наверху овал входов, в середине подсказка «Шагов пока нет», ниже овал результата, внизу штамп с готовым текстом вызова. Строка состояния слева говорит, где схема будет сохранена; «Библиотека не выбрана — сохранять некуда» значит, что библиотеку надо выбрать.
Шаг 1. Назвать схему
Section titled “Шаг 1. Назвать схему”В верхней строке окна, в поле «ИМЯ СХЕМЫ», впишите имя. Если вы переносите функцию GAP — впишите её имя целиком:
GAP.AUCS.Thresholds.GetThTagЗаодно заполните графу «ЧТО ДЕЛАЕТ» в штампе внизу: одна фраза. Её видно в каталоге и в подсказке палитры, по ней же ищут.
Шаг 2. Завести аргументы вызова
Section titled “Шаг 2. Завести аргументы вызова”В овале «Из ячейки» нажмите «+ аргумент» дважды и заполните таблицу:
| имя | тип | пробное значение |
|---|---|---|
ТЕГ | текст | тег настоящего датчика из проекта — список подскажет сам |
номер | число | 1 |
Шаг 3. Найти датчик по тегу
Section titled “Шаг 3. Найти датчик по тегу”В панели «ДЕЙСТВИЯ» слева найдите «Взять N-й» (раздел «Данные») и щёлкните по нему. Фигура встанет на лист.
Раскройте её и заполните:
| Строка | Что поставить |
|---|---|
| Где искать | объекты ПЛК — оно и так стоит по умолчанию. |
| Какой по счёту | 1 — оставьте как есть. |
| условие | Нажмите «+ условие». В графе свойства выберите или впишите TAG, операцию оставьте равно, а в графе значения переключите источник на аргумент ТЕГ. |
Фраза на фигуре должна прочитаться так:
взять первый объект, у которого TAG равно ТЕГ
Шаг 4. Перейти к порогам
Section titled “Шаг 4. Перейти к порогам”Под фигурой нажмите + — раскроется список «дальше:» с действиями, которые примут объект. Выберите «Перейти по связи».
В строке «Связь» оставьте пороги… точнее, выберите его: по умолчанию там стоит обжтайп. Под каждым пунктом списка написано, что окажется на другом конце.
Фраза: перейти по связи «пороги». На стрелке после шага будет написано объекты.
Шаг 5. Взять порог под номером
Section titled “Шаг 5. Взять порог под номером”Нажмите + и выберите «Взять N-й» ещё раз. Поставленный после шага с объектами, он встанет сразу с источником в пришедшем — то есть будет брать из того, что пришло, а не идти в проект заново.
В строке «Какой по счёту» переключите источник на аргумент номер.
Фраза: взять из них тот, что под номером номер.
Шаг 6. Взять поле
Section titled “Шаг 6. Взять поле”Нажмите + и выберите «Взять поле».
| Строка | Что поставить |
|---|---|
| Объекты | Оставьте «от предыдущего шага». |
| Поле или ключ | TAG — или то поле порога, которое вам нужно. Список подскажет открытый проект; вписать своё имя можно всегда. |
Фраза: взять у них поле TAG. На стрелке после шага — текст.
Шаг 7. Назначить результат
Section titled “Шаг 7. Назначить результат”Щёлкните по фигуре последнего шага правой кнопкой и выберите «Сделать результатом». Овал внизу должен сказать, что уйдёт и с какого шага.
Галка «зовут из ячейки» наверху должна быть включена и активна: схема отдаёт текст, значит из ячейки её звать можно.
Шаг 8. Запустить
Section titled “Шаг 8. Запустить”Нажмите «▶ Запустить» (F5) в шапке графы «ВЕДОМОСТЬ ПРОГОНА».
Что смотреть:
| Где | Что там должно быть |
|---|---|
| Итог в шапке ведомости | Тег порога, зелёным. Приписка справа: все 4 шага прошли. |
| Строка «так её позовут из ячейки при этой пробе» | Готовый вызов со значениями пробы — сверьте порядок аргументов с тем, что стоит в книге. |
| Графа ведомости | По строке на шаг: что вышло. У шага с объектами — кнопка «подробнее…». |
| Отсев у строк условия | Цифры: сколько объектов пережило каждую строку. |
Если не получилось
Section titled “Если не получилось”| Что видно | Что это значит |
|---|---|
| «▶ Запустить» серая | Объекты не собраны. Рядом написано, какой именно из трёх случаев. См. Пробный запуск. |
Итог жёлтый, пустая строка | Схема отдала пустоту. Овал результата говорит, с какого шага пошла пустота, а на самой фигуре написано здесь началась пустота. |
| Ноль в отсеве у первой строки условия | Условие никого не нашло. Под лесенкой написано, какое именно условие отсеяло всех. Чаще всего — не тот тег или не то имя колонки. |
| Красная рамка на фигуре | Шаг оборвал прогон. Текст ошибки — на строке ведомости. |
| Жёлтая рамка у строки | Обязательное место не заполнено. Схема в таком виде не сохранится. |
| Карточка замечания в ведомости | Проверка что-то нашла. См. Проверка схемы. |
Шаг 9. Сохранить
Section titled “Шаг 9. Сохранить”«Сохранить» в верхней строке. Схема ляжет в файл своей библиотеки, и проверка пройдёт ещё раз — чтобы обрыв не всплыл через час генерации на живом проекте.
Что делать дальше
Section titled “Что делать дальше”Эта схема — половина работы. Из неё стоит вынести переиспользуемый кусок: «датчик → пороги → порог под номером» нужен и GetThData, и GetThSeverity, и ещё нескольким функциям.
- Завести вторую схему, положить в неё шаги 3–5, снять галку «зовут из ячейки» — это схема-блок.
- В первой схеме заменить три шага одним «Вызвать схему».
Подробно: Вызов схемы из схемы.