Ограничения, накладываемые на объекты Stateflow

Блоки Stateflow

Stateflow® Ограничение блокаFATAL/НефатальныйПроверка совместимости
Function packaging (RTWSystemCode) должно быть установлено в Inline или Nonreusable function. Подсистема должна быть в поддерживаемых строениях для Nonreusable function. Simulink® Code Inspector™ поддерживает блок Chart (Stateflow) для инспекции кода.НеокончательныйCheck usage of Stateflow blocks

Диаграммы Stateflow

Chart (Stateflow) ограничениеFATAL/НефатальныйПроверка совместимости

График не должен содержать ни одного из следующих объектов:

  • Атомарные субдиаграммы

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

  • MATLAB® функции

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

ФАТАЛЬНЫЙCheck usage of Stateflow charts> Check usage of Stateflow object palette
График, которая использует язык действий MATLAB, должна иметь уникальные имена для функций Simulink, графических функций и таблиц истинности, которые она содержит.НеокончательныйCheck usage of Stateflow charts> Check name usage in a Stateflow chart that uses MATLAB action language
Код MATLAB в графике, который использует язык действий MATLAB, должен следовать тем же ограничениям, что и код в блоках MATLAB Function.НеокончательныйCheck usage of Stateflow MATLAB action language
Не следует выбирать Create output for monitoring свойства графика.НеокончательныйCheck usage of Stateflow charts> Check that all charts unselect ‘Create output for monitoring’ option
Для Update method свойств графика необходимо задать значение Inherited.НеокончательныйCheck usage of Stateflow charts> Check that all charts specify 'Inherited' as their update method
Состояния и подсостояния на графике должны иметь изменения по умолчанию.НеокончательныйCheck usage of Stateflow charts> Check that states or substates have a default transition
Не следует выбирать Enable Super Step Semantics свойства графика.НеокончательныйCheck usage of Stateflow charts> Check that all charts unselect ‘Enable Super Step Semantics’ option
Не следует выбирать Execute (enter) Chart at Initialization свойства графика.Неокончательный<<reservedrangesplaceholder1>> Check that no charts execute at initialization
Не следует выбирать Export Chart Level Functions свойства графика.НеокончательныйCheck usage of Stateflow charts> Check that no charts export chart level functions
Не следует выбирать Saturate on integer overflow свойства графика.НеокончательныйCheck usage of Stateflow charts> Check that no charts specify saturation on overflow for integer operations
State Machine Type свойства графика не должны иметь значение Moore.НеокончательныйCheck usage of Stateflow charts> Check usage of State Machine Type
Не следует выбирать Support variable-size arrays свойства графика.ФАТАЛЬНЫЙCheck usage of Stateflow charts> Check that no charts support variable-size arrays
Поток управления не должен иметь более 1 перехода по умолчанию.НеокончательныйCheck usage of Stateflow charts> Check that all control flows have unique default transitions

Stateflow Данных и события

Ограничение данных или событийFATAL/НефатальныйПроверка совместимости
Данные Stateflow не должны иметь возможности машины.НеокончательныйCheck for Stateflow machine data> All Stateflow data must be parented by a Stateflow chart
События Stateflow не должны иметь возможности машины.НеокончательныйCheck for Stateflow machine events> All Stateflow events must be parented by a Stateflow chart
График не должна задавать данные Stateflow с Constant возможности.НеокончательныйCheck usage of Stateflow data> Check that the chart does not define Stateflow data with Constant scope
InitializeMethod для Local или Output Для данных scope Stateflow не должно быть задано значение Parameter. НеокончательныйCheck usage of Stateflow data> Check usage of Stateflow data Initialize Method

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

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

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

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

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

НеокончательныйCheck usage of Stateflow data> Check that Stateflow data is of a supported data type
The First Index свойство для данных Stateflow должно быть пустым или 0.НеокончательныйCheck usage of Stateflow data> Check that the 'First Index' of Stateflow data are empty or 0
Размер данных параметра Stateflow должен совпадать в Stateflow и базовом рабочем пространстве.НеокончательныйCheck usage of Stateflow data> Check that Stateflow parameter data sizes in Stateflow and the base workspace match
График не должна использовать комплексные данные.НеокончательныйCheck usage of Stateflow data> Check that the chart uses only non-complex data
Состояния Stateflow и поля не должны задавать данные Stateflow.НеокончательныйCheck usage of Stateflow data> Check that states and boxes do not define Stateflow data
Возможности события должна быть Output или Local.НеокончательныйCheck usage of Stateflow events> Check that the chart uses only events of scope Local or Output
Триггер события должен быть function-call.НеокончательныйCheck usage of Stateflow events> Check that the chart uses only function-call events

