Мост

Простой элемент разметки пространства, который входит в состав сложного элемента Мостовой кран.

Мост можно выбрать в свойствах блока SeizeCrane или блока MoveByCrane для перемещения агента в заданное местоположение.

Свойства

Основные свойства

Имя - Имя моста. Имя используется для идентификации моста и доступа к нему из кода и свойств блоков диаграммы процесса.

Внешний вид

Цвет моста - Задает цвет заливки для моста. Если вы не хотите, чтобы мост был закрашен, выберите Нет цвета.

Местоположение и размер

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

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

Функции

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

Рабочее состояние

Функция

Описание

void fail()

Моделирует поломку моста. Мост выходит из строя и прекращает работать.

void repair()

Моделирует починку моста. Мост возвращается в рабочее состояние.

boolean isFailed()

Проверяет, находится ли мост в состоянии поломки. Если функция возвращает true, мост поломан. Если false - мост в рабочем состоянии.

boolean isReady()

Проверяет, готов ли мост к работе. Если функция возвращает true, мост готов к работе. Если функция возвращает false, мост находится в состоянии поломки.


Приоритет

Функция

Описание

double getPriority()

Возвращает приоритет агента, который захватил данный мост.


Статистика загруженности

Функция

Описание

double getUtilization()

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

int numberOfAgentsHandled()

Возвращает количество агентов, обработанных мостом.

OverheadCraneBridgeState getState()

Возвращает текущее состояние моста. Допустимые значения:

IDLE - У моста нет задач, и он не захвачен никаким агентом.

WAITING - Мост захвачен агентом, но в данный момент этот агент находится в любом блоке, кроме SeizeCrane, MoveByCrane или ReleaseCrane. Сюда также входят случаи, когда мост в режиме ручного управления остается в точке назначения, выполняет задачу ожидания, заданную программой, или завершил программу и ждет следующих команд.

LOADING - Мост в процессе загрузки агента в блоке MoveByCrane.

UNLOADING - Мост в процессе разгрузки агента в блоке MoveByCrane.

MOVING_UNLOADED - Мост двигается без агента. Здесь не учитывается возвращение моста на место парковки после освобождения, но учитывается движение без агента в режиме ручного управления и перемещение к агенту даже в тех случаях, когда мост вынужден уступать дорогу другим мостам с более высоким приоритетом, чтобы избежать столкновения.

MOVING_LOADED - Мост двигается с агентом. Здесь учитываются даже те случаи, когда мост вынужден уступать дорогу другим мостам с более высоким приоритетом, чтобы избежать столкновения, и ситуации, когда к анимации моста присоединяется анимация агента.

MOVING_HOME - Мост возвращается на место парковки в автоматическом режиме.

FAILED - Мост находится в состоянии поломки между вызовами функций fail() и repair().

double timeInState(OverheadCraneBridgeState state)

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

Параметр:
state - Состояние моста. Допустимые значения:

IDLE - У моста нет задач, и он не захвачен никаким агентом.

WAITING - Мост захвачен агентом, но в данный момент этот агент находится в любом блоке, кроме SeizeCrane, MoveByCrane или ReleaseCrane. Сюда также входят случаи, когда мост в режиме ручного управления остается в точке назначения, выполняет задачу ожидания, заданную программой, или завершил программу и ждет следующих команд.

LOADING - Мост в процессе загрузки агента в блоке MoveByCrane.

UNLOADING - Мост в процессе разгрузки агента в блоке MoveByCrane.

MOVING_UNLOADED - Мост двигается без агента. Здесь не учитывается возвращение моста на место парковки после освобождения, но учитывается движение без агента в режиме ручного управления и перемещение к агенту даже в тех случаях, когда мост вынужден уступать дорогу другим мостам с более высоким приоритетом, чтобы избежать столкновения.

MOVING_LOADED - Мост двигается с агентом. Здесь учитываются даже те случаи, когда мост вынужден уступать дорогу другим мостам с более высоким приоритетом, чтобы избежать столкновения, и ситуации, когда к анимации моста присоединяется анимация агента.

MOVING_HOME - Мост возвращается на место парковки в автоматическом режиме.

FAILED - Мост находится в состоянии поломки между вызовами функций fail() и repair().

double timeInState(OverheadCraneBridgeState state, TimeUnits units)

Возвращает общее время в заданных единицах времени, которое мост провел в указанном состоянии.

Параметры:
state - Состояние моста. Допустимые значения:

IDLE - У моста нет задач, и он не захвачен никаким агентом.

WAITING - Мост захвачен агентом, но в данный момент этот агент находится в любом блоке, кроме SeizeCrane, MoveByCrane или ReleaseCrane. Сюда также входят случаи, когда мост в режиме ручного управления остается в точке назначения, выполняет задачу ожидания, заданную программой, или завершил программу и ждет следующих команд.

