Порты и подсистемы

hisl_0006: Использование блоков Итератор

Идентификатор: Заголовокhisl_0006: Использование блоков Итератор
ОписаниеЧтобы поддержать ограниченное итерационное поведение в сгенерированном коде при использовании блока While Iterator, задайте Maximum number of iterations параметров блоков положительное целое значение.
Примечание

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

Чтобы наблюдать значение итерации во время симуляции и определить, достигает ли цикл максимального количества итераций, выберите While Iterator параметров блоков Show iteration number port. Если цикл достигает максимального количества итераций, проверьте выходные значения While Iterator блока.

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

  • 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'

  • MISRA C:2012, правило 14.2
    MISRA C:2012, правило 16.4
    MISRA C:2012, Dir 4.1

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

hisl_0007: Использование для итераторов или Итератор

Идентификатор: Заголовокhisl_0007: Использование для итераторов или Итератор
ОписаниеЧтобы поддержать однозначное поведение, при использовании For Iterator Subsystem или While Iterator Subsystem избегайте использования сэмплирования зависящих от времени блоков, таких как интеграторы, фильтры и передаточные функции в подсистемах.
ОбъяснениеИзбегайте неоднозначного поведения подсистемы.
Проверки Model AdvisorПроверяйте использование подсистем For и While Iterator (Simulink Check)
Ссылки
  • DO-331, Алгоритмы MB.6.3.2.g 'Раздела точны

  • 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'

  • MISRA C:2012, правило 14.2
    MISRA C:2012, правило 16.4
    MISRA C:2012, Dir 4.1

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

Следующий пример вызывает предупреждение: блок Discrete FIR Filter зависит от времени и находится в подсистеме For или While Iterator.

hisl_0008: Использование для блоков Iterator

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

Чтобы поддержать ограниченное итерационное поведение в сгенерированном коде при использовании блока For Iterator, выполните одно из следующих действий:

A

Установите параметры блоков Iteration limit source в internal.

B

Когда Iteration limit source должны быть external, используйте блок, который имеет постоянное значение. Опции включают Width, Probe или Constant.

C

Очистить параметры блоков Set next i (iteration variable) externally.

D

Чтобы наблюдать значение итерации во время симуляции, выберите параметры блоков Show iteration variable.

Примечания

Когда вы используете блок For Iterator, подайте переменную управления циклом с фиксированными (невариабельными) значениями, чтобы получить предсказуемое количество итераций цикла. В противном случае цикл может привести к непредсказуемым временам выполнения и, в случае внешних переменных итерации, бесконечным циклам, которые могут привести к переполнению во время выполнения.

ОбъяснениеA, B, C, DПоддержка ограниченного итерационного поведения в сгенерированном коде.
Проверки Model AdvisorПроверяйте использование блоков For Iterator (Simulink Check)
Ссылки
  • DO-331, раздел MB.6.3.2.g - 'Алгоритмы точны'

  • 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'

  • MISRA C:2012, правило 14.2
    MISRA C:2012, правило 16.4
    MISRA C:2012, Dir 4.1

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

hisl_0010: Использование блоков If и блоков Подсистемы Действий If

Идентификатор: Заголовокhisl_0010: Использование блоков If и блоков Подсистемы Действий If
Описание

Чтобы поддержать проверяемый сгенерированный код, при использовании блока If с непустыми Elseif выражения,

A

Выберите параметры блоков Show else condition.

B

Соедините выходные порты блока If с If Action Subsystem блоками.

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

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

Примечания

Комбинация If и If Action Subsystem блоков позволяет условное выполнение на основе входных условий. Когда есть только if ветвь, вам не нужно включать else ветвь.

ОбъяснениеA, BПоддержка генерации проверяемого кода.
Проверки Model AdvisorПроверяйте использование блоков If и блоков Подсистемы Действий (Simulink Check)
Ссылки
  • DO-331, раздел MB.6.3.2.d - «Требования низкого уровня поддаются проверке»
    DO-331 Раздел MB.6.3.2.b - Низкоуровневые требования являются точными и последовательными

  • 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'

  • MISRA C:2012, правило 14.2
    MISRA C:2012, правило 16.4
    MISRA C:2012, Dir 4.1

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

Рекомендуемый: Elseif с Else

