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

SeizeCrane

Захватывает кран и отправляет его в указанное местоположение. Агент поступает в блок SeizeCrane и помещается в очередь крана, указанного в свойствах блока. В этой очереди он ждет, пока кран не прибудет в указанное место назначения. Когда кран прибывает в место назначения, агент покидает блок.

Вы можете использовать этот блок для моделирования сложной логики работы крана, если вам нужно отделить процесс перемещения крана к агенту от процесса транспортировки агента с помощью крана, например, вы хотите смоделировать какую-то дополнительную обработку агента между этими двумя процессами. Дополнительные операции над агентом можно смоделировать с помощью блоков Библиотеки моделирования процессов.

Используйте блок ReleaseCrane или блок MoveByCrane, чтобы освободить захваченный кран.

Демо-модель: SeizeCrane and ReleaseCrane Открыть страницу модели в AnyLogic Cloud. Там можно запустить модель или скачать ее по ссылке Исходные файлы модели.

Правила захвата крана

Вы можете выбрать для захвата как сам кран, так и конкретный мост.

  • Если выбранный мост занят другим агентом, новый агент становится в очередь к этому мосту.
  • Если вы выбрали кран с несколькими мостами, агент захватит ближайший свободный мост, который физически способен забрать его и доставить в место назначения.
  • Если все мосты крана заняты, агент будет ожидать в очереди крана, пока не освободится один из мостов, после чего проверит, может ли этот мост доставить его в заданное место назначения. В случае успешной проверки, агент захватит этот мост.
  • Если одновременно освобождается несколько мостов, агент выберет ближайшего из тех, которые могут доставить его в место назначения.
Все захваченные краны должны быть освобождены, прежде чем агент (материальный объект) будет уничтожен в блоке Sink.

Параметры

