Логика и битовые операции

hisl_0016: Использование блоков, которые вычисляют операторы отношения

ID: Заголовокhisl_0016: Использование блоков, которые вычисляют операторы отношения
Описание

Чтобы поддержать робастность операций, при использовании блоков, которые вычисляют операторы отношения, включая Оператор отношения, Выдерживают сравнение С Постоянным, Выдерживают сравнение С Нулем, Обнаруживают Изменение, и Если блоки:

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

Из-за проблем точности с плавающей точкой, не тестируйте выражения с плавающей точкой на равенство (==) или неравенство (~=).

Когда модель содержит блок, вычисляя оператор отношения с == или операторами ~=, входные параметры к блоку не должны быть единственными, дважды, или никакой пользовательский класс памяти, который является типом с плавающей точкой. Измените тип данных входных сигналов или переделайте модель, чтобы устранить использование == или операторов ~= в блоках, которые вычисляют операторы отношения.

ОбъяснениеAУлучшите образцовую робастность.
Образцовые проверки советника
  • Задачей> Моделирование Стандартов для DO-178C/DO-331> Системы Высокой Целостности> Simulink> Проверка на блоки Оператора отношения, которые приравнивают типы с плавающей точкой

  • Задачей> Моделирование Стандартов для IEC 61508> Системы Высокой Целостности> Simulink> Проверка на блоки Оператора отношения, которые приравнивают типы с плавающей точкой

  • Задачей> Моделирование Стандартов для IEC 62304> Системы Высокой Целостности> Simulink> Проверка на блоки Оператора отношения, которые приравнивают типы с плавающей точкой

  • Задачей> Моделирование Стандартов для ISO 26262> Системы Высокой Целостности> Simulink> Проверка на блоки Оператора отношения, которые приравнивают типы с плавающей точкой

  • Задачей> Моделирование Стандартов для EN 50128> Системы Высокой Целостности> Simulink> Проверка на блоки Оператора отношения, которые приравнивают типы с плавающей точкой

Для получения дополнительной информации проверки смотрите Проверку на блоки Оператора отношения, которые приравнивают типы с плавающей точкой.

Ссылки
  • IEC 61508-3, Таблица A.3 (2) 'Язык программирования со строгим контролем типов’
    IEC 61508-3, Таблица A.3 (3) 'Языковое подмножество'
    IEC 61508-3, Таблица A.4 (3) 'Безопасное программирование'

  • IEC 62304, 5.5.3 - критерии допустимости Программного блока

  • ISO 26262-6, Таблица 1 (1b) 'Использование языковых подмножеств'
    ISO 26262-6, Таблица 1 (1c) 'Осуществление строгого контроля типов'

  • EN 50128, таблица A.4 (11) 'языковое подмножество'
    EN 50128, таблица A.4 (8) 'язык программирования со строгим контролем типов'
    EN 50128, таблица A.3 (1) 'безопасное программирование'

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

  • MISRA C:2012, Dir 1.1

Смотрите такжеhisl_0017: Использование блоков, которые вычисляют операторы отношения (2)
В последний раз измененныйR2018a
Примеры

Положительный Шаблон: Чтобы протестировать, равны ли две переменные с плавающей точкой или выражения, сравните различие этих двух переменных против порога, который учитывает относительную точность с плавающей точкой (eps) и значение чисел.

Следующий шаблон показывает, как протестировать два с двойной точностью входные сигналы, In1 и In2, для равенства.

hisl_0017: Использование блоков, которые вычисляют операторы отношения (2)

ID: Заголовокhisl_0017: Использование блоков, которые вычисляют операторы отношения (2)
Описание

Чтобы поддержать однозначное поведение в сгенерированном коде, при использовании блоков, которые вычисляют операторы отношения, включая Оператор отношения, Выдерживают сравнение С Постоянным, Выдерживают сравнение с Нулем и Обнаруживают Изменение

AУстановите блочный параметр типа Выходных данных на Boolean.
BДля блоков Оператора отношения гарантируйте, что все входные сигналы имеют совпадающий тип данных.
ОбъяснениеA, B Поддержите генерацию кода, который производит однозначное поведение.
Образцовые проверки советника
  • Задачей> Моделирование Стандартов для DO-178C/DO-331> Системы Высокой Целостности> Simulink> использование Проверки блоков Оператора отношения

  • Задачей> Моделирование Стандартов для IEC 61508> Системы Высокой Целостности> Simulink> использование Проверки блоков Оператора отношения

  • Задачей> Моделирование Стандартов для IEC 62304> Системы Высокой Целостности> Simulink> использование Проверки блоков Оператора отношения

  • Задачей> Моделирование Стандартов для ISO 26262> Системы Высокой Целостности> Simulink> использование Проверки блоков Оператора отношения

  • Задачей> Моделирование Стандартов для EN 50128> Системы Высокой Целостности> Simulink> использование Проверки блоков Оператора отношения

Для получения дополнительной информации проверки смотрите использование Проверки блоков Оператора отношения.

Ссылки
  • IEC 61508-3, Таблица A.3 (2) 'Язык программирования со строгим контролем типов’
    IEC 61508-3, Таблица A.3 (3) 'Языковое подмножество'
    IEC 61508-3, Таблица A.4 (3) 'Безопасное программирование'

  • IEC 62304, 5.5.3 - критерии допустимости Программного блока

  • ISO 26262-6, Таблица 1 (1b) 'Использование языковых подмножеств'
    ISO 26262-6, Таблица 1 (1c) 'Осуществление строгого контроля типов'

  • EN 50128, таблица A.4 (11) 'языковое подмножество'
    EN 50128, таблица A.4 (8) 'язык программирования со строгим контролем типов'
    EN 50128, таблица A.3 (1) 'безопасное программирование'

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

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

