Блок Retrieve извлекает агента из ячейки склада и перемещает его в заданное место. Склад задается с помощью элемента разметки пространства Склад или блока Storage System, который объединяет несколько складов в одну систему
Если для перемещения агентов используется транспортер или ресурс, блок Retrieve захватит его, приведет к ячейке с агентом, присоединит к агенту, переместит агента в место назначения, после чего освободит захваченный транспортер или ресурс.
Демо-модель: Slotting Policies in Drive-in Storage Открыть страницу модели в AnyLogic Cloud. Там можно запустить модель или скачать ее по ссылке Исходные файлы модели.- Агенты перемещаются
- Здесь задается способ, которым агенты покидают склад:
с помощью транспортеров — агент перемещается транспортером
с помощью ресурсов — агент перемещается ресурсом
самостоятельно — агент перемещается самостоятельноСинтаксис: RackResourceType resourceType Допустимые значения:Retrieve.RESOURCE_TRANSPORTER
Retrieve.RESOURCE_PML
Retrieve.RESOURCE_NONE - [Параметр виден, если Агенты перемещаются: с помощью транспортеров]
Здесь вы можете задать автопарк (блок Transporter Fleet), транспортеры из которого перемещают агентов со складов.Локальная переменная: T agent — агент (материальный объект) - [Параметр виден, если Агенты перемещаются: с помощью ресурсов]
Здесь можно задать набор ресурсов (блок Resource Pool) для извлечения агента из склада.Локальная переменная: T agent — агент (материальный объект) - [Параметр виден, если Агенты перемещаются: с помощью транспортеров]
Задает отрезок времени, в течение которого агент (материальный объект) должен быть выгружен.Тип значения: double
Локальная переменная: T agent — агент (материальный объект) - Место назначения
- [Параметр виден, если Агенты перемещаются: с помощью транспортеров]
Задает пункт назначения для агента, который покинул склад. Возможные пункты назначения:Узел — агент перемещается в заданный узел
Аттрактор — агент перемещается в заданный аттрактор
Путь — агент перемещается на заданный путь
Конвейер — агент перемещается на заданный конвейер
Точка конвейера — агент перемещается в заданную точку конвейера
Станция обработки — агент перемещается в заданную станцию обработки
Точка (x, y, z) — агент перемещается в точку с заданными координатамиСинтаксис: DestinationType destinationTypeTransporter
Допустимые значения:Retrieve.DEST_NODE — узел
Retrieve.DEST_ATTRACTOR — аттрактор
Retrieve.DEST_PATH — путь
Retrieve.DEST_CONVEYOR — конвейер
Retrieve.DEST_POSITION_ON_CONVEYOR — точка конвейера
Retrieve.DEST_CONVEYOR_STATION — станция обработки
Retrieve.DEST_XYZ — точка с заданными координатами - [Параметр виден, если Место назначения: Узел]
Узел, в который переместится агент (материальный объект).Тип значения: INode
Локальная переменная: T agent — агент (материальный объект) - [Параметр виден, если Место назначения: Аттрактор]
Аттрактор, в который переместится агент (материальный объект).Тип значения: Attractor
Локальная переменная: T agent — агент (материальный объект) - [Параметр виден, если Место назначения: Путь]
Путь, на который переместится (материальный объект).Тип значения: Path
Локальная переменная: T agent — агент (материальный объект) - [Параметр виден, если Место назначения: Конвейер]
Конвейер, на который переместится агент (материальный объект).Тип значения: ConveyorPath
Локальные переменные:
T agent — агент (материальный объект)
Agent unit — транспортер - [Параметр виден, если Место назначения: Путь или Конвейер]
Определяет, как будет рассчитан отступ для точки на пути или конвейере, в которую переместится агент: от начала конвейера/пути или конца конвейера/пути.Тип значения: boolean
Локальные переменные:
T agent — агент (материальный объект)
Agent unit — транспортер - [Параметр виден, если Место назначения: Путь или Конвейер]
Смещение от начальной или конечной точки пути/конвейера (зависит от значения параметра Смещение от), до точки, в которую прибывает агент.Тип значения: double
Локальные переменные:
T agent — агент (материальный объект)
Agent unit — транспортер - [Параметр виден, если Место назначения: Точка конвейера]
Точка конвейера, в которую переместится агент (материальный объект).Тип значения: PositionOnConveyor
Локальные переменные:
T agent — агент (материальный объект)
Agent unit — транспортер - [Параметр виден, если Место назначения: Станция обработки]
Станция обработки, на которую переместится агент (материальный объект).Тип значения: ConveyorStation
Локальные переменные:
T agent — агент (материальный объект)
Agent unit — транспортер - [Параметр виден, если Место назначения: Конвейер, или Точка конвейера, или Станция обработки]
Если опция выбрана, вы сможете менять ориентацию попадающего на конвейер материального объекта, задав передний торец объекта в поле Ориентация ниже.Тип значения: boolean
Локальная переменная: T agent — агент (материальный объект) - [Параметр виден, если выбрана опция Изменить ориентацию]
Если нужно повернуть помещаемый на конвейер материальный объект, задайте здесь сторону, которая должна быть впереди относительно направления движения:Передняя сторона
Задняя сторона
Левая сторона
Правая сторонаТип значения: AgentOrientation
Локальная переменная: T agent — агент (материальный объект) - [Параметр виден, если Место назначения: Точка (x, y, z)]
X, Y, Z координаты точки, куда переместится агент.Тип значения: double
Локальная переменная: T agent — агент (материальный объект) - [Параметр виден, если Агенты перемещаются: с помощью транспортеров и Место назначения: Точка (x, y, z)]
Здесь можно выбрать, где будет находиться точка, в которой окажется агент (материальный объект): на уровне или в сети.Тип значения: boolean destinationInNetwork
Значение по умолчанию: false
Локальные переменные:
T agent — агент (материальный объект)
Agent unit — транспортер - [Параметр виден, если ... расположена: на уровне]
Уровень, на котором расположена точка, куда будет помещен агент.Тип значения: Level
Локальные переменные:
T agent — агент (материальный объект)
Agent unit — транспортер - [Параметр виден, если ... расположена: Сеть]
Сеть, в которой расположена точка, куда будет помещен агент.Тип значения: INetwork
Локальные переменные:
T agent — агент (материальный объект)
Agent unit — транспортер - Место разгрузки
- [Параметр виден, если Агенты перемещаются: с помощью ресурсов или самостоятельно]
Задает место разгрузки для агента, который покинул склад. Возможные пункты назначения:Узел — агент перемещается в заданный узел
Аттрактор — агент перемещается в заданный аттрактор
Захваченный ресурс — агент перемещается в текущее местоположение захваченного ресурса (указанного ниже в поле Ресурс)
Агент / ресурс — агент перемещается в местоположение указанного агента
Точка (x, y, z) — агент перемещается в точку с заданными координатами
Узел + точка (x, y, z) — агент перемещается в указанную точку в указанном узле сетиСинтаксис: DestinationType destinationType
Допустимые значения:
Retrieve.DEST_NODE — узел
Retrieve.DEST_ATTRACTOR — аттрактор
Retrieve.DEST_RESOURCE — захваченный ресурс
Retrieve.DEST_AGENT — агент / ресурс
Retrieve.DEST_XYZ — точка с заданными координатами
Retrieve.DEST_NODE_XYZ — точка с заданными координатами внутри узла - [Параметр виден, если Место разгрузки: Узел или Узел + точка (x, y, z)]
Узел, в который переместится агент (материальный объект).Тип значения: INode
Локальная переменная: T agent — агент (материальный объект) - [Параметр виден, если Место разгрузки: Аттрактор]
Аттрактор, в который переместится агент (материальный объект).Тип значения: Attractor
Локальная переменная: T agent — агент (материальный объект) - [Параметр виден, если Место разгрузки: Захваченный ресурс]
Ресурс, к которому переместится агент (материальный объект).Тип значения: ResourcePool
Локальная переменная: T agent — агент (материальный объект) - [Параметр виден, если Место разгрузки: Агент / ресурс]
Заданный агент, к которому переместится агент (материальный объект).Тип значения: Agent
Локальная переменная: T agent — агент (материальный объект) - [Параметр виден, если Место разгрузки: Точка (x, y, z) или Узел + точка (x, y, z)]
X, Y, Z координаты точки, куда переместится агент.Тип значения: double
Локальная переменная: T agent — агент (материальный объект) - Извлечь агента из
- Здесь вы задаете место внутри склада, из которого будет извлечен агент. Агент может быть извлечен из:
ячейки — агент забирается из ячейки внутри склада. При этом учитываются параметры склада Тип стеллажа и Скорость внутри слота.
На складах типов FIFO и LIFO материальные объекты можно извлекать только с определенной «разгрузочной» стороны. В случае складов типа LIFO это та же сторона, что и «загрузочная».
проезда — агент забирается с места на проезде, которое находится напротив зарезервированного слота на нулевом уровне. Движение внутри слота не моделируется, агент «прыгает» из своей ячейки на проезд. Тип склада не влияет на движение.Синтаксис: Retrieve.TakeAgentFrom takeAgentFrom
Задать новое значение при выполнении: set_takeAgentFrom(новое значение)
Допустимые значения:Retrieve.TAKE_FROM_CELL — ячейка
Retrieve.TAKE_FROM_AISLE — узел - [Параметр виден, если Извлечь агента из: ячейки]
Здесь задается скорость вертикального движения агента в проезде склада.Тип значения: double
Локальные переменные:
T agent — агент (материальный объект)
Agent unit — транспортер или ресурс - [Параметр виден, если Извлечь агента из: проезда]
Здесь задается время, за которое агент перемещается на проезд из своей ячейки.Тип значения: double
Локальные переменные:
T agent — агент (материальный объект)
Storage storage — склад
StorageSystem storageSystem — система складов
StorageCell cell — ячейка
Agent unit — транспортер или ресурс - Транспортеры и ресурсы
- [Параметр виден, если Агенты перемещаются: с помощью транспортеров]
Задает приоритет для задачи входящего агента (чем выше значение, тем выше приоритет).Тип значения: double
Локальная переменная: T agent — агент (материальный объект) - [Параметр виден, если Агенты перемещаются: с помощью транспортеров]
Если опция выбрана, эта задача сможет вытеснять другие задачи захватываемого транспортера.Тип значения: boolean
Локальная переменная: T agent — агент (материальный объект) - [Параметр виден, если Агенты перемещаются: с помощью транспортеров]
Здесь можно задать правило поведения, если для захваченного транспортера поступают еще какие-то задачи:Вытеснения нет — текущая задача продолжит выполняться
Захватывать любой ресурс — задача прервется и агент (материальный объект) пытается захватить любой транспортер заданного типаЛокальная переменная: T agent — агент (материальный объект) - [Параметр виден, если Агенты перемещаются: с помощью транспортеров]
Задает поведение транспортера после его освобождения. Транспортер:Возвращается на текущую базу
Возвращается на ближайшую базу — это место выбирается из списка базовых местоположений, который задан в свойствах блока TransporterFleet). Когда транспортер достигнет узла, который удовлетворяет этим требованиям, этот узел будет считаться текущей базой для этого транспортера.
Отправляется в... — транспортер отправляется на место, указанное в параметре Место назначения
Остается на местеТип значения: ReleaseTransporter.TransporterReleaseMovingPolicy
Допустимые значения:Retrieve.MP_RETURNS_TO_HOME — возвращается на текущую базу
Локальная переменная: Agent unit — освобожденный транспортер
Retrieve.MP_RETURNS_TO_NEAREST_HOME — возвращается на ближайшую базу
Retrieve.MP_GO_TO — Отправляется в...
Retrieve.MP_STAYS_WHERE_IT_IS — остается на месте - Место назначения
- [Параметр виден, если После освобождения транспортер: Отправляется в...]
Задает пункт назначения для освобожденного транспортера:Узел — транспортер перемещается в заданный узел
Аттрактор — транспортер перемещается в заданный аттрактор
Путь — транспортер перемещается на заданный путь
Конвейер — транспортер перемещается на заданный конвейер
Точка конвейера — транспортер перемещается в заданную точку конвейера
Станция обработки — транспортер перемещается в заданную станцию обработки
(x, y, z) — транспортер перемещается в точку с заданными координатамиСинтаксис: DestinationType transporterReleaseDestinationType
Допустимые значения:Retrieve.RELEASE_NODE — узел
Retrieve.RELEASE_ATTRACTOR — аттрактор
Retrieve.RELEASE_PATH — путь
Retrieve.RELEASE_CONVEYOR — конвейер
Retrieve.RELEASE_POSITION_ON_CONVEYOR — точка конвейера
Retrieve.RELEASE_CONVEYOR_STATION — станция обработки
Retrieve.RELEASE_XYZ — точка с координатами - [Параметр виден, если Место назначения: Узел]
Узел,в который отправляется транспортер.Тип значения: INode
Локальная переменная: Agent unit — транспортер - [Параметр виден, если Место назначения: Аттрактор]
Аттрактор, в который отправляется транспортер.Тип значения: Attractor
Локальная переменная: Agent unit — транспортер - [Параметр виден, если Место назначения: Путь]
Путь, на который отправляется транспортер.Тип значения: Path
Локальная переменная: Agent unit — транспортер - [Параметр виден, если Место назначения: Конвейер]
Конвейер, на который отправляется транспортер.Тип значения: ConveyorPath
Локальная переменная: Agent unit — транспортер - [Параметр виден, если Место назначения: Путь или Конвейер]
Определяет, как будет рассчитан отступ до точки на пути или конвейере, в которую переместится транспортер: от начала конвейера/пути или конца конвейера/пути.Тип значения: boolean
Локальная переменная: Agent unit — транспортер - [Параметр виден, если Место назначения: Путь или Конвейер]
Смещение от начальной или конечной точки пути/конвейера (зависит от значения параметра Смещение от) до точки, в которую должен прибыть транспортер.Тип значения: double
Локальная переменная: Agent unit — транспортер - [Параметр виден, если Место назначения: Точка конвейера]
Точка конвейера, в которую отправляется транспортер.Тип значения: PositionOnConveyor
Локальная переменная: Agent unit — транспортер - [Параметр виден, если Место назначения: Станция обработки]
Станция обработки, в которую отправляется транспортер.Тип значения: ConveyorStation
Локальная переменная: Agent unit — транспортер - [Параметр виден, если Место назначения: Точка (x, y, z)]
X, Y, Z координаты точки, в которую отправляется транспортер.Тип значения: double
Локальная переменная: Agent unit — транспортер - [Параметр виден, если Место назначения: Точка (x, y, z)]
Здесь можно выбрать, куда поместить транспортер после освобождения: на уровне или в сети.Тип значения: boolean destinationInNetwork
Значение по умолчанию: false
Локальная переменная: Agent unit — транспортер - [Параметр виден, если ... расположена: на уровне]
Уровень, на который будет отправлен транспортер после освобождения.Тип значения: Level
Локальная переменная: Agent unit — транспортер - [Параметр виден, если ... расположена: Network]
Сеть, в которую отправится освободившийся транспортер.Тип значения: INetwork
Локальная переменная: Agent unit — транспортер - [Параметр виден, если Агенты перемещаются: с помощью транспортеров]
Задает условие возвращения транспортера после освобождения. Он может перейти к выполнению следующей задачи (если задача есть) и отправиться в заданное местоположение, только когда не останется задач, или может отправляться в указанное местоположение каждый раз после освобождения и только по достижении этого местоположения переходить к выполнению следующей задачи.Тип значения: ReleaseTransporter.TransporterReleaseReturnPolicy
Допустимые значения:Retrieve.RP_IF_NO_OTHER_TASKS — если не осталось задач
Локальная переменная: T unit — освобождаемый блоком транспортер
Retrieve.RP_EACH_TIME — всегда - Задать выбор транспортера
- [Параметр виден, если Агенты перемещаются: с помощью транспортеров]
Если опция выбрана, можно задать определенный транспортер для извлечения агента из склада (используя параметр Условие выбора транспортера ниже).Синтаксис: boolean customizeTransporterChoice - [Параметр виден, если выбрана опция Задать выбор транспортера]
Здесь вы можете указать логическое выражение ( boolean), которое будет вычисляться, чтобы найти нужный транспортер для выполнения этой задачи. Если ни один из доступных транспортеров не соответствует указанному условию (выражение возвращает false), блок будет ждать, пока освободится первый транспортер, соответствующий условию.
Обычно вы задаете какое-либо поле внутри типа агента (к примеру, transport), помещаете туда ссылку на транспортер, когда он начинает работать с агентом ( agent.transport=transporter), и затем указываете здесь условие agent.transport==transporter позволяющее только этому конкретному транспортеру продолжать работу с этим конкретным агентом.Тип значения: boolean
Локальные переменные:
T agent — агент (материальный объект)
Agent unit — транспортер
TransporterFleet fleet — автопарк - Политика выбора транспортера
- [Параметр виден, если Агенты перемещаются: с помощью транспортеров]
Здесь вы можете выбрать, как должен выбираться транспортер для перемещения агента (материального объекта). Если выше выбрана опция Задать выбор транспортера, то транспортер будет выбираться только из того набора транспортеров, которые удовлетворяют заданному выше Условию выбора транспортера. Возможные варианты:Ближайший к агенту — Выбирается транспортер, ближайший к текущему агенту (материальному объекту). Расстояние между транспортером и агентом рассчитывается по прямой линии, не учитывая препятствия (для транспортеров с произвольной навигацией) или длину маршрута в сети (для транспортеров с навигацией по заданному пути)
Кратчайший маршрут к месту погрузки — Выбирается транспортер, чей маршрут движения к месту погрузки короче всех
Наиболее предпочтительный — Транспортер выбирается путем сравнения транспортеров друг с другом. Алгоритм сравнения (или его вызов) помещается в поле unit1 предпочтительнее, чем unit2
По рейтингу — Выбирается транспортер с лучшим рейтингом. Рейтинг (или алгоритм его вычисления) задается пользователем в поле Рейтинг транспортера
Не применяется — Политика выбора транспортера не применяется, просто выбирается какой-то из доступных транспортеровСинтаксис: SeizeTransporter.DispatchingPolicy dispatchingPolicy
Допустимые значения:MoveByTransporter.DISPATCHING_POLICY_NEAREST — ближайший к агенту
MoveByTransporter.DISPATCHING_POLICY_SHORTEST_PATH — кратчайший маршрут к месту погрузки
MoveByTransporter.DISPATCHING_POLICY_BASED_ON_COMPARISON — наиболее предпочтительный
MoveByTransporter.DISPATCHING_POLICY_BASED_ON_RATING_VALUE — по рейтингу
MoveByTransporter.DISPATCHING_POLICY_SOME_TRANSPORTER — не применяется - [Параметр виден, если Политика выбора транспортера: Наиболее предпочтительный]
Вызов алгоритма сравнения транспортеров для определения транспортера, наиболее подходящего для перемещения данного материального объекта. Алгоритм должен возвращать true, если сравниваемый транспортер unit1 предпочтительнее, чем транспортер unit2 (а если наоборот, включая равенство при сравнении, — то возвращается значение false). Алгоритм должен соблюдать транзитивность.Тип значения: boolean
Локальные переменные:
Agent unit1 — первый транспортер для сравнения
Agent unit2 — второй транспортер для сравнения
T agent — текущий материальный объект - [Параметр виден, если Политика выбора транспортера: По рейтингу]
Значение рейтинга транспортера (чем больше значение, тем выше рейтинг). С помощью рейтинга производится выбор транспортера для перемещения текущего агента (материального объекта) — выбирается транспортер с высшим рейтингом. Чаще всего здесь помещается алгоритм или вызов функции, производящей подсчет рейтинга с помощью имеющихся в распоряжении локальных переменных.Тип значения: double
Значение по умолчанию: 0
Локальные переменные:
Agent unit — транспортер
T agent — текущий материальный объект - [Параметр виден, если Агенты перемещаются: с помощью ресурсов]
Задает приоритет для задачи входящего агента (чем выше значение, тем выше приоритет).Тип значения: double
Локальная переменная: T agent — агент (материальный объект) - [Параметр виден, если Агенты перемещаются: с помощью ресурсов]
Если опция выбрана, задача сможет вытеснять другие задачи требуемого ресурса (если допускается приоритетность задач и приоритет текущей задачи ниже).Тип значения: boolean
Значение по умолчанию: true
Локальная переменная: T agent — агент (материальный объект) - [Параметр виден, если Агенты перемещаются: с помощью ресурсов]
Задает правило поведения при нескольких входящих задачах для ресурса:Вытеснения нет — текущая задача продолжит выполняться
Ожидать оригинал ресурса — задача прервется, и агент (материальный объект) будет ждать, когда ресурс, захваченный изначально, сможет ее закончить
Захватывать любой ресурс — задача прервется, и агент (материальный объект) попытается захватить любой ресурс заданного типаЗначение по умолчанию: Вытеснения нет Допустимые значения:Retrieve.PP_NO_PREEMPTION — Вытеснения нет
Retrieve.PP_WAIT_FOR_ORIGINAL_RESOURCE — Ожидать оригинал ресурса
Retrieve.PP_SEIZE_ANY_RESOURCE — Захватывать любой ресурс - После освобождения ресурсы
- [Параметр виден, если Агенты перемещаются: с помощью ресурсов]
Определяет, должны ли ресурсы после освобождения возвращаться в их базовое местоположение (если их не захватывает другой агент) или оставаться в том же месте сети.Синтаксис: boolean resourcesGoHome
Значение по умолчанию: true — возвращаются в базовую точку Локальные переменные:
T agent — агент (материальный объект)
Agent unit — ресурс - [Параметр виден, если После освобождения ресурсы: возвращаются в базовую точку]
Выберите режим завершения для ресурсов: должны ли они всегда возвращаться в базовую точку, или только если нет других задач или выберите другое и укажите приоритет и правило вытеснения для завершения ниже.
В этом случае приоритет задачи возвращения будет сравниваться с приоритетами других входящих задач, после чего политика вытеснения задач выберет следующую задачу для этого конкретного.Локальные переменные:
T agent — агент (материальный объект)
Agent unit — ресурс - [Параметр виден, если Возвращаться: другое]
Здесь вы можете приоритет завершающей задачи.Тип значения: double
Локальные переменные:
T agent — агент (материальный объект)
Agent unit — ресурс - [Параметр виден, если Агенты перемещаются: с помощью ресурсов]
Задает правило вытеснения для задачи завершения:Вытеснения нет — задача возвращения не может быть вытеснена
Прекратить — задача возвращения может быть вытеснена и прекращенаЛокальные переменные:
T agent — агент (материальный объект)
Agent unit — ресурс - Задать выбор ресурса
- [Параметр виден, если Агенты перемещаются: с помощью ресурсов]
Если эта опция выбрана, вы можете указать определенные ресурсы для перемещения агента на склад (используя параметр Условие выбора ресурса, расположенный ниже).Синтаксис: boolean customizeResourceChoice Значение по умолчанию: false - [Параметр виден, если выбрана опция Задать выбор ресурса]
Здесь вы можете указать булево выражение, которое будет вычисляться, чтобы найти требуемые ресурсы для выполнения операции. Если нет доступных ресурсов, подходящих под условие (условие возвращает false), этот блок будет ожидать первый доступный ресурс, для которого выполняется условие. Обычно вы задаете какой-либо параметр внутри типа агента (например, myAssistant), помещаете туда ссылку на ресурс, когда он начинает работать с агентом (agent.myAssistant=unit), и затем указываете здесь условие agent.myAssistant==unit, позволяющее только этому конкретному ресурсу продолжать работу с этим конкретным агентом.Тип значения: boolean
Значение по умолчанию: true
Локальные переменные:
T agent — агент (материальный объект)
Agent unit — ресурс
ResourcePool pool — набор ресурсов - [Параметр виден, если Агенты перемещаются: с помощью ресурсов]
Здесь вы можете указать политику выбора ресурса для агента.Не применяется — политика выбора ресурса не применяется, просто выбирается какой-то из доступных ресурсов
Ближайший к агенту — выбирается ресурс, ближайший к текущему агенту
Наиболее предпочтительный — ресурс выбирается путем сравнения ресурсов друг с другом. Алгоритм сравнения (или его вызов) помещается в поле "unit1 предпочтительнее unit2"
По рейтингу — выбирается ресурс с лучшим рейтингом. Рейтинг (или алгоритм его вычисления) задается пользователем в поле Рейтинг ресурса.Значение по умолчанию: Не применяется Допустимые значения:Retrieve.RESOURCE_SELECTION_SOME_UNIT — Не применяется
Локальные переменные:
Retrieve.RESOURCE_SELECTION_NEAREST — Ближайший к агенту
Retrieve.RESOURCE_SELECTION_BASED_ON_COMPARISON — Наиболее предпочтительный
Retrieve.RESOURCE_SELECTION_BASED_ON_RATING_VALUE — По рейтингу
T agent — агент (материальный объект)
ResourcePool pool — набор ресурсов - [Параметр виден, если Политика выбора ресурса: Наиболее предпочтительный]
Вызов алгоритма для сравнения ресурсов для определения наиболее подходящего для выполнения задачи данного агента. Алгоритм должен возвращать true, если сравниваемый ресурс unit1 предпочтительнее, чем ресурс unit2 (а если наоборот, включая равенство при сравнении, то возвращается значение false). Алгоритм должен соблюдать транзитивность.Тип значения: boolean
Значение по умолчанию: false
Локальные переменные:
Agent unit1 — первый ресурс для сравнения
Agent unit2 — второй ресурс для сравнения
T agent — агент (материальный объект) - [Параметр виден, если Политика выбора ресурса: По рейтингу]
Значение рейтинга ресурса (чем больше значение, тем выше рейтинг). С помощью рейтинга производится выбор ресурса для выполнения операции текущего агента — выбирается ресурс с высшим рейтингом. Чаще всего здесь помещается алгоритм или вызов функции, производящей подсчет рейтинга с помощью имеющихся в распоряжении локальных переменных.Тип значения: double
Локальные переменные:
T agent — агент (материальный объект)
Agent unit — ресурс
- При входе
- Здесь вы можете задать код, который будет выполняться в момент, когда агент (материальный объект) попадает в блок.
Локальные переменные:
T agent — агент (материальный объект)
StorageCell cell — ячейка - При захвате транспортера
- [Параметр виден, если Агенты перемещаются: с помощью транспортеров]
Здесь вы можете задать код, который будет выполняться в момент, когда агент (материальный объект) захватит транспортер, который извлечет его со склада.Локальные переменные:
T agent — агент (материальный объект)
Agent unit — транспортер - При начале разгрузки
- [Параметр виден, если Агенты перемещаются: с помощью транспортеров]
Здесь вы можете задать код, который будет выполняться в момент начала разгрузки транспортера (перемещение агента (материального объекта) из захваченного транспортера).Локальные переменные:
T agent — агент (материальный объект)
Agent unit — транспортер - При завершении разгрузки
- [Параметр виден, если Агенты перемещаются: с помощью транспортеров]
Здесь вы можете задать код, который будет выполняться в момент завершения разгрузки транспортера (перемещение агента (материального объекта) из захваченного транспортера).Локальные переменные:
T agent — агент (материальный объект)
Agent unit — транспортер - При захвате ресурса
- [Параметр виден, если Агенты перемещаются: с помощью ресурсов]
Здесь вы можете задать код, который будет выполняться в момент, когда агент (материальный объект) захватит ресурс, который извлечет его со склада.Локальные переменные:
T agent — агент (материальный объект)
Agent unit — ресурс - По прибытии ресурса
- [Параметр виден, если Агенты перемещаются: с помощью ресурсов]
Здесь вы можете задать код, который будет выполняться в момент прибытия, когда ресурс прибыл для изъятия агента (материального объекта).Локальные переменные:
T agent — агент (материальный объект)
Agent unit — ресурс - При начале извлечения
- [Параметр виден, если Извлечь агента: из проезда]
Здесь вы можете задать код, который будет выполняться в момент начала извлечения.Локальные переменные:
T agent — текущий агент (материальный объект)
Agent unit — ресурс или транспортер
double retrievingTime — время ожидания
StorageCell cell — ячейка - При завершении извлечения
- [Параметр виден, если Извлечь агента: из проезда]
Здесь вы можете задать код, который будет выполняться в момент завершения извлечения.Локальная переменная: T agent — агент (материальный объект) - При освобождении транспортера
- [Параметр виден, если Агенты перемещаются: с помощью транспортеров]
Здесь вы можете задать код, который будет выполняться в момент, когда агент (материальный объект) освобождает транспортер.Локальные переменные:
T agent — агент (материальный объект)
Agent unit — транспортер - При освобождении ресурса
- [Параметр виден, если Агенты перемещаются: с помощью ресурсов]
Здесь вы можете задать код, который будет выполняться в момент, когда агент (материальный объект) освобождает ресурс.Локальные переменные:
T agent — агент (материальный объект)
Agent unit — ресурс - При выходе
- Здесь вы можете задать код, который будет выполняться в момент, когда агент (материальный объект) покидает блок.
Локальная переменная: T agent — агент (материальный объект)
- При удалении
- Здесь вы можете задать код, который будет выполняться в момент, когда агент удаляется из блока вызовом функции remove().
Локальная переменная: T agent — агент (материальный объект)
- При приостановке задачи
- [Виден и доступен, только если Агенты перемещаются: с помощью ресурсов или с помощью транспортеров и Правило вытеснения задач: Захватывать любой ресурс или Ожидать оригинал ресурса]
Здесь вы можете задать код, который будет выполняться в момент приостановки задачи из-за правил вытеснения, когда ресурс захватывается другой задачей с более высоким приоритетом.Локальные переменные:
T agent — агент (материальный объект)
Agent unit — ресурс или транспортер - При возобновлении задачи
- [Виден и доступен, только если Агенты перемещаются: с помощью ресурсов или с помощью транспортеров и Правило вытеснения задач: Захватывать любой ресурс или Ожидать оригинал ресурса]
Здесь вы можете задать код, который будет выполняться в момент возобновления задачи, приостановленной из-за правил вытеснения.Локальные переменные:
T agent — агент (материальный объект)
Agent unit — ресурс или транспортер
- Функции блока Retrieve
-
Функция Описание int nWaitingForResource() Возвращает количество агентов (материальных объектов), ожидающих ресурсы в блоке. remove(Agent agent) Удаляет агента из блока.
Agent agent — агент, который находится в блокеСуществует ряд особенностей поведения модели при вызове этой функции. Поведение может отличаться в зависимости от того, каким образом агент (материальный объект) покидает склад, и того, когда именно была вызвана функция.recalculateResourceChoiceConditions(Agent agent) Производит перерасчет условий выбора для заданного агента, который находится в очереди этого блока. Эту функцию можно использовать, когда ресурсы, ранее недоступные определенному агенту, могли стать доступными для захвата из-за новых условий.
Agent agent — агент (материальный объект), который в данный момент находится в очереди этого блокаrecalculateResourceChoiceConditions() Производит перерасчет условий выбора для всех агентов, которые находятся в очереди этого блока. Эту функцию можно использовать, когда ранее недоступные ресурсы могли стать доступными для захвата из-за новых условий. recalculateAgentPriority(Agent agent) Производит перерасчет приоритетности задач для заданного агента, который находится в очереди этого блока. Вызов этой функции может повлечь за собой вытеснение ресурсов.
Agent agent — агент (материальный объект), который в данный момент находится в очереди этого блокаrecalculatePriorities() Производит перерасчет приоритетности задач для всех агентов, которые в данный момент находятся в очереди этого блока. Вызов этой функции может повлечь за собой вытеснение ресурсов.
- Агенты перемещаются: с помощью транспортеров
- Если в момент вызова функции агент находится в ожидании транспортера, то агент будет удален из блока. Задача транспортера будет отменена.
- Если в момент вызова функции транспортер уже двигается к агенту, чтобы извлечь его из склада, но еще не доехал до слота, то агент будет удален из блока. Транспортер освободится и направится на базу (при отсутствии других задач).
- Агент не будет удален, если функция вызвана, когда транспортер начал процесс извлечения (движется внутри слота, ожидает, пока истечет Время извлечения, находится в режиме погрузки)
- Агент не будет удален, если функция вызвана, когда транспортер уже извлек агента со склада и движется с ним в заданное место назначения.
- Агенты перемещаются: с помощью ресурсов
- Если в момент вызова функции агент находится в ожидании ресурса или если ресурс уже перемещает его в место разгрузки, то агент будет удален из блока. Задача ресурса будет отменена. Ресурс направится на базу (при отсутствии других задач).
- Агент не будет удален, если в момент вызова функции агент движется внутри слота, во Время извлечения, или во время спуска агента с верхних полок.
- Агенты перемещаются: самостоятельно
- Агент будет удален из блока, если в момент вызова функции он движется к месту разгрузки.
- Агент не будет удален, если вызов функции произошел во Время извлечения, в момент выхода агента из слота или во время спуска с верхних полок.
- in
- Входной порт.
- out
- Выходной порт.
-
Как мы можем улучшить эту статью?
-