Проверки Simulink Code Inspector

Simulink Code Inspector проверяет обзор

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

Смотрите также

Настройки генерации контрольного кода

ID проверки: mathworks.slci.CodeGenerationSettings

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

Описание

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

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

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

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

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

В диалоговом окне Configuration Parameters, на панели Code Generation > Interface, ясный Generate C API for: parameters (Simulink Coder).
Verify ‘signals’ setting

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

В диалоговом окне Configuration Parameters, на панели Code Generation > Interface, ясный Generate C API for: signals (Simulink Coder).
Verify ‘states’ setting

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

В диалоговом окне Configuration Parameters, на панели Code Generation > Interface, ясный Generate C API for: states (Simulink Coder).
Verify ‘root-level I/O’ setting

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

В диалоговом окне Configuration Parameters, на панели Code Generation > Interface, ясный Generate C API for: root-level I/O (Simulink Coder).
Verify ‘External mode’ setting

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

В диалоговом окне Configuration Parameters, на панели Code Generation > Interface, ясный External mode (Simulink Coder).
Verify ‘ASAP2 interface’ setting

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

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

Смотрите также

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

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

ID проверки: mathworks.slci.DataImportSettings

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

Описание

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

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

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

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

Смотрите также

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

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

ID проверки: mathworks.slci.DiagnosticsSettings

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

Описание

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

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

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

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

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

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

  • Имеет несколько продвижения путей к переходу к нему

В диалоговом окне Configuration Parameters, на панели Diagnostics > Stateflow, устанавливает Unexpected backtracking (Simulink) на error.
Verify 'Invalid input data access in chart initialization' setting

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

  • Имеет ExecuteAtInitialization набор свойств к true

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

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

Смотрите также

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

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

ID проверки: mathworks.slci.HardwareImplementationSettings

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

Описание

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

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

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

ПодпроверятьУсловиеРекомендуемое действие
Verify 'char' settingДлина в битах символьных данных для производственного оборудования не равняется 8.В диалоговом окне Configuration Parameters, на панели 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 долго долгий тип данных включено.В диалоговом окне Configuration Parameters, на панели Hardware Implementation, не выбирают Support long long.
Verify 'Test hardware is the same as production hardware' settingТестовое оборудование отличается от оборудования развертывания.В диалоговом окне Configuration Parameters выберите 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

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

ID проверки: mathworks.slci.MathandDataTypesSettings

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

Описание

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

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

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

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

Смотрите также

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

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

ID проверки: mathworks.slci.SolverSettings

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

Описание

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

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

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

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

Смотрите также

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

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

ID проверки: mathworks.slci.UnconnectedObjects

Проверяйте на неподключенные порты и линии в модели.

Описание

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

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

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

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

Смотрите также

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

Установка конечного файла системы контроля

ID проверки: 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, set System target file (Simulink Coder) к ert.tlc или ERT-выведенная цель.

Смотрите также

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

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

ID проверки: mathworks.slci.FcnSpecSettings

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

Описание

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

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

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

ПодпроверятьУсловиеРекомендуемое действие
Check C Step Function Interface settingМодель задает пользовательских прототипов функции для функций записи модели. Это не поддержано для инспекции кода.В Редакторе Simulink перспектива кода, в Коде, Сопоставляющем Редактор, выбирают вкладку Entry-Point Functions. В строке для ступенчатой функции щелкните в столбце Function Name. Кликните по трем вертикальным точкам, которые появляются. Затем нажмите Configure Prototype. В диалоговом окне Configure C Step Function Interface очистите установку Configure arguments for Step function prototype.

Смотрите также

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

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

ID проверки: 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

ID проверки: mathworks.slci.StateflowMachineEvents

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

Описание

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

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

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

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

Смотрите также

События (Stateflow)

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

ID проверки: mathworks.slci.ConditionallyExecuteInputs

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

Описание

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

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

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

ПодпроверятьУсловиеРекомендуемое действие
Verify conditional input branch execution settingПараметр конфигурации модели Conditional input branch execution выбран, но Включите локальному блоку выходные параметры, не выбран. Модель должна включить локальному блоку выходные параметры при использовании условного входного выполнения ветви.В диалоговом окне Configuration Parameters, на панели Optimization, выбирают Enable локальный блок выходные параметры.
Проверьте условную входную установку выполнения ветви при использовании блоков Multiport SwitchВыполнение ветви входа Conditional параметра конфигурации модели выбрано, но модель содержит блок Multiport Switch.В диалоговом окне Configuration Parameters, на панели Simulation Target, ясном выполнении ветви входа Conditional.

Смотрите также

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

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

ID проверки: mathworks.slci.InstrumentedSignals

Проверяйте на оснащенные сигналы в модели.

Описание

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

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

ПодпроверятьУсловиеРекомендуемое действие
Check for instrumented signals in the modelМодель содержит оснащенные сигналы.Измените модель путем удаления оснащенных сигналов.

Смотрите также

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

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

ID проверки: mathworks.slci.CodeGenFolderStructure

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

Описание

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

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

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

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

Смотрите также

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

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

ID проверки: mathworks.slci.CodeMappingDefaults

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

Описание

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

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

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

Смотрите также

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

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

ID проверки: mathworks.slci.StructureStorageClass

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

Описание

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

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

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

Смотрите также

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

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

ID проверки: 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 (:) оператор использует одни или символьные данные.

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

Check that data used in MATLAB function is of a supported data typeДанные, используемые в функции MATLAB, не имеют типа: booleanint8int16int32uint8uint16uint32единственный'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
  • Идентификаторы, используемые в присвоении, массиве, аргументах вызова функции и функциональных аргументах определения, имеют размерность, больше, чем 2D.

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

Измените идентификаторы, чтобы быть поддерживаемой размерностью.
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 операторы со значениями области значений индекса, которые не являются литеральными целыми числами const.Измените код 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Операнды точечного оператора степени не имеют типа, одного или двойного.Измените данные к поддерживаемому типу данных одного или двойных.
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 оператор имеет case-выражение, содержащее массив ячеек.Измените код MATLAB так, чтобы switch операторы не имеют case-выражений, содержащих массив ячеек.
Check that switch statements in MATLAB code use the same scalar integer type for all conditionsswitch оператор не использует тот же скалярный целочисленный тип в условиях случая и переключателе.Измените код MATLAB так, чтобы switch операторы имеют условия, которые используют тот же скалярный целочисленный тип.
Check that operators and functions in MATLAB code have supported operand dimensionscolon (:) функционируйте или операция деления в коде 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 опция.

Смотрите также

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

ID проверки: mathworks.slci.MATLABCodeAnalyzer

Проверяйте функции MATLAB на %#codegen директива, код MATLAB сообщения Анализатора, и идентификатор сообщения выравнивания.

Описание

Эта проверка сообщает относительно %#codegen директивы, код MATLAB сообщения Анализатора и идентификатор сообщения выравнивания нашли в блоках MATLAB Function и функциях MATLAB.

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

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

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

  • Выровняйте по ширине строку кода с %#ok комментарий.

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

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

  • Выровняйте по ширине строку кода с %#ok комментарий.

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

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

  • Реализуйте код MATLAB рекомендации Анализатора.

  • Выровняйте по ширине строку кода с %#ok комментарий.

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

Смотрите также

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

ID проверки: 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.

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

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

Можно осуществить эту проверку моделей библиотеки.

Разовая редактированием проверка

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

Смотрите также

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

ID проверки: 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

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

Смотрите также

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

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

ID проверки: mathworks.slci.SampleTimesUsage

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

Описание

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

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

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

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

Смотрите также

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

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

ID проверки: 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 на сигнале, вводящем импорт блока, и сконфигурируйте блок Signal Conversion, который будет исключен из сокращения блока.

