Проверки Simulink Code Inspector

Обзор проверки Simulink Code Inspector

Использование Simulink® Code Inspector™ Model Advisor проверяет, чтобы сконфигурировать модель для инспекции кода. Если у вас есть лицензия Simulink Check™, можно использовать проверку во время редактирования, чтобы идентифицировать проблемы совместимости в процессе разработки модели. Подмножество проверок Model Advisor поддерживает проверку во время редактирования. Однако проверка во время редактирования не помечает нарушения для всех ограничений поддерживаемых проверок Model Advisor. Он помечает некоторые определенные нарушения ограничений.

См. также

Проверьте настройки генерации кода

Проверяйте идентификатор: mathworks.slci.CodeGenerationSettings

Проверьте настройки генерации кода в строения модели, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка проверяет, что настройки генерации кода совместимы с инспекцией кода.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Verify 'Use dynamic memory allocation for model initialization' setting Модель сконфигурирована, чтобы динамически выделять память.В диалоговом окне Параметров конфигурации очистите поле Use dynamic memory allocation for model initialization (Simulink Coder).
Verify 'Shared code placement' settingМодель не сконфигурирована, чтобы сгенерировать общий код утилиты в общее место. Если общий код утилиты генерируется в model.cSimulink Code Inspector сообщает код как непроверенный.В диалоговом окне Параметров конфигурации на панели Code Generation > Interface установите значение Shared code placement (Simulink Coder) Shared location. Использование общего местоположения для служебных функций, макросов и определяемых пользователем типов данных способствует отладке и трассируемости сгенерированного кода.
Verify 'Source file' settingПользовательский код сконфигурирован так, чтобы он находился в верхней части сгенерированного исходного файла модели.В диалоговом окне Параметров конфигурации на панели Code Generation > Custom Code очистите поле Source file (Simulink Coder).
Verify 'Header file' settingПользовательский код сконфигурирован так, чтобы он находился в верхней части сгенерированного файла заголовка модели.В диалоговом окне Параметров конфигурации на панели Code Generation > Custom Code очистите поле Header file (Simulink Coder).
Verify 'Initialize function' settingПользовательский код сконфигурирован, чтобы появиться в сгенерированной функции инициализации модели.В диалоговом окне Configuration Parameters на панели Code Generation > Custom Code очистите поле Initialize function (Simulink Coder).
Verify 'Terminate function' settingПользовательский код сконфигурирован, чтобы появиться в сгенерированной функции завершения модели.В диалоговом окне Параметров конфигурации на Code Generation > Custom Code и очистите поле Terminate function (Simulink Coder).
Verify 'Disable incompatible optimizations' settingМодель не сконфигурирована, чтобы отключить оптимизацию, которая несовместима с Simulink Code Inspector.В MATLAB® Командное окно, установите параметр модели AdvancedOptControl на -SLCI. Для примера, set_param(gcs, 'AdvancedOptControl', '-SLCI').
Verify 'Combine signal/state structures' settingМодель сконфигурирована, чтобы объединить глобальные блочные сигналы и данные о глобальном состоянии в одну структуру данных в сгенерированном коде. Это не поддерживается для инспекции кода.В диалоговом окне Параметров конфигурации очистите параметр Combine signal/state structures (Embedded Coder).
Verify 'Array layout' settingЭта модель сконфигурирована, чтобы сгенерировать код в размещении строки. Это не поддерживается для инспекции кода.В диалоговом окне Параметров конфигурации установите параметр Массива размещения (Simulink Coder) равным column-major.
Verify 'Remove code from floating-point to integer conversions that wraps out-of-range values' settingМодель сконфигурирована так, чтобы не удалять код переноса, который обрабатывает результаты преобразования с плавающей точкой вне области допустимого значения в целочисленное, когда происходят преобразования вне области допустимого.В диалоговом окне Параметров конфигурации на панели Code Generation > Optimization выберите Remove code from floating-point to integer conversions that wraps out-of-range values (Simulink Coder).
Verify 'Remove code from floating-point to integer conversions with saturation that maps NaN to zero' settingМодель сконфигурирована, чтобы удалить код, который обрабатывает результаты преобразования с плавающей точкой в целое число для NaN значения при отображении из NaN в целое число происходит ноль.В диалоговом окне Параметров конфигурации очистите параметр Remove code from floating-point to integer conversions with saturation that maps NaN to zero (Simulink Coder).
Verify 'Include comments' settingМодель сконфигурирована, чтобы исключить автогенерированные комментарии из файлов сгенерированного кода. Simulink Code Inspector анализирует автогенерированные комментарии, чтобы получить информацию о трассируемости данных моделей.В диалоговом окне Параметров конфигурации на панели Code Generation > Comments выберите Include comments (Simulink Coder).
Verify 'Generate scalar inlined parameter as' settingМодель сконфигурирована, чтобы сгенерировать скалярные inlined параметры как переменные с #define макросы, а не как числовые константы.В диалоговом окне Параметров конфигурации на панели Code Generation > Identifiers установите значение Generate scalar inlined parameter as (Embedded Coder) Literals.
Verify 'Preserve condition expression in if statement' settingМодель сконфигурирована, чтобы оптимизировать пустые выражения первичного условия в if операторы путем их отмены, а не сохранения пустых выражений первичного условия.В диалоговом окне Параметров конфигурации на панели Code Generation > Code Style выберите Preserve condition expression in if statement (Embedded Coder).
Verify 'Code replacement library' settingБиблиотека замещения кода, отличная от None выбран для модели.В диалоговом окне Параметров конфигурации на панели Code Generation > Interface установите значение Code replacement library (Simulink Coder) None. Проверка не проходит, если вы не выбираете None. Однако, если вы создаете библиотеку с помощью Поддерживаемых функций и Операций в Библиотеках Замещения Кода, Simulink Code Inspector действительно просматривает сгенерированный код.
Verify 'Standard math library' settingСтандартная математическая библиотека кроме C89/C90 (ANSI) или C99 (ISO) выбран для модели.В диалоговом окне Параметров конфигурации установите значение Standard math library (Simulink Coder) C89/C90 (ANSI) или C99 (ISO).
Verify 'Classic call interface' settingМодель сконфигурирована, чтобы сгенерировать вызовы функции модели, совместимые с основным программным модулем pre-R2011a цели GRT. Классический интерфейс вызова не поддерживается для инспекции кода.В диалоговом окне Параметров конфигурации очистите параметр Classic call interface (Simulink Coder).
Verify 'Terminate function required' settingМодель сконфигурирована, чтобы сгенерировать model_terminate функция, потенциально содержащая код завершения модели, который будет выполнен во время завершения работы системы. Это не поддерживается для инспекции кода.В диалоговом окне Параметров конфигурации очистите параметр Terminate function required (Embedded Coder).
Verify 'Remove code that protects against division arithmetic exceptions' settingМодель сконфигурирована, чтобы удалить код, который защищает от деления на нули для данных с фиксированной точкой.В диалоговом окне Параметров конфигурации на панели Code Generation > Optimization очистите параметр Remove code that protects against division arithmetic exceptions (Embedded Coder).
Verify 'MAT-file logging' settingМодель сконфигурирована для регистрации данных выполнения в MAT-файле. Это не поддерживается для инспекции кода.В диалоговом окне Параметров конфигурации очистите параметр MAT-file logging (Simulink Coder).
Verify 'Pack Boolean data into bitfields' settingМодель сконфигурирована, чтобы хранить логические сигналы как однобитовые битовые поля.В диалоговом окне Параметров конфигурации на панели Code Generation > Optimization очистите параметр Pack Boolean data into bitfields (Embedded Coder).
Verify ‘Use bitsets for storing state configuration’ settingМодель сконфигурирована так, чтобы уменьшить объем памяти, необходимой для хранения переменных строения состояния.В диалоговом окне Параметров конфигурации на панели Code Generation > Optimization очистите параметр Use bitsets for storing state configuration (Simulink Coder).
Verify 'non-finite numbers' settingМодель сконфигурирована, чтобы генерировать нефинитные данные (для примера, NaN и Inf) и сопутствующие операции. Это не поддерживается для инспекции кода.В диалоговом окне Параметров конфигурации на панели Code Generation > Interface очистите параметр Support: non-finite numbers (Simulink Coder).
Verify 'absolute time' settingМодель сконфигурирована, чтобы генерировать и поддерживать целочисленные счетчики для абсолютных и истекших значений времени. Это не поддерживается для инспекции кода.В диалоговом окне Параметров конфигурации на панели Code Generation > Interface очистите параметр Support: absolute time (Embedded Coder).
Verify 'Operator to represent Bitwise and Logical Operator blocks' settingМодель сконфигурирована, чтобы сгенерировать код, который представляет побитовых операторов как логический оператор.В диалоговом окне Параметров конфигурации на панели Code Generation > Interface установите значение Operator to represent Bitwise and Logical Operator blocks (Embedded Coder) Same as modeled или Bitwise operator.
Verify ‘Default parameter behavior’ settingМодель-ссылка сконфигурирована, чтобы использовать символьные имена для параметров модели в сгенерированном коде.В диалоговом окне Параметров конфигурации установите значение Default parameter behavior (Simulink Coder) Inlined.
Verify 'Remove error status field in real-time model data structure' settingМодель сконфигурирована таким образом, чтобы включать поле состояния ошибки в сгенерированное rtModel структура данных. The rtModel структура данных не поддерживается для инспекции кода.В диалоговом окне Параметров конфигурации на панели Code Generation > Interface выберите Remove error status field in real-time model data structure (Embedded Coder).
Verify 'Create block' settingМодель сконфигурирована, чтобы сгенерировать блок SIL или PIL во время генерации кода. Это не поддерживается для инспекции кода.В диалоговом окне Параметров конфигурации установите значение Create block (Embedded Coder) None.
Verify 'Measure function execution times' settingМодель сконфигурирована, чтобы сгенерировать код с инструментированием, чтобы собрать времена выполнения для функций внутри сгенерированного кода. Это не поддерживается для инспекции кода.В диалоговом окне Параметров конфигурации на панели Code Generation > Verification очистите параметр Measure function execution times (Embedded Coder).
Verify 'Signal naming' settingМодель сконфигурирована для изменения имен сигналов при создании соответствующих идентификаторов в сгенерированном коде.В диалоговом окне Параметров конфигурации на панели Code Generation > Identifiers установите значение Signal naming (Embedded Coder) None.
Verify 'Parameter naming' settingМодель сконфигурирована для изменения имен параметров при создании соответствующих идентификаторов в сгенерированном коде.В диалоговом окне Параметров конфигурации на панели Code Generation > Identifiers установите значение Parameter naming (Embedded Coder) None.
Verify 'TLC options' settingМодель сконфигурирована с опциями TLC.В Командном Окне MATLAB установите параметр конфигурации модели TLCOptions на unspecified или -aMaxStackVariableSize=inf. Для примера, set_param(gcs, 'TLCOptions', ' ') или set_param(gcs, 'TLCOptions', '-aMaxStackVariableSize=inf').
Verify ‘variable-size signals’ settingМодель сконфигурирована, чтобы сгенерировать код для моделей, которые используют сигналы переменного размера.В диалоговом окне Параметры конфигурации на панели Code Generation очистите поле Support: variable-size signals (Embedded Coder).
Verify 'Single output/update function' settingМодель сконфигурирована, чтобы сгенерировать код отдельно model_output и model_update функций, а не model_step функция, которая объединяет два.В диалоговом окне Параметров конфигурации выберите Single output/update function (Simulink Coder).
Verify ‘Casting Modes’ settingМодель сконфигурирована, чтобы сгенерировать код, который явно выводит значения типов данных.В диалоговом окне Параметров конфигурации на панели Code Generation > Code Style установите значение Casting Modes (Embedded Coder) Nominal или Standards.
Verify 'Suppress generation of default cases for Stateflow switch statements if unreachable' settingМодель сконфигурирована, чтобы генерировать случаи по умолчанию для операторов switch-case в коде для Stateflow® чарты.В диалоговом окне Параметры конфигурации на панели Code Generation> Code Style очистите поле Suppress generation of default cases for Stateflow switch statements if unreachable (Embedded Coder).
Verify ‘Optimize using the specified minimum and maximum values’ settingМодель сконфигурирована, чтобы оптимизировать сгенерированный код с помощью информации о области значений, полученной из минимального и максимального заданных значений для сигналов и параметров в модели.В диалоговом окне Параметров конфигурации на панели Code Generation > Optimization очистите параметр Optimize using the specified minimum and maximum values (Embedded Coder).
Verify ‘parameters’ setting

Модель сконфигурирована, чтобы сгенерировать интерфейс C API к параметрам глобальных блоков.

В диалоговом окне Параметров конфигурации на панели Code Generation > Interface очистите Generate C API for: parameters (Simulink Coder).
Verify ‘signals’ setting

Модель сконфигурирована, чтобы сгенерировать интерфейс C API к выходам глобальных блоков.

В диалоговом окне Параметров конфигурации на панели Code Generation > Interface очистите Generate C API for: signals (Simulink Coder).
Verify ‘states’ setting

Модель сконфигурирована, чтобы сгенерировать интерфейс C API к дискретным и непрерывным состояниям.

В диалоговом окне Параметров конфигурации на панели Code Generation > Interface очистите Generate C API for: states (Simulink Coder).
Verify ‘root-level I/O’ setting

Модель сконфигурирована, чтобы сгенерировать интерфейс C API для входов и выходов корневого уровня.

В диалоговом окне Параметров конфигурации на панели Code Generation > Interface очистите Generate C API for: root-level I/O (Simulink Coder).
Verify ‘External mode’ setting

Модель сконфигурирована, чтобы сгенерировать код для интерфейса данных режима external mode.

В диалоговом окне Параметров конфигурации на панели Code Generation > Interface очистите External mode (Simulink Coder).
Verify ‘ASAP2 interface’ setting

Модель сконфигурирована, чтобы сгенерировать код для интерфейса ASAP2 данных.

В диалоговом окне Параметров конфигурации на панели Code Generation > Interface очистите ASAP2 interface (Simulink Coder).
Verify 'Generate an example main program' settingМодель не сконфигурирована, чтобы сгенерировать пример основной программы.В диалоговом окне Параметров конфигурации на панели Code Generation > Templates выберите Generate an example main program (Embedded Coder).
Verify ‘Use bitsets for storing Boolean data’ settingМодель сконфигурирована, чтобы использовать битсеты для хранения булевых данных.В диалоговом окне Параметров конфигурации на панели Code Generation > Optimization очистите параметр Use bitsets for storing Boolean data (Simulink Coder).
Verify 'Simplify array indexing' settingМодель сконфигурирована, чтобы сгенерировать код, который заменяет операции умножения на операции добавления в индексах массива при доступе к массивам в цикле.В диалоговом окне Параметров конфигурации очистите параметр Simplify array indexing (Embedded Coder).
Verify 'Rate Transition block code' settingМодель сконфигурирована, чтобы отделить Rate Transition блочный код и данные от кода модели и данных.В диалоговом окне Параметров конфигурации на панели Code Generation > Code Placement установите значение Rate Transition block code (Embedded Coder) Inline.

См. также

Ограничения параметров конфигурации Simulink

Проверяйте параметры импорта/экспорта данных

Проверяйте идентификатор: mathworks.slci.DataImportSettings

Проверьте параметры импорта/экспорта данных в строениях модели, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка проверяет, что параметры импорта/экспорта данных совместимы с инспекцией кода.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Verify 'Initial state' settingМодель сконфигурирована, чтобы загрузить начальные состояния из рабочей области, которая не совместима с инспекцией кода.В диалоговом окне Параметров конфигурации на панели Data Import/Export очистите параметр Initial state.

См. также

Ограничения параметров конфигурации Simulink

Проверьте настройки диагностики

Проверяйте идентификатор: mathworks.slci.DiagnosticsSettings

Проверьте параметры диагностики в строении модели, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка проверяет, что параметры диагностики совместимы с инспекцией кода.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Verify ‘Multitask data store’ settingМодель не сконфигурирована, чтобы генерировать ошибку, когда одна задача считывает данные из блока Data Store Memory, в который другая задача записывает данные.В диалоговом окне Параметров конфигурации на панели Diagnostics > Data Validity установите Multitask data store error.
Verify ‘Multitask rate transition’ settingМодель не сконфигурирована, чтобы генерировать ошибку, когда произошел недопустимый переход скорости между двумя блоками, работающими в многозадачном режиме.В диалоговом окне Параметров конфигурации на панели Diagnostics > Sample Time установите Multitask rate transition error.
Verify ‘Multitask conditionally executed subsystem’ settingМодель не сконфигурирована, чтобы генерировать ошибку, когда программное обеспечение Simulink обнаруживает подсистему, которая может вызвать повреждение данных или недетерминированное поведение.В диалоговом окне Параметров конфигурации на панели Diagnostics > Sample Time установите Multitask conditionally executed subsystem error.
Verify 'Underspecified initialization detection' settingМодель не сконфигурирована, чтобы инициализировать начальные условия блока с помощью упрощенного поведения. Упрощенное поведение может улучшить согласованность результатов модели.В диалоговом окне Параметров конфигурации установите Underspecified initialization detection равным Simplified.
Verify 'Non-bus signals treated as bus signals' settingМодель не сконфигурирована, чтобы сгенерировать ошибку, когда программное обеспечение Simulink неявно преобразует сигнал без шины в сигнал шины, чтобы поддержать соединение сигнала с блоком Bus Assignment или Bus Selector.В диалоговом окне Параметров конфигурации на панели Diagnostics > Connectivity установите Non-bus signals treated as bus signals error.
Verify 'Detect downcast' settingМодель не сконфигурирована, чтобы сгенерировать ошибку, когда параметр вниз происходит во время симуляции.В диалоговом окне Параметров конфигурации на панели Diagnostics > Data Validity установите Detect downcast error.
Verify 'Detect overflow' settingМодель не сконфигурирована, чтобы генерировать ошибку, когда переполнение параметра происходит во время симуляции.В диалоговом окне Параметров конфигурации на панели Diagnostics > Data Validity > Parameters установите Detect overflow error.
Verify 'Detect overflow' settingМодель не сконфигурирована, чтобы генерировать ошибку, когда переполнение сигнала происходит во время симуляции.В диалоговом окне Параметров конфигурации на панели Diagnostics > Data Validity > Signals установите Wrap on overflow error.
Verify 'Saturate on overflow' settingМодель не сконфигурирована, чтобы сгенерировать ошибку, когда значение сигнала слишком велико, чтобы быть представленным типом данных сигнала, что приводит к насыщению.В диалоговом окне Параметров конфигурации на панели Diagnostics > Data Validity > Signals установите Saturate on overflow error.
Verify 'Detect underflow' settingМодель не сконфигурирована, чтобы генерировать ошибку, когда нижнее течение параметра происходит во время симуляции.В диалоговом окне Параметров конфигурации на панели Diagnostics > Data Validity установите Detect underflow error.
Verify 'Detect loss of tunability' settingМодель не сконфигурирована, чтобы сгенерировать ошибку, когда выражение с настраиваемыми переменными уменьшается до ее численного эквивалента.В диалоговом окне Параметров конфигурации на панели Diagnostics > Data Validity установите Detect loss of tunability error.
Verify 'Unexpected backtracking' setting

