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

Лифт

Лифт является элементом разметки пространства, с помощью которого можно графически задать вертикальный возвратно-поступательный конвейер. Только два типа сетей поддерживают данный элемент: сети Библиотеки моделирования процессов (для транспортеров, перемещающихся по заданным путям) и конвейерные сети Библиотеки производственных систем (для материальных объектов). В отличие от сетевого порта лифт можно использовать для связи сетей разного типа: например, агент может поступить в лифт из стандартной сети и выйти из него на конвейерную сеть (или наоборот). При этом необходимо учитывать, что агенты в подобных сетях могут перемещаться только по совместимым с ними элементам сети. Например, материальные объекты не могут двигаться по сетевым путям, а транспортеры не могут перемещаться с помощью конвейеров.

Пешеходы не могут использовать лифт.

Лифт также может являться препятствием на пути транспортеров, перемещающихся в режиме произвольной навигации.

Транспортеры в режиме произвольной навигации могут заезжать в лифт с любой из четырех сторон. Чтобы ограничить зоны въезда для транспортеров, используйте стены, которые послужат для них препятствиями. Например:

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

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

Для каждого элемента в системе лифтов необходимо задать высоту площадки: эти значения будут использоваться, чтобы рассчитать и смоделировать время, которое необходимо лифту, чтобы подняться или опуститься на нужный этаж из своей текущей позиции. Высота площадки — это расстояние от той точки, где расположен данный элемент лифта, до той горизонтальной поверхности в моделируемом пространстве, которую вы принимаете за точку отсчета. Расстояние рассчитывается по оси Z. Такой точкой отсчета, к примеру, может стать первый этаж вашей фабрики.

Демо-модель: Two Level Facility with Lift

Чтобы создать лифт

Сначала вам необходимо создать основной элемент лифта.

  1. Перетащите элемент Лифт из секции Разметка пространства палитры Библиотека производственных систем на графическую диаграмму и разместите его как можно ближе к нужной точке сетевого пути или конвейера. Следите за тем, чтобы конечная точка пути/конвейера находилась точно напротив того порта лифта, с которым выходите установить соединение.
  2. Щелкните точку сетевого пути или конвейера и, зажав левую клавишу мыши, перетащите ее к тому порту лифта, где вы хотите установить соединение. Когда соединение будет успешно установлено, точка будет подсвечена зеленым ивы сможете отпустить клавишу мыши.
  3. В панели Свойства элемента выберите опцию Главная площадка (задает свойства лифта).
  4. Настройте свойства лифта.

Теперь вы можете добавить элементы, которые будут служить площадками лифта.

  1. Повторите шаги 1-2 для каждого уровня моделируемого пространства (т.е. для каждой сети), где вы хотите установить лифт.
  2. В панели Свойства задайте соответствующую Высоту площадки для каждого элемента Лифт.
  3. Задайте элемент лифта, который служит главной площадкой, в параметре Относится к лифту. Повторите это действие для всех элементов лифта, которые используются, чтобы задать местоположение лифта на уровнях. Если уровни моделируемого вами пространства созданы на графических диаграммах разных агентов, переключите поле Относится к лифту в режим динамического параметра и введите соответствующее обращение к элементу: <имя агента="агента">.<имя лифта="лифта">.

Свойства

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

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

Исключить — Если опция выбрана, то лифт будет исключен из модели.

Отображается на верхнем агенте — Если опция выбрана, то фигура лифта будет видна на презентации типа агента, в который будет вложен данный агент.

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

Видимость — Здесь вы можете указать, будет ли этот лифт виден на анимации во время выполнения модели. Используя элемент управления, выберите да или нет.

Тип материального объекта — Тип материального объекта, транспортируемый этим лифтом.

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

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

Главная площадка (задает свойства лифта) — Выберите эту опцию, чтобы использовать данный элемент лифта в качестве главной площадки.

Относится к лифту — [Виден, если не выбрана опция Главная площадка (задает свойства лифта)] Здесь вы можете выбрать основной элемент лифта, с которым будет связан данный элемент.