Смотрите также

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

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

ID проверки: mathworks.slci.MinMaxLogging

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

Описание

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

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

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

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

Смотрите также

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

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

ID проверки: mathworks.slci.ConditionalRootOutport

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

Описание

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

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

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

ПодпроверятьУсловиеРекомендуемое действие
Verify that root Outports are not assigned conditionallyКорневой выходной порт модели, на которую ссылаются, непосредственно соединяется с условно выполняемой подсистемой, и корневой класс памяти выходного порта установлен в Auto. Инспекция кода не поддержана для подмоделей, для которых корневые выходные порты присвоены блоками в условно выполняемых подсистемах.

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

Смотрите также

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

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

ID проверки: mathworks.slci.SynthLocalDSM

Проверяйте на объекты сигнала в рабочем пространстве модели, на которые ссылаются как синтезируемые локальные хранилища данных блоки Записи Чтения или Хранилища данных Хранилища данных.

Описание

Эта проверка обновляет диаграмму модели и проверяет синтезируемое локальное использование хранилища данных. Если рабочее пространство модели имеет объекты сигнала, на которые ссылаются как синтезируемые локальные хранилища данных блоки Записи Чтения или Хранилища данных Хранилища данных, Simulink создает скрытый Блок памяти Хранилища данных на корневом уровне модели. Эта модель несовместима с инспекцией кода.

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

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

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

Смотрите также

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

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

ID проверки: mathworks.slci.BlockSortedOrder

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

Описание

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

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

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

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

Смотрите также

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

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

ID проверки: mathworks.slci.RollThreshold

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

Описание

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

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

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

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

Смотрите также

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

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

ID проверки: mathworks.slci.GlobalDSM

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

Описание

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

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

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

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

Смотрите также

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

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

ID проверки: mathworks.slci.GlobalDSMShadow

Проверки, что Блоки памяти Хранилища глобальных данных не затенены локальными Блоками памяти Хранилища данных.

Описание

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

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

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

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

Смотрите также

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

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

ID проверки: mathworks.slci.SeparateOutputAndUpdate

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

Описание

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

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

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

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

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

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

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

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

Смотрите также

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

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

ID проверки: 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.

Смотрите также

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

Проверяйте на блоки Терминатора, соединенные с выходными портами блока Model Reference

ID проверки: mathworks.slci.OutportTerminator

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

Описание

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

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

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

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

Смотрите также

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

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

ID проверки: mathworks.slci.FirstInitICPropagation

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

Описание

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

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

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

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

Смотрите также

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

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

ID проверки: 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, на панели the Code Generation > Data Type Replacement, определяет заменяющее имя к Simulink.AliasType ввод.

Смотрите также

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

ID проверки: mathworks.slci.RefModelMultirate

Описание

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

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

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

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

Смотрите также

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

ID проверки: mathworks.slci.GetSetVarUsage

Описание

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

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

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

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

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

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

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

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

Смотрите также

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

ID проверки: mathworks.slci.EnableMultiTasking

Описание

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

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

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

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

Смотрите также

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

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

ID проверки: mathworks.slci.CommentedBlocks

Описание

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

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

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

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

Смотрите также

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

ID проверки: mathworks.slci.VVSubSystemName

Описание

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

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

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

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

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

Смотрите также

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

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

ID проверки: mathworks.slci.LookupndBreakpointsDataType

Описание

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

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

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

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

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

ID проверки: mathworks.slci.ReuseSubSystemLibrary

Описание

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

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

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

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

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

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

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

ID проверки: mathworks.slci.SharedSynthLocalDSM

Описание

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

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

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

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

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

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

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

ID проверки: mathworks.slci.SourcesBlocksUsage

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

Описание

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

Доступный с 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.
Корневой импорт в модели, на которую ссылаются, не соединяется с невиртуальным блоком.Соедините корневой импорт в моделях, на которые ссылаются, с по крайней мере одним невиртуальным блоком.
Для импорта в инициированных подсистемах, Latch input by delaying outside signal (LatchByDelayingOutsideSignal) выбран (набор к on).Очистите Latch input by delaying outside signal. Чтобы сохранить фиксирующееся поведение, реструктурируйте модель путем размещения блока Unit Delay перед входным блоком в родительской схеме.
Для корневых блоков импорта, которые используют объект шины, параметры блоков Output as nonvirtual bus (BusOutputAsStruct) не выбран (набор к off).Для каждого экземпляра выберите Output as nonvirtual bus.
Inport является блоком In Bus Element.Вместо блока In Bus Element используйте блок Inport с блоком Bus Selector.

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

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

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

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

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

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

Зафиксируйте перечисленный импорт блока или выходной порт.

Смотрите также

Проверяйте использование блоков Маршрутизации Сигнала

ID проверки: mathworks.slci.SignalRoutingBlocksUsage

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

Описание

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

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

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

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

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

Зафиксируйте перечисленный импорт блока или выходной порт.
Проверяйте блоки Bus Selector

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

Зафиксируйте перечисленный импорт блока или выходной порт.
Проверяйте блоки Bus Assignment

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

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

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

  • Память Хранилища данных не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0. Если блок поддерживает шины:

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

    • Память Хранилища данных имеет массивы шин.

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

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Память Хранилища данных не является скаляром, вектором или 2D матрицей.

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

  • Пользовательский класс памяти сигнала:

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

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

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

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

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

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

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

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

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

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

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

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

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

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

Зафиксируйте перечисленный импорт блока или выходной порт.
Проверяйте блоки 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 является постоянным.Измените модель так, чтобы источник Входа 2 не был постоянным.

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

Зафиксируйте перечисленный импорт блока или выходной порт.
Проверяйте блоки 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 не был постоянным.

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

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

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

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

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

Зафиксируйте перечисленный импорт блока или выходной порт.
Проверяйте блоки SelectorПорт индекса не имеет поддерживаемого типа данных.Измените порт индекса так, чтобы это имел тип данных int8int16int32uint8uint16, или uint32.
Index Option (IndexOptionArray) установлен в Starting and ending indices (port)Установите Index Option на значение кроме Starting and ending indices (port).
Number of input dimensions (NumberOfDimensions) больше, чем 1 и индексируйте данные порта, соединяется с блоком, который выбирает или переупорядочивает вход.Полагайте, что вставка блока Signal Conversion в порте индекса или изменении данных порта индекса непрерывна.

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

Зафиксируйте перечисленный импорт блока или выходной порт.
Проверяйте блоки Vector Concatenate

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

Зафиксируйте перечисленный импорт блока или выходной порт.

Смотрите также

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

ID проверки: mathworks.slci.MathOperationsBlocksUsage

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

Описание

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

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

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

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

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

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

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

Зафиксируйте перечисленный импорт блока или выходной порт.
Проверяйте блоки 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 на явное, непостоянное значение.
Параметры блоков Saturate on integer overflow (SaturateOnIntegerOverflow) выбран и параметр конфигурации Default parameter behavior (DefaultParameterBehavior) установлен в Inlined когда источник импорта является блоком Constant или другим блоком, который является постоянным.Очистите параметр Saturate on integer overflow или измените модель так, чтобы входной источник не был постоянным блоком.

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

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

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Параметры блоков Multiplication установлены в Element-wise(.*) когда импорт Signal type является вектором или матрицей и Number of inputs (inputs) установлен в 1, * или /.Если параметры блоков Multiplication установлены в Element-wise(.*) и импорт, Signal type является вектором или матрицей, не устанавливают Number of inputs на 1, * или /.
Параметры блоков Multiplication установлены в 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 на явное, непостоянное значение.
Параметры блоков Saturate on integer overflow (SaturateOnIntegerOverflow) выбран и параметр конфигурации Default parameter behavior (DefaultParameterBehavior) установлен в Inlined когда источник импорта является блоком Constant или другим блоком, который является постоянным.Очистите параметр Saturate on integer overflow или измените модель так, чтобы никакой источник импорта не был постоянным блоком.

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

