Стиль моделирования

hisl_0032: Имена объектов модели

Идентификатор: Заголовокhisl_0032: Имена объектов модели
Описание

Для следующих имен объектов модели:

  • Сигналы

  • Параметры

  • Блоки

  • Именованный Stateflow® объекты (состояния, коробки, Simulink® Функции, графические функции, таблицы истинности)

Использование:

  • Эти символы: a-z, A-Z, 0-9и символ подчеркивания (_).

  • Строки длиной менее 32 символов.

Не следует:

  • Начните имя с числа.

  • Используйте символ подчеркивания в начале или конце строки.

  • Используйте более одного последовательного подчеркивания.

  • Используйте зарезервированные идентификаторы.

Примечания

Зарезервированные имена:

  • MATLAB® ключевые слова

  • Зарезервированные ключевые слова для C, C++ и генерации кода. Полный список см. в Reserved Keywords (Simulink Coder).

  • int8 , uint8

  • int16, uint16

  • int32, uint32

  • inf, Inf

  • NaN, nan

  • eps

  • intmin, intmax

  • realmin, realmax

  • pi

  • infinity

  • Nil

Объяснение
  • Удобочитаемость

  • Ограничения компилятора

  • Модель к сгенерированной трассируемости

Проверки Model AdvisorПроверяйте имена объектов модели (Simulink Check)
См. также

Инструкции MAB:

Ссылки

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

  • ISO 26262-6, Таблица 1 (1h) «Использование именующих конвенций»

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

    DO-331, MB.6.3.3.e 'Программная архитектура соответствует стандартам "

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

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

  • Имя блока: My_Controller

  • Имя сигнала: a_b

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

  • Имя блока: My Controller

  • Имя сигнала: 12a__b

hisl_0061: Уникальные идентификаторы для ясности

Идентификатор: Заголовокhisl_0061: Уникальные идентификаторы для ясности
ОписаниеПри разработке модели:
AИспользуйте уникальные идентификаторы для сигналов Simulink.
BЗадайте уникальные идентификаторы для нескольких возможностей графика.
ПримечанияГенератор кода разрешает конфликты между идентификаторами, так что символы в сгенерированном коде являются уникальными. Процесс называется name mangling.
ОбъяснениеA, BУлучшите читаемость графической модели и сопоставление между идентификаторами в модели и сгенерированным кодом.
Проверка Model AdvisorПроверяйте диаграммы Stateflow на уникально определенные объекты данных (Simulink Check)
Ссылки
  • DO-331, раздел MB.6.3.2.b 'Низкоуровневые требования точны и непротиворечивы'

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

  • МЭК 62304, 5.5.3 - Критерии приемки Модуля ПО

  • ISO 26262-6, таблица 1 (1b) - «Использование языковых подмножеств»
    ISO 26262-6, таблица 1 (1с) «Обеспечение соблюдения строгих типоразмеров»
    ISO 26262-6, Таблица 1 (1d) - «Использование защитных методов реализации»
    ISO 26262-6, Таблица 1 (1e) - «Использование надежных принципов проекта»
    ISO 26262-6, Таблица 1 (1f) - 'Использование однозначного графического представления'
    ISO 26262-6, таблица 1 (1g) - «Использование стилевых руководств»
    ISO 26262-6, Таблица 1 (1h) - 'Использование именующих конвенций'

  • EN 50128, таблица A.3 (1) - Оборонительное программирование
    EN 50128, таблица A.4 (8) 'Сильно типизированный язык программирования'
    EN 50128, таблица A.4 (11) - 'Language Subset'
    EN 50128, таблица A.12 (1) «Стандарт кодирования»
    EN 50128, таблица A.12 (2) 'Руководство по стилю кодирования'

См. также Внешний вид кода (Simulink Coder)
Последнее изменениеR2017b
Примеры

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

В следующем примере два состояния Scope_1 и Scope_2 использовать локальный идентификатор IntCounter.

Идентификатор IntCounter задается для двух состояний, Scope_1 и Scope_2.

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

Чтобы прояснить модель, создайте уникальные идентификаторы. В следующем примере состояние Scope_1 использует локальный идентификатор IntCounter_Scope_1. Конечные Scope_2 использует локальный идентификатор IntCounter_Scope_2.

Идентификатор IntCounter_Scope_1 определяется для Scope_1 состояния. Идентификатор IntCounter_Scope_2 определяется для Scope_2.

hisl_0062: Глобальные переменные в графических функциях

Идентификатор: Заголовокhisl_0062: Глобальные переменные в графических функциях
Описание

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

ОбъяснениеУлучшите читаемость модели путем удаления неоднозначности в значениях глобальных переменных.
Проверки Model AdvisorПроверяйте глобальные переменные в графических функциях (Simulink Check)
Ссылки
  • IEC 61508-3, Таблица A.3 (3) 'Подмножество языка'
    IEC 61508-3, Таблица A.4 (4) «Модульное приближение»
    IEC 61508-3, A.4 (5) 'Проект и стандарты кодирования'

  • МЭК 62304, 5.5.3 - Критерии приемки Модуля ПО

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

  • EN 50128, таблица A.4 (11) 'Language Subset'
    EN 50128, таблица A.12 (1) «Стандарт кодирования»
    EN 50128, таблица A.12 (2) 'Руководство по стилю кодирования'

  • DO-331, Section MB.6.3.2.g 'Алгоритмы точны'

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

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

Рассмотрим графическую функцию graphicalFunction который изменяет глобальные данные G.

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

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