exponenta event banner

Набор инструментов для ввода/вывода CAN с сетью транспортных средств

В этом примере показано, как передавать данные по шине CAN с использованием CAN_MESSAGE типа данных и блоков CAN Pack и CAN Unpack, доступных в библиотеке блоков Vehicle Network Toolbox™. Тип данных CAN_MESSAGE может непосредственно обрабатываться блоками Real-Time™ Simulink Desktop.

В примере также показана разница в возможностях передачи данных между протоколами CAN и CAN FD. Максимальный размер данных протокола CAN составляет 8 байт. Этот протокол способен отправлять восемь значений двойной точности, значения должны быть масштабированы и преобразованы в тип данных uint8, теряя некоторую точность. Максимальный размер данных протокола CAN FD составляет 64 байта. Этот протокол способен передавать восемь значений двойной точности в их собственном формате без какого-либо преобразования и потери точности.

Модель отправляет данные в пределах одного компьютера, с одного виртуального канала CAN на другой. Два канала CAN могут быть либо виртуальными, либо физическими каналами в двухканальном устройстве CAN. Модель можно изменить для обмена данными между двумя компьютерами, разделив ее на части отправки и получения и запустив модели на двух компьютерах.

Желтые блоки используются для отправки данных. Синие блоки используются для приема данных.

Примечание.Эта модель работает только в Microsoft Windows.

Запустить модель в обычном режиме

  1. Для переключения в обычный режим при необходимости на вкладке Моделирование (Simulation) выберите Обычный режим (Normal mode).

  2. Чтобы начать выполнение в реальном времени, на вкладке Моделирование (Simulation) щелкните Выполнить (Run).

Запуск модели во внешнем режиме

Чтобы запустить выполнение в реальном времени во внешнем режиме, на вкладке Рабочий стол в реальном времени щелкните Выполнить в реальном времени. Модель создается, подключается к Simulink во внешнем режиме и запускается.

Открытие модели

Эти команды открывают модель и подавляют предупреждение о том, что плата не установлена.

w = warning('off', 'sldrt:blkgui:boardnotonlist');
open_system(fullfile(matlabroot,'toolbox','sldrt','sldrtexamples','sldrtex_canmessage'));
warning(w);

Закрыть открытые области

close_system(find_system(gcs ,'BlockType', 'Scope'));

Очистить модель

clear
close all
bdclose all

См. также