Скорость подъема — [Виден, если выбрана опция Главная площадка (задает свойства лифта)] Здесь вы можете задать скорость, с которой будет двигаться лифт.

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

Время разгрузки — [Виден, если выбрана опция Главная площадка (задает свойства лифта)] Здесь вы можете задать время, за которое агент должен переместиться из центра лифта в начальную точку сетевого пути / конвейера.

Агенты выбираются — [Виден, если выбрана опция Главная площадка (задает свойства лифта)] Порядок, в котором лифт забирает агентов с разных уровней для перемещения. Может быть FIFO (по умолчанию), Согласно приоритетам или Путем их сравнения.

Приоритет — [Виден, если Агенты выбираются: Согласно приоритетам] Приоритет поступающего агента (чем больше, тем выше).

"agent1 предпочтительнее, чем agent2" — [Виден, если Способ выбора агентов: Путем их сравнения] Здесь вы можете задать булево выражение, которое вычисляется для каждого агента, который должен перемещаться с помощью лифта. Выражение сравнивает этого агента с агентами, которые уже находятся в ожидании лифта, и принимает решение согласно результату. Если выражение возвращает true, новый агент помещается в лифт раньше агентов, с которыми проводилось сравнение.

Действия

Во всех действиях локальная переменная agent используется, чтобы обратиться к материальному объекту, если лифт является частью конвейерной сети, или к транспортеру, если лифт является частью стандартной сети.

При начале выгрузки — Здесь вы можете ввести Java код, который будет выполняться, когда транспортер / материальный объект (agent) покидает конечную точку сетевого пути / конвейера, соединенного с лифтом. В случае транспортеров с произвольным типом навигации, этот код выполняется, когда площадка лифта достигла нужного уровня и готова принять транспортер.

При окончании выгрузки — Здесь вы можете ввести Java код, который будет выполняться, когда транспортер / материальный объект (agent) поступает в начальную точку сетевого пути / конвейера, соединенного с лифтом. В случае транспортеров с произвольным типом навигации, код выполняется, когда центр транспортера покинул лифт.

При поломке — Здесь вы можете ввести Java код, который будет выполняться при поломке лифта.

При починке — Здесь вы можете ввести Java код, который будет выполняться при починке лифта.

Внешний вид

Тип платформы — Здесь вы можете выбрать тип платформы лифта: Плоская или Роликовая.

Цвет заливки — Задает цвет заливки фигуры. Если вы не хотите, чтобы фигура была закрашена, выберите Нет цвета.

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

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

Уровень — Уровень, на котором расположен этот элемент.

X — X-координата точки, где расположен лифт.

Y — Y-координата точки, где расположен лифт.

Z — Z-координата точки, где расположен лифт. Это относительное значение, которое рассчитывается от абсолютного значения Z того уровня, где находится данный элемент лифта.

Вращение — Ориентация кабины лифта: вы можете изменить ее по часовой стрелке и против часовой стрелки.

Ширина — Ширина кабины лифта.

Глубина — Глубина кабины лифта.

Специфические

Отображать в — Здесь вы можете выбрать, будет ли фигура отображаться В 2D и 3D, Только в 2D или Только в 3D.

Отображать имя — Если опция выбрана, то имя фигуры будет отображаться в графическом редакторе.

Функции

Поломка / починка
Функция Описание
boolean isFailed() Возвращает true, если лифт сломан, в противном случае возвращает false.
void fail() Моделирует поломку лифта. Лифт выходит из строя и прекращает работать.
void repair() Моделирует починку лифта. Лифт возвращается в рабочее состояние.
Главная площадка и второстепенные площадки
Функция Описание
List<Lift> getLiftLandings() Возвращает все площадки данного лифта, включая главную площадку.
boolean isMainLanding() Возвращает значение true, если для этого лифта задана главная площадка. В противном случае возвращает значение false.
void setMainLanding(boolean isMain) Задает основную площадку для лифта.