LOADING - Мост в процессе загрузки агента в блоке MoveByCrane.

UNLOADING - Мост в процессе разгрузки агента в блоке MoveByCrane.

MOVING_UNLOADED - Мост двигается без агента. Здесь не учитывается возвращение моста на место парковки после освобождения, но учитывается движение без агента в режиме ручного управления и перемещение к агенту даже в тех случаях, когда мост вынужден уступать дорогу другим мостам с более высоким приоритетом, чтобы избежать столкновения.

MOVING_LOADED - Мост двигается с агентом. Здесь учитываются даже те случаи, когда мост вынужден уступать дорогу другим мостам с более высоким приоритетом, чтобы избежать столкновения, и ситуации, когда к анимации моста присоединяется анимация агента.

MOVING_HOME - Мост возвращается на место парковки в автоматическом режиме.

FAILED - Мост находится в состоянии поломки между вызовами функций fail() и repair()

units - константа, задающая единицы измерения времени

double totalTravellingTime()

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

double totalTravellingTime(TimeUnits units)

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

Parameter:
units - константа, задающая единицы измерения времени

double averageCycleTime()

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

double averageCycleTime(TimeUnits units)

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

Параметр:
units - константа, задающая единицы измерения времени

double totalTimeInConflict()

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

double totalTimeInConflict(TimeUnuts units)

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

Параметр:
units - константа, задающая единицы измерения времени

double totalTravelledDistance()

Общее расстояние в метрах, пройденное мостом.

double totalTravelledDistance(LengthUnits units)

Общее расстояние в заданных единицах длины, пройденное мостом.

Параметр:
units - константа, задающая единицы измерения длины

double totalTransportationDistance()

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

double totalTransportationDistance(LengthUnits units)

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

Параметр:
units - константа, задающая единицы измерения длины

double totalDistanceInConflict()

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

double totalDistanceInConflict(LengthUnits units)

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

Параметр:
units - константа, задающая единицы измерения длины

void resetStats()

Сбрасывает всю собранную статистику моста.


Кран

Функция

Описание

OverheadCrane getCrane()

Возвращает кран, которому принадлежит этот мост.

void setCrane(OverheadCrane crane)

Задает кран, которому принадлежит этот мост.

Параметр:
crane - кран, которому принадлежит этот мост

int getIndex()

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


Программа движения

Функция

Описание

void moveByProgram(CraneProgram program)

Заставляет мост двигаться в соответствии с заданной программой.

Параметр:
program - заданная пользователем программа, которая определяет движение моста

Примечание: Вызов этой функции не должен конфликтовать с движением моста, заданным с помощью блока SeizeCrane или блока MoveByCrane. В противном случае возникнет ошибка.

CraneProgram getProgram()

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


Движение

Функция

Описание

void moveTo(Point absolutePoint, double safeHeight, boolean remainsAtTarget)

Заставляет мост двигаться в заданную точку absolutePoint с крюком на заданной безопасной высоте safeHeight и позволяет настроить поведение моста по достижении цели: мост может оставаться в точке назначения, пока не придет следующая команда о движении, или может вернуться на свое место парковки.

Параметры:
absolutePoint - объект типа Point, соответствующий точке назначения, куда должен быть прибыть мост
safeHeight - безопасная высота, на которой должен двигаться крюк. Высота рассчитывается от Z-координаты моста и может быть отрицательной или даже infinity. Если к крюку присоединена анимация агента, то высота агента автоматически учитывается при расчете безопасной высоты крюка
remainsAtTarget - чтобы мост остался в точке назначения, пока не получит следующую команду о движении, передайте значение true. На этот период приоритет моста становится максимально высоким, и другие мосты не могут вытолкнуть его с этой позиции. Чтобы вернуть мост в место парковки, передайте значение false.

Примечание: Вызов этой функции не должен конфликтовать с движением моста, заданным с помощью блока SeizeCrane или блока MoveByCrane. В противном случае возникнет ошибка.

Point getTargetPoint()

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

List<OverheadCraneBridge> getBridgesOnRouteTo(Point absolutePoint)

Возвращает список мостов, которые в данный момент находятся между данным мостом и указанным местом назначения.

Параметр:
absolutePoint - объект типа Point, соответствующий точке назначения, куда должен прибыть мост

BridgeDirection getDirection()

Возвращает текущее направление движения моста. Допустимые значения:

FORWARD - мост двигается вперед, т.е. увеличивается смещение моста от начальной точки движения
BACKWARD - мост двигается назад, т.е.е уменьшается смещение моста от начальной точки движения
NONE - мост неподвижен