Модель не сконфигурирована, чтобы сгенерировать ошибку, когда соединение графика:

  • Не имеет безусловного пути перехода в состояние или терминальное соединение

  • Имеет несколько переходных путей, ведущих к нему

В диалоговом окне Параметров конфигурации на панели Diagnostics > Stateflow установите Unexpected backtracking error.
Verify 'Invalid input data access in chart initialization' setting

Модель не сконфигурирована, чтобы сгенерировать ошибку, когда график:

  • Имеет ExecuteAtInitialization значение свойства установлено в true

  • Обращается к входным данным о переходе по умолчанию или связанных действиях входа в состояние, которые выполняются при инициализации графика

В диалоговом окне Параметров конфигурации на панели Diagnostics > Stateflow установите Invalid input data access in chart initialization error.
Verify 'No unconditional default transitions' setting Модель не сконфигурирована, чтобы генерировать ошибку, когда график не имеет безусловного перехода по умолчанию в состояние или соединение.В диалоговом окне Параметров конфигурации на панели Diagnostics > Stateflow установите No unconditional default transitions error.
Verify 'Transition outside natural parent' settingМодель не сконфигурирована, чтобы генерировать ошибку, когда график содержит переход, который закольцовывается вне родительского состояния или соединения.В диалоговом окне Параметров конфигурации на панели Diagnostics > Stateflow установите Transition outside natural parent error.
Verify ‘Unreachable execution path’ settingМодель не сконфигурирована, чтобы сгенерировать ошибку, когда конструкция графика не находится в допустимом пути выполнения.В диалоговом окне Параметров конфигурации на панели Diagnostics > Stateflow установите Unreachable execution path error.
Verify 'Undirected event broadcasts' settingМодель не настроена для генерации ошибки, когда график содержит неориентированные локальные трансляции событий.В диалоговом окне Параметров конфигурации на панели Diagnostics > Stateflow установите Undirected event broadcasts error.
Verify 'Transition action specified before condition action' settingМодель не сконфигурирована, чтобы генерировать ошибку, когда действие перехода выполняется перед действием условия в пути перехода с несколькими сегментами перехода.В диалоговом окне Параметров конфигурации на панели Diagnostics > Stateflow установите Transition action specified before condition action error.
Verify Bus signal treated as vector settingМодель не сконфигурирована, чтобы сгенерировать ошибку, когда программное обеспечение Simulink обнаруживает сигнал виртуальной шины, который используется в качестве сигнала мультиплексора. Строгое поведение шины не применяется.В диалоговом окне Параметров конфигурации на панели Diagnostics > Connectivity установите Bus signal treated as vector error.
Verify 'Allow symbolic dimension specification' settingsМодель сконфигурирована, чтобы разрешить символьную спецификацию размерности.В диалоговом окне Параметра конфигурации очистите поле Allow symbolic размерности спецификации.

См. также

Ограничения параметров конфигурации Simulink

Проверьте настройки аппаратной реализации

Проверяйте идентификатор: mathworks.slci.HardwareImplementationSettings

Проверьте параметры аппаратной реализации в строении модели, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка проверяет, что параметры аппаратной реализации совместимы с инспекцией кода.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Verify 'char' settingБитовая длина символьных данных для производственного оборудования не равна 8.В диалоговом окне Параметры конфигурации на панели Hardware Implementation выберите производственное аппаратное Device type, совместимое с настройками этой таблицы.
Verify 'short' settingДлина бита short данные для производственного оборудования не равны 16.
Verify 'int' settingДлина бита int данные для производственного оборудования не равны 32.
Verify 'long' settingДлина бита long данные для производственного оборудования не равны 32.
Verify 'float' settingБитовая длина данных с плавающей точкой для производственного оборудования не равна 32.
Verify 'double' settingДлина бита double данные для производственного оборудования не равны 64.
Verify 'pointer' settingБитовая длина данных указателя для производственного оборудования не равна 32.
Verify 'native' settingРазмер собственного слова микропроцессора для производственного оборудования не равен 32 биты.
Verify 'Signed integer division rounds to' settingМетод создания целочисленного фактора со знаком для производственного оборудования не должен выбирать целое число, которое ближе к нулю (Zero метод).
Verify 'Shift right on a signed integer as arithmetic shift' settingМетод, которым компилятор реализует сдвиг целого числа знаком вправо для производственного оборудования, не является арифметикой сдвигом вправо.
Verify ‘Support long long’ settingИспользование длинного типа данных C включено.В диалоговом окне Параметры конфигурации на панели Hardware Implementation не выбирайте Support long long.
Verify 'Test hardware is the same as production hardware' settingТестовое оборудование отличается от оборудования развертывания.В диалоговом окне Параметров конфигурации выберите Test hardware is the same as production hardware.
Verify 'Device vendor->Device type‘ settingПоставщик устройства и тип устройства ASIC/FPGA.

В диалоговом окне Configuration Parameters на панели Hardware Implementation под Test hardware не выбирайте Device vendor ASIC/FPGA.

См. также

Ограничения параметров конфигурации Simulink

Проверяйте настройки типов математики и данных

Проверяйте идентификатор: mathworks.slci.MathandDataTypesSettings

Проверьте настройки математики и типа данных в строении модели, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка проверяет, что настройки математики и типа данных совместимы с инспекцией кода.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Verify 'Implement logic signals as Boolean data (vs. double)' settingМодель сконфигурирована для реализации логических сигналов с double тип данных, а не с более эффективной памятью boolean тип данных.В диалоговом окне Параметров конфигурации выберите Implement logic signals as Boolean data (vs. double).

См. также

Ограничения параметров конфигурации Simulink

Проверяйте настройки решателя

Проверяйте идентификатор: mathworks.slci.SolverSettings

Проверьте настройки решателя в строения модели, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка проверяет, что настройки решателя совместимы с инспекцией кода.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Verify 'Type' settingМодель сконфигурирована с помощью решателя с переменным шагом.В диалоговом окне Параметров конфигурации на панели Solver установите Type Fixed-step.
Verify 'Solver' settingМодель сконфигурирована с решателем, отличным от дискретного решателя с фиксированным шагом.В диалоговом окне Параметров конфигурации на панели Solver установите Solver discrete (no continuous states) (эквивалентно FixedStepDiscrete указывается в командной строке).
Verify ‘Periodic sample time constraint’ settingМодель устанавливает Periodic sample time constraint на Specified.В диалоговом окне Параметров конфигурации на панели Solver установите Periodic sample time constraint Unconstrained или Ensure sample time independent.
Verify ‘Automatically handle rate transition for data transfer’ settingМодель сконфигурирована, чтобы вставлять скрытые блоки Rate Transition между блоками, когда обнаруживаются переходы скорости. В диалоговом окне Параметры конфигурации на панели Solver снимите флажок Automatically handle rate transition for data transfer.
Verify ‘Allow tasks to execute concurrently on target’ settingМодель параметра конфигурации <reservedrangesplaceholder1> (ConcurrentTasks) выбран. В диалоговом окне Параметры конфигурации на панели Solver снимите флажок Allow tasks to execute concurrently on target.

См. также

Ограничения параметров конфигурации Simulink

Проверяйте наличие несвязанных объектов в модели

Проверяйте идентификатор: mathworks.slci.UnconnectedObjects

Проверьте наличие несвязанных портов и линий в модели.

Описание

Эта проверка сообщает о несвязанных линиях, входных портах и выходных портах в модели или подсистеме.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Check for unconnected objectsОдна или несколько линий, входных портов или выходных портов неправильно соединены в модели или подсистеме. Это может привести к мертвому коду или скрытым блокам земли.Подключите или удалите затронутые блоки.

См. также

Ограничения атрибутов всей модели

Проверьте настройку системного целевого файла

Проверяйте идентификатор: mathworks.slci.SystemTargetFileSettings

Проверьте наличие несвязанных портов и линий в модели.

Проверьте, выбран ли для модели совместимый системный целевой файл.

Описание

Эта проверка проверяет, что System target file, выбранная для модели ert.tlc или определяется из ert.tlc.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Verify system target file settingСистемный целевой файл, выбранный для модели, не ert.tlc или ERT-производную цель.В диалоговом окне Configuration Parameters на панели Code Generation установите значение System target file (Simulink Coder) ert.tlc или ERT-производную цель.

См. также

Ограничения параметров конфигурации Simulink

Проверяйте настройку спецификации функции

Проверяйте идентификатор: mathworks.slci.FcnSpecSettings

Проверьте параметры спецификации функции, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка проверяет, совместимы эта функция настройки управления прототипом с инспекцией кода.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Check C Step Function Interface settingМодель задает пользовательские прототипы функций входа модели. Это не поддерживается для инспекции кода.В перспективе кода Simulink Editor, в редакторе Code Mappings, выберите вкладку Functions. В строке для функции step щелкните мышью на функции в столбце Function Preview. В диалоговом окне Configure C Step Function Interface очистите настройку Configure arguments for Step function prototype.

См. также

Ограничения атрибутов всей модели

Проверяйте данные машины Stateflow

Проверяйте идентификатор: mathworks.slci.StateflowMachineData

Проверьте модель на наличие данных Stateflow для возможностей машины. Данные возможности машины несовместимы с Simulink Code Inspector

Описание

Эта проверка проверяет, что модель не содержит данных Stateflow возможностей машины.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
All Stateflow data must be parented by a Stateflow chartМодель содержит данные Stateflow возможностей машины.Измените модель так, чтобы она не содержала данных Stateflow возможностей машины.

См. также

Спецификация данных (Stateflow)

Проверяйте на события машины Stateflow

Проверяйте идентификатор: mathworks.slci.StateflowMachineEvents

Проверьте модель на события Stateflow возможностей машины. События возможностей машины несовместимы с Simulink Code Inspector

Описание

Эта проверка проверяет, что модель не содержит событий Stateflow возможностей машины.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
All Stateflow events must be parented by a Stateflow chartМодель содержит события Stateflow возможностей машины.Измените модель так, чтобы она не содержала событий Stateflow возможностей машины.

См. также

События (Stateflow)

Проверяйте настройку выполнения условной входной ветви

Проверяйте идентификатор: mathworks.slci.ConditionallyExecuteInputs

Проверьте использование условного выполнения входной ветви, которое может повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимом использовании условного выполнения ветви входа.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Verify conditional input branch execution settingВыбран параметр конфигурации <reservedrangesplaceholder0> модели, но не выбраны выходы Enable local block (Simulink Coder). Модель должна включать выходы локальных блоков при использовании условного выполнения входной ветви.В диалоговом окне Параметров конфигурации на панели Optimization выберите Включить локальный блок выходов (Simulink Coder).
Проверьте, что выходы блоков Переиспользуемой или Непереиспользуемой подсистемы не являются входами для Multiport Switch блоков, когда выбран параметр конфигурации модели выполнения условной входной ветвиМодель использует выходы блоков Переиспользуемой или Непереиспользуемой подсистемы в качестве входов для блока Multiport Switch, когда выбран параметр конфигурации модели Выполнение условной входной ветви.Измените модель так, чтобы выходы блоков Переиспользуемой или Непереиспользуемой подсистемы не были входами к блоку Multiport Switch.

См. также

Ограничения атрибутов всей модели

Проверьте модель на приборные сигналы, которые соединяются с автоматически вставляемыми блоками

Проверяйте идентификатор: mathworks.slci.InstrumentedSignals

Проверьте наличие в модели приборных сигналов, которые соединяются с автоматически вставляемыми блоками.

Описание

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

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Check for instrumented signals in the model that connect to automatically inserted blocksМодель содержит приборные сигналы, которые соединяются с автоматически вставляемыми блоками.Измените модель, удалив приборные сигналы, которые соединяются с автоматически вставляемыми блоками.

См. также

Ограничения атрибутов всей модели

Проверьте структуру папки генерации кода для модели

Проверяйте идентификатор: mathworks.slci.CodeGenFolderStructure

Проверьте неподдерживаемую структуру папки генерации кода для модели.

Описание

Эта проверка проверяет, что в настройках Simulink Code generation folder structure установлено на Model Specific для модели.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Check the code generation folder structure for the modelМодель имеет неподдерживаемую структуру папки генерации кода.В Настройки на панели General установите для Code generation folder structure значение Model Specific.

См. также

Ограничения атрибутов всей модели

Проверьте неподдерживаемые параметры отображений кода

Проверяйте идентификатор: mathworks.slci.CodeMappingDefaults

Проверьте неподдерживаемые параметры соответствия кода.

Описание

Эта проверка проверяет, что Default Класс памяти используется для каждой категории элемента модели на вкладке Data Defaults редактора Отображения.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Check for unsupported Code Mapping settingsКатегории элементов модели используют неподдерживаемый параметр класса памяти на вкладке Data Defaults редактора Отображения.В редакторе Отображения на вкладке Data Defaults в разделе Code Mappings-C установите класс памяти равным Default для каждой категории элемента модели.

См. также

Ограничения атрибутов всей модели

Проверяйте аргументы модели для классов памяти

Проверяйте идентификатор: mathworks.slci.StructureStorageClass

Проверьте аргументы модели с классом памяти.

Описание

Эта проверка проверяет, что аргументы модели не имеют класса памяти.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Check model arguments for storage classesАргумент модели имеет класс памяти.Измените модель так, чтобы аргументы модели не имели классов памяти.

См. также

Ограничения атрибутов всей модели

Проверяйте использование кода в функциях MATLAB

Проверяйте идентификатор: mathworks.slci.MATLABFunctionCodeUsage

Идентифицируйте код в функциях MATLAB, который может повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит с кодом в функциях MATLAB.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Check non-inlined user defined functions with global variables in MATLAB codeИспользование не встроенных пользовательских функций с глобальными переменными не поддерживается.
  • Измените код MATLAB так, чтобы не встроенные пользовательские функции не имели глобальных переменных внутри переиспользуемой или пустой подсистемы.

  • Установите параметр модели Code interface packaging (CodeInterfacePackaging) к Nonreusable function.

Проверяйте, что не встроенные пользовательские функции в коде MATLAB содержат только один выход Не встроенные функции задают более одного выходы.Измените код MATLAB так, чтобы не встроенные пользовательские функции задавали только один выход.
Check that array subscripting in MATLAB code uses a constant index of 1 for a corresponding dimension of size 1Индекс массива в коде MATLAB использует значение индекса, отличное от 1, для соответствующего измерения массива размера 1.Измените код MATLAB так, чтобы индексирования массива использовали постоянный индекс 1 для соответствующей размерности размера 1.
Check that array indexing in MATLAB code uses a subscript that is less than or equal to the array base dimensionИндекс массива в коде MATLAB использует нижний индекс, который больше, чем базовая размерность массиваИзмените код MATLAB так, чтобы индексация массива использовала индекс, который меньше или равен основной размерности массива.
Check type argument for cast in MATLAB functionsФункция MATLAB имеет неподдерживаемый аргумент типа в функциях приведения.

Измените функцию приведения в одну из следующих форм:

  • cast(A,'newclass')

  • cast(A,'like',p)

Check that colon operators in MATLAB code have no more than 3 operandscolon (:) оператор имеет более 3 операндов.

Измените код MATLAB так, чтобы colon (:) операторы не имеют более 3-х операторов.

Check that colon operators in MATLAB code use only integer and double datacolon (:) оператор использует одинарные или char данные.

Измените код MATLAB так, чтобы colon (:) операторы используют целочисленные или двойные данные.

Check that data used in MATLAB function is of a supported data typeДанные, используемые в функции MATLAB, не имеют типа: boolean, int8, int16, int32, uint8, uint16, uint32, single, double, или скалярная шина.Измените данные как поддерживаемые типы данных.
Check that diagonal number used in a diag function in MATLAB code is constantdiag функция задает диагональное число, которое не является константой.Измените diag функция для использования постоянного диагонального числа.
Check that code in MATLAB function is of a supported dimension
  • Идентификаторы, используемые в аргументах назначения, массива, вызова функции и определении функции, имеют размерность больше 2-D.

  • Идентификаторы, используемые в любом другом контексте, являются вектором, матрицей или имеют размерность, больше 2-D.

Измените идентификаторы, чтобы они были поддерживаемыми размерностями.
Check that if statements in MATLAB code use conditions that are scalarif оператор использует условие, которое не скаляром.Измените код MATLAB так, чтобы if операторы используют скаляр условия.
Check for nonempty brackets in MATLAB codeКод MATLAB содержит пустые скобки.Измените код MATLAB так, чтобы не было пустых скобок.
Check that for statements in MATLAB code have index ranges that are mono incremental colon expressionsКод MATLAB содержит for операторы с областями значений индексов, которые не являются моно инкрементными выражениями двоеточия.Измените код MATLAB так, чтобы for операторы имеют области значений индексов, которые являются моно инкрементными выражениями двоеточия.
Check that for statements in MATLAB code have index range values that are literal const integersКод MATLAB содержит for операторы со значениями области значений индексов, которые не являются литеральными целыми числами.Измените код MATLAB так, чтобы for операторы имеют значения области значений индексов, которые являются литералами const целыми числами.
Check that for statements in MATLAB code have scalar index valuesКод MATLAB содержит for операторы с некалярными значениями индекса.Измените код MATLAB так, чтобы for операторы имеют скалярные значения индекса.
Check that data defined in MATLAB function is of a double or single data typeОперанды оператора степени через точку не имеют тип single или double.Измените данные на поддерживаемый тип данных single или double.
For MATLAB root function, do not specify coder.inline directive or set coder.inline directive to 'always'. For user defined MATLAB functions, explicitly set coder.inline directive to 'always' or 'never'Функция MATLAB не использует поддерживаемые coder.inline директива.

Изменение использования coder.inline директива.

Для корневых функций MATLAB, если coder.inline директива задана, она должна быть установлена на always.

Для пользовательских функций MATLAB, coder.inline директива должна быть явно установлена на always или never.