Графические функции Stateflow

Графическая функция ограниченияFATAL/НефатальныйПроверка совместимости
Графическая функция не должна содержать циклы потока управления.ФАТАЛЬНЫЙCheck usage of Stateflow graphical functions> Check that control flows do not have cycles
Свойство графической функции Function Inline Option (InlineOption) должен быть Inline или Function.НеокончательныйCheck usage of Stateflow graphical functions> Check usage of InlineOption setting
Для графической функции с Function Inline Option (InlineOption) установить на Function, параметр конфигурации Code interface packaging (CodeInterfacePackaging) должно быть установлено в Nonreusable function.НеокончательныйCheck usage of Stateflow graphical functions> Check configuration for models with non-inlined graphical functions
Нестрочные графические функции должны иметь уникальные имена функции.НеокончательныйCheck usage of Stateflow graphical functions> Check non-inlined graphical function names
Графическая функция не должна быть рекурсивной.НеокончательныйCheck usage of Stateflow graphical functions> Check usage of recursive Stateflow function
Графическая функция не должна содержать неструктурированный поток управления.ФАТАЛЬНЫЙCheck usage of Stateflow graphical functions> Check that control flows are structured
Состояние не должно иметь вызовов графических функций с различными фактическими и ожидаемыми типами данных аргументов.НеокончательныйCheck usage of Stateflow states> Check data type of Graphical Function arguments
Состояние не должно иметь графических вызовов функций с различными фактическими и ожидаемыми размерами аргументов.НеокончательныйCheck usage of Stateflow states> Check dimensions of Graphical Function arguments
Переход не должен иметь графических вызовов функций с различными фактическими и ожидаемыми типами данных аргументов.НеокончательныйCheck usage of Stateflow transitions> Check data type of Graphical Function arguments
Переход не должен иметь графических вызовов функций с различными фактическими и ожидаемыми размерностями аргументов.НеокончательныйCheck usage of Stateflow transitions> Check dimensions of Graphical Function arguments

Функции Stateflow Simulink

Ограничение функции Simulink

FATAL/НефатальныйПроверка совместимости

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

НеокончательныйCheck usage of Stateflow states> Check data type of Simulink Function arguments
Вызовы функций Simulink в состояниях должны иметь тот же размер аргумента, что и входные и выходные порты в определяющей Подсистеме вызова функций.НеокончательныйCheck usage of Stateflow states> Check dimensions of Simulink Function arguments
Вызовы функций Simulink в переходах должны иметь тот же тип данных аргумента, что и входные и выходные порты в определяющей Подсистеме вызова функций. НеокончательныйCheck usage of Stateflow transitions> Check data type of Simulink Function arguments
Вызовы функций Simulink в переходах должны иметь тот же размер аргумента, что и входные и выходные порты в определяющей Подсистеме вызова функций. НеокончательныйCheck usage of Stateflow transitions> Check dimensions of Simulink Function argument

Соединения Stateflow

Ограничение соединенияFATAL/НефатальныйПроверка совместимости
Соединения не должны иметь исходящих переходов, скачущих вне цикла.НеокончательныйCheck usage of Stateflow junctions> Check that Stateflow junctions do not have outgoing transitions jumping outside of the loop
Неоконечные соединения должны иметь ровно один безусловный переход, выходящий из них.ФАТАЛЬНЫЙCheck usage of Stateflow junctions> Check that non-terminating junctions have exactly one unconditional exiting transition
График не должна содержать историческое соединение.НеокончательныйCheck usage of Stateflow junctions> Check that the chart uses no history junctions
Соединения заголовков должны иметь два входящих и два исходящих перехода.НеокончательныйCheck usage of Stateflow junctions> Check that control flows do not have loops with unsupported header junctions
Оконечные соединения не должны возвращаться в состояние Stateflow.НеокончательныйCheck usage of Stateflow junctions> Check usage of terminating Stateflow junctions
Безусловный переход должен быть последним в порядке выполнения.ФАТАЛЬНЫЙCheck usage of Stateflow junctions> Check that unconditional transitions execute last in execution order
График не должен содержать неструктурированный поток управления.НеокончательныйCheck usage of Stateflow junctions> Check that control flows are structured

Состояния Stateflow

Ограничения по состояниям (Stateflow)FATAL/НефатальныйПроверка совместимости
Состояния не должны содержать циклов потока управления.ФАТАЛЬНЫЙCheck usage of Stateflow states> Check that control flows do not have cycles

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

  • := или =

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

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

  • &, && или &=

  • |, || или |=

  • << или >>

  • cast()

  • ^ или ^=

  • %% или <

  • <= или ==

  • ~= или !=

  • <> или >

  • >= или ~