Зафиксируйте перечисленный импорт блока или выходной порт.
Блоки Контрольной суммыПорты ввода и вывода не имеют совпадающего типа данных.Измените типы данных порта, чтобы соответствовать.
Параметры блоков 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).

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

Очистите параметр Saturate on integer overflow или измените модель так, чтобы никакой источник импорта не был постоянным блоком.
Блок имеет один векторный вход и параметр Saturate on integer overflow (SaturateOnIntegerOverflow) выбран (набор к on).Очистите параметр Saturate on integer overflow.

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

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

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

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

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

Зафиксируйте перечисленный импорт блока или выходной порт.
Проверяйте блоки Rounding Function

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

  • Блокируйте импорт, или выходной порт не имеет типа данных double или single. Если блок поддерживает шины:

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

    • Порт имеет массивы шин.

    • Порт имеет шины с элементами, которые являются массивами шин.

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

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

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

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

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

Зафиксируйте перечисленный импорт блока или выходной порт.
Проверяйте блоки 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

Блокируйте входные параметры, и типами данных выходных портов не является single или double.Зафиксируйте перечисленный импорт блока или выходной порт.

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

Зафиксируйте перечисленный импорт блока или выходной порт.
Проверяйте блоки AssignmentПорт индекса не имеет поддерживаемого типа данных.Измените порт индекса так, чтобы это имел тип данных int8int16int32uint8uint16, или uint32.

Initialize output (Y) (OutputInitialize) должен быть установлен в Initialize using input port <Y0>.

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

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

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

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

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

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

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

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

Зафиксируйте перечисленный импорт блока или выходной порт.

Смотрите также

Проверяйте использование блоков Атрибутов Сигнала

ID проверки: mathworks.slci.SignalAttributesBlocksUsage

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

Описание

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

Доступный с 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 на явное, непостоянное значение.
Параметры блоков Saturate on integer overflow (SaturateOnIntegerOverflow) выбран и параметр конфигурации Default parameter behavior (DefaultParameterBehavior) установлен в Inlined когда источник импорта является блоком Constant или другим блоком, который является постоянным.Очистите параметр Saturate on integer overflow или измените модель так, чтобы входной источник не был постоянным блоком.

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

Зафиксируйте перечисленный импорт блока или выходной порт.
Проверяйте блоки Data Type Duplicate

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

Зафиксируйте перечисленный импорт блока или выходной порт.
Проверяйте блоки Data Type Propagation
  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0. Если блок поддерживает шины:

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

    • Порт имеет массивы шин.

    • Порт имеет шины с элементами, которые являются массивами шин.

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

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

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

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

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

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

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

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

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

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

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

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

Зафиксируйте перечисленный импорт блока или выходной порт.
Проверяйте блоки 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.

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

Зафиксируйте перечисленный импорт блока или выходной порт.
Проверяйте блоки 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, и не имел двух или больше размерностей.

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

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

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

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

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

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

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

  • 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 (устройство вывода)

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

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

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

Зафиксируйте перечисленный импорт блока или выходной порт.

Смотрите также

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

ID проверки: mathworks.slci.LogicalandBitOperationsBlocksUsage

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

Описание

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

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

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

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

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

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

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

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

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

Зафиксируйте перечисленный импорт блока или выходной порт.
Проверяйте блоки ArithShiftDiagnostic 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, который является в допустимой области значений типа данных импорта.

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

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

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

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

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

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

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

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

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

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

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

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

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

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

Зафиксируйте перечисленный импорт блока или выходной порт.
Проверяйте блоки Combinatorial Logic

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

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

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

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

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

  • Блокируйте выход пользовательский класс памяти сигнала:

    • Type не установлен в Unstructured.

    • Data initialization установлен в None.

  • Блокируйтесь выходной порт ссылается на объект сигнала с непустым начальным значением.

  • Блок является постоянным, и выходной порт является testpointed.

  • Блокируйтесь класс памяти выходного сигнала не установлен в Auto когда блок является постоянным.

  • Блокируйтесь, который является постоянным или имеет параметры, которые могут быть настроены, управляет двумя или больше многоскоростными блоками, не используя явные блоки Перехода Уровня.

Зафиксируйте перечисленный импорт блока или выходной порт.

Смотрите также

Проверяйте использование блоков Интерполяционных таблиц

ID проверки: 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.
Для Breakpoints specification (BreakpointsSpecification) установите на Explicit values, параметры блоков Breakpoints являются пустыми, являются неличными, используют выбор области значений или переменную индексацию на элементах структур MATLAB, являются комплексными, или имеют две или больше размерности.Зафиксируйте установку Breakpoints 1.
Breakpoints > Data Type не использует совпадающий тип данных в качестве входа блока.Измените типы данных, чтобы соответствовать. Или рассмотрите установку Breakpoints > Data Type к Inherit: Same as corresponding input
Параметры блоков Table data (TableDataTypeStr) не использует совпадающий тип данных в качестве блока выход.Измените типы данных, чтобы соответствовать.
Параметры блоков Intermediate Results (IntermediateResultsDataTypeStr) не использует совпадающий тип данных в качестве блока выход.Измените типы данных, чтобы соответствовать.
Блокируйтесь или блокируйтесь, выходной порт является постоянным.Установите шаг расчета блока или блокируйте выходной порт к явному, непостоянному шагу расчета.
Параметры блоков Use one input port for all input data (UseOneInputPortForAllInputData) выбран.Очистите Use one input port for all input data.

Нарушает ограничение, которое применяется ко всем блокам:

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

  • Блокируйте импорт, или выходной порт является комплексным.

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

  • Блокируйте импорт, или выходной порт использует основанные на системе координат сигналы.

  • Блокируйте выход пользовательский класс памяти сигнала:

    • Type не установлен в Unstructured.

    • Data initialization установлен в None.

  • Блокируйтесь выходной порт ссылается на объект сигнала с непустым начальным значением.

  • Блок является постоянным, и выходной порт является testpointed.

  • Блокируйтесь класс памяти выходного сигнала не установлен в Auto когда блок является постоянным.

  • Блокируйтесь, который является постоянным или имеет параметры, которые могут быть настроены, управляет двумя или больше многоскоростными блоками, не используя явные блоки Перехода Уровня.

Зафиксируйте перечисленный импорт блока или выходной порт.
Проверяйте блоки 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.
Параметры блоков Output selection не установлены в Index and fraction.Установите Output selection на Index and fraction.
Параметры блоков Breakpoint > Data Type не установлены в Inherit: Same as inputединственный, или double.Установите Breakpoint > Data Type на Inherit: Same as inputединственный, или 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.

Нарушает ограничение, которое применяется ко всем блокам:

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

  • Блокируйте импорт, или выходной порт является комплексным.

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

  • Блокируйте импорт, или выходной порт использует основанные на системе координат сигналы.

  • Блокируйте выход пользовательский класс памяти сигнала:

    • Type не установлен в Unstructured.

    • Data initialization установлен в None.

  • Блокируйтесь выходной порт ссылается на объект сигнала с непустым начальным значением.

  • Блок является постоянным, и выходной порт является testpointed.

  • Блокируйтесь класс памяти выходного сигнала не установлен в Auto когда блок является постоянным.

  • Блокируйтесь, который является постоянным или имеет параметры, которые могут быть настроены, управляет двумя или больше многоскоростными блоками, не используя явные блоки Перехода Уровня.

