| Ограничение блока Stateflow ® | ФАТАЛЬНЫЙ/нефатальный | Проверка совместимости |
|---|---|---|
Функциональная упаковка (RTWSystemCode) должен иметь значение Inline или Nonreusable function. Подсистема должна быть в поддерживаемых конфигурациях для Nonreusable function. Simulink ® Code Inspector™ поддерживает блок Chart (Stateflow) для проверки кода. | Неокончательный | Проверка использования блоков потока состояний |
| Ограничение диаграммы (Stateflow) | ФАТАЛЬНЫЙ/нефатальный | Проверка совместимости |
|---|---|---|
|
Диаграмма не должна содержать следующие объекты:
| ФАТАЛЬНЫЙ | Проверка использования диаграмм Stateflow > Проверка использования палитры объектов Stateflow |
| Диаграмма, использующая язык действий MATLAB, должна иметь уникальные имена для функций Simulink, графических функций и содержащихся в ней таблиц истинности. | Неокончательный | Проверка использования диаграмм Stateflow > Проверка использования имен в диаграмме Stateflow, использующей язык действий MATLAB |
| Код MATLAB на диаграмме, использующей язык действий MATLAB, должен соответствовать тем же ограничениям, что и код в функциональных блоках MATLAB. | Неокончательный | Проверка использования языка действий Stateflow MATLAB |
| Свойство диаграммы Создание выходных данных для мониторинга не должно быть выбрано. | Неокончательный | Проверьте использование диаграмм Stateflow > Убедитесь, что все диаграммы отменили выбор параметра «Create output for monitoring» (Создание выходных данных для мониторинга). |
Свойство диаграммы Метод Update должно иметь значение Inherited. | Неокончательный | Проверьте использование диаграмм Stateflow > Убедитесь, что для всех диаграмм задан метод обновления «Унаследовано» |
| Состояния и подсостояния на диаграмме должны иметь переходы по умолчанию. | Неокончательный | Проверка использования диаграмм Stateflow > Проверка наличия перехода между состояниями и подстанциями по умолчанию |
| Свойство диаграммы Включить супершаговую семантику не должно быть выбрано. | Неокончательный | Проверьте использование диаграмм Stateflow > Убедитесь, что все диаграммы отменили выбор параметра «Включить супершаговую семантику» |
| Не следует выбирать свойство диаграммы Execute (enter) Chart at Initialization. | Неокончательный | < Проверьте использование диаграмм Stateflow > Убедитесь, что ни одна диаграмма не выполняется при инициализации |
| Свойство диаграммы «» Экспорт функций уровня диаграммы «» не должно быть выбрано. | Неокончательный | Проверка использования диаграмм Stateflow > Проверка отсутствия функций экспорта диаграмм на уровне диаграмм |
| Свойство диаграммы Saturate при переполнении целого числа не должно быть выбрано. | Неокончательный | Проверьте использование диаграмм Stateflow > Убедитесь, что ни одна из диаграмм не указывает насыщение при переполнении для целочисленных операций |
Свойство диаграммы «» Тип конечного компьютера «» не должно иметь значение Moore. | Неокончательный | Проверка использования диаграмм потока состояний > Проверка использования типа конечного автомата |
| Свойство диаграммы Поддержка массивов переменного размера не должна быть выбрана. | ФАТАЛЬНЫЙ | Проверьте использование диаграмм Stateflow > Убедитесь, что ни одна диаграмма не поддерживает массивы переменного размера |
| Поток управления не должен иметь более 1 перехода по умолчанию. | Неокончательный | Проверьте использование диаграмм Stateflow > Убедитесь, что все управляющие потоки имеют уникальные переходы по умолчанию |
| Ограничение данных или событий | ФАТАЛЬНЫЙ/нефатальный | Проверка совместимости |
|---|---|---|
| Данные потока состояния не должны иметь объем компьютера. | Неокончательный | Проверка на наличие данных о машине Stateflow > Все данные о потоке Stateflow должны совпадать с данными диаграммы Stateflow |
| События потока состояния не должны относиться к области действия компьютера. | Неокончательный | Проверка событий машины Stateflow > Все события Stateflow должны совпадать с диаграммой Stateflow |
Диаграмма не должна определять данные потока состояний с помощью Constant сфера применения. | Неокончательный | Проверьте использование данных Stateflow > Убедитесь, что диаграмма не определяет данные Stateflow с постоянной областью |
InitializeMethod для Local или Output scope stateflow data не должны иметь значение Parameter. | Неокончательный | Проверка использования данных Stateflow > Проверка использования метода инициализации данных Stateflow |
Типы данных диаграммы должны быть
| Неокончательный | Проверьте использование данных Stateflow > Убедитесь, что данные Stateflow имеют поддерживаемый тип данных |
First Index свойство для данных Stateflow должно быть пустым или равно 0. | Неокончательный | Проверьте использование данных Stateflow > Убедитесь, что первый индекс данных Stateflow пуст или равен 0 |
| Размер параметров Stateflow должен быть одинаковым в Stateflow и в базовой рабочей области. | Неокончательный | Проверка использования данных Stateflow > Проверка соответствия размеров данных параметров Stateflow в Stateflow и базовой рабочей области |
| Диаграмма не должна использовать сложные данные. | Неокончательный | Проверка использования данных Stateflow > Проверка, что диаграмма использует только несложные данные |
| Состояния и поля Stateflow не должны определять данные Stateflow. | Неокончательный | Проверка использования данных Stateflow > Проверка того, что состояния и поля не определяют данные Stateflow |
Область события должна быть Output или Local. | Неокончательный | Проверьте использование событий Stateflow > Убедитесь, что в диаграмме используются только события области Local или Output |
Триггер события должен быть function-call. | Неокончательный | Проверьте использование событий Stateflow > Убедитесь, что в диаграмме используются только события вызова функции |
| Графическое ограничение функции | ФАТАЛЬНЫЙ/нефатальный | Проверка совместимости |
|---|---|---|
| Графическая функция не должна содержать циклов управления потоком. | ФАТАЛЬНЫЙ | Проверьте использование графических функций Stateflow > Проверьте, что управляющие потоки не имеют циклов |
Свойство графической функции Функция Встроенный параметр (InlineOption) должно быть Inline или Function. | Неокончательный | Проверка использования графических функций Stateflow > Проверка использования параметра InlineOption |
Для графической функции с функцией «Встроенный» (Function Inline Option) (InlineOption) установите в значение Function, параметр конфигурации Кодовая упаковка интерфейса (CodeInterfacePackaging) должен иметь значение Nonreusable function. | Неокончательный | Проверка использования графических функций Stateflow > Проверка конфигурации моделей с неинлинированными графическими функциями |
| Неинкрементированные графические функции должны иметь уникальные имена функций. | Неокончательный | Проверка использования графических функций Stateflow > Проверка неинлинированных графических имен функций |
| Графическая функция не должна быть рекурсивной. | Неокончательный | Проверка использования графических функций Stateflow > Проверка использования рекурсивной функции Stateflow |
| Графическая функция не должна содержать неструктурированный поток управления. | ФАТАЛЬНЫЙ | Проверка использования графических функций Stateflow > Проверка структуры управляющих потоков |
| Состояние не должно содержать вызовы графических функций с различными фактическими и ожидаемыми типами данных аргументов. | Неокончательный | Проверка использования состояний Stateflow > Проверка типа данных аргументов Graphical Function |
| Состояние не должно содержать вызовы графических функций с различными фактическими и ожидаемыми размерами аргументов. | Неокончательный | Проверка использования состояний Stateflow > Проверка размеров аргументов графической функции |
| Переход не должен содержать вызовы графических функций с различными фактическими и ожидаемыми типами данных аргументов. | Неокончательный | Проверка использования переходов Stateflow > Проверка типа данных аргументов графической функции |
| Переход не должен иметь графических вызовов функций с различными фактическими и ожидаемыми измерениями аргументов. | Неокончательный | Проверка использования переходов Stateflow > Проверка размеров аргументов графической функции |
|
Ограничение функции Simulink | ФАТАЛЬНЫЙ/нефатальный | Проверка совместимости |
|---|---|---|
|
Вызовы функции Simulink в состояниях должны иметь тот же тип данных аргумента, что и входы и выходы в определяющей подсистеме Function-Call. | Неокончательный | Проверка использования состояний Stateflow > Проверка типа данных аргументов Simulink Function |
| Вызовы функции Simulink в состояниях должны иметь тот же размер аргумента, что и входы и выходы в определяющей подсистеме Function-Call. | Неокончательный | Проверка использования состояний Stateflow > Проверка размеров аргументов функции Simulink |
| Вызовы функции Simulink в переходах должны иметь тот же тип данных аргумента, что и входы и выходы в определяющей подсистеме Function-Call. | Неокончательный | Проверка использования переходов Stateflow > Проверка типа данных аргументов Simulink Function |
| Вызовы функции Simulink в переходах должны иметь тот же размер аргумента, что и входы и выходы в определяющей подсистеме Function-Call. | Неокончательный | Проверка использования переходов Stateflow > Проверка размеров аргумента Simulink Function |
| Зависимость соединения | ФАТАЛЬНЫЙ/нефатальный | Проверка совместимости |
|---|---|---|
| Переходы не должны иметь исходящие переходы, переходящие за пределы контура. | Неокончательный | Проверьте использование соединений Stateflow > Убедитесь, что соединения Stateflow не имеют исходящих переходов, прыгающих за пределы контура |
| Неразрывные соединения должны иметь ровно один безусловный переход, выходящий из них. | ФАТАЛЬНЫЙ | Проверьте использование соединений Stateflow > Убедитесь, что неразрывные соединения имеют только один безусловный выходной переход. |
| Диаграмма не должна содержать соединение истории. | Неокончательный | Проверьте использование соединений Stateflow > Убедитесь, что в диаграмме не используются соединения истории |
| Соединения заголовков должны иметь два входящих и два исходящих перехода. | Неокончательный | Проверьте использование соединений Stateflow > Убедитесь, что управляющие потоки не имеют контуров с неподдерживаемыми соединениями заголовков |
| Оконечные соединения не должны возвращаться в состояние Stateflow. | Неокончательный | Проверка использования соединений Stateflow > Проверка использования оконечных соединений Stateflow |
| Безусловный переход должен быть последним в порядке выполнения. | ФАТАЛЬНЫЙ | Проверка использования соединений Stateflow > Проверка выполнения безусловных переходов последним в порядке выполнения |
| Диаграмма не должна содержать неструктурированный поток управления. | Неокончательный | Проверка использования соединений Stateflow > Проверка структуры управляющих потоков |
| Ограничение состояния (Stateflow) | ФАТАЛЬНЫЙ/нефатальный | Проверка совместимости |
|---|---|---|
| Состояния не должны содержать циклов контрольного потока. | ФАТАЛЬНЫЙ | Проверка использования состояний Stateflow > Проверка отсутствия циклов для управляющих потоков |
|
Действие должно выполняться для одной из следующих операций:
| Неокончательный | Проверка использования состояний Stateflow > Проверка отсутствия неподдерживаемых операций |
| Массивы с несколькими измерениями не должны использовать индексирование. | Неокончательный | Проверка использования состояний Stateflow > Проверка индексирования в массивах, состоящих из нескольких измерений |
Массивы должны использовать индекс типа данных int32. | Неокончательный | Проверьте использование состояний Stateflow > Убедитесь, что во всех массивах используется индекс типа «» int32 |
| Действие не должно иметь доступа к контекстно-зависимым константам. | Неокончательный | Проверка использования состояний Stateflow > Проверка того, что никакие действия не имеют доступа к контекстно-зависимым константам |
| Действие не должно иметь доступа к пользовательским данным. | Неокончательный | Проверьте использование состояний Stateflow > Убедитесь, что никакие действия не имеют доступа к настраиваемым данным |
| Состояния и подсостояния на диаграмме должны иметь переходы по умолчанию. | Неокончательный | Проверить использование состояний Stateflow > Проверить, что состояния или подсостояния имеют переход по умолчанию |
|
Состояние не должно использовать ни одну из следующих неподдерживаемых операций над операндами типа перечисления:
| Неокончательный | Проверка использования состояний Stateflow > Проверка отсутствия неподдерживаемых операций с операндами типов перечисления |
|
Математические функции в действиях должны иметь:
| Неокончательный | Проверка использования состояний Stateflow > Проверка, что никакие действия не содержат функцию, аргумент которой имеет недопустимый тип данных |
| Действие не должно содержать двоичный оператор со смешанными операндами типа данных. | Неокончательный | Проверьте использование состояний Stateflow > Убедитесь, что никакие действия не содержат двоичного оператора, операнды которого имеют смешанный тип данных |
| Функции stateflow не должны содержать более 2 аргументов. | Неокончательный | Проверьте использование состояний Stateflow > Убедитесь, что ни одна функция Stateflow не имеет более 2 аргументов |
| Состояния потока состояний не должны иметь рекурсивных вызовов функции отправки. | Неокончательный | Проверка использования состояний Stateflow > Проверка использования состояний с рекурсивными вызовами функции отправки |
Параметр встроенной функции свойства состояния не должен быть Auto или Function. | Неокончательный | Проверка использования состояний Stateflow > Проверка использования состояния Stateflow InlineOption |
Свойство State Создание выходных данных для мониторинга не должно быть выбрано (значение on). | Неокончательный | Проверьте использование состояний Stateflow > Убедитесь, что все состояния отменили выбор параметра «Create output for monitoring» |
| Действия не должны иметь доступ ко времени. | Неокончательный | Проверка использования состояний Stateflow > Проверка отсутствия времени доступа к действиям (t) |
| Состояния не должны содержать неструктурированный поток управления. | Неокончательный | Проверка использования состояний Stateflow > Проверка структуры управляющих потоков |
| Поток управления не должен иметь более 1 перехода по умолчанию. | Неокончательный | Проверка использования состояний Stateflow > Проверка того, что все управляющие потоки имеют уникальные переходы по умолчанию |
| Пути из состояния должны быть одним из следующих: внутренний переход в подсостояние или внешний переход в родственное, прямое родительское или прямое подсостояние. | Неокончательный | Проверка использования состояний Stateflow > Проверка того, что все пути перехода являются либо внутренними переходами в подсостояние, либо внешними переходами в родственные, прямые родительские или прямые подсостояния |
Действия не должны содержать XOR оператор с логическими операндами, если для параметра модели Casting mode установлено значение Standards. | Неокончательный | Проверьте использование состояний Stateflow > Убедитесь, что никакие действия не содержат оператора xor с логическими операндами |
| Диаграммы не должны иметь графических вызовов функций с неназначенными выходами. | Неокончательный | Проверка использования состояний Stateflow > Проверка неназначенных выходных данных графических функций |
| Ограничение переходов (Stateflow) | ФАТАЛЬНЫЙ/нефатальный | Проверка совместимости |
|---|---|---|
|
Действие должно выполняться для одной из следующих операций:
| Неокончательный | Проверьте использование переходов Stateflow > Убедитесь, что действия не имеют неподдерживаемых операций |
| Массивы с несколькими измерениями не должны использовать индексирование. | Неокончательный | Проверка использования переходов Stateflow > Проверка индексирования в массивах, состоящих из нескольких измерений |
Массивы должны использовать индекс типа данных int32. | Неокончательный | Проверьте использование переходов Stateflow > Убедитесь, что во всех массивах используется индекс типа «» int32 |
| Условие перехода должно иметь логический тип данных. | Неокончательный | Проверьте использование переходов Stateflow > Проверьте, что все условия перехода имеют логический тип данных |
| Действие не должно иметь доступа к контекстно-зависимым константам. | Неокончательный | Проверьте использование переходов Stateflow > Убедитесь, что никакие действия не имеют доступа к контекстно-зависимым константам |
| Действие не должно иметь доступа к пользовательским данным. | Неокончательный | Проверьте использование переходов Stateflow > Убедитесь, что никакие действия не имеют доступа к пользовательским данным |
|
Переход не должен использовать следующие неподдерживаемые операции над операндами типов перечисления:
| Неокончательный | Проверка использования переходов Stateflow > Проверка, что условия и действия не имеют неподдерживаемых операций с операндами типов перечисления |
| Переход не должен иметь триггера события. | Неокончательный | Проверьте использование переходов Stateflow > Убедитесь, что никакие переходы не имеют триггеров событий |
| Переход не должен иметь действия перехода. | Неокончательный | Проверьте использование переходов Stateflow > Убедитесь, что переходы не имеют действий перехода |
|
Математические функции в действиях должны иметь:
| Неокончательный | Проверьте использование переходов Stateflow > Убедитесь, что никакие действия не содержат функцию, аргумент которой имеет недопустимый тип данных |
| Переходы потока состояний не должны повторно использовать переменные индукции вне цикла. | Неокончательный | Проверьте использование переходов Stateflow > Убедитесь, что переходы Stateflow не используют переменные индукции за пределами цикла |
| Петли потока состояний не должны иметь неподдерживаемый шаг при переходах. | Неокончательный | Проверьте использование переходов Stateflow > Убедитесь, что переходы не имеют неподдерживаемого шага цикла |
| Петли потока состояния не должны иметь неподдерживаемое тело в переходах. | Неокончательный | Проверьте использование переходов Stateflow > Убедитесь, что переходы не имеют неподдерживаемого тела цикла |
| При переходах петли потока состояний не должны иметь неподдерживаемого состояния. | Неокончательный | Проверьте использование переходов Stateflow > Убедитесь, что переходы не имеют неподдерживаемого условия цикла |
| Петли потока состояний должны иметь допустимую переменную индукции при переходе, которая определяет условие цикла. | Неокончательный | Проверьте использование переходов Stateflow > Проверьте допустимую переменную индукции в переходном режиме, которая определяет состояние цикла |
| Циклы потока состояний не должны иметь неподдерживаемых действий инициализации в переходах. | Неокончательный | Проверьте использование переходов Stateflow > Убедитесь, что переходы не имеют неподдерживаемой инициализации переменной индукции цикла |
| Действие не должно содержать двоичный оператор со смешанными операндами типа данных. | Неокончательный | Проверьте использование переходов Stateflow > Убедитесь, что никакие действия не содержат двоичного оператора, операнды которого имеют смешанный тип данных |
| Переход не должен иметь функцию с более чем 2 аргументами. | Неокончательный | Проверьте использование переходов Stateflow > Убедитесь, что никакие переходы не имеют функции с более чем 2 аргументами |
| Действия не должны иметь доступ ко времени. | Неокончательный | Проверка использования переходов Stateflow > Проверка отсутствия времени доступа к действиям (t) |
Действия не должны содержать XOR оператор с логическими операндами, если для параметра модели Casting mode установлено значение Standards. | Неокончательный | Проверьте использование переходов Stateflow > Убедитесь, что никакие действия не содержат оператора xor с логическими операндами |
| Диаграммы не должны иметь графических вызовов функций с неназначенными выходами. | Неокончательный | Проверка использования переходов Stateflow > Проверка неназначенных выходных данных графических функций |
| Диаграммы не должны содержать переходы, настроенные как переходы вариантов. | Неокончательный | Проверьте использование переходов Stateflow > Убедитесь, что переходы Stateflow не настроены как переходы исполнения |
| Ограничение таблицы истинности | ФАТАЛЬНЫЙ/нефатальный | Проверка совместимости |
|---|---|---|
| Управляющие потоки не должны иметь циклов. | ФАТАЛЬНЫЙ | Проверьте использование таблиц истинности Stateflow > Проверьте, что управляющие потоки не имеют циклов |
Свойство таблицы истинности Функция Встроенный параметр (InlineOption) не должно быть Auto или Function. | Неокончательный | Проверка использования таблиц истинности Stateflow > Проверка использования параметра InlineOption |
| Таблица истинности не должна быть рекурсивной. | Неокончательный | Проверка использования таблиц истинности Stateflow > Проверка использования рекурсивной функции Stateflow |
Свойство таблицы истинности Язык должно иметь значение C. | Неокончательный | Проверка использования таблиц истинности Stateflow > Проверка использования таблицы истинности Stateflow Язык |
| Управляющие потоки должны быть структурированы. | ФАТАЛЬНЫЙ | Проверка использования таблиц истинности Stateflow > Проверка структуры управляющих потоков |
| Состояния не должны указывать таблицы истинности с различными фактическими и ожидаемыми типами данных аргументов. | Неокончательный | Проверка использования состояний Stateflow > Проверка типа данных аргументов таблицы истинности |
| Государства не должны указывать таблицы истинности с различными фактическими и ожидаемыми размерами аргументов. | Неокончательный | Проверка использования состояний Stateflow > Проверка размеров аргументов таблицы истинности |
| Переходы не должны указывать таблицы истинности с различными фактическими и ожидаемыми типами данных аргументов. | Неокончательный | Проверка использования переходов Stateflow > Проверка типа данных аргументов таблицы истинности |
| Переходы не должны указывать таблицы истинности с различными фактическими и ожидаемыми размерами аргументов. | Неокончательный | Проверка использования переходов Stateflow > Проверка размеров аргументов таблицы истинности |