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

Блоки Stateflow

Stateflow® Block ConstraintКРИТИЧЕСКИЙ / НефатальныйПроверка совместимости
Function packaging (RTWSystemCode) должен быть установлен в Inline или Nonreusable function. Подсистема должна быть в поддерживаемых настройках для Nonreusable function. Simulink® Code Inspector™ поддерживает блок Chart (Stateflow) для инспекции кода.НефатальныйCheck usage of Stateflow blocks

Диаграммы Stateflow

Chart (Stateflow) ограничениеКРИТИЧЕСКИЙ / НефатальныйПроверка совместимости

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

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

  • Атомарные поля

  • Функции 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 не должно быть выбрано.Нефатальный<Check usage of Stateflow charts> 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 и События

Данные или ограничение событияКРИТИЧЕСКИЙ / НефатальныйПроверка совместимости
Данные 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 данные 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
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
Событием scope должен быть 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

Ограничение графической функцииКРИТИЧЕСКИЙ / НефатальныйПроверка совместимости
Графическая функция не должна содержать циклы потока управления.КРИТИЧЕСКИЙ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

КРИТИЧЕСКИЙ / НефатальныйПроверка совместимости

Вызовы функции 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

Ограничение соединенияКРИТИЧЕСКИЙ / НефатальныйПроверка совместимости
Соединения не должны иметь исходящих переходов, переходящих за пределами цикла.Нефатальный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) ограничениеКРИТИЧЕСКИЙ / НефатальныйПроверка совместимости
Состояния не должны содержать циклы потока управления.КРИТИЧЕСКИЙ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

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

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

    • acosasinatan

    • ceilдубинкадубинка

    • exp, fabsпол

    • fmod, ldexpжурнал

    • log10, pow, sin

    • sinhsqrttantanh

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

    • absMax 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) ограничениеКРИТИЧЕСКИЙ / НефатальныйПроверка совместимости

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

  • := или =

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

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

  • &, && или &=

  • |, || или |=

  • << или >>

  • 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

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

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

    • acosasinatan

    • ceilдубинкадубинка

    • exp, fabsпол

    • fmod, ldexpжурнал

    • log10, pow, sin

    • sinhsqrttantanh

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

    • absMax 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

Ограничение таблицы истинностиКРИТИЧЕСКИЙ / НефатальныйПроверка совместимости
Потоки управления не должны иметь циклов.КРИТИЧЕСКИЙ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

Похожие темы