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

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

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

В диалоговом окне Configuration Parameters на панели 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. В диалоговом окне Параметры конфигурации на панели 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) «Оборонительное программирование»

  • МЭК 62304, 5.5.3 - Критерии приемки Модуля ПО

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

  • EN 50128, таблица A.4 (11) 'Language Subset'
    EN 50128, таблица A.3 (1) 'Defensive Programming'

  • 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: Использование блоков слияния

Идентификатор: Заголовокhisl_0015: Использование блоков слияния
Описание

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

A

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

B

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

C

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

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

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

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

Merge параметров блоков Allow unequal port widths доступна только, когда параметр конфигурации <reservedrangesplaceholder1> задано значение Classic.

Необходимые условия

hisl_0303: Параметры конфигурации > Диагностика > Объединить блок

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

ОбъяснениеA, B, C, DИзбегайте однозначного поведения.
Проверки Model AdvisorПроверяйте использование блоков слияния (Simulink Check)
Ссылки
  • IEC 61508-3, Таблица A.3 (3) 'Подмножество языка "
    IEC 61508-3, Таблица A.4 (3) «Оборонительное программирование »

  • МЭК 62304, 5.5.3 - Критерии приемки Модуля ПО

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

  • EN 50128, таблица A.4 (11) 'Language Subset'
    EN 50128, таблица A.3 (1) 'Defensive Programming'

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

См. также

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

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

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

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

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

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

Последовательный метод индексирования векторов.

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

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

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

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

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

ОбъяснениеAУменьшите риск введения ошибок из-за несогласованной индексации.
Проверки Model AdvisorПроверяйте на несогласованность методов индексирования векторов (Simulink Check)
Ссылки
  • IEC 61508-3, Таблица A.3 (3) 'Подмножество языка'
    IEC 61508-3, Таблица A.4 (5) «Проекты и кодирования»

  • МЭК 62304, 5.5.3 - Критерии приемки Модуля ПО

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

  • EN 50128, таблица A.4 (11) 'Language Subset'
    EN 50128, таблица A.12 (1) «Стандарт кодирования»

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

См. такжеcgsl_0101: индексация на основе нуля
Последнее изменениеR2019a

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

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

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

  • Назначение

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

  • Вектор индекса

  • Интерполяция с использованием Prelookup

  • MATLAB® Функция

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

  • Отборщик

  • Stateflow® График

ОбъяснениеAПредотвратите неожиданные результаты, которые могут возникнуть при операциях округления для типов данных с плавающей точкой.
BВключите доступ к данным в векторе.
Проверки Model AdvisorПроверяйте типы данных для блоков с сигналами индекса (Simulink Check)
Ссылки
  • IEC 61508-3, Таблица A.3 (2) 'Сильно типизированный язык программирования'
    IEC 61508-3, таблица A.4 (3) «Оборонительное программирование»

  • МЭК 62304, 5.5.3 - Критерии приемки Модуля ПО

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

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

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

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

hisl_0023: Верификация вариантов блоков

Идентификатор: Заголовок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.3.b - Программная архитектура согласована

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

Последнее изменениеR2017b

hisl_0034: Использование блоков Signal Routing

Идентификатор: Заголовокhisl_0034: Использование блоков Signal Routing
Описание

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

Примечание

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

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

Объяснение

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

Проверки Model AdvisorПроверяйте использование блоков Signal Routing (Simulink Check)
Ссылки
  • DO-331, Разделы MB.6.3.2.g 'Алгоритмы точны'

  • IEC 61508-3, Таблица A.3 (3) - 'Language subset'
    Таблица A.4 (3) - 'Оборонительное программирование'

  • IEC 62304, 5.5.3 - «Критерий приемки Модуля ПО»

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

  • EN 50128, таблица A.4 (11) - 'Language Subset'
    Таблица A.3 (1) - 'Оборонительное программирование'

  • MISRA C:2012, Dir 1.1

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

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

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