Check that math functions in MATLAB code use only integer and floating-point dataМатематические функции в коде MATLAB используют логические данные типа.Измените код MATLAB так, чтобы математические функции использовали только целое число или двойные данные.
Check that no code in MATLAB functions has missing data type informationФункция MATLAB имеет отсутствующий тип данных информацию.

Измените функцию, чтобы исключить код с отсутствующим типом данных информацией.

Примечание

Если ваш код MATLAB не выполнит эту проверку, это может быть из-за недоступности кода. Исправьте любое mlint предупреждение, связанное с недоступным кодом для устранения несовместимости.

Check that no code in MATLAB functions has missing dimension informationФункция MATLAB имеет отсутствующую информацию о размерности.

Измените функцию, чтобы исключить код с отсутствующей информацией о размерности.

Примечание

Если ваш код MATLAB не выполнит эту проверку, это может быть из-за недоступности кода. Исправьте любое mlint предупреждение, связанное с недоступным кодом для устранения несовместимости.

Check that all function calls in MATLAB code resolve to a known function definitionФункция MATLAB имеет вызов функции, который не разрешается к известному определению функции.Измените функцию MATLAB, чтобы исключить вызовы функций с неизвестным разрешением функции.
Check that operators used in MATLAB function do not have operands with mixed data typeОператор в функции MATLAB имеет операнды со смешанным типом данных.Измените функцию, чтобы избежать использования операторов с операторами смешанного типа данных.
Check that the ‘Loop unrolling threshold’ does not result in partially unrolled loops in the generated code when using matrix operations in MATLAB codeПри использовании матричных операций Loop unrolling threshold может привести к частичному развертыванию циклов в сгенерированном коде.Измените Loop unrolling threshold, чтобы сгенерировать код без частично развернутых циклов для матричных операций.
Check that conditional initialization of persistent variables uses an 'if' statement with a single isempty (persistent) or ~isempty (persistent) conditionУсловная инициализация стойкой переменной не использует if оператор с одной isempty(persistent) или ~isempty(persistent) состояние.Измените if оператор для использования одной isempty(persistent) или ~isempty(persistent) состояние.
Check that there is only one initialization statement of a persistent variable in ‘if’ statement bodyif тело оператора содержит несколько операторов инициализации для постоянной переменной.Измените код MATLAB так, чтобы условная инициализация персистентных переменных содержала один оператор в if тело оператора.
Check that switch statements in MATLAB code do not have case expressions containing a cell arrayswitch оператор имеет выражение случая, содержащее массив ячеек.Измените код MATLAB так, чтобы switch операторы не имеют выражений случая, содержащих массив ячеек.
Check that switch statements in MATLAB code use the same scalar integer type for all conditionsswitch оператор не использует тот же скалярный целый тип для условий switch и case.Измените код MATLAB так, чтобы switch операторы имеют условия, которые используют тот же скалярный целый тип.
Check that operators and functions in MATLAB code have supported operand dimensions colon (:) функция или операция деления в коде MATLAB использует неподдерживаемые некалярные операнды.Измените функцию, чтобы использовать скалярные операнды.
Check for unsupported MATLAB code in MATLAB functionsФункция MATLAB содержит неподдерживаемый код MATLAB.Измените функцию, чтобы удалить использование неподдерживаемого кода MATLAB.
Check usage of recursive functions in MATLAB codeКод MATLAB задает рекурсивные функции.Измените код MATLAB так, чтобы он не задавал рекурсивные функции.
Check that coder.ceval in MATLAB code does not specify '-global' optionИспользование coder.ceval задает -global опция.Изменение coder.ceval чтобы удалить -global опция.
Check that coder.ceval in MATLAB code does not specify layout optionИспользование coder.ceval задает layout опция.Изменение coder.ceval чтобы удалить layout опция.
Check usage of function call outputs in MATLAB codeПодфункции в выходах функции вызова кода MATLAB.Измените код MATLAB так, чтобы только функция верхнего уровня имела выходы вызова функции.
Check usage of inner functions in MATLAB codeКод MATLAB задает внутренние функции.Измените код MATLAB так, чтобы он не задавал внутренние функции.
Check that coder.target in MATLAB code contains a non-empty targetИспользование coder.target содержит пустой целевой объект.Измените код MATLAB так, чтобы coder.target функция задает непустое целевое устройство.

См. также

Проверяйте сообщения анализатора кода MATLAB

Проверяйте идентификатор: mathworks.slci.MATLABCodeAnalyzer

Проверьте функции MATLAB на %#codegen директива, сообщения КОД MATLAB Analyzer и идентификаторы сообщений обоснования.

Описание

Эта проверка сообщает о %#codegen директивы, сообщения КОД MATLAB Analyzer и идентификатор сообщения обоснования найдены в функциях MATLAB и блоках MATLAB Function.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Check MATLAB code used in MATLAB Function blocksПроблемы в MATLAB Function блоке.
  • Реализуйте рекомендации КОД MATLAB Analyzer.

  • Обоснование линии кода с помощью %#ok комментарий.

  • Укажите обоснование путем добавления идентификатора сообщения к %#ok комментарий.

Check MATLAB functions defined in Stateflow chartsПроблемы с функцией MATLAB, используемой в диаграммах Stateflow.
  • Реализуйте рекомендации КОД MATLAB Analyzer.

  • Обоснование линии кода с помощью %#ok комментарий.

  • Укажите обоснование путем добавления идентификатора сообщения к %#ok комментарий.

Check called MATLAB functionsПроблемы в называемых функциях MATLAB.
  • Добавить %#codegen директива, если отсутствует.

  • Реализуйте рекомендации КОД MATLAB Analyzer.

  • Обоснование линии кода с помощью %#ok комментарий.

  • Укажите обоснование путем добавления идентификатора сообщения к %#ok комментарий.

См. также

Проверяйте на неподдерживаемые блоки

Проверяйте идентификатор: mathworks.slci.UnsupportedBlocks

Проверьте наличие блоков, которые не поддерживаются Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает блоки, которые не поддерживаются Simulink Code Inspector.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Check for blocks not supported by Simulink Code Inspector

Один или несколько блоков в модели не поддерживаются для инспекции кода.

Примечание

Поддерживаемые блоки перечислены в Поддерживаемые блоки - По категориям и Поддерживаемые Маски Блоки, а также могут быть просмотрены в slcilib библиотека блоков.

Возможные действия включают:

  • Замените неподдерживаемый блок на поддерживаемый.

  • Замените неподдерживаемый блок эквивалентной комбинацией поддерживаемых блоков.

  • Замените неподдерживаемый блок на блок S-Function, созданный с помощью Legacy Code Tool.

  • Если один или несколько неподдерживаемых блоков не могут быть удалены, используйте ссылочные модели, чтобы изолировать неподдерживаемые блоки (блоки ) и/или использовать рабочий процесс частичной верификации, который опускает неподдерживаемые блоки (блоки ).

Возможности и ограничения

Эту проверку можно запустить на моделях библиотеки.

Проверка во время редактирования

Эта проверка поддерживается проверкой во время редактирования.

См. также

Проверьте класс памяти для переменных рабочей области

Проверяйте идентификатор: mathworks.slci.WorkspaceVarUsage

Проверьте наличие переменных рабочей области, на которые ссылается модель.

Описание

Эта проверка сообщает о переменных рабочей области, которые используют неподдерживаемые классы памяти.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Check storage class for workspace variables referenced by the model

Переменные рабочей области, на которые ссылается модель, не поддерживаются по одной из следующих причин:

  • Значение Type пользовательского класса памяти не установлено на Unstructured.

  • Пользовательский класс памяти может быть повторно использован.

Примечание

В Simulink или модуле упаковочного инструмента (MPT) классы поставляются с MathWorks® код, инспекция кода поддерживается для следующих классов памяти:

  • Global

  • Const

  • Volatile

  • ConstVolatile

  • Define

  • ImportedDefine

  • ExportTofile

  • GetSet

Измените модель так, чтобы модель не ссылалась на переменные рабочей области или установите для переменной рабочей области значение Type пользовательского класса памяти Unstructured.

См. также

Ограничения атрибутов всей модели

Проверяйте на шаги расчета в модели

Проверяйте идентификатор: mathworks.slci.SampleTimesUsage

Проверьте выборочные временные характеристики, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает образцы переменного, непрерывного, объединения, экспортированных дискретных или асинхронных шагов расчета.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Check sample timesМодель использует непрерывный, асинхронный, явный дискретный разбиение, управляемый данными, объединение, экспортированные дискретные или переменные шаги расчета. Это не поддерживается для инспекции кода.Измените модель, чтобы использовать поддерживаемые шаги расчета.
Check for explicit partitionsМодель содержит явные разделы.Измените модель так, чтобы она не содержала явных разделов.

См. также

Ограничения атрибутов всей модели

Проверяйте, что неподдерживаемые блоки Signal Conversion автоматически вставляются в сигналы, входящие во входные порты блоков

Проверяйте идентификатор: mathworks.slci.HiddenBufferBlock

Проверьте наличие скрытых блоков преобразования сигналов, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о скрытых блоках преобразования сигналов, которые были автоматически вставлены в сигналы, входящие в порты входа блоков.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Verify no unsupported Signal Conversion blocks are automatically inserted on signals entering block inportsСкрытый блок преобразования сигналов был автоматически вставлен в сигнал, входящий в блок. Блоки преобразования скрытых сигналов не поддерживаются для инспекции кода.Вручную вставьте блок Signal Conversion на сигнал, входящий в порт блока, и сконфигурируйте блок Signal Conversion, чтобы исключить из сокращения блока.

См. также

Ограничения атрибутов всей модели

Проверяйте на использование инструментирования с фиксированной точкой

Проверяйте идентификатор: mathworks.slci.MinMaxLogging

Проверьте использование инструментирования с фиксированной точкой, которое может повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимости инструментирования с фиксированной точкой.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Verify usage of fixed-point instrumentationМодель параметра конфигурации <reservedrangesplaceholder1> (BlockReduction) выбирается, и параметр фиксированной точки Fixed-point instrumentation mode (MinMaxOverflowLogging) задается значение, отличное от Force off. Одновременное использование сокращения блоков и инструментирования с фиксированной точкой не поддерживается для инспекции кода.Откройте Fixed-Point Tool и отключите инструментирование с фиксированной точкой для модели.

См. также

Ограничения атрибутов всей модели

Проверяйте использование синтезированных локальных хранилищ данных

Проверяйте идентификатор: mathworks.slci.SynthLocalDSM

Проверьте наличие в рабочем пространстве модели сигнальных объектов, на которые ссылаются как на синтезированные локальные хранилища данных блоки Data Store Read или Data Store Write.

Описание

Эта проверка обновляет диаграмму модели и проверяет синтезированное использование локального хранилища данных. Если в рабочем пространстве модели есть сигнальные объекты, на которые ссылаются как на синтезированные локальные хранилища данных блоки Data Store Read или Data Store Write, Simulink создает скрытый блок Data Store Memory на корневом уровне модели. Эта модель несовместима с инспекцией кода.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Verify synthesized local data store usageОбъекты сигнала упоминаются как синтезированные локальные хранилища данных блоками Data Store Read или Data Store Write. Избегайте использования сигнальных объектов, которые указаны как синтезированные локальные хранилища данных блоком Data Store Read или Data Store Write. Как возможная работа вокруг, создайте графические блоки Data Store Memory, чтобы указать хранилища данных.

См. также

Ограничения атрибутов всей модели

Проверьте модель на скомпилированный и графический блок отсортированный порядок

Проверяйте идентификатор: mathworks.slci.BlockSortedOrder

Проверяет, чтобы скомпилированный список блоков модели следовал графическому сортированному порядку.

Описание

Эта проверка обновляет диаграмму модели и идентифицирует блоки в скомпилированном блочном списке модели, которые не совпадают с графическим порядком сортировки блоков.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Check model for compiled and graphical block sorted order Блоки в скомпилированном блочном списке не следуют графическому сортированному порядку в модели.Обратитесь в службу технической поддержки MathWorks, чтобы сообщить об этой проблеме.

См. также

Ограничения атрибутов всей модели

Проверяйте настройку порога разворачивания цикла

Проверяйте идентификатор: mathworks.slci.RollThreshold

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

Описание

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

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Verify loop unrolling threshold settingМодель сконфигурирована с Loop unrolling threshold (Simulink Coder), которая может привести к частичному развертыванию циклов в сгенерированном коде.В диалоговом окне Параметры конфигурации на панели Optimization установите значение Loop unrolling threshold (Simulink Coder) в Recommended Action разделе окна Model Advisor.

См. также

Ограничения атрибутов всей модели

Проверяйте использование глобальных хранилищ данных

Проверяйте идентификатор: mathworks.slci.GlobalDSM

Проверяет, что блоки глобальных данных Store Memory используют inlined параметры с нерегулируемыми начальными значениями.

Описание

Эта проверка обновляет диаграмму модели и проверяет использование глобальных данных хранилища. Если ваша модель имеет глобальные данные блоков Store с параметрами, которые не inlined или имеют настраиваемые начальные значения, это несовместимо с инспекцией кода.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Verify global data store usageПараметр конфигурации <reservedrangesplaceholder1> (Simulink Coder) (DefaultParameterBehavior) не установлено в Inlined.Установите Default parameter behavior (Simulink Coder) в Inlined.
Initial value (InitialValue) не должен быть настраиваемым.Исправьте настройку Initial value.

См. также

Ограничения атрибутов всей модели

Проверяйте глобальные хранилища данных "имя тени

Проверяйте идентификатор: mathworks.slci.GlobalDSMShadow

Проверяет, что блоки глобальных данных Store Memory не затенены блоками Local Data Store Memory.

Описание

Эта проверка обновляет диаграмму модели и проверяет тень имен хранилища глобальных данных. Если у вас есть блок глобальных данных Store Memory, который затенен локальным блоком Data Store Memory, он несовместим с инспекцией кода.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Verify global data store’s name shadowГлобальные данные памяти хранилища затенены локальным блоком памяти хранилища данных.Удалите блоки памяти глобальных данных хранилища, которые затенены блоками памяти локального хранилища данных.

См. также

Ограничения атрибутов всей модели

Проверяйте места назначения блоков If и Switchcase

Проверяйте идентификатор: mathworks.slci.SeparateOutputAndUpdate

Проверьте использование блоков If и Switch Case, подключенных к подсистемам Action, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и проверяет использование блоков If и Switch Case, подключенных к подсистемам Action.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Check destination Action subsystem of If and Switchcase blocks

Подсистемы действий, подключенные к тем же блокам If или Switch Case, не делают одного из следующих:

  • Все объединяют их выход и обновления кода.

  • Все разделяют их выход и обновления кода.

Измените перечисленные подсистемы Action так, чтобы все они объединяли свои выходные данные и обновления кода. Поместите блок Signal Conversion на сигналы, оставляющие входные порты в подсистемах Action. Выберите параметры блоков Exclude this block from ‘Block reduction’ optimization преобразования сигналов, чтобы исключить его из сокращения блоков.

См. также

Ограничения атрибутов всей модели

Проверьте наличие корневых блоков Outport, не имеющих автоматических классов памяти

Проверяйте идентификатор: mathworks.slci.PassReuseOutputArgsAs

Проверьте использование корневых блоков вывода в ссылочных моделях, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и проверяет использование корневых блоков вывода в ссылочных моделях.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Verify that the storage class of root outports is supportedPass reusable subsystem outputs as: не установлено на Structure reference когда корневые выходные порты в ссылочных моделях имеют не автоматические классы памяти.Установите Pass reusable subsystem outputs as: значение Structure reference.

См. также

Ограничения атрибутов всей модели

Проверьте блоки Terminator, соединенные с выходами блоков Модель-ссылка

Проверяйте идентификатор: mathworks.slci.OutportTerminator

Проверьте использование блоков терминаторов строки, подключенных к блокам модели-ссылки, что может повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и проверяет использование блоков терминаторов строки, соединенных с блоками модели-ссылки.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Check for Model Reference block connectivityКаждый выходной порт модели-ссылки блока соединяется с блоком терминатора строки.Рассмотрите комментарий к блоку модели-ссылки.

См. также

Ограничения атрибутов всей модели

Проверяйте на неподдерживаемое распространение начальных значений условий

Проверяйте идентификатор: mathworks.slci.FirstInitICPropagation

Проверьте, распространяется ли какой-либо блок начальное условие во время первой инициализации.

Описание

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

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Check for unsupported propagation of initial condition valuesБлок распространяет начальное условие во время первой временной инициализации.Измените модель так, чтобы блок не распространял начальное условие во время первой инициализации.

См. также

Ограничения атрибутов всей модели

Проверяйте имена замещения типов данных

Проверяйте идентификатор: mathworks.slci.DataTypeReplacementName

Проверьте, использует ли модель Simulink.AliasType типы для имен замещения.

Описание

Инспекция кода поддерживается для моделей, которые используют только Simulink.AliasType типы для имен замещения.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Identify replacement names that are not of type Simulink.AliasTypeВ Data Type Replacement таблице модель использует имена замещения, которые не имеют типа Simulink.AliasType.В диалоговом окне Configuration Parameters на панели Code Generation > Data Type Replacement установите имя замены на Simulink.AliasType тип.

См. также

Проверяйте несколько шагов расчета в модели, используемой в качестве цели модели-ссылки

Проверяйте идентификатор: mathworks.slci.RefModelMultirate

Описание

Эта проверка обновляет диаграмму модели и проверяет, что модели, используемые в качестве целей модели-ссылки, не имеют нескольких шагов расчета.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Check for sample times in model used as model reference targetМодель, используемая в качестве цели модели-ссылки, имеет несколько шагов расчета.Измените модель так, чтобы она имела один шаг расчета.

См. также

Проверьте класс памяти GetSet для переменных рабочей области

Проверяйте идентификатор: mathworks.slci.GetSetVarUsage

Описание

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

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Check storage class for workspace variables referenced by the model

Для переменной рабочей области, которая использует GetSet пользовательский класс памяти:

  • В пользовательском классе памяти не определен файл заголовка.

  • Пользовательский тип данных класса памяти является bus или struct.

Изменение GetSet переменные рабочей области класса памяти для использования поддерживаемой спецификации класса памяти.

См. также

Проверяйте Обрабатывайте каждую дискретную скорость как отдельную настройку задачи

Проверяйте идентификатор: mathworks.slci.EnableMultiTasking

Описание

