exponenta event banner

Создание моделей CAN Communication Simulink

Создание части модели для передачи сообщений

В этом разделе показано, как создать часть модели для передачи сообщений CAN с использованием блоков Toolbox™ сети транспортных средств с другими блоками в библиотеке Simulink ®.

Построение модели для передачи сообщений CAN подробно описано в следующих шагах:

Для этой части примера

  • Используйте виртуальный CAN-канал MathWorks для передачи сообщений.

  • Используйте блок настройки CAN для настройки канала CAN.

  • Блок Constant (Simulink) используется для передачи данных в блок CAN Pack.

  • Используйте блок передачи CAN для передачи данных в виртуальный канал CAN.

Используйте этот раздел с Компоновка части приема сообщений модели (Build the Message Receive Part of the Model) и Сохранить и запустить модель (Save and Run the Model), чтобы построить полную модель и выполнить моделирование.

Шаг 1: Создание новой модели

  1. Для запуска Simulink и создания новой модели введите в командной строке MATLAB ® следующее:

    simulink

    В диалоговом окне Начальная страница Simulink щелкните Пустая модель, а затем Создать модель. Откроется пустое окно редактора.

  2. На вкладке «Моделирование» панели инструментов редактора щелкните «Сохранить» > «Сохранить как», чтобы назначить имя новой модели.

Шаг 2: Открытие библиотеки блоков

  1. На вкладке «Моделирование» панели инструментов редактора моделей выберите «Обозреватель библиотек».

  2. Откроется обозреватель библиотеки Simulink. Левая панель содержит дерево доступных библиотек блоков в алфавитном порядке. Разверните окно Vehicle Network Toolbox узел и щелкните CAN Communication.

Шаг 3: Перетащите блоки панели инструментов сети транспортных средств в модель

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

  • Конфигурация CAN

  • Пакет CAN

  • Передача CAN

Примечание

Конфигурация по умолчанию для каждого блока в модели использует MathWorks Virtual 1 Channel 1. Блоки в модели можно настроить на использование виртуальных каналов или аппаратных устройств других производителей.

Примечание

По умолчанию имена блоков в модели не отображаются. Чтобы отобразить имена блоков во время работы в редакторе модели, на вкладке «Формат» панели инструментов нажмите кнопку «Авто» и снимите флажок «Скрыть автоматические имена блоков».

Шаг 4: Перетащите другие блоки для завершения модели

В этом примере в качестве источника данных используется блок константы (Simulink). В библиотеке «Simulink > Часто используемые блоки» добавьте в модель блок константы (Simulink).

Шаг 5: Подключение блоков

Установите соединение между блоком константы и входом блока CAN Pack. При перемещении указателя рядом с портом вывода блока «Константа» указатель становится перекрестием. Щелкните выходной порт блока Constant и, удерживая кнопку мыши, перетащите указатель на входной порт блока CAN Pack. Затем отпустите кнопку.

Таким же образом установите соединение между выходным портом блока CAN Pack и входным портом блока CAN Transmit.

Блок конфигурации CAN не подключается ни к одному другому блоку. Этот блок конфигурирует канал CAN для связи.

Шаг 6: Определение значений параметров блока

Параметры для каждого блока в модели задаются двойным щелчком на блоке.

Настройте блок конфигурации CAN.  Дважды щелкните блок CAN Configuration, чтобы открыть его диалоговое окно параметров. Проверьте или установите следующие параметры:

  • Устройство для MathWorks Virtual 1 (Channel 1).

  • Скорость автобуса до 500000.

  • Режим подтверждения для Normal.

  • Нажмите кнопку ОК.

Сконфигурируйте блок CAN Pack Block.  Дважды щелкните блок CAN Pack, чтобы открыть его диалоговое окно параметров. Проверьте или установите следующие параметры:

  • Данные вводятся относительно raw data.

  • Имя по умолчанию CAN Msg.

  • Тип идентификатора по умолчанию Standard (11-bit identifier) тип.

  • Идентификатор для 500.

  • Длина (байт) до длины по умолчанию 8.

  • Нажмите кнопку ОК.

Сконфигурируйте блок передачи CAN.  Дважды щелкните блок CAN Transmit, чтобы открыть его диалоговое окно параметров. Проверьте или установите следующие параметры:

  • Устройство для MathWorks Virtual 1 (Channel 1).

    Нажмите кнопку ОК.

Сконфигурируйте блок константы.  Дважды щелкните блок «Константа», чтобы открыть диалоговое окно его параметров.

На вкладке «Главная» задайте:

  • Постоянное значение для [1 2 3 4 5 6 7 8].

  • Время выборки для 0.01 секунд.

На вкладке Signal Attributes (Атрибуты сигнала) установите:

  • Тип выходных данных для uint8.

    Нажмите кнопку ОК.

Ваша модель выглядит так.

Model for basic CAN transmission

Создание части модели для получения сообщений

В этом разделе показано, как создать часть модели для получения сообщений CAN с использованием блоков панели инструментов сети транспортных средств с другими блоками в библиотеке Simulink. В этом примере показано, как принимать данные через сеть CAN:

Для этой части примера

  • Используйте виртуальный CAN-канал MathWorks для приема сообщений.

  • Используйте блок конфигурации CAN для настройки виртуального канала CAN.

  • Для получения сообщения используйте блок CAN Receive.

  • Используйте блок Function-Call Subsystem (Simulink), содержащий блок распаковки CAN. Эта функция берет данные из блока CAN Receive и использует параметры блока CAN Unpack для распаковки данных сообщения.

  • Используйте блок Scope (Simulink) для отображения полученных данных.