НеокончательныйCheck usage of Stateflow states> Check that actions do not have unsupported operations
Массивы с несколькими размерностями не должны использовать индексацию.НеокончательныйCheck usage of Stateflow states> Check for indexing in arrays that are more than one dimension
Массивы должны использовать индекс типа данных int32.НеокончательныйCheck usage of Stateflow states> Check that all arrays use index of type 'int32'
Действие не должно иметь доступ к контекстно-зависимым константам.НеокончательныйCheck usage of Stateflow states> Check that no actions access context-sensitive constants
Действие не должно иметь доступ к пользовательским данным.НеокончательныйCheck usage of Stateflow states> Check that no actions access custom data
Состояния и подсостояния на графике должны иметь изменения по умолчанию.НеокончательныйCheck usage of Stateflow states> Check that states or substates have a default transition

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

  • + или +=

  • - или -=

  • * или *=

  • / или /=

  • & или &=

  • | или |=

  • ^ или ^=

  • %%

НеокончательныйCheck usage of Stateflow states> Check that actions do not have unsupported operations on enumeration type operands

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

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

    • acos, asin, atan

    • ceil, cosh, cosh

    • exp, fabs, floor

    • fmod, ldexp, log

    • log10, pow, sin

    • sinh, sqrt, tan, tanh

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

    • abs, max, min

  • Целый тип для labs функция.

НеокончательныйCheck usage of Stateflow states> Check that no actions contain a function whose argument is of an invalid data type
Действие не должно содержать двоичный оператор с операндами смешанного типа данных.НеокончательныйCheck usage of Stateflow states> Check that no actions contain a binary operator whose operands are of mixed data type
Функции Stateflow не должны иметь более 2 аргументов.НеокончательныйCheck usage of Stateflow states> Check that no Stateflow functions have more than 2 arguments
Состояния Stateflow не должны иметь рекурсивных вызовов функций отправки.НеокончательныйCheck usage of Stateflow states> Check usage of States with recursive send function calls
Function Inline Option свойств состояний не должны быть Auto или Function.НеокончательныйCheck usage of Stateflow states> Check usage of Stateflow state InlineOption
Свойства состояний Create output for monitoring не должны быть выбраны (установлено на on).НеокончательныйCheck usage of Stateflow states> Check that all states unselect ‘Create output for monitoring’ option
Действия не должны обращаться ко времени.НеокончательныйCheck usage of Stateflow states> Check that no actions access time (t)
Состояния не должны содержать неструктурированный поток управления.НеокончательныйCheck usage of Stateflow states> Check that control flows are structured
Поток управления не должен иметь более 1 перехода по умолчанию.НеокончательныйCheck usage of Stateflow states> Check that all control flows have unique default transitions
Пути из состояния должны быть одним из следующих: внутренний переход к подсостоянию или внешний переход к брату, прямому родительскому элементу или прямому подсостоянию.НеокончательныйCheck usage of Stateflow states> Check that all transition paths are either inner transitions to a substate, or outer transitions to siblings, direct parent, or direct substates
Действия не должны содержать XOR оператор с булевыми операндами, когда Casting modes параметра модели установлено в Standards.НеокончательныйCheck usage of Stateflow states> Check that no actions contain an xor operator with boolean operands
Графики не должны иметь графических вызовов функций с неназначенными выходами.НеокончательныйCheck usage of Stateflow states> Check unassigned graphical function outputs

Переходы Stateflow

Ограничения переходов (Stateflow)FATAL/НефатальныйПроверка совместимости

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

  • := или =

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

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

  • &, && или &=

  • |, || или |=

  • << или >>

  • cast()

  • ^ или ^=

  • %% или <

  • <= или ==

  • ~= или !=

  • <> или >

  • >= или ~

НеокончательныйCheck usage of Stateflow transitions> Check that actions do not have unsupported operations
Массивы с несколькими размерностями не должны использовать индексацию.НеокончательныйCheck usage of Stateflow transitions> Check for indexing in arrays that are more than one dimension
Массивы должны использовать индекс типа данных int32.НеокончательныйCheck usage of Stateflow transitions> Check that all arrays use index of type 'int32'
Условие перехода должно иметь логический тип данных.НеокончательныйCheck usage of Stateflow transitions> Check that all transition conditions are of boolean data type
Действие не должно иметь доступ к контекстно-зависимым константам.НеокончательныйCheck usage of Stateflow transitions> Check that no actions access context-sensitive constants
Действие не должно иметь доступ к пользовательским данным.НеокончательныйCheck usage of Stateflow transitions> Check that no actions access custom data

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

  • + или +=

  • - или -=

  • * или *=

  • / или /=

  • & или &=

  • | или |=

  • ^ или ^=

  • %%

  • ~

  • || или &&

  • > или <

  • <= или >=

  • ~= или <>

  • >> или <<

