AnyLogic
Развернуть
Размер шрифта

Функции ресурсов

Доступ к ресурсам, захваченным агентом, можно осуществить через неизменяемую коллекцию агента LinkedList<Agent> resourceUnits.

Все ресурсы, работающие в диаграммах процессов Библиотеки моделирования процессов, предоставляют следующие функции:

Информация о ресурсах
Функция Описание
ResourcePool resourcePool() Возвращает блок ResourcePool, которому принадлежит этот ресурс.
ResourceType getResourceType() Возвращает тип ресурса (RESOURCE_STATIC, RESOURCE_MOVING, RESOURCE_PORTABLE).
Состояние
Функция Описание
boolean isBusy() Проверяет, занят ли текущий ресурс (захвачен, движется к базовому местоположению или к месту применения). Возвращает true, если ресурс занят, в противном случае — false.
boolean isIdle() Проверяет, свободен ли текущий ресурс, и можно ли его занять. Возвращает true, если ресурс свободен, в противном случае возвращает false.
boolean isReserved() Возвращает true, если ресурс зарезервирован определенным запросом — ресурс при этом может быть свободен, то есть запрос не завершен, или занят другой задачей, которая будет прервана и вытеснена, когда запрос завершится.
Agent getReservedBy() Возвращает агента, который зарезервировал этот ресурс, или null (если этот ресурс не зарезервирован, см. isReserved()).
Agent getServicedEntity() Возвращает агента, который в данный момент владеет этим ресурсом. Возвращает null, если этот ресурс свободен либо занят сторонней задачей, не относящейся к агенту (к примеру, ремонт ресурсов).
Статистика загруженности
Функция Описание
double getUtilization() Возвращает загруженность ресурса: долю времени, в течение которой ресурс был занят. Возвращаемое значение загруженности ресурса находится в диапазоне [0..1]. Если доступность этого ресурса задана в блоке ResourcePool с помощью расписания, то коэффициент загрузки рассчитывается только для рабочих часов.
double timeInState(ResourceUsageState state) Возвращает время, которое ресурс провел в заданном состоянии.

state — состояние ресурса (ResourceUsageState.USAGE_IDLE или ResourceUsageState.USAGE_BUSY)
double timeInState(ResourceUsageState state, TimeUnits units) Возвращает время, которое ресурс провел в заданном состоянии (в заданных единицах измерения времени).

state — состояние ресурса (ResourceUsageState.USAGE_IDLE или ResourceUsageState.USAGE_BUSY)
units — константа, определяющая единицу измерения времени.
void resetStats() Производит сброс статистики загруженности.
Статистика обслуживания, аварий, перерывов
Функция Описание
double totalDowntime() Возвращает время, которое ресурс провел в простое любого типа.
double totalDowntime(TimeUnits units) Возвращает время (в указанных единицах измерения времени), которое ресурс провел в простое любого типа.

units — константа, определяющая единицу измерения времени
double totalRepairTime() Возвращает время, которое ресурс провел в состоянии аварии.
double totalRepairTime(TimeUnits units) Возвращает время (в указанных единицах измерения времени), которое ресурс провел в состоянии аварии.

units — константа, определяющая единицу измерения времени
double totalMaintenanceTime() Возвращает время, которое ресурс провел на обслуживании.
double totalMaintenanceTime(TimeUnits units) Возвращает время (в указанных единицах измерения времени), которое ресурс провел на обслуживании.

units — константа, определяющая единицу измерения времени
double totalBreaksTime() Возвращает время, которое ресурс провел на перерывах.
double totalBreaksTime(TimeUnits units) Возвращает время (в указанных единицах измерения времени), которое ресурс провел на перерывах.

units — константа, определяющая единицу измерения времени
double totalCustomTasksTime() Возвращает время, которое ресурс потратил на дополнительные задачи.
double totalCustomTasksTime(TimeUnits units) Возвращает время (в указанных единицах измерения времени), которое ресурс потратил на дополнительные задачи.

units — константа, определяющая единицу измерения времени
Прикрепление ресурсов
Функция Описание
void setAttached(boolean attached) Прикрепляет ресурс к агенту или отсоединяет ресурс от агента, который им владеет. Применимо только к захваченным агентами ресурсам, в противном случае будет выдана ошибка.

attached — при значении true ресурс присоединяется; false — отсоединяется
boolean isAttached() Проверяет, прикреплен ли ресурс к агенту. Возвращает true, если прикреплен, в противном случае возвращает false.
Задачи
Функция Описание
ResourceTaskType currentTaskType() Возвращает тип текущей задачи или null, если ресурс свободен.

Допустимые значения:

TASK_ENTITY — задача, которая выполняется, пока ресурс захвачен агентом
TASK_END_OF_SHIFT — ресурс находится в промежутке между рабочими сменами в соответствии с расписанием
TASK_WRAP_UP — завершающая задача, которая выполняется после того, как ресурс выполнил основную задачу и освободился от агента
TASK_BREAK — ресурс на перерыве
TASK_REPAIR — задача определена как ремонт
TASK_MAINTENANCE — задача определена как обслуживание
TASK_CUSTOM — нестандартная задача из списка, указанного в блоке Downtime
ResourceUnitTask currentTask() Возвращает текущую задачу этого ресурса в виде экземпляров соответствующих классов. Если ресурс свободен, возвращает null.

Допустимые значения:

ResourceUnitBasicTask — в данном случае ресурс находится на перерыве либо выполняет задачу, определенную как ремонт или обслуживание
ResourceUnitEntityServiceSubTask — ресурс выполняет задачу, будучи захваченным агентом
ResourceUnitCustomTask — ресурс выполняет нестандартную задачу из списка, заданного в блоке Downtime
ResourceUnitEndOfShiftTask — ресурс находится между задачами в соответствии с расписанием и не выполняет никаких задач
ResourceUnitWrapUpTask — ресурс выполняет задачу, которая выполняется после того, как ресурс закончил основную задачу и освободился от агента
Базовое местоположение
Функция Описание
void setHomeLocation(INode home) Задает базовое местоположение для ресурса.

home — базовое местоположение
INode getHomeLocation() Возвращает узел сети, заданный в качестве базового местоположения для этого ресурса.
void setHomePosition(double x, double y) Задает координаты базового местоположения ресурса.

x — X координата
y — Y координата
void setHomePosition(double x, double y, double z) Задает координаты базового местоположения ресурса.

x — X координата
y — Y координата
z — Z координата
double getHomeX() Возвращает X координату базового местоположения ресурса.
double getHomeY() Возвращает Y координату базового местоположения ресурса.
double getHomeZ() Возвращает Z координату базового местоположения ресурса.
double getHomeRotation() Возвращает угол вращения базового местоположения ресурса.
Как мы можем улучшить эту статью?