exponenta event banner

Ограничения объекта Stateflow

Блоки потока состояния

Ограничение блока Stateflow ®ФАТАЛЬНЫЙ/нефатальныйПроверка совместимости
Функциональная упаковка (RTWSystemCode) должен иметь значение Inline или Nonreusable function. Подсистема должна быть в поддерживаемых конфигурациях для Nonreusable function. Simulink ® Code Inspector™ поддерживает блок Chart (Stateflow) для проверки кода.НеокончательныйПроверка использования блоков потока состояний

Диаграммы статофлоу

Ограничение диаграммы (Stateflow)ФАТАЛЬНЫЙ/нефатальныйПроверка совместимости

Диаграмма не должна содержать следующие объекты:

  • Атомарные подшарты

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

  • Функции MATLAB ®

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

ФАТАЛЬНЫЙПроверка использования диаграмм 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 должны совпадать с диаграммой Stateflow
Диаграмма не должна определять данные потока состояний с помощью Constant сфера применения.НеокончательныйПроверьте использование данных Stateflow > Убедитесь, что диаграмма не определяет данные Stateflow с постоянной областью
InitializeMethod для Local или Output scope stateflow data не должны иметь значение Parameter. НеокончательныйПроверка использования данных Stateflow > Проверка использования метода инициализации данных Stateflow

Типы данных диаграммы должны быть builtin, enumerated, или bus.

  • Если типом данных диаграммы является bus и:

    • Диаграмма использует C в качестве языка действий, данные не должны быть массивами шин или иметь элементы, которые являются массивами шин.

    • Диаграмма использует MATLAB в качестве языка действий, данные могут быть массивами шин или иметь элементы, которые являются массивами шин.

  • Если тип данных диаграммы - enumerated, значение по умолчанию для данных должно быть 0.

НеокончательныйПроверьте использование данных 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

Графическое ограничение функцииФАТАЛЬНЫЙ/нефатальныйПроверка совместимости
Графическая функция не должна содержать циклов управления потоком.ФАТАЛЬНЫЙПроверьте использование графических функций 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

ФАТАЛЬНЫЙ/нефатальныйПроверка совместимости

Вызовы функции 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 > Проверка отсутствия циклов для управляющих потоков

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

  • := или =

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

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

  • &, && или &=

  • |, || или |=

  • << или >>

  • cast()

  • ^ или ^=

  • %% или <

  • <= или ==

  • ~= или !=

  • <> или >

  • >= или ~

НеокончательныйПроверка использования состояний Stateflow > Проверка отсутствия неподдерживаемых операций
Массивы с несколькими измерениями не должны использовать индексирование.НеокончательныйПроверка использования состояний Stateflow > Проверка индексирования в массивах, состоящих из нескольких измерений
Массивы должны использовать индекс типа данных int32.НеокончательныйПроверьте использование состояний Stateflow > Убедитесь, что во всех массивах используется индекс типа «» int32
Действие не должно иметь доступа к контекстно-зависимым константам.НеокончательныйПроверка использования состояний Stateflow > Проверка того, что никакие действия не имеют доступа к контекстно-зависимым константам
Действие не должно иметь доступа к пользовательским данным.НеокончательныйПроверьте использование состояний Stateflow > Убедитесь, что никакие действия не имеют доступа к настраиваемым данным
Состояния и подсостояния на диаграмме должны иметь переходы по умолчанию.НеокончательныйПроверить использование состояний Stateflow > Проверить, что состояния или подсостояния имеют переход по умолчанию

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

  • + или +=

  • - или -=

  • * или *=

  • / или /=

  • & или &=

  • | или |=

  • ^ или ^=

  • %%

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

Математические функции в действиях должны иметь:

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

    • acos, asin, atan

    • ceil, cosh, cosh

    • exp, fabs, floor

    • fmod, ldexp, log

    • log10, pow, sin

    • sinh, sqrt, tan, tanh

  • Ненулевые аргументы для следующих функций:

    • abs, max, min

  • Аргумент целочисленного типа для labs функция.

НеокончательныйПроверка использования состояний 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)ФАТАЛЬНЫЙ/нефатальныйПроверка совместимости

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

  • := или =

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

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

  • &, && или &=

  • |, || или |=

  • << или >>

  • cast()

  • ^ или ^=

  • %% или <

  • <= или ==

  • ~= или !=

  • <> или >

  • >= или ~

НеокончательныйПроверьте использование переходов Stateflow > Убедитесь, что действия не имеют неподдерживаемых операций
Массивы с несколькими измерениями не должны использовать индексирование.НеокончательныйПроверка использования переходов Stateflow > Проверка индексирования в массивах, состоящих из нескольких измерений
Массивы должны использовать индекс типа данных int32.НеокончательныйПроверьте использование переходов Stateflow > Убедитесь, что во всех массивах используется индекс типа «» int32
Условие перехода должно иметь логический тип данных.НеокончательныйПроверьте использование переходов Stateflow > Проверьте, что все условия перехода имеют логический тип данных
Действие не должно иметь доступа к контекстно-зависимым константам.НеокончательныйПроверьте использование переходов Stateflow > Убедитесь, что никакие действия не имеют доступа к контекстно-зависимым константам
Действие не должно иметь доступа к пользовательским данным.НеокончательныйПроверьте использование переходов Stateflow > Убедитесь, что никакие действия не имеют доступа к пользовательским данным

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

  • + или +=

  • - или -=

  • * или *=

  • / или /=

  • & или &=

  • | или |=

  • ^ или ^=

  • %%

  • ~

  • || или &&

  • > или <

  • <= или >=

  • ~= или <>

  • >> или <<

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

