В этом примере показано, как запретить моделям Simulink ® создавать неиспользуемые переменные в сгенерированном коде, когда условие исполнения исходного блока является более мягким, чем условие исполнения целевого блока. Предотвращение создания неиспользуемых переменных в сгенерированном коде увеличивает вероятность генерации кода C, соответствующего правилу 2.2 руководящих принципов MISRA C:2012.
В этой модели источником выделенного сигнала является блок EvlnB. Адресатом сигнала является VariantSource3. Вариант состояния EvlnB: A > 0, что более мягко, чем условие варианта A > 0 && B == 1 VariantSource3.

Предположим, что значение A является 1и значение B является 0.
При создании кода с помощью Embedded Coder™ условие исполнения EvlnB, A > 0, вычисляется как trueи состояние VariantSource3, A > 0 && B == 1, вычисляется как false. Однако код создается для всех вариантов выбора. В созданном коде переменная rtb_Switch создается. Эта переменная соответствует блоку коммутатора, расположенному внутри блока EvlnB. rtb_Switch используется только тогда, когда A > 0 && B == 1 вычисляется как true. В этом примере, с A > 0 && B == 1 вычисляется как false, rtb_Switch остается неиспользуемым.

Чтобы избежать проблем моделирования, которые могут создать неиспользуемые переменные в сгенерированном коде, выберите Параметры модели > Диагностика. Разверните раздел Дополнительные параметры и выполните прокрутку до нижней части диалогового окна. В разделе Проблемы моделирования, связанные с исполнениями, установите для параметра Несовпадение условий исполнения в источнике сигнала и пункте назначения значение warning или error. Установка этого параметра предупреждает о неиспользуемых переменных во время создания кода.
