MoveByCrane

Этот блок управляет перемещением агента с помощью крана.

Основные параметры, с помощью которых можно описать работу крана, - скорость и время. Скорость работы крана как правило определяется скоростью движения его компонентов: плеча, лебедки и тележки. Вы можете задать эти значения в свойствах соответствующего элемента разметки пространства Кран. В этом случае система автоматически рассчитает, сколько времени понадобится крану, чтобы переместить агента из одной точки пространства в другую. В случае, где такой уровень детализации будет излишним или же у вас недостаточно данных, вы можете выбрать опцию Использовать время операции в панели Свойства данного блока и непосредственно указать время, в течение которого кран должен переместить агента.

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

По умолчанию блок выбирает агентов для перемещения в соответствии с правилом FIFO ("первым пришел - первым ушел"). Вы можете самостоятельно настроить правило выбора агента в соответствии с требованиями вашего эксперимента.

Демо модель: MoveByCrane

Параметры

Crane [динамический]
Кран, который перемещает агента (материальный объект).
Тип значения: Crane
Локальная переменная:  Agent agent - текущий материальный объект.
Место назначения
Задает место, в которое кран переместит агента:
Узел
- кран отправляется в заданный узел сети.
Аттрактор - кран отправляется к заданному аттрактору.
Конвейер - кран отправляется на заданный конвейер.
Точка на конвейере - кран отправляется в заданную точку конвейера.
Точка (x, y, z) - кран отправляется в точку с заданными координатами.
Агент - кран отправляется к заданному объекту (типа Агент).
Синтаксис: DestinationType destinationType
Установить новое значение во время выполнения: set_destinationType(new value)
Допустимые значения: MoveByCrane.DEST_NODEMoveByCrane.DEST_ATTRACTORMoveByCrane.DEST_CONVEYORMoveByCrane.DEST_POSITION_ON_CONVEYORMoveByCrane.DEST_XYZMoveByCrane.DEST_AGENT
Узел [динамический]
[Параметр виден, если в параметре Место назначения выбрана опция Узел] Узел сети, в который отправится кран.
Значение параметра рассчитывается непосредственно после подъема агента краном.
Тип значения: Node
Локальная переменная:  T agent - текущий материальный объект.
Аттрактор [динамический]
[Параметр виден, если в параметре Место назначения выбрана опция Аттрактор] Аттрактор, к которому отправится кран.
Значение параметра рассчитывается непосредственно после подъема агента краном.
Тип значения: Attractor
Локальная переменная:  T agent - текущий материальный объект.
Конвейер [динамический]
[Параметр виден, если в параметре Место назначения выбрана опция Конвейер] Конвейер, к которому отправится кран.
Значение параметра рассчитывается непосредственно после подъема агента краном.
Тип значения: ConveyorPath
Локальная переменная:  T agent - текущий материальный объект.
Смещение от [динамический]
[Параметр виден, если в параметре Место назначения выбрана опция Конвейер] Задает точку отсчета для смещения на конвейере: от начала конвейера или от конца конвейера.
Значение параметра рассчитывается непосредственно после подъема агента краном.
Тип значения: boolean
Локальная переменная:  T agent - текущий материальный объект.
Смещение [динамический]
[Параметр виден, если в параметре Место назначения выбрана опция Конвейер] Точка отсчета для смещения от начала или конца конвейера (зависит от параметра Смещение от), задающая точное место назначения для крана.
Значение параметра рассчитывается непосредственно после подъема агента краном.
Тип значения: double
Локальная переменная:  T agent - текущий материальный объект.
Точка на конвейере [динамический]
[Параметр виден, если в параметре Место назначения выбрана опция Точка на конвейере] Точка конвейера, к которой отправится кран.
Значение параметра рассчитывается непосредственно после подъема агента краном.
Тип значения: PositionOnConveyor
Локальная переменная:  T agent - текущий материальный объект
X [динамический]
[Параметр виден, если в параметре Место назначения выбрана опция Точка (x, y, z)] X координата точки, к которой отправится кран.
Значение параметра рассчитывается непосредственно после подъема агента краном.
Тип значения: double
Локальная переменная:  T agent - текущий материальный объект
Y [динамический]
[Параметр виден, если в параметре Место назначения выбрана опция Точка (x, y, z)] Y координата точки, к которой отправится кран.
Значение параметра рассчитывается непосредственно после подъема агента краном.
Тип значения: double
Локальная переменная:  T agent - текущий материальный объект
Z [динамический]
[Параметр виден, если в параметре Место назначения выбрана опция Точка (x, y, z)] Z координата точки, к которой отправится кран.
Значение параметра рассчитывается непосредственно после подъема агента краном.
Тип значения: double
Локальная переменная:  T agent - текущий материальный объект
... в сети [динамический]
[Параметр виден, если в параметре Место назначения выбрана опция Точка (x, y, z)] Если опция выбрана, то агент (материальный объект) будет помещен в указанную сеть после разгрузки крана.
Значение параметра рассчитывается непосредственно после подъема агента краном.
Тип значения: boolean
Локальная переменная:  T agent - текущий материальный объект
Сеть [динамический]
[Параметр виден, если выбрана опция ...в сети] Сеть, в которую будет помещен агент (материальный объект) после разгрузки крана.
Значение параметра рассчитывается непосредственно после подъема агента краном.
Тип значения: INetwork
Локальная переменная:  T agent - текущий материальный объект
Агент [динамический]
[Параметр виден, если в параметре Место назначения выбрана опция Агент] Объект (типа Агент), к которому отправится кран.
Значение параметра рассчитывается непосредственно после подъема агента краном.
Тип значения: Agent
Локальная переменная:  T agent - текущий материальный объект
Время загрузки [динамический]
Задает отрезок времени, в течение которого кран должен забрать агента и поднять его на рабочую высоту (материальный объект).
Значение параметра рассчитывается непосредственно после подъема агента краном.
Тип значения: double
Локальная переменная:  T agent - текущий материальный объект
Время разгрузки [динамический]
Задает отрезок времени, в течение которого кран должен отпустить агента (материальный объект).
Значение параметра рассчитывается непосредственно перед тем, как кран отпускает агента.
Тип значения: double
Локальная переменная:  T agent - текущий материальный объект
Использовать время операции
Если опция выбрана, то движение крана задается в единицах времени вместо единиц скорости. Значения скорости рассчитываются заново для каждого агента в соответствии с заданным временем работы крана.
Синтаксис: boolean useOperationTime
Задать новое значение во время выполнения: set_useOperationTime(new value)
Время работы крана [динамический]
[Параметр виден, если выбрана опция Использовать время работы] Задает отрезок времени, в течение которого кран должен переместить агента. В этот отрезок времени также входит Время подъема и Время разгрузки.
Значение параметра рассчитывается для каждого агента непосредственно после того, как выполняется действие На подходе ко входу, и сохраняется до тех пор, пока кран не отпустит агента.
Тип значения: double
Локальная переменная:  T agent - текущий материальный объект
Способ выбора агентов
Задает способ, согласно которому кран выбирает агента для дальнейшего перемещения: либо FIFO (по умолчанию) либо Частный (согласно выражению, заданному в параметре Частный метод).
Синтаксис: boolean customPriority
Задать новое значение во время выполнения: set_customPriority(new value)
Допустимые значения: true - Custom
                     false - FIFO
