Атомарная вложенная диаграмма - это графический объект, который помогает создавать независимые подкомпоненты в диаграмме 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. Дополнительные сведения см. в разделе Использование строгой типизации данных с Simulink I/O.
Состояние или вложенная диаграмма, которую требуется преобразовать в атомарную, не может ссылаться на:
Локальные события, выходящие за рамки этого состояния или подшарнира
Выходные события
Состояние или вложенная диаграмма, которые требуется преобразовать, могут ссылаться на входные события.
Нельзя использовать маскированную библиотечную диаграмму, содержащую параметры маски, как атомарную вложенную диаграмму.