Правила для Использования атомарных подграфиков
Атомарный подграфик является графическим объектом, который помогает вам создать автономные субкомпоненты в графике Stateflow®. Атомарные подграфики поддерживаются только в диаграммах Stateflow в моделях Simulink®. Для получения дополнительной информации смотрите, Создают Допускающие повторное использование Субкомпоненты при помощи Атомарных Подграфиков.
Задайте данные в атомарном подграфике явным образом
Обязательно задайте данные, которые появляются в атомарном подграфике явным образом в основном графике. Для получения инструкций по тому, как задать данные в графике, смотрите, Добавляют Данные Через Model Explorer.
Сопоставьте переменные соединенных атомарных подграфиков
Когда вы используете соединенные атомарные подграфики, сопоставляете переменные так, чтобы данные в подграфике соответствовали правильным данным в основном графике. Сопоставьте переменные подграфика вручную, если, когда вы добавляете подграфик, переменные не имеют тех же имен как соответствующие символы в основном графике. Для получения дополнительной информации смотрите Переменные Карты для Атомарных Подграфиков и Полей.
Совпадайте с размером, введите, и сложность переменных в соединенных атомарных подграфиках
Экспортируйте функции уровня графика, если названо из атомарного подграфика
Если ваш атомарный подграфик содержит вызов функции к функции уровня графика, этой функции экспорта путем выбора Export Chart Level Functions. Не экспортируйте графические функции из атомарного подграфика, который сопоставляет переменные с переменными на основном уровне графика с различным осциллографом. Для получения дополнительной информации смотрите Экспорт Функции Stateflow для Повторного использования.
Не смешивайтесь запускаемый фронтом, и вызов функции ввел события в том же атомарном подграфике
Входные события в атомарном подграфике должны все использовать запускаемый фронтом тип, или они должны все использовать тип вызова функции. Это ограничение сопоставимо с поведением для контейнерного графика. Для получения дополнительной информации смотрите Лучшые практики для Использования Событий в диаграммах Stateflow.
Не сопоставляйте несколько входных событий в атомарном подграфике к тому же входному событию в контейнерном графике
Каждое входное событие в атомарном подграфике должно сопоставить с уникальным входным событием в контейнерном графике. Можно проверить уникальные отображения входных событий путем открытия диалогового окна свойств для атомарного подграфика и проверки раздела Input Event Mapping вкладки Mappings.
Не регистрируйте сигналы из атомарных подграфиков что переменные карты с различными осциллографами
Если атомарный подграфик сопоставляет переменные с переменными на основном уровне графика с различным осциллографом, вы не можете регистрировать сигналы для графика.
Совпадайте с триггерным типом когда входные события отображения
Каждое входное событие в атомарном подграфике должно сопоставить с входным событием того же триггерного типа в контейнерном графике.
Не используйте атомарные подграфики в непрерывно-разовых диаграммах Stateflow
Непрерывно-разовые графики не поддерживают атомарные подграфики.
Не используйте графики Мура в качестве атомарных подграфиков
Графики Мура не имеют того же поведения симуляции как Классические диаграммы Stateflow с теми же построениями.
Не используйте исходящие переходы, когда атомарный подграфик будет использовать локальные события верхнего уровня
Вы не можете использовать исходящие переходы от атомарного подграфика, который использует локальные события в верхнем уровне подграфика. Используя эту настройку вызывает ошибку симуляции.
Избегайте использования выполняются в инициализации с атомарными подграфиками
Вы получаете предупреждение, когда следующие условия верны:
Если действие entry
в атомарном подграфике требует доступа к входу графика или памяти хранилища данных, вы можете получить неточные результаты. Чтобы избежать этого предупреждения, можно отключить Execute (enter) Chart At Initialization или перенаправить путь к переходу по умолчанию далеко от атомарного подграфика.
Для получения дополнительной информации о выполните в инициализации поведение, смотрите Выполнение Графика при Инициализации.
Избегайте использования имен параметров подсистемы в атомарных подграфиках
Если параметр в атомарном подграфике совпадает с именем Simulink встроенный параметр подсистемы, единственное отображение допускало тот параметр, Inherited
. Определение любого другого отображения параметра во вкладке Mappings диалогового окна свойств вызывает ошибку. Можно, однако, изменить значение параметров в подсказке MATLAB® так, чтобы все экземпляры того параметра имели то же значение.
Получить список параметров Подсистемы Simulink, введите:
param_list = sort(fieldnames(get_param('built-in/subsystem', 'ObjectParameters')));
Ограничьте использование порожденных машиной данных
Если ваш график содержит атомарные подграфики, не используйте порожденные машиной данные со следующими свойствами:
Порожденные машиной данные с этими свойствами предотвращают повторное использование сгенерированного кода и другой оптимизации кода.
Не изменяйте первый индекс локальных данных к ненулевому значению
Когда память хранилища данных в атомарном подграфике сопоставляет с уровнем графика локальные данные, свойство First index локальных данных должно остаться нуль. Если вы изменяете First index на ненулевое значение, ошибка происходит, когда вы пытаетесь обновить схему.
Используйте сопоставимые настройки для семантики супершага
Когда вы используете соединенные атомарные подграфики, проверяете, что ваши настройки для семантики супершага совпадают с настройками в основном графике. Для получения дополнительной информации смотрите Супер Семантику Шага.
Ограничения для преобразования в атомарные подграфики
Объяснение для ограничений
Атомарные подграфики упрощают повторное использование состояний и подграфиков как автономные объекты.
Данные, графические функции и События
Чтобы преобразовать состояние или подграфик к атомарному подграфику, доступ к объектам, не порожденным состоянием или подграфиком, должен быть одним из следующего:
Если состояние или подграфик получают доступ к графической функции уровня графика, график должен экспортировать эту функцию. Для получения дополнительной информации смотрите Экспорт Функции Stateflow для Повторного использования.
Не экспортируйте графические функции из атомарного подграфика, который сопоставляет переменные с переменными на основном уровне графика с различным осциллографом.
Широковещательные сообщения события
Состояние или подграфик, который вы хотите преобразовать в атомарный подграфик, не могут относиться к:
Состояние или подграфик, который вы хотите преобразовать, могут относиться, чтобы ввести события.
Локальные данные с ненулевым первым индексом
Состояние или подграфик, который вы хотите преобразовать в атомарный подграфик, не могут получить доступ к локальным данным, где свойство First index является ненулевым. Для процесса преобразования, чтобы работать, свойство First index локальных данных должно быть нулем, который является значением по умолчанию.
Порожденные машиной данные
Состояние или подграфик, который вы хотите преобразовать в атомарный подграфик, не могут находиться в графике, который использует порожденные машиной данные со следующими свойствами:
Порожденные машиной данные с этими свойствами предотвращают повторное использование сгенерированного кода и другой оптимизации кода.
Сильный ввод данных с вводами и выводами Simulink
Чтобы преобразовать состояние или подграфик к атомарному подграфику, ваш график должен использовать сильный ввод данных с вводами и выводами Simulink.
Задавать сильный ввод данных:
Откройте диалоговое окно Свойств диаграммы.
Выберите Use Strong Data Typing with Simulink I/O. Эта опция появляется только для графиков, которые используют C в качестве языка действия.
Нажмите OK, чтобы закрыть диалоговое окно.
Суперпереходы
Состояние или подграфик, который вы хотите преобразовать в атомарный подграфик, не могут иметь никаких суперпереходов, пересекающих контур.
График библиотеки маскированный
Вы не можете использовать график библиотеки маскированный, содержащий параметры маски как атомарный подграфик.