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

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

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);
Этот подход не будет работать с блоками Библиотеки моделирования потоков. Хотя функция connect() и не выдаст ошибки, жидкость (сыпучее вещество) не будет течь между соединенными программно блоками.

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

disconnectAndUnmapAll();
Демо-модель: Connecting Library Objects Dynamically Открыть страницу модели в AnyLogic Cloud. Там можно запустить модель или скачать ее по ссылке Исходные файлы модели.

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

Как мы можем улучшить эту статью?