Skip to content

Первая схема

Соберём схему, которая по тегу датчика и номеру порога отдаёт тег этого порога — то есть повторим GAP.AUCS.Thresholds.GetThTag([TAG], 1). Четыре шага. По дороге встретится почти всё, что есть в конструкторе.

Шаг 0. Открыть конструктор и завести схему

Section titled “Шаг 0. Открыть конструктор и завести схему”
  1. Лента Uniplant Atomix → группа «Быстрый переход» → «Конструктор скриптов».
  2. Откроется вкладка «Каталог». Нажмите «Новая схема».
  3. Схема ляжет в библиотеку. Если в рейле слева выбрана библиотека — в неё; если библиотека в решении одна — в неё же, без вопросов; если их несколько — конструктор спросит, в какую. Библиотек нет вовсе — он скажет: «Схему некуда положить: в решении нет ни одной библиотеки. Заведите библиотеку — схема живёт только в её составе.»
  4. Схема откроется своей вкладкой, на листе уже будет каркас.

Новая схема

Новая схема. Наверху овал входов, в середине подсказка «Шагов пока нет», ниже овал результата, внизу штамп с готовым текстом вызова. Строка состояния слева говорит, где схема будет сохранена; «Библиотека не выбрана — сохранять некуда» значит, что библиотеку надо выбрать.

В верхней строке окна, в поле «ИМЯ СХЕМЫ», впишите имя. Если вы переносите функцию 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-й» ещё раз. Поставленный после шага с объектами, он встанет сразу с источником в пришедшем — то есть будет брать из того, что пришло, а не идти в проект заново.

В строке «Какой по счёту» переключите источник на аргумент номер.

Фраза: взять из них тот, что под номером номер.

Нажмите + и выберите «Взять поле».

СтрокаЧто поставить
ОбъектыОставьте «от предыдущего шага».
Поле или ключTAG — или то поле порога, которое вам нужно. Список подскажет открытый проект; вписать своё имя можно всегда.

Фраза: взять у них поле TAG. На стрелке после шага — текст.

Шаг 7. Назначить результат

Section titled “Шаг 7. Назначить результат”

Щёлкните по фигуре последнего шага правой кнопкой и выберите «Сделать результатом». Овал внизу должен сказать, что уйдёт и с какого шага.

Галка «зовут из ячейки» наверху должна быть включена и активна: схема отдаёт текст, значит из ячейки её звать можно.

Нажмите «▶ Запустить» (F5) в шапке графы «ВЕДОМОСТЬ ПРОГОНА».

Что смотреть:

ГдеЧто там должно быть
Итог в шапке ведомостиТег порога, зелёным. Приписка справа: все 4 шага прошли.
Строка «так её позовут из ячейки при этой пробе»Готовый вызов со значениями пробы — сверьте порядок аргументов с тем, что стоит в книге.
Графа ведомостиПо строке на шаг: что вышло. У шага с объектами — кнопка «подробнее…».
Отсев у строк условияЦифры: сколько объектов пережило каждую строку.
Что видноЧто это значит
«▶ Запустить» сераяОбъекты не собраны. Рядом написано, какой именно из трёх случаев. См. Пробный запуск.
Итог жёлтый, пустая строкаСхема отдала пустоту. Овал результата говорит, с какого шага пошла пустота, а на самой фигуре написано здесь началась пустота.
Ноль в отсеве у первой строки условияУсловие никого не нашло. Под лесенкой написано, какое именно условие отсеяло всех. Чаще всего — не тот тег или не то имя колонки.
Красная рамка на фигуреШаг оборвал прогон. Текст ошибки — на строке ведомости.
Жёлтая рамка у строкиОбязательное место не заполнено. Схема в таком виде не сохранится.
Карточка замечания в ведомостиПроверка что-то нашла. См. Проверка схемы.

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

Эта схема — половина работы. Из неё стоит вынести переиспользуемый кусок: «датчик → пороги → порог под номером» нужен и GetThData, и GetThSeverity, и ещё нескольким функциям.

  1. Завести вторую схему, положить в неё шаги 3–5, снять галку «зовут из ячейки» — это схема-блок.
  2. В первой схеме заменить три шага одним «Вызвать схему».

Подробно: Вызов схемы из схемы.