Зафиксируйте перечисленный импорт блока или выходной порт.
Проверяйте блоки Interpolation Using PrelookupIntermediate 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единственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

  • Блокируйте импорт, или выходной порт является комплексным.

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей.

  • Блокируйте импорт, или выходной порт использует основанные на системе координат сигналы.

  • Блокируйте выход пользовательский класс памяти сигнала:

    • Type не установлен в Unstructured.

    • Data initialization установлен в None.

  • Блокируйтесь выходной порт ссылается на объект сигнала с непустым начальным значением.

  • Блок является постоянным, и выходной порт является testpointed.

  • Блокируйтесь класс памяти выходного сигнала не установлен в Auto когда блок является постоянным.

  • Блокируйтесь, который является постоянным или имеет параметры, которые могут быть настроены, управляет двумя или больше многоскоростными блоками, не используя явные блоки Перехода Уровня.

Зафиксируйте перечисленный импорт блока или выходной порт.

Смотрите также

Проверяйте использование Пользовательских Функциональных блоков

ID проверки: mathworks.slci.UserDefinedFunctionBlocksUsage

Проверяйте на использование Пользовательских Функциональных блоков, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимостях, которые это находит в Пользовательских Функциональных блоках.

Доступный с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверятьУсловиеРекомендуемое действие
Проверяйте блоки S-FunctionS-функция не была создана с помощью текущего релиза Legacy Code Tool.Если возможно, создайте S-функцию с помощью 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 не был комплексным или неличным.
Интегрированная модель блока S-function SIL использует глобальную переменную в корневом порте ввода или вывода.Измените модель так, чтобы она не использовала глобальные переменные в корневых портах ввода или вывода.

Нарушает ограничение, которое применяется ко всем блокам:

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

  • Блокируйте импорт, или выходной порт является комплексным.

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

  • Блокируйте импорт, или выходной порт использует основанные на системе координат сигналы.

  • Блокируйте выход пользовательский класс памяти сигнала:

    • Type не установлен в Unstructured.

    • Data initialization установлен в None.

  • Блокируйтесь выходной порт ссылается на объект сигнала с непустым начальным значением.

  • Блок является постоянным, и выходной порт является testpointed.

  • Блокируйтесь класс памяти выходного сигнала не установлен в Auto когда блок является постоянным.

  • Блокируйтесь, который является постоянным или имеет параметры, которые могут быть настроены, управляет двумя или больше многоскоростными блоками, не используя явные блоки Перехода Уровня.

Зафиксируйте перечисленный импорт блока или выходной порт.
Проверяйте блоки FcnБлок содержит недопустимые операции.

Измените блок, чтобы содержать только поддерживаемые операции:

  • Арифметика: +,-,*,/,^

  • Реляционный: ==,>,<,>=,<=

  • Логический: &&,||

  • Математический: absacosasinatanatan2потолокпотому чтоexpполhypotжурналlog10rem, sintan

  • Другой: u(input), постоянные литералы, круглые скобки, векторная индексация

Блок содержит неподдерживаемые переменные.Измените блок так, чтобы он только использовал u как имя переменной.

Нарушает ограничение, которое применяется ко всем блокам:

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

  • Блокируйте импорт, или выходной порт является комплексным.

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

  • Блокируйте импорт, или выходной порт использует основанные на системе координат сигналы.

  • Блокируйте выход пользовательский класс памяти сигнала:

    • Type не установлен в Unstructured.

    • Data initialization установлен в None.

  • Блокируйтесь выходной порт ссылается на объект сигнала с непустым начальным значением.

  • Блок является постоянным, и выходной порт является testpointed.

  • Блокируйтесь класс памяти выходного сигнала не установлен в Auto когда блок является постоянным.

  • Блокируйтесь, который является постоянным или имеет параметры, которые могут быть настроены, управляет двумя или больше многоскоростными блоками, не используя явные блоки Перехода Уровня.

Зафиксируйте перечисленный импорт блока или выходной порт.

Смотрите также

Проверяйте использование блоков Подсистем и Портов

ID проверки: mathworks.slci.PortsandSubsystemsBlocksUsage

Проверяйте на использование Портов и блоков Подсистем, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимостях, которые это находит в блоках Подсистем и Портах.

Доступный с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверятьУсловиеРекомендуемое действие
Проверяйте блоки EnableСигнал, вводящий разрешать порт, не имеет типа данных boolean.Зафиксируйте тип данных сигнала.
Разрешать Блокировка порта расположена на корневом уровне модели.Удалите или переместите Разрешать Блокировку порта.
Default parameter behavior (DefaultParameterBehavior) установлен в Inlined и сигнал, вводящий Разрешать Порт родительской подсистемы, является постоянным.Измените модель так, чтобы сигнал, вводящий Разрешать Порт родительской подсистемы, не был постоянным.

Нарушает ограничение, которое применяется ко всем блокам:

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

  • Блокируйте импорт, или выходной порт является комплексным.

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

  • Блокируйте импорт, или выходной порт использует основанные на системе координат сигналы.

  • Блокируйте выход пользовательский класс памяти сигнала:

    • Type не установлен в Unstructured.

    • Data initialization установлен в None.

  • Блокируйтесь выходной порт ссылается на объект сигнала с непустым начальным значением.

  • Блок является постоянным, и выходной порт является testpointed.

  • Блокируйтесь класс памяти выходного сигнала не установлен в Auto когда блок является постоянным.

  • Блокируйтесь, который является постоянным или имеет параметры, которые могут быть настроены, управляет двумя или больше многоскоростными блоками, не используя явные блоки Перехода Уровня.

Зафиксируйте перечисленный импорт блока или выходной порт.
Проверяйте блоки Model ReferenceЗначение, которое задано в Arguments> Model arguments (ParameterArgumentValues) является комплексным или неличным.Измените модель так, чтобы значения, заданные в Model arguments, не были комплексными или неличными.
Блок находится в защищенном режиме.Удалите защиту от модели - ссылки. Для получения дополнительной информации смотрите, Защищают Модели, чтобы Скрыть Содержимое (Simulink Coder).
Блокируйтесь или блокируйтесь, выходной порт является постоянным.Установите шаг расчета блока или блокируйте выходной порт к явному, непостоянному шагу расчета.
Блок имеет несколько шагов расчета.Измените цель модели-ссылки так, чтобы блок Model Reference имел один шаг расчета.

Блокируйтесь входной порт не является одним из следующих поддерживаемых типов данных:

  • Перечислимый тип наследован от Simulink.IntEnumType со значением по умолчанию 0.

  • Скалярная шина, элементы которой среди следующих поддерживаемых типов данных: doubleединственныйint8uint8int16uint16int32uint32, или 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 перед входным блоком вне блока модели - ссылки.

Нарушает ограничение, которое применяется ко всем блокам:

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

  • Блокируйте импорт, или выходной порт является комплексным.

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

  • Блокируйте импорт, или выходной порт использует основанные на системе координат сигналы.

  • Блокируйте выход пользовательский класс памяти сигнала:

    • Type не установлен в Unstructured.

    • Data initialization установлен в None.

  • Блокируйтесь выходной порт ссылается на объект сигнала с непустым начальным значением.

  • Блок является постоянным, и выходной порт является testpointed.

  • Блокируйтесь класс памяти выходного сигнала не установлен в Auto когда блок является постоянным.

  • Блокируйтесь, который является постоянным или имеет параметры, которые могут быть настроены, управляет двумя или больше многоскоростными блоками, не используя явные блоки Перехода Уровня.

Зафиксируйте перечисленный импорт блока или выходной порт.
Проверяйте блоки SubsystemВарианты подсистемы не имеют того же количества портов.

Если возможно, реконфигурируйте модель так, чтобы различные подсистемы имели то же количество портов.

Подсистема не является одним из следующего:

  • Виртуальный

  • Enabled

  • Вызов функции

  • Если действие

  • Встроенный атомарный

  • Инициированный

