Использование Simulink® Code Inspector™ Model Advisor проверяет, чтобы сконфигурировать модель для инспекции кода. Если у вас есть лицензия Simulink Check™, можно использовать проверку во время редактирования, чтобы идентифицировать проблемы совместимости в процессе разработки модели. Подмножество проверок Model Advisor поддерживает проверку во время редактирования. Однако проверка во время редактирования не помечает нарушения для всех ограничений поддерживаемых проверок Model Advisor. Он помечает некоторые определенные нарушения ограничений.
Simulink Coder проверяет (Simulink Coder)
Simulink Check проверки ( Simulink Check)
Проверяйте идентификатор: mathworks.slci.CodeGenerationSettings
Проверьте настройки генерации кода в строения модели, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка проверяет, что настройки генерации кода совместимы с инспекцией кода.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Verify 'Use dynamic memory allocation for model initialization' setting | Модель сконфигурирована, чтобы динамически выделять память. | В диалоговом окне Параметров конфигурации очистите поле Use dynamic memory allocation for model initialization (Simulink Coder). |
Verify 'Shared code placement' setting | Модель не сконфигурирована, чтобы сгенерировать общий код утилиты в общее место. Если общий код утилиты генерируется в Simulink Code Inspector сообщает код как непроверенный. | В диалоговом окне Параметров конфигурации на панели Code Generation > Interface установите значение Shared code placement (Simulink Coder) Shared location . Использование общего местоположения для служебных функций, макросов и определяемых пользователем типов данных способствует отладке и трассируемости сгенерированного кода. |
Verify 'Source file' setting | Пользовательский код сконфигурирован так, чтобы он находился в верхней части сгенерированного исходного файла модели. | В диалоговом окне Параметров конфигурации на панели Code Generation > Custom Code очистите поле Source file (Simulink Coder). |
Verify 'Header file' setting | Пользовательский код сконфигурирован так, чтобы он находился в верхней части сгенерированного файла заголовка модели. | В диалоговом окне Параметров конфигурации на панели Code Generation > Custom Code очистите поле Header file (Simulink Coder). |
Verify 'Initialize function' setting | Пользовательский код сконфигурирован, чтобы появиться в сгенерированной функции инициализации модели. | В диалоговом окне Configuration Parameters на панели Code Generation > Custom Code очистите поле Initialize function (Simulink Coder). |
Verify 'Terminate function' setting | Пользовательский код сконфигурирован, чтобы появиться в сгенерированной функции завершения модели. | В диалоговом окне Параметров конфигурации на Code Generation > Custom Code и очистите поле Terminate function (Simulink Coder). |
Verify 'Disable incompatible optimizations' setting | Модель не сконфигурирована, чтобы отключить оптимизацию, которая несовместима с Simulink Code Inspector. | В MATLAB® Командное окно, установите параметр модели AdvancedOptControl на -SLCI . Для примера, set_param(gcs, 'AdvancedOptControl', '-SLCI') . |
Verify 'Combine signal/state structures' setting | Модель сконфигурирована, чтобы объединить глобальные блочные сигналы и данные о глобальном состоянии в одну структуру данных в сгенерированном коде. Это не поддерживается для инспекции кода. | В диалоговом окне Параметров конфигурации очистите параметр Combine signal/state structures (Embedded Coder). |
Verify 'Array layout' setting | Эта модель сконфигурирована, чтобы сгенерировать код в размещении строки. Это не поддерживается для инспекции кода. | В диалоговом окне Параметров конфигурации установите параметр Массива размещения (Simulink Coder) равным column-major . |
Verify 'Remove code from floating-point to integer conversions that wraps out-of-range values' setting | Модель сконфигурирована так, чтобы не удалять код переноса, который обрабатывает результаты преобразования с плавающей точкой вне области допустимого значения в целочисленное, когда происходят преобразования вне области допустимого. | В диалоговом окне Параметров конфигурации на панели Code Generation > Optimization выберите Remove code from floating-point to integer conversions that wraps out-of-range values (Simulink Coder). |
Verify 'Remove code from floating-point to integer conversions with saturation that maps NaN to zero' setting | Модель сконфигурирована, чтобы удалить код, который обрабатывает результаты преобразования с плавающей точкой в целое число для NaN значения при отображении из NaN в целое число происходит ноль. | В диалоговом окне Параметров конфигурации очистите параметр Remove code from floating-point to integer conversions with saturation that maps NaN to zero (Simulink Coder). |
Verify 'Include comments' setting | Модель сконфигурирована, чтобы исключить автогенерированные комментарии из файлов сгенерированного кода. Simulink Code Inspector анализирует автогенерированные комментарии, чтобы получить информацию о трассируемости данных моделей. | В диалоговом окне Параметров конфигурации на панели Code Generation > Comments выберите Include comments (Simulink Coder). |
Verify 'Generate scalar inlined parameter as' setting | Модель сконфигурирована, чтобы сгенерировать скалярные inlined параметры как переменные с #define макросы, а не как числовые константы. | В диалоговом окне Параметров конфигурации на панели Code Generation > Identifiers установите значение Generate scalar inlined parameter as (Embedded Coder) Literals . |
Verify 'Preserve condition expression in if statement' setting | Модель сконфигурирована, чтобы оптимизировать пустые выражения первичного условия в if операторы путем их отмены, а не сохранения пустых выражений первичного условия. | В диалоговом окне Параметров конфигурации на панели Code Generation > Code Style выберите Preserve condition expression in if statement (Embedded Coder). |
Verify 'Code replacement library' setting | Библиотека замещения кода, отличная от None выбран для модели. | В диалоговом окне Параметров конфигурации на панели Code Generation > Interface установите значение Code replacement library (Simulink Coder) None . Проверка не проходит, если вы не выбираете None . Однако, если вы создаете библиотеку с помощью Поддерживаемых функций и Операций в Библиотеках Замещения Кода, Simulink Code Inspector действительно просматривает сгенерированный код. |
Verify 'Standard math library' setting | Стандартная математическая библиотека кроме C89/C90 (ANSI) или C99 (ISO) выбран для модели. | В диалоговом окне Параметров конфигурации установите значение Standard math library (Simulink Coder) C89/C90 (ANSI) или C99 (ISO) . |
Verify 'Classic call interface' setting | Модель сконфигурирована, чтобы сгенерировать вызовы функции модели, совместимые с основным программным модулем pre-R2011a цели GRT. Классический интерфейс вызова не поддерживается для инспекции кода. | В диалоговом окне Параметров конфигурации очистите параметр Classic call interface (Simulink Coder). |
Verify 'Terminate function required' setting | Модель сконфигурирована, чтобы сгенерировать функция, потенциально содержащая код завершения модели, который будет выполнен во время завершения работы системы. Это не поддерживается для инспекции кода. | В диалоговом окне Параметров конфигурации очистите параметр Terminate function required (Embedded Coder). |
Verify 'Remove code that protects against division arithmetic exceptions' setting | Модель сконфигурирована, чтобы удалить код, который защищает от деления на нули для данных с фиксированной точкой. | В диалоговом окне Параметров конфигурации на панели Code Generation > Optimization очистите параметр Remove code that protects against division arithmetic exceptions (Embedded Coder). |
Verify 'MAT-file logging' setting | Модель сконфигурирована для регистрации данных выполнения в MAT-файле. Это не поддерживается для инспекции кода. | В диалоговом окне Параметров конфигурации очистите параметр MAT-file logging (Simulink Coder). |
Verify 'Pack Boolean data into bitfields' setting | Модель сконфигурирована, чтобы хранить логические сигналы как однобитовые битовые поля. | В диалоговом окне Параметров конфигурации на панели Code Generation > Optimization очистите параметр Pack Boolean data into bitfields (Embedded Coder). |
Verify ‘Use bitsets for storing state configuration’ setting | Модель сконфигурирована так, чтобы уменьшить объем памяти, необходимой для хранения переменных строения состояния. | В диалоговом окне Параметров конфигурации на панели Code Generation > Optimization очистите параметр Use bitsets for storing state configuration (Simulink Coder). |
Verify 'non-finite numbers' setting | Модель сконфигурирована, чтобы генерировать нефинитные данные (для примера, NaN и Inf ) и сопутствующие операции. Это не поддерживается для инспекции кода. | В диалоговом окне Параметров конфигурации на панели Code Generation > Interface очистите параметр Support: non-finite numbers (Simulink Coder). |
Verify 'absolute time' setting | Модель сконфигурирована, чтобы генерировать и поддерживать целочисленные счетчики для абсолютных и истекших значений времени. Это не поддерживается для инспекции кода. | В диалоговом окне Параметров конфигурации на панели Code Generation > Interface очистите параметр Support: absolute time (Embedded Coder). |
Verify 'Operator to represent Bitwise and Logical Operator blocks' setting | Модель сконфигурирована, чтобы сгенерировать код, который представляет побитовых операторов как логический оператор. | В диалоговом окне Параметров конфигурации на панели Code Generation > Interface установите значение Operator to represent Bitwise and Logical Operator blocks (Embedded Coder) Same as modeled или Bitwise operator . |
Verify ‘Default parameter behavior’ setting | Модель-ссылка сконфигурирована, чтобы использовать символьные имена для параметров модели в сгенерированном коде. | В диалоговом окне Параметров конфигурации установите значение Default parameter behavior (Simulink Coder) Inlined . |
Verify 'Remove error status field in real-time model data structure' setting | Модель сконфигурирована таким образом, чтобы включать поле состояния ошибки в сгенерированное rtModel структура данных. The rtModel структура данных не поддерживается для инспекции кода. | В диалоговом окне Параметров конфигурации на панели Code Generation > Interface выберите Remove error status field in real-time model data structure (Embedded Coder). |
Verify 'Create block' setting | Модель сконфигурирована, чтобы сгенерировать блок SIL или PIL во время генерации кода. Это не поддерживается для инспекции кода. | В диалоговом окне Параметров конфигурации установите значение Create block (Embedded Coder) None . |
Verify 'Measure function execution times' setting | Модель сконфигурирована, чтобы сгенерировать код с инструментированием, чтобы собрать времена выполнения для функций внутри сгенерированного кода. Это не поддерживается для инспекции кода. | В диалоговом окне Параметров конфигурации на панели Code Generation > Verification очистите параметр Measure function execution times (Embedded Coder). |
Verify 'Signal naming' setting | Модель сконфигурирована для изменения имен сигналов при создании соответствующих идентификаторов в сгенерированном коде. | В диалоговом окне Параметров конфигурации на панели Code Generation > Identifiers установите значение Signal naming (Embedded Coder) None . |
Verify 'Parameter naming' setting | Модель сконфигурирована для изменения имен параметров при создании соответствующих идентификаторов в сгенерированном коде. | В диалоговом окне Параметров конфигурации на панели Code Generation > Identifiers установите значение Parameter naming (Embedded Coder) None . |
Verify 'TLC options' setting | Модель сконфигурирована с опциями TLC. | В Командном Окне MATLAB установите параметр конфигурации модели TLCOptions на unspecified или -aMaxStackVariableSize=inf . Для примера, set_param(gcs, 'TLCOptions', ' ') или set_param(gcs, 'TLCOptions', '-aMaxStackVariableSize=inf') . |
Verify ‘variable-size signals’ setting | Модель сконфигурирована, чтобы сгенерировать код для моделей, которые используют сигналы переменного размера. | В диалоговом окне Параметры конфигурации на панели Code Generation очистите поле Support: variable-size signals (Embedded Coder). |
Verify 'Single output/update function' setting | Модель сконфигурирована, чтобы сгенерировать код отдельно и функций, а не функция, которая объединяет два. | В диалоговом окне Параметров конфигурации выберите Single output/update function (Simulink Coder). |
Verify ‘Casting Modes’ setting | Модель сконфигурирована, чтобы сгенерировать код, который явно выводит значения типов данных. | В диалоговом окне Параметров конфигурации на панели Code Generation > Code Style установите значение Casting Modes (Embedded Coder) Nominal или Standards . |
Verify 'Suppress generation of default cases for Stateflow switch statements if unreachable' setting | Модель сконфигурирована, чтобы генерировать случаи по умолчанию для операторов switch-case в коде для Stateflow® чарты. | В диалоговом окне Параметры конфигурации на панели Code Generation> Code Style очистите поле Suppress generation of default cases for Stateflow switch statements if unreachable (Embedded Coder). |
Verify ‘Optimize using the specified minimum and maximum values’ setting | Модель сконфигурирована, чтобы оптимизировать сгенерированный код с помощью информации о области значений, полученной из минимального и максимального заданных значений для сигналов и параметров в модели. | В диалоговом окне Параметров конфигурации на панели Code Generation > Optimization очистите параметр Optimize using the specified minimum and maximum values (Embedded Coder). |
Verify ‘parameters’ setting | Модель сконфигурирована, чтобы сгенерировать интерфейс C API к параметрам глобальных блоков. | В диалоговом окне Параметров конфигурации на панели Code Generation > Interface очистите Generate C API for: parameters (Simulink Coder). |
Verify ‘signals’ setting | Модель сконфигурирована, чтобы сгенерировать интерфейс C API к выходам глобальных блоков. | В диалоговом окне Параметров конфигурации на панели Code Generation > Interface очистите Generate C API for: signals (Simulink Coder). |
Verify ‘states’ setting | Модель сконфигурирована, чтобы сгенерировать интерфейс C API к дискретным и непрерывным состояниям. | В диалоговом окне Параметров конфигурации на панели Code Generation > Interface очистите Generate C API for: states (Simulink Coder). |
Verify ‘root-level I/O’ setting | Модель сконфигурирована, чтобы сгенерировать интерфейс C API для входов и выходов корневого уровня. | В диалоговом окне Параметров конфигурации на панели Code Generation > Interface очистите Generate C API for: root-level I/O (Simulink Coder). |
Verify ‘External mode’ setting | Модель сконфигурирована, чтобы сгенерировать код для интерфейса данных режима external mode. | В диалоговом окне Параметров конфигурации на панели Code Generation > Interface очистите External mode (Simulink Coder). |
Verify ‘ASAP2 interface’ setting | Модель сконфигурирована, чтобы сгенерировать код для интерфейса ASAP2 данных. | В диалоговом окне Параметров конфигурации на панели Code Generation > Interface очистите ASAP2 interface (Simulink Coder). |
Verify 'Generate an example main program' setting | Модель не сконфигурирована, чтобы сгенерировать пример основной программы. | В диалоговом окне Параметров конфигурации на панели Code Generation > Templates выберите Generate an example main program (Embedded Coder). |
Verify ‘Use bitsets for storing Boolean data’ setting | Модель сконфигурирована, чтобы использовать битсеты для хранения булевых данных. | В диалоговом окне Параметров конфигурации на панели Code Generation > Optimization очистите параметр Use bitsets for storing Boolean data (Simulink Coder). |
Verify 'Simplify array indexing' setting | Модель сконфигурирована, чтобы сгенерировать код, который заменяет операции умножения на операции добавления в индексах массива при доступе к массивам в цикле. | В диалоговом окне Параметров конфигурации очистите параметр Simplify array indexing (Embedded Coder). |
Verify 'Rate Transition block code' setting | Модель сконфигурирована, чтобы отделить Rate Transition блочный код и данные от кода модели и данных. | В диалоговом окне Параметров конфигурации на панели Code Generation > Code Placement установите значение Rate Transition block code (Embedded Coder) Inline . |
Проверяйте идентификатор: mathworks.slci.DataImportSettings
Проверьте параметры импорта/экспорта данных в строениях модели, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка проверяет, что параметры импорта/экспорта данных совместимы с инспекцией кода.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Verify 'Initial state' setting | Модель сконфигурирована, чтобы загрузить начальные состояния из рабочей области, которая не совместима с инспекцией кода. | В диалоговом окне Параметров конфигурации на панели Data Import/Export очистите параметр Initial state. |
Проверяйте идентификатор: mathworks.slci.DiagnosticsSettings
Проверьте параметры диагностики в строении модели, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка проверяет, что параметры диагностики совместимы с инспекцией кода.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Verify ‘Multitask data store’ setting | Модель не сконфигурирована, чтобы генерировать ошибку, когда одна задача считывает данные из блока Data Store Memory, в который другая задача записывает данные. | В диалоговом окне Параметров конфигурации на панели Diagnostics > Data Validity установите Multitask data store error . |
Verify ‘Multitask rate transition’ setting | Модель не сконфигурирована, чтобы генерировать ошибку, когда произошел недопустимый переход скорости между двумя блоками, работающими в многозадачном режиме. | В диалоговом окне Параметров конфигурации на панели Diagnostics > Sample Time установите Multitask rate transition error . |
Verify ‘Multitask conditionally executed subsystem’ setting | Модель не сконфигурирована, чтобы генерировать ошибку, когда программное обеспечение Simulink обнаруживает подсистему, которая может вызвать повреждение данных или недетерминированное поведение. | В диалоговом окне Параметров конфигурации на панели Diagnostics > Sample Time установите Multitask conditionally executed subsystem error . |
Verify 'Underspecified initialization detection' setting | Модель не сконфигурирована, чтобы инициализировать начальные условия блока с помощью упрощенного поведения. Упрощенное поведение может улучшить согласованность результатов модели. | В диалоговом окне Параметров конфигурации установите Underspecified initialization detection равным Simplified . |
Verify 'Non-bus signals treated as bus signals' setting | Модель не сконфигурирована, чтобы сгенерировать ошибку, когда программное обеспечение Simulink неявно преобразует сигнал без шины в сигнал шины, чтобы поддержать соединение сигнала с блоком Bus Assignment или Bus Selector. | В диалоговом окне Параметров конфигурации на панели Diagnostics > Connectivity установите Non-bus signals treated as bus signals error . |
Verify 'Detect downcast' setting | Модель не сконфигурирована, чтобы сгенерировать ошибку, когда параметр вниз происходит во время симуляции. | В диалоговом окне Параметров конфигурации на панели Diagnostics > Data Validity установите Detect downcast error . |
Verify 'Detect overflow' setting | Модель не сконфигурирована, чтобы генерировать ошибку, когда переполнение параметра происходит во время симуляции. | В диалоговом окне Параметров конфигурации на панели Diagnostics > Data Validity > Parameters установите Detect overflow error . |
Verify 'Detect overflow' setting | Модель не сконфигурирована, чтобы генерировать ошибку, когда переполнение сигнала происходит во время симуляции. | В диалоговом окне Параметров конфигурации на панели Diagnostics > Data Validity > Signals установите Wrap on overflow error . |
Verify 'Saturate on overflow' setting | Модель не сконфигурирована, чтобы сгенерировать ошибку, когда значение сигнала слишком велико, чтобы быть представленным типом данных сигнала, что приводит к насыщению. | В диалоговом окне Параметров конфигурации на панели Diagnostics > Data Validity > Signals установите Saturate on overflow error . |
Verify 'Detect underflow' setting | Модель не сконфигурирована, чтобы генерировать ошибку, когда нижнее течение параметра происходит во время симуляции. | В диалоговом окне Параметров конфигурации на панели Diagnostics > Data Validity установите Detect underflow error . |
Verify 'Detect loss of tunability' setting | Модель не сконфигурирована, чтобы сгенерировать ошибку, когда выражение с настраиваемыми переменными уменьшается до ее численного эквивалента. | В диалоговом окне Параметров конфигурации на панели Diagnostics > Data Validity установите Detect loss of tunability error . |
Verify 'Unexpected backtracking' setting | Модель не сконфигурирована, чтобы сгенерировать ошибку, когда соединение графика:
| В диалоговом окне Параметров конфигурации на панели Diagnostics > Stateflow установите Unexpected backtracking error . |
Verify 'Invalid input data access in chart initialization' setting | Модель не сконфигурирована, чтобы сгенерировать ошибку, когда график:
| В диалоговом окне Параметров конфигурации на панели Diagnostics > Stateflow установите Invalid input data access in chart initialization error . |
Verify 'No unconditional default transitions' setting | Модель не сконфигурирована, чтобы генерировать ошибку, когда график не имеет безусловного перехода по умолчанию в состояние или соединение. | В диалоговом окне Параметров конфигурации на панели Diagnostics > Stateflow установите No unconditional default transitions error . |
Verify 'Transition outside natural parent' setting | Модель не сконфигурирована, чтобы генерировать ошибку, когда график содержит переход, который закольцовывается вне родительского состояния или соединения. | В диалоговом окне Параметров конфигурации на панели Diagnostics > Stateflow установите Transition outside natural parent error . |
Verify ‘Unreachable execution path’ setting | Модель не сконфигурирована, чтобы сгенерировать ошибку, когда конструкция графика не находится в допустимом пути выполнения. | В диалоговом окне Параметров конфигурации на панели Diagnostics > Stateflow установите Unreachable execution path error . |
Verify 'Undirected event broadcasts' setting | Модель не настроена для генерации ошибки, когда график содержит неориентированные локальные трансляции событий. | В диалоговом окне Параметров конфигурации на панели Diagnostics > Stateflow установите Undirected event broadcasts error . |
Verify 'Transition action specified before condition action' setting | Модель не сконфигурирована, чтобы генерировать ошибку, когда действие перехода выполняется перед действием условия в пути перехода с несколькими сегментами перехода. | В диалоговом окне Параметров конфигурации на панели Diagnostics > Stateflow установите Transition action specified before condition action error . |
Verify Bus signal treated as vector setting | Модель не сконфигурирована, чтобы сгенерировать ошибку, когда программное обеспечение Simulink обнаруживает сигнал виртуальной шины, который используется в качестве сигнала мультиплексора. Строгое поведение шины не применяется. | В диалоговом окне Параметров конфигурации на панели Diagnostics > Connectivity установите Bus signal treated as vector error . |
Verify 'Allow symbolic dimension specification' settings | Модель сконфигурирована, чтобы разрешить символьную спецификацию размерности. | В диалоговом окне Параметра конфигурации очистите поле Allow symbolic размерности спецификации. |
Проверяйте идентификатор: mathworks.slci.HardwareImplementationSettings
Проверьте параметры аппаратной реализации в строении модели, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка проверяет, что параметры аппаратной реализации совместимы с инспекцией кода.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Verify 'char' setting | Битовая длина символьных данных для производственного оборудования не равна 8 . | В диалоговом окне Параметры конфигурации на панели Hardware Implementation выберите производственное аппаратное Device type, совместимое с настройками этой таблицы. |
Verify 'short' setting | Длина бита short данные для производственного оборудования не равны 16 . | |
Verify 'int' setting | Длина бита int данные для производственного оборудования не равны 32 . | |
Verify 'long' setting | Длина бита long данные для производственного оборудования не равны 32 . | |
Verify 'float' setting | Битовая длина данных с плавающей точкой для производственного оборудования не равна 32 . | |
Verify 'double' setting | Длина бита double данные для производственного оборудования не равны 64 . | |
Verify 'pointer' setting | Битовая длина данных указателя для производственного оборудования не равна 32 . | |
Verify 'native' setting | Размер собственного слова микропроцессора для производственного оборудования не равен 32 биты. | |
Verify 'Signed integer division rounds to' setting | Метод создания целочисленного фактора со знаком для производственного оборудования не должен выбирать целое число, которое ближе к нулю (Zero метод). | |
Verify 'Shift right on a signed integer as arithmetic shift' setting | Метод, которым компилятор реализует сдвиг целого числа знаком вправо для производственного оборудования, не является арифметикой сдвигом вправо. | |
Verify ‘Support long long’ setting | Использование длинного типа данных C включено. | В диалоговом окне Параметры конфигурации на панели Hardware Implementation не выбирайте Support long long. |
Verify 'Test hardware is the same as production hardware' setting | Тестовое оборудование отличается от оборудования развертывания. | В диалоговом окне Параметров конфигурации выберите Test hardware is the same as production hardware. |
Verify 'Device vendor->Device type‘ setting | Поставщик устройства и тип устройства ASIC/FPGA . | В диалоговом окне Configuration Parameters на панели Hardware Implementation под Test hardware не выбирайте Device vendor
ASIC/FPGA |
Проверяйте идентификатор: mathworks.slci.MathandDataTypesSettings
Проверьте настройки математики и типа данных в строении модели, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка проверяет, что настройки математики и типа данных совместимы с инспекцией кода.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Verify 'Implement logic signals as Boolean data (vs. double)' setting | Модель сконфигурирована для реализации логических сигналов с double тип данных, а не с более эффективной памятью boolean тип данных. | В диалоговом окне Параметров конфигурации выберите Implement logic signals as Boolean data (vs. double). |
Проверяйте идентификатор: mathworks.slci.SolverSettings
Проверьте настройки решателя в строения модели, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка проверяет, что настройки решателя совместимы с инспекцией кода.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Verify 'Type' setting | Модель сконфигурирована с помощью решателя с переменным шагом. | В диалоговом окне Параметров конфигурации на панели Solver установите Type Fixed-step . |
Verify 'Solver' setting | Модель сконфигурирована с решателем, отличным от дискретного решателя с фиксированным шагом. | В диалоговом окне Параметров конфигурации на панели Solver установите Solver discrete (no continuous states) (эквивалентно FixedStepDiscrete указывается в командной строке). |
Verify ‘Periodic sample time constraint’ setting | Модель устанавливает Periodic sample time constraint на Specified . | В диалоговом окне Параметров конфигурации на панели Solver установите Periodic sample time constraint Unconstrained или Ensure sample time independent . |
Verify ‘Automatically handle rate transition for data transfer’ setting | Модель сконфигурирована, чтобы вставлять скрытые блоки Rate Transition между блоками, когда обнаруживаются переходы скорости. | В диалоговом окне Параметры конфигурации на панели Solver снимите флажок Automatically handle rate transition for data transfer. |
Verify ‘Allow tasks to execute concurrently on target’ setting | Модель параметра конфигурации <reservedrangesplaceholder1> (ConcurrentTasks ) выбран. | В диалоговом окне Параметры конфигурации на панели Solver снимите флажок Allow tasks to execute concurrently on target. |
Проверяйте идентификатор: mathworks.slci.UnconnectedObjects
Проверьте наличие несвязанных портов и линий в модели.
Эта проверка сообщает о несвязанных линиях, входных портах и выходных портах в модели или подсистеме.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Check for unconnected objects | Одна или несколько линий, входных портов или выходных портов неправильно соединены в модели или подсистеме. Это может привести к мертвому коду или скрытым блокам земли. | Подключите или удалите затронутые блоки. |
Проверяйте идентификатор: mathworks.slci.SystemTargetFileSettings
Проверьте наличие несвязанных портов и линий в модели.
Проверьте, выбран ли для модели совместимый системный целевой файл.
Эта проверка проверяет, что System target file, выбранная для модели ert.tlc
или определяется из ert.tlc
.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Verify system target file setting | Системный целевой файл, выбранный для модели, не ert.tlc или ERT-производную цель. | В диалоговом окне Configuration Parameters на панели Code Generation установите значение System target file (Simulink Coder) ert.tlc или ERT-производную цель. |
Проверяйте идентификатор: mathworks.slci.FcnSpecSettings
Проверьте параметры спецификации функции, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка проверяет, совместимы эта функция настройки управления прототипом с инспекцией кода.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Check C Step Function Interface setting | Модель задает пользовательские прототипы функций входа модели. Это не поддерживается для инспекции кода. | В перспективе кода Simulink Editor, в редакторе Code Mappings, выберите вкладку Functions. В строке для функции step щелкните мышью на функции в столбце Function Preview. В диалоговом окне Configure C Step Function Interface очистите настройку Configure arguments for Step function prototype. |
Проверяйте идентификатор: mathworks.slci.StateflowMachineData
Проверьте модель на наличие данных Stateflow для возможностей машины. Данные возможности машины несовместимы с Simulink Code Inspector
Эта проверка проверяет, что модель не содержит данных Stateflow возможностей машины.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
All Stateflow data must be parented by a Stateflow chart | Модель содержит данные Stateflow возможностей машины. | Измените модель так, чтобы она не содержала данных Stateflow возможностей машины. |
Спецификация данных (Stateflow)
Проверяйте идентификатор: mathworks.slci.StateflowMachineEvents
Проверьте модель на события Stateflow возможностей машины. События возможностей машины несовместимы с Simulink Code Inspector
Эта проверка проверяет, что модель не содержит событий Stateflow возможностей машины.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
All Stateflow events must be parented by a Stateflow chart | Модель содержит события Stateflow возможностей машины. | Измените модель так, чтобы она не содержала событий Stateflow возможностей машины. |
События (Stateflow)
Проверяйте идентификатор: mathworks.slci.ConditionallyExecuteInputs
Проверьте использование условного выполнения входной ветви, которое может повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает о несовместимом использовании условного выполнения ветви входа.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Verify conditional input branch execution setting | Выбран параметр конфигурации <reservedrangesplaceholder0> модели, но не выбраны выходы Enable local block (Simulink Coder). Модель должна включать выходы локальных блоков при использовании условного выполнения входной ветви. | В диалоговом окне Параметров конфигурации на панели Optimization выберите Включить локальный блок выходов (Simulink Coder). |
Проверьте, что выходы блоков Переиспользуемой или Непереиспользуемой подсистемы не являются входами для Multiport Switch блоков, когда выбран параметр конфигурации модели выполнения условной входной ветви | Модель использует выходы блоков Переиспользуемой или Непереиспользуемой подсистемы в качестве входов для блока Multiport Switch, когда выбран параметр конфигурации модели Выполнение условной входной ветви. | Измените модель так, чтобы выходы блоков Переиспользуемой или Непереиспользуемой подсистемы не были входами к блоку Multiport Switch. |
Проверяйте идентификатор: mathworks.slci.InstrumentedSignals
Проверьте наличие в модели приборных сигналов, которые соединяются с автоматически вставляемыми блоками.
Эта проверка проверяет, что модель не содержит сигналов, которые измеряются, и соединяется с автоматически вставляемыми блоками. Автоматически вставляемые блоки называются скрытыми блоками.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Check for instrumented signals in the model that connect to automatically inserted blocks | Модель содержит приборные сигналы, которые соединяются с автоматически вставляемыми блоками. | Измените модель, удалив приборные сигналы, которые соединяются с автоматически вставляемыми блоками. |
Проверяйте идентификатор: mathworks.slci.CodeGenFolderStructure
Проверьте неподдерживаемую структуру папки генерации кода для модели.
Эта проверка проверяет, что в настройках Simulink Code generation folder structure установлено на Model Specific
для модели.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Check the code generation folder structure for the model | Модель имеет неподдерживаемую структуру папки генерации кода. | В Настройки на панели General установите для Code generation folder structure значение Model Specific . |
Проверяйте идентификатор: mathworks.slci.CodeMappingDefaults
Проверьте неподдерживаемые параметры соответствия кода.
Эта проверка проверяет, что Default
Класс памяти используется для каждой категории элемента модели на вкладке Data Defaults редактора Отображения.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Check for unsupported Code Mapping settings | Категории элементов модели используют неподдерживаемый параметр класса памяти на вкладке Data Defaults редактора Отображения. | В редакторе Отображения на вкладке Data Defaults в разделе Code Mappings-C установите класс памяти равным Default для каждой категории элемента модели. |
Проверяйте идентификатор: mathworks.slci.StructureStorageClass
Проверьте аргументы модели с классом памяти.
Эта проверка проверяет, что аргументы модели не имеют класса памяти.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Check model arguments for storage classes | Аргумент модели имеет класс памяти. | Измените модель так, чтобы аргументы модели не имели классов памяти. |
Проверяйте идентификатор: 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 (: ) оператор использует одинарные или char данные. | Измените код MATLAB так, чтобы |
Check that data used in MATLAB function is of a supported data type | Данные, используемые в функции MATLAB, не имеют типа: boolean , int8 , int16 , int32 , uint8 , uint16 , uint32 , single , double , или скалярная шина. | Измените данные как поддерживаемые типы данных. |
Check that diagonal number used in a diag function in MATLAB code is 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 операторы со значениями области значений индексов, которые не являются литеральными целыми числами. | Измените код MATLAB так, чтобы for операторы имеют значения области значений индексов, которые являются литералами const целыми числами. |
Check that for statements in MATLAB code have scalar index values | Код MATLAB содержит for операторы с некалярными значениями индекса. | Измените код MATLAB так, чтобы for операторы имеют скалярные значения индекса. |
Check that data defined in MATLAB function is of a double or single data type | Операнды оператора степени через точку не имеют тип single или double. | Измените данные на поддерживаемый тип данных single или double. |
For MATLAB root function, do not specify coder.inline directive or set coder.inline directive to 'always'. For user defined MATLAB functions, explicitly set coder.inline directive to 'always' or 'never' | Функция MATLAB не использует поддерживаемые coder.inline директива. | Изменение использования Для корневых функций 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 оператор не использует тот же скалярный целый тип для условий switch и case. | Измените код MATLAB так, чтобы switch операторы имеют условия, которые используют тот же скалярный целый тип. |
Check that operators and functions in MATLAB code have supported operand dimensions | colon (: ) функция или операция деления в коде MATLAB использует неподдерживаемые некалярные операнды. | Измените функцию, чтобы использовать скалярные операнды. |
Check for unsupported MATLAB code in MATLAB functions | Функция MATLAB содержит неподдерживаемый код MATLAB. | Измените функцию, чтобы удалить использование неподдерживаемого кода MATLAB. |
Check usage of recursive functions in MATLAB code | Код MATLAB задает рекурсивные функции. | Измените код MATLAB так, чтобы он не задавал рекурсивные функции. |
Check that coder.ceval in MATLAB code does not specify '-global' option | Использование coder.ceval задает -global опция. | Изменение coder.ceval чтобы удалить -global опция. |
Check that coder.ceval in MATLAB code does not specify layout option | Использование coder.ceval задает layout опция. | Изменение coder.ceval чтобы удалить layout опция. |
Check usage of function call outputs in MATLAB code | Подфункции в выходах функции вызова кода MATLAB. | Измените код MATLAB так, чтобы только функция верхнего уровня имела выходы вызова функции. |
Check usage of inner functions in MATLAB code | Код MATLAB задает внутренние функции. | Измените код MATLAB так, чтобы он не задавал внутренние функции. |
Check that coder.target in MATLAB code contains a non-empty target | Использование coder.target содержит пустой целевой объект. | Измените код MATLAB так, чтобы coder.target функция задает непустое целевое устройство. |
Проверяйте идентификатор: mathworks.slci.MATLABCodeAnalyzer
Проверьте функции MATLAB на %#codegen
директива, сообщения КОД MATLAB Analyzer и идентификаторы сообщений обоснования.
Эта проверка сообщает о %#codegen
директивы, сообщения КОД MATLAB Analyzer и идентификатор сообщения обоснования найдены в функциях MATLAB и блоках MATLAB Function.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Check MATLAB code used in MATLAB Function blocks | Проблемы в MATLAB Function блоке. |
|
Check MATLAB functions defined in Stateflow charts | Проблемы с функцией MATLAB, используемой в диаграммах Stateflow. |
|
Check called MATLAB functions | Проблемы в называемых функциях MATLAB. |
|
Проверяйте идентификатор: mathworks.slci.UnsupportedBlocks
Проверьте наличие блоков, которые не поддерживаются Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает блоки, которые не поддерживаются Simulink Code Inspector.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Check for blocks not supported by Simulink Code Inspector | Один или несколько блоков в модели не поддерживаются для инспекции кода. Примечание Поддерживаемые блоки перечислены в Поддерживаемые блоки - По категориям и Поддерживаемые Маски Блоки, а также могут быть просмотрены в | Возможные действия включают:
|
Эту проверку можно запустить на моделях библиотеки.
Эта проверка поддерживается проверкой во время редактирования.
Проверяйте идентификатор: mathworks.slci.WorkspaceVarUsage
Проверьте наличие переменных рабочей области, на которые ссылается модель.
Эта проверка сообщает о переменных рабочей области, которые используют неподдерживаемые классы памяти.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Check storage class for workspace variables referenced by the model | Переменные рабочей области, на которые ссылается модель, не поддерживаются по одной из следующих причин:
Примечание В Simulink или модуле упаковочного инструмента (MPT) классы поставляются с MathWorks® код, инспекция кода поддерживается для следующих классов памяти:
| Измените модель так, чтобы модель не ссылалась на переменные рабочей области или установите для переменной рабочей области значение Type пользовательского класса памяти Unstructured . |
Проверяйте идентификатор: mathworks.slci.SampleTimesUsage
Проверьте выборочные временные характеристики, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает образцы переменного, непрерывного, объединения, экспортированных дискретных или асинхронных шагов расчета.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Check sample times | Модель использует непрерывный, асинхронный, явный дискретный разбиение, управляемый данными, объединение, экспортированные дискретные или переменные шаги расчета. Это не поддерживается для инспекции кода. | Измените модель, чтобы использовать поддерживаемые шаги расчета. |
Check for explicit partitions | Модель содержит явные разделы. | Измените модель так, чтобы она не содержала явных разделов. |
Проверяйте идентификатор: mathworks.slci.HiddenBufferBlock
Проверьте наличие скрытых блоков преобразования сигналов, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает о скрытых блоках преобразования сигналов, которые были автоматически вставлены в сигналы, входящие в порты входа блоков.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Verify no unsupported Signal Conversion blocks are automatically inserted on signals entering block inports | Скрытый блок преобразования сигналов был автоматически вставлен в сигнал, входящий в блок. Блоки преобразования скрытых сигналов не поддерживаются для инспекции кода. | Вручную вставьте блок Signal Conversion на сигнал, входящий в порт блока, и сконфигурируйте блок Signal Conversion, чтобы исключить из сокращения блока. |
Проверяйте идентификатор: mathworks.slci.MinMaxLogging
Проверьте использование инструментирования с фиксированной точкой, которое может повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает о несовместимости инструментирования с фиксированной точкой.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Verify usage of fixed-point instrumentation | Модель параметра конфигурации <reservedrangesplaceholder1> (BlockReduction ) выбирается, и параметр фиксированной точки Fixed-point instrumentation mode (MinMaxOverflowLogging ) задается значение, отличное от Force off . Одновременное использование сокращения блоков и инструментирования с фиксированной точкой не поддерживается для инспекции кода. | Откройте Fixed-Point Tool и отключите инструментирование с фиксированной точкой для модели. |
Проверяйте идентификатор: mathworks.slci.SynthLocalDSM
Проверьте наличие в рабочем пространстве модели сигнальных объектов, на которые ссылаются как на синтезированные локальные хранилища данных блоки Data Store Read или Data Store Write.
Эта проверка обновляет диаграмму модели и проверяет синтезированное использование локального хранилища данных. Если в рабочем пространстве модели есть сигнальные объекты, на которые ссылаются как на синтезированные локальные хранилища данных блоки Data Store Read или Data Store Write, Simulink создает скрытый блок Data Store Memory на корневом уровне модели. Эта модель несовместима с инспекцией кода.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Verify synthesized local data store usage | Объекты сигнала упоминаются как синтезированные локальные хранилища данных блоками Data Store Read или Data Store Write. | Избегайте использования сигнальных объектов, которые указаны как синтезированные локальные хранилища данных блоком Data Store Read или Data Store Write. Как возможная работа вокруг, создайте графические блоки Data Store Memory, чтобы указать хранилища данных. |
Проверяйте идентификатор: mathworks.slci.BlockSortedOrder
Проверяет, чтобы скомпилированный список блоков модели следовал графическому сортированному порядку.
Эта проверка обновляет диаграмму модели и идентифицирует блоки в скомпилированном блочном списке модели, которые не совпадают с графическим порядком сортировки блоков.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Check model for compiled and graphical block sorted order | Блоки в скомпилированном блочном списке не следуют графическому сортированному порядку в модели. | Обратитесь в службу технической поддержки MathWorks, чтобы сообщить об этой проблеме. |
Проверяйте идентификатор: mathworks.slci.RollThreshold
Проверяет, что модель не имеет циклического порога разворачивания, который может привести к частичному разворачиванию циклов в сгенерированном коде.
Эта проверка обновляет диаграмму модели и проверяет, что модель не имеет циклического порога разворачивания, который может привести к частичному разворачиванию циклов в сгенерированном коде.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Verify loop unrolling threshold setting | Модель сконфигурирована с Loop unrolling threshold (Simulink Coder), которая может привести к частичному развертыванию циклов в сгенерированном коде. | В диалоговом окне Параметры конфигурации на панели Optimization установите значение Loop unrolling threshold (Simulink Coder) в Recommended Action разделе окна Model Advisor. |
Проверяйте идентификатор: mathworks.slci.GlobalDSM
Проверяет, что блоки глобальных данных Store Memory используют inlined параметры с нерегулируемыми начальными значениями.
Эта проверка обновляет диаграмму модели и проверяет использование глобальных данных хранилища. Если ваша модель имеет глобальные данные блоков Store с параметрами, которые не inlined или имеют настраиваемые начальные значения, это несовместимо с инспекцией кода.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Verify global data store usage | Параметр конфигурации <reservedrangesplaceholder1> (Simulink Coder) (DefaultParameterBehavior ) не установлено в Inlined . | Установите Default parameter behavior (Simulink Coder) в Inlined . |
Initial value (InitialValue ) не должен быть настраиваемым. | Исправьте настройку Initial value. |
Проверяйте идентификатор: mathworks.slci.GlobalDSMShadow
Проверяет, что блоки глобальных данных Store Memory не затенены блоками Local Data Store Memory.
Эта проверка обновляет диаграмму модели и проверяет тень имен хранилища глобальных данных. Если у вас есть блок глобальных данных Store Memory, который затенен локальным блоком Data Store Memory, он несовместим с инспекцией кода.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Verify global data store’s name shadow | Глобальные данные памяти хранилища затенены локальным блоком памяти хранилища данных. | Удалите блоки памяти глобальных данных хранилища, которые затенены блоками памяти локального хранилища данных. |
Проверяйте идентификатор: mathworks.slci.SeparateOutputAndUpdate
Проверьте использование блоков If и Switch Case, подключенных к подсистемам Action, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и проверяет использование блоков If и Switch Case, подключенных к подсистемам Action.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Check destination Action subsystem of If and Switchcase blocks | Подсистемы действий, подключенные к тем же блокам If или Switch Case, не делают одного из следующих:
| Измените перечисленные подсистемы Action так, чтобы все они объединяли свои выходные данные и обновления кода. Поместите блок Signal Conversion на сигналы, оставляющие входные порты в подсистемах Action. Выберите параметры блоков Exclude this block from ‘Block reduction’ optimization преобразования сигналов, чтобы исключить его из сокращения блоков. |
Проверяйте идентификатор: 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 . |
Проверяйте идентификатор: mathworks.slci.OutportTerminator
Проверьте использование блоков терминаторов строки, подключенных к блокам модели-ссылки, что может повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и проверяет использование блоков терминаторов строки, соединенных с блоками модели-ссылки.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Check for Model Reference block connectivity | Каждый выходной порт модели-ссылки блока соединяется с блоком терминатора строки. | Рассмотрите комментарий к блоку модели-ссылки. |
Проверяйте идентификатор: mathworks.slci.FirstInitICPropagation
Проверьте, распространяется ли какой-либо блок начальное условие во время первой инициализации.
Эта проверка обновляет диаграмму модели и проверяет, что блоки не распространяют начальное условие во время первой инициализации.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Check for unsupported propagation of initial condition values | Блок распространяет начальное условие во время первой временной инициализации. | Измените модель так, чтобы блок не распространял начальное условие во время первой инициализации. |
Проверяйте идентификатор: mathworks.slci.DataTypeReplacementName
Проверьте, использует ли модель Simulink.AliasType
типы для имен замещения.
Инспекция кода поддерживается для моделей, которые используют только Simulink.AliasType
типы для имен замещения.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Identify replacement names that are not of type Simulink.AliasType | В Data Type Replacement таблице модель использует имена замещения, которые не имеют типа Simulink.AliasType . | В диалоговом окне Configuration Parameters на панели Code Generation > Data Type Replacement установите имя замены на Simulink.AliasType тип. |
Проверяйте идентификатор: mathworks.slci.RefModelMultirate
Эта проверка обновляет диаграмму модели и проверяет, что модели, используемые в качестве целей модели-ссылки, не имеют нескольких шагов расчета.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Check for sample times in model used as model reference target | Модель, используемая в качестве цели модели-ссылки, имеет несколько шагов расчета. | Измените модель так, чтобы она имела один шаг расчета. |
Проверяйте идентификатор: mathworks.slci.GetSetVarUsage
Эта проверка обновляет диаграмму модели и идентифицирует переменные рабочей области класса памяти GetSet, которые используют неподдерживаемые спецификации.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Check storage class for workspace variables referenced by the model | Для переменной рабочей области, которая использует
| Изменение GetSet переменные рабочей области класса памяти для использования поддерживаемой спецификации класса памяти. |
Проверяйте идентификатор: mathworks.slci.EnableMultiTasking
Эта проверка обновляет диаграмму модели и проверяет, что параметр Treat each discrete rate as a separate task выбран для модели с несколькими дискретными скоростями.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Verify ‘Treat each discrete rate as a separate task’ setting | Многоскоростная модель сконфигурирована для выполнения с одной задачей. | В диалоговом окне Параметры конфигурации на панели Solver выберите Treat each discrete rate as a separate task. |
Проверяйте идентификатор: mathworks.slci.CommentedBlocks
Эта проверка обновляет диаграмму модели и проверяет, что модель не содержит блоков с комментариями.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Check for commented out blocks in the model | Модель содержит блок, который комментируется. | Измените модель, удалив блоки с комментариями. |
Проверяйте идентификатор: mathworks.slci.VVSubSystemName
Эта проверка обновляет диаграмму модели и проверяет, что неинлинфицированные подсистемы с интерфейсами вызова функции void-void используют уникальные имена функции.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Check function names used by void_void subsystems in the model | Модель содержит void_void подсистемы, которые используют то же имя функции. | Измените void_void подсистемы в модели, чтобы использовать уникальные имена функции. |
Проверяйте идентификатор: mathworks.slci.LookupndBreakpointsDataType
Эта проверка обновляет диаграмму модели и проверяет, что тип данных точек по оси Х и тип входных данных блока Lookup Table n-D совпадают.
Доступно с 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 . |
Проверяйте идентификатор: mathworks.slci.ReuseSubSystemLibrary
Эта проверка обновляет диаграмму модели и проверяет, что переиспользуемые подсистемы с тем же интерфейсом функции из тех же библиотечных блоков.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Check the model for reusable subsystems with the same function interfaces | Существуют переиспользуемые подсистемы с тем же интерфейсом функции, но из разных библиотечных блоков. | Измените модель так, чтобы переиспользуемые подсистемы с тем же интерфейсом функции исходили из тех же библиотечных блоков. |
Проверяйте идентификатор: mathworks.slci.SharedSynthLocalDSM
Эта проверка обновляет диаграмму модели и проверяет, что нет неподдерживаемого использования общих синтезированных памятей локального хранилища данных.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Check for usage of shared synthesized local data stores | В рабочем пространстве модели есть объекты сигнала, на которые ссылаются как на синтезированные локальные хранилища данных по Data Store Read или Data Store Write блокам в этой модели. | Избегайте использования сигнальных объектов в рабочем пространстве модели, которые ссылаются как синтезированные локальные хранилища данных Data Store Read или Data Store Write блоками. Рассмотрите создание графических блоков Data Store Memory для задания этих хранилищ данных. |
Проверяйте идентификатор: mathworks.slci.SourcesBlocksUsage
Проверьте использование блоков Sources, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в блоках Sources.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Проверяйте Inport блоки Примечание Это проверит затененные инпорты, если у вас есть какие-либо в модели.
| Блок не может задать сигналы переменного размера. Параметры блоков Variable-size signal (VarSizeSig ) установлено в Yes . | Установите Variable-size signal значение No . |
Параметры блоков Signal Type (SignalType ) установлено в complex . | Установите Signal Type значение real или auto . | |
Параметры блоков Sampling Mode (SamplingMode ) установлено в Frame based . | Установите Signal Type значение Sample based или auto . | |
Для корневых блоков inport, которые используют объект шины, блокируйте параметр Output as nonvirtual bus (BusOutputAsStruct ) не выбран (установлено на off ). | Для каждого образца выберите Output as nonvirtual bus. | |
Корневой входной порт в модели-ссылке не соединяется с невиртуальным блоком. | Соедините корневые входные порты в ссылочных моделях с по крайней мере одним невиртуальным блоком. | |
Для входных портов в триггируемых подсистемах Latch input by delaying outside signal (LatchByDelayingOutsideSignal ) выбран (установлено в on ). | Очистить Latch input by delaying outside signal. Чтобы сохранить поведение фиксации, реструктуризируйте модель, поместив блок Unit Delay перед блоком входа в родительскую схему. | |
Inport является блоком In Bus Element. | Вместо блока In Bus Element используйте блок Inport с блоком Bus Selector. | |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте Constant блоки | Параметры блоков Constant value (Value ) пуст, нефинитен, использует выбор области значений или переменную индексацию на элементах структур MATLAB, сложен или имеет две или более размерности. | Исправьте настройку Constant value. |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте Ground блоки | Порт блока имеет массивы шин или шин с элементами, которые являются массивами шин. | Исправьте указанный блочный порт так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин. |
Исправьте указанный входной или выходной порт блока. |
Проверяйте идентификатор: mathworks.slci.SignalRoutingBlocksUsage
Проверьте использование блоков Signal Routing, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в блоках Signal Routing.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Проверяйте Bus Creator блоки | Имена сигналов в блоке Bus Creator (Inputs ) не совпадают с именами входных сигналов для блока (InputSignalNames ). | Измените указанный блок Bus Creator, чтобы он соответствовал Inputs и InputSignalNames . |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте Bus Selector блоки | Исправьте указанный входной или выходной порт блока. | |
Проверяйте Bus Assignment блоки | Исправьте указанный входной или выходной порт блока. | |
Проверяйте Data Store Memory блоки | Параметры блоков Initial value (InitialValue ) пуст, нефинитен, использует выбор области значений или переменную индексацию на элементах структур MATLAB, сложен или имеет две или более размерности. | Исправьте настройку Initial value. |
Параметры блоков Signal type (SignalType ) установлено в complex . Комплексные числа не поддерживаются для инспекции кода. Во время редактирования флажки этого условия. | Установите Signal type значение auto или real . | |
Параметры блоков устанавливаются равным warning или none . Во время редактирования флажки этого условия. | Установите параметры блоков Detect Write After Write равной error . | |
Память хранилища данных содержит массивы шин или шин с элементами, которые являются массивами шин. | Исправьте указанный блок памяти хранилища данных. | |
Исправьте указанный блок памяти хранилища данных. | ||
Проверяйте Data Store Read блоки | Блок выполняет прерывистый выбор на массивах datastore. | Измените выделенный фрагмент на поддерживаемую форму. |
Блок использует индексы с скобками, чтобы выполнить выбор на массивах datastore. | Измените выбор массива datastore в блоках Data Store Read, чтобы не использовать индексы с скобками. | |
Порт блока имеет массивы шин или шин с элементами, которые являются массивами шин. | Исправьте указанный блочный порт так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин. | |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте Data Store Write блоки | Блок выполняет прерывистый выбор на массивах datastore. | Измените выделенный фрагмент на поддерживаемую форму. |
Блок использует индексы с скобками, чтобы выполнить выбор на массивах datastore. | Измените выбор массива datastore в блоках Data Store Write, чтобы не использовать индексы с скобками. | |
Порт блока имеет массивы шин или шин с элементами, которые являются массивами шин. | Исправьте указанный блочный порт так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин. | |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте From блоки | Порт блока имеет массивы шин или шин с элементами, которые являются массивами шин. | Исправьте указанный блочный порт так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин. |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте Goto блоки | Порт блока имеет массивы шин или шин с элементами, которые являются массивами шин. | Исправьте указанный блочный порт так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин. |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте Merge блоки | Allow unequal port widths (AllowUnequalInputPortWidths ) выбран. Во время редактирования флажки этого условия. | Очистите параметр Allow unequal port widths. |
Input port offsets установлено на неподдерживаемое значение. Во время редактирования флажки этого условия. | Установите Input port offsets значение [] . | |
Источник для блока должен не быть включенной или подсистемой действий или является блоком с InitialConditions функция. | Измените модель так, чтобы источники блоков слияния были либо включены, либо подсистемы действий, либо блоки без InitialConditions функций. | |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте Switch блоки | Первый и третий порты входа и выхода порт не имеют совпадающего типа данных. | Измените порты данных так, чтобы они имели совпадающий тип данных. Рассмотрите выбор параметров блоков Require all data port inputs to have the same data type. |
Параметры блоков Integer rounding mode (RndMeth ) установлено на неподдерживаемое значение. Во время редактирования флажки этого условия. | Установите Integer rounding mode значение Zero или Floor . | |
Параметры блоков Allow different data input sizes (AllowDiffInputSizes ) выбран. Во время редактирования флажки этого условия. | Очистите параметр Allow different data input sizes. | |
Default parameter behavior (DefaultParameterBehavior ) установлено в Inlined и источник Inport 2 является постоянным. | Измените модель так, чтобы источник входа не был постоянным. | |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте Multiport Switch блоки | Порты входа и выхода данных не имеют совпадающего типа данных. | Измените порты данных так, чтобы они имели совпадающий тип данных. Рассмотрите выбор параметров блоков Require all data port inputs to have the same data type. |
Указаны индексы портов данных, и вход имеет более одного значения. | Измените строение порта данных так, чтобы на вход было задано только одно значение. | |
Сигнал порта данных является несмежным. | Измените сигнал порта данных так, чтобы он был непрерывным. | |
Сигнал порта данных соединяется с блоком, который выбирает или переупорядочивает входные сигналы. | Измените сигнал порта данных так, чтобы он не был подключен к блоку, который выбирает или переупорядочивает входные сигналы. Рассмотрите возможность вставки блока Signal Conversion в несмежный порт данных. | |
Параметры блоков Integer rounding mode (RndMeth ) установлено на неподдерживаемое значение. | Установите Integer rounding mode значение Zero или Floor . | |
Параметры блоков Allow different data input sizes (AllowDiffInputSizes ) выбран. | Очистите параметр Allow different data input sizes. | |
Default parameter behavior (DefaultParameterBehavior ) установлено в Inlined и источник Inport 1 является постоянным. | Измените модель так, чтобы источник Входа 1 не был постоянным. | |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте Mux блоки | Порт блока имеет массивы шин или шин с элементами, которые являются массивами шин. | Исправьте указанный блочный порт так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин. |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте Demux блоки | Порт блока имеет массивы шин или шин с элементами, которые являются массивами шин. | Исправьте указанный блочный порт так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин. |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте Selector блоки | Порт индекса не является поддерживаемым типом данных. | Измените порт индекса так, чтобы он был типа данных int8 , int16 , int32 , uint8 , uint16 , или uint32 . |
Index Option (IndexOptionArray ) установлено в Starting and ending indices (port) | Установите Index Option значение, отличное от Starting and ending indices (port) . | |
Number of input dimensions (NumberOfDimensions ) более 1 и данные порта индекса соединяются с блоком, который выбирает или переупорядочивает вход. | Рассмотрите вставку блока Signal Conversion в порт с индексами или изменение данных порта с индексами на смежные. | |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте Vector Concatenate блоки | Исправьте указанный входной или выходной порт блока. |
Эта проверка поддерживается проверкой во время редактирования. Однако проверка во время редактирования не помечает нарушения всех ограничений этой проверки. В предыдущей таблице явно упоминаются условия нарушения ограничений, при которых флаги проверки во время редактирования.
Проверяйте идентификатор: mathworks.slci.MathOperationsBlocksUsage
Проверьте использование блоков Математические операции, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в блоках Математические операции.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Проверяйте Абсолютные блоки | Входной или выходной порт имеет тип int8 или int16 . | Измените порт, который будет иметь тип данных double , single , uint8 , uint16 , int32 , uint32 , или boolean . |
Входные и выходные порты не имеют совпадающего типа данных. | Измените типы данных портов, чтобы они совпадали. | |
Параметры блоков Integer rounding mode (RndMeth ) установлено на неподдерживаемое значение. Во время редактирования флажки этого условия. | Установите Integer rounding mode значение Zero или Floor . | |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте Bias блоки | Входные и выходные порты не имеют совпадающего типа данных. | Измените типы данных портов, чтобы они совпадали. |
Bias (Bias ) является пустым, нефинитным, использует выбор области значений или переменную индексацию на элементах структур MATLAB, является комплексным или имеет две или более размерности. | Исправьте настройку Bias. | |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте Gain блоки | Входные и выходные порты не имеют совпадающего типа данных. | Измените типы данных портов, чтобы они совпадали. |
Параметры блоков Gain (Gain ) пуст, нефинитен, использует выбор области значений или переменную индексацию на элементах структур MATLAB, сложен или имеет две или более размерности. | Исправьте настройку Gain. | |
Параметры блоков Parameter data type (ParamDataTypeStr ) не использует тот совпадающий тип данных, что и вход блока Gain. | Измените блок Gain, чтобы использовать тот совпадающий тип данных для его входа и параметра. Рассмотрите установку Parameter data type на Inherit: Same as input . | |
Параметры блоков Multiplication (Multiplication ) не установлено в Element-wise(K.*u) , Matrix(K*u) , Matrix(u*K) , или Matrix(K*u)(u vector) . | Установите Multiplication значение Только | |
Параметры блоков Integer rounding mode (RndMeth ) установлено на неподдерживаемое значение. Во время редактирования флажки этого условия. | Установите Integer rounding mode значение Zero или Floor . | |
Параметры блоков Sample Time (SampleTime ) устанавливается в постоянный шаг расчета. | Установите Sample Time явное, непостоянное значение. | |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте Математические блоки | Входные и выходные порты не имеют совпадающего типа данных. | Измените типы данных портов, чтобы они совпадали. |
Function (Operator ) установлено неподдерживаемое значение: conj или hermitian . | Установите Function одно из следующих значений: exp , log , 10^u , log10 , magnitude^2 , square , transpose 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 значение
| |
Параметры блоков устанавливаются равным Element-wise(.*) когда входной Signal type является вектором или матрицей, и Number of inputs (inputs ) установлено в 1 , * или / . | Если параметрам блоков Multiplication задано значение Element-wise(.*) и входной Signal type является вектором или матрицей, не устанавливайте Number of inputs на 1 , * или / . | |
Параметры блоков устанавливаются равным Element-wise(.*) когда входной Signal type является скаляром, и Number of inputs (inputs ) не установлено в 1 , * или / . | Если параметрам блоков Multiplication задано значение Element-wise(.*) и входной Signal type является скаляром, затем установите Number of inputs на 1 , * или / . | |
Параметры блоков Integer rounding mode (RndMeth ) установлено на неподдерживаемое значение. Во время редактирования флажки этого условия. | Установите Integer rounding mode значение Zero или Floor . | |
Параметры блоков Sample Time (SampleTime ) устанавливается в постоянный шаг расчета. | Установите Sample Time явное, непостоянное значение. | |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте блоки суммы | Входные и выходные порты не имеют совпадающего типа данных. | Измените типы данных портов, чтобы они совпадали. |
Параметры блоков Sum over (CollapseMode ) не установлено в All dimensions . | Установите Sum over значение All dimensions . | |
Параметры блоков Accumulator data type (AccumDataTypeStr ) не использует тот совпадающий тип данных, что и входы блоков | Измените блок, чтобы использовать тот совпадающий тип данных для его входов и аккумулятора. Рассмотрите установку Accumulator data type на Inherit: Same as first input . | |
Параметры блоков Integer rounding mode (RndMeth ) установлено на неподдерживаемое значение. Во время редактирования флажки этого условия. | Установите Integer rounding mode значение Zero или Floor . | |
Параметры блоков Sample Time (SampleTime ) устанавливается в постоянный шаг расчета. | Установите Sample Time явное, непостоянное значение. | |
Блок имеет один векторный вход и Saturate on integer overflow параметра (SaturateOnIntegerOverflow ) выбран (установлено в on ). | Очистите параметр Saturate on integer overflow. | |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте блоки тригонометрии | Параметры блоков Function (Operator ) установлено в cos + jsin (комплексная экпонента входа). Во время редактирования флажки этого условия. | Установите Function значение, отличное от cos + jsin . |
Параметры блоков Approximation method (ApproximationMethod ) не установлено в None . Во время редактирования флажки этого условия. | Установите Approximation method значение None . | |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте MinMax блоки | Неподдерживаемый тип данных задан для входа или выхода порта. | Измените тип данных порта следующим образом: double , single , int8 , uint8 , int16 , uint16 , int32 , или uint32 . |
Входные и выходные порты не имеют совпадающего типа данных. | Измените типы данных портов, чтобы они совпадали. | |
Блок имеет один вход, и стандартная математическая библиотека не C89/C90 (ANSI) . | В диалоговом окне Configuration Parameters на панели Code Generation > Interface задайте Standard math library C89/C90 (ANSI) . | |
Параметры блоков Integer rounding mode (RndMeth ) установлено на неподдерживаемое значение. Во время редактирования флажки этого условия. | Установите Integer rounding mode значение Zero или Floor . | |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте Rounding Function блоки | Исправьте указанный входной или выходной порт блока. | |
Проверяйте Reshape блоки | Исправьте указанный входной или выходной порт блока. | |
Проверяйте Sign блоки | Исправьте указанный входной или выходной порт блока. | |
Проверяйте Sqrt блоки | Входы и выходные порты блоков не имеют совпадающего типа данных. | Исправьте указанный входной или выходной порт блока. |
Параметры блоков Function (Operator ) не установлено в sqrt или signedSqrt . Во время редактирования флажки этого условия. | Установите параметры блоков Function в sqrt или signedSqrt . | |
Параметры блоков Output signal type (OutputSignalType ) установлено в complex . Во время редактирования флажки этого условия. | Установите параметры блоков Output signal type (OutputSignalType ) к auto или real . | |
Блок входа и параметров блоков Intermediate results (IntermediateResultsDataTypeStr ) не имеют того совпадающего типа данных. | Установите параметры блоков Intermediate results (
| |
Типы данных блочных входов и outport не 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 не single или double . | Измените перечисленные типы данных входного порта. | |
Входные и выходные порты не имеют совпадающего типа данных. | Измените типы данных портов, чтобы они совпадали. | |
Параметры блоков Integer rounding mode (RndMeth ) установлено на неподдерживаемое значение. | Установите Integer rounding mode значение Zero или Floor . | |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте Unary Minus блоки | Типы данных Input port не double , single , int8 , int16 , или int32 . | Измените перечисленные типы данных входного порта. |
Исправьте указанный входной или выходной порт блока. |
Эта проверка поддерживается проверкой во время редактирования. Однако проверка во время редактирования не помечает нарушения всех ограничений этой проверки. В предыдущей таблице явно упоминаются условия нарушения ограничений, при которых флаги проверки во время редактирования.
Проверяйте идентификатор: mathworks.slci.SignalAttributesBlocksUsage
Проверьте использование блоков Signal Attributes, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в блоках Signal Attributes.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Проверяйте Data Type Conversion блоки | Параметры блоков Input and output to have equal (ConvertRealWorld ) не установлено в Real World Value (RWV) . Во время редактирования флажки этого условия. | Установите Input and output to have equal значение Real World Value (RWV) . |
Параметры блоков Integer rounding mode (RndMeth ) установлено на неподдерживаемое значение. Во время редактирования флажки этого условия. | Установите Integer rounding mode значение Zero или Floor . | |
Параметры блоков Sample Time (SampleTime ) устанавливается в постоянный шаг расчета. | Установите Sample Time явное, непостоянное значение. | |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте Data Type Duplicate блоки | Исправьте указанный входной или выходной порт блока. | |
Проверяйте Data Type Propagation блоки | Исправьте указанный входной или выходной порт блока. | |
Проверяйте Signal Specification блоки | Variable-size signal (VarSizeSig ) не установлено в No . Во время редактирования флажки этого условия. | Установите Variable-size signal значение No . |
Signal type (SignalType ) установлено в complex . Во время редактирования флажки этого условия. | Установите Signal type любой тип, кроме complex . | |
Sampling mode (SamplingMode ) установлено в Frame based . Во время редактирования флажки этого условия. | Установите Sampling mode в любой режим, кроме Frame based . | |
Порт блока имеет массивы шин или шин с элементами, которые являются массивами шин. | Исправьте указанный блочный порт так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин. | |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте Signal Conversion блоки | Параметры блоков Output (ConversionOutput ) не установлено в Signal copy . Во время редактирования флажки этого условия. | Установите Output значение Signal copy . |
Параметры блоков Exclude this block from 'Block reduction' optimization (OverrideOpt ) не выбран (установлено на on ). | Выберите Exclude this block from 'Block reduction' optimization. | |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте Rate Transition блоки | Параметры блоков Ensure data integrity during data transfer (Integrity ) не выбран. Во время редактирования флажки этого условия. | Выберите Ensure data integrity during data transfer. |
Параметры блоков Ensure deterministic data transfer (maximum delay) (Deterministic ) не выбран. Во время редактирования флажки этого условия. | Выберите Ensure deterministic data transfer (maximum delay). | |
Параметры блоков Initial conditions (InitialCondition ) не является нулем, ненулевым скаляром или не использует ту же структуру данных, что и тип выходных данных. | Измените параметры блоков, чтобы оно было нулем, ненулевым скаляром или чтобы использовать ту же структуру данных, что и выхода тип данных. | |
Параметры блоков Initial conditions (InitialCondition ) является пустым, нефинитным, комплексным, использует выбор области значений или переменную индексацию на элементах структур MATLAB или имеет две или более размерности. | Измените параметры блоков так, чтобы он не был пустым, не был нефинитным, не был комплексным, не использовал выбор области значений или индексацию переменных для элементов структур MATLAB и не имел двух или более размерностей. | |
Порт блока имеет массивы шин или шин с элементами, которые являются массивами шин. | Исправьте указанный блочный порт так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин. | |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте Probe блоки | Параметры блоков Data type for sample time (ProbeSampleTimeDataType ) не установлено в single или double . | Установите параметры блоков Data type for sample time в single или double . |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте Width блоки | Порт блока имеет массивы шин или шин с элементами, которые являются массивами шин. | Исправьте указанный блочный порт так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин. |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте Unit Conversion блоки | Тип данных Input port не double или single . | Измените тип данных входного порта. |
Входные и выходные порты не имеют совпадающего типа данных. | Измените типы данных портов, чтобы они совпадали. | |
Блок не использует поддерживаемые модули inport или outport. | Измените блок, чтобы использовать поддерживаемые модули inport и outport. Включены преобразования между следующими:
| |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте IC блоки | Параметры блоков Initial value (Value ) является пустым, нефинитным, комплексным, использует выбор области значений или переменную индексацию на элементах структур MATLAB или имеет две или более размерности. | Измените параметры блоков так, чтобы он не был пустым, не был нефинитным, не был комплексным, не использовал выбор области значений или индексацию переменных для элементов структур MATLAB и не имел двух или более размерностей. |
Исправьте указанный входной или выходной порт блока. |
Эта проверка поддерживается проверкой во время редактирования. Однако проверка во время редактирования не помечает нарушения всех ограничений этой проверки. В предыдущей таблице явно упоминаются условия нарушения ограничений, при которых флаги проверки во время редактирования.
Проверяйте идентификатор: mathworks.slci.LogicalandBitOperationsBlocksUsage
Проверьте использование блоков логических и битовых операций, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в блоках Logical и Bit Operations.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Проверяйте Relational Operator блоки | Тип данных выходного порта блока не является ни перечисляемым типом со значением по умолчанию 0, ни boolean . | Измените тип данных вывода так, чтобы он был либо перечисленным типом со значением по умолчанию 0, либо boolean . |
Входные порты блоков не имеют совпадающего типа данных. | Измените порты входа, чтобы иметь совпадающий тип данных. | |
Параметры блоков Relational operator (Operator ) установлено неподдерживаемое значение: isInf , isNaN , или isFinite . Во время редактирования флажки этого условия. | Установите Relational operator поддерживаемое значение: <= , == , >= , ~= , < , или > . | |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте Logical Operator блоки | Выходной порт блока логического оператора не boolean или uint8 . | Измените тип данных выходного порта, чтобы boolean или uint8 . |
Входные порты блоков не имеют совпадающего типа данных. | Сконфигурируйте входные порты так, чтобы они имели совпадающий тип данных. | |
Значение Casting modes параметра модели не установлено на Nominal для XOR операторы с boolean операнды. | Установите Casting modes параметра модели в Nominal . | |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте Bitwise Operator блоки | С Number of input ports (NumInputPorts) установлено на 1 и Operator (logicop) установлено на AND , OR , NAND , NOR , или XOR , тип входных данных не является скаляром. | Сконфигурируйте тип входных данных как скаляр. |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте ArithShift блоки | Diagnostic for out of range shift value (DiagnosticForOORShift ) не установлено в Error . Во время редактирования флажки этого условия. | Установите Diagnostic for out of range shift value значение Error . |
Binary points to shift (BinPtShiftNumber ) не установлено в 0 . Во время редактирования флажки этого условия. | Установите Bits points to shift значение 0 . | |
Bits to shift: Number (BitShiftNumber ) не находится в допустимой области значений типа входных данных. | Введите Bits to shift: Number, которая находится в допустимой области значений типа входных данных. | |
Параметры блоков Check for out-of-range 'Bits to shift' in generated code (CheckOORBitShift ) выбран (включен). Во время редактирования флажки этого условия. | Снимите флажок Check for out-of-range 'Bits to shift' in generated code параметра. | |
Следующие параметры конфигурации устанавливаются следующим образом:
когда источник Inport 2 является постоянным. | Измените модель так, чтобы источник входа не был постоянным. | |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте Combinatorial Logic блоки | Исправьте указанный входной или выходной порт блока. |
Эта проверка поддерживается проверкой во время редактирования. Однако проверка во время редактирования не помечает нарушения всех ограничений этой проверки. В предыдущей таблице явно упоминаются условия нарушения ограничений, при которых флаги проверки во время редактирования.
Проверяйте идентификатор: mathworks.slci.LookupTablesBlocksUsage
Проверьте использование блоков интерполяционной таблицы, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в блоках Интерполяционной таблицы.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Проверяйте Lookup Table блоки | Входные и выходные порты не имеют совпадающего типа данных. | Измените вход и выходные порты, чтобы иметь совпадающий тип данных. |
Параметры блоков Breakpoints specification (BreakpointsSpecification ) не установлено в Explicit values . Во время редактирования флажки этого условия. | Установите Breakpoints specification значение Explicit values . | |
Параметры блоков Interpolation method (InterpMethod ) не установлено в Linear point-slope . | Установите Interpolation method значение Linear point-slope . | |
Параметры блоков Extrapolation method (ExtrapMethod ) не установлено в Clip или Linear . Во время редактирования флажки этого условия. | Установите Extrapolation method значение Clip или Linear . | |
Параметры блоков Index search method (IndexSearchMethod ) не установлено в Binary search или Linear search . Во время редактирования флажки этого условия. | Установите Index search method значение Binary search или Linear search . | |
Параметры блоков Support tunable table size in code generation (SupportTunableTableSize ) выбран (установлено в on ). Во время редактирования флажки этого условия. | Очистите параметр Support tunable table size in code generation. | |
Параметры блоков Table data (Table ) пуст, нефинитен, использует выбор области значений или переменную индексацию на элементах структур MATLAB, сложен или имеет две или более размерности. | Исправьте настройку Table data. | |
Параметры блоков Source (TableSource ) используется для задания источника данных таблицы в Input port . Во время редактирования флажки этого условия. | Установите Source равным Dialog . | |
Для Breakpoints specification (BreakpointsSpecification ) установить на Explicit values , Breakpoints параметров блоков пуста, является нефинитным, использует выбор области значений или переменную индексацию на элементах структур MATLAB, является комплексным или имеет две или более размерности. | Исправьте настройку Breakpoints 1. | |
Breakpoints > Data Type не использует тот совпадающий тип данных, что и вход блока. | Измените типы данных, которые будут совпадать. Или рассмотрите установку Breakpoints > Data Type на Inherit: Same as corresponding input | |
Блок использует различные типы данных для выхода данных и данных таблицы. | Измените модель так, чтобы блок использовал совпадающий тип данных для своих выходных и табличных данных. В диалоговом окне блока типа данных рассмотрите установку типа данных таблицы на Inherit: Same as output . Если данные таблицы получены из объекта интерполяционной таблицы, используйте один и тот совпадающий тип данных как для данных таблицы, так и для выходных данных. Если выбрано свойство Support tunable size объекта интерполяционной таблицы, то использование различных типов данных для данных таблицы и выходных данных поддерживается, но ограничено двойными и одинарными. | |
Параметры блоков Intermediate Results (IntermediateResultsDataTypeStr ) не использует тот совпадающий тип данных, что выход. | Измените типы данных, которые будут совпадать. | |
Блок или блок выходного порта является постоянным. | Установите шаг расчета порта блока или выхода блока в явный непостоянный шаг расчета. | |
Параметры блоков Use one input port for all input data (UseOneInputPortForAllInputData ) выбран. | Очистить Use one input port for all input data. | |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте Prelookup блоки | Параметры блоков Index search method (IndexSearchMethod ) не установлено в Binary search или Linear search . Во время редактирования флажки этого условия. | Установите Index search method значение Binary search или Linear search . |
Параметры блоков Breakpoints specification (BreakpointsSpecification ) не установлено в Explicit values . Во время редактирования флажки этого условия. | Установите Breakpoints specification значение Explicit values . | |
Параметры блоков не установлены на Index and fraction . Во время редактирования флажки этого условия. | Установите Output selection значение Index and fraction . | |
Параметры блоков не установлены на Inherit: Same as input , single , или double . | Установите Breakpoint > Data Type значение Inherit: Same as input , single , или double . | |
Параметры блоков Index > Data Type (IndexDataTypeStr ) не установлено в uint32 . | Установите Index > Data Type значение uint32 . | |
Параметры блоков Fraction > Data Type (FractionDataTypeStr ) не установлено в single или double . | Установите Fraction > Data Type значение single или double . | |
Параметры блоков Integer rounding mode (RndMeth ) установлено на неподдерживаемое значение. Во время редактирования флажки этого условия. | Установите Integer rounding mode значение Floor . | |
Параметры блоков Use last breakpoint for input at or above upper limit (UseLastBreakpoint ) выбран. Во время редактирования флажки этого условия. | Очистите параметр Use last breakpoint for input at or above upper limit. | |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте Interpolation Using Prelookup блоки | Intermediate results > Data Type (IntermediateResultsDataTypeStr ) не установлено в Inherit:Inherit via internal rule , Inherit: Same as output , double , или single . Во время редактирования флажки этого условия. | Установите Intermediate results > Data Type значение Inherit:Inherit via internal rule , Inherit: Same as output , double , или single . |
Output > Data Type (OutDataTypeStr ) не установлено в Inherit:Inherit via back propagation , Inherit: Inherit from ‘Table data’ , double , или single . Во время редактирования флажки этого условия. | Установите Output > Data Type значение Inherit:Inherit via back propagation , Inherit: Inherit from ‘Table data’ , double , или single . | |
Table data > Data Type (TableDataTypeStr ) не установлено в Inherit: Inherit from ‘Table data’ , Inherit: Same as output , double , или single . Во время редактирования флажки этого условия. | Установите Table data > Data Type значение Inherit: Inherit from ‘Table data’ , Inherit: Same as output , double , или single . | |
Internal Rule Priority (InternalRulePriority ) не установлено в Precision . Во время редактирования флажки этого условия. | Установите Internal Rule Priority значение Precision . | |
Number of sub-table selection dimensions или значение индекса (k ) из Prelookup блока не относится к типу данных uint32 . | Установите Number of sub-table selection dimensions и значение индекса для типа данных uint32 . | |
Intermediate results > Data Type (IntermediateResultsDataTypeStr ), Table data > Data Type (TableDataTypeStr ), Output > Data Type (OutDataTypeStr ) и значение дроби (f ) из Prelookup блока не являются совпадающие типы данных: double или single . | Установите Intermediate results > Data Type, Table data > Data Type, Output > Data Type и значение дроби таким совпадающим типом данных: double или single . | |
Integer rounding mode (RndMeth ) не установлено в Floor . Во время редактирования флажки этого условия. | Установите Integer rounding mode значение Floor . | |
Saturate on integer overflow (SaturateOnIntegerOverflow ) выбран (установлено в on ). Во время редактирования флажки этого условия. | Очистить Saturate on integer overflow. | |
Блок является постоянным или соединяет все входные порты выбора подтаблицы с постоянными блоками. | Измените блоки так, чтобы они не были постоянными и не соединяли все входные порты выбора подтаблицы с постоянными блоками. | |
Блоки или их выходные порты имеют постоянный шаг расчета. | Установите шаги расчета блоков или блокируйте выходные порты в явные непостоянные шаги расчета. | |
Параметры блоков Interpolation method (InterpMethod ) не установлено в Linear point-slope . Во время редактирования флажки этого условия. | Установите Interpolation method значение Linear point-slope . | |
Параметры блоков Require index and fraction as bus (RequireIndexFractionAsBus ) выбран (установлено в on ). Во время редактирования флажки этого условия. | Очистить Require index and fraction as bus. | |
Параметры блоков Valid index input may reach last index (ValidIndexMayReachLast ) выбран (установлено в on ). Во время редактирования флажки этого условия. | Очистить Valid index input may reach last index. | |
Параметры блоков Specification (TableSpecification ) не установлено в Explicit values . Во время редактирования флажки этого условия. | Установите Specification значение Explicit values . | |
Нарушение ограничения, которое применяется ко всем блокам.
| Исправьте указанный входной или выходной порт блока. |
Эта проверка поддерживается проверкой во время редактирования. Однако проверка во время редактирования не помечает нарушения всех ограничений этой проверки. В предыдущей таблице явно упоминаются условия нарушения ограничений, при которых флаги проверки во время редактирования.
Проверяйте идентификатор: mathworks.slci.UserDefinedFunctionBlocksUsage
Проверьте использование пользовательских функциональных блоков, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в блоках User-Defined Function.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Check C Caller blocks | Неподдерживаемый тип данных задан для входа или выхода порта. | Измените тип данных порта так, чтобы он был одним из следующих: double , single , int8 , int16 , int32 , uint8 , uint16 , или uint32 |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте S-Function блоки | S-функция не была создана с использованием текущего релиза Legacy Code Tool. | По возможности создайте S-функцию с помощью Legacy Code Tool или исследуйте альтернативы включения кода в модель. |
Блок S-Function не создается с помощью Legacy Code Tool. | Создайте S-функцию для доступа к S-функции с помощью Legacy Code Tool с этой командой: legacy_code('slblock_generate', def) , где def - структура с полями, представляющими свойства Legacy Code Tool. | |
Аргумент S-функции не является ни скаляром, ни вектором фиксированной размерности. | Измените S-функцию так, чтобы аргументы были скалярами или векторами фиксированной размерности. | |
S-функция Legacy Code Tool задает InitializeConditionsFcnSpec , StartFcnSpec , или TerminateFcnSpec , а не OutputFcnSpec . | Измените строение S-функции, чтобы задать OutputFcnSpec . | |
S-функция имеет несколько dwork . | Измените строение S-функции, чтобы задать одну dwork . | |
S-function parameters (Parameters ) является комплексным или не конечным. | Измените модель так, чтобы S-function parameters не была комплексной или не конечной. | |
Интегрированная модель блока SIL S-функции использует глобальную переменную для корневого входного или выходного порта. | Измените модель так, чтобы она не использовала глобальные переменные для корневых входных или выходных портов. | |
Исправьте указанный входной или выходной порт блока. |
Проверяйте идентификатор: mathworks.slci.PortsandSubsystemsBlocksUsage
Проверьте использование блоков Ports и Subsystems, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в блоках Ports и Subsystems.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Проверяйте Enable блоки | Сигнал, поступающий в порт включения, не относится к типу данных boolean . | Исправьте тип данных сигнала. |
Блок Enable Port расположен на корневом уровне модели. | Удалите или переместите блок Enable Port. | |
Default parameter behavior (DefaultParameterBehavior ) установлено в Inlined и сигнал, входящий в порт Enable родительской подсистемы, является постоянным. | Измените модель так, чтобы сигнал, входящий в Enable Port родительской подсистемы, не был постоянным. | |
Порт блока имеет массивы шин или шин с элементами, которые являются массивами шин. | Исправьте указанный блочный порт так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин. | |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте Model Reference блоки | Значение, заданное в Arguments > Model arguments (ParameterArgumentValues ) является комплексным или нефинитным. | Измените модель так, чтобы значения, заданные в Model arguments, не были комплексными или нефинитными. |
Блок находится в защищенном режиме. | Снимите защиту с модели-ссылки. Для получения дополнительной информации см. «Защита моделей для сокрытия содержимого» (Simulink Coder). | |
Блок или блок выходного порта является постоянным. | Установите шаг расчета порта блока или выхода блока в явный непостоянный шаг расчета. | |
Блок имеет несколько шагов расчета. | Измените цель модели-ссылки так, чтобы блок Модели-ссылки имел один шаг расчета. | |
Block входа port не является одним из следующих поддерживаемых типов данных:
| Исправьте тип данных входного порта. | |
Для входа портов в триггерной модели-ссылке блоке Latch input by delaying outside signal (LatchByDelayingOutsideSignal ) выбран (установлено в on ). | Очистить Latch input by delaying outside signal. Чтобы сохранить поведение фиксации, реструктурируйте модель, поместив блок Unit Delay перед блоком входа, вне блока модели-ссылки. | |
Для входа портов блока модели-ссылки, Latch input for feedback signals of function-call subsystem outputs (LatchInputForFeedbackSignals ) выбран (установлено в on ). | Очистить Latch input for feedback signals of function-call subsystem outputs. Чтобы сохранить поведение фиксации, реструктурируйте модель, поместив блок Unit Delay перед блоком входа, вне блока модели-ссылки. | |
Блоки Model используют параметры образца ссылочных моделей в качестве аргументов. | Измените модель так, чтобы блоки Model не использовали параметры образцов ссылочных моделей в качестве аргументов. | |
A Simulink.LookupTable объект передается в блок модели-ссылки. | Измените модель так, чтобы она не содержала Simulink.LookupTable объект, который передается в блок модели-ссылки. | |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте Subsystem блоки | Варианты подсистемы не имеют одинакового количества портов. | По возможности перенастройте модель так, чтобы подсистемы вариантов имели одинаковое количество портов. |
Подсистема не является одной из следующих:
| По возможности перенастройте подсистему как виртуальную (очистите Блок Subsystem параметра Treat as atomic unit), так и встроенную атомарную, включенную, function-call, если действие или триггируемая подсистема. Также можно перенести подсистему в блок Model или исследовать другие опции реализации. | |
Подсистема является блоком Simulink Function. | Измените модель, чтобы удалить блоки Simulink Function. | |
Для блоков с вариантами применяется одно из следующих условий:
| Очистить 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. | |
A 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 не использовали параметры образцов ссылочных моделей в качестве аргументов. | |
Исправьте перечисленный блок inport или outport | ||
Проверяйте Action Port блоки | Исправьте указанный входной или выходной порт блока. | |
Проверяйте If блоки | Default parameter behavior (DefaultParameterBehavior ) установлено в Inlined и источник Inport 1 является постоянным. | Измените модель так, чтобы источник Входа 1 не был постоянным. |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте Function-Call Generator блоки | Блок имеет несколько адресатов. | Измените модель так, чтобы блок имел один пункт назначения. |
The Number of iterations (numberOfIterations ) не установлено в 1 . Во время редактирования флажки этого условия. | Установите Number of iterations равным 1 . | |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте Function-Call Split блоки | Исправьте указанный входной или выходной порт блока. | |
Проверяйте Switch Case блоки | Default parameter behavior (DefaultParameterBehavior ) установлено в Inlined , и источник Inport 1 является постоянным. | Измените модель так, чтобы источник Входа 1 не был постоянным. |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте For Iterator блоки | Параметры блоков Set next i (iteration variable) externally (ExternalIncrement ) выбран (установлено в on ). Во время редактирования флажки этого условия. | Очистить Set next i (iteration variable) externally. |
Iteration limit source (IterationSource ) не установлено в internal . Во время редактирования флажки этого условия. | Установите Iteration limit source значение internal . | |
Iteration variable data type (IterationVariableDataType ) установлено в double . Во время редактирования флажки этого условия. | Установите Iteration variable data type значение int32 , int16 , int8 , uint32 , uint16 , или uint8 . | |
For Iterator подсистема имеет настраиваемый параметр для внутреннего предела итерации. | Установите Default parameter behavior (DefaultParameterBehavior ) к Inlined или измените внутренний предел итерации так, чтобы он не был настраиваемым параметром. | |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте For Each блоки | Input Partition Dimension или Output Concatenation Dimension больше 2. | Установите Input Partition Dimension и Output Concatenation Dimension значения менее 3. |
Параметры маски разделяются. | Сконфигурируйте параметры маски так, чтобы они не были секционированы. | |
NeedActiveIterationSignal установлено в on . Во время редактирования флажки этого условия. | Задайте NeedActiveIterationSignal на off . | |
RequestParallelExec установлено в off . Во время редактирования флажки этого условия. | Задайте RequestParallelExec на on . | |
ShowIterationIndex установлено в on . Во время редактирования флажки этого условия. | Задайте ShowIterationIndex на off . | |
StateReset не установлено в held . Во время редактирования флажки этого условия. | Задайте StateReset на held . | |
StateType не установлено в Separate states for each iteration . Во время редактирования флажки этого условия. | Задайте StateType на Separate states for each iteration . | |
Number of iterations to execute не установлено в -1 (значение по умолчанию). | Установите Number of iterations to execute к значению по умолчанию -1 . | |
Исправьте указанный входной или выходной порт блока. |
Эта проверка поддерживается проверкой во время редактирования. Однако проверка во время редактирования не помечает нарушения всех ограничений этой проверки. В предыдущей таблице явно упоминаются условия нарушения ограничений, при которых флаги проверки во время редактирования.
Проверяйте идентификатор: mathworks.slci.DiscontinuitiesBlocksUsage
Проверьте использование блоков прерывания, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в блоках Disprinuities.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Проверяйте блоки Saturate | Входные и выходные порты не имеют совпадающего типа данных. | Измените типы данных портов, чтобы они совпадали. |
Параметры блоков Upper limit (UpperLimit ) пуст, нефинитен, использует выбор области значений или переменную индексацию на элементах структур MATLAB, сложен или имеет две или более размерности. | Исправьте настройку Upper limit. | |
Параметры блоков Lower limit (LowerLimit ) пуст, нефинитен, использует выбор области значений или переменную индексацию на элементах структур MATLAB, сложен или имеет две или более размерности. | Исправьте настройку Lower limit. | |
Параметры блоков Integer rounding mode (RndMeth ) установлено на неподдерживаемое значение. Во время редактирования флажки этого условия. | Установите Integer rounding mode значение Zero или Floor . | |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте блоки реле | Параметры блоков Switch on point (OnSwitchValue ) пуст, нефинитен, использует выбор области значений или переменную индексацию на элементах структур MATLAB, сложен или имеет две или более размерности. | Исправьте настройку Switch on point. |
Параметры блоков Switch off point (OffSwitchValue ) пуст, нефинитен, использует выбор области значений или переменную индексацию на элементах структур MATLAB, сложен или имеет две или более размерности. | Исправьте настройку Switch off point. | |
Параметры блоков Output when on (OnOutputValue ) пуст, нефинитен, использует выбор области значений или переменную индексацию на элементах структур MATLAB, сложен или имеет две или более размерности. | Исправьте настройку Output when on. | |
Параметры блоков Output when off (OffOutputValue ) пуст, нефинитен, использует выбор области значений или переменную индексацию на элементах структур MATLAB, сложен или имеет две или более размерности. | Исправьте настройку Output when off. | |
Проверяйте Dead Zone блоки | Параметры блоков Saturate on integer overflow (SaturateOnIntegerOverflow ) выбран (установлено в on ). Во время редактирования флажки этого условия. | Исправьте настройку Saturate on integer overflow. |
Эта проверка поддерживается проверкой во время редактирования. Однако проверка во время редактирования не помечает нарушения всех ограничений этой проверки. В предыдущей таблице явно упоминаются условия нарушения ограничений, при которых флаги проверки во время редактирования.
Проверяйте идентификатор: mathworks.slci.SinksBlocksUsage
Проверьте использование блоков Sinks, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в блоках Sinks.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Проверяйте Outport блоки | Блок не может задать сигналы переменного размера. Параметры блоков Variable-size signal (VarSizeSig ) установлено в Yes . | Установите Variable-size signal значение No . |
Signal type (SignalType ) установлено в complex . | Установите Signal type значение real или auto . | |
Sampling mode (SamplingMode ) установлено в Frame based . | Установите Sampling mode значение Sample based или auto . | |
Исходящий Initial output корневого уровня (InitialOutput ) не [] . | Установите значение Initial output вывода корневого уровня на [] . | |
Source of initial output value (SourceOfInitialOutputValue ) не установлено в Dialog . Во время редактирования флажки этого условия. | Установите Source of initial output value значение Dialog . | |
Initial output (InitialOutput ) комплексная. | Измените модель так, чтобы Initial output не была комплексной. | |
Storage Class (StorageClass ) не Auto или SimulinkGlobal . Во время редактирования флажки этого условия. | В редакторе Отображения задайте Storage Class Auto или SimulinkGlobal . Чтобы открыть Код редактор Отображений, сначала откройте Embedded Coder приложения. Затем на вкладке C Code, под Code Interface выберите Individual Elements Code Mappings. | |
Outport является блоком Out Bus Element. | Вместо блока Out Bus Element используйте блок Outport с блоком Bus Creator. | |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте Terminator блоки | Порт блока имеет массивы шин или шин с элементами, которые являются массивами шин. | Исправьте указанный блочный порт так, чтобы блок не использовал массивы шин или шин с элементами, которые являются массивами шин. |
Исправьте указанный входной или выходной порт блока. |
Эта проверка поддерживается проверкой во время редактирования. Однако проверка во время редактирования не помечает нарушения всех ограничений этой проверки. В предыдущей таблице явно упоминаются условия нарушения ограничений, при которых флаги проверки во время редактирования.
Проверяйте идентификатор: mathworks.slci.DiscreteBlocksUsage
Проверьте использование дискретных блоков, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в Дискретных блоках.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Проверяйте Unit Delay блоки | Параметры блоков Initial conditions (InitialCondition ) пуст, нефинитен, использует выбор области значений или переменную индексацию на элементах структур MATLAB, сложен или имеет две или более размерности. | Исправьте настройку Initial conditions. |
Параметры блоков Input Processing (InputProcessing ) установлено в Columns as channels (frame based) . Во время редактирования флажки этого условия. | Установите Input Processing значение Elements as channels (sample based) или Inherited . | |
Когда состояние блока разрешается к сигналу с пользовательским классом памяти сигнала, класс памяти сигнала:
| Измените пользовательский класс памяти сигналов. | |
Состояние блока разрешается к сигнальному объекту с непустым начальным значением. | Измените объект сигнала. | |
Блок используется для перехода скорости. | Замените блок, используемый для перехода со скоростью, на блок Rate Transition. | |
Исправьте указанный входной или выходной порт блока. | ||
Проверяйте Discrete Integrator блоки | Типы данных входных портов не single или double для портов без сброса. | Измените типы данных входных портов, которые будут single или double для портов без сброса. |
Входные и выходные порты не скаляры. | Измените входной или выходной порты, чтобы они были скалярами. | |
Типы данных выходных портов не 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. | |
Эта проверка поддерживается проверкой во время редактирования. Однако проверка во время редактирования не помечает нарушения всех ограничений этой проверки. В предыдущей таблице явно упоминаются условия нарушения ограничений, при которых флаги проверки во время редактирования.
Проверяйте идентификатор: 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)
Проверяйте идентификатор: mathworks.slci.StringBlocksUsage
Идентифицируйте использование строковых блоков, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в строках.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Проверяйте ASCII to String блоки | Размерность входа больше или равна значению параметра Buffer size of dynamical-size string (bytes) (Simulink Coder). | Исправьте вход размерности. |
Исправьте указанный входной или выходной порт блока. |
Проверяйте идентификатор: 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)
Проверяйте идентификатор: mathworks.slci.MATLABactionlanguageStateflowUsage
Проверьте использование языка действий Stateflow MATLAB, который может повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в использовании языка действий Stateflow MATLAB.
Доступно с Simulink Code Inspector.
Для выполнения подшеков, чтобы проверить использование языка действий MATLAB в диаграммах Stateflow, смотрите Проверку использования кода в функциях MATLAB.
Программирование графика (Stateflow)
Chart (Stateflow)
Проверяйте идентификатор: 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 | Математическая функция в действии не является:
| Измените математическую функцию, чтобы использовать поддерживаемые типы данных. |
Check that transitions do not have an unsupported loop step | Переход имеет неподдерживаемый шаг цикла. | Измените переход так, чтобы существовал один оператор действия, который увеличивает int32 шаг индукции скалярного цикла с буквальным int32 постоянное значение. |
Check that transitions do not have an unsupported loop body | Переход имеет неподдерживаемое тело цикла. | Измените переход так, чтобы не было никаких действий, которые переопределяют переменную индукции цикла. |
Check that transitions do not have an unsupported loop condition | Переход имеет неподдерживаемое условие цикла. | Измените условие перехода так, чтобы оно имело одну < или один <= условие с буквальным int32 постоянная граница и скалярная int32 переменная индукции цикла. |
Check for valid induction variable in transition that defines loop condition | Переход, который задает условие цикла, имеет недопустимую переменную индукции. | Измените условие цикла так, чтобы в нем было только одно < или <= условие с скалярной асинхронной переменной Stateflow локального или временного цикла возможностей. |
Check that transitions do not have unsupported loop induction variable initialization | Переход имеет неподдерживаемую инициализацию индукционной переменной цикла. | Измените переход так, чтобы инициализация переменной индукции скалярного цикла была единственным оператором действия, который использует int32 тип данных и инициализирует переменную с буквальной константой int32 значение. |
Check that no actions contain an xor operator with boolean operands | Действие содержит XOR оператор с булевыми операндами с параметром модели Casting modes установленным на Standards . | Измените действие, чтобы избежать использования XOR оператор с булевыми операндами или установите Casting modes на Nominal . |
Check that no actions contain a binary operator whose operands are of mixed data type | Действие содержит двоичный оператор операндов смешанного типа данных, который не поддерживается для инспекции кода. | Измените график, чтобы избежать использования двоичных операторов с операторами смешанного типа данных. |
Check that no transitions have a function with more than 2 arguments | Переход имеет функцию с более чем 2 аргументами. | Измените каждую функцию так, чтобы она имела не более 2 аргументов. Возможно, можно заменить функцию с более чем 2 аргументами на серию функций с не более чем 2 аргументами. Для примера, a MinMax функция с 3 входами может быть заменена на 2 MinMax функций, каждый с 2 аргументами. |
Check data type of Simulink Function argument | Фактический тип данных аргумента вызова функции Simulink отличается от типа данных аргумента входного и выходного портов в определяющей Подсистеме вызова функций. | Измените вызов функции Simulink, чтобы иметь тот же тип данных аргумента, что и входной и выходной порт в определяющей Подсистеме вызова функций. |
Check dimension of Simulink Function argument | Фактический размер аргумента вызова функции Simulink отличается от размера аргумента входного и выходного портов в определяющей Подсистеме вызова функций. | Измените вызов функции Simulink, чтобы иметь тот же размер данных аргумента, что и входной и выходной порты в определяющей Подсистеме вызова функций. |
Check that no actions access time (t) | Действие обращается ко времени, которое не поддерживается для инспекции кода. | Измените действие, чтобы избежать доступа ко времени. |
Check data type of truth table arguments | Переход задает таблицу истинности с различными фактическими и ожидаемыми типами данных аргументов. | Измените переход, чтобы задать таблицы истинности, чтобы использовать совпадающие типы данных для фактических и ожидаемых аргументов. |
Check dimensions of truth table arguments | Переход задает таблицу истинности с различными фактическими и ожидаемыми размерами аргументов. | Измените переход, чтобы задать таблицы истинности, чтобы использовать те же размеры для фактических и ожидаемых аргументов. |
Check unassigned graphical function outputs | График задает графическую функцию вызовы с другим количеством фактических и ожидаемых выходов. | Измените график так, чтобы графические функции назначали все выходы. |
Check that Stateflow transitions are not configured as variant transitions | Диаграмма Stateflow содержит переходы, которые сконфигурированы как варианты переходов. | Измените график, чтобы избежать использования вариантных переходов. |
Диаграммы Stateflow (Stateflow)
Переходы (Stateflow)
Переходные соединения (Stateflow)
Переходы по умолчанию (Stateflow)
Проверяйте идентификатор: mathworks.slci.junctionsSFObjsUsage
Проверьте использование соединений Stateflow, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в соединениях Stateflow.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Check that Stateflow junctions do not have outgoing transitions jumping outside of the loop | Соединение имеет исходящий переход, который прыгает наружу от тела цикла. | Измените график так, чтобы соединение в цикле не имело исходящих переходов, выходящих за пределы цикла. |
Check that non-terminating junctions have exactly one unconditional exiting transition | Неоконечное соединение не имеет точно одного безусловного выходного перехода. Один безусловный выход из перехода предотвращает обратное отслеживание и затенение перехода. | Измените соединение так, чтобы оно имело один безусловный выходной переход. |
Check that the chart uses no history junctions | График содержит историческое соединение. | Измените график так, чтобы она не содержала исторического соединения. |
Check that control flows do not have loops with unsupported header junctions | Соединение заголовка не имеет двух входящих и двух исходящих переходов. | Измените соединение заголовка так, чтобы оно имело два входящих и два исходящих перехода. |
Check usage of terminating Stateflow junctions | Оконечное соединение прослеживается назад в состояние Stateflow. | Измените соединение так, чтобы оно не возвращалось в состояние Stateflow. |
Check that control flows are structured | График содержит неструктурированные потоки управления, которые не поддерживаются для инспекции кода. | Измените график так, чтобы она не содержала неструктурированных потоков управления. |
Check that unconditional transitions execute last in execution order | Безусловный переход не является последним в порядке выполнения. | Измените график так, чтобы безусловный переход был последним в порядке выполнения. Это препятствует затенению перехода. |
Проверяйте идентификатор: 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 Для данных scope Stateflow задано значение Parameter . | Измените график, чтобы не задать InitializeMethod на Parameter . В Model Explorer для данных Stateflow с Local или Output возможности, можно задать InitializeMethod для Initial value, чтобы Expression . |
Check that states and boxes do not define Stateflow data | Состояние или поле задает данные Stateflow. | Измените состояние или поле так, чтобы оно не задало данные Stateflow. |
Check that Stateflow data is of a supported data type | Типы данных графика не builtin , enumerated , или bus . Если тип данных графика является bus и график использует C в качестве языка действий, данные являются массивом шин или имеют элементы, которые являются массивами шин. Если тип данных графика enumerated значение по умолчанию данных не 0 . | Измените типы данных графика, которые будут builtin , enumerated , или bus . Если тип данных графика bus и график использует C в качестве языка действий, измените график так, чтобы данные не были массивом шин или имели элементы, которые являются массивами шин. Если тип данных графика enumerated , обновите график так, чтобы enumerated тип данных имеет значение по умолчанию 0 . |
Check that the 'First Index' of Stateflow data are empty or 0 | The 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)
Проверяйте идентификатор: mathworks.slci.eventsSFObjsUsage
Проверьте использование событий Stateflow, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в событиях Stateflow.
Доступно с Simulink Code Inspector.
Проверить | Состояние | Рекомендуемое действие |
---|---|---|
Check that the chart uses only events of scope Local or Output | Возможности события не Output или Local . | Измените графики, чтобы избежать использования входных событий. |
Check that the chart uses only function-call events | Триггер события не function-call . | Измените модель так, чтобы триггер события был function-call |
Основы спецификации данных (Stateflow)
События (Stateflow)
Проверяйте идентификатор: mathworks.slci.statesSFObjsUsage
Проверьте использование состояний Stateflow, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в состояниях Stateflow.
Доступно с Simulink Code Inspector.
Проверить | Состояние | Рекомендуемое действие |
---|---|---|
Check that control flows do not have cycles | График содержит циклы потока управления, которые не поддерживаются для инспекции кода. | Сконфигурируйте график так, чтобы она не содержала циклов потока управления. |
Check that actions do not have unsupported operations | Действие использует операцию, которая не является:
| Измените график так, чтобы действие использовало только поддерживаемые операции. |
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 | Математическая функция в действии не является:
| Измените математическую функцию, чтобы использовать поддерживаемые типы данных. |
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)
Проверяйте идентификатор: mathworks.slci.graphicalfunctionsSFObjsUsage
Проверьте использование графических функций Stateflow, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в графических функциях Stateflow.
Доступно с Simulink Code Inspector.
Проверить | Состояние | Рекомендуемое действие |
---|---|---|
Check that control flows do not have cycles | Графическая функция содержит циклы потока управления, которые не поддерживаются для инспекции кода. | Сконфигурируйте графическую функцию так, чтобы она не содержала циклов потока управления. |
Check usage of InlineOption setting | Свойство графической функции Function Inline Option установлено в Auto . | Установите свойство графической функции Function Inline Option равным Inline или Function . |
Check configuration for models with non-inlined graphical functions | Для графической функции с Function Inline Option (InlineOption ) установить на Function , параметр конфигурации Code interface packaging (CodeInterfacePackaging ) не установлено в Nonreusable function | В диалоговом окне Параметров конфигурации на панели Code Generation > Interface установите значение Code interface packaging (Simulink Coder) Nonreusable function . |
Check non-inlined graphical function names | Не встроенная функция не имеет уникального имени функции. | Измените имена функции не встроенных графических функций, чтобы они были уникальными. |
Check usage of recursive Stateflow function | Графическая функция рекурсивна. | Сконфигурируйте графическую функцию так, чтобы она не была рекурсивной. |
Check that control flows are structured | Графическая функция содержит неструктурированные потоки управления, которые не поддерживаются для инспекции кода. | Сконфигурируйте графическую функцию так, чтобы она не содержала неструктурированных потоков управления. |
Проверяйте идентификатор: 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 | Таблица истинности содержит неструктурированные потоки управления, которые не поддерживаются для инспекции кода. | Сконфигурируйте таблицу истинности так, чтобы она не содержала неструктурированных потоков управления. |
Проверяйте идентификатор: mathworks.slci.MATLABFunctionBlocksUsage
Идентифицируйте блоки MATLAB Function, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает о несовместимости, которую она находит в блоках MATLAB Function.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Check for block names that contain ‘/*’,’*/’, or start or end with the character ‘*’ | Имя блока:
| Измените указанное имя блока. |
Check for unsupported usage of storage class | Блок является постоянным и имеет выходные порты неавтоматических классов памяти. | Измените блок путем изменения класса памяти выходного сигнала или изменения шага расчета блока. Для примера, если блок или его источник является Постоянным блоком, установите шаг расчета этого блока Константы в явный непостоянный шаг расчета. |
Check for unsupported testpoints | Блок является постоянным, и выход тестируется. | Измените блок путем либо удаления тестовых точек выхода сигнала, либо изменения шага расчета блока. Для примера, если блок или его источник является Постоянным блоком, установите шаг расчета этого блока Константы в явный непостоянный шаг расчета. |
Check storage class of block outports | Блок использует неподдерживаемые пользовательские классы памяти Type, Data initialization или InitialValue (InitialValue ). | Измените выход памяти выходного пользовательского сигнала:
|
Check for blocks with greater than two-dimensional inputs or outputs | Блочный входной или выходной порт не является скаляром, вектором или 2-D матрицей. | Измените входной или выходной блок, чтобы быть скаляром, вектором или 2-D матрицей. |
Check whether inputs and outputs are not framed | Block inport или outport использует основанные на кадрах сигналы. | Измените модель так, чтобы блоки использовали основанные на выборке входные и выходные порты. Проверяйте блоки в восходящем направлении блоков, перечисленных в результатах, на блоки, которые выводят сигналы, основанные на кадре. |
Check that all MATLAB functions set ‘Update method’ to ‘Inherited’ | Функция MATLAB не устанавливает Update method на Inherited . | Измените функцию MATLAB, чтобы задать Update method значение Inherited . |
Identify Subsystems that have unsupported configurations for non-inlined | Для MATLAB Function блока Function packaging (RTWSystemCode ) не установлено в Inline . | Измените блок MATLAB Function, чтобы задать Function packaging (RTWSystemCode ) к Inline , Nonreusable function или Reusable function . Если вы выбираете Nonreusable function Подсистема должна быть в следующих строениях:
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 | Блок, который является постоянным или имеет параметры, которые могут быть настроены приводы два или более многократных блоков, не используя явные блоки Rate Transition. | Измените блок, чтобы использовать явные блоки Rate Transition. |
Check that all MATLAB functions set ‘Saturate on integer overflow’ to ‘Off’ | Функция MATLAB не очищается (установлено на off ) Saturate on integer overflow (SaturateOnIntegerOverflow ) параметр. | Измените функцию MATLAB, чтобы удалить (установите на off ) Saturate on integer overflow (SaturateOnIntegerOverflow ) параметр. |
Check that all MATLAB functions set ‘Treat these inherited Simulink signal types as fi objects:’ to a value other than ‘Fixed-point & Integer’ | Функция MATLAB устанавливает Treat these inherited Simulink signal types as fi objects равной Fixed-point & Integer . | Измените функцию MATLAB, чтобы задать Treat these inherited Simulink signal types as fi objects значение кроме Fixed-point & Integer . |
Check that all MATLAB functions set ‘Support variable-size arrays’ to ‘Off’ | Функция MATLAB не очищается (установлено на off ) параметр Support variable-size arrays. | Измените функцию MATLAB, чтобы удалить (установите на off ) параметр Support variable-size arrays. |
Проверяйте идентификатор: 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, чтобы избежать использования комплексных данных. |
Проверяйте идентификатор: mathworks.slci.RootOutportBlocksUsage
Проверьте использование корневых блоков Outport, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает о несовместимости использования корневых блоков Outport.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Verify sample times | Один или несколько корневых блоков Outport являются постоянными. Это приведет к тому, что функции модели не будут проверены, потому что назначение корневого исходного порта перемещается в функцию инициализации модели. | Установите шаги расчета корневых блоков Outport на явные неконстантные шаги расчета. |
Verify root Outports pass buses to parent models as structures | Один или несколько корневых блоков Outport передают шину в родительскую модель, не проходя шину как структуру. Это может привести к тому, что программное обеспечение Simulink вставит скрытый блок Signal Conversion в родительскую модель, который не поддерживается для инспекции кода. | Для каждого образца откройте диалоговое окно блока Outport и выберите Output as nonvirtual bus in parent model параметра (BusOutputAsStruct ). |
Проверяйте идентификатор: mathworks.slci.BusUsage
Проверьте использование шин, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и сообщает о несовместимости использования шины.
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Check for automatic conversion between virtual to nonvirtual buses | Программное обеспечение Simulink выполнило автоматическое преобразование из виртуальной в невиртуальную шину на интерфейсе одного или нескольких перечисленных блоков. Это создает скрытый блок преобразования сигналов, который не поддерживается для инспекции кода. | Измените модель, чтобы использовать невиртуальные шины на интерфейсах перечисленных блоков. |
Verify that blocks in the model do not perform unsupported operations on a bus | В модели невирусный блок действует на виртуальной шине или Bus Assignment блок - на невиртуальную шину. | Измените модель так, чтобы никакие невирусные блоки не работали на виртуальной шине и никакие Bus Assignment блоки не работали на невиртуальной шине. Это действие упрощает обработку шины для повышения трассируемости и читаемости сгенерированного кода. |
Проверяйте идентификатор: mathworks.slci.SharedUtils
Проверьте использование общих утилит, которые могут повлиять на совместимость с Simulink Code Inspector.
Эта проверка обновляет диаграмму модели и определяет несовместимость с общим использованием утилит.
Поддерживаемые общие утилиты включают:
binsearch_u32d
intrp1d_l
intrp2d_l
intrp3d_l
look1_binlc
look2_binlc
plook_binlc
rt_hypotd
rt_hypotf
rt_modd
rt_modf
rt_remd
rt_remf
rt_roundd
rt_roundf
Доступно с Simulink Code Inspector.
Подпроверить | Состояние | Рекомендуемое действие |
---|---|---|
Check code generation symbols settings for shared utils inspection | Значения параметров символов генерации кода не поддерживаются для проверки общих утилит. | В диалоговом окне Параметров конфигурации на панели Code Generation > Identifiers установите значение по умолчанию для Локальных временных переменных (Embedded Coder) $N$M и установите формат идентификатора общих утилит (Embedded Coder) равным значениям по умолчанию $N$C . |
Check standard math library settings for shared utils inspection | Стандартные настройки математической библиотеки не поддерживаются для проверки общих утилит. | В диалоговом окне Параметров конфигурации на панели Code Generation > Interface установите значение Стандартной математической библиотеки (Simulink Coder) C89/C90 (ANSI) или C99 . |
Check code style settings for shared utils inspection | Значения параметров конфигурации стиля кода не поддерживаются для проверки общих утилит. | В диалоговом окне Параметров конфигурации на панели Code Generation > Code Style:
|