Входные параметры шаблона миссии
Входные параметры — это данные, которые шаблон получает в момент запуска. Например: точка назначения, приоритет задания, идентификатор робота или признак отправки уведомления. Параметры описываются с помощью JSON Schema. По этой схеме система:
- строит форму ручного запуска миссии;
- проверяет данные, полученные через API и другие триггеры;
- формирует список
$paramsв редакторе выражений workflow.
{% hint style=“info” %}
Название параметра является его техническим ключом. Действия обращаются к нему по этому имени, например $params.target_point.
{% endhint %}
Где настраиваются параметры
- Откройте «Настройки» → «Шаблоны миссий».
- Создайте шаблон или откройте существующий для редактирования.
- В редакторе workflow выберите действие Начало. Если схема ещё пустая, сначала добавьте стартовый триггер.
- В правой панели найдите раздел Входные параметры.
- Настройте схему в одном из режимов: Форма, JSON или Предпросмотр.
- Сохраните workflow
.
Режим «Форма»
Этот режим подходит для большинства схем и не требует ручного написания JSON.
Добавление поля
- Нажмите Добавить поле
+

- Введите Название — техническое имя параметра. Название должно быть уникальным среди полей одного объекта. Первый символ — буква любого алфавита или
_; остальные — буквы, цифры или_. Пробелы, точки и дефисы недопустимы. Рекомендуется использовать понятные имена вsnake_case:target_point,priority,robot_id. - При необходимости заполните Описание. Оно помогает пользователю понять, какое значение нужно указать при запуске. Нет особых требований к описанию
- Выберите Тип.
- Включите Обязательное, если миссия не должна запускаться без этого значения.
- Нажмите Добавить поле.

Доступные типы
| Группа | Типы | Когда применять |
|---|---|---|
| JSON | Строка, число, целое число, логическое значение, объект, массив, null | Для обычных данных запуска |
| Составные схемы | anyOf, oneOf, allOf | Для параметров с альтернативными или объединёнными правилами |
| Идентификаторы ресурсов | ID робота, устройства, зарядной станции, карты, шаблона миссии, паллетайзера, шаблона устройства | Когда пользователь должен выбрать существующий объект системы |
| Коды ресурсов | Код узла, Код пути, Код мгновенного действия | Когда нужен код элемента карты или справочника |
Строка — произвольный текст. В WCS так задают комментарий к запуску ("Срочная приёмка паллет"), код регистра Modbus ("holding_40001"). Можно ограничить длину, формат или список допустимых значений.
Число — значение с дробной частью. Пример: порог заряда 15.5, скорость 1.2, вес груза 240.75. Если дробь не нужна, лучше взять целое.
Целое число — число без дробной части. Пример: приоритет миссии 8 (от 1 до 10), длительность паузы в действии «Пауза», количество регистров при записи в Modbus.
Логическое значение — только true или false. Пример: notify: true — отправить уведомление после выполнения; wait_on_error: true в транспортном ордере — ждать обновления ордера при ошибке.
Объект — набор именованных полей. Корневая схема входных параметров всегда объект. Пример запуска:
{“target_point”: “STATION_05”,“priority”: 8,“notify”: true}
Так же передают параметры дочернего шаблона и параметры мгновенного действия.
Массив — список однотипных элементов. В транспортном ордере это точки маршрута: [{ "node_id": "STATION_05" }, { "node_id": "BUFFER_02" }]. В действии «Установить переменные» — список переменных. Нужен, когда точек, команд или значений несколько.
Null — явное «значения нет». От пустой строки и от нуля отличается. Пример: необязательный комментарий не передали — в данных будет null, а не "". В схемах действий output_schema: null означает, что действие ничего не возвращает.
anyOf — значение подходит хотя бы под одну из вложенных схем. Пример: комментарий может быть строкой "Срочно" или null. Достаточно, чтобы сработал любой вариант.
oneOf — значение подходит ровно под одну схему, не под две сразу. Типичный приём WCS в параметрах действий: robot_id — либо целое ID из реестра (12), либо выражение ("{{ $params.robot_id }}"). То же для кода узла: выбрать STATION_05 в списке или написать {{ $params.target_point }}.
allOf — значение должно удовлетворять всем вложенным схемам сразу. Пример в действиях Modbus: общие поля device_type и register_id плюс правило для device_id в зависимости от типа (паллетайзер, зарядная станция или устройство). Параметр считается корректным, только если выполнены все части.
Специализированные типы ресурсов сохраняются как строка или целое число с дополнительной проверкой существования объекта. В форме запуска для них может отображаться выбор из доступных сущностей. Список зависит от данных системы и прав пользователя.
ID робота — числовой идентификатор робота в реестре WCS. В параметр попадает id записи, не серийный номер и не имя. Нужен, чтобы указать, какой робот выполняет действие: транспортный ордер, мгновенное действие и другие операции с AGV.
ID устройства — числовой идентификатор оборудования из раздела «Устройства» (Modbus, OPC UA и другое подключённое оборудование, не робот). Нужен, чтобы действие читало или писало регистры и узлы конкретного устройства.
ID зарядной станции — числовой идентификатор зарядной станции в реестре. В интерфейсе тип называется «ID зарядного устройства». Нужен, чтобы зарезервировать станцию, отправить к ней робота или освободить её после зарядки.
ID карты — идентификатор слоя (layout) активной LIF-карты. В параметр попадает layoutId слоя, не код узла и не код пути. Нужен, чтобы указать, на каком слое карты выполняется сценарий.
ID шаблона миссии — числовой идентификатор другого шаблона миссии в реестре. Нужен, когда сценарий запускает или ссылается на уже сохранённый шаблон, а не описывает его заново.
ID паллетайзера — числовой идентификатор паллетайзера в реестре. Нужен, чтобы зарезервировать конкретный паллетайзер, найти свободный или освободить его после работы.
ID шаблона устройства — числовой идентификатор шаблона из «Шаблоны устройств». Это типовая конфигурация оборудования (настройки и модели), а не само устройство. Нужен, чтобы сослаться на шаблон, по которому создаётся или настраивается робот, паллетайзер, зарядная станция или устройство.
Код узла — идентификатор точки на активной LIF-карте. В параметр попадает код узла (nodeId из карты), а не название. Нужен, чтобы указать, куда ехать или на какой точке остановиться, например в транспортном ордере.
Код пути — идентификатор ребра между узлами на той же карте. В параметр попадает код пути (edgeId из карты). Нужен, чтобы задать конкретный участок маршрута, а не только точку назначения.
Код мгновенного действия — код типа команды из справочника мгновенных действий. Это не движение по карте, а отдельная команда роботу вне транспортного ордера: какой тип действия выполнить. В интерфейсе поле называется «Код типа мгновенного действия».
Редактирование поля
В строке поля доступны следующие действия:
- нажмите название, чтобы переименовать поле;
.png)
- выберите тип в списке типов;

