Создайте целевую настройку возможности соединения PIL для Simulink

Целевые настройки возможности соединения для PIL

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

Через целевую настройку возможности соединения вы задаете:

  • Имя настройки для целевой реализации API возможности соединения.

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

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

  • Кросс-компиляция сгенерированного кода, создавание приложения PIL, которое работает на целевом компьютере.

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

  • Передача между Simulink и целью.

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

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

Создайте целевую реализацию API возможности соединения

Эта схема показывает компоненты целевого API возможности соединения PIL.

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

  • Создайте API — Задают набор инструментальных средств Simulink Coder™ или обрабатывают подход make-файла по шаблону для создания сгенерированного кода.

  • API средства запуска — Управление, как Simulink запускает и останавливает исполняемый файл PIL.

  • Коммуникационный 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. Сконфигурируйте свою реализацию API rtiostream целевого хостом коммуникационного канала.

    • Для целевой стороны необходимо предоставить код драйвера для коммуникаций, например, 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 по умолчанию позволяют связь высокой пропускной способности между хостом и целью, которую можно использовать для передачи данных, таких как видео.

    Примечание

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

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

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

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

| | | | | |

Похожие темы