exponenta event banner

Создание конфигурации подключения PIL Target для Simulink

Целевые конфигурации подключения для PIL

Используйте целевые конфигурации подключения и целевой API подключения для настройки моделирования процессора в цикле (PIL) для целевых сред.

С помощью целевой конфигурации подключения можно указать:

  • Имя конфигурации для целевой реализации API-интерфейса подключения.

  • Параметры, определяющие набор совместимых моделей Simulink ®. Например, набор моделей, имеющих определенный системный целевой файл, файл создания шаблона и аппаратную реализацию.

Для моделирования PIL требуется целевая реализация API подключения, которая интегрирует сторонние инструменты для:

  • Перекрестная компиляция сгенерированного кода, создание приложения PIL, которое выполняется на целевом оборудовании.

  • Загрузка, запуск и остановка приложения на конечном объекте.

  • Обмен данными между Simulink и целью.

Для моделирования PIL можно использовать множество различных конфигураций целевых соединений. Зарегистрируйте конфигурацию подключения в Simulink, создав sl_customization.m и поместите его в путь поиска MATLAB ®.

При выполнении моделирования PIL программное обеспечение определяет, какую из доступных конфигураций подключения использовать. Программа ищет конфигурацию подключения, совместимую с тестируемой моделью. Если программа находит несколько совместимых конфигураций подключения или нет, программа генерирует сообщение об ошибке с информацией о решении проблемы.

Создание реализации целевого API-интерфейса подключения

На этой схеме показаны компоненты целевого API подключения PIL.

Необходимо предоставить реализации трех компонентов API:

  • API построения - укажите подход Simulink Coder™ toolchain или makefile шаблона для создания сгенерированного кода.

  • API Launcher - управление запуском и остановкой исполняемого файла PIL в Simulink.

  • Коммуникационный API - настройка связи между Simulink и целевым объектом PIL. Embedded Coder ® обеспечивает серверную поддержку TCP/IP и последовательной связи, которую можно адаптировать для других протоколов.

Эти шаги описывают создание целевой реализации API подключения. Пример кода, показанный на шагах, взят из ConnectivityConfig.m в разделе Настройка процессора в петле (PIL) для пользовательского целевого объекта.

  1. Создание подкласса rtw.connectivity.Config.

    ConnectivityConfig < rtw.connectivity.Config

  2. В подклассе:

    • Иллюстрировать примерами rtw.connectivity.MakefileBuilder, который настраивает процесс построения.

      builder = rtw.connectivity.MakefileBuilder(componentArgs, ...
                                                 targetApplicationFramework, ...
                                                 exeExtension);

    • Создание подкласса rtw.connectivity.Launcher, которая загружает и выполняет приложение с помощью стороннего инструмента.

      launcher = mypil.Launcher(componentArgs, builder);

  3. Настройте rtiostream Реализация API канала связи хост-объект.

    • Для целевой стороны необходимо указать код драйвера для связи, например TCP/IP или последовательной связи. Чтобы интегрировать этот код в процесс построения, создайте подкласс rtw.pil.RtIOStreamApplicationFramework.

    • На стороне хоста можно использовать поставляемую библиотеку для TCP/IP или последовательной связи. Иллюстрировать примерами rtw.connectivity.RtIOStreamHostCommunicator, которая загружает и инициализирует указанную библиотеку.

      hostCommunicator = rtw.connectivity.RtIOStreamHostCommunicator(componentArgs, ...
                                                                     launcher, ...
                                                                     rtiostreamLib);

  4. Если требуется профилирование генерируемого кода во время выполнения, создайте объект таймера, который предоставляет сведения об аппаратном таймере и связанных исходных файлах. См. раздел Указание аппаратного таймера.

Примечание

При каждом изменении реализации подключения закройте и снова откройте модели, чтобы обновить их.

Регистрация реализации API-интерфейса подключения

Чтобы зарегистрировать реализацию API целевого подключения в качестве целевой конфигурации подключения в Simulink, выполните следующие действия.

  1. Создать или обновить sl_customization.m файл. В этом файле:

    • Создайте целевой объект конфигурации подключения, который задает, например, имя конфигурации для реализации целевого API-интерфейса подключения и совместимых моделей.

    • Призвать registerTargetInfo.

  2. Добавить папку, содержащую sl_customization.m к пути поиска и обновите настройки.

    addpath(sl_customization_path);
    sl_refresh_customizations;

Дополнительные сведения см. в разделе rtw.connectivity.ConfigRegistry.

Проверка конфигурации целевого подключения

Чтобы проверить целевую конфигурацию подключения на ранней стадии и независимо от разработки модели и создания кода, используйте предоставленную piltest функция. С помощью этой функции можно запустить набор тестов. В тестах функция выполняет различные модели нормального уровня безопасности, SIL и PIL. Функция сравнивает результаты и выдает ошибки, если обнаруживает различия между режимами моделирования.

Примеры API целевого подключения

Пошаговые примеры см. в разделе:

  • Конфигурирование процессора в петле (PIL) для пользовательского целевого объекта

    В этом примере показано, как создать пользовательскую реализацию PIL с использованием целевых API-интерфейсов подключения. Можно изучить код, который настраивает процесс сборки для поддержки PIL, средства загрузки и выполнения и канала связи между хостом и целевым объектом. Для активации полной конфигурации PIL на основе хоста выполните действия, описанные в примере.

  • Создание целевого канала связи для моделирования процессора в петле (PIL)

    В этом примере показано, как реализовать канал связи для использования с продуктом Embedded Coder и встроенной целью. Этот канал связи обеспечивает обмен данными между различными процессами. Моделирование PIL требует обмена данными между программным обеспечением Simulink, работающим на компьютере разработчика, и развернутым кодом, выполняющимся на целевом оборудовании.

    rtiostream интерфейс обеспечивает общий канал связи, который можно реализовать в виде целевых драйверов подключения для различных типов соединений. В примере показано, как настроить собственный драйвер на стороне назначения для TCP/IP для работы с драйвером TCP/IP на стороне хоста по умолчанию. Связь TCP/IP по умолчанию обеспечивает высокоскоростную связь между хостом и целевым объектом, которую можно использовать для передачи таких данных, как видео.

    Примечание

    При настройке rtiostream Реализация TCP/IP для моделирования PIL, необходимо отключить алгоритм Nagle для серверной стороны соединения. Если алгоритм Nagle не выключен, моделирование PIL может выполняться со значительно более низкой скоростью. matlabroot/toolbox/coder/rtiostream/src/rtiostreamtcpip/rtiostream_tcpip.c В файле показано, как можно отключить алгоритм Nagle:

    /* Disable Nagle's Algorithm*/
    option = 1;
    sockStatus = setsockopt(lFd,IPPROTO_TCP,TCP_NODELAY,(char*)&option,sizeof(option));  
    Код пользовательской реализации TCP/IP может потребовать изменения.

    В этом примере также показано, как реализовать пользовательские целевые драйверы подключения, например, с использованием последовательного соединения, CAN или USB как для главной, так и для целевой стороны канала связи.

См. также

| | | | | |

Связанные темы