exponenta event banner

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

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

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

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

  • Сигналы

  • Параметры

  • Блоки

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

Использовать:

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

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

Не следует:

  • Начните имя с цифры.

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

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

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

Примечания

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

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

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

  • int8 , uint8

  • int16, uint16

  • int32, uint32

  • inf, Inf

  • NaN, nan

  • eps

  • intmin, intmax

  • realmin, realmax

  • pi

  • infinity

  • Nil

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

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

  • Прослеживаемость кода от модели к модели

Проверки помощника по моделиПроверка имен объектов модели (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Определение уникальных идентификаторов для нескольких областей диаграммы.
ПримечанияГенератор кода разрешает конфликты между идентификаторами, так что символы в сгенерированном коде являются уникальными. Процесс называется манипулированием именами.
ОбъяснениеA, BУлучшение читаемости графической модели и сопоставления между идентификаторами в модели и сгенерированным кодом.
Проверка помощника по моделиПроверка диаграмм Stateflow для однозначно определенных объектов данных (Simulink Check)
Ссылки
  • DO-331, раздел MB.6.3.2.b «Требования низкого уровня являются точными и последовательными»

  • IEC 61508-3, таблица A.3 (2) «Сильно типизированный язык программирования»
    МЭК 61508-3, Таблица A.3 (3) - Поднабор языка
    МЭК 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) - «Поднабор языка»
    EN 50128, Таблица A.12 (1) «Стандарт кодирования»
    EN 50128, Таблица A.12 (2) «Руководство по стилю кодирования»

См. также Внешний вид кода (кодер Simulink)
Последнее изменение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: Глобальные переменные в графических функциях
Описание

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

ОбъяснениеУлучшение читаемости модели путем удаления неоднозначности в значениях глобальных переменных.
Проверки помощника по моделиПроверка глобальных переменных в графических функциях (Simulink Check)
Ссылки
  • МЭК 61508-3, Таблица A.3 (3) «Поднабор языка»
    МЭК 61508-3, Таблица A.4 (4) «Модульный подход»
    МЭК 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) «Поднабор языка»
    EN 50128, Таблица A.12 (1) «Стандарт кодирования»
    EN 50128, Таблица A.12 (2) «Руководство по стилю кодирования»

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

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

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

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

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

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