exponenta event banner

Обзор сообщений Simulink

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

Распределенная архитектура имеет следующие три элемента:

  • Компонент - представляет разделы конструкции, выполняющие набор функций или алгоритмов с определенными интерфейсами ввода-вывода. Как правило, компоненты генерируют события и данные асинхронно.

  • Интерфейс - обеспечивает общую границу, через которую компоненты системы взаимодействуют. Для обеспечения асинхронной связи сообщения являются полезными артефактами моделирования, объединяющими события со связанными данными.

  • Промежуточное программное обеспечение - предоставляет услуги, необходимые компонентам для поддержки асинхронной связи по общей сети.

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

Message based modeling framework

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

Сведения о моделировании распределенной архитектуры с помощью Simulink ®, SimEvents ® и Stateflow ® см. на иллюстрации ниже. Иллюстрация включает в себя два компонента отправки и приема сообщений, которые созданы как ссылочные модели. Моделирование компонентов с интерфейсами отправки и получения с использованием блоков Simulink Send и Receive. Если интерфейсы отправки и получения содержат состояния или требуют логики принятия решений, используйте диаграмму Stateflow.

Message based modeling using Simulink, Stateflow, and SimEvents

После моделирования компонентов и интерфейсов:

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

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

Модельные интерфейсы отправки и получения сообщений и создание кода

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

Используйте блоки отправки и получения для моделирования интерфейсов отправки и получения сообщений для компонентов. Простой пример, показывающий основы создания интерфейсов отправки и получения, см. в разделе Установление интерфейсов отправки и получения сообщений между компонентами программного обеспечения. Сведения о создании кода для одной и той же модели см. в разделе Создание сообщений C++ для обмена данными между компонентами Simulink (встроенный кодер).

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

После моделирования создайте код для интерфейсов отправки и получения и подключите их к промежуточному программному обеспечению или интерфейсному API операционной системы. Пример, который создает код для модели высшего уровня и позволяет приложению взаимодействовать в распределенной системе, использующей службу протокола внешних сообщений (например, сообщения DDS, ROS, SOMIP или POSIX), см. в разделе Создание сообщений C++ для связи между Simulink и операционной системой или промежуточным программным обеспечением (встроенный кодер).

Моделирование влияния промежуточного программного обеспечения на распределенную архитектуру

Блоки очереди используются для хранения, сортировки и постановки в очередь сообщений. Блок «Очередь» позволяет указать емкость хранилища сообщений и политики перезаписи и сортировки для переходов сообщений. Простой пример работы блока очереди см. в разделе Использование блока очереди для управления сообщениями.

SimEvents можно также использовать для моделирования и моделирования эффектов промежуточного программного обеспечения в сети связи. Используйте блоки, предоставляемые библиотекой SimEvents, для моделирования маршрутизации сообщений, одноранговой связи, беспроводной связи, потери пакетов и задержек канала. Дополнительные сведения о SimEvents см. в разделе Моделирование дискретных событий в моделях Simulink (SimEvents).

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

Пример моделирования более сложного поведения сети, например сети связи Ethernet с протоколом CSMA/CD, см. в разделе Моделирование сети связи Ethernet с протоколом CSMA/CD.

Примечание

Блоки SimEvents не поддерживают создание кода.

См. также

| | | |

Связанные темы