double getDistanceTo(Point absolutePoint, LengthUnits units)

Возвращает расстояние от моста до заданной точки в заданных единицах длины, не учитывая движение каретки и крюка.

Параметры:
absolutePoint - объект типа Point, определяющий заданную точку
units - константа, определяющая единицы измерения длины

double getDistanceToTarget(LengthUnits units)

Возвращает расстояние от моста до текущей точки назначения в заданных единицах длины, не учитывая движение каретки и крюка.

Параметр:
units - константа, определяющая единицы измерения длины

boolean canArriveAt(Point hookDestination)

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

Параметр:
hookDestination - объект типа Point, задающий абсолютную точку назначения в пикселях


Агенты (материальные объекты) и их анимация

Функция

Описание

Agent getAgent()

Возвращает агента (материальный объект), который захватил мост.

List<Agent> getAgentsInQueue()

Возвращает список агентов (материальных объектов), которые находятся в очереди к данному мосту. Агенты расположены в очереди по приоритету: агент с самым высоким приоритетом имеет индекс 0.

void attachAgentAnimation(Agent agent)

Совмещает местоположение агента (материального объекта) с координатами крюка, чтобы при выполнении модели анимация этих двух объектов совпадала. При этом учитываются габариты агента. Координаты крюка должны находиться в пределах этих габаритов (высоты, ширины, длины), иначе возникнет ошибка.

Параметр:
agent - агент (материальный объект), который захватил этот мост

void detachAgentAnimation()

Отделяет анимацию агента (материального объекта) от анимации крюка, если ранее они были совмещены с помощью вызова функции attachAgentAnimation(Agent agent).


Местоположение моста и компонентов

Функция

Описание

Position getBridgePosition()

Возвращает координаты моста.

Position getTrolleyPosition()

Возвращает координаты каретки.

Position getHookPosition()

Возвращает координаты крюка.

double getInitialBridgeOffset(LengthUnits units)

Возвращает изначальное местоположение моста в заданных единицах измерения длины.

Параметр:
units - константа, задающая единицу измерения длины

void setInitialBridgeOffset(double bridgePosition, LengthUnits units)

Задает изначальное местоположение моста в заданных единицах длины.

Параметры:
bridgePosition - расстояние от начальной точки рельс крана до точки, которая будет считаться новым положением моста
units - константа, задающая единицу измерения длины

double getInitialTrolleyOffset(LengthUnits units)

Возвращает изначальное местоположение каретки в заданных единицах измерения длины.

Параметр:
units - константа, задающая единицу измерения длины

void setInitialTrolleyOffset(double trolleyPosition, LengthUnits units)

Задает изначальное местоположение каретки в заданных единицах длины.

Параметры:
bridgePosition - смещение от верхней рельсы крана до точки, которая будет считаться изначальным положением каретки
units - константа, задающая единицу измерения длины

double getInitialHookOffset(LengthUnits units)

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

Параметр:
units - константа, задающая единицу измерения длины

void setInitialHookOffset(double hookPosition, LengthUnits units)

Задает изначальную высоту, на которой расположен крюк, в заданных единицах длины.

Параметры:
hookPosition - смещение от Z координаты моста до точки, которая будет считаться изначальным положением крюка
units - константа, задающая единицу измерения длины

double getCurrentBridgeOffset(LengthUnits units)

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

Параметр:
units - константа, задающая единицу измерения длины

double getCurrentTrolleyOffset(LengthUnits units)

Возвращает смещение каретки от верхнего рельса крана до текущего местоположения.

Параметр:
units - константа, задающая единицу измерения длины

double getCurrentHookOffset(LengthUnits units)

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

Параметр:
units - константа, задающая единицу измерения длины


Цвет

Функция

Описание

Color getBridgeColor()

Возвращает цвет моста.

void setBridgeColor(Color bridgeColor)

Задает новый цвет моста.

Параметр:
bridgeColor - новый цвет моста.


Видимость

Функция

Описание

boolean isVisible()

Проверяет, отображается ли мост на анимации во время выполнения модели.

Если функция возвращает true - значит, мост отображается, если false - нет.

void setVisible(boolean v)

Задает видимость моста.

Параметр:
v - видимость. Если значение v равно true - то мост будет отображаться, если равно false - то нет.


Удаление

Функция

Описание

void remove()

Удаляет мост из презентации. Если мост не является частью презентации, функция не выполняет ничего.
Обратите внимание, что удаление из презентации не обязательно подразумевает удаление из логики модели, поскольку логические сети и маршруты могли быть заданы еще до удаления элемента и не исчезают.


См. также

Элементы разметки Библиотеки производственных систем

Библиотека производственных систем

Функции CraneProgram

Java документация (англ.): Класс Crane