Эта проверка обновляет диаграмму модели и проверяет, что параметр Treat each discrete rate as a separate task выбран для модели с несколькими дискретными скоростями.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Verify ‘Treat each discrete rate as a separate task’ settingМногоскоростная модель сконфигурирована для выполнения с одной задачей.В диалоговом окне Параметры конфигурации на панели Solver выберите Treat each discrete rate as a separate task.

См. также

Ограничения параметров конфигурации Simulink

Проверьте модель на комментарии к блокам

Проверяйте идентификатор: mathworks.slci.CommentedBlocks

Описание

Эта проверка обновляет диаграмму модели и проверяет, что модель не содержит блоков с комментариями.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Check for commented out blocks in the modelМодель содержит блок, который комментируется. Измените модель, удалив блоки с комментариями.

См. также

Проверьте модель на void_void подсистемы, которые используют то же имя функции

Проверяйте идентификатор: mathworks.slci.VVSubSystemName

Описание

Эта проверка обновляет диаграмму модели и проверяет, что неинлинфицированные подсистемы с интерфейсами вызова функции void-void используют уникальные имена функции.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Check function names used by void_void subsystems in the modelМодель содержит void_void подсистемы, которые используют то же имя функции.

Измените void_void подсистемы в модели, чтобы использовать уникальные имена функции.

См. также

Ограничения атрибутов всей модели

Проверяйте блоки интерполяционной таблицы n-D на несовместимый тип данных точек по оси Х

Проверяйте идентификатор: mathworks.slci.LookupndBreakpointsDataType

Описание

Эта проверка обновляет диаграмму модели и проверяет, что тип данных точек по оси Х и тип входных данных блока Lookup Table n-D совпадают.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Check n-D Lookup Table blocks for incompatible breakpoint data typeBreakpoints > Data Type не использует тот совпадающий тип данных, что и вход блока.Измените типы данных, которые будут совпадать. Или рассмотрите установку Breakpoints > Data Type на Inherit: Same as corresponding input.

Проверьте модель на переиспользуемые подсистемы, которые используют те же функциональные интерфейсы

Проверяйте идентификатор: mathworks.slci.ReuseSubSystemLibrary

Описание

Эта проверка обновляет диаграмму модели и проверяет, что переиспользуемые подсистемы с тем же интерфейсом функции из тех же библиотечных блоков.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Check the model for reusable subsystems with the same function interfaces

Существуют переиспользуемые подсистемы с тем же интерфейсом функции, но из разных библиотечных блоков.

Измените модель так, чтобы переиспользуемые подсистемы с тем же интерфейсом функции исходили из тех же библиотечных блоков.

Проверяйте использование общих синтезированных локальных хранилищ данных

Проверяйте идентификатор: mathworks.slci.SharedSynthLocalDSM

Описание

Эта проверка обновляет диаграмму модели и проверяет, что нет неподдерживаемого использования общих синтезированных памятей локального хранилища данных.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Check for usage of shared synthesized local data stores

В рабочем пространстве модели есть объекты сигнала, на которые ссылаются как на синтезированные локальные хранилища данных по Data Store Read или Data Store Write блокам в этой модели.

Избегайте использования сигнальных объектов в рабочем пространстве модели, которые ссылаются как синтезированные локальные хранилища данных Data Store Read или Data Store Write блоками. Рассмотрите создание графических блоков Data Store Memory для задания этих хранилищ данных.

Проверяйте использование блоков Source

Проверяйте идентификатор: mathworks.slci.SourcesBlocksUsage

Проверьте использование блоков Sources, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в блоках Sources.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие

Проверяйте Inport блоки

Примечание

Это проверит затененные инпорты, если у вас есть какие-либо в модели.

Блок не может задать сигналы переменного размера. Параметры блоков Variable-size signal (VarSizeSig) установлено в Yes.Установите Variable-size signal значение No.
Параметры блоков Signal Type (SignalType) установлено в complex.Установите Signal Type значение real или auto.
Параметры блоков Sampling Mode (SamplingMode) установлено в Frame based.Установите Signal Type значение Sample based или auto.
Для корневых блоков inport, которые используют объект шины, блокируйте параметр Output as nonvirtual bus (BusOutputAsStruct) не выбран (установлено на off).Для каждого образца выберите Output as nonvirtual bus.
Корневой входной порт в модели-ссылке не соединяется с невиртуальным блоком.Соедините корневые входные порты в ссылочных моделях с по крайней мере одним невиртуальным блоком.
Для входных портов в триггируемых подсистемах Latch input by delaying outside signal (LatchByDelayingOutsideSignal) выбран (установлено в on).Очистить Latch input by delaying outside signal. Чтобы сохранить поведение фиксации, реструктуризируйте модель, поместив блок Unit Delay перед блоком входа в родительскую схему.
Inport является блоком In Bus Element.Вместо блока In Bus Element используйте блок Inport с блоком Bus Selector.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Constant блокиПараметры блоков Constant value (Value) пуст, нефинитен, использует выбор области значений или переменную индексацию на элементах структур MATLAB, сложен или имеет две или более размерности.Исправьте настройку Constant value.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Ground блокиПорт блока имеет массивы шин или шин с элементами, которые являются массивами шин.Исправьте указанный блочный порт так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.

См. также

Проверяйте использование блоков Signal Routing

Проверяйте идентификатор: mathworks.slci.SignalRoutingBlocksUsage

Проверьте использование блоков Signal Routing, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в блоках Signal Routing.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Проверяйте Bus Creator блокиИмена сигналов в блоке Bus Creator (Inputs) не совпадают с именами входных сигналов для блока (InputSignalNames).Измените указанный блок Bus Creator, чтобы он соответствовал Inputs и InputSignalNames.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Bus Selector блоки

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Bus Assignment блоки

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Data Store Memory блокиПараметры блоков Initial value (InitialValue) пуст, нефинитен, использует выбор области значений или переменную индексацию на элементах структур MATLAB, сложен или имеет две или более размерности.Исправьте настройку Initial value.
Параметры блоков Signal type (SignalType) установлено в complex. Комплексные числа не поддерживаются для инспекции кода. Во время редактирования флажки этого условия.Установите Signal type значение auto или real.
Параметры блоков устанавливаются равным warning или none. Во время редактирования флажки этого условия.Установите параметры блоков Detect Write After Write равной error.

Память хранилища данных содержит массивы шин или шин с элементами, которые являются массивами шин.

Исправьте указанный блок памяти хранилища данных.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный блок памяти хранилища данных.
Проверяйте Data Store Read блокиБлок выполняет прерывистый выбор на массивах datastore.Измените выделенный фрагмент на поддерживаемую форму.
Блок использует индексы с скобками, чтобы выполнить выбор на массивах datastore.Измените выбор массива datastore в блоках Data Store Read, чтобы не использовать индексы с скобками.
Порт блока имеет массивы шин или шин с элементами, которые являются массивами шин.Исправьте указанный блочный порт так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Data Store Write блокиБлок выполняет прерывистый выбор на массивах datastore.Измените выделенный фрагмент на поддерживаемую форму.
Блок использует индексы с скобками, чтобы выполнить выбор на массивах datastore.Измените выбор массива datastore в блоках Data Store Write, чтобы не использовать индексы с скобками.
Порт блока имеет массивы шин или шин с элементами, которые являются массивами шин.Исправьте указанный блочный порт так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте From блокиПорт блока имеет массивы шин или шин с элементами, которые являются массивами шин.Исправьте указанный блочный порт так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Goto блокиПорт блока имеет массивы шин или шин с элементами, которые являются массивами шин.Исправьте указанный блочный порт так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Merge блокиAllow unequal port widths (AllowUnequalInputPortWidths) выбран. Во время редактирования флажки этого условия.Очистите параметр Allow unequal port widths.
Input port offsets установлено на неподдерживаемое значение. Во время редактирования флажки этого условия.Установите Input port offsets значение [].
Источник для блока должен не быть включенной или подсистемой действий или является блоком с InitialConditions функция.Измените модель так, чтобы источники блоков слияния были либо включены, либо подсистемы действий, либо блоки без InitialConditions функций.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Switch блокиПервый и третий порты входа и выхода порт не имеют совпадающего типа данных.Измените порты данных так, чтобы они имели совпадающий тип данных. Рассмотрите выбор параметров блоков Require all data port inputs to have the same data type.
Параметры блоков Integer rounding mode (RndMeth) установлено на неподдерживаемое значение. Во время редактирования флажки этого условия.Установите Integer rounding mode значение Zero или Floor.
Параметры блоков Allow different data input sizes (AllowDiffInputSizes) выбран. Во время редактирования флажки этого условия.Очистите параметр Allow different data input sizes.
Default parameter behavior (DefaultParameterBehavior) установлено в Inlined и источник Inport 2 является постоянным.Измените модель так, чтобы источник входа не был постоянным.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Multiport Switch блокиПорты входа и выхода данных не имеют совпадающего типа данных.Измените порты данных так, чтобы они имели совпадающий тип данных. Рассмотрите выбор параметров блоков Require all data port inputs to have the same data type.
Указаны индексы портов данных, и вход имеет более одного значения.Измените строение порта данных так, чтобы на вход было задано только одно значение.
Сигнал порта данных является несмежным.Измените сигнал порта данных так, чтобы он был непрерывным.
Сигнал порта данных соединяется с блоком, который выбирает или переупорядочивает входные сигналы.Измените сигнал порта данных так, чтобы он не был подключен к блоку, который выбирает или переупорядочивает входные сигналы. Рассмотрите возможность вставки блока Signal Conversion в несмежный порт данных.
Параметры блоков Integer rounding mode (RndMeth) установлено на неподдерживаемое значение.Установите Integer rounding mode значение Zero или Floor.
Параметры блоков Allow different data input sizes (AllowDiffInputSizes) выбран.Очистите параметр Allow different data input sizes.
Default parameter behavior (DefaultParameterBehavior) установлено в Inlined и источник Inport 1 является постоянным.Измените модель так, чтобы источник Входа 1 не был постоянным.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Mux блокиПорт блока имеет массивы шин или шин с элементами, которые являются массивами шин.Исправьте указанный блочный порт так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Demux блокиПорт блока имеет массивы шин или шин с элементами, которые являются массивами шин.Исправьте указанный блочный порт так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Selector блокиПорт индекса не является поддерживаемым типом данных.Измените порт индекса так, чтобы он был типа данных int8, int16, int32, uint8, uint16, или uint32.
Index Option (IndexOptionArray) установлено в Starting and ending indices (port)Установите Index Option значение, отличное от Starting and ending indices (port).
Number of input dimensions (NumberOfDimensions) более 1 и данные порта индекса соединяются с блоком, который выбирает или переупорядочивает вход.Рассмотрите вставку блока Signal Conversion в порт с индексами или изменение данных порта с индексами на смежные.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Vector Concatenate блоки

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.

Проверка во время редактирования

Эта проверка поддерживается проверкой во время редактирования. Однако проверка во время редактирования не помечает нарушения всех ограничений этой проверки. В предыдущей таблице явно упоминаются условия нарушения ограничений, при которых флаги проверки во время редактирования.

См. также

Проверяйте использование блоков Математические операции

Проверяйте идентификатор: mathworks.slci.MathOperationsBlocksUsage

Проверьте использование блоков Математические операции, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в блоках Математические операции.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Проверяйте Абсолютные блокиВходной или выходной порт имеет тип int8 или int16.Измените порт, который будет иметь тип данных double, single, uint8, uint16, int32, uint32, или boolean.
Входные и выходные порты не имеют совпадающего типа данных.Измените типы данных портов, чтобы они совпадали.
Параметры блоков Integer rounding mode (RndMeth) установлено на неподдерживаемое значение. Во время редактирования флажки этого условия.Установите Integer rounding mode значение Zero или Floor.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Bias блокиВходные и выходные порты не имеют совпадающего типа данных.Измените типы данных портов, чтобы они совпадали.
Bias (Bias) является пустым, нефинитным, использует выбор области значений или переменную индексацию на элементах структур MATLAB, является комплексным или имеет две или более размерности.Исправьте настройку Bias.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Gain блокиВходные и выходные порты не имеют совпадающего типа данных.Измените типы данных портов, чтобы они совпадали.
Параметры блоков Gain (Gain) пуст, нефинитен, использует выбор области значений или переменную индексацию на элементах структур MATLAB, сложен или имеет две или более размерности.Исправьте настройку Gain.
Параметры блоков Parameter data type (ParamDataTypeStr) не использует тот совпадающий тип данных, что и вход блока Gain.Измените блок Gain, чтобы использовать тот совпадающий тип данных для его входа и параметра. Рассмотрите установку Parameter data type на Inherit: Same as input.
Параметры блоков Multiplication (Multiplication) не установлено в Element-wise(K.*u), Matrix(K*u), Matrix(u*K), или Matrix(K*u)(u vector).

Установите Multiplication значение Element-wise(K.*u), Matrix(K*u), Matrix(u*K), или Matrix(K*u)(u vector).

Только single или double типы данных поддерживаются для Matrix(K*u), Matrix(u*K), или Matrix(K*u)(u vector) методы умножения.

Параметры блоков Integer rounding mode (RndMeth) установлено на неподдерживаемое значение. Во время редактирования флажки этого условия.Установите Integer rounding mode значение Zero или Floor.
Параметры блоков Sample Time (SampleTime) устанавливается в постоянный шаг расчета.Установите Sample Time явное, непостоянное значение.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Математические блокиВходные и выходные порты не имеют совпадающего типа данных.Измените типы данных портов, чтобы они совпадали.
Function (Operator) установлено неподдерживаемое значение: conj или hermitian.Установите Function одно из следующих значений: exp, log, 10^u, log10, magnitude^2, square, transposepow, reciprocal, hypot, rem, или mod.
Параметры блоков Integer rounding mode (RndMeth) установлено на неподдерживаемое значение. Во время редактирования флажки этого условия.Установите Integer rounding mode значение Zero или Floor.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Product блокиВходные и выходные порты не имеют совпадающего типа данных.Измените типы данных портов, чтобы они совпадали.
Multiplication (Multiplication) установлено в Matrix (*) и Saturate on integer overflow (SaturateOnIntegerOverflow) выбран (установлено в on). Во время редактирования флажки этого условия.Очистите параметр Saturate on integer overflow.

Параметры блоков Number of inputs (inputs) не установлено в 2, **, /*, */, //, или / когда оба из следующих значений равны true:

  • Inport Signal type является матрицей.

  • Параметры блоков продукта установлены в Matrix (*).

Во время редактирования флажки этого условия.

Установите Number of inputs значение 2, **, /*, */, //, или / если оба из следующих значений равны true:

  • Inport Signal type является матрицей.

  • Параметры блоков продукта установлены в Matrix (*).

Параметры блоков устанавливаются равным Element-wise(.*) когда входной Signal type является вектором или матрицей, и Number of inputs (inputs) установлено в 1, * или /.Если параметрам блоков Multiplication задано значение Element-wise(.*) и входной Signal type является вектором или матрицей, не устанавливайте Number of inputs на 1, * или /.
Параметры блоков устанавливаются равным Element-wise(.*) когда входной Signal type является скаляром, и Number of inputs (inputs) не установлено в 1, * или /.Если параметрам блоков Multiplication задано значение Element-wise(.*) и входной Signal type является скаляром, затем установите Number of inputs на 1, * или /.
Параметры блоков Integer rounding mode (RndMeth) установлено на неподдерживаемое значение. Во время редактирования флажки этого условия.Установите Integer rounding mode значение Zero или Floor.
Параметры блоков Sample Time (SampleTime) устанавливается в постоянный шаг расчета.Установите Sample Time явное, непостоянное значение.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте блоки суммыВходные и выходные порты не имеют совпадающего типа данных.Измените типы данных портов, чтобы они совпадали.
Параметры блоков Sum over (CollapseMode) не установлено в All dimensions.Установите Sum over значение All dimensions.
Параметры блоков Accumulator data type (AccumDataTypeStr) не использует тот совпадающий тип данных, что и входы блоковИзмените блок, чтобы использовать тот совпадающий тип данных для его входов и аккумулятора. Рассмотрите установку Accumulator data type на Inherit: Same as first input.
Параметры блоков Integer rounding mode (RndMeth) установлено на неподдерживаемое значение. Во время редактирования флажки этого условия.Установите Integer rounding mode значение Zero или Floor.
Параметры блоков Sample Time (SampleTime) устанавливается в постоянный шаг расчета.Установите Sample Time явное, непостоянное значение.
Блок имеет один векторный вход и Saturate on integer overflow параметра (SaturateOnIntegerOverflow) выбран (установлено в on).Очистите параметр Saturate on integer overflow.

Нарушает ограничение, которое применяется ко всем блокам:

Исправьте указанный входной или выходной порт блока.
Проверяйте блоки тригонометрииПараметры блоков Function (Operator) установлено в cos + jsin (комплексная экпонента входа). Во время редактирования флажки этого условия.Установите Function значение, отличное от cos + jsin.
Параметры блоков Approximation method (ApproximationMethod) не установлено в None. Во время редактирования флажки этого условия.Установите Approximation method значение None.

Нарушает ограничение, которое применяется ко всем блокам:

Исправьте указанный входной или выходной порт блока.
Проверяйте MinMax блокиНеподдерживаемый тип данных задан для входа или выхода порта.Измените тип данных порта следующим образом: double, single, int8, uint8, int16, uint16, int32, или uint32.
Входные и выходные порты не имеют совпадающего типа данных.Измените типы данных портов, чтобы они совпадали.
Блок имеет один вход, и стандартная математическая библиотека не C89/C90 (ANSI).В диалоговом окне Configuration Parameters на панели Code Generation > Interface задайте Standard math library C89/C90 (ANSI).
Параметры блоков Integer rounding mode (RndMeth) установлено на неподдерживаемое значение. Во время редактирования флажки этого условия.Установите Integer rounding mode значение Zero или Floor.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Rounding Function блоки

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Reshape блоки

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Sign блоки

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Sqrt блокиВходы и выходные порты блоков не имеют совпадающего типа данных.Исправьте указанный входной или выходной порт блока.
Параметры блоков Function (Operator) не установлено в sqrt или signedSqrt. Во время редактирования флажки этого условия.Установите параметры блоков Function в sqrt или signedSqrt.
Параметры блоков Output signal type (OutputSignalType) установлено в complex. Во время редактирования флажки этого условия.Установите параметры блоков Output signal type (OutputSignalType) к auto или real.
Блок входа и параметров блоков Intermediate results (IntermediateResultsDataTypeStr) не имеют того совпадающего типа данных.

Установите параметры блоков Intermediate results (IntermediateResultsDataTypeStr) к одному из следующих:

  • Совпадающий тип данных как блок вход

  • Inherit: Inherit via internal rule

  • Inherit: Inherit from input

  • Inherit: Inherit from output