Не рекомендуемый: Нет другого пути

Рекомендуемый: Только если, больше не требуется

hisl_0011: Использование блоков Switch Case и блоков Action Subsystem

Идентификатор: Заголовокhisl_0011: Использование блоков Switch Case и блоков Action Subsystem
Описание

Чтобы поддержать проверяемый сгенерированный код, при использовании блока Switch Case:

A

Выберите параметры блоков Show default case.

B

Соедините выходные порты блока Switch Case с блоком Switch Case Action Subsystem.

C

Используйте целочисленный тип данных или значение перечисления для входов, чтобы Switch Case блоки.

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

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

Примечания

Комбинация Switch Case и If Action Subsystem блоков позволяет условное выполнение на основе входных условий. Укажите путь выполнения по умолчанию в виде блока «Default».

ОбъяснениеA, B, CПоддержка генерации проверяемого кода.
Проверки Model AdvisorПроверяйте использование блоков Switch Case и блоков Switch Case Action Subsystem (Simulink Check)
Ссылки
  • DO-331, раздел MB.6.3.2.d - "Требования низкого уровня поддаются проверке
    DO-331 Раздел MB.6.3.2.b - Низкоуровневые требования являются точными и последовательными

  • 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'

  • MISRA C:2012, правило 14.2
    MISRA C:2012, правило 16.4
    MISRA C:2012, Dir 4.1

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

Следующий рисунок отображает пример предоставления пути выполнения по умолчанию с помощью блока «Default».

hisl_0012: Использование условно исполненных подсистем

Идентификатор: Заголовокhisl_0012: Использование условно исполненных подсистем
Описание

Для поддержки однозначного поведения, при использовании условно выполненных подсистем:

A

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

B

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

ОбъяснениеA, BПоддержка однозначного поведения.
Проверки 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.2.g 'Алгоритмы точны'

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

Последнее изменениеR2018b
ПримерыПри использовании дискретных блоков поведение зависит от операции на нескольких непрерывных временных шагах. Когда блоки вызываются периодически, результаты могут не соответствовать вашим ожиданиям.

hisl_0024: Определение интерфейса Inport

Идентификатор: Заголовокhisl_0024: Определение интерфейса Inport
Описание

Чтобы поддержать сильный набор данных и однозначное поведение модели и сгенерированного кода, для каждого блока Inport уровня корня или Simulink® объект сигнала, который явно разрешается к подключенной сигнальной линии, установите следующие параметры:

  • Data type

  • Port dimensions

  • Sample time

ПримечаниеИспользование блоков Inport корневого уровня без полностью определенных размерностей, шагов расчета или типа данных может привести к неоднозначным результатам симуляции. Если вы явно не задаете эти параметры, Simulink обратно распространяет размерности, шаги расчета и типы данных из нисходящих блоков.
Объяснение
  • Избегайте однозначного поведения.

  • Поддержка полной спецификации программного интерфейса.

Проверки Model AdvisorПроверьте корневые входные порты с отсутствующими свойствами (Simulink Check)
Ссылки
  • DO-331 Раздел MB.6.3.2.b 'Низкоуровневые требования точны и непротиворечивы'

  • МЭК 61508-3, таблица B.9 (6) «Полностью определенный интерфейс»

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

  • ISO 26262-6, таблица 1 (1а) - Применение малой сложности
    ISO 26262-6, таблица 1 (1с) - Применение строгой типизации
    ISO 26262-6, Таблица 1 (1f) - Использование однозначного графического представления
    ISO 26262-6, Таблица 3 (1с) - Ограниченный размер интерфейсов
    ISO 26262-6, Таблица 7 (1k) - Тест интерфейса

  • EN 50128, таблица A.3 (19) «Полностью определенный интерфейс»

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

hisl_0025: Проект min/max спецификация входа интерфейсов

