Правила использования атомарных субдиаграмм

Атомарная субдиаграмма является графическим объектом, который помогает вам создать независимые подкомпоненты в Stateflow® график. Атомарные субдиаграммы поддерживаются только в диаграммах Stateflow в Simulink® модели. Для получения дополнительной информации смотрите Создание переиспользуемых подкомпонентов при помощи атомарных субдиаграмм.

Свойства графика и атомарные субдиаграммы

Не используйте графиков Мура в качестве атомарных субдиаграмм

Графики Мура не имеют той же симуляции поведения, что и диаграммы Classic Stateflow с теми же конструкциями.

Не используйте атомарные Субдиаграммы в непрерывном времени Графиков

Непрерывные графики не поддерживают атомарные субдиаграммы.

Избегайте использования атомарных субдиаграмм в графиках, которые выполняются при инициализации

Вы получаете предупреждение, когда следующие условия верны:

  • Свойство графика Execute (enter) Chart At Initialization включено.

  • Путь перехода по умолчанию для графика достигает атомарной субдиаграммы.

Если задан entry действие внутри атомарной субдиаграммы требует доступа к входу на графике или памяти хранилища данных, можно получить неточные результаты. Чтобы избежать этого предупреждения, можно отключить Execute (enter) Chart At Initialization или перенаправить путь перехода по умолчанию от атомарной субдиаграммы.

Для получения дополнительной информации о поведении инициализации выполнения смотрите Выполнение графика при инициализации.

Используйте последовательные настройки для семантики супер-шагов

Когда вы используете связанные атомарные субдиаграммы, проверьте, что ваши настройки для семантики супер шага совпадают с настройками на основном графике. Для получения дополнительной информации см. Раздел «Семантика супер-шагов».

Данные в атомарных субдиаграммах

Явное определение данных в атомарной субдиаграмме

Обязательно задайте данные, которые появляются в атомарной субдиаграмме явно на основном графике. Атомарные субдиаграммы могут получить доступ только к данным основного графика, размер, тип и сложность которых полностью заданы. Для получения дополнительной информации смотрите Задать свойства данных.

Переменные Map связанных атомарных субдиаграмм

Когда вы используете связанные атомарные субдиаграммы, сопоставьте переменные так, чтобы данные в субдиаграмме соответствовали правильным данным на основном графике. Сопоставьте переменные субдиаграммы вручную, если при добавлении субдиаграммы переменные не имеют тех же имен, что и соответствующие символы на основном графике. Для получения дополнительной информации смотрите Map Переменных для Atomic Субдиаграмм и Boxes.

Совпадайте с размером, типом и сложностью переменных в связанных атомарных субдиаграммах

Проверьте, что размер, тип и сложность переменных в субдиаграмме совпадают с настройками соответствующих переменных в основном графике. Для получения дополнительной информации смотрите Map Переменных для Atomic Субдиаграмм и Boxes.

Не используйте данные переменного размера в атомарных субдиаграммах

Атомарные субдиаграммы не поддерживают массивы переменного размера. Если вы выбираете свойство Variable Size объекта данных субдиаграммы, ошибка возникает при попытке обновить схему или моделировать модель.

Не изменяйте первый индекс локальных данных на ненулевое значение

Когда память хранилища данных в атомарной субдиаграмме преобразуется в локальные данные уровня диаграммы, свойство First index локальных данных должно оставаться нулем. Если вы меняете First index на ненулевое значение, ошибка возникает, когда вы пытаетесь обновить схему или симулировать модель.

Не регистрируйте сигналы от атомарных субдиаграмм, которые сопоставляют переменные с различными возможностями

Если атомарная субдиаграмма сопоставляет переменные на уровне основного графика с другими возможностями, вы не можете записывать сигналы для графика.

Ограничение использования данных с машинным паром

Если ваш график содержит атомарные субдиаграммы, не используйте партированные с машиной данные со следующими свойствами:

  • Импортировано или экспортировано

  • Является 2-D или выше, или использует тип с фиксированной точкой