Типы данных блочных входов и outport не single или double.Исправьте указанный входной или выходной порт блока.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Assignment блокиПорт индекса не является поддерживаемым типом данных.Измените порт индекса так, чтобы он был типа данных int8, int16, int32, uint8, uint16, или uint32.

Initialize output (Y) (OutputInitialize) не установлено в Initialize using input port <Y0>. Во время редактирования флажки этого условия.

Установите Initialize output (Y) значение Initialize using input port <Y0>.

Порт блока имеет массивы шин или шин с элементами, которые являются массивами шин.Исправьте указанный блочный порт так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Polynomial блокиВходные и выходные порты не имеют совпадающего типа данных.Измените типы данных портов, чтобы они совпадали.
Типы данных Input port не single или double.Измените перечисленные типы данных входного порта.
Количество коэффициентов для параметров блоков Polynomial Coefficients (coefs) не больше нуля. Измените количество коэффициентов для параметров блоков Polynomial Coefficients (coefs), чтобы быть больше нуля.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Dot Product блокиВходные порты не являются скалярами, векторами или матрицами с одним столбцом.Измените перечисленные входные порты.
Типы данных Input port не single или double.Измените перечисленные типы данных входного порта.
Входные и выходные порты не имеют совпадающего типа данных. Измените типы данных портов, чтобы они совпадали.
Параметры блоков Integer rounding mode (RndMeth) установлено на неподдерживаемое значение.Установите Integer rounding mode значение Zero или Floor.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Unary Minus блокиТипы данных Input port не double, single, int8, int16, или int32.Измените перечисленные типы данных входного порта.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.

Проверка во время редактирования

Эта проверка поддерживается проверкой во время редактирования. Однако проверка во время редактирования не помечает нарушения всех ограничений этой проверки. В предыдущей таблице явно упоминаются условия нарушения ограничений, при которых флаги проверки во время редактирования.

См. также

Проверяйте использование блоков Signal Attributes

Проверяйте идентификатор: mathworks.slci.SignalAttributesBlocksUsage

Проверьте использование блоков Signal Attributes, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в блоках Signal Attributes.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Проверяйте Data Type Conversion блокиПараметры блоков Input and output to have equal (ConvertRealWorld) не установлено в Real World Value (RWV). Во время редактирования флажки этого условия.Установите Input and output to have equal значение Real World Value (RWV).
Параметры блоков Integer rounding mode (RndMeth) установлено на неподдерживаемое значение. Во время редактирования флажки этого условия.Установите Integer rounding mode значение Zero или Floor.
Параметры блоков Sample Time (SampleTime) устанавливается в постоянный шаг расчета.Установите Sample Time явное, непостоянное значение.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Data Type Duplicate блоки

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Data Type Propagation блоки

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Signal Specification блокиVariable-size signal (VarSizeSig) не установлено в No. Во время редактирования флажки этого условия.Установите Variable-size signal значение No.
Signal type (SignalType) установлено в complex. Во время редактирования флажки этого условия.Установите Signal type любой тип, кроме complex.
Sampling mode (SamplingMode) установлено в Frame based. Во время редактирования флажки этого условия. Установите Sampling mode в любой режим, кроме Frame based.
Порт блока имеет массивы шин или шин с элементами, которые являются массивами шин.Исправьте указанный блочный порт так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Signal Conversion блокиПараметры блоков Output (ConversionOutput) не установлено в Signal copy. Во время редактирования флажки этого условия.Установите Output значение Signal copy.
Параметры блоков Exclude this block from 'Block reduction' optimization (OverrideOpt) не выбран (установлено на on).Выберите Exclude this block from 'Block reduction' optimization.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Rate Transition блокиПараметры блоков Ensure data integrity during data transfer (Integrity) не выбран. Во время редактирования флажки этого условия.Выберите Ensure data integrity during data transfer.
Параметры блоков Ensure deterministic data transfer (maximum delay) (Deterministic) не выбран. Во время редактирования флажки этого условия.Выберите Ensure deterministic data transfer (maximum delay).
Параметры блоков Initial conditions (InitialCondition) не является нулем, ненулевым скаляром или не использует ту же структуру данных, что и тип выходных данных.Измените параметры блоков, чтобы оно было нулем, ненулевым скаляром или чтобы использовать ту же структуру данных, что и выхода тип данных.
Параметры блоков Initial conditions (InitialCondition) является пустым, нефинитным, комплексным, использует выбор области значений или переменную индексацию на элементах структур MATLAB или имеет две или более размерности.Измените параметры блоков так, чтобы он не был пустым, не был нефинитным, не был комплексным, не использовал выбор области значений или индексацию переменных для элементов структур MATLAB и не имел двух или более размерностей.
Порт блока имеет массивы шин или шин с элементами, которые являются массивами шин.Исправьте указанный блочный порт так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Probe блокиПараметры блоков Data type for sample time (ProbeSampleTimeDataType) не установлено в single или double.Установите параметры блоков Data type for sample time в single или double.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Width блокиПорт блока имеет массивы шин или шин с элементами, которые являются массивами шин.Исправьте указанный блочный порт так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Unit Conversion блокиТип данных Input port не double или single. Измените тип данных входного порта.
Входные и выходные порты не имеют совпадающего типа данных.Измените типы данных портов, чтобы они совпадали.
Блок не использует поддерживаемые модули inport или outport.

Измените блок, чтобы использовать поддерживаемые модули inport и outport. Включены преобразования между следующими:

  • deg и rad

  • degC и degF

  • degC и degR

  • degR и degF

  • degC и K

  • degF и K

  • degR и K

  • deltadegC и deltadegF

  • deltadegC и deltadegR

  • deltadegR и deltadegF

  • deltadegC и deltaK

  • deltadegF и deltaK

  • deltadegR и deltaK

  • ft и m

  • ft и mi

  • M и ft

  • M и m

  • kg и lbm

  • lbf и N

  • inHg и Pa

  • mmHg и inHg

  • mph и kn

  • mph и fps

  • fps и kn

  • percent и one

  • kn и nmi/s

  • ms и s

  • psf и psi

  • lbf/hr и lbf/sec

  • lbm/hr и lbm/sec

  • kip и N

  • kip и lbf

  • fpm (входной модуль) и fps (выходной модуль)

  • hr (входной модуль) и min (выходной модуль)

  • min (входной модуль) и s (выходной модуль)

  • ft*lbf/slug/degR (входной модуль) и ft*lbf/slug/K (выходной модуль)

  • fps (входной модуль) и fpm (выходной модуль)

  • min (входной модуль) и hr (выходной модуль)

  • ft*lb/slug/degR (входной модуль) и ft*lb/slug/K (выходной модуль)

  • slug (входной модуль) и lbm (выходной модуль)

  • lbm (входной модуль) и slug (выходной модуль)

  • s (входной модуль) и hr (выходной модуль)

  • ft/min (входной модуль) и kn (выходной модуль)

  • kn (входной модуль) и ft/min (выходной модуль)

  • hr (входной модуль) и s (выходной модуль)

  • s (входной модуль) и min (выходной модуль)

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте IC блокиПараметры блоков Initial value (Value) является пустым, нефинитным, комплексным, использует выбор области значений или переменную индексацию на элементах структур MATLAB или имеет две или более размерности.Измените параметры блоков так, чтобы он не был пустым, не был нефинитным, не был комплексным, не использовал выбор области значений или индексацию переменных для элементов структур MATLAB и не имел двух или более размерностей.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.

Проверка во время редактирования

Эта проверка поддерживается проверкой во время редактирования. Однако проверка во время редактирования не помечает нарушения всех ограничений этой проверки. В предыдущей таблице явно упоминаются условия нарушения ограничений, при которых флаги проверки во время редактирования.

См. также

Проверяйте использование блоков Logical и Bit Operations

Проверяйте идентификатор: mathworks.slci.LogicalandBitOperationsBlocksUsage

Проверьте использование блоков логических и битовых операций, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в блоках Logical и Bit Operations.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Проверяйте Relational Operator блокиТип данных выходного порта блока не является ни перечисляемым типом со значением по умолчанию 0, ни boolean.Измените тип данных вывода так, чтобы он был либо перечисленным типом со значением по умолчанию 0, либо boolean.
Входные порты блоков не имеют совпадающего типа данных.Измените порты входа, чтобы иметь совпадающий тип данных.
Параметры блоков Relational operator (Operator) установлено неподдерживаемое значение: isInf, isNaN, или isFinite. Во время редактирования флажки этого условия.Установите Relational operator поддерживаемое значение: <=, ==, >=, ~=, <, или >.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Logical Operator блокиВыходной порт блока логического оператора не boolean или uint8.Измените тип данных выходного порта, чтобы boolean или uint8.
Входные порты блоков не имеют совпадающего типа данных.Сконфигурируйте входные порты так, чтобы они имели совпадающий тип данных.
Значение Casting modes параметра модели не установлено на Nominal для XOR операторы с boolean операнды.Установите Casting modes параметра модели в Nominal.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Bitwise Operator блокиС Number of input ports (NumInputPorts) установлено на 1 и Operator (logicop) установлено на AND, OR, NAND, NOR, или XOR, тип входных данных не является скаляром.Сконфигурируйте тип входных данных как скаляр.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте ArithShift блокиDiagnostic for out of range shift value (DiagnosticForOORShift) не установлено в Error. Во время редактирования флажки этого условия.Установите Diagnostic for out of range shift value значение Error.
Binary points to shift (BinPtShiftNumber) не установлено в 0. Во время редактирования флажки этого условия.Установите Bits points to shift значение 0.
Bits to shift: Number (BitShiftNumber) не находится в допустимой области значений типа входных данных.Введите Bits to shift: Number, которая находится в допустимой области значений типа входных данных.
Параметры блоков Check for out-of-range 'Bits to shift' in generated code (CheckOORBitShift) выбран (включен). Во время редактирования флажки этого условия.Снимите флажок Check for out-of-range 'Bits to shift' in generated code параметра.

Следующие параметры конфигурации устанавливаются следующим образом:

  • Default parameter behavior (DefaultParameterBehavior) установлено в Inlined

  • Bits to shift: Source (BitShiftNumberSource) установлено в Input port

  • Bits to shift: Direction (BitShiftDirection) установлено в Bidirectional

когда источник Inport 2 является постоянным.

Измените модель так, чтобы источник входа не был постоянным.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Combinatorial Logic блоки

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.

Проверка во время редактирования

Эта проверка поддерживается проверкой во время редактирования. Однако проверка во время редактирования не помечает нарушения всех ограничений этой проверки. В предыдущей таблице явно упоминаются условия нарушения ограничений, при которых флаги проверки во время редактирования.

См. также

Проверяйте использование блоков интерполяционных таблиц

Проверяйте идентификатор: mathworks.slci.LookupTablesBlocksUsage

Проверьте использование блоков интерполяционной таблицы, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в блоках Интерполяционной таблицы.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Проверяйте Lookup Table блокиВходные и выходные порты не имеют совпадающего типа данных.Измените вход и выходные порты, чтобы иметь совпадающий тип данных.
Параметры блоков Breakpoints specification (BreakpointsSpecification) не установлено в Explicit values. Во время редактирования флажки этого условия.Установите Breakpoints specification значение Explicit values.
Параметры блоков Interpolation method (InterpMethod) не установлено в Linear point-slope.Установите Interpolation method значение Linear point-slope.
Параметры блоков Extrapolation method (ExtrapMethod) не установлено в Clip или Linear. Во время редактирования флажки этого условия.Установите Extrapolation method значение Clip или Linear.
Параметры блоков Index search method (IndexSearchMethod) не установлено в Binary search или Linear search. Во время редактирования флажки этого условия.Установите Index search method значение Binary search или Linear search.
Параметры блоков Support tunable table size in code generation (SupportTunableTableSize) выбран (установлено в on). Во время редактирования флажки этого условия.Очистите параметр Support tunable table size in code generation.
Параметры блоков Table data (Table) пуст, нефинитен, использует выбор области значений или переменную индексацию на элементах структур MATLAB, сложен или имеет две или более размерности.Исправьте настройку Table data.
Параметры блоков Source (TableSource) используется для задания источника данных таблицы в Input port. Во время редактирования флажки этого условия. Установите Source равным Dialog.
Для Breakpoints specification (BreakpointsSpecification) установить на Explicit values, Breakpoints параметров блоков пуста, является нефинитным, использует выбор области значений или переменную индексацию на элементах структур MATLAB, является комплексным или имеет две или более размерности.Исправьте настройку Breakpoints 1.
Breakpoints > Data Type не использует тот совпадающий тип данных, что и вход блока.Измените типы данных, которые будут совпадать. Или рассмотрите установку Breakpoints > Data Type на Inherit: Same as corresponding input
Блок использует различные типы данных для выхода данных и данных таблицы.Измените модель так, чтобы блок использовал совпадающий тип данных для своих выходных и табличных данных. В диалоговом окне блока типа данных рассмотрите установку типа данных таблицы на Inherit: Same as output. Если данные таблицы получены из объекта интерполяционной таблицы, используйте один и тот совпадающий тип данных как для данных таблицы, так и для выходных данных. Если выбрано свойство Support tunable size объекта интерполяционной таблицы, то использование различных типов данных для данных таблицы и выходных данных поддерживается, но ограничено двойными и одинарными.
Параметры блоков Intermediate Results (IntermediateResultsDataTypeStr) не использует тот совпадающий тип данных, что выход.Измените типы данных, которые будут совпадать.
Блок или блок выходного порта является постоянным.Установите шаг расчета порта блока или выхода блока в явный непостоянный шаг расчета.
Параметры блоков Use one input port for all input data (UseOneInputPortForAllInputData) выбран.Очистить Use one input port for all input data.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Prelookup блокиПараметры блоков Index search method (IndexSearchMethod) не установлено в Binary search или Linear search. Во время редактирования флажки этого условия.Установите Index search method значение Binary search или Linear search.
Параметры блоков Breakpoints specification (BreakpointsSpecification) не установлено в Explicit values. Во время редактирования флажки этого условия.Установите Breakpoints specification значение Explicit values.
Параметры блоков не установлены на Index and fraction. Во время редактирования флажки этого условия.Установите Output selection значение Index and fraction.
Параметры блоков не установлены на Inherit: Same as input, single, или double.Установите Breakpoint > Data Type значение Inherit: Same as input, single, или double.
Параметры блоков Index > Data Type (IndexDataTypeStr) не установлено в uint32.Установите Index > Data Type значение uint32.
Параметры блоков Fraction > Data Type (FractionDataTypeStr) не установлено в single или double.Установите Fraction > Data Type значение single или double.
Параметры блоков Integer rounding mode (RndMeth) установлено на неподдерживаемое значение. Во время редактирования флажки этого условия.Установите Integer rounding mode значение Floor.
Параметры блоков Use last breakpoint for input at or above upper limit (UseLastBreakpoint) выбран. Во время редактирования флажки этого условия.Очистите параметр Use last breakpoint for input at or above upper limit.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Interpolation Using Prelookup блокиIntermediate results > Data Type (IntermediateResultsDataTypeStr) не установлено в Inherit:Inherit via internal rule , Inherit: Same as output, double, или single. Во время редактирования флажки этого условия.Установите Intermediate results > Data Type значение Inherit:Inherit via internal rule , Inherit: Same as output, double, или single.
Output > Data Type (OutDataTypeStr) не установлено в Inherit:Inherit via back propagation , Inherit: Inherit from ‘Table data’, double, или single. Во время редактирования флажки этого условия.Установите Output > Data Type значение Inherit:Inherit via back propagation , Inherit: Inherit from ‘Table data’, double, или single.
Table data > Data Type (TableDataTypeStr) не установлено в Inherit: Inherit from ‘Table data’, Inherit: Same as output, double, или single. Во время редактирования флажки этого условия.Установите Table data > Data Type значение Inherit: Inherit from ‘Table data’, Inherit: Same as output, double, или single.
Internal Rule Priority (InternalRulePriority) не установлено в Precision. Во время редактирования флажки этого условия.Установите Internal Rule Priority значение Precision.
Number of sub-table selection dimensions или значение индекса (k) из Prelookup блока не относится к типу данных uint32.Установите Number of sub-table selection dimensions и значение индекса для типа данных uint32.
Intermediate results > Data Type (IntermediateResultsDataTypeStr), Table data > Data Type (TableDataTypeStr), Output > Data Type (OutDataTypeStr) и значение дроби (f) из Prelookup блока не являются совпадающие типы данных: double или single.Установите Intermediate results > Data Type, Table data > Data Type, Output > Data Type и значение дроби таким совпадающим типом данных: double или single.
Integer rounding mode (RndMeth) не установлено в Floor. Во время редактирования флажки этого условия.Установите Integer rounding mode значение Floor.
Saturate on integer overflow (SaturateOnIntegerOverflow) выбран (установлено в on). Во время редактирования флажки этого условия.Очистить Saturate on integer overflow.
Блок является постоянным или соединяет все входные порты выбора подтаблицы с постоянными блоками.Измените блоки так, чтобы они не были постоянными и не соединяли все входные порты выбора подтаблицы с постоянными блоками.
Блоки или их выходные порты имеют постоянный шаг расчета.Установите шаги расчета блоков или блокируйте выходные порты в явные непостоянные шаги расчета.
Параметры блоков Interpolation method (InterpMethod) не установлено в Linear point-slope. Во время редактирования флажки этого условия.Установите Interpolation method значение Linear point-slope.
Параметры блоков Require index and fraction as bus (RequireIndexFractionAsBus) выбран (установлено в on). Во время редактирования флажки этого условия.Очистить Require index and fraction as bus.
Параметры блоков Valid index input may reach last index (ValidIndexMayReachLast) выбран (установлено в on). Во время редактирования флажки этого условия.Очистить Valid index input may reach last index.
Параметры блоков Specification (TableSpecification) не установлено в Explicit values. Во время редактирования флажки этого условия.Установите Specification значение Explicit values.

