В этом разделе показано, как создать часть модели для передачи сообщений 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), чтобы построить полную модель и выполнить моделирование.
Для запуска Simulink и создания новой модели введите в командной строке MATLAB ® следующее:
simulink
В диалоговом окне Начальная страница Simulink щелкните Пустая модель, а затем Создать модель. Откроется пустое окно редактора.
На вкладке «Моделирование» панели инструментов редактора щелкните «Сохранить» > «Сохранить как», чтобы назначить имя новой модели.
На вкладке «Моделирование» панели инструментов редактора моделей выберите «Обозреватель библиотек».
Откроется обозреватель библиотеки Simulink. Левая панель содержит дерево доступных библиотек блоков в алфавитном порядке. Разверните окно Vehicle Network Toolbox узел и щелкните CAN Communication.
Чтобы поместить блок в модель, щелкните блок в библиотеке и перетащите его в редактор. Для этого примера в модели требуется по одному экземпляру каждого из следующих блоков:
Конфигурация CAN
Пакет CAN
Передача CAN
Примечание
Конфигурация по умолчанию для каждого блока в модели использует MathWorks Virtual 1 Channel 1. Блоки в модели можно настроить на использование виртуальных каналов или аппаратных устройств других производителей.
Примечание
По умолчанию имена блоков в модели не отображаются. Чтобы отобразить имена блоков во время работы в редакторе модели, на вкладке «Формат» панели инструментов нажмите кнопку «Авто» и снимите флажок «Скрыть автоматические имена блоков».
В этом примере в качестве источника данных используется блок константы (Simulink). В библиотеке «Simulink > Часто используемые блоки» добавьте в модель блок константы (Simulink).
Установите соединение между блоком константы и входом блока CAN Pack. При перемещении указателя рядом с портом вывода блока «Константа» указатель становится перекрестием. Щелкните выходной порт блока Constant и, удерживая кнопку мыши, перетащите указатель на входной порт блока CAN Pack. Затем отпустите кнопку.
Таким же образом установите соединение между выходным портом блока CAN Pack и входным портом блока CAN Transmit.
Блок конфигурации CAN не подключается ни к одному другому блоку. Этот блок конфигурирует канал CAN для связи.
Параметры для каждого блока в модели задаются двойным щелчком на блоке.
Настройте блок конфигурации 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.
Нажмите кнопку ОК.
Ваша модель выглядит так.

В этом разделе показано, как создать часть модели для получения сообщений CAN с использованием блоков панели инструментов сети транспортных средств с другими блоками в библиотеке Simulink. В этом примере показано, как принимать данные через сеть CAN:
Для этой части примера
Используйте виртуальный CAN-канал MathWorks для приема сообщений.
Используйте блок конфигурации CAN для настройки виртуального канала CAN.
Для получения сообщения используйте блок CAN Receive.
Используйте блок Function-Call Subsystem (Simulink), содержащий блок распаковки CAN. Эта функция берет данные из блока CAN Receive и использует параметры блока CAN Unpack для распаковки данных сообщения.
Используйте блок Scope (Simulink) для отображения полученных данных.
Для этой части примера начните с одного экземпляра каждого из следующих блоков из библиотеки блоков CAN Communication панели инструментов сети транспортных средств:
Конфигурация CAN
CAN получает
Совет
Сконфигурируйте отдельные каналы CAN для блоков CAN Receive и CAN Transmit. Каждому каналу необходим собственный блок конфигурации CAN.
Для построения подсистемы CAN Message pack используйте блок Function-Call Subsystem из библиотеки блоков Simulink Ports & Subsystems.
Перетащите блок Function-Call Subsystem в модель.
Дважды щелкните по блоку Function-Call Subsystem, чтобы открыть редактор подсистемы.
Дважды щелкните метку порта In1, чтобы переименовать ее в сообщение CAN.
Дважды щелкните метку порта Out1, чтобы переименовать ее в «Данные».
Перетащите блок распаковки CAN из библиотеки блоков панели инструментов сети транспортных средств в эту подсистему. При размещении между входными и выходными линиями они автоматически соединяются.
Внутренняя часть блока Function-Call Subsystem теперь должна выглядеть следующим образом.

Причина размещения CAN Unpack в подсистеме Function-Call заключается в возможности захвата всех возможных сообщений.
Щелкните на стрелке назад на панели инструментов, чтобы вернуться к виду модели.
Переименуйте блок подсистемы функционального вызова в подсистему распаковки CAN.
Подключите выходной порт CAN Msg блока CAN Receive к In1 входному порту блока CAN Unpack Subsystem.
Подключите выходной порт f () блока приема CAN к входному порту функции () блока распаковки подсистемы CAN.
Для визуального отображения результатов моделирования перетащите блок «Scope (Simulink)» из библиотеки блоков «Simulink» в модель.
Подключите выходной порт CAN Msg блока подсистемы распаковки CAN к входному порту блока Scope.
Блок конфигурации CAN не подключается ни к одному другому блоку. Этот блок конфигурирует канал CAN, используемый блоком приема CAN для приема сообщения CAN.
Ваша модель выглядит так.

Задайте параметры блоков в модели, дважды щелкнув блок.
Сконфигурируйте блок 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.
Нажмите кнопку ОК.
В этом разделе показано, как сохранить построенную модель, Построить передающую сообщение часть модели и Построить получающую сообщение часть модели.
Перед запуском моделирования сохраните модель, щелкнув значок Сохранить (Save) или выбрав Сохранить (Save) на вкладке «Моделирование» панели инструментов редактора.
На вкладке «Моделирование» панели инструментов редактора моделей выберите «Параметры модели». Откроется диалоговое окно Параметры конфигурации (Configuration Parameters).
В разделе Опции решателя выберите:
Фиксированный шаг из списка Тип (Type).
Дискретные (без непрерывных состояний) из списка решателя.
Для выполнения моделирования нажмите кнопку «Выполнить» на вкладке «Моделирование» или «Моделирование» панели инструментов редактора.
При выполнении моделирования блок CAN Transmit получает сообщение из блока CAN Pack. Затем он передает его по виртуальному каналу 1. Блок приема CAN по виртуальному каналу 2 получает это сообщение и передает его блоку подсистемы распаковки CAN для распаковки сообщения.
Во время моделирования строка состояния в нижней части окна модели обновляет ход моделирования.
Дважды щелкните блок «Область», чтобы просмотреть передачу сообщений на графике. Если все данные на графике не отображаются, нажмите кнопку «Панель инструментов автоматического масштабирования», которая автоматически масштабирует оси для отображения всех сохраненных данных моделирования.

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