SeizeTransporter

Захватывает один транспортер из указанного автопарка, заданного блоком TransporterFleet. Направляет транспортер в заданное место.

Используйте блок ReleaseTransporter, чтобы освободить захваченный транспортер. Все захваченные транспортеры должны быть освобождены до того, как блок Sink уничтожит агента.

Демо модель: SeizeTransporter and ReleaseTransporter

Параметры

Автопарк [динамический]
Блок TransporterFleet, задающий автопарк транспортеров. Этот блок захватит одного транспортера из заданного автопарка.
Тип значения: TransporterFleet
Локальная переменная: T agent - текущий материальный объект
Место назначения
Задает место, в которое направится транспортер: Синтаксис: DestinationType destinationType
Допустимые значения:
Узел [динамический]
[Параметр виден, если Место назначения: Узел] Узел сети, к которому направится транспортер.
Тип значения: Node
Локальные переменные:
T agent - текущий материальный объект
Agent unit - транспортер
Аттрактор [динамический]
[Параметр виден, если Место назначения: Аттрактор] Аттрактор, к которому направится транспортер.
Тип значения: Attractor
Локальные переменные:
T agent - текущий материальный объект
Agent unit - транспортер
Путь [динамический]
[Параметр виден, если Место назначения: Путь] Путь, к которому направится транспортер.
Тип значения: Path
Локальные переменные:
T agent - текущий материальный объект
Agent unit - транспортер
Конвейер [динамический]
[Параметр виден, если Место назначения: Конвейер] Конвейер, к которому направится транспортер.
Тип значения: 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 - транспортер
Точка X, Y, Z [динамический]
[Параметр виден, если Место назначения: Точка (x, y, z)] X, Y, Z координаты точки, к которой направится транспортер.
Тип значения: double
Локальные переменные:
T agent - текущий материальный объект
Agent unit - транспортер
... расположена [динамический]
[Параметр виден, если Место назначения: Точка (x, y, z)] Здесь можно выбрать, где будет находиться точка, в которой окажется агент (материальный объект), когда он освободит транспортер: на уровне или в сети.
Тип значения: boolean destinationInNetwork
Значение по умолчанию: false
Уровень [динамический]
[Параметр виден, если ...расположена: на уровне] Уровень, на котором расположена точка, куда будет помещен агент, когда он освободит транспортер.
Тип значения: Level
Локальные переменные:
T agent - агент
Agent unit - транспортер
Сеть [динамический]
[Параметр виден, если ...расположена: в сети] Сеть, в которой расположена точка, куда будет помещен агент, когда он освободит транспортер.
Тип значения: INetwork
Локальные переменные:
T agent - агент
Agent unit - транспортер
Приоритеты
Приоритет задачи [динамический]
Задает приоритет для задачи входящего агента (чем выше значение, тем выше приоритет).
Тип значения: double
Локальная переменная:
T agent - текущий материальный объект
Может вытеснять другие задачи [динамический]
Если опция выбрана, задача сможет вытеснять другие задачи с требуемого транспортера.
Тип значения: boolean
Локальная переменная:
T agent - текущий материальный объект
Правило вытеснения задач [динамический]
Здесь можно задать правило поведения при нескольких входящих задачах для транспортера.
Тип значения: SeizeTransporter.TransporterTaskPreemptionPolicy
Допустимые значения: Локальная переменная:
T agent - текущий материальный объект
Специфические
Задать выбор транспортера
Если опция выбрана, для выполнения задачи можно задать определенный транспортер (используя параметр Условие выбора транспортера ниже).
Синтаксис: boolean customizeTransporterChoice
Условие выбора транспортера [динамический]
[Параметр виден, если выбрана опция Задать выбор транспортера] Здесь вы можете указать логическое выражение (boolean), которое будет вычисляться, чтобы найти требуемый транспортер для выполнения этой задачи. Если ни один из доступных транспортеров не соответствует указанному условию (выражение возвращает false), блок будет ждать, пока освободится первый транспортер, соответствующий условию. Обычно вы задаете какое-либо поле внутри типа агента (к примеру, transport), помещаете туда ссылку на транспортер, когда он начинает работать с заявкой (agent.transport=transporter), и затем указываете здесь условие agent.transport==transporter позволяющее только этому конкретному транспортеру продолжать работу с этим конкретным агентом.
Тип значения: boolean
Локальные переменные:
T agent - текущий материальный объект
Agent unit - транспортер
TransporterFleet fleet - автопарк
Политика выбора транспортера
Здесь вы можете выбрать, как должен выбираться транспортер. Если выше выбрана опция Задать выбор транспортера, то транспортер будет выбираться только из того набора транспортеров, которые удовлетворяют заданному выше Условию выбора транспортера. Возможные варианты: Синтаксис: SeizeTransporter.DispatchingPolicy dispatchingPolicy
Допустимые значения:
unit1 предпочтительнее, чем unit2 [динамический]
[Параметр виден, если Политика выбора транспортера: Наиболее предпочтительный] Вызов алгоритма сравнения транспортеров для определения транспортера, наиболее подходящего для выполнения задачи данного материального объекта. Алгоритм должен возвращать true, если сравниваемый транспортер unit1 предпочтительнее, чем транспортер unit2(а еcли наоборот, включая равенство при сравнении, - то возвращается значение false). Алгоритм должен соблюдать транзитивность.
Тип значения: boolean
Локальные переменные:
Agent unit1 - первый транспортер для сравнения
Agent unit2 - второй транспортер для сравнения
T agent - текущий материальный объект
Рейтинг транспортера [динамический]
[Параметр виден, если Политика выбора транспортера: По рейтингу] Значение рейтинга транспортера (чем больше значение, тем выше рейтинг). С помощью рейтинга производится выбор транспортера для выполнения операции текущего агента (материального объекта) - выбирается транспортер с высшим рейтингом. Чаще всего здесь помещается алгоритм или вызов функции, производящей подсчет рейтинга с помощью имеющихся в распоряжении локальных переменных.
Тип значения: double
Значение по умолчанию: 0
Локальные переменные:
Agent unit - транспортер
T agent - текущий материальный объект
При отмене задачи транспортер [динамический]
Задает поведение транспортера, который был захвачен уже после того, как агент покинул блок по таймауту, из-за вытеснения или по вызову функции remove(). Вы можете выбрать одну из следующих опций: Тип значения: ReleaseTransporter.TransporterReleaseMovingPolicy
Допустимые значения: Локальная переменная: T unit - освобождаемый блоком транспортер
Место назначения
Задает место, в которое транспортер отправится после отмены задачи: Синтаксис: DestinationType canceledDestinationType
Допустимые значения:
Узел [динамический]
[Параметр виден, если Место назначения: Узел] Узел сети, к которому направится транспортер.
Тип значения: Node
Локальная переменная:
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)] X, Y, Z координаты точки, к которой направится транспортер.
Тип значения: double
Локальная переменная
Agent unit - транспортер
... расположена [динамический]
[Параметр виден, если Место назначения: Точка (x, y, z)] Здесь можно выбрать, где будет находиться точка, в которой окажется освободившийся транспортер: на уровне или в сети.
Тип значения: boolean destinationInNetwork
Значение по умолчанию: false
Уровень [динамический]
[Параметр виден, если ...расположена: на уровне] Уровень, на котором расположена точка, куда отправится освободившийся транспортер.
Тип значения: Level
Локальная переменная: Agent unit - транспортер
Сеть [динамический]
[Параметр виден, если ...расположена: в сети] Сеть, в которой расположена точка, куда куда отправится освободившийся транспортер.
Тип значения: INetwork
Локальная переменная: Agent unit - транспортер
Действия
При входе [код]
Здесь вы можете задать код, который будет выполняться в момент поступления агента (материального объекта) в этот блок.
Локальная переменная:
T agent - текущий материальный объект
При захвате транспортера [код]
Здесь вы можете задать код, который будет выполняться, когда агент (материальный объект) захватит транспортер.
Локальные переменные:
T agent - текущий материальный объект
Agent unit - транспортер
При извлечении [код]
Здесь вы можете задать код, который будет выполняться, когда агент (материальный объект) покинет конвейер.
Локальная переменная:
T agent - текущий материальный объект
При выходе [код]
Здесь вы можете задать код, который будет выполняться, когда агент (материальный объект) покинет этот блок.
Локальная переменная:
T agent - текущий материальный объект
При приостановке задачи [код]
[Параметр виден, если Правило вытеснения задач: Захватывать любой ресурс] Вызов действия происходит при приостановке задачи из-за правила Захватывать любой ресурс, когда транспортер захватывает другая задача с более высоким приоритетом.
Локальные переменные:
T agent - текущий материальный объект
Agent unit - транспортер
При возобновлении задачи [код]
[Параметр виден, если Правило вытеснения задач: Захватывать любой ресурс] Вызов действия происходит при возобновлении задачи после того, как она была приостановлена из-за правила Захватывать любой ресурс.
Локальные переменные:
T agent - текущий материальный объект
Agent unit - транспортер

Функции

T get(int index) - Возвращает агента c заданном индексом index (ближайший к выходу агент имеет номер 0).

int size() - Возвращает количество агентов, находящихся в данный момент в очереди.

Порты

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