RackStore


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

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

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

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

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

На момент выхода агента из объекта RackStore, он будет храниться в ячейке. Если это конечная точка моделируемого вами процесса обработки агентов, вы можете добавить объект Exit после объекта RackStore, но вы не должны оставлять его выходной порт несоединенным. При этом не будет корректным добавлять объект Sink после этого объекта Exit, поскольку агент будет по-прежнему оставаться в системе.

Параметры

Стеллаж / Зона хранения [динамический]
Стеллажи или зона хранения RackSystem, куда должен быть помещен агент.
Тип значения: PalletRackAccess
Локальная переменная: T agent - агент.
Ячейка
Определяет, как будет выбираться ячейка, в которую нужно будет добавить агента: будет ли она Задана явно пользователем, или же она Выбирается автоматически.
Синтаксис: boolean autoChooseCell
Локальная переменная: T agent - агент.
Значение по умолчанию: Выбирается автоматически (true)
Ряд [динамический]
[Виден, если Ячейка Задана явно] Ряд ячейки.
Тип значения: int
Локальная переменная: T agent - агент.
Место [динамический]
[Виден, если Ячейка Задана явно] Место ячейки в ряду.
Тип значения: int
Локальная переменная: T agent - агент.
Уровень [динамический]
[Виден, если Ячейка Задана явно] Уровень ячейки.
Тип значения: int
Локальная переменная: T agent - агент.
Для стеллажей с двумя проходами [динамический]
[Виден, если Ячейка Задана явно]
Взять из левого прохода
Взять из правого прохода
Тип значения: boolean
Значение по умолчанию: Put from left aisle (true)
Локальные переменные: T agent - агент.
PalletRackAccess rackSystem - зона хранения.
Выбрать ячейку, ближайшую к
[Виден, если Ячейка Выбирается автоматически] Определяет, будет ли выбираться ячейка, ближайшая к Началу стеллажа/зоны хранения или к Концу стеллажа/зоны хранения.
Синтаксис: boolean closeToFront
Значение по умолчанию: Началу стеллажа/зоны хранения (true)
Переместить агента в
Перемещает агента в указанное место назначения: ячейку (с повышением уровня), ячейку базового уровня, проход.
Имя: movementDestination
Значение по умолчанию: ячейку (с повышением уровня) (RackStore.DEST_CELL_LEVEL)
Время поднятия на уровень [динамический]
[Виден, если Переместить агента в: ячейку (с повышением уровня)]
Тип значения: double
Локальная переменная: T agent - агент.
Добавлять задержку
Если опция выбрана (true), то между достижением агентом ячейки и ее фактическим помещением в эту ячейку будет добавляться задержка, моделирующая время, требуемая на выполнение этой операции.
Синтаксис
: boolean useDelay
Значение по умолчанию: false
Время задержки [динамический]
[Виден, если выбрана опция Добавлять задержку] Выражение, вычисляющее время, необходимое для помещения агента в ячейку.
Тип значения: double
Локальные переменные: T agent - агент.
PalletRackAccess storage - стеллаж или зона хранения, куда будет помещаться агент.
int row - ряд ячейки
int position - место ячейки в ряду
int level - уровень ячейки
Место агентов (queue)
Фигура разметки вложенного объекта queue.
Синтаксис: AnimationStaticLocationProvider entityLocationQueue
Ресурсы
Перемещать с помощью ресурсов
Если опция выбрана (true), то агент будет перемещаться с помощью указанных движущихся ресурсов.
Синтаксис: boolean useResources
Значение по умолчанию: false
Набор(ы) ресурсов [динамический]
[Виден, если выбрана опция Перемещать с помощью ресурсов] Здесь вы можете задать требуемые наборы ресурсов (объекты ResourcePool). Вы можете добавить несколько наборов с помощью кнопки Добавить список. Ресурсы набираются согласно их доступности.
Локальная переменная: T agent - агент.
Перемещать со скоростью ресурса
[Виден, если выбрана опция Перемещать с помощью ресурсов] Если опция выбрана (true), агент движется с заданной скоростью движущихся ресурсов.
Синтаксис: boolean moveWithSpeedOfResourceUnit
Значение по умолчанию: false
Движущийся ресурс [динамический]
[Виден, если выбрана опция Перемещать со скоростью ресурса] Если опция выбрана (true), указанные движущиеся ресуры используются, чтобы перемещать агента.
Тип значения: ResourcePool
Локальная переменная: T agent - агент.
Приоритет задачи [динамический]
[Виден, если выбрана опция Перемещать с помощью ресурсов] Приоритет задачи для поступающего агент.
Тип значения: double
Значение по умолчанию: 0
Локальная переменная: T agent - агент.
Может вытеснять другие задачи [динамический]
[Виден, если выбрана опция Перемещать с помощью ресурсов] Если опция выбрана, задача может вытеснять производимую в текущий момент задачу (если возможно согласно свойствам задачи, и приоритет задачи ниже).
Тип значения: boolean
Значение по умолчанию: true
Локальная переменная: T agent - агент.
Правило вытеснения задач [динамический]
[Виден, если выбрана опция Перемещать с помощью ресурсов]
Здесь вы можете выбрать, что будет происходить, если поступает какая-либо новая задача для уже занятых ресурсов.
Вытеснения нет
- продолжает выполнять текущую задачу
Ожидать оригинал ресурса - прерывает задачу и ожидает, когда тот ресурс сможет ее закончить
Прекратить обслуживание - задача прерывается и более не возобновляется
Захватывать любой ресурс - прерывает задачу и пытается захватить любой ресурс указанного типа
Продолжать без ресурса - задача завершается без участия ресурса
Значение по умолчанию: Вытеснения нет (RackStore.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), блок RackStore будет ожидать первый доступный ресурс, для которого выполняется условие.
Обычно вы задаете какой-либо параметр внутри типа агента (например, 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 - агент.
При выходе [код]
Код, выполняемый, когда агент покидает объект.
Синтаксис: void onExit
Локальные переменные: T agent - агент.
PalletRackAccess storage - стеллаж или зона хранения, куда будет помещаться агент.
int row - ряд ячейки
int position - место ячейки в ряду
int level - уровень ячейки
При приостановке задачи [код]
[Виден, если Правило вытеснения задач: Ожидать оригинал ресурса или Захватывать любой ресурс]
Код, выполняемый, когда задача агента приостановлена из-за этих правил вытеснения, когда ее ресурс захватывается другой задачей с более высоким приоритетом.
Локальные переменные: T agent - агент.
Agent unit - ресурс.
При возобновлении задачи [код]
[Виден, если Правило вытеснения задач: Ожидать оригинал ресурса или Захватывать любой ресурс]
Код, выполняемый, когда агент возобновляет выполнение своей задачи после того, как была приостановлена из-за этих правил вытеснения.
Локальные переменные: T agent - агент.
Agent unit - ресурс.
При прекращении задачи [код]
[Виден, если Правило вытеснения задач: Прекратить обслуживание]
Код, выполняемый, когда агент теряет все ресурсы, полученные в этом блоке из-за правила вытеснения, когда один из наборов ресурсов (заданных в этом блоке RackStore) оказывается захваченным задачей с более высоким приоритетом.
Локальные переменные: T agent - агент.
Agent unit - ресурс, который запустил прекращение.

Функции

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

Порты

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