В проекте, где вы генерируете код из многих моделей, можно сконфигурировать модели с теми же настройками кода по умолчанию, чтобы они генерировали код, который соответствует вашим стандартам программной архитектуры. Эти настройки включают:
Настройки параметров конфигурации
Определения кодовых интерфейсов, такие как классы памяти
Отображения кода, которые задают определения кода для категорий данных моделей и функций
Когда проекты расширяются, и вы и ваши коллеги создаете больше моделей, ручное конфигурирование настроек по умолчанию для каждой новой модели требует времени. Чтобы уменьшить этот ручной ввод данных, можно использовать инструменты, чтобы сконфигурировать многие модели по умолчанию. Можно копировать настройки между моделями, что позволяет каждой модели позже изменять настройки независимо друг от друга. Кроме того, вы можете делиться настройками, позволяя изменять настройки для нескольких моделей одновременно с минимальными усилиями.
Один из способов сделать модели соответствующими стандартам генерации кода - это хранить настройки в одном месте и делиться ими между моделями. Поделитесь настройками, которые можно изменить, чтобы при изменении настроек модели обновлялись. Чтобы поделиться настройками генерации кода между несколькими моделями, сохраните настройки в автономном Simulink® словарь данных. Затем соедините каждую модель с одним или несколькими дополнительными промежуточными словарями. Сконфигурируйте промежуточные словари для ссылки на автономный словарь. С помощью этой модульной иерархии словарей каждая модель может хранить другие данные, такие как проектные данные, отдельно от общих настроек. Пример, показывающий, как хранить разделяемые данные в словаре, см. в разделе Данные разделов для иерархии Модели-ссылки с использованием словарей данных. После настройки иерархии словаря данных для моделей выберите, какие настройки генерации кода необходимо использовать совместно при помощи словаря.
Параметры конфигурации управляют настройками всей модели, включая опции генерации кода, такие как системный целевой файл, целевой язык и пользовательские файлы кода. Параметры конфигурации модели хранятся в наборе настроек. Для параметров генерации кода на панели Code Generation и ссылок на страницы для подпанелей генерации кода, смотрите Параметры конфигурации модели: Генерация кода. Некоторые системы, которые включают несколько моделей, требуют, чтобы многие настройки параметров конфигурации были последовательными для моделей. Для примера, когда вы генерируете код для иерархии модели-ссылки, модели в иерархии должны иметь те же настройки для многих параметров генерации кода. В этом типе системы совместно используйте одну конфигурацию модели с моделями.
Чтобы поделиться настройками строения между несколькими моделями, сохраните настройки в автономном объекте конфигурации модели. Сохраните объект строения в словаре данных Simulink, которым делятся модели. Для каждой модели активируйте ссылку строения, которая указывает на общую конфигурацию модели. Пример совместного использования конфигурации модели несколькими моделями см. в разделе «Совместное использование строения с несколькими моделями». Когда необходимо изменить настройки параметра, отредактируйте общую конфигурацию модели. Модели, которые ссылаются на него, используют новые настройки. Для быстрого совместного использования конфигурации модели между ссылочными моделями в иерархии смотрите раздел «Совместное использование строения между ссылочными моделями».
Чтобы интерфейс кода многих моделей соответствовал тем же спецификациям, задайте интерфейс в наборе определений интерфейса общего кода в словаре Embedded Coder. Используйте определение кода, чтобы задать много подробных свойств кода. Затем можно управлять интерфейсом кода элементов данных и функций путем применения определений кода с помощью отображения кода. Определения кодового интерфейса включают:
Классы памяти
Разделы памяти
Шаблоны индивидуальной настройки функций
Как только вы создали определения интерфейса кода, примените их к модели, сопоставив данные модели и функции с определениями. Совместное использование одного набора определений кода среди нескольких моделей позволяет вам быстро применить один и тот же набор спецификаций интерфейса путем сопоставления данных и функций в каждой модели с определениями.
Чтобы поделиться набором определений кода среди нескольких моделей, создайте определения в разделе Embedded Coder Dictionary словаря данных Simulink, которые разделяют модели. Затем сопоставьте данные и функции в модели с общими определениями. Пример обмена определениями между несколькими моделями см. в разделе «Совместное определение словаря Embedded Coder между моделями».
Модели могут также совместно использовать строение отображения по умолчанию, которая применяет определения к данным и категориям функций. В общем словаре Embedded Coder Dictionary вы конфигурируете отображение по умолчанию словаря. Когда вы связываете модель со словарем, модель использует отображение словаря по умолчанию. Вы все еще можете изменить отображение по умолчанию и отдельные отображения для модели индивидуума, если модель требует другого строения. Дополнительные сведения об совместном использовании отображения по умолчанию словаря для нескольких моделей см. в разделе Настройка отображении кода по умолчанию в общем словаре.
Если вы не хотите делиться настройками генерации кода из одного источника, можно использовать другие инструменты для настройки моделей путем копирования настроек генерации кода. Когда вы используете эти методы, можно легко изменить настройки для модели индивидуума после начального строения. Если вы хотите изменить настройку для многих моделей, которые уже сконфигурированы, необходимо изменить каждую модель индивидуально. В процессе разработки модели учитывайте, когда вы хотите применить настройки к вашим моделям и использовать один из этих методов.
Если необходимо сконфигурировать новые модели во время их создания, используйте модель шаблона. Можно создать модель шаблона, которая имеет предварительно настроенные настройки, такие как настройки параметров конфигурации и настройки редактора отображений кода. Чтобы создать модель, вы и другие можете создать экземпляр шаблона. Каждая новая модель может позже изменить свои настройки независимо от других моделей. См. «Создание шаблона из модели».
Когда вы создаете модель путем создания экземпляра шаблона, новая модель не связана со словарем данных. Если предварительно настроенные настройки в модели шаблона зависят от разделяемых данных, которые вы храните в словаре данных, необходимо сконфигурировать связывание словаря и ссылки для каждой новой модели.
Если необходимо, чтобы новые модели использовали данные, которые вы храните вне моделей, например, в словаре данных, используйте проекты шаблонов. Можно создать проект шаблона, который содержит модели, словари данных и другие программные продукты. Можно также записать ярлыки проекта, которые выполняют пользовательский код, чтобы создать модели, скопировать настройки и сделать общие настройки, хранящиеся в словаре, доступными для новых моделей. Дополнительные сведения об использовании проектов-шаблонов см. в разделе «Создание шаблонов для стандартных параметров проекта».
Если вы хотите скопировать настройки в модель после ее создания, можно написать скрипты, коллбэки и ярлыки, которые используют программные интерфейсы для настройки настроек генерации кода. Сконфигурируйте эти настройки генерации кода с помощью соответствующих программных интерфейсов:
Для настройки параметров конфигурации используйте set_param
и get_param
функций. Можно написать скрипт, который устанавливает много параметров, как описано в Automate Model Configuration by Using a Script.
Определения кодового интерфейса в словаре Embedded Coder Dictionary см. в примере Создание программных определений кода.
Для параметров редактора отображений кода смотрите Настройте данные по умолчанию и Генерацию кода функции программно.
Выберите, как выполнить код, учитывая, когда вы хотите сконфигурировать модели. Выполнить этот код можно в:
Скрипт. Можно сконфигурировать модели в любое время, запустив скрипт вручную.
Моделируйте коллбэк. Коллбэк использует ваш код, чтобы сконфигурировать модель каждый раз, когда коллбэк вызывается. Для примера можно использовать PreLoadFcn
коллбэк, который выполняется каждый раз, когда вы открываете модель. См. Модель коллбэков.
Ярлык проекта. Ярлык может создать модель и скопировать настройки в модель. Смотрите, что можно сделать с помощью ярлыков проекта?.
После того, как вы используете код для конфигурации моделей, можно изменять настройки на каждой отдельной модели по мере необходимости.