Кран
Кран или мост, который перемещает агента (материальный объект).
Тип значения: Crane Локальная переменная: T agent — текущий агент (материальный объект)
Место назначения
Задает место, в которое должен прибыть кран или мост. Возможными местами назначения могут быть:
Агент — текущий агент (материальный объект)
Узел — заданный узел сети
Аттрактор — заданный аттрактор
Конвейер — заданный конвейер
Точка конвейера — заданная точка на конвейере
Точка (x, y, z) — точка с заданными координатами
Синтаксис: DestinationType destinationType Допустимые значения:
SeizeCrane.DEST_AGENT — заданный агент
SeizeCrane.DEST_NODE — заданный сетевой узел
SeizeCrane.DEST_ATTRACTOR — заданный аттрактор
SeizeCrane.DEST_CONVEYOR — заданный конвейер
SeizeCrane.DEST_POSITION_ON_CONVEYOR — заданная точка на конвейере
SeizeCrane.DEST_XYZ — точка с заданными координатами
Узел
[Параметр виден, если Место назначения: Узел]
Узел сети, в который отправится кран или мост.
Тип значения: Node
Локальная переменная: T agent — текущий агент (материальный объект)
Аттрактор
[Параметр виден, если Место назначения: Аттрактор]
Аттрактор, к которому отправится кран или мост.
Тип значения: Attractor
Локальная переменная: T agent — текущий агент (материальный объект)
Конвейер
[Параметр виден, если Место назначения: Конвейер]
Конвейер, к которому отправится кран или мост.
Тип значения: ConveyorPath
Локальная переменная: T agent — текущий агент (материальный объект)
Смещение от
[Параметр виден, если Место назначения: Конвейер]
Задает точку отсчета для смещения на конвейере: от начала конвейера или от конца конвейера.
Тип значения: boolean
Локальная переменная: T agent — текущий агент (материальный объект)
Смещение
[Параметр виден, если Место назначения: Конвейер]
Расстояние от начальной или конечной точки конвейера (в зависимости от настроек параметра Смещение от) до конкретной точки конвейера, к которой отправится кран или мост.
Тип значения: double
Локальная переменная: T agent — текущий агент (материальный объект)
Точка на конвейере
[Параметр виден, если Место назначения: Точка на конвейере]
Точка на конвейере, к которой отправится кран или мост.
Тип значения: PositionOnConveyor
Локальная переменная: T agent — текущий агент (материальный объект)
X, Y, Z
[Параметр виден, если Место назначения: Точка (x, y, z)]
X, Y, Z-координата точки, куда отправится кран или мост.
Тип значения: double
Локальная переменная: T agent — текущий агент (материальный объект)
... расположена
[Параметр виден, если Место назначения: Точка (x, y, z)]
Здесь можно выбрать, где расположена точка, к которой двигается кран или мост: на уровне или в сети.
Тип значения: boolean destinationInNetwork
Значение по умолчанию: false
Уровень
[Параметр виден, если ...расположена: на уровне]
Уровень, на котором расположена точка, к которой отправится кран или мост.
Тип значения: Level
Локальная переменная: T agent — текущий агент (материальный объект)
Сеть
[Параметр виден, если ...расположена: в сети]
Сеть, в которой расположена точка, к которой отправится кран или мост.
Тип значения: Network
Локальная переменная: T agent — текущий агент (материальный объект)
Использовать время работы
Выбрав эту опцию, вы сможете напрямую задать время, за которое кран должен достичь точки назначения. Значения скорости рассчитываются заново для каждого агента в соответствии с заданным временем работы крана.
Синтаксис: boolean useOperationTime
Время работы
[Параметр виден, если выбрана опция Использовать время работы]
Задает отрезок времени, в течение которого кран или мост должен достичь точки назначения. Значение рассчитывается для каждого агента непосредственно после того, как выполняется действие При входе.
Тип значения: double
Локальная переменная: T agent — текущий агент (материальный объект)
Способ выбора агентов
Задает способ, согласно которому кран или мост выбирает агента, к которому будет перемещаться: либо FIFO(по умолчанию), либо Частный(согласно выражению, заданному в параметре Правило выбора).
Синтаксис: boolean customPriority
Задать новое значение при выполнении: set_customPriority(новое значение)
Допустимые значения:
true — Частный
false — FIFO
Правило выбора
[Параметр виден, если выбрана опция Частный]
Задает выражение, результат которого используется краном или мостом для вычисления очередности обслуживания агентов. Результат выражения должен быть целым числом. Приоритет — у того агента, для которого выражение возвращает наибольшее значение.
Самый простой способ использования Правила выбора — это создание целочисленного параметра для того типа агента, который будет обслуживаться краном или мостом. Затем вы можете указать этот параметр в качестве Правила выбора. Так, если у типа агента есть параметр priority, задающий приоритет обслуживания каждого отдельного агента целым числом, то вы можете задать в качестве значения поля Правило выбора следующее выражение: agent.priority.
Тип значения: double
Локальная переменная: T agent — текущий агент (материальный объект)
Безопасная высота
Задает минимальное значение высоты, на которую кран или мост должен поднять агента для перемещения (например, чтобы избежать столкновений с препятствиями). Высота рассчитывается как расстояние от крюка до Z-координаты крана.
Тип значения: double
Локальная переменная: Crane crane — кран

Действия

При входе
Здесь вы можете задать код, который будет выполняться, когда агент (материальный объект) поступит в этот блок.
Локальная переменная: T agent — текущий агент (материальный объект)
При выходе
Здесь вы можете задать код, который будет выполняться, когда агент (материальный объект) покинет этот блок.
Локальная переменная: T agent — текущий агент (материальный объект)
При извлечении
Здесь вы можете задать код, который будет выполняться, когда агент (материальный объект) умышленно извлекается из этого блока.
Локальная переменная: T agent-текущий агент (материальный объект)
При захвате крана
Здесь вы можете задать код, который будет выполняться, когда агент (материальный объект) захватывает кран или мост.
Локальные переменные:
T agent — текущий агент (материальный объект)
Crane crane — кран

Функции

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

agent — агент (материальный объект)
int size() Возвращает количество агентов, которые в данный момент находятся в этом блоке.
T get(int index) Возвращает агента с указанным индексом. Порядок агентов соответствует порядку, в котором они поступили в этот блок.

index — индекс агента
T remove(Agent agent) Извлекает заданного агента из блока. Если агент все еще находится в очереди, он извлекается и из очереди, и из блока. Если кран уже начал движение к агенту, при вызове этой функции кран освободится, агент будет извлечен из блока, и кран остановится.

agent — агент (материальный объект)

Порты

in
Входной порт.
out
Выходной порт.
Как мы можем улучшить эту статью?