exponenta event banner

Регистрация и воспроизведение CAN-сообщений

В этом примере показано, как регистрировать и воспроизводить сообщения 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

Эта модель содержит:

  • Блок воспроизведения 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. Однако можно подключить модели к другому поддерживаемому оборудованию.