Если возможно, реконфигурируйте подсистему, чтобы быть любой виртуальными (очистите параметр блока Subsystem Treat as atomic unit), или встроенное атомарное, активированное, вызов функции, если действие, или инициировал подсистему. В качестве альтернативы перенесите подсистему в блок Model или исследуйте другие опции реализации.

Подсистемой является Функциональный блок Simulink.

Измените модель, чтобы удалить Функциональные блоки Simulink.

Для блоков с вариантами применяется любое из этих условий:

  • 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.

Параметры блоков Propagate execution context across subsystem boundary (PropExecContextOutsideSubsystem) выбран.

Очистите Propagate execution context across subsystem boundary.

Для невиртуальных подсистем, 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

  • Допускающая повторное использование подсистема не от библиотеки.

  • Допускающая повторное использование подсистема не является размаскированным односкоростным атомарным или подсистемой вызова функций.

  • Зафиксируйте параметры блоков и параметры модели.

  • Измените допускающие повторное использование подсистемы так, чтобы они были от библиотеки и были размаскированы, односкоростные атомарный или подсистемы вызова функций.

Нарушает ограничение, которое применяется ко всем блокам:

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

  • Блокируйте импорт, или выходной порт является комплексным.

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

  • Блокируйте импорт, или выходной порт использует основанные на системе координат сигналы.

  • Блокируйте выход пользовательский класс памяти сигнала:

    • Type не установлен в Unstructured.

    • Data initialization установлен в None.

  • Блокируйтесь выходной порт ссылается на объект сигнала с непустым начальным значением.

  • Блок является постоянным, и выходной порт является testpointed.

  • Блокируйтесь класс памяти выходного сигнала не установлен в Auto когда блок является постоянным.

  • Блокируйтесь, который является постоянным или имеет параметры, которые могут быть настроены, управляет двумя или больше многоскоростными блоками, не используя явные блоки Перехода Уровня.

Зафиксируйте перечисленный импорт блока или выходной порт.
Проверяйте блоки TriggerВ родительской подсистеме сигнал, вводящий триггерный порт, не является скаляром.Сконфигурируйте сигнал, вводящий триггерный порт родительской подсистемы, чтобы быть скаляром.
В родительской подсистеме сигналом, вводящим триггерный порт, не является boolean тип данных, когда Trigger type (TriggerType) isrising, 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 и сигнал, вводящий Триггерный Порт родительской подсистемы, является постоянным.Измените модель так, чтобы сигнал, вводящий Триггерный Порт родительской подсистемы, не был постоянным.
Типом данных выходных портов не является autoint8 или double.Зафиксируйте тип данных выходного порта.
Параметры блоков Initial trigger signal state (InitialTriggerSignalState) не установлен в compatibility (no trigger on first evaluation) или zero.Установите Initial trigger signal state на compatibility (no trigger on first evaluation) или zero.

Нарушает ограничение, которое применяется ко всем блокам:

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

  • Блокируйте импорт, или выходной порт является комплексным.

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

  • Блокируйте импорт, или выходной порт использует основанные на системе координат сигналы.

  • Блокируйте выход пользовательский класс памяти сигнала:

    • Type не установлен в Unstructured.

    • Data initialization установлен в None.

  • Блокируйтесь выходной порт ссылается на объект сигнала с непустым начальным значением.

  • Блок является постоянным, и выходной порт является testpointed.

  • Блокируйтесь класс памяти выходного сигнала не установлен в Auto когда блок является постоянным.

  • Блокируйтесь, который является постоянным или имеет параметры, которые могут быть настроены, управляет двумя или больше многоскоростными блоками, не используя явные блоки Перехода Уровня.

Зафиксируйте перечисленный импорт блока или выходной порт
Проверяйте блоки Action Port

Нарушает ограничение, которое применяется ко всем блокам:

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

  • Блокируйте импорт, или выходной порт является комплексным.

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

  • Блокируйте импорт, или выходной порт использует основанные на системе координат сигналы.

  • Блокируйте выход пользовательский класс памяти сигнала:

    • Type не установлен в Unstructured.

    • Data initialization установлен в None.

  • Блокируйтесь выходной порт ссылается на объект сигнала с непустым начальным значением.

  • Блок является постоянным, и выходной порт является testpointed.

  • Блокируйтесь класс памяти выходного сигнала не установлен в Auto когда блок является постоянным.

  • Блокируйтесь, который является постоянным или имеет параметры, которые могут быть настроены, управляет двумя или больше многоскоростными блоками, не используя явные блоки Перехода Уровня.

Зафиксируйте перечисленный импорт блока или выходной порт.
Проверяйте блоки IfМесто назначения блока является блоком терминатора строки или пустой подсистемой действия.Измените модель так, чтобы место назначения блока не было блоком терминатора строки или пустой подсистемой действия.
Default parameter behavior (DefaultParameterBehavior) установлен в Inlined и источник Inport 1 является постоянным.Измените модель так, чтобы источник Входа 1 не был постоянным.

Нарушает ограничение, которое применяется ко всем блокам:

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

  • Блокируйте импорт, или выходной порт является комплексным.

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

  • Блокируйте импорт, или выходной порт использует основанные на системе координат сигналы.

  • Блокируйте выход пользовательский класс памяти сигнала:

    • Type не установлен в Unstructured.

    • Data initialization установлен в None.

  • Блокируйтесь выходной порт ссылается на объект сигнала с непустым начальным значением.

  • Блок является постоянным, и выходной порт является testpointed.

  • Блокируйтесь класс памяти выходного сигнала не установлен в Auto когда блок является постоянным.

  • Блокируйтесь, который является постоянным или имеет параметры, которые могут быть настроены, управляет двумя или больше многоскоростными блоками, не используя явные блоки Перехода Уровня.

Зафиксируйте перечисленный импорт блока или выходной порт.
Проверяйте блоки Function-Call GeneratorБлок имеет больше чем одно место назначения.Измените модель так, чтобы блок имел одно место назначения.
Number of iterations (numberOfIterations) не установлен в 1.Установите Number of iterations на 1.

Нарушает ограничение, которое применяется ко всем блокам:

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

  • Блокируйте импорт, или выходной порт является комплексным.

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

  • Блокируйте импорт, или выходной порт использует основанные на системе координат сигналы.

  • Блокируйте выход пользовательский класс памяти сигнала:

    • Type не установлен в Unstructured.

    • Data initialization установлен в None.

  • Блокируйтесь выходной порт ссылается на объект сигнала с непустым начальным значением.

  • Блок является постоянным, и выходной порт является testpointed.

  • Блокируйтесь класс памяти выходного сигнала не установлен в Auto когда блок является постоянным.

  • Блокируйтесь, который является постоянным или имеет параметры, которые могут быть настроены, управляет двумя или больше многоскоростными блоками, не используя явные блоки Перехода Уровня.

Зафиксируйте перечисленный импорт блока или выходной порт.
Проверяйте блоки Function-Call Split

Нарушает ограничение, которое применяется ко всем блокам:

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

  • Блокируйте импорт, или выходной порт является комплексным.

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

  • Блокируйте импорт, или выходной порт использует основанные на системе координат сигналы.

  • Блокируйте выход пользовательский класс памяти сигнала:

    • Type не установлен в Unstructured.

    • Data initialization установлен в None.

  • Блокируйтесь выходной порт ссылается на объект сигнала с непустым начальным значением.

  • Блок является постоянным, и выходной порт является testpointed.

  • Блокируйтесь класс памяти выходного сигнала не установлен в Auto когда блок является постоянным.

  • Блокируйтесь, который является постоянным или имеет параметры, которые могут быть настроены, управляет двумя или больше многоскоростными блоками, не используя явные блоки Перехода Уровня.

