Создайте коммуникацию CAN модели Simulink

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

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

Этот раздел иллюстрирует, как отправить данные через сеть CAN. Пример создает простую модель с помощью блоков Vehicle Network Toolbox™ с другими блоками в библиотеке Simulink®, с помощью следующих шагов:

Для этого фрагмента примера

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

  • Используйте Блок Configuration CAN, чтобы сконфигурировать ваши каналы CAN.

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

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

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

Шаг 1: создайте новую модель

  1. Чтобы запустить Simulink и создать новую модель, введите следующее в командной строке MATLAB®:

    simulink

    В диалоговом окне начальной страницы Simulink нажмите Blank Model, и затем Create Model. Пустое окно Editor открывается.

  2. В Редакторе нажмите File> Save As, чтобы присвоить имя к вашей новой модели.

Шаг 2: откройте библиотеку блоков

  1. В окне редактора моделей нажмите View> Library Browser.

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

Шаг 3: перетащите блоки Vehicle Network Toolbox в модель

Чтобы использовать блоки в модели, кликните по блоку в библиотеке и перетащите ее в редактор. В данном примере вам нужен один экземпляр каждая Настройка CAN, Пакет CAN и блоки Передачи CAN в вашей модели.

Примечание

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

Примечание

Имена блока не показывают по умолчанию в модели. Чтобы отобразить скрытые имена блока при работе в модели, выберите Display и снимите флажок Hide Automatic Names.

Шаг 4: перетащите другие блоки, чтобы завершить модель

Этот пример требует исходного блока, который кормит данными блок CAN Pack. Добавьте блок Constant в свою модель.

Шаг 5: соедините блоки

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

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

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

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

Вы устанавливаете параметры для блоков в вашей модели путем двойного клика по блоку.

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

  • Device к Vector Virtual 1 (Channel 1)

  • Bus speed к 500000

  • Acknowledge Mode к Normal

Нажать ОК.

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

  • Data is input as к raw data

  • Name к значению по умолчанию CAN Msg

  • Identifier type к типу Standard (11-bit identifier) по умолчанию

  • Identifier к 500

  • Length (bytes) к длине по умолчанию 8

Нажать ОК.

Сконфигурируйте Блок Передачи CAN.  Дважды кликните блок CAN Transmit, чтобы открыть его диалоговое окно параметров. Установите Device на Vector Virtual 1 (Channel 1). Нажмите Apply, затем OK.

Сконфигурируйте Постоянный Блок.  Дважды кликните блок Constant, чтобы открыть его диалоговое окно параметров. На вкладке Main, набор:

  • Constant value к [1 2 3 4 5 6 7 8]

  • Sample time к секундам 0.01

На вкладке Signal Attributes, набор Output data type к uint8. Нажать ОК.

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

Сборка сообщение получает модель

Этот раздел обеспечивает пример, который создает простую модель с помощью блоков Vehicle Network Toolbox с другими блоками в Библиотеке Simulink. Этот пример иллюстрирует, как получить данные через сеть CAN в следующих шагах:

Для этого фрагмента примера

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

  • Используйте Блок Configuration CAN, чтобы сконфигурировать ваши виртуальные каналы CAN.

  • Используйте блок CAN Receive, чтобы получить сообщение, отправленное блоками, созданными в, Создают Модель Передачи сообщения.

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

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

Используйте этот раздел с, Создают Модель Передачи сообщения и Сохраняют и Выполнение Модель, чтобы создать вашу полную модель и запустить симуляцию.

Шаг 7: перетащите блоки Vehicle Network Toolbox в модель

В данном примере вам нужен один экземпляр каждая Настройка CAN, CAN Получает, и CAN Распаковывает блоки в вашей модели. Однако вы добавляете, что только Настройка CAN и CAN Получают блоки здесь. Добавьте блок CAN Unpack в Подсистему вызова функций, описанную на Шаге 8: Перетащите Другие Блоки, чтобы Завершить Модель.

Совет

Сконфигурируйте отдельный канал CAN для CAN, Получают и блоки Передачи CAN.

Шаг 8: перетащите другие блоки, чтобы завершить модель

Используйте блок Function-Call Subsystem от библиотеки блоков Ports & Subsystems Simulink, чтобы создать вашу подсистему пакета сообщения CAN.

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

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

  3. Пропустите блок CAN Unpack от библиотеки блоков Vehicle Network Toolbox в этой подсистеме.

Чтобы видеть результаты симуляции визуально, перетащите блок Scope от библиотеки блока Simulink в вашу модель.

Шаг 9: соедините блоки

  1. Соедините выходной порт CAN Msg на блоке CAN Receive к входному порту In1 на блоке Function-Call Subsystem.

  2. Откройте блок Function-Call Subsystem и:

    • Дважды кликните In1, чтобы переименовать его к CAN Msg.

    • Дважды кликните Out1, чтобы переименовать его к data.

  3. Переименуйте блок Function-Call Subsystem к CAN Unpack Subsystem.

  4. Соедините выходной порт f() на блоке CAN Receive к входному порту function() на блоке Function-Call Subsystem.

  5. Соедините выходной порт CAN Unpack Subsystem с входным портом на блоке Scope.

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

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

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

Установите параметры для блоков в вашей модели путем двойного клика по блоку.

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

  • Device к Vector Virtual 1 (Channel 2)

  • Bus speed к 500000

  • Acknowledge Mode к Normal

Нажмите OK.

Сконфигурируйте CAN, Получают Блок.  Дважды кликните блок CAN Receive, чтобы открыть его диалоговое окно Parameters. Набор:

  • Device к Vector Virtual 1 (Channel 2)

  • Sample time к 0.01

  • Number of messages received at each timestep к all

Нажмите OK.

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

  • Data to be output as к raw data

  • Name к значению по умолчанию CAN Msg

  • Identifier type к Standard (11-bit identifier) по умолчанию

  • Identifier к 500

  • Length (bytes) к длине по умолчанию 8

Нажмите OK.

Ваша подсистема выглядит так фигура.

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

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

Шаг 11: сохраните модель

Прежде чем вы запустите симуляцию, сохраните вашу модель путем нажатия на значок Save или выбора File > Save из панели меню.

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

  1. В вашем окне модели выберите Simulation > Model Configuration Parameters. Диалоговое окно Configuration Parameters открывается.

  2. В разделе Solver Options выберите:

    • Фиксированный шаг от списка Type.

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

Шаг 13: запустите симуляцию

Чтобы запустить симуляцию, нажмите кнопку Run на панели инструментов окна модели. Также можно использовать меню Simulation в окне модели и выбрать опцию Run.

Когда вы запускаете симуляцию, блок CAN Transmit получает сообщение от блока CAN Pack. Это затем передает его через Виртуальный Канал 1. Блок CAN Receive на Виртуальном Канале 2 получает это сообщение и вручает его блоку CAN Unpack, чтобы распаковать сообщение.

В то время как симуляция запускается, строка состояния в нижней части окна модели обновляет прогресс симуляции.

Шаг 14: просмотрите результаты

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

Если вы не видите все данные по графику, нажимаете кнопку на панели инструментов Autoscale, которая автоматически масштабирует обе оси, чтобы отобразить все сохраненные данные моделирования.

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

Похожие темы