Нарушение ограничения, которое применяется ко всем блокам.

  • Входной или выходной порт блока не относится к типу данных double, single, int8, uint8, int16, uint16, int32, uint32, boolean, или перечисление, унаследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины, блочный порт не является шиной, для которой элементы (потенциально включая другие шины) соответствуют ограничению типа данных.

  • Имя блока содержит "*/«или» /*, «или заканчивается на» *’.

  • Блок inport или outport является комплексным.

  • Блочный входной или выходной порт не является скаляром, вектором или 2-D матрицей.

  • Block inport или outport использует основанные на кадрах сигналы.

  • Блокируйте пользовательский класс памяти выходного сигнала:

    • Type не установлено на Unstructured.

    • Data initialization установлено на None.

  • Порт выхода блока ссылается на объект сигнала с непустым начальным значением.

  • Блок является постоянным, и выход тестируется.

  • Класс памяти выходного сигнала блока не установлен на Auto когда блок является постоянным.

  • Блок, который является постоянным или имеет параметры, которые могут быть настроены приводы два или более многократных блоков, не используя явные блоки Rate Transition.

Исправьте указанный входной или выходной порт блока.

Проверка во время редактирования

Эта проверка поддерживается проверкой во время редактирования. Однако проверка во время редактирования не помечает нарушения всех ограничений этой проверки. В предыдущей таблице явно упоминаются условия нарушения ограничений, при которых флаги проверки во время редактирования.

См. также

Проверяйте использование пользовательских функциональных блоков

Проверяйте идентификатор: mathworks.slci.UserDefinedFunctionBlocksUsage

Проверьте использование пользовательских функциональных блоков, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в блоках User-Defined Function.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Check C Caller blocksНеподдерживаемый тип данных задан для входа или выхода порта.Измените тип данных порта так, чтобы он был одним из следующих: double, single, int8, int16, int32, uint8, uint16, или uint32

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте S-Function блокиS-функция не была создана с использованием текущего релиза Legacy Code Tool.По возможности создайте S-функцию с помощью Legacy Code Tool или исследуйте альтернативы включения кода в модель.
Блок S-Function не создается с помощью Legacy Code Tool.Создайте S-функцию для доступа к S-функции с помощью Legacy Code Tool с этой командой: legacy_code('slblock_generate', def), где def - структура с полями, представляющими свойства Legacy Code Tool.
Аргумент S-функции не является ни скаляром, ни вектором фиксированной размерности.Измените S-функцию так, чтобы аргументы были скалярами или векторами фиксированной размерности.
S-функция Legacy Code Tool задает InitializeConditionsFcnSpec, StartFcnSpec, или TerminateFcnSpec, а не OutputFcnSpec.Измените строение S-функции, чтобы задать OutputFcnSpec.
S-функция имеет несколько dwork.Измените строение S-функции, чтобы задать одну dwork.
S-function parameters (Parameters) является комплексным или не конечным.Измените модель так, чтобы S-function parameters не была комплексной или не конечной.
Интегрированная модель блока SIL S-функции использует глобальную переменную для корневого входного или выходного порта.Измените модель так, чтобы она не использовала глобальные переменные для корневых входных или выходных портов.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.

См. также

Проверяйте использование блоков Ports и Subsystems

Проверяйте идентификатор: mathworks.slci.PortsandSubsystemsBlocksUsage

Проверьте использование блоков Ports и Subsystems, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в блоках Ports и Subsystems.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Проверяйте Enable блокиСигнал, поступающий в порт включения, не относится к типу данных boolean.Исправьте тип данных сигнала.
Блок Enable Port расположен на корневом уровне модели.Удалите или переместите блок Enable Port.
Default parameter behavior (DefaultParameterBehavior) установлено в Inlined и сигнал, входящий в порт Enable родительской подсистемы, является постоянным.Измените модель так, чтобы сигнал, входящий в Enable Port родительской подсистемы, не был постоянным.
Порт блока имеет массивы шин или шин с элементами, которые являются массивами шин.Исправьте указанный блочный порт так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Model Reference блокиЗначение, заданное в Arguments > Model arguments (ParameterArgumentValues) является комплексным или нефинитным.Измените модель так, чтобы значения, заданные в Model arguments, не были комплексными или нефинитными.
Блок находится в защищенном режиме.Снимите защиту с модели-ссылки. Для получения дополнительной информации см. «Защита моделей для сокрытия содержимого» (Simulink Coder).
Блок или блок выходного порта является постоянным.Установите шаг расчета порта блока или выхода блока в явный непостоянный шаг расчета.
Блок имеет несколько шагов расчета.Измените цель модели-ссылки так, чтобы блок Модели-ссылки имел один шаг расчета.

Block входа port не является одним из следующих поддерживаемых типов данных:

  • Перечисленный тип, унаследованный от Simulink.IntEnumType со значением по умолчанию 0.

  • Скалярная шина, элементы которой относятся к следующим поддерживаемым типам данных: double, single, int8, uint8, int16, uint16, int32, uint32, или boolean.

Исправьте тип данных входного порта.
Для входа портов в триггерной модели-ссылке блоке Latch input by delaying outside signal (LatchByDelayingOutsideSignal) выбран (установлено в on).Очистить Latch input by delaying outside signal. Чтобы сохранить поведение фиксации, реструктурируйте модель, поместив блок Unit Delay перед блоком входа, вне блока модели-ссылки.
Для входа портов блока модели-ссылки, Latch input for feedback signals of function-call subsystem outputs (LatchInputForFeedbackSignals) выбран (установлено в on).Очистить Latch input for feedback signals of function-call subsystem outputs. Чтобы сохранить поведение фиксации, реструктурируйте модель, поместив блок Unit Delay перед блоком входа, вне блока модели-ссылки.
Блоки Model используют параметры образца ссылочных моделей в качестве аргументов.Измените модель так, чтобы блоки Model не использовали параметры образцов ссылочных моделей в качестве аргументов.
A Simulink.LookupTable объект передается в блок модели-ссылки.Измените модель так, чтобы она не содержала Simulink.LookupTable объект, который передается в блок модели-ссылки.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Subsystem блокиВарианты подсистемы не имеют одинакового количества портов.

По возможности перенастройте модель так, чтобы подсистемы вариантов имели одинаковое количество портов.

Подсистема не является одной из следующих:

  • Виртуальный

  • Позволенный

  • Вызов функции

  • Если действие

  • Inlined Atomic

  • Вызванный

По возможности перенастройте подсистему как виртуальную (очистите Блок Subsystem параметра Treat as atomic unit), так и встроенную атомарную, включенную, function-call, если действие или триггируемая подсистема. Также можно перенести подсистему в блок Model или исследовать другие опции реализации.

Подсистема является блоком Simulink Function.

Измените модель, чтобы удалить блоки Simulink Function.

Для блоков с вариантами применяется одно из следующих условий:

  • Generate preprocessor conditionals (GeneratePreprocessorConditionals) выбран.

  • Model Configuration Parameters > Code Generation > Interface > Generate preprocessor conditionals (GeneratePreprocessorConditionals) не установлено в Disable all.

Очистить Generate preprocessor conditionals или задать Model Configuration Parameters > Code Generation > Interface > Generate preprocessor conditionals на Disable all.

Параметры блоков Minimize algebraic loop occurrences (MinAlgLoopOccurences) выбран. Во время редактирования флажки этого условия.

Очистить Minimize algebraic loop occurrences.

Для невиртуальных подсистем Function packaging (RTWSystemCode) не установлено в Inline, Nonreusable function, или Reusable function.

Установите Function packaging значение Inline, Nonreusable function, или Reusable function.

Для блока с Function packaging (RTWSystemCode) установить на Nonreusable function, применяются одно или несколько из следующих условий:

  • Параметры блоков Function name options (RTWFcnNameOpts) не установлено в User specified.

  • Параметры блоков Function interface (FunctionInterfaceSpec) не установлено в void_void.

  • Параметры блоков Function with separate data (FunctionWithSeparateData) выбран (установлено в on).

  • Параметр модели Code interface packaging (CodeInterfacePackaging) не установлено в Nonreusable function.

Исправьте параметры блоков и параметры модели.

Для блока с Function packaging (RTWSystemCode) установить на Reusable function, применяются одно или несколько из следующих условий:

  • Параметр модели Code interface packaging (CodeInterfacePackaging) не установлено в Nonreusable function.

  • Параметр модели Pass reusable subsystem outputs as (PassReuseOutputArgsAs) не установлено в Individual arguments

  • Переиспользуемая подсистема не из библиотеки.

  • Переиспользуемая подсистема не является демаскированной односкоростной атомарной подсистемой или подсистемой вызова функций.

  • Исправьте параметры блоков и параметры модели.

  • Измените переиспользуемые подсистемы так, чтобы они были из библиотеки и были демаскированы, односкоростные атомарные или функциональные подсистемы.

Порт блока имеет массивы шин или шин с элементами, которые являются массивами шин.Измените модель так, чтобы блоки Model не использовали параметры образцов ссылочных моделей в качестве аргументов.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
В переиспользуемой подсистеме автоматически добавлен буфер скрытого сигнала в его входном порте.Вручную поместите Signal Conversion блок непосредственно перед входным портом повторно используемой подсистемы. Выберите параметры блоков преобразования сигнала Exclude this block from 'Block reduction' optimization.
A Simulink.LookupTable объект не должен передаваться в маскированную подсистему.Измените модель так, чтобы она не содержала Simulink.LookupTable объект, который передается в маскированную подсистему.
Проверяйте Trigger блокиВ родительской подсистеме сигнал, входящий в триггерный порт, не является скаляром.Сконфигурируйте сигнал, входящий в триггерный порт родительской подсистемы, который будет скаляром.
В родительской подсистеме сигнал, входящий в триггерный порт, не является boolean тип данных при Trigger type (TriggerType) rising, falling, или either.Сконфигурируйте сигнал, входящий в триггерный порт родительской подсистемы, который будет boolean.
Блок находится на корневом уровне модели с Trigger type (TriggerType) установить на rising, falling, или either.

Выполните одно из следующих действий:

  • Сконфигурируйте модель так, чтобы Trigger блок не находился в корне модели.

  • Сконфигурируйте модель так, чтобы Trigger type был function-call.

States when enabling (StatesWhenEnabling) установлено в inherit. Во время редактирования флажки этого условия.Установите States when enabling значение held или reset.
Default parameter behavior (DefaultParameterBehavior) установлено в Inlined и сигнал, входящий в триггерный порт родительской подсистемы, является постоянным.Измените модель так, чтобы сигнал, входящий в триггерный порт родительской подсистемы, не был постоянным.
Тип данных выходных портов не auto, int8 или double.Исправьте тип данных выходного порта.
Параметры блоков Initial trigger signal state (InitialTriggerSignalState) не установлено в compatibility (no trigger on first evaluation) или zero. Во время редактирования флажки этого условия.Установите Initial trigger signal state значение compatibility (no trigger on first evaluation) или zero.
Порт блока имеет массивы шин или шин с элементами, которые являются массивами шин.Измените модель так, чтобы блоки Model не использовали параметры образцов ссылочных моделей в качестве аргументов.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте перечисленный блок inport или outport
Проверяйте Action Port блоки

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте If блокиDefault parameter behavior (DefaultParameterBehavior) установлено в Inlined и источник Inport 1 является постоянным.Измените модель так, чтобы источник Входа 1 не был постоянным.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Function-Call Generator блокиБлок имеет несколько адресатов.Измените модель так, чтобы блок имел один пункт назначения.
The Number of iterations (numberOfIterations) не установлено в 1. Во время редактирования флажки этого условия.Установите Number of iterations равным 1.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Function-Call Split блоки

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Switch Case блокиDefault parameter behavior (DefaultParameterBehavior) установлено в Inlined, и источник Inport 1 является постоянным.Измените модель так, чтобы источник Входа 1 не был постоянным.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте For Iterator блокиПараметры блоков Set next i (iteration variable) externally (ExternalIncrement) выбран (установлено в on). Во время редактирования флажки этого условия.Очистить Set next i (iteration variable) externally.
Iteration limit source (IterationSource) не установлено в internal. Во время редактирования флажки этого условия.Установите Iteration limit source значение internal.
Iteration variable data type (IterationVariableDataType) установлено в double. Во время редактирования флажки этого условия.Установите Iteration variable data type значение int32, int16, int8, uint32, uint16, или uint8.
For Iterator подсистема имеет настраиваемый параметр для внутреннего предела итерации.Установите Default parameter behavior (DefaultParameterBehavior) к Inlined или измените внутренний предел итерации так, чтобы он не был настраиваемым параметром.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте For Each блокиInput Partition Dimension или Output Concatenation Dimension больше 2.Установите Input Partition Dimension и Output Concatenation Dimension значения менее 3.
Параметры маски разделяются.Сконфигурируйте параметры маски так, чтобы они не были секционированы.
NeedActiveIterationSignal установлено в on. Во время редактирования флажки этого условия.Задайте NeedActiveIterationSignal на off.
RequestParallelExec установлено в off. Во время редактирования флажки этого условия.Задайте RequestParallelExec на on.
ShowIterationIndex установлено в on. Во время редактирования флажки этого условия.Задайте ShowIterationIndex на off.
StateReset не установлено в held. Во время редактирования флажки этого условия.Задайте StateReset на held.
StateType не установлено в Separate states for each iteration. Во время редактирования флажки этого условия.Задайте StateType на Separate states for each iteration.
Number of iterations to execute не установлено в -1 (значение по умолчанию).Установите Number of iterations to execute к значению по умолчанию -1.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.

Проверка во время редактирования

Эта проверка поддерживается проверкой во время редактирования. Однако проверка во время редактирования не помечает нарушения всех ограничений этой проверки. В предыдущей таблице явно упоминаются условия нарушения ограничений, при которых флаги проверки во время редактирования.

См. также

Проверяйте использование блоков Disprinuities

Проверяйте идентификатор: mathworks.slci.DiscontinuitiesBlocksUsage

Проверьте использование блоков прерывания, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в блоках Disprinuities.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Проверяйте блоки SaturateВходные и выходные порты не имеют совпадающего типа данных.Измените типы данных портов, чтобы они совпадали.
Параметры блоков Upper limit (UpperLimit) пуст, нефинитен, использует выбор области значений или переменную индексацию на элементах структур MATLAB, сложен или имеет две или более размерности.Исправьте настройку Upper limit.
Параметры блоков Lower limit (LowerLimit) пуст, нефинитен, использует выбор области значений или переменную индексацию на элементах структур MATLAB, сложен или имеет две или более размерности.Исправьте настройку Lower limit.
Параметры блоков Integer rounding mode (RndMeth) установлено на неподдерживаемое значение. Во время редактирования флажки этого условия.Установите Integer rounding mode значение Zero или Floor.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте блоки релеПараметры блоков Switch on point (OnSwitchValue) пуст, нефинитен, использует выбор области значений или переменную индексацию на элементах структур MATLAB, сложен или имеет две или более размерности.Исправьте настройку Switch on point.
Параметры блоков Switch off point (OffSwitchValue) пуст, нефинитен, использует выбор области значений или переменную индексацию на элементах структур MATLAB, сложен или имеет две или более размерности.Исправьте настройку Switch off point.
Параметры блоков Output when on (OnOutputValue) пуст, нефинитен, использует выбор области значений или переменную индексацию на элементах структур MATLAB, сложен или имеет две или более размерности.Исправьте настройку Output when on.
Параметры блоков Output when off (OffOutputValue) пуст, нефинитен, использует выбор области значений или переменную индексацию на элементах структур MATLAB, сложен или имеет две или более размерности.Исправьте настройку Output when off.
Проверяйте Dead Zone блокиПараметры блоков Saturate on integer overflow (SaturateOnIntegerOverflow) выбран (установлено в on). Во время редактирования флажки этого условия.Исправьте настройку Saturate on integer overflow.

Проверка во время редактирования

Эта проверка поддерживается проверкой во время редактирования. Однако проверка во время редактирования не помечает нарушения всех ограничений этой проверки. В предыдущей таблице явно упоминаются условия нарушения ограничений, при которых флаги проверки во время редактирования.

См. также

Проверяйте использование блоков Sinks

Проверяйте идентификатор: mathworks.slci.SinksBlocksUsage

Проверьте использование блоков Sinks, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в блоках Sinks.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Проверяйте Outport блокиБлок не может задать сигналы переменного размера. Параметры блоков Variable-size signal (VarSizeSig) установлено в Yes.Установите Variable-size signal значение No.
Signal type (SignalType) установлено в complex.Установите Signal type значение real или auto.
Sampling mode (SamplingMode) установлено в Frame based.Установите Sampling mode значение Sample based или auto.
Исходящий Initial output корневого уровня (InitialOutput) не [].Установите значение Initial output вывода корневого уровня на [].
Source of initial output value (SourceOfInitialOutputValue) не установлено в Dialog. Во время редактирования флажки этого условия.Установите Source of initial output value значение Dialog.
Initial output (InitialOutput) комплексная.Измените модель так, чтобы Initial output не была комплексной.
Storage Class (StorageClass) не Auto или SimulinkGlobal. Во время редактирования флажки этого условия.В редакторе Отображения задайте Storage Class Auto или SimulinkGlobal. Чтобы открыть Код редактор Отображений, сначала откройте Embedded Coder приложения. Затем на вкладке C Code, под Code Interface выберите Individual Elements Code Mappings.
Outport является блоком Out Bus Element.Вместо блока Out Bus Element используйте блок Outport с блоком Bus Creator.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Terminator блокиПорт блока имеет массивы шин или шин с элементами, которые являются массивами шин.Исправьте указанный блочный порт так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.

Проверка во время редактирования

Эта проверка поддерживается проверкой во время редактирования. Однако проверка во время редактирования не помечает нарушения всех ограничений этой проверки. В предыдущей таблице явно упоминаются условия нарушения ограничений, при которых флаги проверки во время редактирования.

См. также

Проверяйте использование Дискретных блоков

Проверяйте идентификатор: mathworks.slci.DiscreteBlocksUsage

Проверьте использование дискретных блоков, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в Дискретных блоках.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Проверяйте Unit Delay блокиПараметры блоков Initial conditions (InitialCondition) пуст, нефинитен, использует выбор области значений или переменную индексацию на элементах структур MATLAB, сложен или имеет две или более размерности.Исправьте настройку Initial conditions.
Параметры блоков Input Processing (InputProcessing) установлено в Columns as channels (frame based). Во время редактирования флажки этого условия.Установите Input Processing значение Elements as channels (sample based) или Inherited.

Когда состояние блока разрешается к сигналу с пользовательским классом памяти сигнала, класс памяти сигнала:

  • Type не установлено на Unstructured.

  • Data initialization установлено на None.

