Факторы и ограничения для startup Различное время активации

Объединение startup и code compile Различные времена активации в различных условиях

Simulink® не поддерживает условия варианта объединения с startup и code compile различные времена активации в модели.

Случай 1: блок Variant Source с startup Время активации, связанное с блоком Variant Source с code compile Время активации

Рассмотрите модель с двумя блоками Variant Source, VS_CC и VS_ST, с набором параметров Variant activation time к code compile и startup, соответственно.

Variant Source blocks with startup and code compile activation times

Во время компиляции модели, VS_ST блок распространяет различное условие, B==2 к VS_CC блок. Так, распространенное различное условие на VS_CC блоком является (A == 1 && B == 2) || (A == 2 && B == 2), который комбинирует условия с startup и code compile времена активации. Эта комбинация приводит к ошибке компиляции.

Случай 2: блок Variant Source с startup Время активации, связанное с блоком Variant Subsystem с code compile Время активации

В этой модели, блоке Variant Source с набором параметров Variant activation time к startup соединяется с блоком Variant Subsystem с набором параметров Variant activation time к code compile. Параметр Propagate conditions outside of variant subsystem на блоке Variant Subsystem устанавливается на on. Эти настройки приводят к распространению условий, которое комбинирует startup и code compile времена активации и производят ошибку компиляции.

Variant Source with startup activation connected to Variant Subsystem with code compile activation

Примечание

Это ограничение применимо к любому блоку Simulink, который поддерживает различное распространение условия. Например, вы не можете объединить startup различные условия с блоками Simulink Function или Initialize, Reset и блоками Terminate, которые имеют набор параметров Generate preprocessor conditionals к on. Этот параметр работает так же к code compile различное время активации. Для получения информации о распространении условия с различными блоками см. Сценарии Распространения Условия.

Ошибка компиляции для этого сценария обычно указывает на блок, который вызвал ошибку. Если сообщение об ошибке не указывает на блок, то различное условие, которое объединило startup и code compile времена активации, возможно, распространили со скрытым блоком, который Simulink вставил для внутреннего пользования. Такие блоки не отображаются в модели.

Сценарии исключения, которые поддерживают условия варианта объединения с startup и code compile Различные времена активации

Эти условия варианта объединения поддержки сценариев моделирования с startup и code compile времена активации:

  • Блоки Simulink Function, которые наследовали различные условия от блоков Function Caller в модели. Различным условием, присвоенным блоку Simulink Function, является логический OR различных условий, распространенных с блоками Function Caller. В таких случаях блоки Function Caller могут иметь startup и code compile времена активации.

  • Data Store Memory блокируется в модели. Эти блоки получают логический OR различных условий, распространенных к соответствующему Data Store Read и блокам Data Store Write в модели. Блоки читателя и средства записи в таких моделях могут иметь startup и code compile времена активации.

В этой модели параметр Variant control на блокировке порта вызова функции в блоке Simulink Function устанавливается на (inherit). Блоки Function Caller, Function Caller A и Function Caller B, получите различные условия с code compile и startup времена активации от связанных блоков Variant Source. Блок Simulink Function наследовал комбинацию этих различных условий. Этот случай не приводит к ошибке компиляции.

Simulink Function block that inherits both startup and code compile conditions

Использование различных контрольных переменных с startup Различное время активации в другом различном блоке

Вы не можете использовать различную контрольную переменную, используемую в блоке с startup время активации в другом различном блоке с различным временем активации.

Рассмотрите модель с двумя различными блоками, VSrc и VSink, с набором параметров Variant activation time к startup и update diagram, соответственно. Оба блоки используют ту же различную контрольную переменную, A. Это приводит к ошибке времени компиляции.

Variant source blocks with same variant control variable

Похожие темы