Иерархия модели - ссылки должна удовлетворить различным требованиям Simulink® Coder™, как описано в этом разделе. В дополнение к этим требованиям должна удовлетворить модель, ссылающаяся на иерархию, которая будет обработана программным обеспечением Simulink Coder:
Требования Simulink, перечисленные в:
Ограничения Simulink перечислили в Требованиях Сигнала и Ограничениях (Simulink)
Ограничения Simulink Coder перечислены в Модели Генерации кода Ссылку на Ограничения
Модель, на которую ссылаются, использует конфигурацию модели таким же образом, топ-модель делает, как описано в Управляют Конфигурациями модели для Модели (Simulink). По умолчанию каждая модель в иерархии имеет свою собственную конфигурацию модели, которую она использует таким же образом, что она была бы если модель, выполняемая независимо.
Поскольку каждая модель может иметь свою собственную конфигурацию модели, значения параметра конфигурации могут отличаться в различных моделях. Кроме того, некоторые значения параметров внутренне несовместимы со ссылкой модели. Ответ программного обеспечения Simulink Coder к противоречивому или неприменимому параметру конфигурации зависит от параметра:
Где несоответствие не имеет никакого значения, продукт игнорирует или разрешает несоответствие, не отправляя предупреждение.
Где нетривиальное и возможно приемлемое решение существует, продукт разрешает конфликт тихо; твердость это с предупреждением; или генерирует ошибку.
Если приемлемое разрешение не возможно, продукт генерирует ошибку. Необходимо затем изменить значения параметров, чтобы устранить проблему.
Когда иерархия модели - ссылки содержит много моделей, на которые ссылаются, которые имеют несовместимые значения параметров, или измененное значение параметров должно распространить ко многим моделям, на которые ссылаются, вручную устранение несовместимостей параметра конфигурации может быть утомительным. Можно управлять или устранить такие издержки при помощи ссылок настройки, чтобы присвоить внешне сохраненную конфигурацию модели многоуровневым моделям. Смотрите Долю Настройка с Многоуровневыми моделями (Simulink) для деталей.
Следующие таблицы приводят параметры конфигурации, которые могут вызвать проблемы, если установлено определенными способами, или, если установлено по-другому в модели, на которую ссылаются, чем в родительской модели. Где возможно, нарушения твердости программного обеспечения Simulink Coder этих требований автоматически, но большинство случаев требуют изменений в параметрах в ваших моделях.
Требования по настройке для ссылки модели со всеми системными конечными файлами
Панель диалогового окна | Опция | Требование |
---|---|---|
Solver | Start time | Некоторые системные конечные файлы требуют, чтобы время начала моделей было нулем. |
Hardware Implementation | Все опции | Значения должны быть тем же самым для главных и моделей, на которые ссылаются. |
Code Generation | System target file | Должно быть то же самое для главных и моделей, на которые ссылаются. |
Language | Должно быть то же самое для главных и моделей, на которые ссылаются. | |
Generate code only | Должно быть то же самое для главных и моделей, на которые ссылаются. | |
Identifiers | Maximum identifier length | Не может быть более длинным для модели, на которую ссылаются, чем для ее родительской модели. |
Interface | Code replacement library | Должно быть то же самое для главных и моделей, на которые ссылаются. |
C опции API | Флажки C API должны быть тем же самым для главных и моделей, на которые ссылаются. | |
ASAP2 interface | Может быть |
Требования по настройке для ссылки модели с системными конечными файлами ERT (требует лицензии Embedded Coder),
Панель диалогового окна | Опция | Требование |
---|---|---|
Comments> Advanced parameters | Ignore custom storage classes | Должно быть то же самое для главных и моделей, на которые ссылаются. |
Identifiers | Глобальные переменные Глобальные типы Методы подсистемы Локальные временные переменные Постоянные макросы | $R лексема должна появиться. |
Signal naming | Должно быть то же самое для главных и моделей, на которые ссылаются. | |
M-функция | Если задано, должно быть то же самое для главных и моделей, на которые ссылаются. | |
Parameter naming | Должно быть то же самое для главных и моделей, на которые ссылаются. | |
#define naming | Должно быть то же самое для главных и моделей, на которые ссылаются. | |
Interface | Support floating-point numbers | Должно быть то же самое и для главных и для моделей, на которые ссылаются, |
Support non-finite numbers | Если | |
Support complex numbers | Если | |
Suppress error status in real-time model | Если | |
Code Placement | Use owner from data object for data definition placement | Должно быть то же самое для главных и моделей, на которые ссылаются. |
Signal display level | Должно быть то же самое для главных и моделей, на которые ссылаются. | |
Parameter tune level | Должно быть то же самое для главных и моделей, на которые ссылаются. |
Для моделей, на которые ссылаются, если они Configuration Parameters> Code Generation> параметры Identifiers имеют настройки, которые не содержат $R
лексема (который представляет имя модели, на которую ссылаются), генерация кода предварительно ожидает $R
лексема к формату идентификатора:
Global variables (CustomSymbolStrGlobalVar
)
Global types (CustomSymbolStrType
)
Subsystem methods (CustomSymbolStrFcn
)
Constant macros (CustomSymbolStrMacro
)
Можно использовать Model Advisor, чтобы идентифицировать модели в модели, ссылающейся на иерархию, для которой генерация кода изменяет настройки параметра конфигурации.
В Редакторе Simulink, от вкладки Modeling, выбирают Model Advisor.
Выберите By Task.
Осуществите проверку Check code generation identifier formats used for model reference.
Если скрипт, который работает со сгенерированным кодом, использует форматы идентификатора, которые изменяет генерация кода, то обновите скрипт, чтобы использовать обновленный формат идентификатора (который включает добавленный $R
лексема).
Для получения дополнительной информации об идентификаторах, смотрите Управление форматом Идентификатора.
В модели, которая использует ссылку модели, не могут столкнуться имена составляющих моделей. Когда вы генерируете код из модели, которая использует ссылку модели, параметр Maximum identifier length должен быть достаточно большим, чтобы разместить корневое имя модели и искажающий имя текст. Ошибка генерации кода происходит, если Maximum identifier length не является достаточно большим.
Когда конфликт по совпадению имен находится между символом в рамках высокоуровневой модели и символом в рамках модели, на которую ссылаются, символ из модели, на которую ссылаются, сохраняется. Искажение имени выполняется на символе из высокоуровневой модели.
Продукт Embedded Coder® позволяет вам управлять форматированием сгенерированных символов в намного больших деталях. Когда генерация кода с ERT предназначается из модели, которая использует ссылку модели:
$R
лексема должна быть включена в технические требования параметра управления форматом Идентификатора (в дополнение к $M
лексема) за исключением Shared utilities identifier format.
Максимальная длина идентификатора должна быть достаточно большой, чтобы разместить полные расширения $R
и $M
лексемы.
Смотрите Параметры конфигурации Модели: Идентификаторы Генерации кода (Simulink Coder) для получения дополнительной информации.
Если у вас есть лицензия Embedded Coder, пользовательская цель должна удовлетворить различные требования к ссылке модели поддержки. Для получения дополнительной информации смотрите, что Модель поддержки Ссылается.