Помеченные машиной данные с этими свойствами препятствуют повторному использованию сгенерированного кода и другой оптимизации кода.

Избегайте использования имен параметров подсистемы в атомарных субдиаграммах

Если параметр в атомарной субдиаграмме совпадает с именем параметра встроенной подсистемы Simulink, единственное отображение, допустимое для этого параметра, Inherited. Установка любого другого отображения параметров на вкладке Mappings диалогового окна свойств приводит к ошибке. Однако можно изменить значение параметров в MATLAB® приглашать так, чтобы все образцы этого параметра имели одно и то же значение.

Чтобы получить список параметров подсистемы Simulink, введите:

param_list = sort(fieldnames(get_param('built-in/subsystem', 'ObjectParameters')));

События в атомарных субдиаграммах

Не смешивайте инициируемые фронтом и вызов функции входные события в той же атомарной субдиаграмме

Входные события в атомарной субдиаграмме должны использовать тип, вызванный фронтом, или все они должны использовать тип вызова функции. Это ограничение согласуется с поведением для графика контейнера. Для получения дополнительной информации смотрите Лучшие практики для использования событий в диаграммах Stateflow.

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

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

Совпадайте с типом триггера при отображении входных событий

Каждый вход событие в атомарной субдиаграмме должно сопоставляться с входом событием того же типа в график контейнера.

Не сопоставлять несколько Входа событий в атомарной Субдиаграмме с одним и тем же Входом событием в контейнере Графика

Каждый вход событие в атомарной субдиаграмме должно быть сопоставлено с уникальным входом событием в график контейнера. Можно проверить уникальные отображения входа событий, открывая диалоговое окно свойств для атомарной субдиаграммы и проверяя Input Event Mapping раздел вкладки Mappings.

Функции и атомарные субдиаграммы

Экспорт функций уровня диаграммы, если он вызывается из атомарной субдиаграммы

Если ваша атомарная субдиаграмма содержит вызов функции к функции уровня диаграммы, экспортируйте эту функцию, выбрав Export Chart Level Functions. Не экспортируйте графические функции из атомарной субдиаграммы, который сопоставляет переменные с переменными на уровне основного графика с другими возможностями. Для получения дополнительной информации смотрите Экспорт функций Stateflow для повторного использования.

Ограничения для преобразования в атомарные субдиаграммы

Суперпереходы

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

Данные, графические функции и события

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

  • Данные уровня диаграммы

  • Графические функции уровня диаграммы

  • Входные события

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

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

Локальные данные с ненулевым первым индексом

Состояние или субдиаграмма, который вы хотите преобразовать в атомарную субдиаграмму, не может получить доступ к локальным данным, где свойство First index ненулевое. Чтобы процесс преобразования работал, свойство First index локальных данных должно быть нулем, что является значением по умолчанию.

Данные с машинным паром

Состояние или субдиаграмма, который вы хотите преобразовать в атомарную субдиаграмму, не могут находиться в графике, которая использует данные с пометкой машины со следующими свойствами:

  • Импортировано или экспортировано

  • Является 2-D или выше, или использует тип с фиксированной точкой

Помеченные машиной данные с этими свойствами препятствуют повторному использованию сгенерированного кода и другой оптимизации кода.

Сильное типирование данных с входами и выходами Simulink

Чтобы преобразовать состояние или субдиаграмму в атомарную субдиаграмму, ваш график должен использовать сильное типирование данных с входами и выходами Simulink. Для получения дополнительной информации смотрите Использование сильного набора данных с Simulink ввод-вывод.

Трансляции событий

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

  • Локальные события, которые находятся вне возможностей этого состояния или субдиаграммы

  • Выходные события

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

Маскированные библиотечные Графики

Вы не можете использовать маскированную библиотеку графика, содержащую параметры маски, в качестве атомарной субдиаграммы.

Похожие темы