Этот пример показывает вам, как регистрировать и воспроизвести использование сообщений CAN MathWorks Virtual CAN channels в Simulink®. Можно обновить эту модель, чтобы связать с поддерживаемым оборудованием в системе.
Загрузите сохраненное сообщение CAN от sourceMsgs.mat
файл от папки в качестве примера. Файл содержит сообщения CAN, представляющие 90-секундный ездовой цикл вокруг испытательной площадки.
Преобразуйте эти сообщения в формат, совместимый с Блоком CAN Replay, и сохраните его в отдельный файл.
Name Size Bytes Class Attributes canMsgTimetable 100000x8 33510851 timetable canMsgs 1x1 2401176 struct
Эта модель содержит:
Блок CAN Replay, который передает к MathWorks Virtual Channel 1
.
Блок CAN Receive, который получает сообщения в сети CAN через MathWorks Virtual Channel 2
.
Блок CAN Receive сконфигурирован, чтобы блокировать все расширенные идентификаторы и позволить только WheelSpeed
передайте со стандартным ID 1200
передать.
Подсистема Скоростей Колеса распаковывает информацию о скорости колеса из полученных сообщений CAN и строит их к осциллографу. Подсистема также регистрирует сообщения к файлу.
График показывает скорость колеса для всех колес на время тест-драйва.
Блок CAN Log создает уникальный файл каждый раз, когда вы запускаете модель. Используйте dir
в командном окне MATLAB, чтобы найти последний файл журнала.
WheelSpeeds_2011-May-03_020634.mat Name Size Bytes Class Attributes canMsgTimetable 100000x8 33510851 timetable canMsgs 1x1 2401176 struct outMsgs 1x1 154320 struct
Используйте canMessageTimetable
преобразовывать сообщения регистрировало во время симуляции к расписанию, которое можно использовать в командном окне.
Для доступа сообщение сигнализирует непосредственно, используйте соответствующий файл базы данных в преобразовании наряду с canSignalTimetable
.
ans = 15x8 timetable Time ID Extended Name Data Length Signals Error Remote ___________ ____ ________ _______________ ___________________________ ______ ____________ _____ ______ 0.10701 sec 1200 false {'WheelSpeeds'} {[39 16 39 16 39 16 39 16]} 8 {1x1 struct} false false 0.1153 sec 1200 false {'WheelSpeeds'} {[39 16 39 16 39 16 39 16]} 8 {1x1 struct} false false 0.12349 sec 1200 false {'WheelSpeeds'} {[39 16 39 16 39 16 39 16]} 8 {1x1 struct} false false 0.13178 sec 1200 false {'WheelSpeeds'} {[39 16 39 16 39 16 39 16]} 8 {1x1 struct} false false 0.13998 sec 1200 false {'WheelSpeeds'} {[39 16 39 16 39 16 39 16]} 8 {1x1 struct} false false 0.14826 sec 1200 false {'WheelSpeeds'} {[39 16 39 16 39 16 39 16]} 8 {1x1 struct} false false 0.15647 sec 1200 false {'WheelSpeeds'} {[39 16 39 16 39 16 39 16]} 8 {1x1 struct} false false 0.16475 sec 1200 false {'WheelSpeeds'} {[39 16 39 16 39 16 39 16]} 8 {1x1 struct} false false 0.17338 sec 1200 false {'WheelSpeeds'} {[39 16 39 16 39 16 39 16]} 8 {1x1 struct} false false 0.18122 sec 1200 false {'WheelSpeeds'} {[39 16 39 16 39 16 39 16]} 8 {1x1 struct} false false 0.18941 sec 1200 false {'WheelSpeeds'} {[39 16 39 16 39 16 39 16]} 8 {1x1 struct} false false 0.19768 sec 1200 false {'WheelSpeeds'} {[39 16 39 16 39 16 39 16]} 8 {1x1 struct} false false 0.20591 sec 1200 false {'WheelSpeeds'} {[39 16 39 16 39 16 39 16]} 8 {1x1 struct} false false 0.2142 sec 1200 false {'WheelSpeeds'} {[39 16 39 16 39 16 39 16]} 8 {1x1 struct} false false 0.2224 sec 1200 false {'WheelSpeeds'} {[39 16 39 16 39 16 39 16]} 8 {1x1 struct} false false ans = 15x4 timetable Time LR_WSpeed RR_WSpeed RF_WSpeed LF_WSpeed ___________ _________ _________ _________ _________ 0.10701 sec 0 0 0 0 0.1153 sec 0 0 0 0 0.12349 sec 0 0 0 0 0.13178 sec 0 0 0 0 0.13998 sec 0 0 0 0 0.14826 sec 0 0 0 0 0.15647 sec 0 0 0 0 0.16475 sec 0 0 0 0 0.17338 sec 0 0 0 0 0.18122 sec 0 0 0 0 0.18941 sec 0 0 0 0 0.19768 sec 0 0 0 0 0.20591 sec 0 0 0 0 0.2142 sec 0 0 0 0 0.2224 sec 0 0 0 0
Каналы MathWorks CAN Virtual использовались для этого примера. Можно однако соединить модели с другим поддерживаемым оборудованием.