Зафиксируйте перечисленный импорт блока или выходной порт.
Проверяйте блоки Switch CaseМесто назначения блока является блоком терминатора строки или пустой подсистемой действия.Измените модель так, чтобы место назначения блока не было блоком терминатора строки или пустой подсистемой действия.
Default parameter behavior (DefaultParameterBehavior) установлен в Inlined, и источник Inport 1 является постоянным.Измените модель так, чтобы источник Входа 1 не был постоянным.

Нарушает ограничение, которое применяется ко всем блокам:

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

  • Блокируйте импорт, или выходной порт является комплексным.

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

  • Блокируйте импорт, или выходной порт использует основанные на системе координат сигналы.

  • Блокируйте выход пользовательский класс памяти сигнала:

    • Type не установлен в Unstructured.

    • Data initialization установлен в None.

  • Блокируйтесь выходной порт ссылается на объект сигнала с непустым начальным значением.

  • Блок является постоянным, и выходной порт является testpointed.

  • Блокируйтесь класс памяти выходного сигнала не установлен в Auto когда блок является постоянным.

  • Блокируйтесь, который является постоянным или имеет параметры, которые могут быть настроены, управляет двумя или больше многоскоростными блоками, не используя явные блоки Перехода Уровня.

Зафиксируйте перечисленный импорт блока или выходной порт.
Проверяйте блоки 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 на int32int16, или int8.
Подсистема For Iterator имеет настраиваемый параметр для внутреннего предела итерации.Установите Default parameter behavior (DefaultParameterBehavior) к Inlined или измените внутренний предел итерации так, чтобы это не был настраиваемый параметр.

Нарушает ограничение, которое применяется ко всем блокам:

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

  • Блокируйте импорт, или выходной порт является комплексным.

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

  • Блокируйте импорт, или выходной порт использует основанные на системе координат сигналы.

  • Блокируйте выход пользовательский класс памяти сигнала:

    • Type не установлен в Unstructured.

    • Data initialization установлен в None.

  • Блокируйтесь выходной порт ссылается на объект сигнала с непустым начальным значением.

  • Блок является постоянным, и выходной порт является testpointed.

  • Блокируйтесь класс памяти выходного сигнала не установлен в Auto когда блок является постоянным.

  • Блокируйтесь, который является постоянным или имеет параметры, которые могут быть настроены, управляет двумя или больше многоскоростными блоками, не используя явные блоки Перехода Уровня.

Зафиксируйте перечисленный импорт блока или выходной порт.
Проверяйте блоки For EachInput 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.

Нарушает ограничение, которое применяется ко всем блокам:

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

  • Блокируйте импорт, или выходной порт является комплексным.

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

  • Блокируйте импорт, или выходной порт использует основанные на системе координат сигналы.

  • Блокируйте выход пользовательский класс памяти сигнала:

    • Type не установлен в Unstructured.

    • Data initialization установлен в None.

  • Блокируйтесь выходной порт ссылается на объект сигнала с непустым начальным значением.

  • Блок является постоянным, и выходной порт является testpointed.

  • Блокируйтесь класс памяти выходного сигнала не установлен в Auto когда блок является постоянным.

  • Блокируйтесь, который является постоянным или имеет параметры, которые могут быть настроены, управляет двумя или больше многоскоростными блоками, не используя явные блоки Перехода Уровня.

Зафиксируйте перечисленный импорт блока или выходной порт.

Смотрите также

Проверяйте использование блоков Разрывов

ID проверки: mathworks.slci.DiscontinuitiesBlocksUsage

Проверяйте на использование блоков Разрывов, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимостях, которые это находит в блоках Разрывов.

Доступный с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверятьУсловиеРекомендуемое действие
Проверка Насыщает блокиПорты ввода и вывода не имеют совпадающего типа данных.Измените типы данных порта, чтобы соответствовать.
Параметры блоков Upper limit (UpperLimit) является пустым, является неличным, использует выбор области значений или переменную индексацию на элементах структур MATLAB, является комплексным, или имеет две или больше размерности.Зафиксируйте установку Upper limit.
Параметры блоков Lower limit (LowerLimit) является пустым, является неличным, использует выбор области значений или переменную индексацию на элементах структур MATLAB, является комплексным, или имеет две или больше размерности.Зафиксируйте установку Lower limit.
Параметры блоков UpperLimitSource не установлен в dialog. Используйте параметры блоков Upper limit, а не входные порты, чтобы задать верхний предел.
Параметры блоков LowerLimitSource не установлен в dialog.Используйте параметры блоков Lower limit, а не входные порты, чтобы задать нижний предел.
Параметры блоков Integer rounding mode (RndMeth) установлен в неподдерживаемое значение.Установите Integer rounding mode на Zero или Floor.

Нарушает ограничение, которое применяется ко всем блокам:

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

  • Блокируйте импорт, или выходной порт является комплексным.

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

  • Блокируйте импорт, или выходной порт использует основанные на системе координат сигналы.

  • Блокируйте выход пользовательский класс памяти сигнала:

    • Type не установлен в Unstructured.

    • Data initialization установлен в None.

  • Блокируйтесь выходной порт ссылается на объект сигнала с непустым начальным значением.

  • Блок является постоянным, и выходной порт является testpointed.

  • Блокируйтесь класс памяти выходного сигнала не установлен в Auto когда блок является постоянным.

  • Блокируйтесь, который является постоянным или имеет параметры, которые могут быть настроены, управляет двумя или больше многоскоростными блоками, не используя явные блоки Перехода Уровня.

Зафиксируйте перечисленный импорт блока или выходной порт.
Проверяйте Релейные блокиПараметры блоков 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.

Смотрите также

Проверяйте использование блоков Приемников

ID проверки: mathworks.slci.SinksBlocksUsage

Проверяйте на использование блоков Приемников, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимостях, которые это находит в блоках Приемников.

Доступный с 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.В Model Data Editor, набор Storage Class к Auto.
Выходной порт является блоком Out Bus Element.Вместо блока Out Bus Element используйте блок Outport с блоком Bus Creator.

Нарушает ограничение, которое применяется ко всем блокам:

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

  • Блокируйте импорт, или выходной порт является комплексным.

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

  • Блокируйте импорт, или выходной порт использует основанные на системе координат сигналы.

  • Блокируйте выход пользовательский класс памяти сигнала:

    • Type не установлен в Unstructured.

    • Data initialization установлен в None.

  • Блокируйтесь выходной порт ссылается на объект сигнала с непустым начальным значением.

  • Блок является постоянным, и выходной порт является testpointed.

  • Блокируйтесь класс памяти выходного сигнала не установлен в Auto когда блок является постоянным.

  • Блокируйтесь, который является постоянным или имеет параметры, которые могут быть настроены, управляет двумя или больше многоскоростными блоками, не используя явные блоки Перехода Уровня.

Зафиксируйте перечисленный импорт блока или выходной порт.
Проверяйте блоки Terminator

Нарушает ограничение, которое применяется ко всем блокам:

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

  • Блокируйте импорт, или выходной порт является комплексным.

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

  • Блокируйте импорт, или выходной порт использует основанные на системе координат сигналы.

  • Блокируйте выход пользовательский класс памяти сигнала:

    • Type не установлен в Unstructured.

    • Data initialization установлен в None.

  • Блокируйтесь выходной порт ссылается на объект сигнала с непустым начальным значением.

  • Блок является постоянным, и выходной порт является testpointed.

  • Блокируйтесь класс памяти выходного сигнала не установлен в Auto когда блок является постоянным.

  • Блокируйтесь, который является постоянным или имеет параметры, которые могут быть настроены, управляет двумя или больше многоскоростными блоками, не используя явные блоки Перехода Уровня.

Зафиксируйте перечисленный импорт блока или выходной порт.