НеокончательныйCheck usage of Stateflow transitions> Check that conditions and actions do not have unsupported operations on enumeration type operands
Переход не должен иметь триггера события.НеокончательныйCheck usage of Stateflow transitions> Check that no transitions have event triggers
Переход не должен иметь переходного действия.НеокончательныйCheck usage of Stateflow transitions> Check that transitions do not have transition actions

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

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

    • acos, asin, atan

    • ceil, cosh, cosh

    • exp, fabs, floor

    • fmod, ldexp, log

    • log10, pow, sin

    • sinh, sqrt, tan, tanh

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

    • abs, max, min

  • Целый тип для labs функция.

НеокончательныйCheck usage of Stateflow transitions> Check that no actions contain a function whose argument is of an invalid data type
Переходы Stateflow не должны повторно использовать переменные индукции вне цикла.НеокончательныйCheck usage of Stateflow transitions> Check that Stateflow transitions do not reuse induction variables outside of a loop
Циклы Stateflow не должны иметь неподдерживаемого шага в переходах.НеокончательныйCheck usage of Stateflow transitions> Check that transitions do not have an unsupported loop step
Циклы Stateflow не должны иметь неподдерживаемого тела в переходах.НеокончательныйCheck usage of Stateflow transitions> Check that transitions do not have an unsupported loop body
Циклы Stateflow не должны иметь неподдерживаемого условия в переходах.НеокончательныйCheck usage of Stateflow transitions> Check that transitions do not have an unsupported loop condition
Циклы Stateflow должны иметь допустимую индукционную переменную в переходном режиме, которая задает условие цикла.НеокончательныйCheck usage of Stateflow transitions> Check for valid induction variable in transition that defines loop condition
Циклы Stateflow не должны иметь неподдерживаемых действий инициализации в переходах.НеокончательныйCheck usage of Stateflow transitions> Check that transitions do not have unsupported loop induction variable initialization
Действие не должно содержать двоичный оператор с операндами смешанного типа данных.НеокончательныйCheck usage of Stateflow transitions> Check that no actions contain a binary operator whose operands are of mixed data type
Переход не должен иметь функцию с более чем 2 аргументами.НеокончательныйCheck usage of Stateflow transitions> Check that no transitions have a function with more than 2 arguments
Действия не должны обращаться ко времени.НеокончательныйCheck usage of Stateflow transitions> Check that no actions access time (t)
Действия не должны содержать XOR оператор с булевыми операндами, когда Casting modes параметра модели установлено в Standards.НеокончательныйCheck usage of Stateflow transitions> Check that no actions contain an xor operator with boolean operands
Графики не должны иметь графических вызовов функций с неназначенными выходами.НеокончательныйCheck usage of Stateflow transitions> Check unassigned graphical function outputs
Графики не должны содержать переходы, которые сконфигурированы как варианты переходов.НеокончательныйCheck usage of Stateflow transitions> Check that Stateflow transitions are not configured as variant transitions

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

Ограничение таблицы истинностиFATAL/НефатальныйПроверка совместимости
Потоки управления не должны иметь циклов.ФАТАЛЬНЫЙCheck usage of Stateflow truth tables> Check that control flows do not have cycles
Свойство таблицы истинности Function Inline Option (InlineOption) не должны быть Auto или Function.НеокончательныйCheck usage of Stateflow truth tables> Check usage of InlineOption setting
Таблица истинности не должна быть рекурсивной.НеокончательныйCheck usage of Stateflow truth tables> Check usage of recursive Stateflow function
Свойство Таблицы Language должно быть установлено в C.НеокончательныйCheck usage of Stateflow truth tables> Check usage of Stateflow truth table Language
Потоки управления должны быть структурированы.ФАТАЛЬНЫЙCheck usage of Stateflow truth tables> Check that control flows are structured
Состояния не должны задавать таблицы истинности с различными фактическими и ожидаемыми типами данных аргументов.НеокончательныйCheck usage of Stateflow states> Check data type of truth table arguments
Состояния не должны задавать таблицы истинности с различными фактическими и ожидаемыми размерами аргументов.НеокончательныйCheck usage of Stateflow states> Check dimensions of truth table arguments
Переходы не должны задавать таблицы истинности с различными фактическими и ожидаемыми типами данных аргументов.НеокончательныйCheck usage of Stateflow transitions> Check data type of truth table arguments
Переходы не должны задавать таблицы истинности с различными фактическими и ожидаемыми размерами аргументов.НеокончательныйCheck usage of Stateflow transitions> Check dimensions of truth table arguments

Похожие темы