Проверки High-Integrity Systems Modeling облегчают разработку и устранение неисправностей моделей, подсистем и соответствующего сгенерированного кода для приложений в соответствии с High-Integrity Systems Modeling Guidelines.
При выполнении проверок High-Integrity Systems Modeling модуль Model Advisor выполняет извлечение лицензии Simulink ® Check™.
Проверки High-Integrity Systems Modeling классифицируются по следующим группам:
Модуль моделирования систем высокой целостности проверяет наличие блоков и компонентов Simulink.
Дополнительные сведения см. в разделе Проверки модели для моделирования систем с высокой целостностью.
Модуль моделирования систем высокой целостности проверяет код MATLAB.
Дополнительные сведения см. в разделе Проверки модели для моделирования систем с высокой целостностью.
Модуль моделирования систем с высокой целостностью проверяет параметры конфигурации.
Дополнительные сведения см. в разделе Проверки модели для моделирования систем с высокой целостностью.
При моделировании систем с высокой целостностью выполняется проверка соглашений об именовании.
Дополнительные сведения см. в разделе Проверки модели для моделирования систем с высокой целостностью.
Моделирование систем с высокой целостностью проверяет прослеживаемость требований к симуляторам.
Дополнительные сведения см. в разделе Проверки модели для моделирования систем с высокой целостностью.
Модуль моделирования систем высокой целостности проверяет наличие сгенерированного кода.
Дополнительные сведения см. в разделе Проверки модели для моделирования систем с высокой целостностью.
Модуль моделирования систем высокой целостности проверяет наличие диаграмм и компонентов потока состояний.
Дополнительные сведения см. в разделе Проверки модели для моделирования систем с высокой целостностью.
С R2018b и более поздних версий следующие проверки не рекомендуется использовать. Эти проверки разбиваются на несколько проверок, фокусирующихся на одном действии или операции. Дополнительные сведения см. в таблице Разделение и новые проверки ниже.
Код чека: mathworks.hism.himl_0001
Эта проверка проверяет все функции MATLAB в модели, локальные функции и ссылочные файлы MATLAB для стандартных заголовков функций и проверяет следующие сведения:
Имя функции
Описание функции
Описание входных переменных
Описание выходных переменных
Ниже приведен пример определения заголовков функций.
% < Имя функции > - Описание функции
% < Входная переменная 1 > - Описание входной переменной 1
% < Входная переменная 2 > - Описание входной переменной 2
% < Выходная переменная 1 > - Описание выходной переменной 1
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Функции MATLAB используют нестандартные заголовки функций. | Рекомендуется добавить заголовок функции к функциям в соответствии со следующими рекомендациями:
|
Эта проверка анализирует только функции, на которые непосредственно ссылается модель Simulink.
Можно настроить проверку на выполнение для связанных файлов MATLAB с помощью входного параметра Check .m files, на который ссылается модель, в редакторе конфигурации. По умолчанию этот параметр выбран.
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение all.
Анализ содержимого связанных с библиотекой блоков. По умолчанию для входного параметра Follow links установлено значение on.
Допускает исключения блоков и диаграмм.
Код чека: mathworks.hism.himl_0002
Определите функции MATLAB ®, которые имеют входы, выходы или параметры с унаследованной сложностью или свойствами типа данных.
Проверка идентифицирует функции MATLAB со свойствами унаследованной сложности или типа данных. Таблица результатов содержит ссылки на функции MATLAB, которые не проходят проверку, а также условия, запускающие предупреждение.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Функции MATLAB имеют унаследованные интерфейсы. | Явно определите свойства сложности и типа данных для входов, выходов и параметров функций MATLAB, определенных в результатах. При необходимости с помощью редактора функциональных блоков MATLAB внесите в диспетчер портов и данных следующие изменения:
|
Эта проверка анализирует только функции, на которые непосредственно ссылается модель Simulink.
Выполняется для библиотечных моделей.
Не анализирует содержимое связанных с библиотекой блоков.
Анализирует содержимое во всех маскированных подсистемах.
Допускает исключения блоков и диаграмм.
Код чека: mathworks.hism.himl_0003
Отображение показателей сложности и кода для функций MATLAB. Сообщать о нарушениях метрик.
Эта проверка предоставляет метрики сложности и кода для функций MATLAB. Проверка сообщает о двух категориях нарушений показателей:
Блочные метрики ― метрики для общего кода функционального блока MATLAB
Функциональные метрики ― метрики для каждой функции блока, представленные индивидуально
Доступно при проверке Simulink.
Можно определить допуск для этих параметров сложности с помощью редактора конфигурации Model Advisor:
Максимальное количество действующих строк кода на функцию ― Действующие строки не включают пустые строки, строки комментариев или строки с функцией end ключевое слово. Значение по умолчанию: 60.
Минимальная плотность комментариев ― Плотность - отношение строк комментариев к общим строкам кода. Значение по умолчанию: 0.2.
Максимальная цикломатическая сложность на функцию ― Цикломатическая сложность - это количество линейно независимых путей через исходный код. Значение по умолчанию: 15.
| Состояние | Рекомендуемое действие |
|---|---|
| Функция MATLAB нарушает входные параметры сложности. | Для функции MATLAB:
|
Эта проверка анализирует только функции, на которые непосредственно ссылается модель Simulink.
Выполняется для библиотечных моделей.
Не анализирует содержимое связанных с библиотекой блоков.
Анализирует содержимое во всех маскированных подсистемах.
Допускает исключения блоков и диаграмм.
Код чека: mathworks.hism.himl_0004
Проверьте функции MATLAB для %#codegen директива, сообщения анализатора кода MATLAB и идентификаторы сообщений обоснования.
Проверяет %#codegen директива, сообщения анализатора кода MATLAB и идентификаторы сообщений обоснования для:
Код MATLAB в функциональных блоках MATLAB
Функции MATLAB, определенные в диаграммах Stateflow ®
Вызываемые функции MATLAB
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
Для кода MATLAB в функциональных блоках MATLAB выполните одно из следующих действий:
|
|
Для функций MATLAB, определенных в диаграммах потока состояний, одно из следующих действий:
|
|
Для вызываемых функций MATLAB:
|
|
Эта проверка анализирует только функции, на которые непосредственно ссылается модель Simulink.
Выполняется для библиотечных моделей.
Не анализирует содержимое связанных с библиотекой блоков.
Анализирует содержимое во всех маскированных подсистемах.
Не допускает исключения блоков или диаграмм.
Код чека: mathworks.hism.himl_0006
Эта проверка идентифицирует шаблоны if/elseif/else без соответствующих условий во встроенном коде MATLAB.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Неуместно, если шаблоны/elseif/else присутствуют во встроенном коде MATLAB. | Для каждого шаблона if/elseif/else добавьте оператор else, который включает хотя бы один значимый комментарий. |
Эта проверка анализирует только функции, на которые непосредственно ссылается модель Simulink.
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение all.
Анализ содержимого связанных с библиотекой блоков. По умолчанию для входного параметра Follow links установлено значение on.
Код чека: mathworks.hism.himl_0007
Эта проверка идентифицирует операторы switch/case/other без соответствующих условий во встроенном коде MATLAB.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Оператор Switch не имеет других условий. | Убедитесь, что оператор switch имеет другое условие. |
| В противном случае оператор остается пустым без комментариев. | Убедитесь, что инструкция в противном случае содержит хотя бы один значимый комментарий. |
| Инструкция Switch содержит только одну инструкцию case. | Убедитесь, что инструкция switch содержит не менее двух инструкций case. |
Эта проверка исключает оператор одного варианта с массивом ячеек из двух или более элементов.
Эта проверка анализирует только функции, на которые непосредственно ссылается модель Simulink.
Выполняется для библиотечных моделей.
Можно настроить проверку на выполнение для связанных файлов MATLAB с помощью входного параметра Check .m files, на который ссылается модель, в редакторе конфигурации. По умолчанию этот параметр выбран.
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение all.
Анализ содержимого связанных с библиотекой блоков. По умолчанию для входного параметра Follow links установлено значение on.
Допускает исключения блоков и диаграмм.
Код чека: mathworks.hism.himl_0008
Эта проверка проверяет все функции MATLAB в модели, локальные функции и ссылочные файлы MATLAB для операторов реляционных операторов, которые работают с операндами различных типов данных.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Реляционные операторы в функциональных блоках, работающих с операндами различных типов данных. | Тип - приведение операндов к одному типу данных. |
Эта проверка анализирует только функции, на которые непосредственно ссылается модель Simulink.
Не выполняется для библиотечных моделей.
Можно настроить проверку на выполнение для связанных файлов MATLAB с помощью входного параметра Check .m files, на который ссылается модель, в редакторе конфигурации. По умолчанию этот параметр выбран.
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение all.
Анализ содержимого связанных с библиотекой блоков. По умолчанию для входного параметра Follow links установлено значение on.
Допускает исключения блоков и диаграмм.
Код чека: mathworks.hism.himl_0009
Эта проверка проверяет использование операторов равенства с операндами с плавающей запятой в функциональных блоках MATLAB.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Одна или несколько функций MATLAB имеют операторы равенства с операндами с плавающей запятой. | Рассмотрите возможность сравнения диапазонов вместо прямого сравнения. |
Эта проверка анализирует только функции, на которые непосредственно ссылается модель Simulink.
Не выполняется для библиотечных моделей.
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение all.
Анализ содержимого связанных с библиотекой блоков. По умолчанию для входного параметра Follow links установлено значение on.
Можно настроить проверку на выполнение для связанных файлов MATLAB с помощью входного параметра Check .m files, на который ссылается модель, в редакторе конфигурации. По умолчанию этот параметр выбран.
Допускает исключения блоков и диаграмм.
Код чека: mathworks.hism.himl_0010
Эта проверка идентифицирует логические операторы и функции, работающие с операндами с числовыми типами данных в функциональных блоках MATLAB.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Логические операторы или функции, используемые в операндах с числовыми типами данных. | Тип - приведение операндов к логическому типу данных. |
Эта проверка анализирует только функции, на которые непосредственно ссылается модель Simulink.
Не выполняется для библиотечных моделей.
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение all.
Анализ содержимого связанных с библиотекой блоков. По умолчанию для входного параметра Follow links установлено значение on.
Можно настроить проверку на выполнение для связанных файлов MATLAB с помощью входного параметра Check .m files, на который ссылается модель, в редакторе конфигурации. По умолчанию этот параметр выбран.
Допускает исключения блоков и диаграмм.
Код чека: mathworks.hism.hisf_0001
Определите диаграммы потока состояний, тип конечного компьютера которых отличается от типа, заданного в редакторе конфигурации Model Advisor.
Сравнивает тип конечного автомата всех диаграмм Stateflow с типом, указанным в входных параметрах.
Доступно при проверке Simulink.
Для этой проверки требуется лицензия Stateflow.
Проверьте, являются ли все диаграммы классическими.
Проверьте, все ли диаграммы являются диаграммами Мили.
Проверьте, все ли диаграммы являются диаграммами Мура.
| Состояние | Рекомендуемое действие |
|---|---|
Входной параметр имеет значение Classic и диаграммы в модели используют другие типы конечных автоматов. | Для каждой диаграммы в диалоговом окне «Свойства диаграммы» задайте для параметра «Тип конечного станка» значение Classic. |
Входной параметр имеет значение Moore и диаграммы в модели используют другие типы конечных автоматов. | Для каждой диаграммы в диалоговом окне «Свойства диаграммы» задайте для параметра «Тип конечного станка» значение Moore. |
Входной параметр имеет значение Mealy и диаграммы в модели используют другие типы конечных автоматов. | Для каждой диаграммы в диалоговом окне «Свойства диаграммы» задайте для параметра «Тип конечного станка» значение Mealy. |
Выполняется для библиотечных моделей.
Анализ содержимого связанных блоков библиотеки. По умолчанию для входного параметра Follow links установлено значение on.
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение all.
Допускает исключения блоков и диаграмм.
Код чека: mathworks.hism.hisf_0002
Определение диаграмм потока состояний, для которых очищен заданный пользователем порядок выполнения состояния/перехода.
Определите диаграммы Stateflow, для которых очищен заданный пользователем порядок выполнения состояния/перехода, и, следовательно, не используйте явный порядок параллельных состояний и переходов.
Доступно при проверке Simulink.
Для этой проверки требуется лицензия Stateflow.
| Состояние | Рекомендуемое действие |
|---|---|
| Для диаграмм потока состояний очищен заданный пользователем порядок выполнения состояния/перехода. | Для указанных диаграмм в диалоговом окне Свойства диаграммы выберите Заданное пользователем состояние/порядок выполнения перехода. |
Выполняется для библиотечных моделей.
Анализ содержимого связанных блоков библиотеки. По умолчанию для входного параметра Follow links установлено значение on.
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение all.
Допускает исключения блоков и диаграмм.
При нажатии кнопки Изменить выбирается заданное пользователем состояние/порядок выполнения перехода для указанных диаграмм.
Код чека: mathworks.hism.hisf_0003
Определяет использование целочисленных операндов со знаком для побитовых операторов в диаграммах Stateflow с языком действий C.
Доступно при проверке Simulink.
Для этой проверки требуется лицензия Stateflow.
| Состояние | Рекомендуемое действие |
|---|---|
| Один или несколько объектов Stateflow в модели используют целочисленные операнды со знаком с побитовыми операторами. | Не используйте целочисленные операнды со знаком с побитовыми операторами. |
При этой проверке не отмечаются следующие операции MATLAB bit wise
swapbytes
bitset
bitget
bitcmp
Не выполняется для библиотечных моделей.
Анализ содержимого связанных блоков библиотеки. По умолчанию для входного параметра Follow links установлено значение on.
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение all.
Анализирует содержимое во всех маскированных подсистемах.
Код чека: mathworks.hism.hisf_0004
Определяет использование рекурсивного поведения.
Примечание
Неориентированные события, как известно, вызывают рекурсию в сгенерированном коде.
Доступно при проверке Simulink.
Для этой проверки требуется лицензия Stateflow.
| Состояние | Рекомендуемое действие |
|---|---|
| Одна или несколько сущностей были вовлечены в рекурсии. | Реконструируйте объекты для удаления рекурсий. |
Эта проверка может выполняться только с корневого уровня модели.
Выполняется для библиотечных моделей.
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение all.
Анализ содержимого связанных с библиотекой блоков. По умолчанию для входного параметра Follow links установлено значение on.
Допускает исключения блоков и диаграмм.
Код чека: mathworks.hism.hisf_0009
Определите использование конструкций Stateflow, которые могут повлиять на безопасность.
Эта проверка определяет экземпляры программного обеспечения Stateflow, используемого таким образом, что это может повлиять на безопасность приложения с помощью строгого набора данных.
Доступно при проверке Simulink.
Для этой проверки требуется лицензия Stateflow.
| Состояние | Рекомендуемое действие |
|---|---|
Диаграмма Stateflow не настроена для сильной типизации данных на границах между моделью Simulink и диаграммой Stateflow. | В диалоговом окне «Свойства диаграммы» выберите «Использовать строгий ввод данных с Simulink I/O» для диаграммы State flow. При установке этого флажка диаграмма Stateflow принимает входные сигналы любого типа, поддерживаемого моделями Simulink, при условии, что тип входного сигнала соответствует типу соответствующего объекта входных данных Stateflow. |
Выполняется для библиотечных моделей.
Анализ содержимого связанных блоков библиотеки. По умолчанию для входного параметра Follow links установлено значение on.
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение all.
Допускает исключения блоков и диаграмм. Исключения не будут работать для связанных с библиотекой диаграмм.
Код чека: mathworks.hism.hisf_0011
Проверьте параметры отладки Stateflow.
Проверьте следующие параметры отладки.
Перенос при переполнении
Проверка диапазона моделирования
Циклы обнаружения
Underspecification
Сверхспецификация
Доступно при проверке Simulink.
Для этой проверки требуется лицензия Stateflow.
| Состояние | Рекомендуемое действие |
|---|---|
Любое из следующих действий:
| В диалоговом окне «Параметры конфигурации» задайте:
В окне модели выберите:
|
Таблицы истинности не анализируются в этой проверке.
Не выполняется для библиотечных моделей.
Не анализирует содержимое связанных с библиотекой блоков.
Допускает исключения блоков и диаграмм.
При нажатии кнопки «Изменить» выбираются указанные параметры отладки.
Код чека: mathworks.hism.hisf_0013
Определение путей перехода, пересекающих параллельные границы состояний в диаграммах Stateflow.
Определение путей перехода, пересекающих параллельные границы состояний в диаграммах Stateflow. Эта проверка определяет пути перехода, пересекающие параллельные границы состояний в диаграммах Stateflow.
Доступно при проверке Simulink.
Для этой проверки требуется лицензия Stateflow.
| Состояние | Рекомендуемое действие |
|---|---|
| Диаграммы Stateflow имеют пути перехода, пересекающие параллельные границы состояний. | Измените диаграммы Stateflow, чтобы переходы не пересекали параллельные границы состояний. Дополнительные сведения см. в разделе Переход между режимами работы (Stateflow). |
Не выполняется для библиотечных моделей.
Анализ содержимого связанных блоков библиотеки. По умолчанию для входного параметра Follow links установлено значение on.
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение all.
Допускает исключения блоков и диаграмм.
Анализирует содержимое во всех маскированных подсистемах.
Код чека: mathworks.hism.hisf_0014
Эта проверка проверяет использование соединений внутри состояний и определяет соединения, которые лежат на пути, который входит и выходит из состояния.
Доступно при проверке Simulink.
Для этой проверки требуется лицензия Stateflow.
| Состояние | Рекомендуемое действие |
|---|---|
| Один или несколько путей перехода в модели проходят через состояние без окончания в подсостоянии. | Реконструируйте соединения, чтобы избежать переходов, которые переходят в состояние и выходят из него, не заканчиваясь на подсостоянии. |
Выполняется для библиотечных моделей.
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение all.
Анализ содержимого связанных с библиотекой блоков. По умолчанию для входного параметра Follow links установлено значение on.
Допускает исключения диаграмм. Нельзя исключать элемент Stateflow напрямую.
Код чека: mathworks.hism.hisf_0015
Определение переменных и параметров в выражениях с различными типами данных в объектах Stateflow.
Чтобы обеспечить надежную типизацию данных, эта проверка идентифицирует переменные и параметры в выражениях с различными типами данных в состояниях и переходах Stateflow.
Доступно при проверке Simulink.
Для этой проверки требуется лицензия Stateflow.
| Состояние | Рекомендуемое действие |
|---|---|
| Объекты Stateflow имеют переменные и параметры в выражениях с различными типами данных. | Явное приведение переменных и параметров в выражениях к одним и тем же типам данных. Для получения дополнительной информации см. |
Не выполняется для библиотечных моделей.
Допускает исключения блоков и диаграмм.
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение all.
Анализ содержимого связанных блоков библиотеки. По умолчанию для входного параметра Follow links установлено значение on.
Не анализирует тип литералов в выражениях в объектах Stateflow. Явно приводит типы литералов к предполагаемому типу данных.
Не помечает выражения с ключевыми словами true и false. Дополнительные сведения см. в разделе Зарезервированные ключевые слова для создания кода (встроенный кодер).
Внешние функции, написанные на языке C и встроенные в Stateflow, не будут работать с этой проверкой.
Код чека: mathworks.hism.hisf_0016
Эта проверка выявляет несоответствия между именами портов Stateflow и соответствующими сигналами. Повторно используемые блоки Stateflow могут иметь различные имена портов.
Доступно при проверке Simulink.
Для этой проверки требуется лицензия Stateflow.
| Состояние | Рекомендуемое действие |
|---|---|
| Имена входных и выходных портов диаграмм Stateflow не совпадают с именами подключенных сигналов. | Убедитесь, что имена входных и выходных портов диаграмм Stateflow совпадают с именами подключенных сигналов. |
Эта проверка не анализирует имена портов таблиц истинности Stateflow или таблиц переходов состояний Stateflow.
Эта проверка рассматривает повторно используемые диаграммы Stateflow как связанные с библиотекой диаграммы и не помечается.
Эта проверка не помечает сигналы без имен.
Не анализирует содержимое связанных с библиотекой блоков.
Не анализирует содержимое в маскированных подсистемах.
Допускает исключения блоков и диаграмм.
Код чека: mathworks.hism.hisf_0017
Эта проверка идентифицирует объекты данных Stateflow с локальной областью, не охваченной областью на уровне диаграммы или ниже.
Доступно при проверке Simulink.
Для этой проверки требуется лицензия Stateflow.
| Состояние | Рекомендуемое действие |
|---|---|
| Один или несколько объектов данных Stateflow с локальной областью не определены на уровне диаграммы или ниже. | Убедитесь, что все объекты данных Stateflow с локальной областью на уровне диаграммы или ниже определены. |
Не анализирует содержимое связанных с библиотекой блоков.
Не анализирует содержимое в маскированных подсистемах.
Допускает исключения блоков и диаграмм.
Код чека: mathworks.hism.hisf_0064
Определите использование операций смены для данных Stateflow, которые могут повлиять на безопасность.
Эта проверка проверяет операции сдвига, которые имеют значения операндов сдвига, превышающие битовую ширину входного или выходного типа или операнда сдвига, имеющего отрицательное значение.
Доступно при проверке Simulink.
Для этой проверки требуется лицензия Stateflow.
| Состояние | Рекомендуемое действие |
|---|---|
Операции правого сдвига превышают битовую ширину входного типа. | Явно измените значение операций сдвига битов так, чтобы оно было меньше операнда сдвига. |
Операции левого сдвига превышают битовую ширину выходного типа. | Явно измените значение операций сдвига битов так, чтобы оно было меньше операнда сдвига. |
Не выполняется для библиотечных моделей.
Не допускает исключения блоков или диаграмм.
Анализ содержимого связанных блоков библиотеки. По умолчанию для входного параметра Follow links установлено значение on.
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение all.
Не поддерживает операцию сдвига, размер которого определен как сигнал Simulink или переменная.
Не поддерживает операции смены, состоящие из размера смены, определенного во время выполнения.
Внешние функции, написанные на языке C и встроенные в Stateflow, не будут работать с этой проверкой.
Код чека: mathworks.hism.hisf_0065
Определение операций назначения в объектах Stateflow.
Эта проверка определяет операции назначения в объектах Stateflow, которые неявно приводят целочисленные и арифметические вычисления с фиксированной точкой к более широким типам данных, чем входные типы данных.
Эта проверка идентифицирует только назначения с арифметическими операциями.
Доступно при проверке Simulink.
Для этой проверки требуется лицензия Stateflow.
| Состояние | Рекомендуемое действие |
|---|---|
| Объект Stateflow состоит из операций назначения, которые приводят целочисленные вычисления и вычисления с фиксированной точкой к более широким типам данных, чем входные типы данных. | Явно замените оператор назначения (=) на: = в объектах Stateflow. |
Не выполняется для библиотечных моделей.
Не допускает исключения блоков или диаграмм.
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение all.
Анализ содержимого связанных с библиотекой блоков. По умолчанию для входного параметра Follow links установлено значение on.
Внешние функции, написанные на языке C и встроенные в Stateflow, не будут работать с этой проверкой.
Код чека: mathworks.hism.hisf_0211
Определение унарных операторов в диаграммах Stateflow.
Эта проверка определяет унарные операторы минус для неподписанных типов данных в диаграммах Stateflow.
Доступно при проверке Simulink.
Для этой проверки требуется лицензия Stateflow.
| Состояние | Рекомендуемое действие |
|---|---|
| Диаграмма Stateflow состоит из унарного оператора минус для неподписанных типов данных. | Явное изменение унарного оператора для неподписанных типов данных. Дополнительные сведения см. в разделе Унарные операции и действия (Stateflow). |
Не выполняется для библиотечных моделей.
Не допускает исключения блоков или диаграмм.
Анализ содержимого связанных блоков библиотеки. По умолчанию для входного параметра Follow links установлено значение on.
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение all.
За исключением операций Shift и Divide, эта проверка не помечает выражения с побитовыми и арифметическими операторами.
Код чека: mathworks.hism.hisl_0001
Определите использование блоков математических операций, которые могут повлиять на безопасность.
Эта проверка проверяет использование блока Abs.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
Модель или подсистема содержит блок абсолютного значения, который работает с одним из следующих элементов:
| Если идентифицированный блок абсолютного значения работает с логическим или неподписанным типом данных, выполните одно из следующих действий:
Если идентифицированный блок абсолютного значения работает с типом данных со знаком, в диалоговом окне «Параметры блока» > «Атрибуты сигнала» выберите «Насыщение при переполнении целого числа». |
Не выполняется для библиотечных моделей.
Анализ содержимого связанных блоков библиотеки.
Анализирует содержимое во всех маскированных подсистемах.
Допускает исключения блоков и диаграмм.
Код чека: mathworks.sldv.hism.hisl_0002
Определяет использование блоков математических функций с помощью rem и обратных функций, которые приводят к неграничным результатам.
Доступно при проверке Simulink. Для этой проверки требуется лицензия Simulink Design Verifier™ (SLDV).
Примечание: Эта проверка выполнит анализ SLDV для модели.
| Состояние | Рекомендуемое действие |
|---|---|
Модель или подсистема содержит математическую функцию - обратную (reciprocal) или остаток (rem) блоки, которые могут привести к появлению нефинитных выходных сигналов. Немногочисленные сигналы не поддерживаются во встроенных системах реального времени. | При использовании блока математической функции с rem или reciprocalфункции, защитить вход в блок от меньше или равно нулю. |
Не выполняется для библиотечных моделей.
Анализ содержимого связанных блоков библиотеки. По умолчанию для входного параметра Follow links установлено значение on.
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение all.
Допускает исключения блоков и диаграмм.
Код чека: mathworks.sldv.hism.hisl_0004
Определяет блоки математических функций с помощью функций log и log10, которые могут привести к получению неокончательных результатов.
Доступно при проверке Simulink. Для этой проверки требуется лицензия Simulink Design Verifier (SLDV).
Примечание: Эта проверка выполнит анализ SLDV для модели.
| Состояние | Рекомендуемое действие |
|---|---|
Один или несколько математических блоков в модели используют натуральный/базовый 10 логарифм (Log и Log10) блокирует и может требовать поддержки не конечного числа, которая не поддерживается во встроенных системах реального времени. | Рассмотрите возможность защиты входа блоков таким образом, чтобы вход был не меньше или равен нулю. |
Не выполняется для библиотечных моделей.
Анализ содержимого связанных блоков библиотеки. По умолчанию для входного параметра Follow links установлено значение on.
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение all.
Допускает исключения блоков и диаграмм.
Код чека: mathworks.hism.hisl_0006
Эта проверка проверяет использование блоков итератора.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Модель или подсистема содержит блок итератора While, имеющий неограниченные итерации. Это условие может привести к бесконечным циклам в сгенерированном коде. | Для идентифицированных блоков итератора:
|
Не выполняется для библиотечных моделей.
Анализ содержимого связанных блоков библиотеки. По умолчанию для входного параметра Follow links установлено значение on.
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение all.
Допускает исключения блоков и диаграмм.
Код чека: mathworks.hism.hisl_0007
Эта проверка проверяет использование зависящих от времени блоков в подсистеме для итератора или во время итератора.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
Модель или подсистема содержит один из следующих зависящих от времени блоков в подсистеме для итератора или во время итератора:
| В модели или подсистеме рассмотрите возможность удаления зависящих от времени блоков. |
Не выполняется для библиотечных моделей.
Анализ содержимого связанных блоков библиотеки. По умолчанию для входного параметра Follow links установлено значение on.
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение all.
Допускает исключения блоков и диаграмм.
Код чека: mathworks.hism.hisl_0008
Эта проверка проверяет использование блоков для итератора.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Модель или подсистема содержит блок для итератора, имеющий переменные итерации. Это условие может привести к непредсказуемому времени выполнения или бесконечным циклам в сгенерированном коде. | Для определенных блоков итератора выполните одно из следующих действий.
|
Не выполняется для библиотечных моделей.
Анализ содержимого связанных блоков библиотеки. По умолчанию для входного параметра Follow links установлено значение on.
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение all.
Допускает исключения блоков и диаграмм.
Код чека: mathworks.hism.hisl_0010
Эта проверка проверяет использование блоков If.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Модель или подсистема содержит блок If, использующий выражения Elseif без условия Else. | В диалоговом окне «Параметры блока» выберите «Показать другое условие». Подключите результирующий выходной порт Else к блоку подсистемы If Action. |
| Модель или подсистема содержит блок If с выходными портами, которые не подключаются к блокам подсистемы If Action. | Убедитесь, что выходные порты блока If подключены к блокам подсистемы If Action. |
Не выполняется для библиотечных моделей.
Анализ содержимого связанных блоков библиотеки. По умолчанию для входного параметра Follow links установлено значение on.
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение all.
Допускает исключения блоков и диаграмм.
Код чека: mathworks.hism.hisl_0011
Эта проверка проверяет использование блоков вариантов переключения.
Флажок помечает блоки Switch Case, в которых не используются целочисленные типы данных или значения перечисления для входных данных. Чтобы соответствовать hisl_0011: Использование блоков вариантов переключения и блоков подсистемы действий - C, используйте целочисленный тип данных или значение перечисления для входных данных блоков вариантов переключения.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Модель или подсистема содержит блок Switch Case без варианта по умолчанию. | В диалоговом окне «Параметры блока блока переключения» выберите «Показать регистр по умолчанию». Подключите результирующий выходной порт по умолчанию к блоку «Switch Case Action Subsystem». |
| Модель или подсистема содержит блок варианта коммутатора с портом вывода, который не подключается к блоку модуля действия варианта коммутатора. | Убедитесь, что выходные порты блоков «Switch Case» подключены к блокам «Switch Case Action Subsystem». |
| Модель или подсистема содержит блок Switch Case с не целочисленными или не перечисленными типами данных входного порта. | Убедитесь, что тип входных данных блоков Switch Case является целым числом или перечислением. |
Не выполняется для библиотечных моделей.
Анализ содержимого связанных блоков библиотеки. По умолчанию для входного параметра Follow links установлено значение on.
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение all.
Допускает исключения блоков и диаграмм.
Код чека: mathworks.hism.hisl_0012
Эта проверка идентифицирует блоки с неправильным временем выборки в условно выполненных подсистемах и асинхронно выполненных блоках, зависящих от времени выборки.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
Время выборки для блоков не установлено равным
| Изменение времени выборки для блоков -1. |
Модель содержит асинхронно выполняемые блоки, зависящие от времени выборки:
| Реконструируйте, чтобы удалить блоки, зависящие от времени выборки. |
Асинхронно выполняемые блоки, зависящие от времени выборки, помечаются, только если присутствуют блоки Triggered и Function-call.
Не выполняется для библиотечных моделей.
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение all.
Анализ содержимого связанных с библиотекой блоков. По умолчанию для входного параметра Follow links установлено значение on.
Код чека: mathworks.hism.hisl_0013
Проверьте конфигурацию модели на наличие параметров диагностики, которые применяются к памяти хранилища данных и могут повлиять на безопасность.
Эта проверка проверяет, что параметры конфигурации диагностики модели, относящиеся к памяти хранилища данных, установлены оптимально для генерации кода для приложения, связанного с безопасностью.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
Диагностика, которая определяет, пытается ли модель считать данные из хранилища данных, в котором она не сохранила данные на текущем временном шаге, установлена на значение, отличное от Enable all as errors. Чтение данных перед их записью может привести к использованию устаревших данных или данных, которые не инициализированы. | Задайте параметр «Обнаружить чтение перед записью» в диалоговом окне «Параметры конфигурации» или задайте параметр. ReadBeforeWriteMsg кому Enable all as errors. |
Диагностика, которая определяет, пытается ли модель сохранить данные в хранилище данных после предварительного считывания данных из него на текущем временном шаге, установлена на значение, отличное от Enable all as errors. Запись данных после их считывания может привести к использованию устаревших или неверных данных. | Установите параметр Detect write после чтения в диалоговом окне Configuration Parameters или задайте параметр WriteAfterReadMsg кому Enable all as errors. |
Диагностика, которая определяет, пытается ли модель сохранить данные в хранилище данных дважды последовательно на текущем временном шаге, устанавливается на значение, отличное от Enable all as errors. Запись данных дважды за один шаг времени может привести к непредсказуемым данным. | Установите параметр Detect write after write в диалоговом окне Configuration Parameters или задайте параметр WriteAfterWriteMsg кому Enable all as errors. |
Диагностика, обнаруживающая, когда одна задача считывает данные из блока памяти хранилища данных, в который другая задача записывает данные none или warning. Чтение или запись данных в различных задачах в многозадачном режиме может привести к повреждению или непредсказуемости данных. | Задайте хранилище данных многозадачности в диалоговом окне «Параметры конфигурации» или задайте параметр MultiTaskDSMMsg кому error. |
Диагностика обнаруживает, что для параметра Дублировать имена хранилища данных не установлено значение error. | Задайте повторяющиеся имена хранилищ данных в диалоговом окне «Параметры конфигурации» или задайте параметр UniqueDataStoreMsg кому error. |
Если щелкнуть Изменить параметры (Modify Settings), настраиваются параметры диагностики модели, которые применяются к памяти хранилища данных и могут повлиять на безопасность.
Не выполняется для библиотечных моделей.
Не допускает исключения блоков или диаграмм.
Код чека: mathworks.hism.hisl_0015
Эта проверка идентифицирует блоки Merge, которые не подключены напрямую к условно выполняемой подсистеме и имеют параметр Allow unequal port widths (Разрешить неравную ширину портов), установленный на.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Блок объединения не подключен непосредственно к условно выполняемой подсистеме. | Переделать так, чтобы блоки Merge соединялись непосредственно с условно выполненными подсистемами. |
| Параметр блока «Объединение» «Разрешить неравную ширину порта» имеет значение «Включено». | Установите параметр блока объединения Разрешить неравную ширину порта в значение off |
| Многократная подсистема выполняется в течение временного шага в условно выполненных подсистемах. | Укажите выполнение условно выполняемых подсистем так, чтобы в течение временного шага выполнялась только одна подсистема. |
| Параметр Outport block Output when disabled не установлен как удерживаемый для каких-либо условно выполненных подсистем в модели. | Установите параметр Outport block Output, если он отключен, как удерживаемый для каждой объединяемой условно выполняемой подсистемы. |
Эта проверка не будет проверять порядок выполнения для условно выполненных подсистем.
Не выполняется для библиотечных моделей.
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение all.
Анализ содержимого связанных с библиотекой блоков. По умолчанию для входного параметра Follow links установлено значение on.
Код чека: mathworks.hism.hisl_0016
Эта проверка проверяет использование:
Блоки, приравнивающие типы с плавающей запятой, включая блоки «Реляционный оператор», «Сравнить с константой», «Сравнить с нулем», «Знак» и «Обнаружить изменение».
Операторы равенства (= = и ~ =) в выражениях в блоках if.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Модель или подсистема содержит блок, вычисляющий реляционный оператор, который использует оператор = или ~ = для сравнения сигналов с плавающей запятой. Использование этих операторов в сигналах с плавающей запятой ненадежно и непредсказуемо из-за проблем точности с плавающей запятой. Эти операторы могут привести к непредсказуемым результатам в сгенерированном коде. | Для идентифицированного блока выполните одно из следующих действий:
|
Не выполняется для библиотечных моделей.
Анализ содержимого связанных блоков библиотеки.
Анализирует содержимое во всех маскированных подсистемах.
Допускает исключения блоков и диаграмм.
Код чека: mathworks.hism.hisl_0017
Эта проверка проверяет использование блоков, которые вычисляют реляционные операторы, включая блоки Relational Operator, Compare To Constant, Compare To Zero и Detect Change.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Модель или подсистема содержит блок, вычисляющий реляционный оператор, который работает с различными типами данных. Это условие может привести к непредсказуемым результатам в сгенерированном коде. | Для идентифицированных блоков используйте общие типы данных в качестве входных данных. Блоки преобразования типов данных можно использовать для изменения типов входных данных. |
| Модель или подсистема содержит блок, вычисляющий реляционный оператор, не имеющий логического выхода. Это условие может привести к непредсказуемым результатам в сгенерированном коде. | Для указанных блоков на панели «Параметры блока» > «Атрибуты сигнала» задайте для параметра «Тип данных вывода» значение boolean. |
Не выполняется для библиотечных моделей.
Анализ содержимого связанных блоков библиотеки. По умолчанию для входного параметра Follow links установлено значение on.
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение all.
Допускает исключения блоков и диаграмм.
Код чека: mathworks.hism.hisl_0018
Определите использование логических блоков оператора, которые могут повлиять на безопасность.
Эта проверка проверяет использование блоков логических операторов.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Модель или подсистема содержит блок логического оператора, который имеет входы или выходы, не являющиеся логическими входами или выходами. Блок может привести к равенству с плавающей запятой или сравнениям неравенства в сгенерированном коде. |
|
Не выполняется для библиотечных моделей.
Анализ содержимого связанных блоков библиотеки. По умолчанию для входного параметра Follow links установлено значение on.
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение all.
Допускает исключения блоков и диаграмм.
Код чека: mathworks.hism.hisl_0019
Определение блоков битовых операций со подписанными типами данных в качестве входных данных
Эта проверка определяет использование побитовых операций для типов входных и выходных данных. Проверка также рассматривает другие блоки битовых операций следующим образом:
Бит-клир
Битовый набор
Побитовый оператор
Извлечь биты
Арифметика сдвига
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Побитовые операции не используются с подписанными типами данных. | Использовать подписанный тип данных для побитовых операций. |
Допускает исключения блоков и диаграмм.
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение all.
Анализ содержимого связанных с библиотекой блоков. По умолчанию для входного параметра Follow links установлено значение on.
Код чека: mathworks.hism.hisl_0020
Определите блоки, не поддерживаемые генерацией кода или не рекомендуемые для развертывания производственного кода C/C + +.
Эта проверка частично определяет конструкции модели, которые не рекомендуются для генерации производственного кода C/C + +. Для Simulink Coder™ и Embedded Coder ® эти идентификаторы конструкции модели отображаются в таблицах Simulink Block Support (Simulink Coder ).
В некоторых случаях эта проверка помечает блоки, которые поддерживаются для создания кода. Для этих блоков необходимо просмотреть сведения о сноске, содержащиеся в заметках поддержки, и выполнить рекомендованное действие, предоставленное менеджером модели.
Доступно с проверкой Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Модель или подсистема содержит блоки, которые не должны использоваться для развертывания производственного кода. | Рассмотрите возможность замены блоков, перечисленных в результатах. Щелкните элемент из списка сомнительных элементов, чтобы найти условие. |
| Модель или подсистема содержит блоки, которые поддерживаются, но не рекомендуются для создания производственного кода. | Просмотрите примечания по поддержке и следуйте рекомендациям, предоставленным менеджером модели. |
Выполняется для библиотечных моделей.
Анализ содержимого связанных блоков библиотеки.
Анализирует содержимое в маскированных подсистемах.
Допускает исключения блоков и диаграмм.
DO-331, Раздел MB.6.3.2.b - Требования низкого уровня являются точными и последовательными
hisl_0020: Блоки не рекомендуются для соответствия MISRA C:2012
Блоки и продукты, поддерживаемые для создания кода (Simulink Coder)
МЭК 61508-3, Таблица A.3 (3) - Поднабор языка
МЭК 62304, 5.5.3 - Критерии приемки установки программного обеспечения
ISO 26262-6, таблица 1 (1b) - Использование языковых подмножеств
EN 50128, Таблица A.4 (11) - Поднабор языка
Блоки и продукты, поддерживаемые для создания кода (Simulink Coder)
Код чека: mathworks.hism.hisl_0021
Идентификация блоков с несогласованным методом индексирования.
Использование несогласованных методов индексирования блоков может привести к ошибкам моделирования. Для всех блоков следует использовать согласованный метод векторной индексации. Методы индексирования основаны на нуле, на единице или задаются пользователем.
Блоки, поддерживающие настраиваемое индексирование:
Блоки, поддерживающие индексирование только на основе одного объекта:
Fcn (устарело)
Таблица перехода состояний (поток состояний)
Последовательность испытаний (Simulink Test)
Таблица истинности (Stateflow)
Диаграмма статофлоу с языком действий MATLAB
Функция таблицы истинности с языком действий MATLAB
Блоки, поддерживающие только индексирование на основе нуля:
Диаграмма статофлоу с языком действий C
Функция таблицы истинности с языком действий C
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Модель или подсистема содержит блоки с несогласованными методами индексирования. Методы индексирования основаны на нуле, на единице или задаются пользователем. | Измените модель, чтобы использовать единый согласованный метод индексирования. |
Выполняется для библиотечных моделей.
Не анализирует содержимое связанных с библиотекой блоков.
Анализ содержимого в маскированных подсистемах, не имеющих рабочих пространств и диалоговых окон.
Допускает исключения блоков и диаграмм.
Код чека: mathworks.hism.hisl_0022
Этот флажок Определяет блоки с индексными сигналами, которые имеют типы данных, отличные от целых чисел или перечисления, и находятся в диапазоне индексированных значений.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Один или несколько блоков Simulink в модели имеют индексные сигналы, имеющие типы данных, отличные от целочисленных или перечисляемых. | Измените тип данных блочных индексных сигналов на целочисленный или перечисляемый тип данных, который охватывает диапазон индексированных значений. |
| Один или несколько функциональных блоков MATLAB имеют индексные переменные с недопустимыми типами данных. | Измените тип данных индексных переменных на целочисленный или перечисляемый тип данных, который охватывает диапазон индексированных значений. |
| Одна или несколько диаграмм Stateflow в модели имеют переменные индекса, имеющие типы данных, отличные от целочисленных или перечисляемых. | Измените тип данных индексных сигналов блоков на целочисленный или перечисленный тип данных, который охватывает диапазон индексированных значений. |
Эта проверка не поддерживает индексы набора диалоговых окон.
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение graphical.
Анализ содержимого связанных с библиотекой блоков. По умолчанию для входного параметра Follow links установлено значение on.
Допускает исключения блоков и диаграмм.
Код чека: mathworks.hism.hisl_0023
Проверьте параметры блока вариантов для параметров, которые могут привести к коду, не отслеживающему требования.
Эта проверка проверяет, установлены ли параметры блока вариантов для генерации кода в соответствии с требованиями.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Опция создания условий препроцессора выбирается в одном или нескольких блоках вариантов в модели. | Чтобы упростить трассировку кода в соответствии с требованиями, рекомендуется очистить опцию создания предварительных условий в блоках вариантов. |
Не выполняется для библиотечных моделей.
Анализ содержимого связанных блоков библиотеки.
Анализирует содержимое в маскированных подсистемах.
Не допускает исключения блоков или диаграмм.
Код чека: mathworks.hism.hisl_0024
Определение блоков ввода корневой модели с отсутствующим или наследуемым временем выборки, типами данных или размерами порта.
Использование блоков ввода корневой модели, не имеющих определенного времени выборки, типов данных или размеров порта может привести к нежелательным результатам моделирования. Simulink выполняет обратное распространение размеров, времени выборки и типов данных из нижестоящих блоков, если эти значения не назначены явно. Можно задать свойства блока Inport с параметрами блока или сигнальные объекты Simulink, которые явно разрешаются подключенными сигнальными линиями. При выполнении проверки таблица результатов содержит ссылки на блоки Inport и сигнальные объекты, которые не проходят, а также условия, запускающие предупреждение.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
Отсутствует размер порта - модель содержит блоки Inport с наследуемыми размерами порта. | Для перечисленных блоков ввода и сигнальных объектов Simulink укажите размеры порта. |
Отсутствующий тип данных сигнала - модель содержит блоки Inport с наследуемыми типами данных. | Для перечисленных блоков ввода и сигнальных объектов Simulink укажите типы данных. |
Отсутствует время выборки порта - модель содержит блоки Inport с наследуемыми временами выборки. | Для перечисленных блоков ввода и сигнальных объектов Simulink укажите время выборки. Время выборки для корневых портов с типом шины должно соответствовать времени выборки, указанному в конечных элементах объекта шины. |
Неявное разрешение для сигнального объекта Simulink - модель содержит имена сигнальных блоков Inport, которые неявно разрешаются для сигнального объекта Simulink в базовой рабочей области, рабочей области модели или словаре данных Simulink. | Для перечисленных сигнальных объектов Simulink в диалоговом окне свойств выберите свойство signal Имя сигнала должно разрешаться в сигнальный объект Simulink. Чтобы задать этот параметр программным способом, используйте параметр порта MustResolityToSignalObject. |
Не выполняется для библиотечных моделей.
Допускает исключения блоков и диаграмм.
Следующие конфигурации проходят эту проверку:
Параметры конфигурации > Решатель > Временное ограничение периодической выборки установлено на Ensure sample time independent
Для моделей с функцией экспорта наследуемое время выборки не отмечается.
Код чека: mathworks.hism.hisl_0025
Определение блоков ввода корневого уровня с отсутствующими или ошибочными минимальными или максимальными значениями диапазона.
Проверка идентифицирует блоки ввода корневого уровня с отсутствующими или ошибочными минимальными или максимальными значениями диапазона. Можно задать минимальное и максимальное значения блока ввода с параметрами блока или сигнальными объектами Simulink, которые явно разрешаются подключенными сигнальными линиями. Таблица результатов содержит ссылки на блоки Inport и сигнальные объекты, которые не проходят проверку, а также условия, запускающие предупреждение.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
Отсутствующий диапазон - модель содержит блоки Inport с числовыми типами данных с отсутствующими параметрами диапазона (минимальными и/или максимальными). | Для перечисленных блоков ввода и сигнальных объектов Simulink задайте скалярные минимальные и максимальные параметры. |
Отсутствующий диапазон для объекта шины - объекты шины, определяющие блоки Inport, имеют элементы шины с отсутствующими диапазонами. | Для перечисленных элементов шины, чтобы задать диапазон интерфейса модели, укажите скалярные минимальные и максимальные параметры. |
Указанный диапазон будет игнорироваться - минимальные или максимальные значения в объектах Inports или Simulink не поддерживаются для типов данных шины. Значения игнорируются при проверке диапазона. | Чтобы включить проверку диапазона, укажите минимальное и максимальное значения сигналов на элементах шины объектов шины, определяющих тип данных. |
Тип данных не указан - модель содержит блоки Inport или сигнальные объекты Simulink с наследуемыми типами данных. | Укажите один из поддерживаемых типов данных:
|
Неявное разрешение для сигнального объекта Simulink - модель содержит имена сигнальных блоков Inport, которые неявно разрешаются для сигнального объекта Simulink в базовой рабочей области, рабочей области модели или словаре данных Simulink. | Для перечисленных сигнальных объектов Simulink в диалоговом окне свойств выберите свойство signal Имя сигнала должно разрешаться в сигнальный объект Simulink. Чтобы задать этот параметр программным способом, используйте параметр порта MustResolityToSignalObject. |
Не выполняется для библиотечных моделей.
Допускает исключения блоков и диаграмм.
Код чека: mathworks.hism.hisl_0026
Определите блоки исходящего порта корневого уровня с отсутствующими или ошибочными минимальными или максимальными значениями диапазона.
Проверка идентифицирует блоки Outport корневого уровня с отсутствующими или ошибочными минимальными или максимальными значениями диапазона. Можно задать минимальное и максимальное значения блока Outport с параметрами блока или сигнальными объектами Simulink, которые явно разрешаются подключенными сигнальными линиями. Таблица результатов содержит ссылки на блоки Outport, которые не проходят проверку, а также условия, запускающие предупреждение.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
Отсутствующий диапазон - модель содержит блоки Outport с числовыми типами данных с отсутствующими параметрами диапазона (минимальными и/или максимальными). | Для перечисленных блоков Outport и сигнальных объектов Simulink задайте скалярные минимальные и максимальные параметры. |
Отсутствующий диапазон для объекта шины - объекты шины, определяющие блоки Outport, имеют конечные элементы с отсутствующими диапазонами. | Для перечисленных конечных элементов, чтобы задать диапазон интерфейса модели, укажите скалярные минимальные и максимальные параметры. |
Диапазон, указанный на выходе, будет игнорироваться - минимальные или максимальные значения на выходе или сигнальных объектах Simulink не поддерживаются для типов данных шины. Значения игнорируются при проверке диапазона. | Чтобы включить проверку диапазона, укажите минимальное и максимальное значения сигнала на конечных элементах объектов шины, определяющих тип данных. |
Тип данных шины не указан - модель содержит объекты блока Outport или сигнала Simulink с наследуемыми типами данных шины. | Для блоков Outport и сигнальных объектов Simulink укажите один из поддерживаемых типов данных:
|
Неявное разрешение для сигнального объекта Simulink - модель содержит имена сигнальных блоков Outport, которые неявно разрешаются для сигнального объекта Simulink в базовой рабочей области, рабочей области модели или словаре данных Simulink. | Для перечисленных сигнальных объектов Simulink в диалоговом окне свойств выберите свойство signal Имя сигнала должно разрешаться в сигнальный объект Simulink. Чтобы задать этот параметр программным способом, используйте параметр порта MustResolityToSignalObject. |
Эта проверка не помечает порты с типом данных Enum или Boolean, если не установлены значения min max.
Не выполняется для библиотечных моделей.
Допускает исключения блоков и диаграмм.
Код чека: mathworks.hism.hisl_0029
Определите использование блоков математических операций, которые могут повлиять на безопасность.
Эта проверка проверяет использование блоков присвоения.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Модель или подсистема может содержать блоки Assignment с неполной инициализацией массива (не в подсистеме итератора), которые не имеют параметра block Action, если какому-либо выходному элементу не присвоено значение Error или Warning. | Задайте параметр блока Действие, если какому-либо выходному элементу не присвоено одно из рекомендуемых значений:
|
| Модель или подсистема может содержать блоки Assignment в итераторной подсистеме, и параметр Action, если какой-либо выходной элемент не назначен, не имеет значение Error. | Установите параметр блока Действие, если какой-либо выходной элемент не назначен ошибке. |
Не выполняется для библиотечных моделей.
Анализ содержимого связанных блоков библиотеки.
Анализирует содержимое во всех маскированных подсистемах.
Допускает исключения блоков и диаграмм.
Код чека: mathworks.hism.hisl_0031
Эта проверка проверяет имя файла модели, чтобы убедиться, что имя соответствует рекомендуемым рекомендациям.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Имя файла содержит недопустимые символы. | Переименуйте файл. Допустимыми символами являются a-z, A-Z, 0-9 и символ подчеркивания (_). |
| Имя файла начинается с числа. | Убедитесь, что имя файла не начинается с числа. |
| Имя файла начинается с символа подчеркивания («_»). | Убедитесь, что имя файла не начинается с символа подчеркивания («_»). |
| Имя файла заканчивается символом подчеркивания («_»). | Убедитесь, что имя файла не заканчивается символом подчеркивания («_»). |
| Расширение файла содержит одно или несколько подчеркиваний. | Измените расширение файла. |
| Имя файла имеет последовательные подчеркивания. | Переименуйте файл, чтобы исключить заключительное подчеркивание. |
| Имя файла содержит более одной точки (. «»). | Убедитесь, что имя файла не содержит более одной точки («».). |
| имя файла - ключевое слово C/C + + или MATLAB или встроенная функция | Переименуйте файл. |
Выполняется для библиотечных моделей.
Код чека: mathworks.hism.hisl_0032
Проверьте имена объектов модели.
Эта проверка проверяет, соответствуют ли следующие имена объектов модели вашим собственным рекомендациям по моделированию или рекомендациям по моделированию с высокой целостностью. Проверка также проверяет, что объект модели не использует зарезервированное имя.
Блоки
Сигналы
Параметры
Автобусы
Объекты потока состояния
Зарезервированные имена:
Ключевые слова MATLAB
Зарезервированные ключевые слова для C, C++ и генерации кода. Полный список см. в разделе Зарезервированные ключевые слова (Simulink Coder)
int8 , uint8
int16, uint16
int32, uint32
inf, Inf
NaN, nan
eps
intmin, intmax
realmin, realmax
pi
infinity
Nil
Примечание
В некоторых случаях Model Advisor сообщает о проблеме в нескольких подчеках этой проверки.
Доступно при проверке Simulink.
Чтобы задать имя стандарта именования и имя объекта модели, которые будут помечены флажками, используйте редактор конфигурации Model Advisor.
Откройте редактор конфигурации модели и перейдите к разделу Проверка имен объектов модели. На панели Входные параметры (Input Parameters) для каждого из объектов модели выберите один из следующих вариантов.
MAB для использования стандарта именования MAB. При выборе MAB, проверка использует регулярное выражение (^.{32,}$)|([^a-zA-Z_0-9])|(^\d)|(^ )|(__)|(^_)|(_$) чтобы проверить, что имена:
Используйте следующие символы: a-z, A-Z, 0-9и подчеркивание (_).
Не начинайте с числа.
Не используйте подчеркивания в начале или конце строки.
Не используйте несколько последовательных подчеркиваний.
Используйте строки длиной менее 32 символов.
Custom для использования собственного стандарта именования. При выборе Custom, вы можете ввести собственное регулярное выражение для запрещенных <model object> имена. Например, если требуется разрешить несколько последовательных подчеркиваний, введите (^.{32,}$)|([^a-zA-Z_0-9])|(^\d)|(^ )|(^_)|(_$)
None если вы не хотите, чтобы проверка проверяла имя объекта модели
Нажмите кнопку «Применить».
Сохраните конфигурацию. При выполнении проверки с использованием этой конфигурации проверка использует заданные входные параметры.
| Состояние | Рекомендуемое действие |
|---|---|
| Имена объектов модели не соответствуют стандарту именования, указанному в входных параметрах. | Обновите имена объектов модели в соответствии с собственными рекомендациями или рекомендациями по обеспечению высокой целостности. |
Не выполняется для библиотечных моделей.
Не анализирует содержимое связанных с библиотекой блоков.
Не анализирует содержимое во всех маскированных подсистемах.
Допускает исключения блоков и диаграмм.
Код чека: mathworks.hism.hisl_0033
Проверьте наличие блоков таблицы подстановки, которые не генерируют код проверки за пределами диапазона.
Эта проверка проверяет, что следующие блоки генерируют код для защиты от входов, выходящих за пределы диапазона допустимых значений точек останова:
Эта проверка также проверяет, что блоки интерполяции с использованием Prelookup генерируют код для защиты от входов, выходящих за пределы диапазона допустимых значений индекса.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
Блок таблицы подстановки не создает код проверки за пределами диапазона. | Измените настройку в диалоговом окне блока так, чтобы создавался код проверки за пределами диапазона.
|
Выполняется для библиотечных моделей.
Не анализирует содержимое связанных с библиотекой блоков.
Анализирует содержимое во всех маскированных подсистемах.
Допускает исключения блоков и диаграмм.
Нажатие кнопки «Изменить» проверяет, настроены ли блоки таблицы поиска для создания кода проверки за пределами диапазона.
Код чека: mathworks.hism.hisl_0034
Определите использование блоков маршрутизации сигналов, которые могут повлиять на безопасность.
Эта проверка идентифицирует блоки модели или подсистемы Switch, которые могут генерировать код с операциями неравенства (~ =) в выражениях, содержащих переменную или константу с плавающей запятой.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Модель или подсистема содержит блок Switch, который может генерировать код с операциями неравенства (~ =) в выражениях, где по крайней мере одна сторона выражения содержит переменную или константу с плавающей запятой. Блок Switch может вызвать сравнение неравенства с плавающей запятой в сгенерированном коде. | Для идентифицированного блока выполните одно из следующих действий:
|
Не выполняется для библиотечных моделей.
Анализ содержимого связанных блоков библиотеки.
Анализирует содержимое во всех маскированных подсистемах.
Допускает исключения блоков и диаграмм.
Код чека: mathworks.hism.hisl_0036
Проверка конфигурации модели на наличие диагностических настроек, применимых к сохранению файлов модели
Эта проверка проверяет, что параметры конфигурации модели установлены оптимально для сохранения модели для приложения, связанного с безопасностью.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
Для диагностики, определяющей, содержит ли модель отключенные библиотечные связи перед сохранением модели, устанавливается значение none или warning. Если это условие не обнаружено, может быть создан неправильный код. | Блок-схема Set содержит отключенные библиотечные ссылки в диалоговом окне Configuration Parameters или set parameter SaveWithDisabledLinkMsg кому error. |
Для диагностики, определяющей, содержит ли модель связи с библиотекой, которые используют параметры, не находящиеся в маске, перед сохранением модели устанавливается значение none или warning. Если это условие не обнаружено, может быть создан неправильный код. | Блок-схема набора содержит параметризованные связи библиотеки в диалоговом окне «Параметры конфигурации» или в параметре набора SaveWithParameterizedLinksMsg кому error. |
При нажатии кнопки Изменить настройки (Modify Settings) настраиваются настройки диагностики модели, применимые к сохранению файла модели.
Не выполняется для библиотечных моделей.
Не допускает исключения блоков или диаграмм.
Код чека: mathworks.hism.hisl_0037
Проверьте конфигурацию модели на наличие параметров ссылок на модель, которые могут повлиять на безопасность.
Эта проверка проверяет, что параметры конфигурации модели для ссылки на модель установлены оптимально для создания кода для приложения, связанного с безопасностью.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Ссылочная модель настраивается таким образом, что ее цель перестраивается всякий раз, когда вы обновляете, моделируете или генерируете код для модели, или если программа Simulink обнаруживает изменения в известных зависимостях. Эти настройки конфигурации могут привести к ненужной регенерации кода, что приведет к изменению только даты файла и замедлению процесса построения при использовании ссылок на модель. | Задайте команду Перестроить (Rebuild) на панели Привязка модели (Model Referencing) в диалоговом окне Параметры конфигурации (Configuration Parameters) или задайте параметр UpdateModelReferenceTargets кому Never или If any changes detected. |
Для диагностики, определяющей необходимость восстановления целевого объекта, установлено значение None или Warn if targets require rebuild. Для приложений, связанных с безопасностью, ошибка должна предупреждать разработчиков моделей о несогласованности родительской и ссылочной моделей. Этот диагностический параметр доступен, только если для параметра Rebuild установлено значение Never. | Задайте параметр конфигурации Никогда не перестраивать диагностику на панели Привязка модели (Model Referencing) в диалоговом окне Параметры конфигурации (Configuration Parameters) или задайте параметр CheckModelReferenceTargetMessage кому error. |
Способность передавать скалярный корневой ввод по значению нарушена. Эта возможность должна быть отключена, поскольку скалярные значения могут изменяться в течение временного шага и приводить к непредсказуемым данным. Этот параметр доступен только в том случае, если для параметра конфигурации Общее число экземпляров, разрешенных для модели верхнего уровня, задано значение Один или Несколько (ModelReferenceNumInstancesAllowed является single или multi). | На панели Привязка модели (Model Referencing) диалогового окна Параметры конфигурации (Configuration Parameters) задайте значение для ввода скалярного корня фиксированного размера по значению для генерации кода или задайте параметр ModelReferencePassRootInputsByReference кому off. |
| Модель настроена так, чтобы минимизировать вхождения алгебраического цикла. Эта конфигурация несовместима с рекомендуемой настройкой функции Single output/update для кода встраиваемых систем. | В диалоговом окне «Параметры конфигурации» установите параметр «Минимизировать вхождения алгебраического цикла» или «Задать параметр». ModelReferenceMinAlgLoopOccurrences кому off. |
При нажатии кнопки Изменить параметры (Modify Settings) настраиваются параметры привязки модели, которые могут повлиять на безопасность.
Подчеки зависят от результатов подчек, отмеченных буквой D в таблице результатов в окне Мастер модели (Model Advisor).
Не выполняется для библиотечных моделей.
Не допускает исключения блоков или диаграмм.
Код чека: mathworks.hism.hisl_0038
Проверьте конфигурацию модели на наличие параметров генерации кода, которые могут повлиять на безопасность.
Эта проверка проверяет, что параметры конфигурации модели для генерации кода установлены оптимально для приложения, связанного с безопасностью.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Опция включения комментариев в созданный код очищается. Комментарии обеспечивают хорошую прослеживаемость между кодом и моделью. | Выберите Включить комментарии (Simulink Coder) на панели Создание кода (Code Generation) > Комментарии (Comments) в диалоговом окне Параметры конфигурации (Configuration Parameters) или задайте параметр GenerateComments кому on. |
| Опция включения комментариев, описывающих код блоков, очищается. Комментарии обеспечивают хорошую прослеживаемость между кодом и моделью. | Выберите команду Simulink block comments (Simulink Coder) на панели Code Generation (Создание кода) > Comments (Комментарии) в диалоговом окне Configuration Parameters (Параметры конфигурации) или задайте параметр SimulinkBlockComments кому on. |
| Опция включения комментариев, описывающих код для блоков, исключенных из модели, очищается. Комментарии обеспечивают хорошую прослеживаемость между кодом и моделью. | Выберите Показать устраненные блоки (Simulink Coder) на панели Создание кода (Code Generation) > Комментарии (Comments) в диалоговом окне Параметры конфигурации (Configuration Parameters) или задайте параметр ShowEliminatedStatement кому on. |
Опция включения имен переменных параметров и исходных блоков в качестве комментариев в объявление структуры параметров модели в очищается. Комментарии обеспечивают хорошую прослеживаемость между кодом и моделью. | Выберите пункт Подробные комментарии для класса хранения «Модель по умолчанию» (Simulink Coder) на панели Создание кода (Code Generation) > Комментарии (Comments) в диалоговом окне Параметры конфигурации (Configuration Parameters) или задайте параметр ForceParamTrailComments кому on. |
| Опция включения описаний требований, назначенных блокам Simulink как комментариям, очищается. Комментарии обеспечивают хорошую прослеживаемость между кодом и моделью. | Выберите «Требования в комментариях блоков» (Embedded Coder) на панели «Создание кода» > «Пользовательские комментарии» в диалоговом окне «Параметры конфигурации» или задайте параметр ReqsInCode кому on. |
При нажатии кнопки «Изменить параметры» настраиваются параметры создания кода модели, которые могут повлиять на безопасность.
Подчеки зависят от результатов подчек, отмеченных буквой D в таблице результатов в окне Мастер модели (Model Advisor).
Не выполняется для библиотечных моделей.
Не допускает исключения блоков или диаграмм.
hisl_0038: Параметры конфигурации > Создание кода > Комментарии
Параметры конфигурации модели: Комментарии (Simulink Coder)
Параметры конфигурации модели: идентификаторы генерации кода (Simulink Coder)
Параметры конфигурации модели: интерфейс генерации кода (Simulink Coder)
Параметры конфигурации модели: стиль кода (встроенный кодер)
Код чека: mathworks.hism.hisl_0039
Проверьте конфигурацию модели на наличие параметров генерации кода, которые могут повлиять на безопасность.
Эта проверка проверяет, что параметры конфигурации модели для генерации кода установлены оптимально для приложения, связанного с безопасностью.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Выбрана опция для создания неокончательных данных и операций. Поддержка неокончательных чисел неуместна для встраиваемых систем реального времени. | Снимите флажок «Поддержка: неграничные номера» (Simulink Coder) на панели «Создание кода» > «Интерфейс» в диалоговом окне «Параметры конфигурации» или задайте параметр. SupportNonFinite кому off. |
| Выбрана опция создания и сохранения целочисленных счетчиков для абсолютного и истекшего времени. Поддержка абсолютного времени неуместна для систем, связанных с безопасностью в реальном времени. | Снимите флажок Support: absolute time (Embedded Coder) на панели Code Generation (Создание кода) > Interface (Интерфейс) диалогового окна Configuration Parameters (Параметры конфигурации) или задайте параметр SupportAbsoluteTime кому off. |
| Выбрана опция создания кода для блоков, использующих непрерывное время. Поддержка непрерывного времени неуместна для систем, связанных с безопасностью в реальном времени. | Снимите флажок Support: continuous time (Embedded Coder) на панели Code Generation (Создание кода) > Interface (Интерфейс) диалогового окна Configuration Parameters (Параметры конфигурации) или задайте параметр SupportContinuousTime кому off. |
| Выбрана опция создания кода для неинлинных S-функций. Эта опция требует поддержки нефиксированных номеров, что неуместно для систем, связанных с безопасностью в реальном времени. | Снимите флажок «Поддержка: неинлинированные S-функции (встроенный кодер)» в диалоговом окне «Параметры конфигурации» или задайте параметр SupportNonInlinedSFcns кому off. |
| Выбор произвести образцовые вызовы функции, совместимые с главным модулем программы цели pre-R2012a GRT, отобран. Эта опция неуместна для систем, связанных с безопасностью в реальном времени. | Снимите флажок Classic call interface (Simulink Coder) на панели Code Generation (создание кода) > Interface (интерфейс) в диалоговом окне Configuration Parameters (параметры конфигурации) или задайте параметр GRTInterface кому off. |
Опция для создания функция очищена. Один вызов функций вывода и обновления упрощает интерфейс с операционной системой реального времени (RTOS) и упрощает верификацию генерируемого кода. | Выберите функцию Single output/update (Simulink Coder) в меню Code Generation (создание кода) > Interfacepane (интерфейс) в диалоговом окне Configuration Parameters (параметры конфигурации) или задайте параметр CombineOutputUpdateFcns кому on. |
Опция для создания выбрана функция. Эта функция освобождает динамическую память, которая непригодна для систем, связанных с безопасностью в реальном времени. | Снимите флажок Завершить функцию (встроенный кодер) на панели Создание кода (Code Generation) в диалоговом окне Параметры конфигурации (Configuration Parameters) или задайте параметр IncludeMdlTerminateFcn кому off. |
| Опция регистрации или контроля состояния ошибок очищается. Если этот параметр не выбран, продукт Simulink Coder создает дополнительный код, который может оказаться недоступным для тестирования. | Выберите Удалить поле состояния ошибки в структуре данных модели в реальном времени (Embedded Coder) на панели Code Generation > Interface в диалоговом окне Configuration Parameters или задайте параметр SuppressErrorStatus кому on. |
| Выбрано ведение журнала файлов MAT. Этот параметр добавляет дополнительный код для регистрации контрольных точек в MAT-файл, который не поддерживается встроенными целями. Используйте эту опцию только в тестовых жгутах. | Снимите флажок MAT-file logging (Simulink Coder) в диалоговом окне Configuration Parameters (параметры конфигурации) или задайте параметр MatFileLogging кому off. |
При нажатии кнопки «Изменить параметры» настраиваются параметры создания кода модели, которые могут повлиять на безопасность.
Подчеки зависят от результатов подчек, отмеченных буквой D в таблице результатов в окне Мастер модели (Model Advisor).
Не выполняется для библиотечных моделей.
Не допускает исключения блоков или диаграмм.
hisl_0039: Параметры конфигурации > Создание кода > Интерфейс
Параметры конфигурации модели: Комментарии (Simulink Coder)
Параметры конфигурации модели: идентификаторы генерации кода (Simulink Coder)
Параметры конфигурации модели: интерфейс генерации кода (Simulink Coder)
Параметры конфигурации модели: стиль кода (встроенный кодер)
Код чека: mathworks.hism.hisl_0040
Проверьте настройки решателя в конфигурации модели, которые относятся ко времени моделирования и могут повлиять на безопасность.
Эта проверка проверяет, что параметры конфигурации решателя модели, относящиеся к времени моделирования, установлены оптимально для генерации кода для приложения, связанного с безопасностью.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
Параметр решателя, определяющий время начала моделирования или генерируемого кода, имеет значение, отличное от | В диалоговом окне «Параметры конфигурации» задайте время начала или задайте параметр. |
Параметр решателя, определяющий время остановки моделирования или созданного кода, имеет отрицательное значение или положительное значение, превышающее значение срока службы приложения (дней). По умолчанию срок службы приложения (дней) равен | В диалоговом окне «Параметры конфигурации» задайте время остановки или задайте параметр. |
При нажатии кнопки Изменить параметры (Modify Settings) настраиваются параметры диагностики модели, которые применяются к решателям и могут повлиять на безопасность.
Не выполняется для библиотечных моделей.
Не допускает исключения блоков или диаграмм.
Анализирует содержимое в маскированных подсистемах.
Код чека: mathworks.hism.hisl_0041
Проверьте настройки решателя в конфигурации модели, которые применяются к решателям и могут повлиять на безопасность.
Эта проверка проверяет, что параметры конфигурации решателя модели, относящиеся к решателям, установлены оптимально для создания кода для приложения, связанного с безопасностью.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
Для настройки решателя для задания типа решателя для моделирования модели задано значение | В диалоговом окне «Параметры конфигурации» задайте тип или параметр. |
Параметр решателя, определяющий решатель для вычисления состояний модели во время моделирования или генерации кода, имеет значение, отличное от | В диалоговом окне «Параметры конфигурации» установите для параметра «Решатель» значение |
При нажатии кнопки Изменить параметры (Modify Settings) настраиваются параметры диагностики модели, которые применяются к решателям и могут повлиять на безопасность.
Не выполняется для библиотечных моделей.
Не допускает исключения блоков или диаграмм.
Анализирует содержимое в маскированных подсистемах.
Код чека: mathworks.hism.hisl_0042
Проверьте настройки решателя в конфигурации модели, которые применяются к периодическим ограничениям времени выборки и могут повлиять на безопасность.
Эта проверка проверяет, что параметры конфигурации модели установлены оптимально, чтобы гарантировать, что модель работает с определенным набором приоритетов периодического времени выборки для приложения, связанного с безопасностью.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Параметр конфигурации Автоматически обрабатывать переход скорости для передачи данных. | Снимите флажок Автоматически обрабатывать переход скорости для передачи данных в диалоговом окне Параметры конфигурации (Configuration Parameters) или задайте параметр AutoInsertRateTranBlk кому off. |
Не выполняется для библиотечных моделей.
Не допускает исключения блоков или диаграмм.
Код чека: mathworks.hism.hisl_0043
Проверьте конфигурацию модели на наличие параметров диагностики, которые применяются к решателям и могут повлиять на безопасность.
Эта проверка проверяет, что параметры конфигурации диагностики модели, относящиеся к решателям, установлены оптимально для генерации кода для приложения, связанного с безопасностью.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
Для диагностики автоматического размыкания алгебраических петель установлено значение none или warning. Разрыв алгебраических циклов может влиять на предсказуемость порядка выполнения блока. Для приложений, связанных с безопасностью, разработчик модели должен знать, когда происходят такие разрывы. | Задайте алгебраический цикл на панели Диагностика (Diagnostics) > Решатель (Solver) в диалоговом окне Параметры конфигурации (Configuration Parameters) или задайте параметр AlgebraicLoopMsg кому error. Рассмотрите возможность явного разрыва таких циклов блоками единичной задержки, чтобы порядок выполнения был предсказуемым. Как минимум убедитесь, что результаты автоматического разрыва петель являются приемлемыми. |
Для диагностики автоматического размыкания алгебраических циклов для блоков модели, атомных подсистем и включенных подсистем устанавливается значение none или warning. Разрыв алгебраических циклов может влиять на предсказуемость порядка выполнения блока. Для приложений, связанных с безопасностью, разработчик модели должен знать, когда происходят такие разрывы. | Установите параметр Минимизировать алгебраический цикл (Minimize algebraic loop) на панели Диагностика (Diagnostics) > Решатель (Solver) в диалоговом окне Параметры конфигурации (Configuration Parameters) или ArtificialAlgebraicLoopMsg кому error. Рассмотрите возможность явного разрыва таких циклов блоками единичной задержки, чтобы порядок выполнения был предсказуемым. Как минимум убедитесь, что результаты автоматического разрыва петель являются приемлемыми. |
Для диагностики обнаружения потенциального конфликта в порядке выполнения блока установлено значение none или warning. Для приложений, связанных с безопасностью, порядок выполнения блоков должен быть предсказуемым. Разработчику модели необходимо знать, когда существуют конфликтующие приоритеты блоков. | Установить нарушение приоритета блока на панели Диагностика > Решатель в диалоговом окне Параметры конфигурации или задать параметр BlockPriorityViolationMsg кому error. |
Диагностика для определения того, автоматически ли программа Simulink изменяет решатель, размер шага или время остановки моделирования, установлена в none или warning. Такие изменения могут повлиять на работу сгенерированного кода. Для приложений, связанных с безопасностью, лучше обнаружить такие изменения, чтобы разработчик модели мог явно установить параметры на известные значения. | Задать автоматический выбор параметров решателя на панели Диагностика (Diagnostics) > Решатель (Solver) в диалоговом окне Параметры конфигурации (Configuration Parameters) или задать параметр SolverPrmCheckMsg кому error. |
Для диагностики обнаружения использования имени для нескольких состояний в модели установлено значение none. Имена состояний в модели должны быть уникальными. Для приложений, связанных с безопасностью, лучше обнаруживать конфликты имен, чтобы разработчик модели мог их исправить. | Задать конфликт имен состояний на панели Диагностика (Diagnostics) > Решатель (Solver) в диалоговом окне Параметры конфигурации (Configuration Parameters) или задать параметр StateNameClashWarn кому warning. |
При нажатии кнопки Изменить параметры (Modify Settings) настраиваются параметры диагностики модели, которые применяются к решателям и могут повлиять на безопасность.
Не выполняется для библиотечных моделей.
Не допускает исключения блоков или диаграмм.
Код чека: mathworks.hism.hisl_0044
Проверьте конфигурацию модели на наличие параметров диагностики, которые относятся к времени выборки и могут повлиять на безопасность.
Эта проверка проверяет, что параметры конфигурации диагностики модели, относящиеся к временам выборки, установлены оптимально для генерации кода для приложения, связанного с безопасностью.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
Диагностика для обнаружения того, когда исходный блок, такой как блок синусоидальной волны, наследует время выборки (указанное как -1), имеет значение none или warning. Использование наследуемого времени выборки для исходного блока может привести к непредсказуемым скоростям выполнения для исходного блока и связанных с ним блоков. Для приложений, связанных с безопасностью, исходные блоки должны иметь явное время выборки для предотвращения неправильной последовательности выполнения. | Блок «Задать источник» определяет время выборки -1 на панели «Диагностика» > «Время выборки» в диалоговом окне «Параметры конфигурации» или задает параметр. InheritedTslnSrcMsg кому error. |
Диагностика для обнаружения недопустимой передачи данных между двумя блоками, работающими в многозадачном режиме, установлена на none или warning. Такая передача данных не должна использоваться для встроенного кода реального времени. | Задайте переход данных многозадачности на панели «Диагностика» > «Образец времени» в диалоговом окне «Параметры конфигурации» или задайте параметр MultiTaskRateTransMsg кому error. |
Для диагностики для обнаружения подсистем, которые могут привести к повреждению данных или недетерминированному поведению, установлено значение none или warning. Эта диагностика определяет, работают ли условно выполняемые многоскоростные подсистемы (активизированные, запускаемые или функциональные) в многозадачном режиме. Такие подсистемы могут повреждать данные и вести себя непредсказуемо в средах реального времени, которые допускают вытеснение. | Задайте условно выполненную подсистему многозадачности на панели Диагностика > Время выборки в диалоговом окне Параметры конфигурации или задайте параметр MultiTaskCondExecSysMsg кому error. |
Для диагностики для проверки согласованности времени выборки между блоком спецификации сигнала и подключенным блоком назначения установлено значение none или warning. Превышение заданного времени выборки может привести к непредсказуемой скорости выполнения. | Установите в диалоговом окне Параметры конфигурации (Configuration Parameters) на панели Диагностика (Diagnostics) > Время выборки (Sample Time) Параметры выборки (Enforce sample times), указанные блоками Спецификация сигнала (Signal Specification) SigSpecEnsureSampleTimeMsg кому error. |
Диагностика обнаруживает, что для параметра Single task data transfer не установлено значение error. | Установить перенос данных одной задачи в диалоговом окне Параметры конфигурации или задать параметр SingleTaskRateTransMsg кому error. |
Диагностика обнаруживает, что для параметра Tasks with equal priority не установлено значение error. | Задать задачи с одинаковым приоритетом в диалоговом окне Параметры конфигурации (Configuration Parameters) или задать параметр TasksWithSamePriorityMsg кому error. |
Диагностика для определения, содержит ли модель S-функцию, которая не была явно задана для наследования времени выборки, установлена в none или warning. Эти параметры могут привести к непредсказуемому поведению. Разработчику модели необходимо знать, когда такая S-функция существует в модели, чтобы ее можно было модифицировать для получения предсказуемого поведения. | Задать неназначенную наследуемость времени образца
в диалоговом окне Параметры конфигурации (Configuration Parameters) или задать параметр UnknownTsInhSupMsg кому error. |
Если щелкнуть Изменить параметры (Modify Settings), настраиваются параметры диагностики модели, которые применяются к времени выборки и могут повлиять на безопасность.
Не выполняется для библиотечных моделей.
Не допускает исключения блоков или диаграмм.
Код чека: mathworks.hism.hisl_0045
Проверьте конфигурацию модели на наличие параметров оптимизации, которые могут повлиять на безопасность.
Эта проверка проверяет, что параметры конфигурации оптимизации модели установлены оптимально для создания кода для приложения, связанного с безопасностью. Хотя высокооптимизированный код является желательным для большинства систем реального времени, некоторые оптимизации могут иметь нежелательные побочные эффекты, которые влияют на безопасность.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Реализация логических сигналов в виде булевых данных очищается. Для кода, связанного с безопасностью, рекомендуется использовать строгий набор данных. | Выберите Configuration Parameter Implementate logic signals в качестве логических данных (в сравнении с двойными) или задайте параметр BooleanDataType кому on. |
Если щелкнуть Изменить параметры (Modify Settings), будут настроены параметры оптимизации модели, которые могут повлиять на безопасность.
Подчеки зависят от результатов подчек, отмеченных буквой D в таблице результатов в окне Мастер модели (Model Advisor).
Не выполняется для библиотечных моделей.
Не допускает исключения блоков или диаграмм.
Код чека: mathworks.hism.hisl_0046
Проверьте конфигурацию модели на наличие параметров оптимизации, которые могут повлиять на безопасность.
Эта проверка проверяет, что параметры конфигурации оптимизации модели установлены оптимально для создания кода для приложения, связанного с безопасностью. Хотя высокооптимизированный код является желательным для большинства систем реального времени, некоторые оптимизации могут иметь нежелательные побочные эффекты, которые влияют на безопасность.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Выбрана оптимизация сокращения блоков. Эта оптимизация позволяет удалить блоки из сгенерированного кода, что приводит к появлению требований без связанного кода и нарушений требований к отслеживаемости. | Очистить сокращение блока параметров конфигурации или задать параметр BlockReduction кому off. |
Если щелкнуть Изменить параметры (Modify Settings), будут настроены параметры оптимизации модели, которые могут повлиять на безопасность.
Подчеки зависят от результатов подчек, отмеченных буквой D в таблице результатов в окне Мастер модели (Model Advisor).
Не выполняется для библиотечных моделей.
Не допускает исключения блоков или диаграмм.
Код чека: mathworks.hism.hisl_0047
Проверьте конфигурацию модели на наличие параметров генерации кода, которые могут повлиять на безопасность.
Эта проверка проверяет, что параметры конфигурации модели для генерации кода установлены оптимально для приложения, связанного с безопасностью.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
Параметр, определяющий стиль для использования в скобках, имеет значение Minimum (Rely on C/C++ operators precedence) или в Nominal (Optimize for readability). Для приложений, связанных с безопасностью, явно укажите приоритет в скобках. | Задать параметр ParenthesesLevel кому Maximum (Specify precedence with parentheses). |
| Параметр, определяющий необходимость сохранения порядка операндов, очищается. Этот параметр повышает отслеживаемость созданного кода. | Задать параметр PreserveExpressionOrder кому on. |
При нажатии кнопки «Изменить параметры» настраиваются параметры создания кода модели, которые могут повлиять на безопасность.
Подчеки зависят от результатов подчек, отмеченных буквой D в таблице результатов в окне Мастер модели (Model Advisor).
Не выполняется для библиотечных моделей.
Не допускает исключения блоков или диаграмм.
hisl_0047: Параметры конфигурации > Создание кода > Стиль кода
Параметры конфигурации модели: Комментарии (Simulink Coder)
Параметры конфигурации модели: идентификаторы генерации кода (Simulink Coder)
Параметры конфигурации модели: интерфейс генерации кода (Simulink Coder)
Параметры конфигурации модели: стиль кода (встроенный кодер)
Код чека: mathworks.hism.hisl_0048
Проверьте конфигурацию модели на наличие параметров оптимизации, которые могут повлиять на безопасность.
Эта проверка проверяет, что параметры конфигурации оптимизации модели установлены оптимально для создания кода для приложения, связанного с безопасностью. Хотя высокооптимизированный код является желательным для большинства систем реального времени, некоторые оптимизации могут иметь нежелательные побочные эффекты, которые влияют на безопасность.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Модель включает в себя блоки, которые зависят от прошедшего или абсолютного времени и сконфигурированы для минимизации объема памяти, выделенной таймерам. Такая конфигурация ограничивает количество дней, которое приложение может выполнить до переполнения таймера. Многие аэрокосмические изделия постоянно запитываются, и таймеры не должны занимать ограниченный срок службы. | Установка срока службы приложения параметра конфигурации (дней) или установка параметра LifeSpan кому inf. |
Если щелкнуть Изменить параметры (Modify Settings), будут настроены параметры оптимизации модели, которые могут повлиять на безопасность.
Подчеки зависят от результатов подчек, отмеченных буквой D в таблице результатов в окне Мастер модели (Model Advisor).
Не выполняется для библиотечных моделей.
Не допускает исключения блоков или диаграмм.
Код чека: mathworks.hism.hisl_0049
Проверьте конфигурацию модели на наличие параметров генерации кода, которые могут повлиять на безопасность.
Эта проверка проверяет, что параметры конфигурации модели для генерации кода установлены оптимально для приложения, связанного с безопасностью.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Минимальное число символов, указанное для создания строк искажения имен, меньше четырех. Эту опцию можно использовать для минимизации вероятности изменения имен параметров и сигналов при создании кода при изменении модели. Использование этой опции помогает минимизировать различия в коде между версиями файлов, уменьшая усилия по выполнению обзоров кода. | На панели «Создание кода» > «Идентификатор» диалогового окна «Параметры конфигурации» или параметра установите минимальную длину манглы (встроенный кодер). MangleLength до значения 4 или больше. |
При нажатии кнопки «Изменить параметры» настраиваются параметры создания кода модели, которые могут повлиять на безопасность.
Подчеки зависят от результатов подчек, отмеченных буквой D в таблице результатов в окне Мастер модели (Model Advisor).
Не выполняется для библиотечных моделей.
Не допускает исключения блоков или диаграмм.
hisl_0049: Параметры конфигурации > Создание кода > Идентификаторы
Параметры конфигурации модели: Комментарии (Simulink Coder)
Параметры конфигурации модели: идентификаторы генерации кода (Simulink Coder)
Параметры конфигурации модели: интерфейс генерации кода (Simulink Coder)
Параметры конфигурации модели: стиль кода (встроенный кодер)
Код чека: mathworks.hism.hisl_0052
Проверьте конфигурацию модели на наличие параметров оптимизации, которые могут повлиять на безопасность.
Эта проверка проверяет, что параметры конфигурации оптимизации модели установлены оптимально для создания кода для приложения, связанного с безопасностью. Хотя высокооптимизированный код является желательным для большинства систем реального времени, некоторые оптимизации могут иметь нежелательные побочные эффекты, которые влияют на безопасность.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Выбрана оптимизация, которая подавляет генерацию кода инициализации для входов и выходов корневого уровня, для которых установлено нулевое значение. Для кода, связанного с безопасностью, следует явно инициализировать все переменные. | Если у вас есть лицензия Embedded Coder и вы используете целевой системный файл на основе ERT, снимите флажок Configuration Parameter Remove root level I/O zero initialization (Embedded Coder) или задайте параметр ZeroExternalMemoryAtStartup кому on. Кроме того, убедитесь, что компилятор соответствует стандартам, поскольку большинство современных компиляторов C инициализируют глобальные данные до нуля. Или интегрируйте внешний рукописный код, который явно инициализирует все переменные ввода-вывода до нуля. |
| Выбирается оптимизация, которая подавляет генерацию кода инициализации для внутренних рабочих структур, таких как состояния блоков и выходы блоков, которые равны нулю. Для кода, связанного с безопасностью, необходимо явно инициализировать каждую переменную. | Если у вас есть лицензия Embedded Coder и вы используете целевой системный файл на основе ERT, снимите флажок Configuration Parameter Remove internal data zero initialization (Embedded Coder) или задайте параметр ZeroInternalMemoryAtStartup кому on. Кроме того, убедитесь, что компилятор соответствует стандартам, поскольку большинство современных компиляторов C инициализируют глобальные данные до нуля. Или интегрируйте внешний рукописный код, который явно инициализирует каждую переменную состояния как нулевую. |
Если щелкнуть Изменить параметры (Modify Settings), будут настроены параметры оптимизации модели, которые могут повлиять на безопасность.
Подчеки зависят от результатов подчек, отмеченных буквой D в таблице результатов в окне Мастер модели (Model Advisor).
Не выполняется для библиотечных моделей.
Не допускает исключения блоков или диаграмм.
Код чека: mathworks.hism.hisl_0053
Проверьте конфигурацию модели на наличие параметров оптимизации, которые могут повлиять на безопасность.
Эта проверка проверяет, что параметры конфигурации оптимизации модели установлены оптимально для создания кода для приложения, связанного с безопасностью. Хотя высокооптимизированный код является желательным для большинства систем реального времени, некоторые оптимизации могут иметь нежелательные побочные эффекты, которые влияют на безопасность.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Оптимизация, которая подавляет генерацию кода в результате преобразования с плавающей запятой в целое число, которое переносит значения за пределы диапазона, очищается. Необходимо избегать переполнения кода, связанного с безопасностью. Если эта оптимизация отключена, а модель включает блоки, которые отключают параметр Saturate on overflow, генератор кода переносит значения за пределы диапазона для этих блоков. Это может привести к недоступному и, следовательно, непроверяемому коду. | При наличии лицензии Simulink Coder выберите команду Configuration Parameter Remove code from floating-point to integer conversions, которая переносит значения вне диапазона (Simulink Coder), или задайте параметр EfficientFloat2IntCast кому on. |
Если щелкнуть Изменить параметры (Modify Settings), будут настроены параметры оптимизации модели, которые могут повлиять на безопасность.
Подчеки зависят от результатов подчек, отмеченных буквой D в таблице результатов в окне Мастер модели (Model Advisor).
Не выполняется для библиотечных моделей.
Не допускает исключения блоков или диаграмм.
Код чека: mathworks.hism.hisl_0054
Проверьте конфигурацию модели на наличие параметров оптимизации, которые могут повлиять на безопасность.
Эта проверка проверяет, что параметры конфигурации оптимизации модели установлены оптимально для создания кода для приложения, связанного с безопасностью. Хотя высокооптимизированный код является желательным для большинства систем реального времени, некоторые оптимизации могут иметь нежелательные побочные эффекты, которые влияют на безопасность.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Выбирается оптимизация, которая подавляет генерацию кода, защищающего от деления на ноль для данных с фиксированной точкой. В коде, связанном с безопасностью, следует избегать исключений разделения на ноль. | Если у вас есть лицензия Embedded Coder и вы используете целевой системный файл на основе ERT, снимите флажок Configuration Parameter Remove code, который защищает от арифметических исключений разделения (Embedded Coder) или задайте параметр NoFixptDivByZeroProtection кому off. |
Если щелкнуть Изменить параметры (Modify Settings), будут настроены параметры оптимизации модели, которые могут повлиять на безопасность.
Подчеки зависят от результатов подчек, отмеченных буквой D в таблице результатов в окне Мастер модели (Model Advisor).
Не выполняется для библиотечных моделей.
Не допускает исключения блоков или диаграмм.
Код чека: mathworks.hism.hisl_0056
Проверьте конфигурацию модели на наличие параметров оптимизации, которые могут повлиять на безопасность.
Эта проверка проверяет, что параметры конфигурации оптимизации модели установлены оптимально для создания кода для приложения, связанного с безопасностью. Хотя высокооптимизированный код является желательным для большинства систем реального времени, некоторые оптимизации могут иметь нежелательные побочные эффекты, которые влияют на безопасность.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Выбирается оптимизация, использующая указанные минимальное и максимальное значения для сигналов и параметров для оптимизации генерируемого кода. Это может привести к требованиям без отслеживаемого кода. (См. раздел DO-331 MB.6.3.4.e - Исходный код отслеживается в соответствии с требованиями низкого уровня.) | Если вы имеете лицензию Embedded Coder и используете целевой системный файл на основе ERT, снимите флажок «Оптимизация параметров конфигурации», используя указанные минимальное и максимальное значения (Embedded Coder) или параметр UseSpecifiedMinMax кому off. |
Если щелкнуть Изменить параметры (Modify Settings), будут настроены параметры оптимизации модели, которые могут повлиять на безопасность.
Подчеки зависят от результатов подчек, отмеченных буквой D в таблице результатов в окне Мастер модели (Model Advisor).
Не выполняется для библиотечных моделей.
Не допускает исключения блоков или диаграмм.
Оптимизация сгенерированного кода с использованием минимальных и максимальных значений (встроенный кодер)
Радио-Техническая Комиссия для Аэронавтики (RTCA) для получения информации о - 178C Соображения программного обеспечения в Airborne Systems и Сертификация оборудования и связанные стандарты
Код чека: mathworks.hism.hisl_0061
Определите диаграммы Stateflow, включающие объекты данных, которые не определены однозначно.
Эта проверка выполняет поиск в модели локальных данных в диаграммах Stateflow, которые не определены однозначно.
Доступно при проверке Simulink.
Для этой проверки требуется лицензия Stateflow.
| Состояние | Рекомендуемое действие |
|---|---|
| Диаграмма Stateflow содержит идентификатор объекта данных, определенный в двух или более областях. | Для идентифицированной диаграммы выполните одно из следующих действий:
|
Эта проверка не ищет использование уникальных идентификаторов для сигналов Simulink.
Выполняется для библиотечных моделей.
Не анализирует содержимое связанных с библиотекой блоков.
Анализирует содержимое во всех маскированных подсистемах.
Не допускает исключения блоков или диаграмм.
Код чека: mathworks.hism.hisl_0062
Этот флажок Определяет выражения, которые считывают и записывают в те же глобальные данные в потоке Stateflow.
Для этой проверки требуются лицензии Simulink Check и Stateflow.
| Состояние | Рекомендуемое действие |
|---|---|
| Одно или несколько выражений работают с графическими функциями и глобальными переменными, используемыми в графических функциях. | Реконструируйте выражения таким образом, чтобы функции и глобальные переменные не использовались в одном выражении. |
Выполняется для библиотечных моделей.
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение all.
Анализ содержимого связанных с библиотекой блоков. По умолчанию для входного параметра Follow links установлено значение on.
Допускает исключения блоков и диаграмм.
Код чека: mathworks.hism.hisl_0063
Эта проверка проверяет длину имен этих пользовательских объектов по параметру Максимальная длина идентификатора (Maximum Identifier length) в настройках конфигурации:
Для подсистем с опциями имени функции установлено значение User-specified.
Объекты данных, описанные в руководстве.
Объекты сигналов и параметров.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Длина имени функции в подсистеме превышает установленный порог. | Измените имя функции в блоках подсистемы на длину, меньшую установленного порога. |
| Длина имен объектов данных превышает пороговое значение. | Измените имя функции в блоках подсистемы на длину, меньшую установленного порога. |
Эта проверка не помечает сигналы, которые не разрешаются для объектов.
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение all.
Анализ содержимого связанных с библиотекой блоков. По умолчанию для входного параметра Follow links установлено значение on.
Код чека: mathworks.hism.hisl_0066
Эта проверка идентифицирует блоки усиления со значением, которое распознается как 1, единичная матрица или матрица единиц.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Один или несколько блоков усиления в модели разрешаются в 1 или единичную матрицу. | Реконструируйте блоки усиления так, чтобы значение усиления не разрешалось в 1, единичную матрицу или матрицу единиц. |
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение all.
Анализ содержимого связанных с библиотекой блоков. По умолчанию для входного параметра Follow links установлено значение on.
Допускает исключения блоков и диаграмм.
Код чека: mathworks.hism.hisl_0067
Определяет блоки, которые могут привести к вычислениям деления на ноль.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Один или несколько блоков в модели могут привести к вычислениям деления на ноль. | Чтобы избежать деления на ноль, выполните повторное моделирование. |
Выполняется для библиотечных моделей.
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение all.
Анализ содержимого связанных с библиотекой блоков. По умолчанию для входного параметра Follow links установлено значение on.
Допускает исключения блоков и диаграмм.
Код чека: mathworks.hism.hisl_0070
Проверьте, связаны ли элементы модели Simulink с документом требований.
Эта проверка проверяет, связаны ли объекты модели с документом, содержащим технические требования к отслеживаемости.
Доступно при проверке Simulink.
Для этой проверки требуется лицензия Simulink Requirements™.
Следующая конфигурация может быть задана с помощью редактора конфигурации Model Advisor.
Максимальное количество ссылок требований на элементы можно задать с помощью входного параметра Максимальное количество ссылок требований на элементы модели. По умолчанию установлено значение 5.
Максимальное количество дочерних объектов на связанный компонент в Simulink можно задать с помощью параметра ввода Максимальное количество дочерних объектов на связанный компонент в Simulink. По умолчанию установлено значение 100.
Максимальное количество нижестоящих объектов на связанный компонент в потоке состояний можно задать с помощью параметра ввода Максимальное количество нижестоящих объектов на связанный компонент в потоке состояний. По умолчанию установлено значение 100.
Максимальное количество строк кода на связанную функцию MATLAB можно задать с помощью входного параметра Максимальное количество строк кода на связанную функцию MATLAB. По умолчанию установлено значение 200.
Элементы модели, которые можно исключить из связей требований, можно задать с помощью входного параметра Список элементов модели, освобожденных от связей требований. По умолчанию в параметр включается следующий список блоков. Можно также добавлять или удалять блоки в соответствии с требованиями.
Земля
Терминатор
Inport
Вспомогательный порт
InportShadow
Goto
От
Mux
Demux
CMBlock
DocBlock
Системные требования
| Состояние | Рекомендуемое действие |
|---|---|
| Элементы модели не связаны с документом требований. | Для каждого элемента модели в редакторе моделей щелкните правой кнопкой мыши элемент модели, выберите «Требования» и укажите требование. |
| Элементы модели имеют требования к соединениям, превышающие установленный порог. | убедитесь, что элементы модели не превышают установленный порог для максимальных связей с требованиями. |
| Компоненты в модели со ссылками на требования превышают порог количества нижестоящих элементов. | Убедитесь, что компоненты со ссылками на требования не превышают порог количества нижестоящих элементов. |
Выполняется для библиотечных моделей.
Анализ содержимого связанных с библиотекой блоков. По умолчанию для входного параметра Follow links установлено значение off.
Анализ содержимого в маскированных подсистемах, не имеющих рабочих пространств и диалоговых окон. По умолчанию для входного параметра Look under masks установлено значение graphical.
Допускает исключения блоков и диаграмм.
Не допускает исключения элементов Stateflow.
Эта проверка проверяет требования, которые добавляются к заголовкам функций MATLAB или только ко всему телу функции MATLAB.
Отчет о проверке содержит ссылку на вкладке рекомендуемых действий для открытия матрицы отслеживания.
Выполните эту проверку из верхней модели или подсистемы, которую необходимо проверить.
Прослеживаемость требований (требования Simulink)
DO-331, Раздел MB.6.3.1.f - Требования высокого уровня отслеживаются в соответствии с требованиями системы
DO-331, Раздел MB.6.3.2.f - Низкоуровневые требования отслеживаются в соответствии с высокоуровневыми требованиями
МЭК 61508-3, Таблица A.2 (12) - Автоматизированные технические условия и средства проектирования, Таблица A.2 (9) - Прослеживаемость между техническими требованиями к безопасности программного обеспечения и архитектурой программного обеспечения, Таблица A.2 (10) - Обратная прослеживаемость между спецификацией требований к безопасности программного обеспечения и архитектурой программного обеспечения, Таблица A.4 (8) - Прямая прослеживаемость между спецификацией требований к безопасности программного обеспечения и конструкцией программного обеспечения, Таблица A.8 (1) - Анализ воздействия
МЭК 62304, 5.2 - Анализ требований к программному обеспечению, 7.4.2 - Анализ влияния изменений программного обеспечения на существующие меры контроля рисков
ISO 26262-6, таблица 8 (1а) - Документация по проектированию программных блоков на естественном языке, ISO 26262-6: 7.4.2.a - Проверка архитектурного проектирования программного обеспечения, ISO 26262-8: 8.4.3 Анализ запросов на изменение
EN 50128, Таблица A.3 (23) - Моделирование, поддерживаемое средствами автоматизированного проектирования и спецификациями, Таблица D.58 - Прослеживаемость, Таблица A.10 (1) - Анализ воздействия
Код чека: mathworks.hism.hisl_0071
Определяет несоответствия или недоопределения атрибутов оборудования, которые могут привести к неоптимальным результатам.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Один или несколько параметров не указаны в системе. | Укажите параметры для обеспечения правильной и эффективной генерации кода для целевого оборудования. |
| Одна или несколько целевых спецификаций не совпадают. | Включите параметр Test hardware (тестовое оборудование), который совпадает с производственным оборудованием, или измените целевые спецификации, чтобы они соответствовали. |
Выполняется для библиотечных моделей.
Допускает исключения блоков и диаграмм.
Код чека: mathworks.hism.hisl_0102
Эта проверка идентифицирует переменные управления контуром с использованием нетегерных типов данных в следующих областях:
Для блоков итератора.
Для циклов в функциональных блоках MATLAB.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Один или несколько блоков для итератора используют не целочисленный тип данных для переменной счетчика управления контуром. | Установите тип данных переменной счетчика управления циклом в целочисленный тип данных. |
| Один или несколько циклов For используют не целочисленный тип данных для переменной счетчика управления контуром в функциональных блоках MATLAB. | Установите тип данных переменной счетчика управления циклом в целочисленный тип данных. |
Эта проверка не учитывает переменные управления контуром в диаграммах Stateflow.
Не выполняется для библиотечных моделей.
Анализ содержимого связанных с библиотекой блоков. По умолчанию для входного параметра Follow links установлено значение on.
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение all.
Допускает исключения блоков и диаграмм.
Код чека: mathworks.hism.hisl_0301
Проверьте конфигурацию модели на наличие параметров диагностики, влияющих на совместимость и безопасность.
Эта проверка проверяет, что параметры конфигурации диагностики модели, относящиеся к совместимости, установлены оптимально для создания кода для приложения, связанного с безопасностью.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
Для диагностики, обнаруживающей, когда блок не был обновлен для использования функций текущей версии, установлено значение none или warning. S-функция, написанная для более ранней версии, может быть несовместима с текущей версией, и сгенерированный код может работать неправильно. | Установите необходимые обновления S-функций на панели Диагностика > Совместимость в диалоговом окне Параметры конфигурации или задайте параметр SFcnCompatibilityMsg кому error. |
При нажатии кнопки Изменить параметры (Modify Settings) настраиваются параметры диагностики модели, которые влияют на совместимость и могут повлиять на безопасность.
Не выполняется для библиотечных моделей.
Не допускает исключения блоков или диаграмм.
Код чека: mathworks.hism.hisl_0302
Проверьте конфигурацию модели на наличие параметров диагностики, которые применяются к параметрам и могут повлиять на безопасность.
Эта проверка проверяет, что параметры конфигурации диагностики модели, относящиеся к параметрам, установлены оптимально для генерации кода для приложения, связанного с безопасностью.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
Для диагностики, которая обнаруживает, когда происходит понижение параметра, установлено значение none или warning. Переход к более низкому диапазону сигналов может привести к перетеканию числовых параметров, что приведет к неожиданному поведению. | Установите параметр Detect downcast на панели Diagnostics (Диагностика) > Data Validity (Валидность данных) в диалоговом окне Configuration Parameters (Параметры конфигурации) или задайте параметр. ParameterDowncastMsg кому error. |
Для диагностики, обнаруживающей неполный поток параметров, установлено значение none или warning. Если тип данных параметра не имеет достаточного разрешения, значение параметра равно нулю вместо указанного значения. Это может привести к неправильной работе сгенерированного кода. | На панели Диагностика (Diagnostics) > Валидность данных (Data Validity) диалогового окна Параметры конфигурации (Configuration Parameters) или задайте параметр. ParameterUnderflowMsg кому error. |
Для диагностики, которая обнаруживает, когда происходит переполнение параметра, установлено значение none или warning. Численные переполнения могут привести к неожиданному поведению приложения и должны быть обнаружены и исправлены в приложениях, связанных с безопасностью. | Установите параметр Обнаруживать переполнение (Detect overflow) на панели Диагностика (Diagnostics) > Валидность данных (Data Validity) в диалоговом окне Параметры конфигурации (Configuration Parameters) или ParameterOverflowMsg кому error. |
Для диагностики, обнаруживающей, когда параметр теряет точность, устанавливается значение none или warning. Отсутствие обнаружения таких ошибок может привести к тому, что параметр будет установлен на неверное значение в сгенерированном коде. | Установите параметр Обнаружить потерю точности (Detect precision loss) на панели Диагностика (Diagnostics) > Валидность данных (Data Validity) в диалоговом окне Параметры конфигурации (Configuration Parameters ParameterPrecisionLossMsg кому error. |
Для диагностики, обнаруживающей, когда выражение с настраиваемыми переменными сокращается до числового эквивалента, устанавливается значение none или warning. Это может привести к непредвиденной невозможности настройки настраиваемого параметра в сгенерированном коде. | Установите параметр Обнаружить потерю настраиваемости (Detect loss of tunability) на панели Диагностика (Diagnostics) > Валидность данных (Data Validity) в диалоговом окне Параметры конфигурации (Configuration Parameters) ParameterTunabilityLossMsg кому error. |
При нажатии кнопки Изменить параметры (Modify Settings) настраиваются параметры диагностики модели, которые применяются к параметрам и могут повлиять на безопасность.
Не выполняется для библиотечных моделей.
Не допускает исключения блоков или диаграмм.
Код чека: mathworks.hism.hisl_0303
Проверка конфигурации модели на наличие диагностических параметров, применяемых к блокам объединения
Эта проверка проверяет, что параметры конфигурации модели установлены оптимально для блоков объединения для приложения, связанного с безопасностью.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
Для диагностики, определяющей, содержит ли модель блоки Merge с несколькими управляющими блоками, выполняемыми одновременно, устанавливается значение none или warning. |
В диалоговом окне Configuration Parameters установите параметр Detect multiple driving blocks executing that time step или задайте параметр |
При нажатии кнопки Изменить параметры (Modify Settings) настраиваются параметры диагностики модели, которые применяются к решателям и могут повлиять на безопасность.
Не выполняется для библиотечных моделей.
Не допускает исключения блоков или диаграмм.
Код чека: mathworks.hism.hisl_0304
В конфигурации модели проверьте параметры диагностики, которые влияют на инициализацию модели и могут повлиять на безопасность.
Эта проверка проверяет, что параметры конфигурации диагностики модели для инициализации оптимально настроены для генерации кода для приложения, связанного с безопасностью.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
|
В диалоговом окне Параметры конфигурации (Configuration Parameters) для диагностики обнаружения неполной инициализации (Underspecified initialization detection diagnostic) установлено |
Выполните одно из следующих действий:
|
|
В диалоговом окне Параметры конфигурации (Configuration Parameters) для диагностики обнаружения неполной инициализации (Underspecified initialization detection diagnostic) установлено |
Выполните одно из следующих действий:
|
Чтобы настроить параметры диагностики, которые влияют на инициализацию модели и могут повлиять на безопасность, щелкните Изменить параметры (Modify Settings).
Подчеки зависят от результатов подчек, отмеченных буквой D в таблице результатов в окне Мастер модели (Model Advisor).
Не выполняется для библиотечных моделей.
Не допускает исключения блоков или диаграмм.
Код чека: mathworks.hism.hisl_0305
Проверьте конфигурацию модели на наличие параметров диагностики, которые применяются к данным, используемым для отладки и которые могут повлиять на безопасность.
Эта проверка проверяет, что параметры конфигурации диагностики модели, относящиеся к отладке, установлены оптимально для создания кода для приложения, связанного с безопасностью.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
Для диагностики, разрешающей блоки проверки модели, установлено значение Use local settings или Enable all. Такие блоки должны быть отключены, поскольку они являются блоками утверждения, которые предназначены только для проверки. Разработчики моделей не должны использовать утверждения во встроенном коде. | В диалоговом окне Параметры конфигурации (Configuration Parameters) задайте параметр Включение или установка блока проверки модели (Model Verification block enabling). AssertControl кому Disable All. |
При нажатии кнопки Изменить параметры (Modify Settings) настраиваются параметры диагностики модели, которые применяются к данным, используемым для отладки и которые могут повлиять на безопасность.
Не выполняется для библиотечных моделей.
Не допускает исключения блоков или диаграмм.
Код чека: mathworks.hism.hisl_0306
Проверьте конфигурацию модели на наличие диагностических настроек, которые применяются к связности сигналов и могут повлиять на безопасность.
Эта проверка проверяет, что параметры конфигурации диагностики модели, относящиеся к связности сигналов, установлены оптимально для генерации кода для приложения, связанного с безопасностью.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
Диагностика, которая обнаруживает виртуальные сигналы, имеющие общий исходный сигнал, но различные метки, устанавливается как none или warning. Эта диагностика относится только к виртуальным сигналам и не влияет на сгенерированный код. Тем не менее, несоответствия меток сигналов могут привести к путанице во время обзоров модели. | Установите несоответствие меток сигнала на панели «Диагностика» (Diagnostics) > «Связность» (Connectivity) диалогового окна «Параметры конфигурации» (Configuration Parameters) или задайте параметр. SignalLabelMismatchMsg кому error. |
Для диагностики, обнаруживающей, когда модель содержит блок с неподключенным входным сигналом, устанавливается значение none или warning. Это должно быть обнаружено, так как код не создается для неподключенных входов блока. | Установить неподключенные входные порты блока на панели «Диагностика» > «Подключение» в диалоговом окне «Параметры конфигурации» или задать параметр UnconnectedInputMsg кому error. |
Для диагностики, обнаруживающей, когда модель содержит блок с неподключенным выходным сигналом, устанавливается значение none или warning. Это должно быть обнаружено, так как мертвый код может быть результатом несвязанных выходных сигналов блока. | Установите неподключенные выходные порты блока на панели «Диагностика» > «Подключение» в диалоговом окне «Параметры конфигурации» или задайте параметр UnconnectedOutputMsg кому error. |
Для диагностики, обнаруживающей неподключенные сигнальные линии и несопоставленные блоки Goto или From, установлено значение none или warning. Эта ошибка должна быть обнаружена, так как код не создан для неподключенных строк. | Задать несвязанную линию на панели Диагностика > Связность в диалоговом окне Параметры конфигурации или задать параметр UnconnectedLineMsg кому error. |
При нажатии кнопки Изменить параметры (Modify Settings) настраиваются параметры диагностики модели, которые применяются к связности сигналов и могут повлиять на безопасность.
Не выполняется для библиотечных моделей.
Не допускает исключения блоков или диаграмм.
Код чека: mathworks.hism.hisl_0307
Проверьте конфигурацию модели на наличие диагностических параметров, которые применяются к подключению шины и могут повлиять на безопасность.
Эта проверка проверяет, что параметры конфигурации диагностики модели, относящиеся к подключению к шине, установлены оптимально для генерации кода для приложения, связанного с безопасностью.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
Диагностика, которая определяет, подключен ли корневой выходной блок блока модели к шине, но не указывает, что для объекта шины задано значение none или warning. Чтобы сигнал шины пересекал границу модели, он должен быть определен как объект шины для совместимости с моделями более высокого уровня, которые используют модель в качестве ссылочной модели. | Задайте неопределенный объект шины в корневом блоке Outport на панели Diagnostics > Connectivity в диалоговом окне Configuration Parameters или задайте параметр RootOutportRequireBusObject кому error. |
Диагностика, определяющая, соответствует ли имя элемента шины имени, указанному соответствующим объектом шины, имеет значение none или warning. Эта диагностика предотвращает использование несовместимых шин в блоке с поддержкой шины, так что выходные имена противоречивы. | Задать несоответствие имен элементов на панели Диагностика > Связность в диалоговом окне Параметры конфигурации или задать параметр BusObjectLabelMismatch кому error. |
Диагностика, которая обнаруживает, когда некоторые блоки обрабатывают сигнал как мультиплексор/вектор, в то время как другие блоки рассматривают сигнал как шину, устанавливается в none или warning. Когда программное обеспечение Simulink автоматически преобразует мультиплексированный сигнал в шину, возможна непреднамеренная работа или непредсказуемое поведение. |
Задайте значение параметра Сигнал шины, обрабатываемый как вектор на панели Диагностика (Diagnostics) > Связность (Connectivity) в диалоговом окне Параметры конфигурации (Configuration Parameters), равным |
Диагностика обнаруживает, что параметр Non-bus signals, обрабатываемый как сигналы шины, не установлен в error. | На панели "Диагностика" (Diagnostics) > "Подключение" (Connectivity) диалогового окна "Параметры конфигурации" (Configuration Parameters) или на панели "Параметры" (Configuration Parameters) установите значение "Сигналы, не |
Если щелкнуть Изменить параметры (Modify Settings), настраиваются параметры диагностики модели, которые применяются к подключению шины и могут повлиять на безопасность.
Не выполняется для библиотечных моделей.
Не допускает исключения блоков или диаграмм.
Код чека: mathworks.hism.hisl_0308
Проверьте конфигурацию модели на наличие диагностических параметров, которые применяются к подключению к функциональным вызовам и могут повлиять на безопасность.
Эта проверка проверяет, что параметры конфигурации диагностики модели, относящиеся к соединению между функциональными вызовами, установлены оптимально для генерации кода для приложения, связанного с безопасностью.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
Диагностика, которая определяет, должно ли программное обеспечение Simulink вычислять входы подсистемы вызова функций прямо или косвенно при выполнении подсистемы, установлена в Use local settings или Disable all. Эта диагностика обнаруживает непредсказуемую связь данных между подсистемой функционального вызова и входами подсистемы в сгенерированном коде. | Задайте контекстно-зависимые входные данные на панели Диагностика (Diagnostics) > Связность (Connectivity) в диалоговом окне Параметры конфигурации (Configuration Parameters) или задайте параметр FcnCallInpInsideContextMsg кому error. |
При нажатии кнопки «Изменить параметры» настраиваются параметры диагностики модели, которые применяются к подключению вызова функции и могут повлиять на безопасность.
Не выполняется для библиотечных моделей.
Не допускает исключения блоков или диаграмм.
Код чека: mathworks.hism.hisl_0309
Проверьте конфигурацию модели на наличие параметров диагностики, которые применяются к преобразованиям типов и могут повлиять на безопасность.
Эта проверка проверяет, что параметры конфигурации диагностики модели, относящиеся к преобразованиям типов, установлены оптимально для генерации кода для приложения, связанного с безопасностью.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
Диагностика, обнаруживающая блоки преобразования типов данных, если для преобразования типов установлено значение none. Программное обеспечение Simulink может удалить ненужные блоки преобразования типов данных из сгенерированного кода, что может привести к требованиям без соответствующего кода. Удаление этих блоков необходимо определить, чтобы разработчики моделей могли явно удалить ненужные блоки. | Установите параметр конфигурации «Ненужные преобразования типов» илиUnnecessaryDatatypeConvMsg параметр для warning. |
Диагностику, которая обнаруживает преобразования вектор-матрица или матрица-вектор на входах блока, устанавливают в none или warning. Когда программа Simulink автоматически преобразует векторные и матричные размеры, могут происходить непреднамеренные операции или непредсказуемое поведение. | Задайте параметр конфигурации входного преобразования блока вектора/матрицы или VectorMatrixConversionMsg параметр для error |
Для диагностики, определяющей, когда 32-разрядное целое значение преобразуется в значение с плавающей запятой, устанавливается значение none. Этот тип преобразования может привести к потере точности из-за усечения младших битов для больших целых значений. | Установите 32-разрядное целое значение параметра конфигурации преобразования с плавающей точностью или Int32ToFloatConvMsg параметр для warning. |
При нажатии кнопки Изменить параметры (Modify Settings) настраиваются параметры диагностики модели, которые применяются к преобразованиям типов и могут повлиять на безопасность.
Не выполняется для библиотечных моделей.
Не допускает исключения блоков или диаграмм.
Код чека: mathworks.hism.hisl_0310
Проверьте конфигурацию модели на наличие параметров диагностики, которые применяются к ссылкам на модель и могут повлиять на безопасность.
Эта проверка проверяет, что параметры конфигурации диагностики модели, относящиеся к ссылкам на модель, установлены оптимально для генерации кода для приложения, связанного с безопасностью.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
Для диагностики, обнаруживающей несовпадения портов и параметров во время загрузки и обновления модели, установлено значение none или warning. Если они не обнаружены, такие несоответствия могут привести к неправильным результатам моделирования, поскольку родительские и ссылочные модели имеют разные интерфейсы. | Задайте рассогласование порта и параметра на панели Диагностика (Diagnostics) > Привязка к модели (Model Referencing) в диалоговом окне Параметры конфигурации (Configuration Parameters) или задайте параметр. ModelReferenceIOMismatchMessage кому error. |
Для диагностики, обнаруживающей недопустимые внутренние соединения с блоками ввода и вывода на корневом уровне текущей модели, установлено значение none или warning. При обнаружении этого условия программное обеспечение Simulink может автоматически вставлять скрытые блоки в модель для исправления этого условия. Скрытые блоки могут привести к созданию кода без отслеживаемых требований. Установка для диагностики значения error заставляет разработчиков моделей исправлять ссылочные модели вручную. | Установите недопустимое подключение блока корневого ввода/вывода на панели Диагностика > Ссылка на модель в диалоговом окне Параметры конфигурации (Configuration Parameters) или задайте параметр ModelReferenceIOMessage кому error. |
Для диагностики, определяющей, являются ли блоки В рабочую область (To Workspace) или В область (Scope) данными регистрации в ссылочной модели, задано значение none или warning. Ведение журнала данных не поддерживается для блоков To Workspace и Scope в ссылочных моделях. | Задайте неподдерживаемый журнал данных на панели Диагностика (Diagnostics) > Привязка модели (Model Referencing) в диалоговом окне Параметры конфигурации (Configuration Parameters) или задайте параметр ModelReferenceDataLoggingMessage кому error.Для регистрации данных удалите блоки и запишите ссылочные сигналы модели. Дополнительные сведения см. в разделе Регистрация ссылочных сигналов модели. |
При нажатии кнопки Изменить параметры (Modify Settings) настраиваются параметры диагностики модели, которые применяются к ссылкам на модели и могут повлиять на безопасность.
Не выполняется для библиотечных моделей.
Не допускает исключения блоков или диаграмм.
Код чека: mathworks.hism.hisl_0311
Проверка параметров диагностики, связанных с безопасностью, для потока состояний
Эта проверка проверяет, что параметры конфигурации модели установлены оптимально для Stateflow для приложения, связанного с безопасностью.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
Для диагностики, определяющей, приводит ли конфигурация диаграммы к нежелательному обратному отслеживанию во время моделирования, установлено значение none или warning. |
В диалоговом окне Параметры конфигурации (Configuration Parameters) установите значение Непредвиденный возврат (Uncendent backtracking) или задайте параметр |
Для диагностики, определяющей наличие в конфигурации диаграммы блоков, которые подключаются к портам ввода диаграммы, не инициализируют свои выходы во время инициализации, установлено значение none или warning. |
В диалоговом окне Configuration Parameters установите параметр Invalid input data access in chart initialization или задайте параметр |
Диагностика, определяющая, имеет ли диаграмма безусловный переход по умолчанию в состояние или соединение, имеет значение none или warning. |
В диалоговом окне «Параметры конфигурации» задайте «Нет безусловных переходов по умолчанию» или задайте параметр |
Диагностика, определяющая, содержит ли диаграмма переход, который закольцовывается вне родительского состояния или соединения, имеет значение none или warning. |
В диалоговом окне Параметры конфигурации (Configuration Parameters) установите параметр Переход вне естественного родителя (Transition outside natural parent) или задайте параметр |
Для диагностики, определяющей, создана ли диаграмма на действительном пути выполнения, установлено значение none или warning. |
В диалоговом окне «Параметры конфигурации» задайте путь выполнения «Недоступно» или задайте параметр |
Диагностика обнаруживает, что для параметра Undirected event broadcasts не установлено значение none или warning. | Настройка широковещательных передач неориентированных событий в диалоговом окне «Параметры конфигурации» или установка параметра SFUndirectedBroadcastEventsDiag кому error. |
Диагностика обнаруживает, что для параметра Transition action, указанного перед действием условия, не установлено значение none или warning. | Задайте действие перехода, указанное перед действием условия, в диалоговом окне Параметры конфигурации (Configuration Parameters) или задайте параметр SFTransitionActionBeforeConditionDiag кому error. |
При нажатии кнопки Изменить параметры (Modify Settings) настраиваются параметры диагностики модели, которые применяются к решателям и могут повлиять на безопасность.
Не выполняется для библиотечных моделей.
Не допускает исключения блоков или диаграмм.
Код чека: mathworks.hism.hisl_0314
Проверьте конфигурацию модели на наличие диагностических настроек, которые применяются к данным сигнала и могут повлиять на безопасность.
Эта проверка проверяет, что параметры конфигурации диагностики модели, относящиеся к данным сигнала, установлены оптимально для генерации кода для приложения, связанного с безопасностью.
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
Диагностика, определяющая, как программное обеспечение Simulink разрешает сигналы, связанные с Simulink.Signal для объектов установлено значение Explicit and implicit или Explicit and warn implicit. Для приложений, связанных с безопасностью, разработчики моделей должны явно определять разрешение сигнала. (См. раздел DO-331, раздел MB.6.3.3.b - Архитектура программного обеспечения согласована.) | Установите разрешение сигнала на панели Диагностика > Валидность данных в диалоговом окне Параметры конфигурации или задайте параметр В качестве альтернативы можно отключить использование |
Диагностику блока продукта, которая обнаруживает сингулярную матрицу при инвертировании одного из ее входов в режиме умножения матрицы, устанавливают в none или warning. Деление на сингулярную матрицу может привести к числовым исключениям при выполнении сгенерированного кода. Это неприемлемо в системах, связанных с безопасностью. (См. DO-331, Раздел MB.6.3.1.g - Алгоритмы точны, DO-331, Раздел MB.6.3.2.g - Алгоритмы точны, и MISRA C:2012, Dir 4.1.) | Задайте разделение по сингулярной матрице на панели Диагностика (Diagnostics) > Валидность данных (Data Validity) в диалоговом окне Параметры конфигурации (Configuration Parameters) или задайте параметр CheckMatrixSingularityMsg кому error. |
Для диагностики, обнаруживающей, когда программное обеспечение Simulink не может определить тип данных сигнала во время распространения типа данных, установлено значение none или warning. Для приложений, связанных с безопасностью, разработчики моделей должны проверять типы данных сигналов. (См. DO-331, Раздел MB.6.3.1.e - Требования высокого уровня соответствуют стандартам, и DO-331, Раздел MB.6.3.2.e - Требования низкого уровня соответствуют стандартам.) | Задайте недоопределенные типы данных на панели Диагностика (Diagnostics) > Валидность данных (Data Validity) в диалоговом окне Параметры конфигурации (Configuration Parameters) или задайте параметр UnderSpecifiedDataTypeMsg кому error. |
Для диагностики, определяющей, является ли значение сигнала слишком большим для представления типом данных сигнала, установлено значение none или warning. Необнаруженные числовые переполнения могут привести к неожиданному поведению приложения. (См. DO-331, Раздел MB.6.3.1.g - Алгоритмы точны, DO-331, Раздел MB.6.3.2.g - Алгоритмы точны, и MISRA C:2012, Dir 4.1.) | Установите параметр Переносить при переполнении (Wrap on overflow) на панели Диагностика (Diagnostics) > Валидность данных (Data Validity) в диалоговом окне Параметры конфигурации (Configuration Parameters) или IntegerOverflowMsg кому error. |
Для диагностики, которая определяет, является ли значение сигнала слишком большим для представления типом данных сигнала, что приводит к насыщению, устанавливается значение none или warning. Необнаруженные числовые переполнения могут привести к неожиданному поведению приложения. (См. DO-331, Раздел MB.6.3.1.g - Алгоритмы точны, DO-331, Раздел MB.6.3.2.g - Алгоритмы точны, и MISRA C:2012, Dir 4.1.) | Установите параметр Насыщить при переполнении (Saturate on overflow) на панели Диагностика (Diagnostics) > Валидность данных (Data Validity) в диалоговом окне Параметры конфигурации (Configuration Parameters) или IntegerSaturationMsg кому error. |
Диагностика, обнаруживающая, когда значение блочного выходного сигнала равно Inf или NaN на текущем шаге времени устанавливается значение none или warning. Когда возникает такое состояние блочного выходного сигнала, могут возникать числовые исключения, и числовые исключения неприемлемы в приложениях, связанных с безопасностью. (См. DO-331, Раздел MB.6.3.1.g - Алгоритмы точны, DO-331, Раздел MB.6.3.2.g - Алгоритмы точны, и MISRA C:2012, Dir 4.1.) | Задайте вывод блока Inf или NaN на панели Диагностика > Валидность данных в диалоговом окне Параметры конфигурации или задайте параметр SignalInfNanChecking кому error. |
Диагностика, определяющая имена объектов Simulink, начинающиеся с rt имеет значение none или warning. Эта диагностика предотвращает конфликты имен с сгенерированными именами сигналов, имеющими rt префикс. (См. DO-331, Раздел MB.6.3.1.e - Требования высокого уровня соответствуют стандартам, и DO-331, Раздел MB.6.3.2.e - Требования низкого уровня соответствуют стандартам.) | Задайте префикс «rt» для идентификаторов на панели Диагностика > Валидность данных в диалоговом окне Параметры конфигурации или задайте параметр RTPrefix кому error. |
Для диагностики, обнаруживающей проверку диапазона моделирования, установлено значение none или warning. Эта диагностика определяет, когда сигналы превышают заданные диапазоны во время моделирования. Simulink сравнивает значения сигналов, выводимых блоком, с заданным диапазоном и типом данных блока. (См. DO-331, Раздел MB.6.3.1.g - Алгоритмы точны, DO-331, Раздел MB.6.3.2.g - Алгоритмы точны, и MISRA C:2012, Dir 4.1.) | Установите флажок Диапазон моделирования (Simulation range) на панели Диагностика (Diagnostics) > Валидность данных (Data Validity) диалогового окна Параметры конфигурации (Configuration Parameters) или задайте параметр SignalRangeChecking кому error. |
Если щелкнуть Изменить параметры (Modify Settings), настраиваются параметры диагностики модели, которые применяются к данным сигнала и могут повлиять на безопасность.
Не выполняется для библиотечных моделей.
Не допускает исключения блоков или диаграмм.
Код чека: mathworks.hism.hisl_0003
Определите блоки Sqrt с входами, которые могут быть отрицательными.
Доступно при проверке Simulink. Для этой проверки требуется лицензия Simulink Design Verifier (SLDV).
Примечание: Эта проверка выполнит анализ SLDV для модели.
| Состояние | Рекомендуемое действие |
|---|---|
| Один или несколько блоков Sqrt в модели имеют входные данные, которые могут стать отрицательными во время моделирования. | Реконструировать, чтобы предотвратить отрицательный ввод блоков Sqrt. |
Запуск для библиотечных моделей.
Анализ содержимого связанных блоков библиотеки. По умолчанию для входного параметра Follow links установлено значение on.
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение all.
Код чека: mathworks.hism.hisl_0028
Определяет взаимные блоки Sqrt с входами, которые могут стать нулевыми или отрицательными.
Доступно при проверке Simulink. Для этой проверки требуется лицензия Simulink Design Verifier (SLDV).
Примечание: Эта проверка выполнит анализ SLDV для модели.
| Состояние | Рекомендуемое действие |
|---|---|
| Один или несколько взаимных блоков Sqrt в модели имеют входные данные, которые могут стать нулевыми или отрицательными во время моделирования. | Переделка для предотвращения нулевого или отрицательного значения ввода блоков обратного Sqrt. |
Выполняется для библиотечных моделей.
Анализ содержимого связанных блоков библиотеки. По умолчанию для входного параметра Follow links установлено значение on.
Анализирует содержимое в маскированных подсистемах. По умолчанию для входного параметра Look under masks установлено значение all.
Код чека: mathworks.hism.himl_0011
Эта проверка оценивает модель, чтобы проверить, используются ли логические скаляры для следующих выражений условий:
if выражения
elseif выражения
while выражения
Выражения условий переходов Stateflow
Доступно при проверке Simulink.
| Состояние | Рекомендуемое действие |
|---|---|
| Измените выражение на логический скаляр. |
| Измените выражение на логический скаляр. |
| Измените выражение на логический скаляр. |
Выражение условия выражения перехода Stateflow не является логическим скаляром. | Измените выражение на логический скаляр. |
Таблица результатов идентифицирует каждое выражение, содержащее выражение, которое не является логическим скаляром. Для просмотра проблемы выберите соответствующую ссылку на функцию в таблице результатов. Мастер модели (Model Advisor) открывает и подсвечивает соответствующее определение функции или, для Stateflow, открывает диаграмму и выделяет состояние, в котором возникает проблема.
Вручную измените выражения условий на логические скаляры. Сохраните модель и снова запустите проверку.
Условия переходов и действий состояния Stateflow не проверяются при использовании C в качестве языка действий Stateflow.
Эта проверка не выполняется для библиотечных моделей.
Анализирует содержимое в маскированных подсистемах.
Анализ содержимого связанных с библиотекой блоков.
Недоступные инвариантные условия и фрагменты кода могут быть не проанализированы.
Штаты (Stateflow)
Переходы (поток состояний)
Различия между MATLAB и C в качестве синтаксиса языка действий (Stateflow)
Код чека: mathworks.misra.CodeGenSettings
Определите параметры конфигурации, которые могут повлиять на создание кода, совместимого с MISRA C:2012.
Выполнение рекомендаций этой проверки повышает вероятность создания кода, соответствующего MISRA C:2012, для встраиваемых приложений.
Доступно с встроенным кодером и Simulink Check.
| Состояние | Рекомендуемое действие |
|---|---|
| Математика и типы данных | |
Параметр конфигурации Использовать деление для вычисления чистого уклона с фиксированной точкой не установлен в On или Use division for reciprocals of integers only. | Задать для параметра «Использовать деление» для расчета чистого уклона с фиксированной точкой значение On или Use division for reciprocals of integers only. |
Параметр конфигурации Inf или выход блока NaN имеет значение Параметр конфигурации Inf или выход блока NaN имеет значение | Если Поддержка неграничных чисел:
|
Параметр конфигурации Включение блока проверки модели имеет значение Use local settings или Enable All. | Установка блока проверки модели, позволяющего Disable All. |
Параметр конфигурации Undirected event broadcasts имеет значение none или warning. | Установка для широковещательных передач неориентированных событий значения error. |
Параметр конфигурации Wrap on overflow имеет значение None | Задайте для параметра конфигурации Wrap on overflow значение warning или error. |
| Внедрение аппаратных средств | |
Параметр конфигурации Производственное оборудование, подписанное целочисленными округами деления, имеет значение Undefined | Установить для производственного оборудования, подписанного целочисленными раундами деления, значение Zero или Floor. |
| Параметр конфигурации Shift справа от целого числа со знаком в качестве арифметического сдвига. | Снимите флажок «Сдвиг справа от целого числа со знаком» в качестве арифметического сдвига. |
| Цель моделирования | |
Параметр конфигурации Compile-time recursion limit для функций MATLAB имеет значение, отличное от 0. | Установить предел рекурсии времени компиляции для функций MATLAB в 0. |
| Параметр конфигурации Динамическое выделение памяти в функциях MATLAB. | Снимите флажок Динамическое выделение памяти в функциях MATLAB. |
| Выбран параметр конфигурации Включить рекурсию во время выполнения для функций MATLAB. | Снимите флажок Включить рекурсию во время выполнения для функций MATLAB. |
| Создание кода | |
Параметр конфигурации Спецификатор типа декларатора Bitfield имеет значение
| Установить спецификатор типа декларатора Bitfield в значение uint_T. |
Параметру конфигурации Режимы литья не присвоено значение Standards Compliant. | Задать для режимов литья значение Standards Compliant. |
Параметр конфигурации Библиотека замены кода не установлена в значение None или AUTOSAR 4.0. | Задать для библиотеки замены кода значение |
| Выбран параметр конфигурации Внешний режим. | Снимите флажок Внешний режим. |
| Выбран параметр конфигурации Генерировать общие константы. | Снимите флажок «Генерировать общие константы». |
Параметр конфигурации Include comments очищен. | Выберите Включить комментарии. |
| Выбран параметр конфигурации MAT-файл регистрации. | Очистка журнала файлов MAT |
| Для целевых систем на основе ERT параметр конфигурации MATLAB user comments очищается. | Выберите комментарии пользователя MATLAB. |
| Значение параметра конфигурации Максимальная длина идентификатора не указано. | Установите значение предела, зависящего от внедрения. Значение по умолчанию: 31. |
Параметр конфигурации Parenthesis level не имеет значение Maximum (Specify precedence with parentheses). | Установить уровень «Круглые скобки» в значение Maximum (Specify precedence with parentheses). |
Для целевых систем на основе ERT параметр конфигурации Preserve static keyword in function declarations очищается, если для параметра File packaging format установлено значение | Выберите Сохранить статическое ключевое слово в объявлениях функций. |
| Параметр конфигурации Замена умножения на мощности двух со знаком побитовых сдвигов. | Clear Заменить умножение на степени двух со знаком побитовых сдвигов. |
Параметр конфигурации Размещение общего кода имеет значение Auto. | Задать для параметра Размещение общего кода значение |
| Для целевых систем на основе ERT выбран параметр конфигурации Поддержка непрерывного времени | Очистить время непрерывной поддержки. |
| Для целевых систем на базе ERT выбран параметр конфигурации Support non-inlined S-functions | Снимите флажок Поддерживать неинлинированные S-функции. |
Параметр конфигурации Системные идентификаторы имеют значение Classic. | Установите системные идентификаторы в значение Shortened. |
| Параметр конфигурации Системный целевой файл установлен в целевой файл на основе GRT. | Установите системный целевой файл в целевой файл на основе ERT. |
Параметр конфигурации Использовать динамическое выделение памяти для инициализации модели выбирается, если для параметра Code Interface Packaging установлено значение Reusable Function. | Снимите флажок Использовать динамическое выделение памяти для инициализации модели. Примечание Выбор осуществляется только в том случае, если для параметра «Упаковка интерфейса кода» установлено значение |
При нажатии кнопки Изменить все значения параметров изменяются на рекомендуемые значения.
Примечание
При нажатии кнопки Изменить все (Modify All) для моделей с целевым объектом на основе GRT мастер моделей не обновляет параметр конфигурации целевого файла системы в системе на основе ERT.
Подчеки параметров зависят от результатов параметра, отмеченного буквой D в таблице результатов. Если результатом является D-Warning, столбец Текущее значение (Current Value) в таблице результатов указывает на то, что условное ограничение не соблюдается для подчек. После изменения параметра повторно запустите проверку.
Примечание
Некоторые подчеки специфичны для параметров конфигурации систем на основе ERT. Эти параметры не обновляются при нажатии кнопки Изменить все (Modify All), если модель не изменена на систему на основе ERT.
Эта проверка не проверяет ссылочные модели.
Код чека: mathworks.misra.BlkSupport
Определите блоки, которые не поддерживаются или не рекомендуются для создания кода, совместимого с MISRA C:2012.
Выполнение рекомендаций этой проверки повышает вероятность создания кода, соответствующего MISRA C:2012, для встраиваемых приложений.
Доступно с встроенным кодером и Simulink Check.
| Состояние | Рекомендуемое действие |
|---|---|
В модели или подсистеме найдены блоки таблицы подстановки, использующие методы интерполяции или экстраполяции кубических сплайнов. Конкретными блоками являются:
| Рассмотрим другие методы интерполяции и экстраполяции для блоков таблицы поиска. |
Устаревшие блоки таблицы подстановки найдены в модели или подсистеме. Конкретными блоками являются:
| Попробуйте заменить устаревшие блоки таблицы подстановки. |
| Блоки S-Function Builder были найдены в модели или подсистеме. | Рекомендуется заменить блоки S-Function Builder блоками, рекомендуемыми для производства. |
| Из рабочей области в модели или подсистеме найдены блоки | Попробуйте заменить блоки «Из рабочей области» блоками, рекомендованными для производства. |
Строковые блоки найдены в модели или подсистеме. Конкретными блоками являются:
| Рассмотрите возможность замены блоков String блоками, рекомендованными для производства. |
Вы можете:
Выполните эту проверку для моделей библиотек.
Анализ содержимого связанных блоков библиотеки.
Анализирует содержимое в маскированных подсистемах.
Исключите блоки и диаграммы из этой проверки, если у вас есть лицензия Simulink Check.
Проверка времени редактирования. Эта проверка поддерживается проверкой времени редактирования.