SeizeTransporter

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

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

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

Параметры

Автопарк [динамический]
Блок TransporterFleet, задающий автопарк транспортеров. Этот блок захватит одного транспортера из заданного автопарка.
Тип значения: TransporterFleet
Локальные переменные:  T agent - текущий материальный объект
Место назначения
Задает место, в которое направится транспортер:
Агент - транспортер отправляется к текущему местонахождению агента.
Узел -транспортер отправляется в заданный узел сети.
Аттрактор
- транспортер отправляется к заданному аттрактору.
Путь - транспортер отправляется к заданному пути.
Конвейер - транспортер отправляется на заданный конвейер.
Точка на конвейере - транспортер отправляется в заданную точку конвейера.
Станция обработки - транспортер отправляется в заданную станцию обработки.
Точка (x, y, z) -  транспортер отправляется в точку с заданными координатами.
Синтаксис: DestinationType destinationType
Установить новое значение во время выполнения: set_destinationType(новое значение)
Допустимые значения: MoveByTransporter.DEST_NODE; MoveByTransporter.DEST_ATTRACTOR; MoveByTransporter.DEST_PATH; MoveByTransporter.DEST_CONVEYOR; MoveByTransporter.DEST_POSITION_ON_CONVEYOR; MoveByTransporter.DEST_CONVEYOR_STATION; MoveByTransporter.DEST_XYZ
Путь [динамический]
[Параметр виден, если в параметре Место назначения выбрана опция Путь] Путь, к которому направится транспортер.
Тип значения: Path
Локальные переменные:  T agent - текущий материальный объект
                          Agent transporter - транспортер
Конвейер [динамический]
[Параметр виден, если в параметре Место назначения выбрана опция Конвейер] Конвейер, к которому направится транспортер.
Тип значения: ConveyorPath
Локальные переменные:  T agent - текущий материальный объект
                          Agent transporter - транспортер
Смещение от [динамический]
[Параметр виден, если в параметре Место назначения выбрана опция Путь или Конвейер]Задает точку отсчета для смещения на конвейере или пути: от начала конвейера/пути, или от конца конвейера/пути.
Тип значения: boolean
Локальные переменные:  T agent - текущий материальный объект
                          Agent transporter - транспортер
Смещение [динамический]
[Параметр виден, если в параметре Место назначения выбрана опция Путь или Конвейер] Точка отсчета для смещения от начала или конца конвейера/пути (зависит от параметра Смещение от), задающая точное место назначение для транспортера.
Тип значения: double
Локальные переменные:  T agent - текущий материальный объект
                          Agent transporter - транспортер
