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

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

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

В диалоговом окне Параметров конфигурации, на Diagnostics> панель Data Validity, устанавливает эти параметры Data Store Memory на error:

  • Detect read before write

  • Detect write after read

  • Detect write after write

  • Multitask data store

  • Duplicate data store names

Примечания

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

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

В дополнение к диагностике можно более точно обнаружить нарушения доступа к памяти хранилища данных в модели с помощью Simulink® Design Verifier™. Для этого, на вкладке Design Verifier , выберите Settings. В диалоговом окне Configuration Parameters, на Design Verifier> панель Design Error Detection, выбирают Data store access violations. Для получения дополнительной информации смотрите, Обнаруживают Нарушения прав доступа Хранилища данных в Модели (Simulink Design Verifier). Лицензия Simulink Design Verifier требуется.

Объяснение

Поддержите сопоставимые значения данных через различные шаги расчета или модели.

Предотвратите непреднамеренное повреждение данных.

Проверки Model AdvisorПроверяйте связанные с безопасностью диагностические настройки на память хранилища данных (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 'Программная архитектура сопоставим’

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

Следующие примеры используют блоки 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Проверяйте использование блоков Слияния (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Проверяйте на противоречивые векторные методы индексирования (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Проверяйте типы данных на блоки с сигналами индекса (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Для каждого блока Variant Model очистите параметры блоков Generate preprocessor conditionals.
BДля каждого блока Variant Subsystem, набор Variant activation time к update diagram.
CПроверьте комбинации вариантов модели, которые могут быть активными в сгенерированном коде.
ОбъяснениеA, B Упростите тестирование непротиворечивости между типовым кодексом и сгенерированным кодом путем ограничения кодовой базы одним вариантом.
CПроверьте, что тестирование непротиворечивости между типовым кодексом и сгенерированным кодом завершено для вариантов.
Проверки Model AdvisorПроверяйте использование различных блоков (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Проверяйте использование блоков Маршрутизации Сигнала (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