| Stateflow® Ограничение блока | FATAL/Нефатальный | Проверка совместимости |
|---|---|---|
Function packaging (RTWSystemCode) должно быть установлено в Inline или Nonreusable function. Подсистема должна быть в поддерживаемых строениях для Nonreusable function. Simulink® Code Inspector™ поддерживает блок Chart (Stateflow) для инспекции кода. | Неокончательный | Check usage of Stateflow blocks |
| Chart (Stateflow) ограничение | FATAL/Нефатальный | Проверка совместимости |
|---|---|---|
|
График не должен содержать ни одного из следующих объектов:
| ФАТАЛЬНЫЙ | 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 |
| Ограничение данных или событий | 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 |
Типы данных графика должны быть
| Неокончательный | 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 |
| Графическая функция ограничения | 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 |
|
Ограничение функции 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 |
| Ограничение соединения | 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) | FATAL/Нефатальный | Проверка совместимости |
|---|---|---|
| Состояния не должны содержать циклов потока управления. | ФАТАЛЬНЫЙ | Check usage of Stateflow states> Check that control flows do not have cycles |
|
Действие должно быть для одной из следующих операций:
| Неокончательный | 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 |
|
Математические функции в действиях должны иметь:
| Неокончательный | 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) | FATAL/Нефатальный | Проверка совместимости |
|---|---|---|
|
Действие должно быть для одной из следующих операций:
| Неокончательный | 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 |
|
Математические функции в действиях должны иметь:
| Неокончательный | 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 |
| Ограничение таблицы истинности | 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 |