Смотрите также

Проверяйте использование Дискретных блоков

ID проверки: 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.

Нарушает ограничение, которое применяется ко всем блокам:

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

  • Блокируйте импорт, или выходной порт является комплексным.

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

  • Блокируйте импорт, или выходной порт использует основанные на системе координат сигналы.

  • Блокируйте выход пользовательский класс памяти сигнала:

    • Type не установлен в Unstructured.

    • Data initialization установлен в None.

  • Блокируйтесь выходной порт ссылается на объект сигнала с непустым начальным значением.

  • Блок является постоянным, и выходной порт является testpointed.

  • Блокируйтесь класс памяти выходного сигнала не установлен в Auto когда блок является постоянным.

  • Блокируйтесь, который является постоянным или имеет параметры, которые могут быть настроены, управляет двумя или больше многоскоростными блоками, не используя явные блоки Перехода Уровня.

Зафиксируйте перечисленный импорт блока или выходной порт.
Проверяйте блоки Discrete IntegratorТипами данных Input port не является single или double для портов несброса.Измените типы данных входных портов, чтобы быть single или double для портов несброса.
Inports и выходные порты не являются скалярами.Измените импорт или выходные порты, чтобы быть скалярами.
Типами данных выходных портов не является 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.

Измените пользовательский класс памяти.
Состояние блока решает к объекту сигнала с непустым начальным значением.Измените объект сигнала.

Нарушает ограничение, которое применяется ко всем блокам:

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

  • Блокируйте импорт, или выходной порт является комплексным.

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

  • Блокируйте импорт, или выходной порт использует основанные на системе координат сигналы.

  • Блокируйте выход пользовательский класс памяти сигнала:

    • Type не установлен в Unstructured.

    • Data initialization установлен в None.

  • Блокируйтесь выходной порт ссылается на объект сигнала с непустым начальным значением.

  • Блок является постоянным, и выходной порт является testpointed.

  • Блокируйтесь класс памяти выходного сигнала не установлен в Auto когда блок является постоянным.

  • Блокируйтесь, который является постоянным или имеет параметры, которые могут быть настроены, управляет двумя или больше многоскоростными блоками, не используя явные блоки Перехода Уровня.

Зафиксируйте перечисленный импорт блока или выходной порт.
Проверяйте блоки DelayПараметры блоков Input processing (InputProcessing) установлен в Columns as channels (frame based).Установите Input processing на что-то другое, чем Columns as channels (frame based).
Параметры блоков Show enable port (ShowEnablePort) выбран.Очистите Show enable port.

Нарушает ограничение, которое применяется ко всем блокам:

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

  • Блокируйте импорт, или выходной порт является комплексным.

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

  • Блокируйте импорт, или выходной порт использует основанные на системе координат сигналы.

  • Блокируйте выход пользовательский класс памяти сигнала:

    • Type не установлен в Unstructured.

    • Data initialization установлен в None.

  • Блокируйтесь выходной порт ссылается на объект сигнала с непустым начальным значением.

  • Блок является постоянным, и выходной порт является testpointed.

  • Блокируйтесь класс памяти выходного сигнала не установлен в Auto когда блок является постоянным.

  • Блокируйтесь, который является постоянным или имеет параметры, которые могут быть настроены, управляет двумя или больше многоскоростными блоками, не используя явные блоки Перехода Уровня.

 

Смотрите также

Проверяйте использование блоков Stateflow

ID проверки: mathworks.slci.StateflowBlocksUsage

Проверяйте на использование блоков Stateflow, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимостях, которые это находит в блоках Stateflow.

Доступный с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПроверятьУсловиеРекомендуемое действие
Check Stateflow blocksFunction packaging (RTWSystemCode) не установлен в Inline.Установите Function packaging на Inline.

Нарушает ограничение, которое применяется ко всем блокам:

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

  • Блокируйте импорт, или выходной порт является комплексным.

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

  • Блокируйте импорт, или выходной порт использует основанные на системе координат сигналы.

  • Блокируйте выход пользовательский класс памяти сигнала:

    • Type не установлен в Unstructured.

    • Data initialization установлен в None.

  • Блокируйтесь выходной порт ссылается на объект сигнала с непустым начальным значением.

  • Блок является постоянным, и выходной порт является testpointed.

  • Блокируйтесь класс памяти выходного сигнала не установлен в Auto когда блок является постоянным.

  • Блокируйтесь, который является постоянным или имеет параметры, которые могут быть настроены, управляет двумя или больше многоскоростными блоками, не используя явные блоки Перехода Уровня.

Зафиксируйте перечисленный импорт блока или выходной порт.

Смотрите также

Проверяйте использование блоков Строки

ID проверки: mathworks.slci.StringBlocksUsage

Идентифицируйте использование блоков Строки, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимостях, которые это находит в блоках Строки.

Результаты и рекомендуемые действия

ПодпроверятьУсловиеРекомендуемое действие
Проверяйте блоки ASCII to StringРазмерность входа больше или равна значению Buffer size параметра динамически измеренной строки (байты).Зафиксируйте входную размерность.

