Модель Simulink ® реализует глобальные переменные как хранилища данных, либо как блоки памяти хранилища данных (Simulink), либо как экземпляры Simulink.Signal (Simulink) объекты. Хранилища данных можно использовать для совместного использования данных между несколькими блоками Simulink без явных входных или выходных соединений для передачи данных из одного блока в другой. Диаграммы Stateflow ® обмениваются глобальными данными с моделями Simulink, считывая и записывая в память хранилища данных символически.

Чтобы получить доступ к глобальным данным из диаграммы, свяжите объект данных Stateflow с хранилищем данных Simulink. После создания привязки объект данных Stateflow становится символическим представлением памяти хранилища данных Simulink. Затем этот символический объект можно использовать для хранения и извлечения глобальных данных.
Диаграммы потока состояний могут взаимодействовать с локальными и глобальными хранилищами данных.
Локальные хранилища данных видны для всех блоков в одной модели. Для взаимодействия с локальным хранилищем данных диаграмма должна находиться в модели, в которой определяется локальное хранилище данных. Локальное хранилище данных можно определить, добавив в модель блок памяти хранилища данных или создав объект сигнала Simulink.
Глобальные хранилища данных имеют более широкую область применения, которая пересекает границы ссылок модели. Для взаимодействия с глобальными хранилищами данных диаграмма должна находиться в верхней модели, где определяется глобальное хранилище данных, или в модели, на которую ссылается верхняя модель. Глобальные хранилища данных внедряются как сигнальные объекты Simulink.
Дополнительные сведения см. в разделе Локальные и глобальные хранилища данных (Simulink).
Чтобы определить память хранилища данных Simulink, добавьте в модель блок памяти хранилища данных или создайте объект сигнала Simulink. Дополнительные сведения см. в разделах Хранилища данных с блоками памяти хранилища данных (Simulink) и Хранилища данных с сигнальными объектами (Simulink).
Добавьте объект данных в диаграмму Stateflow, как описано в разделе Добавление данных Stateflow.
Задайте свойство Name в качестве имени памяти хранилища данных Simulink, к которой требуется привязать объект данных Stateflow.
Задайте для свойства Scope значение Data Store Memory.
Объект данных Stateflow наследует все дополнительные свойства из памяти хранилища данных, к которой привязывается объект.
В одной иерархии модели могут существовать несколько локальных и глобальных хранилищ данных с одинаковыми именами. В этой ситуации объект данных Stateflow связывается с хранилищем данных, которое является ближайшим предком.
После привязки объекта данных Stateflow к хранилищу данных Simulink можно сохранять и извлекать глобальные данные в действиях состояния и перехода. Объект данных действует как глобальная переменная, на которую ссылается его символическое имя. При сохранении числовых значений в этой переменной выполняется запись в память хранилища данных Simulink. При извлечении числовых значений из этой переменной выполняется чтение из памяти хранилища данных.
Например, на этой диаграмме действия состояния считываются из блока памяти хранилища данных и записываются в него под названием myglobal.

При привязке объекта данных Stateflow к хранилищу данных объект Stateflow наследует все свои свойства из хранилища данных. Для обеспечения правильного распространения свойств при создании хранилищ данных Simulink:
Укажите тип данных, отличный от auto.
Сведите к минимуму использование свойств автоматического режима.
Для доступа к глобальному хранилищу данных из нескольких моделей:
Убедитесь, что модели не содержат блоков памяти хранилища данных. Можно включить блоки «Чтение хранилища данных» (Simulink) и «Запись хранилища данных» (Simulink).
В базовом рабочем пространстве MATLAB ® создайте Simulink.Signal объект со следующими атрибутами:
Задайте для параметра Тип данных явный тип данных. Тип данных не может быть Auto.
Полностью задать размеры. Размеры сигнала не могут быть -1 или Inherited.
Полностью укажите сложность. Сложность не может быть Auto.
Задайте для класса хранилища значение ExportedGlobal.
На каждой диаграмме, совместно использующей данные, привязайте объект данных Stateflow к хранилищу данных Simulink.
Чтобы избежать задержки алгоритма, перед чтением из него запишите в память хранилища данных. В противном случае операции чтения извлекают значение, которое было сохранено на предыдущем временном шаге, а не значение, вычисленное и сохраненное на текущем временном шаге. Когда не подключенные блоки совместно используют глобальные данные во время работы на разных скоростях:
Разделите действия чтения на отдельные блоки от действий записи.
Назначьте приоритеты блокам, чтобы модель вызывала блоки записи перед считыванием блоков. Дополнительные сведения см. в разделе Порядок выполнения управления и отображения (Simulink).
Чтобы избежать ситуаций, когда несколько операций чтения и записи происходят непреднамеренно за один и тот же шаг времени, включите диагностику блоков памяти хранилища данных, чтобы:
Обнаружить чтение перед записью
Обнаружение записи после чтения
Обнаружение записи после записи
Если блок памяти хранилища данных используется в качестве постоянной глобальной области хранения для накопления значений на разных этапах времени, избегайте ненужных предупреждений, отключив диагностику блоков памяти хранилища данных. Дополнительные сведения см. в разделе Диагностика хранилища данных (Simulink).

Память хранилища данных (Simulink) | Чтение хранилища данных (Simulink) | Запись хранилища данных (Simulink) | Simulink.Signal (Симулинк)