| Признак | Ограничение | ФАТАЛЬНЫЙ/нефатальный | Проверка совместимости |
|---|---|---|---|
| Неприсоединенные объекты | В модели или подсистеме не должно быть несвязанных линий, входных портов или выходных портов. Это помогает предотвратить появление мертвого кода и скрытых блоков заземления. | Неокончательный | Проверка несвязанных объектов в модели |
| Функциональные характеристики | Модель не может указывать прототипы пользовательских функций записи модели. Параметр Configure arguments for Step function prototype в диалоговом окне Configure C Step Function Interface должен быть снят. | Неокончательный | Проверка настройки интерфейса функции шага C |
| Выполнение ветви условного ввода | Если выбран параметр конфигурации Conditional input branch execution:
| Неокончательный | Проверить настройку выполнения условного входного ответвления |
| Неподдерживаемые блоки | В модели не должно быть блоков, которые не поддерживаются Simulink ® Code Inspector™. | Неокончательный | Проверка неподдерживаемых блоков |
| Классы хранения для переменных рабочей области |
Модель не может ссылаться на переменные рабочей области, которые не поддерживаются ни по одной из следующих причин:
| Неокончательный | Проверка класса хранения для переменных рабочей области |
| GetSet настраиваемые классы хранения для переменных рабочей области |
Для переменных рабочей области, использующих
| Неокончательный | Проверьте класс хранения GetSet для переменных рабочей области |
| Использование времени выборки | Модель не может использовать непрерывное, асинхронное, явное дискретное разбиение, управляемое данными, объединение, экспортированное дискретное или переменное время выборки. | ФАТАЛЬНЫЙ | Проверка времени пробы в модели > Проверка времени пробы |
| Явные разделы | Модель не должна содержать явных разделов. | ФАТАЛЬНЫЙ | Проверка времени образца в модели > Проверка явных разделов |
| Автоматическая вставка блоков преобразования сигнала в сигналы, поступающие на входы блоков | Автоматическая вставка блока преобразования сигнала в сигнал, поступающий на вход блока, не поддерживается для проверки кода. Он создает скрытый блок преобразования сигнала, который не поддерживается для проверки кода. | Неокончательный | Проверка наличия блоков преобразования сигналов, автоматически вставляемых в сигналы, входящие во входные порты блоков > Проверка отсутствия блоков преобразования сигналов, автоматически вставляемых в сигналы, поступающие во входные порты блоков |
| Выбраны контрольно-измерительные приборы с фиксированной точкой и блок-редуктор | Одновременное использование контрольно-измерительных приборов с фиксированной точкой и уменьшение количества блоков не поддерживается для проверки кода. | Неокончательный | Проверка использования контрольно-измерительных приборов фиксированной точки > Проверка использования контрольно-измерительных приборов фиксированной точки |
| Пример времени блока корневого исходящего порта | Блоки корневого исходящего порта не должны быть постоянными. Это ограничение предотвращает перемещение назначения корневого исходящего порта в функцию инициализации модели, что может привести к сбою проверки функций модели. | Неокончательный | Проверка использования корневого блока Outport > Проверка времени выборки |
| Метод прохождения шины корневого выходного блока | Корневой блок Outport, передающий шину родительской модели, должен передавать шину как структуру. В противном случае программное обеспечение Simulink может вставить в родительскую модель скрытый блок преобразования сигнала, который не поддерживается для проверки кода. Для каждого экземпляра параметр Outport block Output в качестве невиртуальной шины в родительской модели (BusOutputAsStruct) должен быть выбран. | Неокончательный | Проверка использования корневых блоков исходящего порта > Проверка того, что корневые исходящие порты передают шины родительским моделям в качестве структур |
| Автоматическое преобразование виртуальной шины в невиртуальную | Автоматическое преобразование между виртуальной и невиртуальной шинами не поддерживается для проверки кода. Он создает скрытый блок преобразования сигнала, который не поддерживается для проверки кода. | ФАТАЛЬНЫЙ | Проверка использования шин > Проверка автоматического преобразования между виртуальными шинами в невиртуальные |
| Блокирование операций на шине | Невиртуальный блок не должен работать на виртуальной шине, а блок назначения шины не должен работать на невиртуальной шине. Это ограничение упрощает обработку шины для улучшения прослеживаемости и читаемости сгенерированного кода. | ФАТАЛЬНЫЙ | Проверьте использование шин > Убедитесь, что блоки в модели не выполняют неподдерживаемых операций на шине |
| Замена типа данных | Имена замен в таблице замены типов данных должны иметь тип Simulink.AliasType. | Неокончательный | Проверка имен замены типа данных |
| Время образца для модели, используемой в качестве цели привязки модели | Модель, используемая в качестве цели привязки модели, не должна иметь несколько образцов времени. | Неокончательный | Проверка времени образца в модели, используемой в качестве цели привязки модели |
| Блоки с комментариями | Модель не должна содержать блоки, которые комментируются. | Неокончательный | Проверка модели для блоков с комментариями |
| Контрольно-измерительные сигналы подключаются к автоматически вставляемым блокам | Модель не должна содержать инструментированные сигналы, которые подключаются к автоматически вставляемым блокам. | Неокончательный | Проверка модели на наличие измеренных сигналов, которые подключаются к автоматически вставляемым блокам |
| Имена функций для неинлинированных подсистем с интерфейсами вызова функции void-void | В модели неинлинированные подсистемы с интерфейсами вызова функции void-void должны использовать уникальные имена функций. | ФАТАЛЬНЫЙ | Проверка модели для void_void подсистем, использующих одно и то же имя функции |
| Общие синтезированные локальные хранилища данных |
Нельзя использовать сигнальные объекты в рабочей области модели, на которые блоки чтения хранилища данных или записи хранилища данных ссылаются как на синтезированные локальные хранилища данных. | Неокончательный | Проверка использования синтезированных локальных хранилищ данных |
| Многоразовые подсистемы | Повторно используемые подсистемы с одним функциональным интерфейсом должны исходить из одних и тех же библиотечных блоков. | Неокончательный | Проверка модели для повторно используемых подсистем, использующих одни и те же функциональные интерфейсы |
| Параметры сопоставления кода | В редакторе сопоставления кодов на вкладке «Значения по умолчанию» в разделе «Сопоставления кодов - C» каждая категория элементов модели должна использовать | Неокончательный | Проверка неподдерживаемых параметров сопоставления кода |
| Настройка структуры папки создания кода | В окне Настройки Simulink (Simulink Preferences) на панели Общие (General) для параметра Структура папки генерации кода (Code generation folder structure) должно быть | ФАТАЛЬНЫЙ | Проверка структуры папок генерации кода для модели |
| Графический порядок сортировки | Скомпилированный список блоков модели должен соответствовать графическому порядку сортировки блоков. | Неокончательный | Проверка модели для скомпилированного и графического порядка сортировки блоков |
| Параметры символов создания кода для общих утилит | Для проверки общих утилит необходимо установить значение по умолчанию Локальные временные переменные (встроенный кодер) $N$M и формат идентификатора общих утилит (Embedded Coder) должен иметь значение по умолчанию $N$C. | Неокончательный | Проверка использования общих утилит > Проверка настроек символов генерации кода для проверки общих утилит |
| Стандартные настройки математической библиотеки для общих утилит | Для проверки общих утилит в стандартной математической библиотеке (Simulink Coder) должно быть установлено значение C89/C90 (ANSI) или C99 (ISO). | Неокончательный | Проверка использования общих утилит > Проверка стандартных параметров математической библиотеки для проверки общих утилит |
| Параметры стиля кода для общих утилит | Для проверки совместно используемых инженерных сетей:
| Неокончательный | Проверка использования общих утилит > Проверка параметров стиля кода для проверки общих утилит |
| Аргументы модели | Аргументы модели не должны иметь класс хранения. | Неокончательный | Проверка аргументов модели для классов хранения |