Ввод/вывод CAN с Vehicle Network Toolbox

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

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

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

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

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

Запустите модель в режиме normal mode

  1. Переключаться на режим normal mode в случае необходимости, на вкладке Simulation, избранном Режиме normal mode.

  2. Чтобы запустить выполнение в реальном времени, на вкладке Simulation, нажимают Run.

Запустите модель в режиме external mode

Чтобы запустить выполнение в реальном времени в режиме external mode, на вкладке Desktop Real-Time, нажимают Run в режиме реального времени. Сборки модели, подключения к Simulink в режиме external mode, и запускаются.

Откройте модель

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

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

Смотрите также