exponenta event banner

Архитектура диаграммы

hisf_0003: Использование побитовых операций

Идентификатор: Заголовокhisf_0003: Использование побитовых операций
Описание

При использовании побитовых операций в блоках Stateflow ®

AИзбегайте подписанных целочисленных типов данных в качестве операндов для побитовых операций.
Примечания

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

ОбъяснениеAПродвижение однозначного стиля моделирования.
Проверки помощника по моделиПроверка использования побитовых операций в диаграммах Stateflow (Simulink Check)
Ссылки
  • IEC 61508-3, Таблица A.3 (3) 'Поднабор языка "
    IEC 61508-3, Таблица A.3 (2) «Язык программирования со строгой типизацией »

  • МЭК 62304, 5.5.3 - Критерии приемки установки программного обеспечения

  • ISO 26262-6, Таблица 1 (1b) «Использование языковых поднаборов»
    ISO 26262-6, таблица 1 (1с) «Применение строгой типизации»

  • EN 50128, Таблица A.4 (11) «Поднабор языка»
    EN 50128, таблица A.3 (1) «Оборонительное программирование»

  • DO-331, раздел MB.6.3.3.d «Проверка архитектуры программного обеспечения»
    DO-331, Раздел MB.6.3.2.g «Алгоритмы точны»

  • MISRA C:2012, правило 10.1

См. такжеhisl_0019: Использование побитовых операций
Последнее изменениеR2016a

hisf_0004: Защита от рекурсивных вызовов функций для улучшения соответствия кода

Идентификатор: Заголовокhisf_0004: Защита от рекурсивных вызовов функций для улучшения соответствия кода
ОписаниеЧтобы улучшить соответствие генерируемого кода, не вызывайте функции рекурсивно. Сюда входит любое сочетание графических функций, функций таблицы истинности, функций MATLAB ® или Simulink ®.
Предпосылки
ПримечанияРекурсия существует, когда функция вызывает себя прямо или косвенно через другой вызов функции.
ОбъяснениеПродвижение поведения вызова ограниченной функции.
Проверки помощника по моделиПроверка использования рекурсий (Simulink Check)
Ссылки
  • МЭК 61508-3, Таблица B.1 (6) «Ограниченное использование рекурсии»

  • МЭК 62304, 5.5.3 - Критерии приемки установки программного обеспечения

  • ISO 26262-6, таблица 6 (1j) «Без рекурсий»

  • EN 50128, Таблица A.12 (6) «Ограниченное использование рекурсии»

  • DO-331, Раздел MB.6.3.2.g «Алгоритмы точны»
    DO-331, раздел MB.6.3.3.d «Проверка архитектуры программного обеспечения»

  • MISRA C:2012, правило 17.2

Последнее изменениеR2021a
Примеры

В Stateflow есть несколько шаблонов, которые могут привести к рекурсии.

Рекурсивные вызовы функций

При вводе состояния по умолчанию A событие Evn транслируется во входном действии А. Evn приводит к рекурсивному вызову алгоритма интерпретации. Поскольку А активен, проверяется исходящий переход А. С момента текущего события Evn соответствует событию перехода (и из-за отсутствия условия) выполняется действие условия, вещание Evn снова. Это приводит к новому вызову алгоритма интерпретации, который повторяет одну и ту же последовательность шагов до переполнения стека.

Рекурсивные вызовы функций

hisf_0007: Использование условий соединения (сохранение взаимного исключения)

Идентификатор: Заголовок

hisf_0007: Использование условий соединения (сохранение взаимного исключения)

Описание

Для повышения ясности и предотвращения создания недостижимого кода:

AСделать условия соединения взаимоисключающими.
Примечания

Это руководство можно использовать для ведения подмножества языка моделирования в проектах с высокой целостностью.

ОбъяснениеAПовышение четкости и предотвращение генерации недостижимого кода.
Ссылки
  • DO-331, раздел MB.6.3.2.b «Требования низкого уровня являются точными и последовательными»
    DO-331, Раздел MB.6.3.2.d «Проверяются требования низкого уровня»

  • ISO 26262-6, таблица 1 (1e) - Использование надежных принципов проектирования

Проверки помощника по моделиСоблюдение этого руководства по моделированию невозможно проверить с помощью проверки Model Advisor.
Последнее изменениеR2012b
Пример

hisf_0013: Использование переходных путей (пересекающих параллельные границы состояний)

Идентификатор: Заголовок

hisf_0013: Использование переходных путей (пересекающих параллельные границы состояний)

Описание

Чтобы избежать создания схем, которые трудно понять,

AИзбегайте создания переходов из одного параллельного состояния в другое.
Примечания

Это руководство можно использовать для ведения подмножества языка моделирования в проектах с высокой целостностью.

ОбъяснениеAУлучшите удобочитаемость модели.
Проверки помощника по модели

Проверьте диаграммы потока состояний на наличие путей перехода, пересекающих параллельные границы состояний (Simulink Check)

