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

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

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

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

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

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

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

Message based modeling framework

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

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

Message based modeling using Simulink, Stateflow, and SimEvents

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

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

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

Моделируйте интерфейсы отправки и приема сообщений и генерируйте код

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

Используйте Send и Receive блоки для моделирования интерфейсов отправки и приема сообщений для ваших компонентов. Для простого примера, который показывает основы создания интерфейсов отправки и получения, смотрите Установить интерфейсы отправки и получения сообщений между программными компонентами. Чтобы узнать, как сгенерировать код для той же модели, смотрите Generate C++ Messages to Communication Between Simulink Components (Embedded Coder).

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

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

Моделирование эффектов промежуточного ПО на распределенной архитектуре

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

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

Для основных шаблонов связи, которые могут быть смоделированы SimEvents, смотрите Моделирование Шаблонов Связи Сообщений с SimEvents. Можно использовать комбинации этих шаблонов, чтобы создать более сложное поведение связи. Пример системы с несколькими компонентами отправки и приема сообщений и идеальным общим каналом с задержкой см. в разделе Создание общего канала связи с несколькими отправителями и приемниках. Чтобы увидеть модель с общим беспроводным каналом с отказом канала и потерей пакетов, смотрите Model Wireless Message Communication with Packet Loss and Channel Failure.

Чтобы увидеть пример, который показывает, как смоделировать более сложное сетевое поведение, такое как сеть связи Ethernet с протоколом CSMA/CD, смотрите Модель сети связи Ethernet с протоколом CSMA/CD.

Примечание

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

См. также

| | | |

Похожие темы