Используйте проверки Simulink® Code Inspector™ Model Advisor, чтобы сконфигурировать вашу модель для инспекции кода. Если у вас есть лицензия Simulink Check™, вы может использовать разовую редактированием проверку, чтобы идентифицировать проблемы совместимости в процессе разработки моделей. Подмножество проверок Model Advisor поддерживает разовую редактированием проверку. Однако разовая редактированием проверка не отмечает нарушения для всех ограничений поддерживаемых проверок Model Advisor. Это отмечает некоторые определенные нарушения ограничений.
Simulink Coder проверяет (Simulink Coder)
Simulink Check проверяет (Simulink Check)
ID проверки: mathworks.slci.CodeGenerationSettings
Настройки генерации проверки кода в настройке модели, которая может повлиять на совместимость с Simulink Code Inspector.
Эта проверка проверяет, что настройки генерации кода совместимы с инспекцией кода.
Доступный с Simulink Code Inspector.
Подпроверять | Условие | Рекомендуемое действие |
---|---|---|
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 | Модель не сконфигурирована, чтобы сгенерировать совместно использованный служебный код к общему ресурсу. Если разделяемый служебный код сгенерирован в , 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 (Embedded Coder) параметр. |
Verify 'Array layout' setting | Эта модель сконфигурирована, чтобы сгенерировать код в упорядоченном по строкам размещении. Это не поддерживается для инспекции кода. | В диалоговом окне Configuration Parameters, набор размещение Массивов (Simulink Coder) параметр к 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 > Identifiers, устанавливает Generate scalar inlined parameter as (Embedded 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 | Модель сконфигурирована, чтобы сгенерировать a функция, потенциально содержащая код завершения модели, который будет выполняться во время завершения работы системы. Это не поддерживается для инспекции кода. | В диалоговом окне Configuration Parameters очистите Terminate function required (Embedded Coder) параметр. |
Verify 'Remove code that protects against division arithmetic exceptions' setting | Модель сконфигурирована, чтобы удалить код, который принимает меры против деления на нуль для данных фиксированной точки. | В диалоговом окне Configuration Parameters, на панели Code Generation > Optimization, очищают Remove code that protects against division arithmetic exceptions (Embedded Coder) параметр. |
Verify 'MAT-file logging' setting | Модель сконфигурирована, чтобы регистрировать данные о выполнении к MAT-файлу. Это не поддерживается для инспекции кода. | В диалоговом окне Configuration Parameters очистите MAT-file logging (Simulink Coder) параметр. |
Verify 'Pack Boolean data into bitfields' setting | Модель сконфигурирована, чтобы сохранить булевы сигналы как однобитные битовые поля. | В диалоговом окне Configuration Parameters, на панели Code Generation > Optimization, очищают Pack Boolean data into bitfields (Embedded 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 (Embedded Coder) параметр. |
Verify 'Operator to represent Bitwise and Logical Operator blocks' setting | Модель сконфигурирована, чтобы сгенерировать код, который представляет побитовые операторы как логический оператор. | В диалоговом окне Configuration Parameters, на панели Code Generation > Interface, устанавливает Operator to represent Bitwise and Logical Operator blocks (Embedded Coder) на Same as modeled или Bitwise operator . |
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 (Embedded 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 > Identifiers, устанавливает Signal naming (Embedded Coder) на None . |
Verify 'Parameter naming' setting | Модель сконфигурирована, чтобы изменить названия параметра при создании соответствующих идентификаторов в сгенерированном коде. | В диалоговом окне Configuration Parameters, на панели Code Generation > Identifiers, устанавливает Parameter naming (Embedded Coder) на None . |
Verify 'TLC options' setting | Модель сконфигурирована с опциями TLC. | В командном окне MATLAB, набор параметр конфигурации модели TLCOptions к unspecified или -aMaxStackVariableSize=inf . Например, set_param(gcs, 'TLCOptions', ' ') или set_param(gcs, 'TLCOptions', '-aMaxStackVariableSize=inf') . |
Verify ‘variable-size signals’ setting | Модель сконфигурирована, чтобы сгенерировать код для моделей тот переменный размер использования сигналы. | В диалоговом окне Configuration Parameters, на панели Code Generation, очищают поле Support: variable-size signals (Embedded Coder). |
Verify 'Single output/update function' setting | Модель сконфигурирована, чтобы сгенерировать код в отдельном и функции, а не a функция, которая комбинирует два. | В диалоговом окне 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 (Embedded 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 (Embedded Coder) параметр. |
Verify 'Rate Transition block code' setting | Модель сконфигурирована, чтобы разделить блочный код Rate Transition и данные из типового кодекса и данные. | В диалоговом окне Configuration Parameters, на панели Code Generation > Code Placement, устанавливает Rate Transition block code (Embedded Coder) на Inline . |
ID проверки: mathworks.slci.DataImportSettings
Проверяйте настройки импорта/экспорта данных в настройку модели, которая может повлиять на совместимость с Simulink Code Inspector.
Эта проверка проверяет, что настройки импорта/экспорта данных совместимы с инспекцией кода.
Доступный с Simulink Code Inspector.
Подпроверять | Условие | Рекомендуемое действие |
---|---|---|
Verify 'Initial state' setting | Модель сконфигурирована, чтобы загрузить начальные состояния из рабочей области, которая не совместима с инспекцией кода. | В диалоговом окне Configuration Parameters, на панели Data Import/Export, очищают параметр Initial state. |
ID проверки: mathworks.slci.DiagnosticsSettings
Проверяйте диагностические настройки в настройку модели, которая может повлиять на совместимость с Simulink Code Inspector.
Эта проверка проверяет, что диагностические настройки совместимы с инспекцией кода.
Доступный с Simulink Code Inspector.
Подпроверять | Условие | Рекомендуемое действие |
---|---|---|
Verify ‘Multitask data store’ setting | Модель не сконфигурирована, чтобы сгенерировать ошибку, когда одна задача считывает данные от Блока памяти Хранилища данных, до которого записывает данные другая задача. | В диалоговом окне Configuration Parameters, на панели Diagnostics > Data Validity, устанавливает Multitask data store на error . |
Verify ‘Multitask rate transition’ setting | Модель не сконфигурирована, чтобы сгенерировать ошибку, когда недопустимый переход уровня находился между двумя блоками, действующими в многозадачном режиме. | В диалоговом окне Configuration Parameters, на панели Diagnostics > Sample Time, устанавливает Multitask rate transition на error . |
Verify ‘Multitask conditionally executed subsystem’ setting | Модель не сконфигурирована, чтобы сгенерировать ошибку, когда программное обеспечение Simulink обнаруживает подсистему, которая может вызвать повреждение данных или недетерминированное поведение. | В диалоговом окне Configuration Parameters, на панели Diagnostics > Sample Time, устанавливает Multitask conditionally executed subsystem на error . |
Verify 'Underspecified initialization detection' setting | Модель не сконфигурирована, чтобы инициализировать начальные условия блока с помощью упрощенного поведения. Упрощенное поведение может улучшить непротиворечивость результатов модели. | В диалоговом окне Configuration Parameters, набор Underspecified initialization detection к Simplified . |
Verify 'Non-bus signals treated as bus signals' setting | Модель не сконфигурирована, чтобы сгенерировать ошибку, когда программное обеспечение Simulink неявно преобразует сигнал нешины в сигнал шины поддержать соединение сигнала с блоком Селектора Присвоения или Шины Шины. | В диалоговом окне Configuration Parameters, на панели Diagnostics > Connectivity, устанавливает Non-bus signals treated as bus signals на error . |
Verify 'Detect downcast' setting | Модель не сконфигурирована, чтобы сгенерировать ошибку, когда удрученный параметр происходит в процессе моделирования. | В диалоговом окне Configuration Parameters, на панели Diagnostics > Data Validity, устанавливает Detect downcast на error . |
Verify 'Detect overflow' setting | Модель не сконфигурирована, чтобы сгенерировать ошибку, когда переполнение параметра происходит в процессе моделирования. | В диалоговом окне Configuration Parameters, на панели Diagnostics > Data Validity > Parameters, устанавливает Detect overflow на error . |
Verify 'Detect overflow' setting | Модель не сконфигурирована, чтобы сгенерировать ошибку, когда переполнение сигнала происходит в процессе моделирования. | В диалоговом окне Configuration Parameters, на панели Diagnostics > Data Validity > Signals, устанавливает Wrap on overflow на error . |
Verify 'Saturate on overflow' setting | Модель не сконфигурирована, чтобы сгенерировать ошибку, когда значение сигнала является слишком большим, чтобы быть представленным типом данных сигнала, приводящим к насыщению. | В диалоговом окне Configuration Parameters, на панели Diagnostics > Data Validity > Signals, устанавливает Saturate on overflow на error . |
Verify 'Detect underflow' setting | Модель не сконфигурирована, чтобы сгенерировать ошибку, когда потеря значимости параметра происходит в процессе моделирования. | В диалоговом окне Configuration Parameters, на панели Diagnostics > Data Validity, устанавливает Detect underflow на error . |
Verify 'Detect loss of tunability' setting | Модель не сконфигурирована, чтобы сгенерировать ошибку, когда выражение с настраиваемыми переменными уменьшается до своего числового эквивалента. | В диалоговом окне Configuration Parameters, на панели Diagnostics > Data Validity, устанавливает Detect loss of tunability на error . |
Verify 'Unexpected backtracking' setting | Модель не сконфигурирована, чтобы сгенерировать ошибку когда соединение графика:
| В диалоговом окне Configuration Parameters, на панели Diagnostics > Stateflow, устанавливает Unexpected backtracking на error . |
Verify 'Invalid input data access in chart initialization' setting | Модель не сконфигурирована, чтобы сгенерировать ошибку когда график:
| В диалоговом окне Configuration Parameters, на панели Diagnostics > Stateflow, устанавливает Invalid input data access in chart initialization на error . |
Verify 'No unconditional default transitions' setting | Модель не сконфигурирована, чтобы сгенерировать ошибку, когда график не имеет безусловного перехода по умолчанию к состоянию или соединения. | В диалоговом окне Configuration Parameters, на панели Diagnostics > Stateflow, устанавливает No unconditional default transitions на error . |
Verify 'Transition outside natural parent' setting | Модель не сконфигурирована, чтобы сгенерировать ошибку, когда график содержит переход что циклы вне родительского состояния или соединения. | В диалоговом окне Configuration Parameters, на панели Diagnostics > Stateflow, устанавливает Transition outside natural parent на error . |
Verify ‘Unreachable execution path’ setting | Модель не сконфигурирована, чтобы сгенерировать ошибку, когда построение графика не находится на допустимом пути к выполнению. | В диалоговом окне Configuration Parameters, на панели Diagnostics > Stateflow, устанавливает Unreachable execution path на error . |
Verify 'Undirected event broadcasts' setting | Модель не сконфигурирована, чтобы сгенерировать ошибку, когда график содержит неориентированные локальные широковещательные сообщения события. | В диалоговом окне Configuration Parameters, на панели Diagnostics > Stateflow, устанавливает Undirected event broadcasts на error . |
Verify 'Transition action specified before condition action' setting | Модель не сконфигурирована, чтобы сгенерировать ошибку, когда действие перехода выполняется перед действием условия в пути к переходу с несколькими сегментами перехода. | В диалоговом окне Configuration Parameters, на панели Diagnostics > Stateflow, устанавливает Transition action specified before condition action на error . |
Verify Bus signal treated as vector setting | Модель не сконфигурирована, чтобы сгенерировать ошибку, когда программное обеспечение Simulink обнаруживает сигнал виртуальной шины, который используется в качестве сигнала мультиплексора. Строгое поведение шины не осуществляется. | В диалоговом окне Configuration Parameters, на панели Diagnostics > Connectivity, устанавливает Bus signal treated as vector на error . |
Verify 'Allow symbolic dimension specification' settings | Модель сконфигурирована, чтобы позволить символьную спецификацию размерности. | В диалоговом окне Configuration Parameter очистите Позволение символьного поля спецификации размерности. |
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
|
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). |
ID проверки: mathworks.slci.SolverSettings
Проверяйте настройки решателя в настройку модели, которая может повлиять на совместимость с Simulink Code Inspector.
Эта проверка проверяет, что настройки решателя совместимы с инспекцией кода.
Доступный с Simulink Code Inspector.
Подпроверять | Условие | Рекомендуемое действие |
---|---|---|
Verify 'Type' setting | Модель сконфигурирована с решателем переменного шага. | В диалоговом окне Configuration Parameters, на панели Solver, устанавливает Type на Fixed-step . |
Verify 'Solver' setting | Модель сконфигурирована с решателем кроме фиксированного шага дискретный решатель. | В диалоговом окне Configuration Parameters, на панели Solver, устанавливает Solver на discrete (no continuous states) (эквивалентный FixedStepDiscrete заданный в командной строке). |
Verify ‘Periodic sample time constraint’ setting | Модель устанавливает Periodic sample time constraint на Specified . | В диалоговом окне Configuration Parameters, на панели Solver, устанавливает Periodic sample time constraint на Unconstrained или Ensure sample time independent . |
Verify ‘Automatically handle rate transition for data transfer’ setting | Модель сконфигурирована, чтобы вставить скрытые блоки Перехода Уровня между блоками, когда переходы уровня обнаруживаются. | В диалоговом окне Configuration Parameters, на панели Solver, снимают флажок Automatically handle rate transition for data transfer. |
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. |
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-выведенная цель. |
ID проверки: mathworks.slci.FcnSpecSettings
Проверяйте на функциональные настройки спецификации, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка проверяет, что прототипные настройки управления этой функцией совместимы с инспекцией кода.
Доступный с Simulink Code Inspector.
Подпроверять | Условие | Рекомендуемое действие |
---|---|---|
Check C Step Function Interface setting | Модель задает пользовательских прототипов функции для функций записи модели. Это не поддерживается для инспекции кода. | В Редакторе Simulink перспектива кода, в редакторе Отображений Кода, выбирают вкладку Functions. В строке для ступенчатой функции щелкните в функции в столбце Function Preview. В диалоговом окне Configure C Step Function Interface очистите установку Configure arguments for Step function prototype. |
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)
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 выбран, но Включите локальному блоку выходные параметры (Simulink Coder), не выбран. Модель должна включить локальному блоку выходные параметры при использовании условного входного выполнения ветви. | В диалоговом окне Configuration Parameters, на панели Optimization, выбирают Enable локальный блок выходные параметры (Simulink Coder). |
Проверьте, что Допускающая повторное использование или подсистема Одноразового использования блокируется, выходные параметры не являются входными параметрами с блоками Multiport Switch, когда параметр конфигурации модели выполнения ветви входа Conditional выбран | Модель использует Допускающий повторное использование или блок подсистемы Одноразового использования выходные параметры в качестве входных параметров с блоком Multiport Switch, когда выполнение ветви входа Conditional параметра конфигурации модели выбрано. | Измените модель так, чтобы Допускающий повторное использование или блок подсистемы Одноразового использования выходные параметры не был входными параметрами с блоком Multiport Switch. |
ID проверки: mathworks.slci.InstrumentedSignals
Проверяйте на оснащенные сигналы в модели, которые соединяются с автоматически вставленными блоками.
Эта проверка проверяет, что модель не содержит сигналы, которые оснащены и соединяются с автоматически вставленными блоками. Автоматически вставленные блоки упоминаются как скрытые блоки.
Подпроверять | Условие | Рекомендуемое действие |
---|---|---|
Check for instrumented signals in the model that connect to automatically inserted blocks | Модель содержит оснащенные сигналы, которые соединяются с автоматически вставленными блоками. | Измените модель путем удаления оснащенных сигналов, которые соединяются с автоматически вставленными блоками. |
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 . |
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 | Аргумент модели имеет класс памяти. | Измените модель так, чтобы аргументы модели не имели классов памяти. |
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 содержат только один выход | Невстроенные функции задают больше чем один выход. | Измените код 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 не поддержала аргумент типа в функциях броска. | Измените функцию броска к одной из следующих форм:
|
Check that colon operators in MATLAB code have no more than 3 operands | colon (: ) оператор имеет больше чем 3 операнда. | Измените код MATLAB так, чтобы |
Check that colon operators in MATLAB code use only integer and double data | colon (: ) оператор использует одни или символьные данные. | Измените код MATLAB так, чтобы |
Check that data used in MATLAB function is of a supported data type | Данные, используемые в функции MATLAB, не имеют типа: boolean int8 int16 int32 uint8 uint16 uint32 единственный 'double' , или скалярная шина. | Измените данные, чтобы быть поддерживаемым типом данных. |
Check that diagonal number used in a diag function in MATLAB code is constant | diag функция задает диагональный номер, который не является константой. | Измените diag функционируйте, чтобы использовать постоянный диагональный номер. |
Check that code in MATLAB function is of a supported dimension |
| Измените идентификаторы, чтобы быть поддерживаемой размерностью. |
Check that if statements in MATLAB code use conditions that are scalar | if оператор использует условие, которое не является скаляром. | Измените код 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 директива. | Измените использование Поскольку MATLAB базируется функции, если Для пользовательских функций MATLAB, |
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 приводит эту проверку к сбою, это может быть, потому что существует недостижимый код. Зафиксируйте любой |
Check that no code in MATLAB functions has missing dimension information | Функция MATLAB имеет недостающую информацию о размерности. | Измените функцию, чтобы устранить код с недостающей информацией о размерности. Примечание Если ваш код MATLAB приводит эту проверку к сбою, это может быть, потому что существует недостижимый код. Зафиксируйте любой |
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 body | if тело оператора содержит несколько операторов инициализации для персистентной переменной. | Измените код MATLAB так, чтобы условная инициализация персистентных переменных содержала один оператор в if тело оператора. |
Check that switch statements in MATLAB code do not have case expressions containing a cell array | switch оператор имеет выражение случая, содержащее массив ячеек. | Измените код MATLAB так, чтобы switch операторы не имеют выражений случая, содержащих массив ячеек. |
Check that switch statements in MATLAB code use the same scalar integer type for all conditions | switch оператор не использует тот же скалярный целочисленный тип для условий случая и переключателя. | Измените код MATLAB так, чтобы switch операторы имеют условия, которые используют тот же скалярный целочисленный тип. |
Check that operators and functions in MATLAB code have supported operand dimensions | colon (: ) функционируйте или операция деления в коде MATLAB использует неподдерживаемые нескалярные операнды. | Измените функцию, чтобы использовать скалярные операнды. |
Check for unsupported MATLAB code in MATLAB functions | Функция MATLAB содержит неподдерживаемый код MATLAB. | Измените функцию, чтобы удалить использование неподдерживаемого кода MATLAB. |
Check usage of recursive functions in MATLAB code | Код MATLAB задает рекурсивные функции. | Измените код MATLAB так, чтобы он не задавал рекурсивные функции. |
Check that coder.ceval in MATLAB code does not specify '-global' option | Использование coder.ceval задает -global опция. | Измените coder.ceval удалить -global опция. |
Check that coder.ceval in MATLAB code does not specify layout option | Использование coder.ceval задает layout опция. | Измените coder.ceval удалить layout опция. |
Check usage of function call outputs in MATLAB code | Подфункции в коде MATLAB вызывают вызов функции выходные параметры. | Измените код MATLAB так, чтобы только функция верхнего уровня имела вызов функции выходные параметры. |
Check usage of inner functions in MATLAB code | Код MATLAB задает внутренние функции. | Измените код MATLAB так, чтобы он не задавал внутренние функции. |
Check that coder.target in MATLAB code contains a non-empty target | Использование coder.target содержит пустую цель. | Измените код MATLAB так, чтобы coder.target функция задает непустую цель. |
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. |
|
Check MATLAB functions defined in Stateflow charts | Проблемы с функцией MATLAB, используемой в диаграммах Stateflow. |
|
Check called MATLAB functions | Проблемы в названных функциях MATLAB. |
|
ID проверки: mathworks.slci.UnsupportedBlocks
Проверяйте на блоки, которые не поддерживаются Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает о блоках, которые не поддерживаются Simulink Code Inspector.
Доступный с Simulink Code Inspector.
Подпроверять | Условие | Рекомендуемое действие |
---|---|---|
Check for blocks not supported by Simulink Code Inspector | Один или несколько блоков в модели не поддерживаются для инспекции кода. Примечание Поддерживаемые блоки перечислены в Поддерживаемых Блоках — По категориям и Поддерживаемых Блоках Маски, и также могут быть просмотрены в | Возможные действия включают:
|
Можно осуществить эту проверку моделей библиотеки.
Эта проверка поддерживается разовой редактированием проверкой.
ID проверки: mathworks.slci.WorkspaceVarUsage
Проверяйте на переменные рабочей области, на которые ссылается модель.
Эта проверка сообщает о переменных рабочей области то использование неподдерживаемые классы памяти.
Доступный с Simulink Code Inspector.
Подпроверять | Условие | Рекомендуемое действие |
---|---|---|
Check storage class for workspace variables referenced by the model | Переменные рабочей области, на которые ссылается модель, не поддерживаются по одной из этих причин:
Примечание В Simulink или классах модуля упаковочного инструмента (MPT), поставленных с кодом MathWorks®, инспекция кода поддерживается для следующих классов памяти:
| Измените модель так, чтобы модель не сослалась на переменные рабочей области или установила переменную рабочей области пользовательский класс памяти 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.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 | Блок памяти Хранилища Глобальных данных затенен локальным Блоком памяти Хранилища данных. | Удалите Блоки памяти Хранилища глобальных данных, которые затенены локальными Блоками памяти Хранилища данных. |
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 supported | Pass reusable subsystem outputs as: не установлен в Structure reference когда корневые выходные порты в моделях, на которые ссылаются, имеют неавтоматический класс памяти. | Установите Pass reusable subsystem outputs as: на Structure 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 | Модель, используемая в качестве цели модели-ссылки, имеет несколько шагов расчета. | Измените модель, чтобы иметь один шаг расчета. |
ID проверки: mathworks.slci.GetSetVarUsage
Эта проверка обновляет диаграмму модели и идентифицирует переменные рабочей области класса памяти GetSet то использование неподдерживаемые технические требования.
Доступный с Simulink Code Inspector.
Подпроверять | Условие | Рекомендуемое действие |
---|---|---|
Check storage class for workspace variables referenced by the model | Для переменной рабочей области, которая использует
| Измените 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. |
ID проверки: mathworks.slci.CommentedBlocks
Эта проверка обновляет диаграмму модели и проверяет, что модель не содержит прокомментированные блоки.
Доступный с Simulink Code Inspector.
Подпроверять | Условие | Рекомендуемое действие |
---|---|---|
Check for commented out blocks in the model | Модель содержит блок, который комментируется. | Измените модель путем удаления прокомментированных блоков. |
ID проверки: mathworks.slci.VVSubSystemName
Эта проверка обновляет диаграмму модели и проверяет, что невстроенные подсистемы с пустыми пустотой интерфейсами вызова функции используют уникальные имена функций.
Доступный с Simulink Code Inspector.
Подпроверять | Условие | Рекомендуемое действие |
---|---|---|
Check function names used by void_void subsystems in the model | Модель содержит void_void подсистемы, которые используют то же имя функции. | Измените void_void подсистемы в модели, чтобы использовать уникальные имена функций. |
ID проверки: mathworks.slci.LookupndBreakpointsDataType
Эта проверка обновляет диаграмму модели и проверяет, что тип данных точки останова и тип входных данных n-D блока Lookup Table являются тем же самым.
Доступный с Simulink Code Inspector.
Подпроверять | Условие | Рекомендуемое действие |
---|---|---|
Check n-D Lookup Table blocks for incompatible breakpoint data type | Breakpoints > 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 . | |
Для корневых блоков импорта, которые используют объект шины, параметры блоков Output as nonvirtual bus (BusOutputAsStruct ) не выбран (набор к off ). | Для каждого экземпляра выберите Output as nonvirtual bus. | |
Корневой импорт в модели, на которую ссылаются, не соединяется с невиртуальным блоком. | Соедините корневой импорт в моделях, на которые ссылаются, с по крайней мере одним невиртуальным блоком. | |
Для импорта в триггируемых подсистемах, Latch input by delaying outside signal (LatchByDelayingOutsideSignal ) выбран (набор к on ). | Очистите Latch input by delaying outside signal. Чтобы сохранить фиксирующееся поведение, реструктурируйте модель путем размещения блока Unit Delay перед входным блоком в родительской схеме. | |
Inport является блоком In Bus Element. | Вместо блока In Bus Element используйте блок Inport с блоком Bus Selector. | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Constant | Параметры блоков Constant value (Value ) является пустым, является неличным, использует выбор области значений или переменную индексацию на элементах структур MATLAB, является комплексным, или имеет две или больше размерности. | Зафиксируйте установку Constant value. |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Ground | Блокируйтесь порт имеет массивы шин или шин с элементами, которые являются массивами шин. | Зафиксируйте перечисленный порт блока так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин. |
Зафиксируйте перечисленный импорт блока или выходной порт. |
ID проверки: mathworks.slci.SignalRoutingBlocksUsage
Проверяйте на использование блоков Маршрутизации Сигнала, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает о несовместимостях, которые это находит в блоках Маршрутизации Сигнала.
Доступный с Simulink Code Inspector.
Подпроверять | Условие | Рекомендуемое действие |
---|---|---|
Проверяйте блоки Bus Creator | Имена сигналов в блоке Bus Creator (Inputs ) не совпадайте с именами входного сигнала для блока (InputSignalNames ). | Измените перечисленный блок Bus Creator, чтобы иметь соответствие с Inputs и InputSignalNames . |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Bus Selector | Зафиксируйте перечисленный импорт блока или выходной порт. | |
Проверяйте блоки Bus Assignment | Зафиксируйте перечисленный импорт блока или выходной порт. | |
Проверяйте блоки Data Store Memory | Параметры блоков Initial value (InitialValue ) является пустым, является неличным, использует выбор области значений или переменную индексацию на элементах структур MATLAB, является комплексным, или имеет две или больше размерности. | Зафиксируйте установку Initial value. |
Параметры блоков Signal type (SignalType ) установлен в complex . Комплексные числа не поддерживаются для инспекции кода. Разовая редактированием проверка отмечает это условие. | Установите Signal type на auto или real . | |
Параметры блоков Detect Write After Write установлены в warning или none . Разовая редактированием проверка отмечает это условие. | Установите параметры блоков Detect Write After Write на error . | |
Память Хранилища данных имеет массивы шин или шин с элементами, которые являются массивами шин. | Зафиксируйте перечисленный Блок памяти Хранилища данных. | |
Зафиксируйте перечисленный Блок памяти Хранилища данных. | ||
Проверяйте блоки Data Store Read | Блок выполняет прерывистый выбор на массивах datastore. | Измените выбор к поддерживаемой форме. |
Блок использует индексы со скобками, чтобы выполнить выбор на массивах datastore. | Измените выбор datastore массивов в блоках Data Store Read, чтобы не использовать индексы со скобками. | |
Блокируйтесь порт имеет массивы шин или шин с элементами, которые являются массивами шин. | Зафиксируйте перечисленный порт блока так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин. | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Data Store Write | Блок выполняет прерывистый выбор на массивах datastore. | Измените выбор к поддерживаемой форме. |
Блок использует индексы со скобками, чтобы выполнить выбор на массивах datastore. | Измените выбор datastore массивов в блоках Data Store Write, чтобы не использовать индексы со скобками. | |
Блокируйтесь порт имеет массивы шин или шин с элементами, которые являются массивами шин. | Зафиксируйте перечисленный порт блока так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин. | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки From | Блокируйтесь порт имеет массивы шин или шин с элементами, которые являются массивами шин. | Зафиксируйте перечисленный порт блока так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин. |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Goto | Блокируйтесь порт имеет массивы шин или шин с элементами, которые являются массивами шин. | Зафиксируйте перечисленный порт блока так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин. |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Merge | Allow unequal port widths (AllowUnequalInputPortWidths ) выбран. Разовая редактированием проверка отмечает это условие. | Очистите параметр Allow unequal port widths. |
Input port offsets установлен в неподдерживаемое значение. Разовая редактированием проверка отмечает это условие. | Установите Input port offsets на [] . | |
Источник для блока должен не быть активированной подсистемой или подсистемой действия, или является блоком с InitialConditions функция. | Измените модель так, чтобы источникам блоков слияния или включили подсистемы или подсистемы действия или блоки без InitialConditions функции. | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Switch | Первые и третьи входные порты и выходной порт не имеют совпадающего типа данных. | Измените порты данных, чтобы иметь совпадающий тип данных. Считайте выбор параметров блоков Require all data port inputs to have the same data type. |
Параметры блоков Integer rounding mode (RndMeth ) установлен в неподдерживаемое значение. Разовая редактированием проверка отмечает это условие. | Установите Integer rounding mode на Zero или Floor . | |
Параметры блоков Allow different data input sizes (AllowDiffInputSizes ) выбран. Разовая редактированием проверка отмечает это условие. | Очистите параметр Allow different data input sizes. | |
Default parameter behavior (DefaultParameterBehavior ) установлен в Inlined и источник Inport 2 является постоянным. | Измените модель так, чтобы источник Входа 2 не был постоянным. | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Multiport Switch | Ввод данных и выходные порты не имеют совпадающего типа данных. | Измените порты данных, чтобы иметь совпадающий тип данных. Считайте выбор параметров блоков Require all data port inputs to have the same data type. |
Индексы порта данных заданы, и вход имеет больше чем одно значение. | Измените настройку порта данных так, чтобы только одно значение было задано на вход. | |
Сигнал порта данных является, состоящим из нескольких несмежных участков. | Измените сигнал порта данных так, чтобы это было непрерывно. | |
Сигнал порта данных соединяется с блоком, который выбирает или переупорядочивает входные сигналы. | Измените сигнал порта данных так, чтобы он не был соединен с блоком, который выбирает или переупорядочивает входные сигналы. Рассмотрите вставку блока Signal Conversion в порту данных, состоящем из нескольких несмежных участков. | |
Параметры блоков Integer rounding mode (RndMeth ) установлен в неподдерживаемое значение. | Установите Integer rounding mode на Zero или Floor . | |
Параметры блоков Allow different data input sizes (AllowDiffInputSizes ) выбран. | Очистите параметр Allow different data input sizes. | |
Default parameter behavior (DefaultParameterBehavior ) установлен в Inlined и источник Inport 1 является постоянным. | Измените модель так, чтобы источник Входа 1 не был постоянным. | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Mux | Блокируйтесь порт имеет массивы шин или шин с элементами, которые являются массивами шин. | Зафиксируйте перечисленный порт блока так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин. |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Demux | Блокируйтесь порт имеет массивы шин или шин с элементами, которые являются массивами шин. | Зафиксируйте перечисленный порт блока так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин. |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Selector | Порт индекса не имеет поддерживаемого типа данных. | Измените порт индекса так, чтобы это имел тип данных int8 int16 int32 uint8 uint16 , или uint32 . |
Index Option (IndexOptionArray ) установлен в Starting and ending indices (port) | Установите Index Option на значение кроме Starting and ending indices (port) . | |
Number of input dimensions (NumberOfDimensions ) больше, чем 1 и индексируйте данные порта, соединяется с блоком, который выбирает или переупорядочивает вход. | Полагайте, что вставка блока Signal Conversion в порте индекса или изменении данных порта индекса непрерывна. | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Vector Concatenate | Зафиксируйте перечисленный импорт блока или выходной порт. |
Эта проверка поддерживается разовой редактированием проверкой. Однако разовая редактированием проверка не отмечает нарушения всех ограничений этой проверки. В предыдущей таблице, условия нарушения ограничений, что разовые редактированием флаги проверки явным образом упоминаются.
ID проверки: mathworks.slci.MathOperationsBlocksUsage
Проверяйте на использование блоков Математических операций, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает о несовместимостях, которые это находит в блоках Математических операций.
Доступный с Simulink Code Inspector.
Подпроверять | Условие | Рекомендуемое действие |
---|---|---|
Проверяйте Абсолютные блоки | Порт ввода или вывода имеет тип int8 или int16 . | Измените порт, чтобы быть типа данных double единственный uint8 uint16 int32 uint32 , или boolean . |
Порты ввода и вывода не имеют совпадающего типа данных. | Измените типы данных порта, чтобы соответствовать. | |
Параметры блоков Integer rounding mode (RndMeth ) установлен в неподдерживаемое значение. Разовая редактированием проверка отмечает это условие. | Установите Integer rounding mode на Zero или Floor . | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Bias | Порты ввода и вывода не имеют совпадающего типа данных. | Измените типы данных порта, чтобы соответствовать. |
Bias (Bias ) является пустым, неличным, использует выбор области значений или переменную индексацию на элементах структур MATLAB, является комплексным, или имеет две или больше размерности. | Зафиксируйте установку Bias. | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Gain | Порты ввода и вывода не имеют совпадающего типа данных. | Измените типы данных порта, чтобы соответствовать. |
Параметры блоков Gain (Gain ) является пустым, является неличным, использует выбор области значений или переменную индексацию на элементах структур MATLAB, является комплексным, или имеет две или больше размерности. | Зафиксируйте установку Gain. | |
Параметры блоков Parameter data type (ParamDataTypeStr ) не использует совпадающий тип данных в качестве входа блока Gain. | Измените блок Gain, чтобы использовать совпадающий тип данных для его входа и параметра. Рассмотрите установку Parameter data type к Inherit: Same as input . | |
Параметры блоков Multiplication (Multiplication ) не установлен в Element-wise(K.*u) , Matrix(K*u) , Matrix(u*K) , или Matrix(K*u)(u vector) . | Установите Multiplication на Только | |
Параметры блоков Integer rounding mode (RndMeth ) установлен в неподдерживаемое значение. Разовая редактированием проверка отмечает это условие. | Установите Integer rounding mode на Zero или Floor . | |
Параметры блоков Sample Time (SampleTime ) установлен в постоянный шаг расчета. | Установите Sample Time на явное, непостоянное значение. | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте Математические блоки | Порты ввода и вывода не имеют совпадающего типа данных. | Измените типы данных порта, чтобы соответствовать. |
Function (Operator ) установлен в неподдерживаемое значение: conj или hermitian . | Установите Function на одно из следующих значений: exp журнал , 10^u log10 , magnitude^2 , square перемещение pow , reciprocal hypot rem , или mod . | |
Параметры блоков Integer rounding mode (RndMeth ) установлен в неподдерживаемое значение. Разовая редактированием проверка отмечает это условие. | Установите Integer rounding mode на Zero или Floor . | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Product | Порты ввода и вывода не имеют совпадающего типа данных. | Измените типы данных порта, чтобы соответствовать. |
Multiplication (Multiplication ) установлен в Matrix (*) и Saturate on integer overflow (SaturateOnIntegerOverflow ) выбран (набор к on ). Разовая редактированием проверка отмечает это условие. | Очистите параметр Saturate on integer overflow. | |
Параметры блоков Number of inputs (
| Установите Number of inputs на
| |
Параметры блоков 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 на явное, непостоянное значение. | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Блоки Контрольной суммы | Порты ввода и вывода не имеют совпадающего типа данных. | Измените типы данных порта, чтобы соответствовать. |
Параметры блоков Sum over (CollapseMode ) не установлен в All dimensions . | Установите Sum over на All dimensions . | |
Параметры блоков Accumulator data type (AccumDataTypeStr ) не использует совпадающий тип данных в качестве входных параметров блока | Измените блок, чтобы использовать совпадающий тип данных для его входных параметров и аккумулятора. Рассмотрите установку Accumulator data type к Inherit: Same as first input . | |
Параметры блоков Integer rounding mode (RndMeth ) установлен в неподдерживаемое значение. Разовая редактированием проверка отмечает это условие. | Установите Integer rounding mode на Zero или Floor . | |
Параметры блоков Sample Time (SampleTime ) установлен в постоянный шаг расчета. | Установите Sample Time на явное, непостоянное значение. | |
Блок имеет один векторный вход и параметр Saturate on integer overflow (SaturateOnIntegerOverflow ) выбран (набор к on ). | Очистите параметр Saturate on integer overflow. | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Тригонометрии | Параметры блоков Function (Operator ) установлен в cos + jsin (комплексная экпонента входа). Разовая редактированием проверка отмечает это условие. | Установите Function на значение кроме cos + jsin . |
Параметры блоков Approximation method (ApproximationMethod ) не установлен в None . Разовая редактированием проверка отмечает это условие. | Установите Approximation method на None . | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки MinMax | Неподдерживаемый тип данных задан для порта ввода или вывода. | Измените тип данных порта, чтобы быть одним из следующего: double единственный int8 uint8 int16 uint16 int32 , или 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 . | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Rounding Function | Зафиксируйте перечисленный импорт блока или выходной порт. | |
Проверяйте блоки Reshape | Зафиксируйте перечисленный импорт блока или выходной порт. | |
Проверяйте блоки Sign | Зафиксируйте перечисленный импорт блока или выходной порт. | |
Проверяйте блоки Sqrt | Блокируйте входные параметры, и выходные порты не имеют совпадающего типа данных. | Зафиксируйте перечисленный импорт блока или выходной порт. |
Параметры блоков Function (Operator ) не установлен в sqrt или signedSqrt . Разовая редактированием проверка отмечает это условие. | Установите параметры блоков Function на sqrt или signedSqrt . | |
Параметры блоков Output signal type (OutputSignalType ) установлен в complex . Разовая редактированием проверка отмечает это условие. | Установите параметры блоков Output signal type (OutputSignalType ) к auto или real . | |
Вход блока и параметры блоков Intermediate results (IntermediateResultsDataTypeStr ) не имейте совпадающего типа данных. | Установите параметры блоков Intermediate results (
| |
Блокируйте входные параметры, и типами данных выходных портов не является single или double . | Зафиксируйте перечисленный импорт блока или выходной порт. | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Assignment | Порт индекса не имеет поддерживаемого типа данных. | Измените порт индекса так, чтобы это имел тип данных int8 int16 int32 uint8 uint16 , или uint32 . |
Initialize output (Y) ( | Установите Initialize output (Y) на | |
Блокируйтесь порт имеет массивы шин или шин с элементами, которые являются массивами шин. | Зафиксируйте перечисленный порт блока так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин. | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Polynomial | Порты ввода и вывода не имеют совпадающего типа данных. | Измените типы данных порта, чтобы соответствовать. |
Типами данных Input port не является single или double . | Измените перечисленные типы данных входного порта. | |
Количество коэффициентов для параметров блоков Polynomial Coefficients (coefs ) не больше нуля. | Измените количество коэффициентов для параметров блоков Polynomial Coefficients (coefs ) быть больше нуля. | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Dot Product | Input port не являются скалярами, векторами или матрицами отдельного столбца. | Измените перечисленные входные порты. |
Типами данных Input port не является single или double . | Измените перечисленные типы данных входного порта. | |
Порты ввода и вывода не имеют совпадающего типа данных. | Измените типы данных порта, чтобы соответствовать. | |
Параметры блоков Integer rounding mode (RndMeth ) установлен в неподдерживаемое значение. | Установите Integer rounding mode на Zero или Floor . | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Unary Minus | Типами данных Input port не является double единственный int8 int16 , или int32 . | Измените перечисленные типы данных входного порта. |
Зафиксируйте перечисленный импорт блока или выходной порт. |
Эта проверка поддерживается разовой редактированием проверкой. Однако разовая редактированием проверка не отмечает нарушения всех ограничений этой проверки. В предыдущей таблице, условия нарушения ограничений, что разовые редактированием флаги проверки явным образом упоминаются.
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 на явное, непостоянное значение. | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Data Type Duplicate | Зафиксируйте перечисленный импорт блока или выходной порт. | |
Проверяйте блоки Data Type Propagation | Зафиксируйте перечисленный импорт блока или выходной порт. | |
Проверяйте блоки Signal Specification | Variable-size signal (VarSizeSig ) не установлен в No . Разовая редактированием проверка отмечает это условие. | Установите Variable-size signal на No . |
Signal type (SignalType ) установлен в complex . Разовая редактированием проверка отмечает это условие. | Установите Signal type на любой тип кроме complex . | |
Sampling mode (SamplingMode ) установлен в Frame based . Разовая редактированием проверка отмечает это условие. | Установите Sampling mode на любой режим кроме Frame based . | |
Блокируйтесь порт имеет массивы шин или шин с элементами, которые являются массивами шин. | Зафиксируйте перечисленный порт блока так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин. | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Signal Conversion | Параметры блоков Output (ConversionOutput ) не установлен в Signal copy . Разовая редактированием проверка отмечает это условие. | Установите Output на Signal copy . |
Параметры блоков Exclude this block from 'Block reduction' optimization (OverrideOpt ) не выбран (набор к on ). | Выберите Exclude this block from 'Block reduction' optimization. | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Rate Transition | Параметры блоков Ensure data integrity during data transfer (Integrity ) не выбран. Разовая редактированием проверка отмечает это условие. | Выберите Ensure data integrity during data transfer. |
Параметры блоков Ensure deterministic data transfer (maximum delay) (Deterministic ) не выбран. Разовая редактированием проверка отмечает это условие. | Выберите Ensure deterministic data transfer (maximum delay). | |
Параметры блоков Initial conditions (InitialCondition ) не нуль, ненулевой скаляр или не использует ту же структуру данных в качестве типа выходных данных. | Измените параметры блоков, чтобы быть нулем, ненулевым скаляром, или использовать ту же структуру данных в качестве типа выходных данных. | |
Параметры блоков Initial conditions (InitialCondition ) является пустым, неличным, комплексным, использует выбор области значений или переменную индексацию на элементах структур MATLAB, или имеет две или больше размерности. | Измените параметры блоков так, чтобы не было пустым, не был неличным, не был комплексным, не использовал выбор области значений или переменную индексацию на элементах структур MATLAB, и не имел двух или больше размерностей. | |
Блокируйтесь порт имеет массивы шин или шин с элементами, которые являются массивами шин. | Зафиксируйте перечисленный порт блока так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин. | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Probe | Параметры блоков Data type for sample time (ProbeSampleTimeDataType ) не установлен в single или double . | Установите параметры блоков Data type for sample time на single или double . |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Width | Блокируйтесь порт имеет массивы шин или шин с элементами, которые являются массивами шин. | Зафиксируйте перечисленный порт блока так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин. |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Unit Conversion | Типом данных Input port не является double или single . | Измените тип данных входного порта. |
Порты ввода и вывода не имеют совпадающего типа данных. | Измените типы данных порта, чтобы соответствовать. | |
Блок не использует поддерживаемый импорт или модули выходного порта. | Измените блок, чтобы использовать поддерживаемый импорт и модули выходного порта. Преобразования между следующим включены:
| |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки IC | Параметры блоков Initial value (Value ) является пустым, неличным, комплексным, использует выбор области значений или переменную индексацию на элементах структур MATLAB, или имеет две или больше размерности. | Измените параметры блоков так, чтобы не было пустым, не был неличным, не был комплексным, не использовал выбор области значений или переменную индексацию на элементах структур MATLAB, и не имел двух или больше размерностей. |
Зафиксируйте перечисленный импорт блока или выходной порт. |
Эта проверка поддерживается разовой редактированием проверкой. Однако разовая редактированием проверка не отмечает нарушения всех ограничений этой проверки. В предыдущей таблице, условия нарушения ограничений, что разовые редактированием флаги проверки явным образом упоминаются.
ID проверки: mathworks.slci.LogicalandBitOperationsBlocksUsage
Проверяйте на использование Логических и блоков Битовых операций, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает о несовместимостях, которые это находит в блоках Битовых операций и Логическом.
Доступный с Simulink Code Inspector.
Подпроверять | Условие | Рекомендуемое действие |
---|---|---|
Проверяйте блоки Relational Operator | Тип данных выходного порта блока не является или перечислимым типом со значением по умолчанию 0 или boolean . | Измените тип данных выходного порта, чтобы быть или перечислимым типом со значением по умолчанию 0 или boolean . |
Блокируйтесь входные порты не имеют совпадающего типа данных. | Измените входные порты, чтобы иметь совпадающий тип данных. | |
Параметры блоков Relational operator (Operator ) установлен в неподдерживаемое значение: isInf isnan , или isFinite . Разовая редактированием проверка отмечает это условие. | Установите Relational operator на поддерживаемое значение: <= , == , >= , ~= , < , или > . | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Logical Operator | Выходным портом блока Logical Operator не является boolean или uint8 . | Измените тип данных выходного порта к boolean или uint8 . |
Блокируйтесь входные порты не имеют совпадающего типа данных. | Сконфигурируйте входные порты, чтобы иметь совпадающий тип данных. | |
Параметр модели Casting modes не устанавливается на Nominal для XOR операторы с boolean операнды. | Установите параметр модели Casting modes на Nominal . | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Bitwise Operator | С Number of input ports (NumInputPorts) установите на 1 и Operator (logicop) установите на AND , OR , NAND , NOR , или XOR , тип данных импорта не является скаляром. | Сконфигурируйте тип данных импорта, чтобы быть скаляром. |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки ArithShift | Diagnostic for out of range shift value (DiagnosticForOORShift ) не установлен в Error . Разовая редактированием проверка отмечает это условие. | Установите Diagnostic for out of range shift value на Error . |
Binary points to shift (BinPtShiftNumber ) не установлен в 0 . Разовая редактированием проверка отмечает это условие. | Установите Bits points to shift на 0 . | |
Bits to shift: Number (BitShiftNumber ) не в допустимой области значений типа данных импорта. | Введите Bits to shift: Number, который является в допустимой области значений типа данных импорта. | |
Параметры блоков Check for out-of-range 'Bits to shift' in generated code (CheckOORBitShift ) выбран (установлен в на). Разовая редактированием проверка отмечает это условие. | Снимите флажок параметра Check for out-of-range 'Bits to shift' in generated code. | |
Следующие параметры конфигурации установлены можно следующим образом:
когда источник Inport 2 является постоянным. | Измените модель так, чтобы источник Входа 2 не был постоянным. | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Combinatorial Logic | Зафиксируйте перечисленный импорт блока или выходной порт. |
Эта проверка поддерживается разовой редактированием проверкой. Однако разовая редактированием проверка не отмечает нарушения всех ограничений этой проверки. В предыдущей таблице, условия нарушения ограничений, что разовые редактированием флаги проверки явным образом упоминаются.
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. | |
Параметры блоков Source (TableSource ) используемый, чтобы задать источник табличных данных установлен в Input port . Разовая редактированием проверка отмечает это условие. | Установите Source на Dialog . | |
Для Breakpoints specification (BreakpointsSpecification ) установите на Explicit values , параметры блоков Breakpoints являются пустыми, являются неличными, используют выбор области значений или переменную индексацию на элементах структур MATLAB, являются комплексными, или имеют две или больше размерности. | Зафиксируйте установку Breakpoints 1. | |
Breakpoints > Data Type не использует совпадающий тип данных в качестве входа блока. | Измените типы данных, чтобы соответствовать. Или рассмотрите установку Breakpoints > Data Type к Inherit: Same as corresponding input | |
Блок использует различные типы данных для табличных данных и выхода. | Измените модель так, чтобы блок использовал совпадающий тип данных для своего выхода и табличных данных. В диалоговом окне типа данных блока boxe, рассмотрите тип данных table установки к Inherit: Same as output . Если табличные данные от объекта интерполяционной таблицы, используйте совпадающий тип данных и для табличных данных и для выходных данных. Если свойство Support tunable size объекта интерполяционной таблицы выбрано, использование различных типов данных для табличных данных и выходных данных поддерживается, но ограниченный, чтобы удвоиться и один. | |
Параметры блоков Intermediate Results (IntermediateResultsDataTypeStr ) не использует совпадающий тип данных в качестве блока выход. | Измените типы данных, чтобы соответствовать. | |
Блокируйтесь или блокируйтесь, выходной порт является постоянным. | Установите шаг расчета блока или блокируйте выходной порт к явному, непостоянному шагу расчета. | |
Параметры блоков Use one input port for all input data (UseOneInputPortForAllInputData ) выбран. | Очистите Use one input port for all input data. | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Prelookup | Параметры блоков Index search method (IndexSearchMethod ) не установлен в Binary search или Linear search . Разовая редактированием проверка отмечает это условие. | Установите Index search method на Binary search или Linear search . |
Параметры блоков Breakpoints specification (BreakpointsSpecification ) не установлен в Explicit values . Разовая редактированием проверка отмечает это условие. | Установите Breakpoints specification на Explicit values . | |
Параметры блоков 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. | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Interpolation Using Prelookup | Intermediate results > Data Type (IntermediateResultsDataTypeStr ) не установлен в Inherit:Inherit via internal rule , Inherit: Same as output 'double' , или single . Разовая редактированием проверка отмечает это условие. | Установите Intermediate results > Data Type на Inherit:Inherit via internal rule , Inherit: Same as output 'double' , или single . |
Output > Data Type (OutDataTypeStr ) не установлен в Inherit:Inherit via back propagation , Inherit: Inherit from ‘Table data’ 'double' , или single . Разовая редактированием проверка отмечает это условие. | Установите Output > Data Type на Inherit:Inherit via back propagation , Inherit: Inherit from ‘Table data’ 'double' , или single . | |
Table data > Data Type (TableDataTypeStr ) не установлен в Inherit: Inherit from ‘Table data’ , Inherit: Same as output 'double' , или single . Разовая редактированием проверка отмечает это условие. | Установите Table data > Data Type на Inherit: Inherit from ‘Table data’ , Inherit: Same as output 'double' , или single . | |
Internal Rule Priority (InternalRulePriority ) не установлен в Precision . Разовая редактированием проверка отмечает это условие. | Установите Internal Rule Priority на Precision . | |
Number of sub-table selection dimensions или значение индекса (k ) от Prelookup блок не имеет типа данных uint32 . | Установите Number of sub-table selection dimensions и значение индекса быть типа данных uint32 . | |
Intermediate results > Data Type (IntermediateResultsDataTypeStr ), Table data > Data Type (TableDataTypeStr ), Output > Data Type (OutDataTypeStr ), и дробное значение (f ) от Prelookup блок не совпадающий тип данных: double или single . | Установите Intermediate results > Data Type, Table data > Data Type, Output > Data Type и дробное значение быть совпадающим типом данных: double или single . | |
Integer rounding mode (RndMeth ) не установлен в Floor . Разовая редактированием проверка отмечает это условие. | Установите Integer rounding mode на Floor . | |
Saturate on integer overflow (SaturateOnIntegerOverflow ) выбран (набор к on ). Разовая редактированием проверка отмечает это условие. | Очистите Saturate on integer overflow. | |
Блок является постоянным или соединяет весь подтабличный импорт выбора в постоянные блоки. | Измените блоки так, чтобы они не были постоянными и не соединяли весь подтабличный импорт выбора в постоянные блоки. | |
Блоки или их выходные порты имеют постоянный шаг расчета. | Установите шаги расчета блоков или блокируйте выходные порты к явным непостоянным шагам расчета. | |
Параметры блоков Interpolation method (InterpMethod ) не установлен в Linear point-slope . Разовая редактированием проверка отмечает это условие. | Установите Interpolation method на Linear point-slope . | |
Параметры блоков Require index and fraction as bus (RequireIndexFractionAsBus ) выбран (набор к on ). Разовая редактированием проверка отмечает это условие. | Очистите Require index and fraction as bus. | |
Параметры блоков Valid index input may reach last index (ValidIndexMayReachLast ) выбран (набор к on ). Разовая редактированием проверка отмечает это условие. | Очистите Valid index input may reach last index. | |
Параметры блоков Specification (TableSpecification ) не установлен в Explicit values . Разовая редактированием проверка отмечает это условие. | Установите Specification на Explicit values . | |
Нарушает ограничение, которое применяется ко всем блокам.
| Зафиксируйте перечисленный импорт блока или выходной порт. |
Эта проверка поддерживается разовой редактированием проверкой. Однако разовая редактированием проверка не отмечает нарушения всех ограничений этой проверки. В предыдущей таблице, условия нарушения ограничений, что разовые редактированием флаги проверки явным образом упоминаются.
ID проверки: mathworks.slci.UserDefinedFunctionBlocksUsage
Проверяйте на использование Пользовательских Функциональных блоков, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает о несовместимостях, которые это находит в Пользовательских Функциональных блоках.
Доступный с Simulink Code Inspector.
Подпроверять | Условие | Рекомендуемое действие |
---|---|---|
Check C Caller blocks | Неподдерживаемый тип данных задан для порта ввода или вывода. | Измените тип данных порта, чтобы быть одним из них: double единственный int8 int16 int32 uint8 uint16 , или uint32 |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки S-Function | S-функция не была создана с помощью текущего релиза Legacy Code Tool. | Если возможно, создайте S-функцию с помощью Legacy Code Tool или исследуйте альтернативы для включения кода в модели. |
Блок s-function не создан при помощи Legacy Code Tool. | Создайте S-функцию, чтобы получить доступ к S-функции при помощи Legacy Code Tool с этим command:legacy_code('slblock_generate', def) , где def структура с полями, которые представляют свойства Legacy Code Tool. | |
S-аргумент-функции не является ни скаляром, ни вектором из фиксированной размерности. | Измените S-функцию, таким образом, что аргументы являются скалярами или векторами из фиксированной размерности. | |
S-функция Legacy Code Tool задает InitializeConditionsFcnSpec , StartFcnSpec , или TerminateFcnSpec , вместо OutputFcnSpec . | Измените настройку S-функции, чтобы задать OutputFcnSpec . | |
S-функция имеет больше чем один dwork . | Измените настройку S-функции, чтобы задать один dwork . | |
S-function parameters (Parameters ) является комплексным или неличным. | Измените модель так, чтобы S-function parameters не был комплексным или неличным. | |
Интегрированная модель блока S-function SIL использует глобальную переменную для корневого порта ввода или вывода. | Измените модель так, чтобы она не использовала глобальные переменные для корневых портов ввода или вывода. | |
Зафиксируйте перечисленный импорт блока или выходной порт. |
ID проверки: mathworks.slci.PortsandSubsystemsBlocksUsage
Проверяйте на использование Портов и блоков Подсистем, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает о несовместимостях, которые это находит в блоках Подсистем и Портах.
Доступный с Simulink Code Inspector.
Подпроверять | Условие | Рекомендуемое действие |
---|---|---|
Проверяйте блоки Enable | Сигнал, вводящий разрешать порт, не имеет типа данных boolean . | Зафиксируйте тип данных сигнала. |
Разрешать Блокировка порта расположена на корневом уровне модели. | Удалите или переместите Разрешать Блокировку порта. | |
Default parameter behavior (DefaultParameterBehavior ) установлен в Inlined и сигнал, вводящий Разрешать Порт родительской подсистемы, является постоянным. | Измените модель так, чтобы сигнал, вводящий Разрешать Порт родительской подсистемы, не был постоянным. | |
Блокируйтесь порт имеет массивы шин или шин с элементами, которые являются массивами шин. | Зафиксируйте перечисленный порт блока так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин. | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Model Reference | Значение, которое задано в Arguments> Model arguments (ParameterArgumentValues ) является комплексным или неличным. | Измените модель так, чтобы значения, заданные в Model arguments, не были комплексными или неличными. |
Блок находится в защищенном режиме. | Удалите защиту от модели - ссылки. Для получения дополнительной информации смотрите, Защищают Модели, чтобы Скрыть Содержимое (Simulink Coder). | |
Блокируйтесь или блокируйтесь, выходной порт является постоянным. | Установите шаг расчета блока или блокируйте выходной порт к явному, непостоянному шагу расчета. | |
Блок имеет несколько шагов расчета. | Измените цель модели-ссылки так, чтобы блок Model Reference имел один шаг расчета. | |
Блокируйтесь входной порт не является одним из следующих поддерживаемых типов данных:
| Зафиксируйте тип данных входного порта. | |
Для входных портов в инициированном блоке модели - ссылки, Latch input by delaying outside signal (LatchByDelayingOutsideSignal ) выбран (набор к on ). | Очистите Latch input by delaying outside signal. Чтобы сохранить фиксирующееся поведение, реструктурируйте модель путем размещения блока Unit Delay перед входным блоком вне блока модели - ссылки. | |
Для входных портов блока модели - ссылки, Latch input for feedback signals of function-call subsystem outputs (LatchInputForFeedbackSignals ) выбран (набор к on ). | Очистите Latch input for feedback signals of function-call subsystem outputs. Чтобы сохранить фиксирующееся поведение, реструктурируйте модель путем размещения блока Unit Delay перед входным блоком вне блока модели - ссылки. | |
Блоки Model используют параметры экземпляра моделей, на которые ссылаются, в качестве аргументов. | Измените модель так, чтобы блоки Model не использовали параметры экземпляра моделей, на которые ссылаются, в качестве аргументов. | |
Simulink.LookupTable объект передается блоку модели - ссылки. | Измените модель так, чтобы она не содержала Simulink.LookupTable объект, который передается блоку модели - ссылки. | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Subsystem | Варианты подсистемы не имеют того же количества портов. | Если возможно, реконфигурируйте модель так, чтобы различные подсистемы имели то же количество портов. |
Подсистема не является одним из следующего:
| Если возможно, реконфигурируйте подсистему, чтобы быть любой виртуальными (очистите параметр блока Subsystem Treat as atomic unit), или встроенное атомарное, активированное, вызов функции, если действие или триггируемая подсистема. В качестве альтернативы перенесите подсистему в блок Model или исследуйте другие опции реализации. | |
Подсистемой является Функциональный блок Simulink. | Измените модель, чтобы удалить Функциональные блоки Simulink. | |
Для блоков с вариантами применяется любое из этих условий:
| Очистите Generate preprocessor conditionals или установите Model Configuration Parameters > Code Generation > Interface > Generate preprocessor conditionals на Disable all . | |
Параметры блоков Minimize algebraic loop occurrences ( | Очистите Minimize algebraic loop occurrences. | |
Для невиртуальных подсистем, Function packaging ( | Установите Function packaging на | |
Для блока с Function packaging (
| Зафиксируйте параметры блоков и параметры модели. | |
Для блока с Function packaging (
|
| |
Блокируйтесь порт имеет массивы шин или шин с элементами, которые являются массивами шин. | Измените модель так, чтобы блоки Model не использовали параметры экземпляра моделей, на которые ссылаются, в качестве аргументов. | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
В допускающей повторное использование подсистеме скрытый буфер сигнала был автоматически добавлен в его импорте. | Вручную поместите блок Signal Conversion непосредственно перед импортом допускающей повторное использование подсистемы. Выберите параметры блоков преобразования сигнала Exclude this block from 'Block reduction' optimization. | |
Simulink.LookupTable объект не должен быть передан подсистеме маскированной. | Измените модель так, чтобы она не содержала Simulink.LookupTable объект, который передается подсистеме маскированной. | |
Проверяйте блоки Trigger | В родительской подсистеме сигнал, вводящий триггерный порт, не является скаляром. | Сконфигурируйте сигнал, вводящий триггерный порт родительской подсистемы, чтобы быть скаляром. |
В родительской подсистеме сигналом, вводящим триггерный порт, не является boolean тип данных, когда Trigger type (TriggerType ) rising , falling , или either . | Сконфигурируйте сигнал, вводящий триггерный порт родительской подсистемы, чтобы быть boolean . | |
Блок на корневом уровне модели с Trigger type (TriggerType ) установите на rising , falling , или either . | Выполнить одно из следующих действий:
| |
States when enabling (StatesWhenEnabling ) установлен в inherit . Разовая редактированием проверка отмечает это условие. | Установите States when enabling на held или reset . | |
Default parameter behavior (DefaultParameterBehavior ) установлен в Inlined и сигнал, вводящий Триггерный Порт родительской подсистемы, является постоянным. | Измените модель так, чтобы сигнал, вводящий Триггерный Порт родительской подсистемы, не был постоянным. | |
Типом данных выходных портов не является auto int8 или double . | Зафиксируйте тип данных выходного порта. | |
Параметры блоков Initial trigger signal state (InitialTriggerSignalState ) не установлен в compatibility (no trigger on first evaluation) или zero . Разовая редактированием проверка отмечает это условие. | Установите Initial trigger signal state на compatibility (no trigger on first evaluation) или zero . | |
Блокируйтесь порт имеет массивы шин или шин с элементами, которые являются массивами шин. | Измените модель так, чтобы блоки Model не использовали параметры экземпляра моделей, на которые ссылаются, в качестве аргументов. | |
Зафиксируйте перечисленный импорт блока или выходной порт | ||
Проверяйте блоки Action Port | Зафиксируйте перечисленный импорт блока или выходной порт. | |
Проверяйте блоки If | Default parameter behavior (DefaultParameterBehavior ) установлен в Inlined и источник Inport 1 является постоянным. | Измените модель так, чтобы источник Входа 1 не был постоянным. |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Function-Call Generator | Блок имеет больше чем одно место назначения. | Измените модель так, чтобы блок имел одно место назначения. |
Number of iterations (numberOfIterations ) не установлен в 1 . Разовая редактированием проверка отмечает это условие. | Установите Number of iterations на 1 . | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Function-Call Split | Зафиксируйте перечисленный импорт блока или выходной порт. | |
Проверяйте блоки Switch Case | Default parameter behavior (DefaultParameterBehavior ) установлен в Inlined , и источник Inport 1 является постоянным. | Измените модель так, чтобы источник Входа 1 не был постоянным. |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки For Iterator | Параметры блоков Set next i (iteration variable) externally (ExternalIncrement ) выбран (набор к on ). Разовая редактированием проверка отмечает это условие. | Очистите Set next i (iteration variable) externally. |
Iteration limit source (IterationSource ) не установлен в internal . Разовая редактированием проверка отмечает это условие. | Установите Iteration limit source на internal . | |
Iteration variable data type (IterationVariableDataType ) установлен в double . Разовая редактированием проверка отмечает это условие. | Установите Iteration variable data type на int32 int16 int8 uint32 uint16 , или uint8 . | |
Подсистема For Iterator имеет настраиваемый параметр для внутреннего предела итерации. | Установите Default parameter behavior (DefaultParameterBehavior ) к Inlined или измените внутренний предел итерации так, чтобы это не был настраиваемый параметр. | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки For Each | Input Partition Dimension или Output Concatenation Dimension больше 2. | Установите Input Partition Dimension и Output Concatenation Dimension к значениям меньше чем 3. |
Параметры маски разделены. | Сконфигурируйте параметры маски так, чтобы они не были разделены. | |
NeedActiveIterationSignal установлен в on . Разовая редактированием проверка отмечает это условие. | Установите NeedActiveIterationSignal к off . | |
RequestParallelExec установлен в off . Разовая редактированием проверка отмечает это условие. | Установите RequestParallelExec к on . | |
ShowIterationIndex установлен в on . Разовая редактированием проверка отмечает это условие. | Установите ShowIterationIndex к off . | |
StateReset не установлен в held . Разовая редактированием проверка отмечает это условие. | Установите StateReset к held . | |
StateType не установлен в Separate states for each iteration . Разовая редактированием проверка отмечает это условие. | Установите StateType к Separate states for each iteration . | |
Number of iterations to execute не установлен в -1 (значение по умолчанию). | Установите Number of iterations to execute к значению по умолчанию -1 . | |
Зафиксируйте перечисленный импорт блока или выходной порт. |
Эта проверка поддерживается разовой редактированием проверкой. Однако разовая редактированием проверка не отмечает нарушения всех ограничений этой проверки. В предыдущей таблице, условия нарушения ограничений, что разовые редактированием флаги проверки явным образом упоминаются.
ID проверки: mathworks.slci.DiscontinuitiesBlocksUsage
Проверяйте на использование блоков Разрывов, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает о несовместимостях, которые это находит в блоках Разрывов.
Доступный с Simulink Code Inspector.
Подпроверять | Условие | Рекомендуемое действие |
---|---|---|
Проверка Насыщает блоки | Порты ввода и вывода не имеют совпадающего типа данных. | Измените типы данных порта, чтобы соответствовать. |
Параметры блоков Upper limit (UpperLimit ) является пустым, является неличным, использует выбор области значений или переменную индексацию на элементах структур MATLAB, является комплексным, или имеет две или больше размерности. | Зафиксируйте установку Upper limit. | |
Параметры блоков Lower limit (LowerLimit ) является пустым, является неличным, использует выбор области значений или переменную индексацию на элементах структур MATLAB, является комплексным, или имеет две или больше размерности. | Зафиксируйте установку Lower limit. | |
Параметры блоков Integer rounding mode (RndMeth ) установлен в неподдерживаемое значение. Разовая редактированием проверка отмечает это условие. | Установите Integer rounding mode на Zero или Floor . | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте Релейные блоки | Параметры блоков Switch on point (OnSwitchValue ) является пустым, является неличным, использует выбор области значений или переменную индексацию на элементах структур MATLAB, является комплексным, или имеет две или больше размерности. | Зафиксируйте установку Switch on point. |
Параметры блоков Switch off point (OffSwitchValue ) является пустым, является неличным, использует выбор области значений или переменную индексацию на элементах структур MATLAB, является комплексным, или имеет две или больше размерности. | Зафиксируйте установку Switch off point. | |
Параметры блоков Output when on (OnOutputValue ) является пустым, является неличным, использует выбор области значений или переменную индексацию на элементах структур MATLAB, является комплексным, или имеет две или больше размерности. | Зафиксируйте установку Output when on. | |
Параметры блоков Output when off (OffOutputValue ) является пустым, является неличным, использует выбор области значений или переменную индексацию на элементах структур MATLAB, является комплексным, или имеет две или больше размерности. | Зафиксируйте установку Output when off. | |
Проверяйте блоки Dead Zone | Параметры блоков Saturate on integer overflow (SaturateOnIntegerOverflow ) выбран (набор к on ). Разовая редактированием проверка отмечает это условие. | Зафиксируйте установку Saturate on integer overflow. |
Эта проверка поддерживается разовой редактированием проверкой. Однако разовая редактированием проверка не отмечает нарушения всех ограничений этой проверки. В предыдущей таблице, условия нарушения ограничений, что разовые редактированием флаги проверки явным образом упоминаются.
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 или SimulinkGlobal . Разовая редактированием проверка отмечает это условие. | В редакторе Отображений Кода, набор Storage Class к Auto или SimulinkGlobal . Чтобы открыть редактор Отображений Кода, откройте сначала приложение Embedded Coder. Затем на вкладке C Code, под Code Interface выбирают Individual Elements Code Mappings. | |
Выходной порт является блоком Out Bus Element. | Вместо блока Out Bus Element используйте блок Outport с блоком Bus Creator. | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Terminator | Блокируйтесь порт имеет массивы шин или шин с элементами, которые являются массивами шин. | Зафиксируйте перечисленный порт блока так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин. |
Зафиксируйте перечисленный импорт блока или выходной порт. |
Эта проверка поддерживается разовой редактированием проверкой. Однако разовая редактированием проверка не отмечает нарушения всех ограничений этой проверки. В предыдущей таблице, условия нарушения ограничений, что разовые редактированием флаги проверки явным образом упоминаются.
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 . | |
Когда состояние блока решает к сигналу с пользовательским классом памяти сигнала, классом памяти сигнала:
| Измените пользовательский класс памяти сигнала. | |
Состояние блока решает к объекту сигнала с непустым начальным значением. | Измените объект сигнала. | |
Блок используется для перехода уровня. | Замените блок, используемый для перехода уровня с блоком Rate Transition. | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Discrete Integrator | Типами данных Input port не является single или double для портов несброса. | Измените типы данных входных портов, чтобы быть single или double для портов несброса. |
Inports и выходные порты не являются скалярами. | Измените импорт или выходные порты, чтобы быть скалярами. | |
Типами данных выходных портов не является single или double . | Измените типы данных выходных портов, чтобы быть single или double . | |
Порты ввода и вывода не имеют совпадающего типа данных. | Измените типы данных порта, чтобы соответствовать. Тип данных порта сброса не должен совпадать с другими типами входных и выходных данных. | |
Параметры блоков Integrator method (
| Установите Integrator method на одно из следующего:
| |
Параметры блоков Show state port (ShowStatePort ) выбран. Разовая редактированием проверка отмечает это условие. | Очистите Show state port. | |
Параметры блоков External reset (ExternalReset ) не установлен в none . Разовая редактированием проверка отмечает это условие. | Установите параметры блоков External reset на none . | |
Или или оба параметров блоков Upper saturation limit (
| Установите и Upper saturation limit и Lower saturation limit к одномерному, некомплексному, конечному значению. | |
Блок в условной подсистеме. | Измените модель так, чтобы блок Discrete Integrator не был в условной подсистеме. | |
Default parameter behavior (DefaultParameterBehavior ) установлен в Inlined ) и источник блока Inport 2 является постоянным. | Установите шаги расчета блоков к явным, непостоянным шагам расчета. Измените модель так, чтобы источник блока Input 2 не был постоянным. | |
Когда состояние блока решает к сигналу с пользовательским классом памяти сигнала, классом памяти сигнала:
| Измените пользовательский класс памяти. | |
Состояние блока решает к объекту сигнала с непустым начальным значением. | Измените объект сигнала. | |
Зафиксируйте перечисленный импорт блока или выходной порт. | ||
Проверяйте блоки Delay | Параметры блоков Input processing (InputProcessing ) установлен в Columns as channels (frame based) . Разовая редактированием проверка отмечает это условие. | Установите Input processing на что-то другое, чем Columns as channels (frame based) . |
Параметры блоков Show enable port (ShowEnablePort ) выбран. Разовая редактированием проверка отмечает это условие. | Очистите Show enable port. | |
Эта проверка поддерживается разовой редактированием проверкой. Однако разовая редактированием проверка не отмечает нарушения всех ограничений этой проверки. В предыдущей таблице, условия нарушения ограничений, что разовые редактированием флаги проверки явным образом упоминаются.
ID проверки: mathworks.slci.StateflowBlocksUsage
Проверяйте на использование блоков Stateflow, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает о несовместимостях, которые это находит в блоках Stateflow.
Доступный с Simulink Code Inspector.
Проверять | Условие | Рекомендуемое действие |
---|---|---|
Check Stateflow blocks | Function packaging (RTWSystemCode ) не установлен в Inline . | Установите Function packaging на Inline , Nonreusable function или Reusable function . Если вы выбираете Nonreusable function , подсистема должна быть в следующих настройках:
Reusable function , модель должна использовать следующие настройки:
|
Допускающие повторное использование подсистемы в модели не от библиотеки и не размаскированы односкоростные атомарный или подсистемы вызова функций. | Измените допускающие повторное использование подсистемы в модели так, чтобы они были от библиотеки и размаскированы односкоростной атомарный или подсистемы вызова функций. | |
Зафиксируйте перечисленный импорт блока или выходной порт. |
Chart (Stateflow)
Стройте диаграмму программирования (Stateflow)
ID проверки: mathworks.slci.StringBlocksUsage
Идентифицируйте использование блоков Строки, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает о несовместимостях, которые это находит в блоках Строки.
Подпроверять | Условие | Рекомендуемое действие |
---|---|---|
Проверяйте блоки ASCII to String | Размерность входа больше или равна значению Buffer size параметра динамически измеренной строки (байты) (Simulink Coder). | Зафиксируйте входную размерность. |
Зафиксируйте перечисленный импорт блока или выходной порт. |
ID проверки: mathworks.slci.chartsSFObjsUsage
Проверяйте на использование диаграмм Stateflow, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает о несовместимостях, которые это находит в диаграммах Stateflow.
Доступный с Simulink Code Inspector.
Подпроверять | Условие | Рекомендуемое действие |
---|---|---|
Check usage of Stateflow object palette | График содержит один или несколько следующих объектов:
| Сконфигурируйте график так, чтобы он не содержал неподдерживаемые объекты. |
Check name usage in a Stateflow chart that uses MATLAB action language | График, который использует язык действия MATLAB, не имеет уникальных имен для функций Simulink, графических функций и таблиц истинности, которые это содержит. | Используйте уникальные имена для функций, графических функций и таблиц истинности в графике. |
Check that all charts unselect ‘Create output for monitoring’ option | Свойство диаграммы Create output for monitoring выбрано (набор к on ). | Очистите свойство диаграммы параметр Create output for monitoring. |
Check that all charts specify 'Inherited' as their update method | Свойство диаграммы Update method не установлено в Inherited . | Установите Update method на Inherited . |
Check that states or substates have a default transition | График имеет состояние или подсостояние без перехода по умолчанию. | Сконфигурируйте график так, чтобы состояния и подсостояния имели переходы по умолчанию. |
Check that all charts unselect ‘Enable Super Step Semantics’ option | Свойство диаграммы Enable Super Step Semantics выбрано (набор к on ). Разовая редактированием проверка отмечает это условие. | Очистите свойство диаграммы параметр Enable Super Step Semantics. |
Check that no charts execute at initialization | Свойство диаграммы Execute (enter) Chart at Initialization выбрано (набор к on ). Разовая редактированием проверка отмечает это условие. | Очистите свойство диаграммы параметр Execute (enter) Chart at Initialization. |
Check that no charts export chart level functions | Свойство диаграммы Export Chart Level Functions выбрано (набор к on ). Разовая редактированием проверка отмечает это условие. | Очистите свойство диаграммы параметр Export Chart Level Functions. |
Check that no charts specify saturation on overflow for integer operations | Свойство диаграммы Saturate on integer overflow выбрано (набор к on ). | Очистите свойство диаграммы параметр Saturate on integer overflow. |
Check usage of State Machine Type | Свойство диаграммы State Machine Type установлено в Moore . Разовая редактированием проверка отмечает это условие. | Установите State Machine Type на Classic или Mealy . |
Check that no charts support variable-size arrays | Свойство диаграммы Support variable-size arrays выбрано (набор к on ). | Очистите свойство диаграммы параметр Support variable-size arrays. |
Check that all control flows have unique default transitions | Поток управления имеет больше чем 1 переход по умолчанию. | Сконфигурируйте график так, чтобы он имел 1 переход по умолчанию. |
Эта проверка поддерживается разовой редактированием проверкой. Однако разовая редактированием проверка не отмечает нарушения всех ограничений этой проверки. В предыдущей таблице, условия нарушения ограничений, что разовые редактированием флаги проверки явным образом упоминаются.
Стройте диаграмму программирования (Stateflow)
Chart (Stateflow)
ID проверки: mathworks.slci.MATLABactionlanguageStateflowUsage
Проверяйте на использование Stateflow язык действия MATLAB, который может повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает о несовместимостях, это находит в Stateflow использование языка действия MATLAB.
Доступный с Simulink Code Inspector.
Для подпроверок, запущенных, чтобы проверять использование языка действия MATLAB в диаграммах Stateflow, смотрите использование Проверки Кода в функциях MATLAB.
Стройте диаграмму программирования (Stateflow)
Chart (Stateflow)
ID проверки: mathworks.slci.transitionsSFObjsUsage
Проверяйте на использование переходов Stateflow, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает о несовместимостях, которые это находит в переходах Stateflow.
Доступный с Simulink Code Inspector.
Подпроверять | Условие | Рекомендуемое действие |
---|---|---|
Check that actions do not have unsupported operations | Действие использует операцию, которая не поддерживается:
| Измените график так, чтобы действие использовало только поддерживаемые операции. |
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:
| Измените математическую функцию, чтобы использовать поддерживаемые типы данных. |
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 | График задает вызовы графической функции с различным количеством фактических и ожидаемых выходных параметров. | Измените график так, чтобы графические функции присвоили все выходные параметры. |
Check that Stateflow transitions are not configured as variant transitions | Диаграмма Stateflow содержит переходы, которые сконфигурированы как различные переходы. | Измените график, чтобы избегать использования различных переходов. |
Диаграммы Stateflow (Stateflow)
Переходы (Stateflow)
Связи перехода (Stateflow)
Переходы по умолчанию (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 | Безусловный переход не является последним в порядке выполнения. | Измените график так, чтобы безусловный переход был последним в порядке выполнения. Это предотвращает затенение перехода. |
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 Method | InitializeMethod для 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 и стройте диаграмму использования C как язык действия, данные являются массивом шин или имеют элементы, которые являются массивами шин. Если типом данных графика является enumerated , значением по умолчанию данных не является 0 . | Измените типы данных графика, чтобы быть builtin , enumerated , или bus . Если типом данных графика является bus и стройте диаграмму использования C как язык действия, измените график так, чтобы данные не были массивом шин, или имейте элементы, которые являются массивами шин. Если типом данных графика является enumerated , обновите график так, чтобы enumerated тип данных имеет значение по умолчанию 0 . |
Check that the 'First Index' of Stateflow data are empty or 0 | First Index свойство для данных Stateflow не пусто или 0. | Измените First Index свойство данных Stateflow быть пустым или 0. |
Check that Stateflow parameter data sizes in Stateflow and the base workspace match | Размер данных о параметре Stateflow отличается в Stateflow и базовом рабочем пространстве. | Измените размер данных о параметре Stateflow так, чтобы это было то же самое в Stateflow и базовом рабочем пространстве. |
Check that the chart uses only non-complex data | Стройте диаграмму комплексных данных использования. | Измените график так, чтобы он не использовал комплексные данные. |
Основы спецификации данных (Stateflow)
События (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)
События (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 | Действие использует операцию, которая не является:
| Измените график так, чтобы действие использовало только поддерживаемые операции. |
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:
| Измените математическую функцию, чтобы использовать поддерживаемые типы данных. |
Check that no actions contain an xor operator with boolean operands | Действие содержит XOR оператор с булевыми операндами с параметром модели набор Casting modes к Standards . | Измените действие, чтобы избегать использования XOR оператор с булевыми операндами или набор Casting modes к Nominal . |
Check that no actions contain a binary operator whose operands are of mixed data type | Действие содержит бинарного оператора смешанных операндов типа данных, который не поддерживается для инспекции кода. | Измените график, чтобы избегать использования бинарных операторов с операндами смешанного типа данных. |
Check that no Stateflow functions have more than 2 arguments | Функция Stateflow имеет больше чем 2 аргумента. | Измените функцию Stateflow, чтобы иметь не больше, чем 2 аргумента. Может быть возможно заменить функцию на серию функций, каждого больше чем без 2 аргументов. |
Check usage of States with recursive send function calls | Состояние содержит рекурсивный, отправляют вызовы функции. | Измените состояние так, чтобы не было никаких рекурсий. |
Check data type of Simulink Function arguments | Состояние задает вызов функции с различными фактическими и ожидаемыми типами данных аргумента. | Измените состояние, чтобы задать вызовы функции Simulink использовать совпадающие типы данных для фактических и ожидаемых аргументов. |
Check dimensions of Simulink Function arguments | Состояние задает вызов функции с различными фактическими и ожидаемыми размерами аргумента. | Измените состояние, чтобы задать вызовы функции Simulink использовать те же размеры для фактических и ожидаемых аргументов. |
Check usage of Stateflow state InlineOption | Свойство состояний Function Inline Option установлено в Auto или Function . | Установите свойство состояний Function Inline Option на Inline . |
Check that all states unselect ‘Create output for monitoring’ option | Свойство состояний Create output for monitoring выбрано (набор к on ). | Очистите свойство состояний параметр Create output for monitoring. |
Check that no actions access time (t) | Время доступов к действию, которое не поддерживается для инспекции кода. | Измените действие, чтобы не получать доступ ко времени. |
Check data type of truth table arguments | Состояние задает таблицу истинности с различными фактическими и ожидаемыми типами данных аргумента. | Измените состояние, чтобы задать таблицы истинности, чтобы использовать совпадающие типы данных для фактических и ожидаемых аргументов. |
Check dimensions of truth table arguments | Состояние задает таблицу истинности с различными фактическими и ожидаемыми размерами аргумента. | Измените состояние, чтобы задать таблицы истинности, чтобы использовать те же размеры для фактических и ожидаемых аргументов. |
Check that control flows are structured | Состояние содержит неструктурированные потоки управления, которые не поддерживаются для инспекции кода. | Сконфигурируйте график так, чтобы он не содержал неструктурированные потоки управления. |
Check that all control flows have unique default transitions | Поток управления имеет больше чем 1 переход по умолчанию. | Сконфигурируйте график так, чтобы он имел 1 переход по умолчанию. |
Check that all transition paths are either inner transitions to a substate, or outer transitions to siblings, direct parent, or direct substates | Состояние использует путь к переходу, который не является одним из следующего:
| Сконфигурируйте переходы так, чтобы это использовало поддерживаемый путь. |
Check unassigned graphical function outputs | График задает вызовы графической функции с различным количеством фактических и ожидаемых выходных параметров. | Измените график так, чтобы графические функции присвоили все выходные параметры. |
Повторное использование компоненты Simulink в диаграммах Stateflow (Stateflow)
Состояния (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 | Графическая функция содержит неструктурированные потоки управления, которые не поддерживаются для инспекции кода. | Сконфигурируйте графическую функцию так, чтобы она не содержала неструктурированные потоки управления. |
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 | Таблица истинности содержит неструктурированные потоки управления, которые не поддерживаются для инспекции кода. | Сконфигурируйте таблицу истинности так, чтобы она не содержала неструктурированные потоки управления. |
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 ). | Измените выход пользовательский класс памяти сигнала:
|
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 . |
Identify Subsystems that have unsupported configurations for non-inlined | Для блока MATLAB Function, Function packaging (RTWSystemCode ) не установлен в Inline . | Измените блок MATLAB Function, чтобы установить Function packaging (RTWSystemCode ) к Inline , Nonreusable function или Reusable function . Если вы выбираете Nonreusable function , подсистема должна быть в следующих настройках:
Reusable function , модель должна использовать следующие настройки:
|
Check that reusable subsystems in a model are from a library and are unmasked single-rate atomic or function-call subsystems | Допускающие повторное использование подсистемы в модели не от библиотеки и не размаскированы односкоростные атомарный или функция - подсистемы вызова. | Измените допускающие повторное использование подсистемы в модели так, чтобы они были от библиотеки. Эти подсистемы должны быть размаскированы односкоростные атомарный или подсистемы вызова функций. |
Check that MATLAB functions do not contain input Trigger signals | Функция MATLAB содержит сигналы входа Trigger. | Измените функцию MATLAB, чтобы удалить использование сигналов входа Trigger. |
Check that blocks that are constant or whose parameters can be tuned, do not drive two or more multirate blocks without using explicit rate transition blocks | Блокируйтесь, который является постоянным или имеет параметры, которые могут быть настроены, управляет двумя или больше многоскоростными блоками, не используя явные блоки Перехода Уровня. | Измените блок, чтобы использовать явные блоки Перехода Уровня. |
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. |
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 > Identifiers, набор Локальные временные переменные (Embedded Coder) к значению по умолчанию $N$M и набор Разделяемый сервисный формат идентификатора (Embedded Coder) к значению по умолчанию $N$C . |
Check standard math library settings for shared utils inspection | Стандартные математические настройки библиотеки не поддерживаются для разделяемого сервисного контроля. | В диалоговом окне Configuration Parameters, на панели Code Generation > Interface, математическая библиотека Стандарта набора (Simulink Coder) к C89/C90 (ANSI) или C99 . |
Check code style settings for shared utils inspection | Значения для параметров конфигурации стиля кода не поддерживаются для разделяемого сервисного контроля. | В диалоговом окне Configuration Parameters, на панели Code Generation > Code Style:
|