Математические функции в действиях должны иметь:

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

    • acos, asin, atan

    • ceil, cosh, cosh

    • exp, fabs, floor

    • fmod, ldexp, log

    • log10, pow, sin

    • sinh, sqrt, tan, tanh

  • Ненулевые аргументы для следующих функций:

    • abs, max, min

  • Аргумент целочисленного типа для labs функция.

НеокончательныйПроверьте использование переходов Stateflow > Убедитесь, что никакие действия не содержат функцию, аргумент которой имеет недопустимый тип данных
Переходы потока состояний не должны повторно использовать переменные индукции вне цикла.НеокончательныйПроверьте использование переходов Stateflow > Убедитесь, что переходы Stateflow не используют переменные индукции за пределами цикла
Петли потока состояний не должны иметь неподдерживаемый шаг при переходах.НеокончательныйПроверьте использование переходов Stateflow > Убедитесь, что переходы не имеют неподдерживаемого шага цикла
Петли потока состояния не должны иметь неподдерживаемое тело в переходах.НеокончательныйПроверьте использование переходов Stateflow > Убедитесь, что переходы не имеют неподдерживаемого тела цикла
При переходах петли потока состояний не должны иметь неподдерживаемого состояния.НеокончательныйПроверьте использование переходов Stateflow > Убедитесь, что переходы не имеют неподдерживаемого условия цикла
Петли потока состояний должны иметь допустимую переменную индукции при переходе, которая определяет условие цикла.НеокончательныйПроверьте использование переходов Stateflow > Проверьте допустимую переменную индукции в переходном режиме, которая определяет состояние цикла
Циклы потока состояний не должны иметь неподдерживаемых действий инициализации в переходах.НеокончательныйПроверьте использование переходов Stateflow > Убедитесь, что переходы не имеют неподдерживаемой инициализации переменной индукции цикла
Действие не должно содержать двоичный оператор со смешанными операндами типа данных.НеокончательныйПроверьте использование переходов Stateflow > Убедитесь, что никакие действия не содержат двоичного оператора, операнды которого имеют смешанный тип данных
Переход не должен иметь функцию с более чем 2 аргументами.НеокончательныйПроверьте использование переходов Stateflow > Убедитесь, что никакие переходы не имеют функции с более чем 2 аргументами
Действия не должны иметь доступ ко времени.НеокончательныйПроверка использования переходов Stateflow > Проверка отсутствия времени доступа к действиям (t)
Действия не должны содержать XOR оператор с логическими операндами, если для параметра модели Casting mode установлено значение Standards.НеокончательныйПроверьте использование переходов Stateflow > Убедитесь, что никакие действия не содержат оператора xor с логическими операндами
Диаграммы не должны иметь графических вызовов функций с неназначенными выходами.НеокончательныйПроверка использования переходов Stateflow > Проверка неназначенных выходных данных графических функций
Диаграммы не должны содержать переходы, настроенные как переходы вариантов.НеокончательныйПроверьте использование переходов Stateflow > Убедитесь, что переходы Stateflow не настроены как переходы исполнения

Таблицы истинности Stateflow

Ограничение таблицы истинностиФАТАЛЬНЫЙ/нефатальныйПроверка совместимости
Управляющие потоки не должны иметь циклов.ФАТАЛЬНЫЙПроверьте использование таблиц истинности Stateflow > Проверьте, что управляющие потоки не имеют циклов
Свойство таблицы истинности Функция Встроенный параметр (InlineOption) не должно быть Auto или Function.НеокончательныйПроверка использования таблиц истинности Stateflow > Проверка использования параметра InlineOption
Таблица истинности не должна быть рекурсивной.НеокончательныйПроверка использования таблиц истинности Stateflow > Проверка использования рекурсивной функции Stateflow
Свойство таблицы истинности Язык должно иметь значение C.НеокончательныйПроверка использования таблиц истинности Stateflow > Проверка использования таблицы истинности Stateflow Язык
Управляющие потоки должны быть структурированы.ФАТАЛЬНЫЙПроверка использования таблиц истинности Stateflow > Проверка структуры управляющих потоков
Состояния не должны указывать таблицы истинности с различными фактическими и ожидаемыми типами данных аргументов.НеокончательныйПроверка использования состояний Stateflow > Проверка типа данных аргументов таблицы истинности
Государства не должны указывать таблицы истинности с различными фактическими и ожидаемыми размерами аргументов.НеокончательныйПроверка использования состояний Stateflow > Проверка размеров аргументов таблицы истинности
Переходы не должны указывать таблицы истинности с различными фактическими и ожидаемыми типами данных аргументов.НеокончательныйПроверка использования переходов Stateflow > Проверка типа данных аргументов таблицы истинности
Переходы не должны указывать таблицы истинности с различными фактическими и ожидаемыми размерами аргументов.НеокончательныйПроверка использования переходов Stateflow > Проверка размеров аргументов таблицы истинности

Связанные темы