Измените пользовательский класс памяти сигналов.
Состояние блока разрешается к сигнальному объекту с непустым начальным значением.Измените объект сигнала.
Блок используется для перехода скорости.Замените блок, используемый для перехода со скоростью, на блок Rate Transition.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Discrete Integrator блокиТипы данных входных портов не single или double для портов без сброса.Измените типы данных входных портов, которые будут single или double для портов без сброса.
Входные и выходные порты не скаляры.Измените входной или выходной порты, чтобы они были скалярами.
Типы данных выходных портов не single или double.Измените типы данных выходных портов, которые будут single или double.
Входной и выходной порты не имеют совпадающего типа данных.Измените типы данных портов, чтобы они совпадали. Тип данных порта сброса не должен совпадать с другими типами входных и выходных данных.

Параметры блоков Integrator method (IntegratorMethod) не установлено одно из следующих значений:

  • Integration: Forward Euler

  • Integration: Backward Euler

  • Integration: Trapezoidal

Во время редактирования флажки этого условия.

Установите Integrator method в одно из следующих значений:

  • Integration: Forward Euler

  • Integration: Backward Euler

  • Integration: Trapezoidal

Параметры блоков Show state port (ShowStatePort) выбран. Во время редактирования флажки этого условия.Очистить Show state port.
Параметры блоков External reset (ExternalReset) не установлено в none. Во время редактирования флажки этого условия.Установите параметры блоков External reset в none.

Один или оба параметров блоков Upper saturation limit (UpperSaturationLimit) и Lower saturation limit (LowerSaturationLimit):

  • Являются пустыми, не конечными или комплексными.

  • Использует выбор области значений или индексацию переменных для элементов структур MATLAB

  • Иметь две или более размерности.

Установите и Upper saturation limit, и Lower saturation limit одномерное, не комплексное, конечное значение.
Блок находится внутри условной подсистемы.Измените модель так, чтобы Discrete Integrator блок не находился внутри условной подсистемы.
Default parameter behavior (DefaultParameterBehavior) установлено в Inlined) и источник блока Inport 2 является постоянным.Установите шаги расчета блоков на явные непостоянные шаги расчета. Измените модель так, чтобы источник блока Input 2 не был постоянным.

Когда состояние блока разрешается к сигналу с пользовательским классом памяти сигнала, класс памяти сигнала:

  • Type не установлено на Unstructured.

  • Data initialization установлено на None.

Измените пользовательский класс памяти.
Состояние блока разрешается к сигнальному объекту с непустым начальным значением.Измените объект сигнала.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.
Проверяйте Delay блокиПараметры блоков Input processing (InputProcessing) установлено в Columns as channels (frame based). Во время редактирования флажки этого условия.Установите Input processing на что-то кроме Columns as channels (frame based).
Параметры блоков Show enable port (ShowEnablePort) выбран. Во время редактирования флажки этого условия.Очистить Show enable port.

Нарушение ограничения, которое применяется ко всем блокам.

 

Проверка во время редактирования

Эта проверка поддерживается проверкой во время редактирования. Однако проверка во время редактирования не помечает нарушения всех ограничений этой проверки. В предыдущей таблице явно упоминаются условия нарушения ограничений, при которых флаги проверки во время редактирования.

См. также

Проверяйте использование блоков Stateflow

Проверяйте идентификатор: mathworks.slci.StateflowBlocksUsage

Проверьте использование блоков Stateflow, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в блоках Stateflow.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПроверитьСостояниеРекомендуемое действие
Check Stateflow blocksFunction packaging (RTWSystemCode) не установлено в Inline.Установите Function packaging значение Inline, Nonreusable function или Reusable function. Если вы выбираете Nonreusable functionПодсистема должна быть в следующих строениях:
  • Установите Function name options значение User Specified.

  • Установите Function interface значение void-void.

  • Установите Function with separate data значение off.

  • Установите Code interface packaging параметра модели в Nonreusable function.

Если вы выбираете Reusable function, модель должна использовать следующие строения:
  • Pass reusable subsystem outputs as с Individual arguments

  • Установите Code interface packaging параметра модели в Nonreusable function.

Переиспользуемые подсистемы в модели не из библиотеки и не являются демаскированными односкоростными атомарными или функциональными подсистемами.Измените переиспользуемые подсистемы в модели так, чтобы они были из библиотеки и немаскированных односкоростных атомарных или функциональных подсистем.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.

См. также

Проверяйте использование Строковых блоков

Проверяйте идентификатор: mathworks.slci.StringBlocksUsage

Идентифицируйте использование строковых блоков, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в строках.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Проверяйте ASCII to String блокиРазмерность входа больше или равна значению параметра Buffer size of dynamical-size string (bytes) (Simulink Coder).Исправьте вход размерности.

Нарушение ограничения, которое применяется ко всем блокам.

Исправьте указанный входной или выходной порт блока.

См. также

Поддерживаемые ограничения блоков

Проверяйте использование диаграмм Stateflow

Проверяйте идентификатор: mathworks.slci.chartsSFObjsUsage

Проверьте использование диаграмм Stateflow, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в диаграммах Stateflow.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Check usage of Stateflow object palette

График содержит один или несколько из следующих объектов:

  • Атомарные субдиаграммы

  • Атомные коробки

  • Функции MATLAB

  • Состояния на основе Simulink

Сконфигурируйте график так, чтобы она не содержала неподдерживаемых объектов.
Check name usage in a Stateflow chart that uses MATLAB action languageГрафик, которая использует язык действий MATLAB, не имеет уникальных имен для функций Simulink, графических функций и таблиц истинности, которые она содержит.Используйте уникальные имена для функций, графических функций и таблиц истинности на графике.
Check that all charts unselect ‘Create output for monitoring’ optionВыбран Create output for monitoring свойства графика (установлено в on).Очистите параметр графика свойства Create output for monitoring.
Check that all charts specify 'Inherited' as their update method Для свойства графика Update method не задано значение Inherited.Установите Update method значение Inherited.
Check that states or substates have a default transitionГрафик имеет состояние или подсостояние без перехода по умолчанию.Сконфигурируйте график так, чтобы состояния и подсостояния имели переходы по умолчанию.
Check that all charts unselect ‘Enable Super Step Semantics’ optionВыбран Enable Super Step Semantics свойства графика (установлено в on). Во время редактирования флажки этого условия.Очистите параметр графика свойства Enable Super Step Semantics.
Check that no charts execute at initializationВыбран Execute (enter) Chart at Initialization свойства графика (установлено в on). Во время редактирования флажки этого условия.Очистите параметр графика свойства Execute (enter) Chart at Initialization.
Check that no charts export chart level functionsВыбран Export Chart Level Functions свойства графика (установлено в on). Во время редактирования флажки этого условия.Очистите параметр графика свойства Export Chart Level Functions.
Check that no charts specify saturation on overflow for integer operationsВыбран Saturate on integer overflow свойства графика (установлено в on).Очистите параметр графика свойства Saturate on integer overflow.
Check usage of State Machine TypeДля свойства графика State Machine Type задано значение Moore. Во время редактирования флажки этого условия.Установите State Machine Type значение Classic или Mealy.
Check that no charts support variable-size arraysВыбран Support variable-size arrays свойства графика (установлено в on).Очистите параметр графика свойства Support variable-size arrays.
Check that all control flows have unique default transitions Поток управления имеет более 1 переход по умолчанию.Сконфигурируйте график так, чтобы она имела 1 переход по умолчанию.

Проверка во время редактирования

Эта проверка поддерживается проверкой во время редактирования. Однако проверка во время редактирования не помечает нарушения всех ограничений этой проверки. В предыдущей таблице явно упоминаются условия нарушения ограничений, при которых флаги проверки во время редактирования.

См. также

Проверяйте использование языка действий Stateflow MATLAB

Проверяйте идентификатор: mathworks.slci.MATLABactionlanguageStateflowUsage

Проверьте использование языка действий Stateflow MATLAB, который может повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в использовании языка действий Stateflow MATLAB.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

Для выполнения подшеков, чтобы проверить использование языка действий MATLAB в диаграммах Stateflow, смотрите Проверку использования кода в функциях MATLAB.

См. также

Проверяйте использование переходов Stateflow

Проверяйте идентификатор: mathworks.slci.transitionsSFObjsUsage

Проверьте использование переходов Stateflow, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в переходах Stateflow.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Check that actions do not have unsupported operations

Действие использует операцию, которая не поддерживается:

  • := или =

  • + , += , -, или -=

  • * , *=, / или /=

  • &, && или &=

  • |, || или |=

  • << или >>

  • cast()

  • ^ или ^=

  • %% или <

  • <= или ==

  • ~= или !=

  • <> или >

  • >= или ~

Измените график так, чтобы действие использовало только поддерживаемые операции.
Check for indexing in arrays that are more than one dimensionМассив из нескольких размерностей использует индексацию.Измените переход, чтобы использовать одномерные массивы или избегайте индексации для массивов, которые являются более чем одной размерностью.
Check that all arrays use index of type 'int32' Массив не использует индекс типа данных int32.Измените индекс массива так, чтобы он использовал тип данных int32.
Check that all transition conditions are of boolean data typeУсловие перехода не относится к логическому типу данных.Измените условие перехода так, чтобы оно имело логический тип данных.
Check that no actions access context-sensitive constants Действие использует контекстно-зависимые константы, которые не поддерживаются для инспекции кода.Измените действие, чтобы избежать использования контекстно-зависимых констант.
Check that no actions access custom data Действие обращается к пользовательским данным, которые не поддерживаются для инспекции кода.

Измените переходы к:

  • Используйте квалифицированные перечисления.

  • Избегайте доступа к пользовательским данным.

Check that conditions and actions do not have unsupported operations on enumeration type operands

Переход использует одну из следующих неподдерживаемых операций для операнда перечисляемого типа:

  • + или +=

  • - или -=

  • * или *=

  • / или /=

  • & или &=

  • | или |=

  • ^ или ^=

  • %%

  • ~

  • || или &&

  • > или <

  • <= или >=

  • ~= или <>

  • >> или <<

Измените переход, чтобы избежать использования неподдерживаемых операций для операндов перечисляемого типа.
Check that no transitions have event triggers Переход имеет триггер события, который не поддерживается для инспекции кода.Измените переход, чтобы избежать использования триггера события.
Check data type of Graphical Function argumentsПереход задает графическую функцию вызовы с различными фактическими и ожидаемыми типами данных аргументов.Измените переход, чтобы задать графическую функцию вызовы с совпадающими типами данных для фактических и ожидаемых аргументов.
Check dimensions of Graphical Function argumentsПереход задает графическую функцию вызовы с различными фактическими и ожидаемыми размерами аргументов.Измените переход, чтобы задать графическую функцию вызовы с таким же размером для фактических и ожидаемых аргументов.
Check that transitions do not have transition actions Переходы имеют переходное действие, которое не поддерживается для инспекции кода.Измените переход, чтобы избежать использования действия перехода.
Check that Stateflow transitions do not reuse induction variables outside of a loopПереход имеет неподдерживаемое повторное использование индукционной переменной.Измените переход так, чтобы переменная индукции не использовалась повторно.
Check that no actions contain a function whose argument is of an invalid data type

Математическая функция в действии не является:

  • Аргумент одиночного или двойного типа для следующих функций:

    • acos, asin, atan

    • ceil, cosh, cosh

    • exp, fabs, floor

    • fmod, ldexp, log

    • log10, pow, sin

    • sinh, sqrt, tan, tanh

  • Некулевый аргумент для следующих функций:

    • abs, max, min

  • Целый тип для labs функция.

Измените математическую функцию, чтобы использовать поддерживаемые типы данных.
Check that transitions do not have an unsupported loop stepПереход имеет неподдерживаемый шаг цикла.Измените переход так, чтобы существовал один оператор действия, который увеличивает int32 шаг индукции скалярного цикла с буквальным int32 постоянное значение.
Check that transitions do not have an unsupported loop bodyПереход имеет неподдерживаемое тело цикла.Измените переход так, чтобы не было никаких действий, которые переопределяют переменную индукции цикла.
Check that transitions do not have an unsupported loop conditionПереход имеет неподдерживаемое условие цикла.Измените условие перехода так, чтобы оно имело одну < или один <= условие с буквальным int32 постоянная граница и скалярная int32 переменная индукции цикла.
Check for valid induction variable in transition that defines loop conditionПереход, который задает условие цикла, имеет недопустимую переменную индукции.Измените условие цикла так, чтобы в нем было только одно < или <= условие с скалярной асинхронной переменной Stateflow локального или временного цикла возможностей.
Check that transitions do not have unsupported loop induction variable initializationПереход имеет неподдерживаемую инициализацию индукционной переменной цикла.Измените переход так, чтобы инициализация переменной индукции скалярного цикла была единственным оператором действия, который использует int32 тип данных и инициализирует переменную с буквальной константой int32 значение.
Check that no actions contain an xor operator with boolean operandsДействие содержит XOR оператор с булевыми операндами с параметром модели Casting modes установленным на Standards.Измените действие, чтобы избежать использования XOR оператор с булевыми операндами или установите Casting modes на Nominal.
Check that no actions contain a binary operator whose operands are of mixed data type Действие содержит двоичный оператор операндов смешанного типа данных, который не поддерживается для инспекции кода.Измените график, чтобы избежать использования двоичных операторов с операторами смешанного типа данных.
Check that no transitions have a function with more than 2 argumentsПереход имеет функцию с более чем 2 аргументами.Измените каждую функцию так, чтобы она имела не более 2 аргументов. Возможно, можно заменить функцию с более чем 2 аргументами на серию функций с не более чем 2 аргументами. Для примера, a MinMax функция с 3 входами может быть заменена на 2 MinMax функций, каждый с 2 аргументами.
Check data type of Simulink Function argumentФактический тип данных аргумента вызова функции Simulink отличается от типа данных аргумента входного и выходного портов в определяющей Подсистеме вызова функций.Измените вызов функции Simulink, чтобы иметь тот же тип данных аргумента, что и входной и выходной порт в определяющей Подсистеме вызова функций.
Check dimension of Simulink Function argumentФактический размер аргумента вызова функции Simulink отличается от размера аргумента входного и выходного портов в определяющей Подсистеме вызова функций.Измените вызов функции Simulink, чтобы иметь тот же размер данных аргумента, что и входной и выходной порты в определяющей Подсистеме вызова функций.
Check that no actions access time (t) Действие обращается ко времени, которое не поддерживается для инспекции кода.Измените действие, чтобы избежать доступа ко времени.
Check data type of truth table argumentsПереход задает таблицу истинности с различными фактическими и ожидаемыми типами данных аргументов.Измените переход, чтобы задать таблицы истинности, чтобы использовать совпадающие типы данных для фактических и ожидаемых аргументов.
Check dimensions of truth table argumentsПереход задает таблицу истинности с различными фактическими и ожидаемыми размерами аргументов.Измените переход, чтобы задать таблицы истинности, чтобы использовать те же размеры для фактических и ожидаемых аргументов.
Check unassigned graphical function outputsГрафик задает графическую функцию вызовы с другим количеством фактических и ожидаемых выходов.Измените график так, чтобы графические функции назначали все выходы.
Check that Stateflow transitions are not configured as variant transitionsДиаграмма Stateflow содержит переходы, которые сконфигурированы как варианты переходов.Измените график, чтобы избежать использования вариантных переходов.

См. также

Проверяйте использование соединений Stateflow

Проверяйте идентификатор: mathworks.slci.junctionsSFObjsUsage

Проверьте использование соединений Stateflow, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в соединениях Stateflow.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Check that Stateflow junctions do not have outgoing transitions jumping outside of the loopСоединение имеет исходящий переход, который прыгает наружу от тела цикла.Измените график так, чтобы соединение в цикле не имело исходящих переходов, выходящих за пределы цикла.
Check that non-terminating junctions have exactly one unconditional exiting transitionНеоконечное соединение не имеет точно одного безусловного выходного перехода. Один безусловный выход из перехода предотвращает обратное отслеживание и затенение перехода.Измените соединение так, чтобы оно имело один безусловный выходной переход.
Check that the chart uses no history junctions График содержит историческое соединение.Измените график так, чтобы она не содержала исторического соединения.
Check that control flows do not have loops with unsupported header junctionsСоединение заголовка не имеет двух входящих и двух исходящих переходов.Измените соединение заголовка так, чтобы оно имело два входящих и два исходящих перехода.
Check usage of terminating Stateflow junctionsОконечное соединение прослеживается назад в состояние Stateflow.Измените соединение так, чтобы оно не возвращалось в состояние Stateflow.
Check that control flows are structured График содержит неструктурированные потоки управления, которые не поддерживаются для инспекции кода.Измените график так, чтобы она не содержала неструктурированных потоков управления.
Check that unconditional transitions execute last in execution order Безусловный переход не является последним в порядке выполнения. Измените график так, чтобы безусловный переход был последним в порядке выполнения. Это препятствует затенению перехода.

См. также

Проверяйте использование данных Stateflow

Проверяйте идентификатор: mathworks.slci.dataSFObjsUsage

Проверьте использование данных Stateflow, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в данных Stateflow.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Check that the chart does not define Stateflow data with Constant scope График определяет данные Stateflow с Constant возможности.Измените график, чтобы избежать определения данных Stateflow с помощью Constant возможности.
Check usage of Stateflow data Initialize MethodInitializeMethod для Local или Output Для данных scope Stateflow задано значение Parameter. Измените график, чтобы не задать InitializeMethod на Parameter. В Model Explorer для данных Stateflow с Local или Output возможности, можно задать InitializeMethod для Initial value, чтобы Expression.
Check that states and boxes do not define Stateflow dataСостояние или поле задает данные Stateflow.Измените состояние или поле так, чтобы оно не задало данные Stateflow.
Check that Stateflow data is of a supported data type Типы данных графика не builtin, enumerated, или bus. Если тип данных графика является bus и график использует C в качестве языка действий, данные являются массивом шин или имеют элементы, которые являются массивами шин. Если тип данных графика enumeratedзначение по умолчанию данных не 0.Измените типы данных графика, которые будут builtin, enumerated, или bus. Если тип данных графика bus и график использует C в качестве языка действий, измените график так, чтобы данные не были массивом шин или имели элементы, которые являются массивами шин. Если тип данных графика enumerated, обновите график так, чтобы enumerated тип данных имеет значение по умолчанию 0.
Check that the 'First Index' of Stateflow data are empty or 0The First Index свойство для данных Stateflow не пустое или 0.Измените First Index свойство Stateflow данных должно быть пустым или 0.
Check that Stateflow parameter data sizes in Stateflow and the base workspace matchРазмер данных параметра Stateflow отличается в Stateflow и базовом рабочем пространстве.Измените размер данных параметра Stateflow так, чтобы он совпадал в Stateflow и базовом рабочем пространстве.
Check that the chart uses only non-complex data На графике используются комплексные данные.Измените график так, чтобы он не использовал комплексные данные.