Идентификатор: Заголовокhisl_0025: Проект min/max спецификация входа интерфейсов
ОписаниеПредоставьте проект мин./макс. информацию для блоков Inport корневого уровня, чтобы задать вход областей значений интерфейса.
Примечания

  • Установка области значений блоков Inport на корневом уровне включает дополнительные возможности[a]Примеры включают:

    • Обнаружение переполнений через проверку области значений симуляции.

    • Оптимизация кода с использованием Embedded Coder®.

    • Проектируйте верификацию модели с помощью Simulink Design Verifier™.

    • Автомасштабирование с фиксированной точкой с помощью Fixed-Point Designer™.

  • Заданные области значений проекта используются Embedded Coder для оптимизации сгенерированного кода. Чтобы использовать эти области значений проекта для оптимизации, выберите параметр конфигурации <reservedrangesplaceholder0>. Этот параметр конфигурации применим только, когда системный целевой файл является целевым объектом на основе ERT.

  • Области значений для блоков Inport типа шины заданы элементами шины определяющего объекта шины. Simulink игнорирует спецификации области значений, предоставляемые непосредственно в блоках Inport, которые являются типами шины.

Объяснение

Поддержка точной спецификации входного интерфейса.

Проверки Model AdvisorПроверьте корневые входные порты с отсутствующими определениями области значений (Simulink Check)
Ссылки
  • DO-331, раздел MB.6.3.2.d - «Требования низкого уровня поддаются проверке»
    DO-331 Раздел MB.6.3.2.b 'Низкоуровневые требования точны и непротиворечивы'

  • МЭК 61508-3, таблица B.9 (6) «Полностью определенный интерфейс»

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

  • ISO 26262-6, таблица 1 (1с) - Применение строгой типизации
    ISO 26262-6, таблица 7 (1e) - Официальная верификация
    ISO 26262-6, Таблица 7 (1k) - Тест интерфейса
    ISO 26262-6, Таблица 8 (1с) - Анализ краевых значений

  • EN 50128, Таблица A.1 (11) - Спецификации интерфейса программного обеспечения
    EN 50128 Таблица A.3 (19) «Полностью определенный интерфейс»

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

[a] Эти возможности используют проект области значений информацию для различных целей. Для получения дополнительной информации см. документацию по инструментам, которые вы собираетесь использовать.

hisl_0026: Проект min/max спецификация выхода интерфейсов

Идентификатор: Заголовокhisl_0026: Проект min/max спецификация выхода интерфейсов
ОписаниеПредоставьте информацию о проекте min/max для блоков Outport корневого уровня, чтобы задать области значений выходных интерфейсов.
Примечания

  • Установка области значений блоков Outport на корневом уровне включает дополнительные возможности[a]Примеры включают:

    • Обнаружение переполнений через проверку области значений симуляции.

    • Оптимизация кода с помощью Embedded Coder.

    • Проектируйте верификацию модели с помощью Simulink Design Verifier.

    • Автомасштабирование с фиксированной точкой с помощью Fixed-Point Designer.

  • Заданные области значений проекта используются Embedded Coder для оптимизации сгенерированного кода. Чтобы задать эти области значений проекта, выберите параметр конфигурации <reservedrangesplaceholder0>. Эти параметры конфигурации применяются только, когда системный целевой файл является целевым объектом на основе ERT.

  • Области значений для блоков Outport типа шины заданы элементами шины определяющего объекта шины. Simulink игнорирует спецификации области значений, предоставляемые непосредственно в блоках Outport, которые являются типами шин.

Объяснение

Поддержка точной спецификации выходного интерфейса.

Проверки Model AdvisorПроверьте корневые выходные порты с отсутствующими определениями области значений (Simulink Check)
Ссылки
  • DO-331, раздел MB.6.3.2.d - «Требования низкого уровня поддаются проверке»
    DO-331 Раздел MB.6.3.2.b 'Низкоуровневые требования точны и непротиворечивы'

  • МЭК 61508-3, таблица B.9 (6) «Полностью определенный интерфейс»

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

  • ISO 26262-6, таблица 1 (1с) - Применение строгой типизации
    ISO 26262-6, таблица 7 (1e) - Официальная верификация
    ISO 26262-6, Таблица 7 (1k) - Тест интерфейса
    ISO 26262-6, Таблица 8 (1с) - Анализ краевых значений

  • EN 50128, Таблица A.1 (11) - Спецификации интерфейса программного обеспечения
    EN 50128 Таблица A.3 (19) «Полностью определенный интерфейс»

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

[a] Эти возможности используют проект области значений информацию для различных целей. Для получения дополнительной информации см. документацию по инструментам, которые вы собираетесь использовать.