RackPick


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

Если агент перемещается с помощью ресурсов, RackPick захватывает их, переносит их к ячейке, в которой хранится агент, (при необходимости) добавляет задержку, присоединяет ресурсы к агенту, перемещает агента в заданный узел сети, а затем освобождает ресурсы. Вы можете также захватывать и освобождать ресурсы и без помощи объекта RackPick, или же не использовать их вовсе.

Вы можете выбирать, должен ли агент (возможно, вместе с присоединенными ресурсами) плавно двигаться в течение всего пути от самой ячейки и далее по проходу или же он должен перемещаться только от места в проходе, находящегося напротив ячейки, а от самой ячейки до этого места перемещаться мгновенно, "скачком". Последний случай обычно используется при моделировании автоматических стеллажей.

Объект позволяет пользователю задавать любые действия, которые он хочет выполнить в значимые моменты работы объекта.

Параметры

Стеллаж / Зона хранения [динамический]
Стеллажи или зона хранения RackSystem, откуда должен быть извлечен агент.
Тип значения: PalletRackAccess
Локальная переменная: T agent - агент.
Место назначения
Задает место назначения:
Узел сети - агент перемещается в указанный узел сети.
Аттрактор - агент перемещается в указанный аттрактор.
Захваченный ресурс - агент перемещается в текущее местоположение захваченного ресурса (указанного ниже в поле Ресурс).
Агент/ресурс - агент перемещается в местоположение указанного агента.
Точка - агент перемещается в точку с указанными координатами.
Узел + Точка - агент перемещается в указанную точку в указанном узле сети.
Имя: destinationType
Изменить значение: set_destinationType(новое значение)
Значение по умолчанию: Узел сети (RackPick.DEST_NODE)
Допустимые значения: RackPick.DEST_NODE - Узел сети
RackPick.DEST_ATTRACTOR - Аттрактор
RackPick.DEST_RESOURCE - Захваченный ресурс
RackPick.DEST_AGENT - Агент/ресурс
RackPick.DEST_XYZ - Точка
RackPick.DEST_NODE_XYZ - Узел + Точка
Узел [динамический]
[Параметр виден, если Место назначения: Узел сети или Узел + Точка] Узел сети, куда перемещаются агенты.
Тип значения: Node
Локальная переменная: T agent - агент.
Аттрактор [динамический]
[Параметр виден, если Место назначения: Аттрактор] Аттрактор, куда перемещаются агенты.
Тип значения: Attractor
Локальная переменная: T agent - агент.
Ресурс [динамический]
[Параметр виден, если Место назначения: Захваченный ресурс] Имя типа ресурсов того ресурса, в чье местоположение будет перемещаться агент. Если захвачены несколько ресурсов одного типа, будет выбран первый из списка.
Тип значения: ResourcePool
Локальная переменная: T agent - агент.
Агент [динамический]
[Параметр виден, если Место назначения: Агент/ресурс] Имя агента, в чье местоположение будет перемещаться агент. (Это может быть, например, ресурс другого агента).
Тип значения: Agent
Локальная переменная: T agent - агент.
Координаты X, Y, Z [динамический]
[Параметр виден, если Местоположение прибытия: Точка или Узел + Точка] Координаты точки X,Y,Z, куда будет перемещаться агент.
Тип значения: double
Локальная переменная: T agent - агент.
Добавлять задержку
Если опция выбрана (true), то между достижением агентом ячейки и его фактическим помещением в эту ячейку будет добавляться задержка, моделирующая время, требуемая на выполнение этой операции.
Синтаксис
: boolean useDelay
Значение по умолчанию: false
Время задержки [динамический]
[Виден, если выбрана опция Добавлять задержку] Выражение, вычисляющее время, необходимое для помещения агента в ячейку.
Тип значения: double
Локальные переменные: T agent - агент.
PalletRackAccess storage - стеллаж или зона хранения, куда будет помещаться агент.
int row - ряд ячейки
int position - место ячейки в ряду
int level - уровень ячейки
Взять агента из
Выберите, откуда взять агента: из ячейки (с повышением уровня), ячейки базового уровня или прохода.
Имя: movementDestination
Значение по умолчанию: ячейки (с повышением уровня) (RackPick.DEST_CELL_LEVEL)
Допустимые значения: RackPick.DEST_CELL_LEVEL - ячейки (с повышением уровня)
RackPick.DEST_CELL_BASE - ячейки базового уровня
RackPick.DEST_AISLE - прохода
Время понижения на уровень [динамический]
[Виден, если Взять агента из: ячейки (с повышением уровня)]
Тип значения: double
Локальная переменная: T agent - агент.
Ресурсы
Перемещать с помощью ресурсов
Если опция выбрана (true), то агент будет перемещаться с помощью указанных движущихся ресурсов.
Синтаксис: boolean useResources
Значение по умолчанию: false
Набор(ы) ресурсов [динамический]
[Виден, если выбрана опция Перемещать с помощью ресурсов] Здесь вы можете задать требуемые наборы ресурсов (объекты ResourcePool). Вы можете добавить несколько наборов с помощью кнопки Добавить список. Ресурсы набираются согласно их доступности.
Локальная переменная: T agent - агент.
Правило захвата
[Виден, если выбрана опция Перемещать с помощью ресурсов] Здесь вы можете задать правило захвата ресурсов:
Захватить весь набор сразу - агент ожидает, пока какой-либо набор будет доступен, и тогда захватывает все его ресурсы.
Захватывать ресурсы один за другим - агент пытается захватить ресурсы какого-либо набора, как только они становятся доступны.
Имя: seizePolicy
Значение по умолчанию: Захватить весь набор сразу (RackPick.SEIZE_WHOLE_SET)
Перемещать со скоростью ресурса
[Виден, если выбрана опция Перемещать с помощью ресурсов] Если опция выбрана (true), агент движется с заданной скоростью движущихся ресурсов.
Синтаксис: boolean moveWithSpeedOfResourceUnit
Значение по умолчанию: false
Движущийся ресурс [динамический]
[Виден, если выбрана опция Перемещать со скоростью ресурса] Если опция выбрана (true), указанные движущиеся ресуры используются, чтобы перемещать агента.
Тип значения: ResourcePool
Локальная переменная: T agent - агент.
Приоритет задачи [динамический]
[Виден, если выбрана опция Перемещать с помощью ресурсов] Приоритет задачи для поступающего агента.
Тип значения: double
Значение по умолчанию: 0
Локальная переменная: T agent - агент.
Может вытеснять другие задачи [динамический]
[Виден, если выбрана опция Перемещать с помощью ресурсов] Если опция выбрана, задача может вытеснять производимую в текущий момент задачу (если возможно согласно свойствам задачи, и приоритет задачи ниже).
Тип значения: boolean
Значение по умолчанию: true
Локальная переменная: T agent - агент.
Правило вытеснения задач [динамический]
[Виден, если выбрана опция Перемещать с помощью ресурсов]
Здесь вы можете выбрать, что будет происходить, если поступает какая-либо новая задача для уже занятых ресурсов.
Вытеснения нет
- продолжает выполнять текущую задачу
Ожидать оригинал ресурса - прерывает задачу и ожидает, когда тот ресурс сможет ее закончить
Прекратить обслуживание - задача прерывается и более не возобновляется
Захватывать любой ресурс - прерывает задачу и пытается захватить любой ресурс указанного типа
Продолжать без ресурса - задача завершается без участия ресурса
Значение по умолчанию: Вытеснения нет (RackPick.PP_NO_PREEMPTION)
Локальная переменная: T agent - агент.
Авто приостановка/возобновление
[Параметр виден, если Правило вытеснения задач: Ожидать оригинал ресурса или Захватывать любой ресурс] Этим параметром задается, должен ли агент, выполнение задачи которого приостановлено, быть автоматически приостановлен в текущей диаграмме процесса и автоматически возобновлен, когда будут доступны ресурсы.
Синтаксис: boolean suspendResumeEntities
Значение по умолчанию: true
Вход для прекращенных агентов [динамический]
[Параметр виден, если Правило вытеснения задач: Прекратить обслуживание] Блок Enter для агентов, которые теряют все ресурсы, полученные ими в этом блоке из-за прекращения обслуживания, когда один из наборов ресурсов (заданных в этом блоке) оказывается захваченным задачей с более высоким приоритетом.
Локальные переменные: T agent - агент.
Agent unit - ресурс, который запустил прекращение.
После освобождения, ресурсы
[Виден, если выбрана опция Перемещать с помощью ресурсов] Определяет, должны ли ресурсы после освобождения возвращаться в их базовое местоположение или оставаться в том же месте сети.
Синтаксис
: boolean resourcesGoHome
Значение по умолчанию: Возвращаются в базовую точку (true)
Возвращаться [динамический]
[Параметр виден, если После освобождения, ресурсы: Возвращаются в базовую точку] Задача завершения для перемещения ресурсов и базовое местоположение или для завершающей диаграммы процесса. Выберите режим завершения для ресурсов: должны ли они всегда возвращаться в базовую точку, или только если нет других задач или выберите другое и укажите приоритет и правило вытеснения для завершения ниже.
Локальные переменные: T agent - агент.
Agent unit - ресурс
Приоритет "завершения" [динамический]
[Параметр виден, если Возвращаться: другое] Здесь вы можете приоритет завершающей задачи.
Тип значения: double
Локальные переменные: T agent - агент.
Agent unit - ресурс
Правило вытеснения [динамический]
[Параметр виден, если Возвращаться: другое] Задает правило вытеснения для задачи завершения:
Вытеснения нет - задача не может быть вытеснена
Прекратить - задача может быть вытеснена и прекращена
Локальные переменные: T agent - агент.
Agent unit - ресурс
Задать выбор ресурса
[Виден, если выбрана опция Перемещать с помощью ресурсов] Если эта опция выбрана, вы можете указать для выполнения операции определенные ресурсы (используя параметр Условие выбора ресурса, расположенный ниже).
Синтаксис: boolean customizeResourceChoice
Значение по умолчанию: false
Условие выбора ресурса [динамический]
[Параметр виден, если выбрана опция Задать выбор ресурса] Здесь вы можете указать булево выражение, которое будет вычисляться, чтобы найти требуемые ресурсы для выполнения операции. Если нет доступных ресурсов, подходящих под условие (условие возвращает false), блок RackPick будет ожидать первый доступный ресурс, для которого выполняется условие.
Обычно вы задаете какой-либо параметр внутри типа агента (например, myAssistant), помещаете туда ссылку на ресурс, когда он начинает работать с агентом (agent.myAssistant=unit), и затем указываете здесь условие agent.myAssistant==unit, позволяющее только этому конкретному ресурсу продолжать работу с этим конкретным агентом.
Тип значения: boolean
Значение по умолчанию: true
Локальные переменные: T agent - агент.
Agent unit - ресурс.
ResourcePool pool - тип ресурсов.
Действия
При входе [код]
Код, выполняемый, когда агент поступает в объект.
Локальная переменная: T agent - агент.
По прибытии ресурсов [код]
[Виден, если выбрана опция Перемещать с помощью ресурсов] Код, выполняемый, когда ресурсы прибывают в текущее местоположение ячейки.
Локальная переменная: T agent - агент.
При начале задержки [код]
[Виден, если выбрана опция Добавлять задержку] Код, выполняемый, когда начинается время задержки, связанной с помещением агента в ячейку.
Локальные переменные: T agent - агент.
double delayTime - время задержки.
PalletRackAccess storage - стеллаж или зона хранения, куда будет помещаться агент.
int row - ряд ячейки
int position - место ячейки в ряду
int level - уровень ячейки
По окончании задержки [код]
[Виден, если выбрана опция Добавлять задержку] Код, выполняемый, когда заканчивается время задержки, связанной с помещением агента в ячейку.
Локальная переменная: T agent - агент.
При выходе [код]
Код, выполняемый, когда агент покидает объект.
Локальные переменные: T agent - агент.
PalletRackAccess storage - стеллаж или зона хранения, куда будет помещаться агент.
int row - ряд ячейки
int position - место ячейки в ряду
int level - уровень ячейки

При приостановке задачи [код]
[Виден, если Правило вытеснения задач: Ожидать оригинал ресурса или Захватывать любой ресурс]
Код, выполняемый, когда задача агента приостановлена из-за этих правил вытеснения, когда его ресурс захватывается другой задачей с более высоким приоритетом.
Локальные переменные: T agent - агент.
Agent unit - ресурс.
При возобновлении задачи [код]
[Виден, если Правило вытеснения задач: Ожидать оригинал ресурса или Захватывать любой ресурс]
Код, выполняемый, когда агент возобновляет выполнение своей задачи после того, как была приостановлена из-за этих правил вытеснения.
Локальные переменные: T agent - агент.
Agent unit - ресурс.
При прекращении задачи [код]
[Виден, если Правило вытеснения задач: Прекратить обслуживание]
Код, выполняемый, когда агент теряет все ресурсы, полученные в этом блоке из-за правила вытеснения, когда один из наборов ресурсов (заданных в этом блоке) оказывается захваченным задачей с более высоким приоритетом.
Локальные переменные: T agent - агент.
Agent unit - ресурс, который запустил прекращение.

Функции

int queueSize() - возвращает количество агентов, находящихся в очереди ожидания ресурса.

Порты

in
Входной порт.
out
Выходной порт.