Маршрутизация сигнала

hisl_0013: Использование блоков хранилища данных

ID: Заголовокhisl_0013: Использование блоков хранилища данных
Описание

Поддерживать детерминированное поведение через различные шаги расчета или модели при использовании блоков хранилища данных, включая Память Хранилища данных, Чтение Хранилища данных и Запись Хранилища данных:

A

В диалоговом окне Configuration Parameters на Diagnostics> панель Data Validity, под Data Store Memory block, установила следующие параметры на error:

  • Detect read before write

  • Detect write after read

  • Detect write after write

  • Multitask data store

  • Duplicate data store names

B

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

C

Избегайте использования хранилищ данных, чтобы записать и считать данные на различных уровнях, потому что различные уровни могут привести к противоречивым обменам данными. Чтобы обеспечить детерминированные данные, связывающиеся в многоскоростных системах, используйте блоки Перехода Уровня перед блоками Записи Хранилища данных, или после блоков Чтения Хранилища данных.

Примечания

Алгоритм сортировки в Simulink® не учитывает данные, связывающиеся между моделями и атомарными подсистемами.

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

ОбъяснениеA, B, C Поддержите сопоставимые значения данных через различные шаги расчета или модели.
Проверки Model Advisor
  • By Task> Modeling Standards for DO-178C/DO-331> High-Integrity Systems> Configuration> Check safety-related diagnostic settings for data store memory

  • By Task> Modeling Standards for IEC 61508 > High-Integrity Systems> Configuration> Check safety-related diagnostic settings for data store memory

  • By Task> Modeling Standards for IEC 62304> High-Integrity Systems> Configuration> Configuration> Check safety-related diagnostic settings for data store memory

  • By Task> Modeling Standards for ISO 26262> High-Integrity Systems> Configuration> Configuration> Check safety-related diagnostic settings for data store memory

  • By Task> Modeling Standards for EN 50128> High-Integrity Systems> Configuration> Configuration> Check safety-related diagnostic settings for data store memory

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

Ссылки
  • 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 (1d) 'Использование защитных методов реализации'

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

  • DO-331, Раздел MB.6.3.3.b 'Программная архитектура сопоставим’

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

Следующие примеры используют блоки Перехода Уровня, чтобы обеспечить детерминированные данные, связывающиеся в многоскоростных системах

  • Для быстрых-к-медленному переходов:

    Установите уровень медленного шага расчета или на блоке Rate Transition или на блоке Data Store Write.

    Не помещайте блок Rate Transition после блока Data Store Read.

  • Для переходов быстрого не спешения:

    Если блок Rate Transition после блока Data Store Read, задайте низкую скорость на блоке Data Store Read.

    Если блок Rate Transition перед блоком Data Store Write, используйте наследованный шаг расчета для блоков.

hisl_0015: Использование блоков Слияния

ID: Заголовокhisl_0015: Использование блоков Слияния
Описание

Поддерживать однозначное поведение от блоков Слияния,

A

Используйте блоки Слияния только с условно выполняемыми подсистемами.

B

Задайте выполнение условно выполняемых подсистем, таким образом, что только одна подсистема выполняется во время временного шага.

C

Очистите параметры блоков Слияния Allow unequal port widths.

DУстановите параметры блоков Выходного порта Output when disabled на held для каждой условно выполняемой объединяемой подсистемы.
Примечания

Simulink комбинирует входные параметры блока Merge в один вывод. Выходное значение в любое время равно последний раз вычисленному выводу блоков, которые управляют блоком Merge. Поэтому блок Merge вывод зависит от порядка выполнения входных вычислений.

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

Объедините параметры блоков, Allow unequal port widths только доступен, когда параметр конфигурации Underspecified initialization detection установлен в Classic.

Предпосылки

hisl_0303: блок Configuration Parameters> Diagnostics> Merge

hisl_0304: Параметры конфигурации> Диагностика> Образцовая инициализация

ОбъяснениеA, B, C, DИзбегайте однозначного поведения.
Проверки Model Advisor
  • By Task> Modeling Standards for DO-178C/DO-331> High-Integrity Systems> Simulink> Check usage of Merge blocks

  • By Task> Modeling Standards for IEC 61508> High-Integrity Systems> Simulink> Check usage of Merge blocks

  • By Task> Modeling Standards for IEC 62304> High-Integrity Systems> Simulink> Check usage of Merge blocks

  • By Task> Modeling Standards for EN 50128> High-Integrity Systems> Simulink> Check usage of Merge blocks

  • By Task> Modeling Standards for ISO 26262> High-Integrity Systems> Simulink> Check usage of Merge blocks

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

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

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

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

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

  • DO-331, Раздел MB.6.3.3.b 'Программная архитектура сопоставим’

Смотрите также

Объедините блок в документации Simulink

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

Рекомендуемый

Не рекомендуемый

hisl_0021: Сопоставимый векторный метод индексирования

ID: Заголовокhisl_0021: Сопоставимый векторный метод индексирования
ОписаниеВ модели используйте:
A

Сопоставимый векторный метод индексирования.

Поддержки конфигурируемая индексация:

Поддержка только индексация на основе одна:

Поддержки только основанная на нуле индексация:

  • Диаграмма Stateflow с языком действия C

  • Функция Таблицы истинности с языком действия C

