В этом примере показано, как логгировать и воспроизводить сообщения CAN с помощью каналов MathWorks Virtual CAN в 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 сообщение со стандартным идентификатором 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. Однако можно подключить свои модели к другому поддерживаемому оборудованию.