Ports & Subsystems

hisl_0006: Использование того, В то время как Итератор блокируется

ID: Заголовок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) 'Безопасное программирование'

  • 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) 'безопасное программирование'

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

  • INT32-C. Убедитесь, что операции на целых числах со знаком не приводят к переполнению

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

hisl_0007: Использование Для Итератора или В то время как подсистемы Итератора

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

  • 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) 'безопасное программирование'

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

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

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

hisl_0008: Использование Для Блоков Итератора

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

Чтобы поддержать ограниченное итеративное поведение в сгенерированном коде при использовании блока 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Проверяйте использование На блоки Итератора (Simulink Check)
Ссылки
  • DO-331, Раздел MB.6.3.2.g – 'Алгоритмы точен'

  • 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) 'безопасное программирование'

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

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

hisl_0010: Использование Если блоки и Если блоки Subsystem Действия

ID: Заголовокhisl_0010: Использование Если блоки и Если блоки Subsystem Действия
Описание

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

A

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

B

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

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

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

Примечания

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

ОбъяснениеA, B Поддержите генерацию верифицируемого кода.
Проверки Model AdvisorПроверяйте использование Если блоки и Если блоки 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) 'Безопасное программирование'

  • 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) 'безопасное программирование'

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

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

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

Не рекомендуемый: нет еще путь

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

hisl_0011: Использование блоков Случая Переключателя и блоков Subsystem Действия

ID: Заголовокhisl_0011: Использование блоков Случая Переключателя и блоков 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Проверяйте использование блоков Случая Переключателя и блоков 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) 'Безопасное программирование'

  • 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) 'безопасное программирование'

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

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

Следующие графические дисплеи пример обеспечения пути по умолчанию выполнения с помощью блока “Default”.

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

ID: Заголовок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) 'Безопасное программирование'

  • 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.2.g 'Алгоритмы точны'

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

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

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

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

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

  • Data type

  • Port dimensions

  • Sample time

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

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

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

  • IEC 61508-3, Таблица B.9 (6) ‘Полностью заданный интерфейс’

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

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

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

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

hisl_0025: Спроектируйте спецификацию min / макс. спецификацию входных интерфейсов

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

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

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

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

    • Верификация модели проекта с помощью Simulink Design Verifier™.

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

  • Указанные диапазоны проекта используются Embedded Coder, чтобы оптимизировать сгенерированный код. Чтобы использовать эти области значений проекта для оптимизации, выберите параметр конфигурации Optimize using the specified minimum and maximum values. Этот параметр конфигурации применим только, когда Системный конечный файл является основанной на ERT целью.

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

Объяснение

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

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

  • IEC 61508-3, Таблица B.9 (6) ‘Полностью заданный интерфейс’

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

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

  • EN 50128, таблица A.1 (11) – технические требования программного интерфейса
    Таблица A.3 (19) EN 50128 ‘полностью заданный интерфейс‘

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

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

hisl_0026: Спроектируйте спецификацию min / макс. спецификацию выходных интерфейсов

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

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

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

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

    • Верификация модели проекта с помощью Simulink Design Verifier.

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

  • Указанные диапазоны проекта используются Embedded Coder, чтобы оптимизировать сгенерированный код. Чтобы установить эти области значений проекта, выберите параметр конфигурации Optimize using the specified minimum and maximum values. Это параметры конфигурации применимы только, когда Системный конечный файл является основанной на ERT целью.

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

Объяснение

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

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

  • IEC 61508-3, Таблица B.9 (6) ‘Полностью заданный интерфейс’

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

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

  • EN 50128, таблица A.1 (11) – технические требования программного интерфейса
    Таблица A.3 (19) EN 50128 ‘полностью заданный интерфейс‘

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

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