Skip to Content
Руководство администратораШаблоны миссийВходные параметры шаблона миссии

Входные параметры шаблона миссии

Входные параметры — это данные, которые шаблон получает в момент запуска. Например: точка назначения, приоритет задания, идентификатор робота или признак отправки уведомления. Параметры описываются с помощью JSON Schema. По этой схеме система:

  • строит форму ручного запуска миссии;
  • проверяет данные, полученные через API и другие триггеры;
  • формирует список $params в редакторе выражений workflow.

{% hint style=“info” %} Название параметра является его техническим ключом. Действия обращаются к нему по этому имени, например $params.target_point. {% endhint %}

Где настраиваются параметры

  1. Откройте «Настройки» → «Шаблоны миссий».
  2. Создайте шаблон или откройте существующий для редактирования.
  3. В редакторе workflow выберите действие Начало. Если схема ещё пустая, сначала добавьте стартовый триггер.
  4. В правой панели найдите раздел Входные параметры.
  5. Настройте схему в одном из режимов: Форма, JSON или Предпросмотр.
  6. Сохраните workflow .

Режим «Форма»

Этот режим подходит для большинства схем и не требует ручного написания JSON.

Добавление поля

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

Доступные типы

ГруппаТипыКогда применять
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 из карты). Нужен, чтобы задать конкретный участок маршрута, а не только точку назначения.

Код мгновенного действия — код типа команды из справочника мгновенных действий. Это не движение по карте, а отдельная команда роботу вне транспортного ордера: какой тип действия выполнить. В интерфейсе поле называется «Код типа мгновенного действия».

Редактирование поля

В строке поля доступны следующие действия:

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

Переименование или удаление параметра не исправляет выражения в действиях автоматически. После такой операции найдите все обращения вида $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.

Режим «Предпросмотр»

Переключитесь на вкладку Предпросмотр в блоке “Входные параметры миссии”

Предпросмотр показывает форму запуска, которую система строит по текущей схеме.

  1. Откройте вкладку Предпросмотр.
  2. Заполните поля тестовыми значениями.
  3. Проверьте обязательность, диапазоны, форматы, варианты выбора и вложенные структуры.
  4. Вернитесь в Форму или JSON, если нужно изменить схему.

Введённые в предпросмотре значения используются только для проверки формы: миссия не запускается, и эти значения не становятся параметрами по умолчанию.

Использование параметров в workflow

В настройках действия переключите поддерживаемое поле в режим Выражение и обращайтесь к параметру через $params:

$params.robot_id

Список входных параметров миссии доступен в левой панели редактора выражений

Значение по умолчанию для необязательного параметра можно задать в выражении:

$params.priority ?? 5

Пример условия действия «Если»:

$params.priority >= 8 and ($params.notify ?? false)

Имена чувствительны к написанию: $params.target_point и $params.Target_Point — разные пути. Неизвестные переменные подсвечиваются в редакторе выражений и блокируют сохранение действия.

Подробнее о синтаксисе см. в статье «Режим Expression (Выражения)».

Проверка перед сохранением

Перед сохранением убедитесь, что:

  • обязательными отмечены только действительно необходимые данные;
  • ограничения не противоречат друг другу;
  • специализированные ID соответствуют ресурсу, которое ожидает действие;
  • после переименования полей обновлены все $params-выражения;
  • пример успешно проходит проверку на вкладке Предпросмотр;
  • данные внешних запусков имеют те же типы и имена полей, что и схема.

При сохранении редактор также проверяет допустимость имён параметров. Действие «Начало» и действия с ошибками выделяются, а схема не сохраняется, пока ошибки не исправлены.