Смотрите такжеhisl_0016: Использование блоков, которые вычисляют операторы отношения
В последний раз измененныйR2018a

hisl_0018: Использование блока Logical Operator

ID: Заголовокhisl_0018: Использование блока Logical Operator
Описание

Поддерживать однозначное поведение сгенерированного кода, при использовании блока Logical Operator,

A

Установите блочный параметр типа Выходных данных на Boolean.

B

Гарантируйте, что все входные сигналы имеют тип Boolean.

Предпосылки

hisl_0045: Параметры конфигурации> Математика и Типы данных> логика Реализации сигнализируют как булевы данные (по сравнению с 'double'

ОбъяснениеA, B Избегайте неоднозначного поведения сгенерированного кода.
Образцовые проверки советника
  • Задачей> Моделирование Стандартов для DO-178C/DO-331> Системы Высокой Целостности> Simulink> использование Проверки блоков Логического оператора

  • Задачей> Моделирование Стандартов для IEC 61508> Системы Высокой Целостности> Simulink> использование Проверки блоков Логического оператора

  • Задачей> Моделирование Стандартов для IEC 62304> Системы Высокой Целостности> Simulink> использование Проверки блоков Логического оператора

  • Задачей> Моделирование Стандартов для ISO 26262> Системы Высокой Целостности> Simulink> использование Проверки блоков Логического оператора

  • Задачей> Моделирование Стандартов для EN 50128> Системы Высокой Целостности> Simulink> использование Проверки блоков Логического оператора

Для получения дополнительной информации проверки смотрите использование Проверки блоков Логического оператора.

Ссылки
  • DO 331, Раздел MB.6.3.1.e — Требования высокого уровня соответствуют стандартам
    DO 331, Раздел MB.6.3.2.e — Низкоуровневые требования соответствуют стандартам
    DO 331, Раздел MB.6.3.1.g 'Алгоритмы точен'
    DO 331, Раздел MB.6.3.2.g 'Алгоритмы точен'
    DO 331, Раздел MB.6.3.4.e — Исходный код прослеживаем к низкоуровневым требованиям.
    DO 331, Раздел MB.6.3.3.b — Программная архитектура сопоставима.

  • IEC 61508-3, Таблица A.3 (2) 'Язык программирования со строгим контролем типов’
    IEC 61508-3, Таблица A.3 (3) 'Языковое подмножество'
    IEC 61508-3, Таблица A.4 (3) 'Безопасное программирование'

  • IEC 62304, 5.5.3 - критерии допустимости Программного блока

  • ISO 26262-6, Таблица 1 (1b) 'Использование языковых подмножеств'
    ISO 26262-6, Таблица 1 (1c) 'Осуществление строгого контроля типов'

  • EN 50128, таблица A.4 (11) 'языковое подмножество'
    EN 50128, таблица A.4 (8) 'язык программирования со строгим контролем типов'
    EN 50128, таблица A.3 (1) 'безопасное программирование'

  • MISRA C:2012, директива 1.1

В последний раз измененныйR2017b

hisl_0019: Использование блока Bitwise Operator

ID: Заголовокhisl_0019: Использование блока Bitwise Operator
Описание

Поддерживать однозначное поведение, при использовании блока Bitwise Operator,

A

Избегайте типов данных целого числа со знаком, как введено к блоку.

Примечания

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

ОбъяснениеAПоддержите однозначное поведение сгенерированного кода.
Образцовые проверки советника
  • Задачей> Моделирование Стандартов для DO-178C/DO-331> Системы Высокой Целостности> Simulink> использование Проверки блока Bitwise Operator

  • Задачей> Моделирование Стандартов для IEC 61508> Системы Высокой Целостности> Simulink> использование Проверки блока Bitwise Operator

  • Задачей> Моделирование Стандартов для IEC 62304> Системы Высокой Целостности> Simulink> использование Проверки блока Bitwise Operator

  • Задачей> Моделирование Стандартов для EN 50128> Системы Высокой Целостности> Simulink> использование Проверки блока Bitwise Operator

  • Задачей> Моделирование Стандартов для ISO 26262> Системы Высокой Целостности> Simulink> использование Проверки блока Bitwise Operator

Для получения дополнительной информации проверки смотрите использование Проверки блока Bitwise Operator.

Ссылки
  • DO 331, Раздел MB.6.3.1.g 'Алгоритмы точен'
    DO 331, Раздел MB.6.3.2.g 'Алгоритмы точен'

  • IEC 61508-3, Таблица A.3 (3) 'Языковое подмножество'
    IEC 61508-3, Таблица A.3 (2) 'Язык программирования со строгим контролем типов’

  • IEC 62304, 5.5.3 - критерии допустимости Программного блока

  • ISO 26262-6, Таблица 1 (1b) 'Использование языковых подмножеств'
    ISO 26262-6, Таблица 1 (1c) 'Осуществление строгого контроля типов'
    ISO 26262-6, Таблица 1 (1d) 'Использование защитных методов реализации'

  • EN 50128, таблица A.4 (11) 'языковое подмножество'
    EN 50128, таблица A.3 (1) 'безопасное программирование'
    EN 50128, таблица A.4 (8) 'язык программирования со строгим контролем типов'

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

Смотрите такжеhisf_0003: Использование битовых операций
В последний раз измененныйR2018b
Была ли эта тема полезной?