isMain — допустимые значения:
true и false.
Lift getMainLanding() Возвращает главную площадку лифта из набора площадок, которому принадлежит данный лифт.
void setMainLanding(Lift mainLift) Присваивает статус главной площадки заданной площадке лифта. mainLift — новая главная площадка.
List<Networkport> ports() Возвращает все порты данного лифта.
Уровень
Функция Описание
Level getLevel() Возвращает уровень, на котором расположен данный лифт.
Препятствие
Функция Описание
boolean isObstacle() Возвращает true, если этот лифт является препятствием для транспортеров, передвигающихся в режиме произвольной навигации. В противном случае возвращает false.
void setObstacle(boolean isObstacle) Задает этот лифт в качестве препятствия для транспортеров, передвигающихся в режиме произвольной навигации.

isObstacle — если true, лифт задается в качестве препятствия. В противном случае лифт не служит препятствием для транспортеров.
Высота над нулевым уровнем
Функция Описание
double getFloorElevation(LengthUnits units) Возвращает расстояние от лифта до поверхности, выбранной в качестве нулевого уровня (в заданных единицах измерения длины).

units — константа, задающая единицу измерения длины
void setFloorElevation(double floorLevel, LengthUnits units) Задает расстояние от лифта до поверхности, выбранной в качестве нулевого уровня (в заданных единицах измерения длины).

floorLevel — новое значение расстояния
units — константа, задающая единицу измерения длины
Скорость
Функция Описание
double getLiftingSpeed(SpeedUnits units) Возвращает скорость движения лифта (в заданных единицах измерения скорости).
units — константа, задающая единицу измерения скорости
void setLiftingSpeed(double speed, SpeedUnits units) Задает скорость движения лифта (в заданных единицах измерения скорости).

speed — новое значение скорости
units — константа, задающая единицу измерения скорости
Время загрузки / разгрузки

Во всех действиях локальная переменная agent используется, чтобы обратиться к материальному объекту, если лифт является частью конвейерной сети, или к транспортеру, если лифт является частью стандартной сети.

Функция Описание
double pickingUpTime(Agent agent, TimeUnits units) Возвращает заданное время время загрузки. Это время, за которое агент должен переместиться с конечной точки сетевого пути / конвейера в центр лифта (в заданных единицах измерения времени).

agent — агент, совершающий перемещение с помощью лифта в данный момент
units — константа, задающая единицу измерения времени
double droppingOffTime(Agent agent, TimeUnits units) Возвращает заданное время разгрузки. Это время, за которое агент должен переместиться из центра лифта на начальную точку сетевого пути / конвейера (в заданных единицах измерения времени).

agent — агент, совершающий перемещение с помощью лифта в данный момент
units  — константа, задающая единицу измерения времени
Выбор агентов из очереди

Во всех действиях локальная переменная agent используется, чтобы обратиться к материальному объекту, если лифт является частью конвейерной сети, или к транспортеру, если лифт является частью стандартной сети.

Функция Описание
LiftSelectionMode getSelectionMode() Возвращает способ, согласно которому лифт выбирает агентов из очереди. Допустимые значения:
LIFT_SELECTION_MODE_FIFO — согласно принципу FIFO
LIFT_SELECTION_MODE_PRIORITY — согласно приоритету поступающего агента
LIFT_SELECTION_MODE_COMPARISON — согласно результатам вычисления заданного пользователем булева выражения для каждого агента, который должен перемещаться с помощью лифта
void setSelectionMode (LiftSelectionMode mode) Задает новый способ, согласно которому лифт будет выбирать агентов из очереди.

mode — новый способ выбора агентов. Допустимые значения:
LIFT_SELECTION_MODE_FIFO — согласно принципу FIFO
LIFT_SELECTION_MODE_PRIORITY — согласно приоритету поступающего агента
LIFT_SELECTION_MODE_COMPARISON — согласно результатам вычисления заданного пользователем булева выражения для каждого агента, который должен перемещаться с помощью лифта
double priority(Agent agent) Возвращает приоритет агента.

