В этом примере показано, как регистрировать и воспроизводить сообщения CAN с использованием каналов MathWorks Virtual CAN в Simulink ®. Эту модель можно обновить для подключения к поддерживаемому оборудованию в системе.
Загрузить сохраненное сообщение CAN из sourceMsgs.mat из папки примеров. Файл содержит сообщения CAN, представляющие 90-секундный цикл движения вокруг тестовой дорожки.
Преобразуйте эти сообщения в формат, совместимый с блоком воспроизведения CAN, и сохраните их в отдельном файле.
Name Size Bytes Class Attributes canMsgTimetable 100000x8 33510851 timetable canMsgs 1x1 2401176 struct
Эта модель содержит:
Блок воспроизведения CAN, который передает MathWorks Virtual Channel 1.
Блок приема CAN, который принимает сообщения в сети CAN, через MathWorks Virtual Channel 2.
Блок CAN Receive сконфигурирован для блокирования всех расширенных идентификаторов и разрешения только WheelSpeed сообщение со стандартным идентификатором 1200 чтобы пройти.

Подсистема Wheel Speeds распаковывает информацию о скорости колеса из полученных сообщений 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. Однако можно подключить модели к другому поддерживаемому оборудованию.