Шаг 7: Перетащите блоки панели инструментов сети транспортных средств в модель

Для этой части примера начните с одного экземпляра каждого из следующих блоков из библиотеки блоков CAN Communication панели инструментов сети транспортных средств:

  • Конфигурация CAN

  • CAN получает

Совет

Сконфигурируйте отдельные каналы CAN для блоков CAN Receive и CAN Transmit. Каждому каналу необходим собственный блок конфигурации CAN.

Шаг 8: Перетащите другие блоки для завершения модели

Для построения подсистемы CAN Message pack используйте блок Function-Call Subsystem из библиотеки блоков Simulink Ports & Subsystems.

  1. Перетащите блок Function-Call Subsystem в модель.

  2. Дважды щелкните по блоку Function-Call Subsystem, чтобы открыть редактор подсистемы.

  3. Дважды щелкните метку порта In1, чтобы переименовать ее в сообщение CAN.

  4. Дважды щелкните метку порта Out1, чтобы переименовать ее в «Данные».

  5. Перетащите блок распаковки CAN из библиотеки блоков панели инструментов сети транспортных средств в эту подсистему. При размещении между входными и выходными линиями они автоматически соединяются.

    Внутренняя часть блока Function-Call Subsystem теперь должна выглядеть следующим образом.

    Function call subsystem to unpack a message

    Причина размещения CAN Unpack в подсистеме Function-Call заключается в возможности захвата всех возможных сообщений.

  6. Щелкните на стрелке назад на панели инструментов, чтобы вернуться к виду модели.

Шаг 9: Подключение блоков

  1. Переименуйте блок подсистемы функционального вызова в подсистему распаковки CAN.

  2. Подключите выходной порт CAN Msg блока CAN Receive к In1 входному порту блока CAN Unpack Subsystem.

  3. Подключите выходной порт f () блока приема CAN к входному порту функции () блока распаковки подсистемы CAN.

  4. Для визуального отображения результатов моделирования перетащите блок «Scope (Simulink)» из библиотеки блоков «Simulink» в модель.

  5. Подключите выходной порт CAN Msg блока подсистемы распаковки CAN к входному порту блока Scope.

    Блок конфигурации CAN не подключается ни к одному другому блоку. Этот блок конфигурирует канал CAN, используемый блоком приема CAN для приема сообщения CAN.

Ваша модель выглядит так.

Model to transmit and receive CAN messages

Шаг 10: Определение значений параметров блока

Задайте параметры блоков в модели, дважды щелкнув блок.

Сконфигурируйте блок Configuration1 CAN.  Дважды щелкните блок CAN Configuration, чтобы открыть его диалоговое окно параметров. Установите:

  • Устройство для MathWorks Virtual 1 (Channel 2).

  • Скорость автобуса до 500000.

  • Режим подтверждения для Normal.

    Нажмите кнопку ОК.

Сконфигурируйте блок приема CAN.  Дважды щелкните блок CAN Receive, чтобы открыть его диалоговое окно «Параметры». Установите:

  • Устройство для MathWorks Virtual 1 (Channel 2).

  • Время выборки для 0.01.

  • Количество сообщений, полученных на каждом шаге времени all.

    Нажмите кнопку ОК.

Сконфигурируйте подсистему распаковки CAN.  Дважды щелкните подсистему распаковки CAN, чтобы открыть редактор подсистемы вызовов функций. В модели дважды щелкните блок CAN Unpack, чтобы открыть диалоговое окно параметров. Установите:

  • Выводимые данные raw data.

  • Имя по умолчанию CAN Msg.

  • Тип идентификатора по умолчанию Standard (11-bit identifier).

  • Идентификатор для 500.

  • Длина (байт) до длины по умолчанию 8.

    Нажмите кнопку ОК.

Сохранить и запустить модель

В этом разделе показано, как сохранить построенную модель, Построить передающую сообщение часть модели и Построить получающую сообщение часть модели.

Шаг 11: Сохранение модели

Перед запуском моделирования сохраните модель, щелкнув значок Сохранить (Save) или выбрав Сохранить (Save) на вкладке «Моделирование» панели инструментов редактора.

Шаг 12: Изменение параметров конфигурации

  1. На вкладке «Моделирование» панели инструментов редактора моделей выберите «Параметры модели». Откроется диалоговое окно Параметры конфигурации (Configuration Parameters).

  2. В разделе Опции решателя выберите:

    • Фиксированный шаг из списка Тип (Type).

    • Дискретные (без непрерывных состояний) из списка решателя.

Шаг 13: Запуск моделирования

Для выполнения моделирования нажмите кнопку «Выполнить» на вкладке «Моделирование» или «Моделирование» панели инструментов редактора.

При выполнении моделирования блок CAN Transmit получает сообщение из блока CAN Pack. Затем он передает его по виртуальному каналу 1. Блок приема CAN по виртуальному каналу 2 получает это сообщение и передает его блоку подсистемы распаковки CAN для распаковки сообщения.

Во время моделирования строка состояния в нижней части окна модели обновляет ход моделирования.

Шаг 14: Просмотр результатов

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

Scope block display of received CAN messages

На графике горизонтальная ось представляет время моделирования в секундах, а вертикальная ось представляет полученное значение данных. Модель настроена на упаковку и передачу массива постоянных значений. [1 2 3 4 5 6 7 8]каждые 0,01 секунды времени моделирования. Эти значения принимаются и распаковываются. Выходные данные в окне Scope представляют полученные значения данных.

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