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

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

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

Поддерживать детерминированное поведение через различные шаги расчета или модели при использовании блоков хранилища данных, включая Data Store Memory, Data Store Read и Data Store Write:

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

Избегайте использования хранилищ данных, чтобы записать и считать данные на различных уровнях, потому что различные уровни могут привести к противоречивым обменам данными. Чтобы обеспечить детерминированные данные, связывающиеся в многоскоростных системах, используйте блоки Rate Transition перед блоками Data Store Write, или после блоков Data Store Read.

Примечания

Алгоритм сортировки в 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

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

Ссылки
  • 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, чтобы обеспечить детерминированные данные, связывающиеся в многоскоростных системах

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

    Установите уровень медленного шага расчета или на блоке 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: Использование блоков Слияния
Описание

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

A

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

B

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

C

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

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

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

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

Allow unequal port widths параметров блоков Merge только доступен, когда параметр конфигурации 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

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

Ссылки
  • 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 'Программная архитектура сопоставим’

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

Блок Merge в документации 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

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

Ссылки
  • 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

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

Ссылки
  • 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Для каждого блока Variant 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

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

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

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

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

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

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

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

Примечание

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

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

Объяснение

Улучшите робастность модели.

Проверки 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

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

Ссылки
  • 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