Release


Освобождает заданное количество ресурсов, ранее захваченных агентом с помощью объекта Seize.

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

Параметры

Освобождать
Задает, какие ресурсы освобождаются. Имеется пять опций на выбор: Все захваченные ресурсы (любого типа), Все ресурсы, захваченные данным блоком Seize, Все захваченные ресурсы данного типа, Заданные ресурсы (список типов), Указанное количество ресурсов.
Имя: releaseMode
Значение по умолчанию: Release.ALL
Допустимые значения: Release.ALL - Все захваченные ресурсы (любого типа)
Release.ALL_FROM_SEIZES - Все ресурсы, захваченные данным блоком Seize
Release.ALL_FROM_POOLS - Все захваченные ресурсы данного типа
Release.SPECIFIED_RESOURCES - Заданные ресурсы (список типов)
Release.SPECIFIED_QUANTITY - Указанное количество ресурсов
Объекты Seize
[Параметр виден, если Освобождать: Все ресурсы, захваченные данным блоком Seize] Выражение, вычисляющее тип ресурсов, к которому принадлежат захваченные ресурсы. Если не указан или возвращает null, значит, используется присоединенный набор ресурсов.
Имя: seizeBlocks
Объекты ResourcePool [динамический]
[Параметр виден, если Освобождать: Все захваченные ресурсы данного типа и Заданные ресурсы (список типов)] Список имен объектов блока ResourcePool, ресурсы которого освобождаются. На каждый тип ресурсов будет освобожден один ресурс, поэтому если вы хотите освободить два и больше ресурсов одного набора, укажите его название дважды и более, например, { doctor, nurse, nurse }.
Локальная переменная: T agent - агент.
Объект ResourcePool [динамический]
[Параметр виден, если Освобождать: Указанное количество ресурсов]
Выражение, возвращающее имя объекта ResourcePool, задающего ресурсы, которые требуется освободить.
Локальная переменная: T agent - агент.
Количество ресурсов [динамический]
[Виден, если Освобождать: Указанное количество ресурсов] Выражение, вычисляющее количество ресурсов, которое необходимо освободить текущему агенту.
Если Количество ресурсов равно нулю, то наличие ресурсов не проверяется, и при этом агент будет просто проходить через объект.
Тип значения: int
Локальная переменная: T agent - агент.
Движущиеся ресурсы [динамический]
Выберите, движущиеся ресурсы Возвращаются в базовую точку (если их сразу же не захватывает другой агент) или Остаются на месте.
Тип значения: boolean
Значение по умолчанию: Возвращаются в базовую точку(true)
Локальные переменные: T agent - агент.
Agent unit - ресурс.
Специфические
Завершение (возвращаться) [динамический]
Здесь задается, когда будет выполняться завершающая задача для закончившего обслуживание своего агента ресурса: завершающая задача может выполняться всегда, или только если нет других задач, или же вы можете выбрать другое и задать приоритет и правило вытеснения для завершающей задачи с помощью приведенных ниже параметров. Завершающей задачей является возвращение ресурсов в их базовое местоположение, а также процесс, заданный с помощью диаграммы процесса, начинающейся с блока, соединенного с портом wrapUp, и заканчивающейся блоком ResourceTaskEnd.
Локальные переменные: T agent - агент.
Agent unit - ресурс
Приоритет "Завершения" [динамический]
[Параметр виден, если Завершение (возвращаться): другое] Устанавливает приоритет задачи завершения.
Тип значения: double
Значение по умолчанию: 0
Локальные переменные: T agent - агент.
Agent unit - ресурс.
Правило вытеснения [динамический]
[Параметр виден, если Завершение (возвращаться): другое] Задает, что произойдет с завершающей задачей при поступлении другой задачи для этого же ресурса:
Вытеснения нет -
завершающая задача не будет вытесняться другой задачей.
Прекратить -
завершающая задача будет вытеснена новой задачей и прекращена.
Значение по умолчанию: Вытеснения нет
Допустимые значения: Release.PP_NO_PREEMPTION, Release.PP_TERMINATE
Локальные переменные: T agent - агент.
Agent unit - ресурс.
В стат-ке "завершение" [динамический]
Выберите, должно ли учитываться время, затраченное на завершающую задачу, как "занятое" время, или же как "свободное" время, или же оно не учитывается в статистике вообще.
Локальные переменные: T agent - агент.
Agent unit - ресурс.
Действия
При входе [код]
Код, выполняемый при поступлении агента в объект.
Локальная переменная: T agent - агент.
При освобождении [код]
Код, выполняемый при освобождении ресурса. Обратите внимание, что ресурсу может быть назначена завершающая задача (постпроцесс) - либо опцией возвращения после выполнения задачи в базовое местоположение ресурса, либо с помощью специальной диаграммы процесса, начинающейся с блока, соединенного с портом wrapUp, и заканчивающейся блоком ResourceTaskEnd.
Локальные переменные: T agent - агент.
Agent unit - ресурс.
При выходе [код]
Код, выполняемый, когда агент покидает объект.
Локальная переменная: T agent - агент.
При прекращении постпроцесса [код]
Код, выполняемый, когда прерывается выполнение завершающей задачи ресурса (в силу вытеснения другой задачей с более высоким приоритетом).
Локальные переменные: T agent - агент, который изначально владел данным ресурсом.
Agent unit - ресурс.

Порты

in
Входной порт.
out
Выходной порт.
wrapUp
Порт, куда вы можете присоединить блок, который начинает завершающий процесс диаграммы. Эта диаграмма должна заканчиваться блоком ResourceTaskEnd.