Частный способ [динамический]
[Параметр виден, если выбрана опция Частный] Задает пользовательский порядок, согласно которому кран будет выбирать агентов для перемещения.
Тип значения: int
Локальная переменная:  T agent - текущий материальный объект
Безопасная высота подъема [динамический]
Задает минимальное значение высоты, на которую кран должен поднять агента для перемещения (например, чтобы избежать столкновений с препятствиями).
Тип значения: double
Локальная переменная:  T agent - текущий материальный объект
Действия
При подходе ко входу [код]
Здесь вы можете задать код, который будет выполняться, когда агент (материальный объект) примет решение поступить в этот блок.
Локальная переменная:  T agent - текущий материальный объект
При отмене входа [код]
Здесь вы можете задать код, который будет выполняться, когда агент (материальный объект), в данный момент находящийся в предыдущем блоке, принимает решение не поступать в этот блок.
Локальная переменная:  T agent - текущий материальный объект
При входе [код]
Здесь вы можете задать код, который будет выполняться, когда агент (материальный объект) поступит в этот блок.
Локальная переменная:  T agent - текущий материальный объект
При подходе к выходу [код]
Здесь вы можете задать код, который будет выполняться, когда агент (материальный объект) решает, что он, скорее всего, покинет этот блок.
Локальная переменная:  T agent - текущий материальный объект
При выходе [код]
Здесь вы можете задать код, который будет выполняться, когда агент (материальный объект) покинет этот блок.
Локальная переменная:  T agent - текущий материальный объект
При отмене [код]
Здесь вы можете задать код, который будет выполняться, когда агент (материальный объект) покинет этот блок через порт ccl.
Локальная переменная:  T agent - текущий материальный объект
При извлечении [код]
Здесь вы можете задать код, который будет выполняться, когда агент (материальный объект) умышленно извлекается из этого блока.
Локальная переменная:  T agent - текущий материальный объект

Функции

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

T remove(Agent agent) - Извлекает заданного агента из крана, который его перемещает.

T get(int index) - Возвращает агента с заданным индексом index. Порядок агентов соответствует порядку, в котором их подобрал кран.

boolean contains(Agent agent) - Возвращает значение true, если заданный агент находится в данный момент внутри этого блока. В обратном случае возвращает значение false.

void cancel(T agent) - Заставляет заданного агента немедленно покинуть блок через порт ccl. При вызове этой функции выполняется код, заданный для действия При отмене.

Порты

in
Входной порт.
out
Выходной порт.
ccl
Выходной порт, через который агенты покидают объект в случае события "отмены", возникшего в результате вызова метода cancel().