exponenta event banner

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

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

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

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

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

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

Графики непрерывного времени не поддерживают атомарные подшаблоны.

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

При выполнении следующих условий выдается предупреждение:

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

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

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

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

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

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

Данные в атомных субчартах

Явное определение данных в атомарном подшарте

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

Сопоставление переменных связанных атомных субчартов

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

Сопоставление размера, типа и сложности переменных в связанных атомных субчартах

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

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

Атомарные подчасти не поддерживают массивы переменного размера. При выборе свойства «Размер переменной» объекта данных вложенной диаграммы возникает ошибка при попытке обновить диаграмму или смоделировать модель.

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

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

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

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

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

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

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

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

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

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

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

Для получения списка параметров подсистемы Simulink введите:

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

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

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

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

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

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

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

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

Не сопоставлять несколько входных событий в атомной подшарте с одним и тем же входным событием в диаграмме контейнера

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

Функции и атомарные подшарты

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Машинные данные

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

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

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

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

Сильная типизация данных с помощью Simulink Inputs и Outputs

Чтобы преобразовать состояние или вложенную диаграмму в атомарную, необходимо использовать строгий ввод данных со входами и выходами Simulink. Дополнительные сведения см. в разделе Использование строгой типизации данных с Simulink I/O.

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

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

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

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

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

Маскированная библиотечная диаграмма

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

Связанные темы