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

TrainCouple

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

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

Сцепление производится путем добавления вагонов состава, поступившего в объект через порт in2, к составу, поступившему в объект через порт in1, так что последний состав остается в модели, в то время как состав, поступивший через порт in2, удаляется. При этом у оставшегося состава сохраняется как направление, так и другие свойства, такие, как скорость и т.д. Местоположение вагонов при сцеплении не меняется.

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

Параметры

При входе 1
Здесь вы можете задать код, который будет выполняться в момент поступления состава в этот объект через порт in1.
Локальная переменная: T1 train – состав, поступивший в этот блок через порт in1
При входе 2
Здесь вы можете задать код, который будет выполняться в момент поступления состава в этот объект через порт in2.
Локальная переменная: T2 train – состав, поступивший в этот блок через порт in2
При выходе
Здесь вы можете задать код, который будет выполняться в тот момент, когда состав покинет объект. Это будет тот же состав, который поступил в объект через порт in1, к которому будут добавлены вагоны из другого состава.
Локальные переменные:
T1 train1 – состав, поступивший в этот блок через порт in1
T2 train2 – состав, поступивший в этот блок через порт in2
Специфические
Тип поезда (1)
Тип поезда, поступающего в этот блок через порт in1. В свойствах этого типа агента необходимо указать, что он используется в диаграмме процессов в качестве поезда.
В данном документе на этот тип ссылаются как на: T1
Тип поезда (2)
Тип поезда, поступающего в этот блок через порт in2. В свойствах этого типа агента необходимо указать, что он используется в диаграмме процессов в качестве поезда.
В данном документе на этот тип ссылаются как на: T2

Функции

Функция Описание
int size1() Возвращает количество составов, поступивших в объект через порт in1 и ожидающих в данный момент в соответствующей очереди поступления в порт in2 другого состава, необходимого для сцепки.
int size2() Возвращает количество составов, поступивших в объект через порт in2 и ожидающих в данный момент в соответствующей очереди поступления в порт in1 другого состава, необходимого для сцепки.
T1 get1(int index) Возвращает состав, находящийся в очереди первого порта in1 в позиции с заданным индексом (индекс 0 соответствует составу, находящемуся в самом начале очереди).
T2 get2(int index) Возвращает состав, находящийся в очереди второго порта in2 в позиции с заданным индексом (индекс 0 соответствует составу, находящемуся в самом начале очереди).

Порты

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