agent — агент в очереди
boolean comparison(Agent agent1, Agent agent2) Возвращает результаты вычисления булева выражения, заданного пользователем в параметре "agent1 предпочтительнее, чем agent2" свойств лифта.

agent1 — поступающий агент
agent2 — агент в очереди, которого сравнивают с поступающим агентом
int queueSize() Возвращает количество запросов от агентов, находящихся в очереди к лифту. Запросы могут отправлять только те агенты, которые уже достигли лифта (т.е. на каждом этаже в очереди может находиться только один агент).
Agent getAgentFromQueue (int index) Возвращает агента из очереди с заданным индексом.

index — индекс агента в очереди.
Местоположение
Функция Описание
double getX() Возвращает Х-координату лифта.
void setX(double x) Задает X-координату лифта.

x — новая Х-координата
double getY() Возвращает Y-координату лифта.
void setY(double y) Задает Y-координату лифта.

y — новая Y-координата
double getZ() Возвращает Z-координату лифта.
void setZ(double z) Задает Z-координату лифта.

z — новая Z-координата
Point getXYZ() Возвращает (X, Y, Z) координаты лифта.
void setXYZ(double x, double y, double z) Задает (X, Y, Z) координаты лифта.

x — новая Х-координата
y — новая Y-координата
z — новая Z-координата
double getRotation() Возвращает текущий угол поворота кабины лифта в радианах (по часовой стрелке).
void setRotation(double rotation) Задает новый угол поворота кабины лифта в радианах (по часовой стрелке).

rotation — новое значение поворота
Размеры
Функция Описание
double getWidth(LengthUnits units) Возвращает ширину кабины лифта (в заданных единицах измерения длины).

units — константа, задающая единицу измерения длины
void setWidth(double width, LengthUnits units) Задает ширину кабины лифта (в заданных единицах измерения длины).

width — новое значение ширины
units — константа, задающая единицу измерения длины
double getDepth(LengthUnits units) Возвращает глубину кабины лифта (в заданных единицах измерения длины).

units — константа, задающая единицу измерения длины
void setDepth(double depth, LengthUnits units) Задает глубину кабины лифта (в заданных единицах измерения длины).

depth — новое значение глубины
units — константа, задающая единицу измерения длины
Цвет / текстура
Функция Описание
LiftPlatformDrawingType getPlatformType() Возвращает тип поверхности платформы лифта. Допустимые значения:

LIFT_PLATFORM_FLAT LIFT_PLATFORM_ROLLER
void setPlatformType(LiftPlatformDrawingType platformType) Задает тип поверхности платформы лифта.

platformType — новый тип поверхности платформы лифта. Допустимые значения:
LIFT_PLATFORM_FLAT LIFT_PLATFORM_ROLLER
Color getLineColor() Возвращает цвет контура фигуры или null, если у контура нет цвета или если контур отображает текстуру (в последнем случае используйте функцию getLineTexture()).
Texture getLineTexture() Возвращает текстуру контура фигуры или null, если у контура нет текстуры, а используется цвет (в последнем случае используйте функцию getLineColor()).
void setLineColor(Color lineColor) Задает цвет контура лифта.

lineColor — новый цвет
void setLineColor(Paint lineColor) Задает цвет (или текстуру) контура лифта.

lineColor — новый цвет (или текстура)
Color getFillColor() Возвращает цвет заливки лифта или null, если у лифта нет заливки или если лифт отображает текстуру (в последнем случае используйте функцию getFillTexture()).
Texture getFillTexture() Возвращает текстуру заливки лифта или null, если у лифта нет текстуры заливки или если лифт использует цвет заливки (в последнем случае используйте функцию getFillColor()).
void setFillColor(Color fillColor) Задает цвет заливки лифта.

fillColor — новый цвет заливки; если значение равно null, то фигура не заливается
void setFillColor(Paint fillColor) Задает для лифта новый цвет заливки (или текстуру, объект типа Texture).

fillColor — новый цвет заливки; если значение равно null, то фигура не заливается
Как мы можем улучшить эту статью?