Соединение портов

Чтобы сообщения могли пересылаться между портами, эти порты должны быть соединены соединителями. Соединители играют роль путей движения сообщений в модели.

Вы можете установить обмен сообщениями между:

Чтобы соединить два порта
  1. Сделайте двойной щелчок мышью по одному порту.
  2. Последовательно щелкните в тех местах диаграммы, где вы хотите поместить точки изгиба соединителя.
  3. Завершите процесс соединения, сделав двойной щелчок мышью по второму порту.

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

Динамическое соединение портов во время моделирования

AnyLogic поддерживает создание динамических моделей с динамически меняющейся структурой и взаимосвязями компонентов

Вы можете соединять порты во время работы модели с помощью методов connect() и map() и рассоединять их с помощью методов disconnect() и unmap(). Изменяя взаимосвязи объектов во время моделирования, вы можете легко моделировать системы с замысловатой топологией и с динамически меняющейся структурой, например, системы с перемещающимися объектами.

Тип соединения
Метод для соединения

Метод для отсоединения
Порт и порт вложенного объекта

port.map(source.out);

port.unmap(source.out);


Обратите внимание на то, что методы map() и unmap() не должны вызываться у порта вложенного объекта. Следующая строка вызовет ошибку:

source.out.map(port);

Порты вложенных объектов

source.out.connect(sink.in);

source.out.disconnect(sink.in);


Класс порта Port также предоставляет метод, производящий отсоединение порта от всех соединенных с ним портов:

disconnectAndUnmapAll();

Соединение портов объектов Библиотеки моделирования процессов

Если вы динамически измените топологию связей (с помощью методов портов connect()/disconnect() или map()/unmap() портов объектов Библиотеки моделирования процессов), то порты не заметят этого изменения и будут продолжать взаимодействовать согласно топологии соединений, установленной при запуске.

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

myService.release.out.refreshConnections()

Демо модель: Connecting Library Objects Dynamically

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


См. также

Передача сообщений

Диаграмма состояний

Правила передачи сообщений

Изменение внешнего вида соединителя