Ссылки
  • IEC 61508-3, Таблица A.3 (3) 'Поднабор языка "

  • МЭК 62304, 5.5.3 - Критерии приемки установки программного обеспечения

  • ISO 26262-6, Таблица 1 (1b) «Использование языковых поднаборов»

  • EN 50128, Таблица A.4 (11) «Поднабор языка»

  • DO-331, раздел MB.6.3.2.b «Требования низкого уровня являются точными и последовательными»

Последнее изменениеR2017b
Пример

В следующем примере, когда Out_A равно 4, оба родительских состояния (A_Parent и B_Parent) повторно вводятся. При повторном вводе родительских состояний сбрасываются значения Out_A и Out_B до нуля.

hisf_0014: Использование переходных путей (проходящих через состояния)

Идентификатор: Заголовок

hisf_0014: Использование переходных путей (проходящих через состояния)

Описание

Чтобы избежать создания схем, которые являются запутанными и включают пути перехода без пользы,

AИзбегайте переходов, которые переходят в состояние и выходят из него, не заканчиваясь на подсостоянии.
Примечания

Это руководство можно использовать для ведения подмножества языка моделирования в проектах с высокой целостностью.

ОбъяснениеAУлучшите удобочитаемость модели.
Проверки помощника по модели

Проверка неподходящего использования путей перехода (Simulink Check)

Ссылки
  • IEC 61508-3, Таблица A.3 (3) 'Поднабор языка "

  • МЭК 62304, 5.5.3 - Критерии приемки установки программного обеспечения

  • ISO 26262-6, Таблица 1 (1b) «Использование языковых поднаборов»

  • EN 50128, Таблица A.4 (11) «Поднабор языка»

  • DDO-331, раздел MB.6.3.2.b «Требования низкого уровня являются точными и последовательными»

Последнее изменениеR2018b
Примеры

hisf_0015: Сильная типизация данных (заливка переменных и параметров в выражения)

Идентификатор: Заголовок

hisf_0015: Сильная типизация данных (заливка переменных и параметров в выражения)

Описание

Для упрощения надежной типизации данных,

A

Явно введите приведенные переменные и параметры различных типов данных в:

  • Условия перехода

  • Переходные действия

  • Действия состояния

Примечания

Программа Stateflow автоматически преобразует переменные различного типа в один и тот же тип данных. Это руководство помогает уточнить типы данных промежуточных переменных.

ОбъяснениеAПрименение строгой типизации данных.
Проверки помощника по модели

Проверка строгой типизации данных в диаграммах Stateflow (Simulink Check)

Ссылки
  • IEC 61508-3, таблица A.3 (2) «Сильно типизированный язык программирования»

  • МЭК 62304, 5.5.3 - Критерии приемки установки программного обеспечения

  • ISO 26262-6, таблица 1 (1с) «Применение строгой типизации»

  • EN 50128, Таблица A.4 (8) «Сильно типизированный язык программирования»

  • DO-331, Раздел MB.6.3.2.g «Алгоритмы точны»

  • MISRA C:2012, правило 10.1
    MISRA C:2012, правило 12.2

Последнее изменениеR2021a
Примеры

Рекомендуется

Не рекомендуется

hisf_0016: Имена портов Stateflow

Идентификатор: Заголовок

hisf_0016: Имена портов Stateflow

ОписаниеИмя входа или выхода Stateflow должно совпадать с именем соответствующего сигнала. Исключением из этого правила является то, что повторно используемые блоки Stateflow могут иметь различные имена портов.
ОбъяснениеПоддержка генерации отслеживаемого кода.
Проверки помощника по модели

Проверка именования портов в диаграммах Stateflow (Simulink Check)

Ссылки
  • DO-331, раздел MB.6.3.2.b «Требования низкого уровня являются точными и последовательными»

  • МЭК 61508-3, Таблица A.3 (3) «Поднабор языка»

  • МЭК 62304, 5.5.3 - Критерии приемки установки программного обеспечения

  • ISO 26262-6, Таблица 1 (1b) «Использование языковых поднаборов»

  • EN 50128, Таблица A.4 (11) «Поднабор языка»

Последнее изменение2018a

hisf_0017: Область объекта данных Stateflow

Идентификатор: Заголовок

hisf_0017: Область объекта данных Stateflow

ОписаниеОбъекты данных stateflow с локальной областью должны быть определены на уровне диаграммы или ниже.
ОбъяснениеПоддержка генерации отслеживаемого кода.
Проверки помощника по модели

Проверка области видимости объектов данных Stateflow (Simulink Check)

Ссылки
  • DO-331, раздел MB.6.3.2.b «Требования низкого уровня являются точными и последовательными»

  • МЭК 61508-3, Таблица A.3 (3) «Поднабор языка»

  • МЭК 62304, 5.5.3 - Критерии приемки установки программного обеспечения

  • ISO 26262-6, Таблица 1 (1b) «Использование языковых поднаборов»

  • EN 50128, Таблица A.4 (11) «Поднабор языка»

Последнее изменение2018a
Примеры

Рекомендуется

Не рекомендуется