См. также

Проверяйте использование событий Stateflow

Проверяйте идентификатор: mathworks.slci.eventsSFObjsUsage

Проверьте использование событий Stateflow, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в событиях Stateflow.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПроверитьСостояниеРекомендуемое действие
Check that the chart uses only events of scope Local or OutputВозможности события не Output или Local.Измените графики, чтобы избежать использования входных событий.
Check that the chart uses only function-call eventsТриггер события не function-call.Измените модель так, чтобы триггер события был function-call

См. также

Проверяйте использование состояний Stateflow

Проверяйте идентификатор: mathworks.slci.statesSFObjsUsage

Проверьте использование состояний Stateflow, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в состояниях Stateflow.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПроверитьСостояниеРекомендуемое действие
Check that control flows do not have cyclesГрафик содержит циклы потока управления, которые не поддерживаются для инспекции кода.Сконфигурируйте график так, чтобы она не содержала циклов потока управления.
Check that actions do not have unsupported operations

Действие использует операцию, которая не является:

  • := или =

  • + , += , -, или -=

  • * , *=, / или /=

  • &, && или &=

  • |, || или |=

  • << или >>

  • cast()

  • ^ или ^=

  • %% или <

  • <= или ==

  • ~= или !=

  • <> или >

  • >= или ~

Измените график так, чтобы действие использовало только поддерживаемые операции.
Check for indexing in arrays that are more than one dimension

Массив из нескольких размерностей использует индексацию.

Измените состояние, чтобы использовать одномерные массивы или избегайте индексации для массивов, которые являются более чем одной размерностью.
Check that all arrays use index of type 'int32' Массив не использует индекс типа данных int32.Измените индекс массива так, чтобы он использовал тип данных int32.
Check that no actions access context-sensitive constantsДействие использует контекстно-зависимые константы, которые не поддерживаются для инспекции кода.Измените действие, чтобы избежать использования контекстно-зависимых констант.
Check that no actions access custom dataДействие обращается к пользовательским данным, которые не поддерживаются для инспекции кода.Измените действие, чтобы избежать доступа к пользовательским данным.
Check that states or substates have a default transitionГрафик имеет состояние или подсостояние без перехода по умолчанию.Сконфигурируйте график так, чтобы состояния и подсостояния имели переходы по умолчанию.
Check that actions do not have unsupported operations on enumeration type operands

Состояние использует одну из следующих неподдерживаемых операций для операнда перечисляемого типа:

  • + или +=

  • - или -=

  • * или *=

  • / или /=

  • & или &=

  • | или |=

  • ^ или ^=

  • %%

Измените состояние, чтобы избежать использования неподдерживаемых операций для операндов перечисляемого типа.
Check data type of Graphical Function argumentsСостояние задает графическую функцию вызовы с различными фактическими и ожидаемыми типами данных аргументов.Измените состояние, чтобы задать графическую функцию вызовы с совпадающими типами данных для фактических и ожидаемых аргументов.
Check dimensions of Graphical Function argumentsСостояние задает графическую функцию вызовы с различными фактическими и ожидаемыми размерами аргументов.Измените состояние, чтобы задать графическую функцию вызовы с таким же размером для фактических и ожидаемых аргументов.
Check that no actions contain a function whose argument is of an invalid data type

Математическая функция в действии не является:

  • Аргумент одиночного или двойного типа для следующих функций:

    • acos, asin, atan

    • ceil, cosh, cosh

    • exp, fabs, floor

    • fmod, ldexp, log

    • log10, pow, sin

    • sinh, sqrt, tan, tanh

  • Некулевый аргумент для следующих функций:

    • abs, max, min

  • Целый тип для labs функция.

Измените математическую функцию, чтобы использовать поддерживаемые типы данных.
Check that no actions contain an xor operator with boolean operandsДействие содержит XOR оператор с булевыми операндами с параметром модели Casting modes установленным на Standards.Измените действие, чтобы избежать использования XOR оператор с булевыми операндами или установите Casting modes на Nominal.
Check that no actions contain a binary operator whose operands are of mixed data typeДействие содержит двоичный оператор операндов смешанного типа данных, который не поддерживается для инспекции кода.Измените график, чтобы избежать использования двоичных операторов с операторами смешанного типа данных.
Check that no Stateflow functions have more than 2 argumentsФункция Stateflow имеет более 2 аргументов.Измените функцию Stateflow так, чтобы она имела не более 2 аргументов. Возможно, можно заменить функцию рядом функций, каждый из которых имеет не более 2 аргументов.
Check usage of States with recursive send function callsСостояние содержит рекурсивные вызовы функций отправки.Измените состояние так, чтобы не было рекурсий.
Check data type of Simulink Function argumentsСостояние задает вызов функции с различными фактическими и ожидаемыми типами данных аргументов.Измените состояние, чтобы задать вызовы функции Simulink, чтобы использовать совпадающие типы данных для фактических и ожидаемых аргументов.
Check dimensions of Simulink Function argumentsСостояние задает вызов функции с различными фактическими и ожидаемыми размерами аргументов.Измените состояние, чтобы задать вызовы функции Simulink, чтобы использовать те же размеры для фактических и ожидаемых аргументов.
Check usage of Stateflow state InlineOptionЗначение Function Inline Option свойства состояний состояния установлено в Auto или Function.Установите свойство состояний Function Inline Option в Inline.
Check that all states unselect ‘Create output for monitoring’ optionВыбран Create output for monitoring свойства состояний (установлено на on).Очистите параметр свойства состояний Create output for monitoring.
Check that no actions access time (t)Действие обращается ко времени, которое не поддерживается для инспекции кода.Измените действие, чтобы избежать доступа ко времени.
Check data type of truth table argumentsСостояние задает таблицу истинности с различными фактическими и ожидаемыми типами данных аргументов.Измените состояние, чтобы задать таблицы истинности, чтобы использовать совпадающие типы данных для фактических и ожидаемых аргументов.
Check dimensions of truth table argumentsСостояние задает таблицу истинности с различными фактическими и ожидаемыми размерами аргументов.Измените состояние, чтобы задать таблицы истинности, чтобы использовать те же размеры для фактических и ожидаемых аргументов.
Check that control flows are structuredСостояние содержит неструктурированные потоки управления, которые не поддерживаются для инспекции кода.Сконфигурируйте график так, чтобы он не содержал неструктурированных потоков управления.
Check that all control flows have unique default transitionsПоток управления имеет более 1 переход по умолчанию.Сконфигурируйте график так, чтобы она имела 1 переход по умолчанию.
Check that all transition paths are either inner transitions to a substate, or outer transitions to siblings, direct parent, or direct substates

Состояние использует путь перехода, который не является одним из следующих:

  • Внутренний к субстату

  • Внешняя связь с одноуровневыми узлами

  • Прямой родительский элемент

  • Непосредственное подсостояние

Сконфигурируйте переходы так, чтобы они использовали поддерживаемый путь.
Check unassigned graphical function outputsГрафик задает графическую функцию вызовы с другим количеством фактических и ожидаемых выходов.Измените график так, чтобы графические функции назначали все выходы.

См. также

Проверяйте использование графических функций Stateflow

Проверяйте идентификатор: mathworks.slci.graphicalfunctionsSFObjsUsage

Проверьте использование графических функций Stateflow, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в графических функциях Stateflow.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПроверитьСостояниеРекомендуемое действие
Check that control flows do not have cyclesГрафическая функция содержит циклы потока управления, которые не поддерживаются для инспекции кода.Сконфигурируйте графическую функцию так, чтобы она не содержала циклов потока управления.
Check usage of InlineOption settingСвойство графической функции Function Inline Option установлено в Auto.Установите свойство графической функции Function Inline Option равным Inline или Function.
Check configuration for models with non-inlined graphical functionsДля графической функции с Function Inline Option (InlineOption) установить на Function, параметр конфигурации Code interface packaging (CodeInterfacePackaging) не установлено в Nonreusable functionВ диалоговом окне Параметров конфигурации на панели Code Generation > Interface установите значение Code interface packaging (Simulink Coder) Nonreusable function.
Check non-inlined graphical function namesНе встроенная функция не имеет уникального имени функции.Измените имена функции не встроенных графических функций, чтобы они были уникальными.
Check usage of recursive Stateflow functionГрафическая функция рекурсивна.Сконфигурируйте графическую функцию так, чтобы она не была рекурсивной.
Check that control flows are structuredГрафическая функция содержит неструктурированные потоки управления, которые не поддерживаются для инспекции кода.Сконфигурируйте графическую функцию так, чтобы она не содержала неструктурированных потоков управления.

См. также

Проверяйте использование таблиц истинности Stateflow

Проверяйте идентификатор: mathworks.slci.truthtablesSFObjsUsage

Проверьте использование таблиц истинности Stateflow, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в таблицах истинности Stateflow.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПроверитьСостояниеРекомендуемое действие
Check that control flows do not have cyclesТаблица истинности содержит циклы потока управления, которые не поддерживаются для инспекции кода.Сконфигурируйте таблицу истинности так, чтобы она не содержала циклов потока управления.
Check usage of InlineOption settingСвойство Таблицы Function Inline Option установлено в Auto или Function.Установите Function Inline Option свойства таблицы истинности в Inline.
Check usage of recursive Stateflow functionТаблица истинности рекурсивна.Сконфигурируйте таблицу истинности так, чтобы она не была рекурсивной.
Check usage of Stateflow truth table languageСвойство Таблицы Language установлено в MATLAB.Установите Language значение C.
Check that control flows are structuredТаблица истинности содержит неструктурированные потоки управления, которые не поддерживаются для инспекции кода.Сконфигурируйте таблицу истинности так, чтобы она не содержала неструктурированных потоков управления.

См. также

Проверяйте использование блоков MATLAB function

Проверяйте идентификатор: mathworks.slci.MATLABFunctionBlocksUsage

Идентифицируйте блоки MATLAB Function, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в блоках MATLAB Function.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Check for block names that contain ‘/*’,’*/’, or start or end with the character ‘*’

Имя блока:

  • Содержит "*/«или» /*’.

  • Начинается или заканчивается на "*’.

Измените указанное имя блока.
Check for unsupported usage of storage classБлок является постоянным и имеет выходные порты неавтоматических классов памяти.Измените блок путем изменения класса памяти выходного сигнала или изменения шага расчета блока. Для примера, если блок или его источник является Постоянным блоком, установите шаг расчета этого блока Константы в явный непостоянный шаг расчета.
Check for unsupported testpointsБлок является постоянным, и выход тестируется.Измените блок путем либо удаления тестовых точек выхода сигнала, либо изменения шага расчета блока. Для примера, если блок или его источник является Постоянным блоком, установите шаг расчета этого блока Константы в явный непостоянный шаг расчета.
Check storage class of block outportsБлок использует неподдерживаемые пользовательские классы памяти Type, Data initialization или InitialValue (InitialValue).

Измените выход памяти выходного пользовательского сигнала:

  • Type установлено на Unstructured.

  • Data initialization задано значение, отличное от None.

  • Initial value (InitialValue) пуст.

Check for blocks with greater than two-dimensional inputs or outputsБлочный входной или выходной порт не является скаляром, вектором или 2-D матрицей.Измените входной или выходной блок, чтобы быть скаляром, вектором или 2-D матрицей.
Check whether inputs and outputs are not framedBlock inport или outport использует основанные на кадрах сигналы.Измените модель так, чтобы блоки использовали основанные на выборке входные и выходные порты. Проверяйте блоки в восходящем направлении блоков, перечисленных в результатах, на блоки, которые выводят сигналы, основанные на кадре.
Check that all MATLAB functions set ‘Update method’ to ‘Inherited’Функция MATLAB не устанавливает Update method на Inherited.Измените функцию MATLAB, чтобы задать Update method значение Inherited.
Identify Subsystems that have unsupported configurations for non-inlinedДля MATLAB Function блока Function packaging (RTWSystemCode) не установлено в Inline.Измените блок MATLAB Function, чтобы задать Function packaging (RTWSystemCode) к Inline, Nonreusable function или Reusable function. Если вы выбираете Nonreusable functionПодсистема должна быть в следующих строениях:
  • Установите Function name options значение User Specified.

  • Установите Function interface значение void-void.

  • Установите Function with separate data значение off.

  • Установите Code interface packaging параметра модели в Nonreusable function.

Если вы выбираете Reusable function, модель должна использовать следующие строения:
  • Pass reusable subsystem outputs as с Individual arguments

  • Установите Code interface packaging параметра модели в Nonreusable function.

Check that reusable subsystems in a model are from a library and are unmasked single-rate atomic or function-call subsystemsПереиспользуемые подсистемы в модели не из библиотеки и не являются демаскированными односкоростными атомарными или функциональными -вызовами. Измените переиспользуемые подсистемы в модели так, чтобы они были из библиотеки. Эти подсистемы должны быть демаскированными односкоростными атомарными или функциональными подсистемами.
Check that MATLAB functions do not contain input Trigger signalsФункция MATLAB содержит входные сигналы Trigger.Измените функцию MATLAB, чтобы удалить использование входных сигналов Trigger.
Check that blocks that are constant or whose parameters can be tuned, do not drive two or more multirate blocks without using explicit rate transition blocksБлок, который является постоянным или имеет параметры, которые могут быть настроены приводы два или более многократных блоков, не используя явные блоки Rate Transition.Измените блок, чтобы использовать явные блоки Rate Transition.
Check that all MATLAB functions set ‘Saturate on integer overflow’ to ‘Off’Функция MATLAB не очищается (установлено на off) Saturate on integer overflow (SaturateOnIntegerOverflow) параметр.Измените функцию MATLAB, чтобы удалить (установите на off) Saturate on integer overflow (SaturateOnIntegerOverflow) параметр.
Check that all MATLAB functions set ‘Treat these inherited Simulink signal types as fi objects:’ to a value other than ‘Fixed-point & Integer’Функция MATLAB устанавливает Treat these inherited Simulink signal types as fi objects равной Fixed-point & Integer.Измените функцию MATLAB, чтобы задать Treat these inherited Simulink signal types as fi objects значение кроме Fixed-point & Integer.
Check that all MATLAB functions set ‘Support variable-size arrays’ to ‘Off’Функция MATLAB не очищается (установлено на off) параметр Support variable-size arrays.Измените функцию MATLAB, чтобы удалить (установите на off) параметр Support variable-size arrays.

См. также

Проверяйте использование данных в функциях MATLAB

Проверяйте идентификатор: mathworks.slci.MATLABFunctionDataUsage

Идентифицируйте данные в функциях MATLAB, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит с данными в функциях MATLAB.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Check that data defined in MATLAB function is of a supported data typeДанные не являются поддерживаемым типом данных: встроенный, шина или перечисленный тип, унаследованный от Simulink.IntEnumType.Измените данные как поддерживаемые типы данных.
Check that data defined in MATLAB function is of a supported dimensionДанные не являются скаляром, вектором или матрицей.Измените данные, чтобы они были скаляром, вектором или матрицей.
Check that data defined in MATLAB function is non-complexДанные сложны.Измените функцию MATLAB, чтобы избежать использования комплексных данных.

См. также

Проверяйте использование корневых блоков Outport

Проверяйте идентификатор: mathworks.slci.RootOutportBlocksUsage

Проверьте использование корневых блоков Outport, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимости использования корневых блоков Outport.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Verify sample timesОдин или несколько корневых блоков Outport являются постоянными. Это приведет к тому, что функции модели не будут проверены, потому что назначение корневого исходного порта перемещается в функцию инициализации модели.Установите шаги расчета корневых блоков Outport на явные неконстантные шаги расчета.
Verify root Outports pass buses to parent models as structuresОдин или несколько корневых блоков Outport передают шину в родительскую модель, не проходя шину как структуру. Это может привести к тому, что программное обеспечение Simulink вставит скрытый блок Signal Conversion в родительскую модель, который не поддерживается для инспекции кода.Для каждого образца откройте диалоговое окно блока Outport и выберите Output as nonvirtual bus in parent model параметра (BusOutputAsStruct).

См. также

Ограничения атрибутов всей модели

Проверяйте использование автобусов

Проверяйте идентификатор: mathworks.slci.BusUsage

Проверьте использование шин, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимости использования шины.

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Check for automatic conversion between virtual to nonvirtual busesПрограммное обеспечение Simulink выполнило автоматическое преобразование из виртуальной в невиртуальную шину на интерфейсе одного или нескольких перечисленных блоков. Это создает скрытый блок преобразования сигналов, который не поддерживается для инспекции кода.Измените модель, чтобы использовать невиртуальные шины на интерфейсах перечисленных блоков.
Verify that blocks in the model do not perform unsupported operations on a busВ модели невирусный блок действует на виртуальной шине или Bus Assignment блок - на невиртуальную шину.Измените модель так, чтобы никакие невирусные блоки не работали на виртуальной шине и никакие Bus Assignment блоки не работали на невиртуальной шине. Это действие упрощает обработку шины для повышения трассируемости и читаемости сгенерированного кода.

См. также

Ограничения атрибутов всей модели

Проверяйте использование общих утилит

Проверяйте идентификатор: mathworks.slci.SharedUtils

Проверьте использование общих утилит, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и определяет несовместимость с общим использованием утилит.

Поддерживаемые общие утилиты включают:

  • binsearch_u32d

  • intrp1d_l

  • intrp2d_l

  • intrp3d_l

  • look1_binlc

  • look2_binlc

  • plook_binlc

  • rt_hypotd

  • rt_hypotf

  • rt_modd

  • rt_modf

  • rt_remd

  • rt_remf

  • rt_roundd

  • rt_roundf

Доступно с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверитьСостояниеРекомендуемое действие
Check code generation symbols settings for shared utils inspectionЗначения параметров символов генерации кода не поддерживаются для проверки общих утилит.В диалоговом окне Параметров конфигурации на панели Code Generation > Identifiers установите значение по умолчанию для Локальных временных переменных (Embedded Coder) $N$M и установите формат идентификатора общих утилит (Embedded Coder) равным значениям по умолчанию $N$C.
Check standard math library settings for shared utils inspectionСтандартные настройки математической библиотеки не поддерживаются для проверки общих утилит.В диалоговом окне Параметров конфигурации на панели Code Generation > Interface установите значение Стандартной математической библиотеки (Simulink Coder) C89/C90 (ANSI) или C99.
Check code style settings for shared utils inspectionЗначения параметров конфигурации стиля кода не поддерживаются для проверки общих утилит.

В диалоговом окне Параметров конфигурации на панели Code Generation > Code Style:

См. также

Ограничения атрибутов всей модели