ОбъяснениеAСнизьте риск представления ошибок из-за противоречивой индексации.
Проверки Model Advisor
  • By Task> Modeling Standards for DO-178C/DO-331> High-Integrity Systems> Simulink> Check for inconsistent vector indexing methods

  • By Task> Modeling Standards for IEC 61508> High-Integrity Systems> Simulink> Check for inconsistent vector indexing methods

  • By Task> Modeling Standards for IEC 62304> High-Integrity Systems> Simulink> Check for inconsistent vector indexing methods

  • By Task> Modeling Standards for ISO 26262 > High-Integrity Systems> Simulink> Check for inconsistent vector indexing methods

  • By Task> Modeling Standards for EN 50128> High-Integrity Systems> Simulink> Check for inconsistent vector indexing methods

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

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

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

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

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

  • DO-331, Раздел MB.6.3.2.b 'Низкоуровневые требования точен и сопоставим'

Смотрите такжеcgsl_0101: основанная на нуле индексация
В последний раз измененныйR2019a

hisl_0022: выбор Типа данных для индексных сигналов

ID: Заголовокhisl_0022: выбор Типа данных для индексных сигналов
ОписаниеДля индексных сигналов используйте:
AЦелое число или перечисленный тип данных
BТип данных, который покрывает область значений индексируемых значений.

Блоки, которые используют индекс сигнала, включают:

  • “()” Присвоение

  • Прямая интерполяционная таблица (n-D)

  • Индексный вектор

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

  • MATLAB® Function

  • Многопортовый переключатель

  • Селектор

  • График Stateflow®

ОбъяснениеAПредотвратите неожиданные результаты, которые могут произойти при округлении операций для типов данных с плавающей точкой.
BВключите доступ к данным в векторе.
Проверки Model Advisor
  • By Task> Modeling Standards for DO-178C/DO-331> High-Integrity Systems> Simulink> Check data types for blocks with index signals

  • By Task> Modeling Standards for IEC 61508> High-Integrity Systems> Simulink> Check data types for blocks with index signals

  • By Task> Modeling Standards for IEC 62304> High-Integrity Systems> Simulink> Check data types for blocks with index signals

  • By Task> Modeling Standards for EN 50128> High-Integrity Systems> Simulink> Check data types for blocks with index signals

  • By Task> Modeling Standards for ISO 26262> High-Integrity Systems> Simulink> Check data types for blocks with index signals

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

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

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

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

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

  • DO-331, раздел MB.6.3.4.f 'Точность и непротиворечивость исходного кода'

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

hisl_0023: Верификация модели и вариантов подсистемы

ID: Заголовокhisl_0023: Верификация модели и вариантов подсистемы
ОписаниеПри проверке, что модель сопоставима со сгенерированным кодом, сделайте следующее:
AДля каждого блока Model Variant проверьте, что параметры блоков Generate preprocessor conditionals очищены.
BДля каждого Различного блока Subsystem проверьте, что параметры блоков Analyze all choices during update diagram and generate preprocessor conditionals очищены.
CПроверьте все комбинации образцовых вариантов, которые могут быть активными в сгенерированном коде.
ОбъяснениеA, B Упростите тестирование непротиворечивости между типовым кодексом и сгенерированным кодом путем ограничения кодовой базы одним вариантом.
CУбедитесь, что тестирование непротиворечивости между типовым кодексом и сгенерированным кодом завершено для всех вариантов.
Проверки Model Advisor
  • By Task> Modeling Standards for DO-178C/DO-331> High-Integrity Systems> Simulink> Check for variant blocks with 'Generate preprocessor conditionals' active

  • By Task> Modeling Standards for IEC 61508> High-Integrity Systems> Simulink> Check for variant blocks with 'Generate preprocessor conditionals' active

  • By Task> Modeling Standards for IEC 62304> High-Integrity Systems> Simulink> Check for variant blocks with 'Generate preprocessor conditionals' active

  • By Task> Modeling Standards for EN 50128> High-Integrity Systems> Simulink> Check for variant blocks with 'Generate preprocessor conditionals' active

  • By Task> Modeling Standards for ISO 26262> High-Integrity Systems> Simulink> Check for variant blocks with 'Generate preprocessor conditionals' active

Для получения дополнительной информации проверки смотрите, что Проверка на различные блоки с 'Генерирует условные выражения препроцессора', активные.

Ссылки
  • DO-331, Раздел MB.6.3.2.b 'Низкоуровневые требования точен и сопоставим'

  • IEC 61508–3, Таблица A.4 (7) 'Использование доверяемых / проверенные программные модули и компоненты

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

hisl_0034: Использование блоков Маршрутизации Сигнала

ID: Заголовокhisl_0034: Использование блоков Маршрутизации Сигнала
Описание

Поддерживать робастность операций при использовании блоков switch:

A

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

Примечание

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

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

ОбъяснениеA

Улучшите образцовую робастность.

Проверки Model Advisor
  • By Task> Modeling Standards for DO-178C/DO-331> High-Integrity Systems> Simulink> Check usage of Signal Routing blocks

  • By Task> Modeling Standards for IEC 61508> High-Integrity Systems> Simulink> Check usage of Signal Routing blocks

  • By Task> Modeling Standards for IEC 62304> High-Integrity Systems> Simulink> Check usage of Signal Routing blocks

  • By Task> Modeling Standards for EN 50128> High-Integrity Systems> Simulink> Check usage of Signal Routing blocks

  • By Task> Modeling Standards for ISO 26262> High-Integrity Systems> Simulink> Check usage of Signal Routing blocks

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

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

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

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

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

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

  • MISRA C:2012, Dir 1.1

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