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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Задайте данные в атомарной субдиаграмме явным образом

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Импортированный или экспортируемый

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

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

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

Если параметр в атомарной субдиаграмме совпадает с именем 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 локальных данных должно быть нулем, который является значением по умолчанию.

Порожденные машиной данные

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

  • Импортированный или экспортируемый

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

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

Сильный ввод данных с вводами и выводами Simulink

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

Широковещательные сообщения события

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

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

  • Выведите события

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

График библиотеки маскированный

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

Похожие темы