Нарушает ограничение, которое применяется ко всем блокам:

  • Блокируйте импорт, или выходной порт не имеет типа данных doubleединственныйint8uint8int16uint16int32uint32, boolean, или перечисление, наследованное от Simulink.IntEnumType со значением по умолчанию 0.

  • Если блок поддерживает шины:

  • Имя блока содержит ‘*/’или ‘/*’, или концы с ‘*’.

  • Блокируйте импорт, или выходной порт является комплексным.

  • Блокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей. Условие исключает эти блоки:

    • Reshape

    • Selector

    • Concatenate

    • Interpolation Using Prelookup (n-D)

    • n-D Lookup Table

  • Блокируйте импорт, или выходной порт использует основанные на системе координат сигналы.

  • Блокируйте выход пользовательский класс памяти сигнала:

    • Type не установлен в Unstructured.

    • Data initialization установлен в None.

  • Блокируйтесь выходной порт ссылается на объект сигнала с непустым начальным значением.

  • Блок является постоянным, и выходной порт является testpointed.

  • Блокируйтесь класс памяти выходного сигнала не установлен в Auto когда блок является постоянным.

  • Блокируйтесь, который является постоянным или имеет параметры, которые могут быть настроены, управляет двумя или больше многоскоростными блоками, не используя явные блоки Перехода Уровня.

Зафиксируйте перечисленный импорт блока или выходной порт.

Смотрите также

Поддерживаемые ограничения блока

Проверяйте использование диаграмм Stateflow

ID проверки: 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 data for monitoring child activity’ optionСвойство диаграммы Create data for monitoring child activity выбрано (набор к on).Очистите свойство диаграммы параметр Create data for monitoring child activity.
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

ID проверки: mathworks.slci.MATLABactionlanguageStateflowUsage

Проверяйте на использование Stateflow язык действия MATLAB, который может повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимостях, это находит в Stateflow использование языка действия MATLAB.

Доступный с Simulink Code Inspector.

Результаты и рекомендуемые действия

Для подпроверок, запущенных, чтобы проверять использование языка действия MATLAB в диаграммах Stateflow, смотрите использование Проверки Кода в функциях MATLAB.

Смотрите также

Проверяйте использование переходов Stateflow

ID проверки: 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

Математическая функция в действии не является a:

  • Один или двойной аргумент типа для следующих функций:

    • acosasinatan

    • ceilдубинкадубинка

    • exp, fabsпол

    • fmod, ldexpжурнал

    • log10, pow, sin

    • sinhsqrttantanh

  • Небулев аргумент для следующих функций:

    • absMax 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 аргумента. Например, 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График задает вызовы графической функции с различным количеством фактических и ожидаемых выходных параметров.Измените график так, чтобы графические функции присвоили все выходные параметры.

Смотрите также

Проверяйте использование соединений Stateflow

ID проверки: 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

ID проверки: 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 данные Stateflow осциллографа установлены в Parameter. Измените график, чтобы не установить InitializeMethod к Parameter. В Model Explorer, для данных Stateflow withLocal или 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, данные являются массивом шин или имеют элементы, которые являются массивами шин. Если типом данных графика является enumerated, значением по умолчанию данных не является 0.Измените типы данных графика, чтобы быть builtin, enumerated, или bus. Если типом данных графика является bus, обновите график так, чтобы данные не были массивом шин, или имейте элементы, которые являются массивами шин. Если типом данных графика является enumerated, обновите график так, чтобы enumerated тип данных имеет значение по умолчанию 0.
Check that the chart does not specify initial values for chart data with scope OutputСтройте диаграмму данных об использовании с осциллографом Output задает начальное значение.Измените график, чтобы не задавать начальное значение для данных с осциллографом Output.
Check that the 'First Index' of Stateflow data are empty or 0First 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

ID проверки: mathworks.slci.eventsSFObjsUsage

Проверяйте на использование событий Stateflow, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимостях, которые это находит в событиях Stateflow.

Доступный с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПроверятьУсловиеРекомендуемое действие
Check that the chart uses only events of scope Local or OutputСобытием scope не является Output или Local.Измените графики, чтобы избегать использования входных событий.
Check that the chart uses only function-call eventsТриггером события не является function-call.Измените модель так, чтобы триггером события был function-call

Смотрите также

Проверяйте использование состояний Stateflow

ID проверки: 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

Математическая функция в действии не является a:

  • Один или двойной аргумент типа для следующих функций:

    • acosasinatan

    • ceilдубинкадубинка

    • exp, fabsпол

    • fmod, ldexpжурнал

    • log10, pow, sin

    • sinhsqrttantanh

  • Небулев аргумент для следующих функций:

    • absMax 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 data for monitoring’ optionГосударственная собственность Create data for monitoring выбрана (набор к on).Очистите государственную собственность параметр Create data 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

ID проверки: 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В диалоговом окне Configuration Parameters, на панели 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

ID проверки: 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

ID проверки: 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Блок является постоянным и имеет выходные порты неавтоматического класса памяти.Измените блок или изменением класса памяти выходного сигнала или изменением шага расчета блока. Например, если блок или его источник являются блоком Constant, установите шаг расчета того блока Constant к явному, непостоянному шагу расчета.
Check for unsupported testpointsБлок является постоянным, и выходной порт является testpointed.Измените блок или удалением контрольных точек выходного сигнала или изменением шага расчета блока. Например, если блок или его источник являются блоком Constant, установите шаг расчета того блока Constant к явному, непостоянному шагу расчета.
Check storage class of block outportsБлок использует неподдерживаемый пользовательский класс памяти Type, Data initialization или InitialValue (InitialValue).

Измените выход пользовательский класс памяти сигнала:

  • Type установлен в Unstructured.

  • Data initialization установлен в значение кроме None.

  • Initial value (InitialValueisempty.

Check for blocks with greater than two-dimensional inputs or outputsБлокируйте импорт, или выходной порт не является скаляром, вектором или 2D матрицей.Измените импорт блока или выходной порт, чтобы быть скаляром, вектором или 2D матрицей.
Check whether inputs and outputs are not framedБлокируйте импорт, или выходной порт использует основанные на системе координат сигналы.Измените модель так, чтобы блоки использовали основанный на выборке импорт и выходные порты. Проверяйте восходящие блоки блоков, перечисленных в результатах для блоков, которые выводят основанные на системе координат сигналы.
Check that all MATLAB functions set ‘Update method’ to ‘Inherited’Функция MATLAB не устанавливает Update method на Inherited.Измените функцию MATLAB, чтобы установить Update method на Inherited.
Check that all MATLAB function blocks have RTWSystemCode set to InlineДля блока MATLAB Function, Function packaging (RTWSystemCode) не установлен в Inline.Измените блок MATLAB Function, чтобы установить Function packaging (RTWSystemCode) к Inline.
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Блокируйтесь, который является постоянным или имеет параметры, которые могут быть настроены, управляет двумя или больше многоскоростными блоками, не используя явные блоки Перехода Уровня.Измените блок, чтобы использовать явные блоки Перехода Уровня.
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

ID проверки: 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, чтобы избегать использования комплексных данных.

Смотрите также

Проверяйте использование корневых блоков Выходного порта

ID проверки: mathworks.slci.RootOutportBlocksUsage

Проверяйте на использование корневых блоков Выходного порта, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о корневых несовместимостях использования блока Outport.

Доступный с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверятьУсловиеРекомендуемое действие
Verify sample timesОдин или несколько корневых блоков Выходного порта являются постоянными. Это заставит функции модели приводить валидацию к сбою, потому что корневое присвоение выходного порта перемещено в модель, инициализируют функцию.Установите шаги расчета корневых блоков Выходного порта к явным, непостоянным шагам расчета.
Verify root Outports pass buses to parent models as structuresОдин или несколько корневых блоков Выходного порта передают шину родительской модели, не передавая шину как структуру. Это программное обеспечение Simulink причины силы, чтобы вставить скрытый блок Signal Conversion в родительскую модель, которая не поддержана для инспекции кода.Для каждого экземпляра откройте диалоговое окно блока Выходного порта и выберите параметр Output as nonvirtual bus in parent model (BusOutputAsStruct).

Смотрите также

Ограничения атрибута всей модели

Проверяйте использование шин

ID проверки: mathworks.slci.BusUsage

Проверяйте на использование шин, которые могут повлиять на совместимость с Simulink Code Inspector.

Описание

Эта проверка обновляет диаграмму модели и сообщает о несовместимостях использования шины.

Доступный с Simulink Code Inspector.

Результаты и рекомендуемые действия

ПодпроверятьУсловиеРекомендуемое действие
Check for automatic conversion between virtual to nonvirtual busesПрограммное обеспечение Simulink выполнило автоматическое преобразование с виртуального на невиртуальную шину в интерфейсе одного или нескольких перечисленных блоков. Это создает скрытый блок Signal Conversion, который не поддержан для инспекции кода.Измените модель, чтобы использовать невиртуальные шины в интерфейсах перечисленных блоков.
Verify that blocks in the model do not perform unsupported operations on a busВ модели невиртуальный блок работает с виртуальной шиной, или блок Bus Assignment работает с невиртуальной шиной.Измените модель так, чтобы никакие невиртуальные блоки не работали с виртуальной шиной, и никакие блоки Bus Assignment не работают с невиртуальной шиной. Это действие упрощает обработку шины, чтобы продвинуть трассируемость и удобочитаемость сгенерированного кода.

Смотрите также

Ограничения атрибута всей модели

Проверяйте использование разделяемых утилит

ID проверки: 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Значения для параметров символов генерации кода не поддержаны для разделяемого сервисного контроля.В диалоговом окне Configuration Parameters, на панели Code Generation > Symbols, набор Локальные временные переменные к значению по умолчанию $N$M и набор Разделяемый сервисный формат идентификатора к значению по умолчанию $N$C.
Check standard math library settings for shared utils inspectionСтандартные математические настройки библиотеки не поддержаны для разделяемого сервисного контроля.В диалоговом окне Configuration Parameters, на панели Code Generation > Interface, математической библиотеке Стандарта набора к C89/C90 (ANSI).
Check code style settings for shared utils inspectionЗначения для параметров конфигурации стиля кода не поддержаны для разделяемого сервисного контроля.В диалоговом окне Configuration Parameters, на панели Code Generation > Code Style, уровне Круглых скобок набора к Nominal.

Смотрите также

Ограничения атрибута всей модели