- нажмите значок обязательности, чтобы переключить поле между обязательным и необязательным;

- раскройте строку стрелкой, чтобы изменить описание и ограничения;

- перетащите строку за маркер, чтобы изменить порядок полей в форме запуска;

- нажмите иконку корзины, чтобы удалить поле.

Переименование или удаление параметра не исправляет выражения в действиях автоматически. После такой операции найдите все обращения вида $params.<старое_имя> и обновите их.
Ограничения значений
Набор настроек зависит от типа.
- Строка: минимальная и максимальная длина, регулярное выражение, формат (
date-time,date,time,email,uri,uuid,hostname,ipv4,ipv6), перечень разрешённых значений. - Число / целое число: минимум, максимум, строгий минимум и максимум, кратность, перечень разрешённых значений.
- Логическое значение: разрешить
true,falseили оба значения. - Массив: минимальное и максимальное количество элементов, уникальность элементов, схема элемента массива.
- Объект: вложенные поля и разрешение или запрет дополнительных полей.
anyOf: значение должно удовлетворять хотя бы одной вложенной схеме.oneOf: значение должно удовлетворять ровно одной вложенной схеме.allOf: значение должно удовлетворять всем вложенным схемам.
Для вложенного объекта раскройте поле и добавьте его свойства. Для массива задайте тип одного элемента; при необходимости элементом может быть объект или другая составная схема.
Режим «JSON»
Переключитесь на вкладку JSON в блоке “Входные параметры миссии”.

В этом режиме схема редактируется как JSON. Он удобен для копирования готовой схемы и настройки возможностей JSON Schema, которых нет в визуальной форме.
Корневой элемент схемы должен быть объектом с properties. Пример для задания на перемещение:
{
"type": "object",
"properties": {
"target_point": {
"type": "string",
"exists": "nodes",
"description": "Точка назначения на карте"
},
"priority": {
"type": "integer",
"minimum": 1,
"maximum": 10,
"description": "Приоритет выполнения"
},
"comment": {
"type": "string",
"maxLength": 200
},
"notify": {
"type": "boolean"
}
},
"required": ["target_point", "priority"],
"additionalProperties": false
}Если JSON синтаксически неверен или корневая схема имеет неподходящий формат, редактор показывает ошибку и не переключается в другие режимы. После исправления JSON снова выберите Форма или Предпросмотр.
При
additionalProperties: falseвнешний запуск не должен передавать ключи, отсутствующие вproperties.
Режим «Предпросмотр»
Переключитесь на вкладку Предпросмотр в блоке “Входные параметры миссии”

Предпросмотр показывает форму запуска, которую система строит по текущей схеме.
- Откройте вкладку Предпросмотр.
- Заполните поля тестовыми значениями.
- Проверьте обязательность, диапазоны, форматы, варианты выбора и вложенные структуры.
- Вернитесь в Форму или JSON, если нужно изменить схему.
Введённые в предпросмотре значения используются только для проверки формы: миссия не запускается, и эти значения не становятся параметрами по умолчанию.
Использование параметров в workflow
В настройках действия переключите поддерживаемое поле в режим Выражение и обращайтесь к параметру через $params:
$params.robot_id
Список входных параметров миссии доступен в левой панели редактора выражений
.png)
Значение по умолчанию для необязательного параметра можно задать в выражении:
$params.priority ?? 5Пример условия действия «Если»:
$params.priority >= 8 and ($params.notify ?? false)Имена чувствительны к написанию: $params.target_point и $params.Target_Point — разные пути. Неизвестные переменные подсвечиваются в редакторе выражений и блокируют сохранение действия.
Подробнее о синтаксисе см. в статье «Режим Expression (Выражения)».
Проверка перед сохранением
Перед сохранением убедитесь, что:
- обязательными отмечены только действительно необходимые данные;
- ограничения не противоречат друг другу;
- специализированные ID соответствуют ресурсу, которое ожидает действие;
- после переименования полей обновлены все
$params-выражения; - пример успешно проходит проверку на вкладке Предпросмотр;
- данные внешних запусков имеют те же типы и имена полей, что и схема.
При сохранении редактор также проверяет допустимость имён параметров. Действие «Начало» и действия с ошибками выделяются, а схема не сохраняется, пока ошибки не исправлены.