Аттрактор [динамический]
[Параметр виден, если в параметре Место назначения выбрана опция АттракторАттрактор, к которому направится транспортер.
Тип значения: Attractor
Локальные переменные:  T agent - текущий материальный объект
                          Agent transporter - транспортер
Узел [динамический]
[Параметр виден, если в параметре Место назначения выбрана опция Узел] Узел сети, к которому направится транспортер.
Тип значения: Node
Локальные переменные:  T agent - текущий материальный объект
                          Agent transporter - транспортер
Точка конвейера [динамический]
[Параметр виден, если в параметре Место назначения выбрана опция Точка конвейера] Точка конвейера, к которой направится транспортер.
Тип значения: PositionOnConveyor
Локальные переменные:  T agent - текущий материальный объект
                          Agent transporter - транспортер
Станция обработки [динамический]
[Параметр виден, если в параметре Место назначения выбрана опция Станция обработки] Станция обработки, к которой направится транспортер.
Тип значения: ConveyorStation
Локальные переменные:  T agent - текущий материальный объект
                          Agent transporter - транспортер
Точка X, Y, Z [динамический]
[Параметр виден, если в параметре Место назначения выбрана опция Точка (x, y, z)] X, Y, Z координаты точки, к которой направится транспортер.
Тип значения: double
Локальные переменные:  T agent - текущий материальный объект
                          Agent transporter - транспортер
Приоритеты
Приоритет задачи [динамический]
Задает приоритет для задачи входящего агента (чем выше значение, тем выше приоритет).
Тип значения: double
Локальные переменные:  T agent - текущий материальный объект
Может вытеснять другие задачи [динамический]
Если опция выбрана, задача сможет вытеснять другие задачи с требуемого транспортера.
Тип значения: boolean
Локальные переменные:  T agent - текущий материальный объект
Правило вытеснения задач [динамический]
Здесь можно задать правило поведения при нескольких входящих задачах для транспортера.
Вытеснения нет - текущая задача продолжит выполняться.
Захватывать любой ресурс - задача прервется и пытается захватить любой транспортер заданного типа.
Тип значения: SeizeTransporter.TransporterTaskPreemptionPolicy
Допустимые значения:      TransporterTaskPreemptionPolicy.PP_NO_PREEMPTION
                      TransporterTaskPreemptionPolicy
.PP_SEIZE_ANY_RESOURCE 
Локальные переменные:  T agent - текущий материальный объект
Специфические
Задать выбор транспортера
Если опция выбрана, для выполнения задачи можно задать определенный транспортер (используя параметр Условие выбора транспортера ниже). 
Синтаксис: boolean customizeTransporterChoice
Установить новое значение во время выполнения: set_customizeTransporterChoice(новое значение)
Условие выбора транспортера [динамический]
[Параметр виден, если выбрана опция Задать выбор транспортераЗдесь вы можете указать логическое выражение (boolean), которое будет вычисляться, чтобы найти требуемый транспортер для выполнения этой задачи. Если ни один из доступных транспортеров не соответствует указанному условию (выражение возвращает false), блок будет ждать, пока освободится первый транспортер, соответствующий условию. 
Обычно вы задаете какое-либо поле внутри типа агента (к примеру, transport), помещаете туда ссылку на транспортер, когда он начинает работать с заявкой (agent.transport=transporter), и затем указываете здесь условие agent.transport==transporter позволяющее только этому конкретному транспортеру продолжать работу с этим конкретным агентом.
Тип значения: boolean
Локальные переменные:  T agent - текущий материальный объект
                          Agent transporter - транспортер
                          TransporterFleet fleet - автопарк
Политика выбора транспортера
Здесь вы можете выбрать, как должен выбираться транспортер. Если выше выбрана опция Задать выбор транспортера, то транспортер будет выбираться только из того набора транспортеров, которые удовлетворяют заданному выше Условию выбора транспортера.
Возможные варианты:
Ближайший к агенту - Выбирается транспортер, ближайший к текущему агенту (материальному объекту).
Наиболее предпочтительный - Транспортер выбирается путем сравнения транспортеров друг с другом. Алгоритм сравнения (или его вызов) помещается в поле unit1 предпочтительнее, чем unit2.
По рейтингу - Выбирается транспортер с лучшим рейтингом. Рейтинг (или алгоритм его вычисления) задается пользователем в поле Рейтинг транспортера.
Не применяется - Политика выбора транспортера не применяется, просто выбирается какой-то из доступных транспортеров.
Синтаксис: SeizeTransporter.DispatchingPolicy dispatchingPolicy
Установить новое значение во время выполнения: set_dispatchingPolicy(новое значение)
Допустимые значения: SeizeTransporter.DISPATCHING_POLICY_NEAREST; SeizeTransporter.DISPATCHING_POLICY_BASED_ON_COMPARISON; SeizeTransporter.DISPATCHING_POLICY_BASED_ON_RATING_VALUE; SeizeTransporter.DISPATCHING_POLICY_SOME_TRANSPORTER
unit1 предпочтительнее, чем unit2 [динамический]
[Параметр виден, если выбрана Политика выбора транспортера: Наиболее предпочтительный] Вызов алгоритма сравнения транспортеров для определения транспортера, наиболее подходящего для выполнения задачи данного материального объекта. Алгоритм должен возвращать true, если сравниваемый транспортер unit1 предпочтительнее, чем транспортер unit2 (а ели наоборот, включая равенство при сравнении, - то возвращается значение false). Алгоритм должен соблюдать транзитивность.
Тип значения: boolean
Локальные переменные: Agent unit1 - первый транспортер для сравнения
                                           Agent unit2 - второй транспортер для сравнения
                                           T agent - текущий материальный объект
Рейтинг транспортера [динамический]
[Параметр виден, если выбрана Политика выбора транспортера: По рейтингу] Значение рейтинга транспортера (чем больше значение, тем выше рейтинг). С помощью рейтинга производится выбор транспортера для выполнения операции текущего агента (материального объекта) - выбирается транспортер с высшим рейтингом.
Чаще всего здесь помещается алгоритм или вызов функции, производящей подсчет рейтинга с помощью имеющихся в распоряжении локальных переменных. 
Тип значения: double
Значение по умолчанию: 0
Локальные переменные:  Agent unit - транспортер
                                            T agent - текущий материальный объект
Действия
При входе [код]
Здесь вы можете задать код, который будет выполняться в момент поступления агента (материального объекта) в этот блок.
Локальная переменная:  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
Выходной порт.