Событие - это объект Stateflow, который переключает действия в машине состояний или ее объекты. Stateflow определяет набор событий, которые происходят, когда выполняются состояния машины. Вы можете определить типы событий, которые появляются только в течение выполнения особых состояний машины или ее объектов.
Определение событий:
1. Добавьте описание события к словарю данных Stateflow.
2. Выберите такие значения свойств событий, чтобы они отображались в заданном виде.
Добавление событий к словарю данных
Вы можете использовать другие редакторы Stateflow или Проводник, чтобы добавлять события, видимые в диаграмме. Но чтобы добавлять события, которые видимы в машине состояний или только в особом состоянии, вы должны использовать проводник Stateflow.
Использование редактора Stateflow
Чтобы использовать редактор Stateflow для добавления событий, необходимо:
1. Из меню Add редактора Stateflow, выбрать Event:.
2. В появившемся подменю, выбрать индикатор события. Stateflow добавляет описание нового события к словарю данных и отображает диалоговое окно Event.
3. Используйте диалоговое окно Event, чтобы определить свойства события.
Использование проводника
Чтобы определить событие, используйте Проводник Stateflow:
1. Выберете Explore из меню Tools редактора Stateflow.
Проводник Stateflow открывает:
2. Выберите объект (машину состояний, диаграмму или состояние) в той области иерархии проводника объекта, где Вы хотите увидеть новое событие.
3. Выберите Event из меню проводника Add.
Stateflow добавляет описание нового события в словарь данных и показывает вход для нового события в окне Проводника.
4. Назначьте такие значения свойств событий, чтобы они отображались в заданном виде.
Изменение свойств события
Чтобы изменить свойства события, необходимо:
1. Выбрать Explorer из меню Tools редактора Stateflow.
2. Выбрать событие в оглавлении проводника.
3. Выбрать Properties из меню проводника Edit или контекстного меню. Stateflow отобразит диалоговое окно Event для выбора события.
4. Редактирование диалогового окна.
5. Выберете OK, чтобы применить ваши изменения и закрыть диалоговое окно Event.
Примечание Вы также можете установить обзор события с помощью редактора соответствующего раздела в оглавлении проводника. Если вы хотите установить только это свойство, вам не нужно открывать диалоговое окно Event.
Диалоговое окно событие
Диалоговое окно Событие позволяет Вам определять свойства события.
Диалоговое окно показывает следующие области и параметры.
Name
Имя этого события. Имя позволяет Вам определять это событие в действиях Stateflow.
Parent
Щелчок по этой области показывает родителя этого события в редакторе Stateflow.
Родитель - объект, в котором располагается событие. Когда событие вызвано, Stateflow передает событие родителю и его потомкам. Родителем события может быть машина состояний, диаграмма или состояние. Вы определяете родителя события, когда добавляете его к словарю данных.
Scope
Индикатор события. Индикатор определяет, где происходит событие относительно его родителя.
Разделы, которые указаны ниже, описывают каждый параметр индикатора.
Local
Это событие происходит в машине состояний и становится родительским с ее помощью.
Input from Simulink
Это событие происходит в одном блоке Simulink и передается в другой. Первый блок может относиться к любому типу блоков. Второй блок должен быть блоком диаграммы.
Output to Simulink
Это событие происходит в одном блоке Simulink и передается в другой. Первый блок - блок диаграммы. Второй блок может относиться к любому типу блоков.
Export. Экспортируемое событие - событие Stateflow, которое может быть передано внешним кодом, включая автономный объект и мастерскую реального времени.
Import. Импортированное событие - это событие, определенное извне, которое может быть передано машиной состояний, вложенной во внешний код.
Примечание Если Вы копируете блок диаграммы Stateflow из одной модели Simulink в другую, все объекты в иерархии диаграммы копируются, кроме тех, которые становятся родителями с помощью машины Stateflow. Это значит, что события, которые становятся родителями с помощью машины Stateflow (локальное, импортированное, экспортированное) не скопированы в новую машину. Однако Вы можете использовать Проводник, чтобы копировать отдельные события, перетаскивая их курсором из машины в машину.
Trigger
Тип сигнала, который переключает вход или выход события.
Index
Индекс входа сигнала, который переключает это событие. Эти параметры применяется только ко входу события и появляются, когда Вы выбираете Input from Simulink как индикатор этого события.
Port
Индекс порта - это выход этого события. Это свойство применяется только ко входу события и появляется, когда Вы выбираете Output to Simulink как индикатор этого события.
Description
Описание этого события. Stateflow сохраняет содержание этой области в словаре данных.
Document Link
Щелчок в этой области показывает документацию для этого события.
Присваивание имени событию
Имя события позволяет действиям ссылаться на определенные события. Вы присваиваете имя событию, изменяя его свойства. Вы можете назначить любое имя, которое начинается с алфавитного знака, не включая пробелов.
Определение локальных событий
Локальное событие это событие, которое может происходить во всей машине состояний, но видимо только в ее родителе (и потомке родителя). Чтобы определить событие, как локальное, установите свойства его индикатора как локальные.
Определение входящих событий
Входящее событие происходит вне диаграммы и видимо только в ней. Этот тип события позволяет блокам Simulink и блокам Stateflow уведомлять особые события, которые происходят вне диаграммы. Чтобы определить событие, как входящее, установите свойства его индикатора как вход в Simulink.
Вы можете определять многократные входящие события для диаграммы. Первый раз, когда Вы определяете входящее событие для диаграммы, Stateflow добавляет переключатель порта к блоку диаграммы. Внешние блоки могут переключать входящие события диаграммы через сигнал или вектор сигналов, связанных с переключателем порта, связывая входящие события с управляющим сигналом. При определении входящих событий для диаграммы Вы должны определить, как управляющие сигналы, связанные с диаграммой, переключают входящие события.
Соединение входных событий с управляющими сигналами
Свойства индекса входящего события связывают событие с определенным элементом вектора управляющего сигнала, соединенного с переключателем порта диаграммы, который является родителем события.
Первый элемент вектора сигнала переключает входящее событие, индекс которого - 1; второй, индекс которого - 2, и так далее. Stateflow назначает 1 как индекс первого входящего события, который Вы определяете для диаграммы, 2 как индекс второго события, и так далее. По умолчанию Вы можете изменять соединения для события, устанавливая свойства индекса события к индексу сигнала, так, чтобы переключить событие.
Входящие события происходят в порядке возрастания их индексов, когда больше чем одно такое событие происходит в течение обновления. Например, предположим, что при определении входящих событий для диаграммы Вы назначаете индексы 3, 2, и 1 к событиям названным A, B, и C соответственно. Теперь предположим, что в течение создания модели, содержащей диаграмму, события A и C происходят в особом порядке. В этом случае, порядок возникновения событий такой: сначала происходит событие C, сопровождаемое A.
Определение выходящих событий
Выходящее событие - событие, которое происходит в определенной диаграмме и видимо в определенных блоках вне диаграммы. Этот тип события позволяет диаграмме уведомлять другие блоки в модели событий, которые происходят в диаграмме. Чтобы определить событие как входящее, установите свойство его индикатора как выход в Simulink. Вы можете определить многократные выходящие события для данной диаграммы. Stateflow создает диаграмму входящего порта для каждого выходящего события, который Вы определите. Ваша модель может использовать выходящие порты, чтобы переключать выходящие события в других блоках Simulink в той же самой модели.
Соединение выходящего события с выходящим портом
Свойства порта выходящего события связывает событие с выходящим портом на блоке диаграммы, который является его родителем. Свойства определяют положение порта относительно других портов события на блоке диаграммы. Порты события появляются ниже портов данных, справа от блока диаграммы. Stateflow нумерует порты последовательно сверху вниз, начиная с 1. Stateflow назначает порт 1 первому выходящему событию, для которого Вы определяете диаграмму, порт 2 - второму, и так далее. По умолчанию Вы можете изменять порт назначения события, перезагружая свойства порта или выбирая выходящее событие в Проводнике.
Экспорт событий
Stateflow позволяет машине состояний экспортировать события. Экспорт событий запускает внешний код, чтобы переключить события в машине состояний. Чтобы экспортировать событие, сначала добавляют его к
словарю данных как потомка машины состояний. Затем установите новое свойство индикатора события как Экспортируемое.
Примечание Внешние события могут быть родительскими только с помощью машины состояний. Это значит, что Вы должны использовать Проводник, для добавления внешних событий к словарю данных. Это значит, что внешние события видимы во всей машине состояний.
Когда кодируется машина состояний, родители которой экспортировали события, генератор кода Stateflow производит функцию для каждого экспортируемого события. Модель C для экспортируемой функции события имеет следующую форму
void external_broadcast_EVENT ()
Где EVENT - имя экспортируемого события. Внешний код, включающий объект, содержащий машину состояний, может переключать событие, вызывая его функцию. Например, предположим, что Вы определяете экспортируемое событие, которое называется switch_on. Внешний код
может переключать это событие, вызывая произведенную функцию
External_broadcast_trigger_on.
Импорт Событий
Машина состояний может импортировать события, определенные внешним кодом. Импортирование события позволяет машине состояний переключать событие во внешний код. Чтобы импортировать событие, сначала добавьте событие к словарю данных как потомка машины состояний, которая должна вызвать событие. Затем установите новое свойство индикатора события как Импортированное.
Примечание Машина состояний служит как замена родителя для импортированного события. Это значит, что Вы должны использовать Проводник, чтобы добавить импортированные события к словарю данных.
Stateflow предполагает, что внешний код определяет каждое импортированное событие как функцию, чья модель имеет следующую форму
void external_broadcast_EVENT
Где EVENT - имя импортированного события. Предположим,
что машина состояний импортирует внешнее событие, которое называется switch_on. Тогда Stateflow предполагает, что внешний код определяет следующую функцию: External_broadcast_switch_on, которая передает событие внешнему коду. Когда кодируется машина состояний и генератор кода Stateflow кодирует действия, этот сигнал импортирует события как запросы к соответствующему внешнему передающему событию функций, определенных внешним кодом.
Определение типов переключателя
Тип переключателя определяет, как управляющие сигналы переключают входящие и выходящие события, связанные с диаграммой. Типы переключателя делятся на две категории: функцию запроса и границы. Основное различие между этими двумя типами это уведомление о возникновении результирующих блоков. Получившиеся блоки уведомлены о границе переключения событий только в начале следующего такта моделирования, независимо от того, когда произошли события в течение предыдущего такта. Кроме того, получившиеся блоки уведомлены о функции запроса переключения события в момент, когда события происходят, даже если они происходят в середине такта.
Вы устанавливаете тип переключателя диаграммы, выбирая свойство Trigger любого входящего или выходящего события, определенного для диаграммы. Если Вы хотите, чтобы диаграмма уведомила другие блоки в момент, когда происходит выходящее событие, установите свойство Trigger выходящего события как Function Call.Тип переключателя выходящего события должен быть Either Edge. Если диаграмма соединена с блоком, который является выходящим событием функции запроса, Вы должны определить свойство Trigger получаемого входящего события диаграммы, как Function Call. Stateflow изменяет все другие входящие события диаграммы в Function Call.
Если уведомление блоков о событиях, происходящих в этот момент не вызывает критическую ситуацию, Вы можете определить события как границу переключения. Вы можете задавать любой из следующих типов границы переключения:
Rising Edge. Повышенный уровень управляющего сигнала переключает событие.
Falling Edge. Пониженный уровень управляющего сигнала переключает событие.
Either Edge. Изменение в уровне сигнала переключает событие.
В любом случае, сигнал должен пересечь 0, чтобы совершить правильное переключение. Например, изменение от -1 до 1 составляет правильную повышенную границу, но при переходе 1 до 2 изменение не происходит.
Если Вы создаете тип границы переключения, который отличается от типа границы, определенного для диаграммы, Stateflow изменяет тип Trigger входящего события диаграммы на Either Edge.
Описание событий
Stateflow позволяет Вам хранить краткие описания событий в словаре данных. Чтобы описать особые события, установите свойство Description.
Документация событий
Stateflow позволяет Вам обеспечивать диалоговую документацию для событий, определенных моделью. Чтобы документировать особое событие, установите свойство Documentation, которое показывает документацию в диалоговом формате (например, HTML файл или текст в MATLAB).
Неявные события
Stateflow определяет и переключает следующие события, которые обычно происходят, когда выполняется:
Эти события называются неявными событиями, потому что Вы не должны определять или переключать их явно. Неявные события - потомки диаграммы, в которой они происходят и видимы только в них.
Ссылка на неявные события
Действия могут использовать следующий синтаксис, чтобы ссылаться на неявные события.
event(object)
Где event - имя неявного события, и object - состояние, где произошло событие. Действительные имена неявного события (и их сокращения) - wakeup (также упоминается как tick), enter (en), exit (ex), и change (chg).
Если более чем один объект имеет одно и то же имя, ссылка на событие должна определить имя объекта вместе с его предком. Несколько примеров действительных ссылок неявных событий.
enter(switch_on)
en(switch_on)
change(engine.rpm)
Примечание Когда пробуждение события вычисляется, оно всегда ссылается на диаграмму действия.
Пример
Этот пример иллюстрирует использование неявного enter события.
Fan и Heater параллельные (И) надсостояния. По умолчанию, первый раз диаграмма Stateflow пробуждается событием состояния Fan. Fan.Off и Heater.Off становятся активными. Сначала происходят Fan_switch и переход от Fan.Off к Fan.On. Когда выполняется входное действие Fan.On , передается неявное локальное событие (то есть, en(Fan.On) == 1). Эта передача события переключает переход от Heater.Off к Heater.On (условием en(Fan.On)). Точно так же, когда система переходит от Fan.On к Fan.Off и неявное локальное событие Fan.Off - передается, происходит переход от Heater.On to Heater.Off.
Определение данных
Машина состояний может хранить и восстанавливать данные, которые находятся внутри ее собственного рабочего пространства. Также это могут быть данные доступа, которые находятся в модели Simulink или в приложении, которое включает машину состояний. При создании модели Stateflow, Вы должны определить любые внутренние или внешние данные, упомянутые действиями машины состояний.
Определение объекта данных:
1. Добавьте объект к словарю данных.
2. Установите свойства нового объекта.
Добавление данных к словарю
Вы можете использовать либо редактор Stateflow, либо Проводник, чтобы добавить данные, которые являются доступным только в определенной диаграмме. Вы должны использовать Проводник, чтобы добавить данные, которые являются доступными во всей машине состояний или только в определенном состоянии.
Использование редактора Stateflow
Чтобы использовать редактор Stateflow для добавления данных, необходимо:
1. Из меню Add редактора Stateflow, выбрать Data....
2. В получившемся подменю выбрать индикатор данных.
По умолчанию Stateflow добавляет определение нового объекта к словарю данных и показывает диалоговое окно Data, которое отображает свойства нового объекта. Используйте диалоговое окно Data, чтобы задать такие значения свойств объекта, при которых он отображается в нужном виде.
Использование проводника
Используйте Проводник, чтобы определить объект данных:
1. Выберете Explore из меню редактора Stateflow Tools.
Stateflow откроет Проводник.
2. Выберите объект (машину состояний, диаграмму, или состояние) в иерархии объекта Проводника, там, где Вы хотите поместить новый объект.
3. Выберите Data из меню Проводника Add
По умолчанию Stateflow добавляет определение для нового объекта в словарь данных и показывает вход для объекта в оглавлении Проводника.
4. Выберите такие значения свойств объекта, чтобы они отображались в заданном виде.
Установка свойств данных
Вы определяете данные объекта, устанавливая его свойства.
Чтобы установить свойства данных объекта, выполните следующее:
1. Выберите Проводник из меню Tools редактора Stateflow. Выберите объект в содержании Проводника.
2. Выберите Properties из Edit Проводника или контекстного меню.
3. Stateflow показывает диалоговое окно Data для выбора объекта.
4. Используйте управление диалоговым окном, чтобы установить свойства объекта.
5. Выберите OK, чтобы применить ваши изменения и отменить диалоговое окно Data.
Примечание Вы может также устанавливать индикатор данных объекта, тип, размеры, начальное значение, минимальное и максимальное значение, в свойствах рабочего пространства редактированием соответствующих областей на входе объекта в содержании Проводника. Если Вы хотите установить только эти свойства, Вам не нужно открывать диалоговое окно Data для события.
Диалоговое окно Data
Диалоговое окно Data позволяет Вам устанавливать свойства объекта диалога.
Диалоговое окно включает в себя следующие параметры.
Name
Имя данных объекта. Имя данных может иметь любую длину и состоять из любой алфавитно-цифровой комбинации, за исключением вложенного пространства. Имя не может начинаться с числа.
Parent
Родитель этого объекта данных. Родитель определяет объекты, которые могут быть доступны ему. Только родитель объекта и его потомки могут быть доступны объекту. Вы определяете родителя данных объекта, когда добавляете его к словарю данных.
Scope
Индикатор этого объекта данных. Индикатор объекта данных определяет, где он находится в памяти относительно его родителя. Параметры для свойств индикатора:
Lokal. Локальный объект данных находится и доступен только в машине, диаграмме, или состоянии.
Input from Simulink. Это объект данных, который доступен в блоке диаграммы Simulink, но находится в другом блоке, который может быть блоком диаграммы или другим блоком. Получившийся блок диаграммы считывает значение объекта данных из порта входа, связанного с объектом данных.
Output to Simulink. Это объект данных, который находится в блоке диаграммы и доступен в другом блоке, который может быть блоком диаграммы или другим блоком. Блок диаграммы выходного значения данной величины и порт выхода связаны с объектом данных.
Temporary. Временные данные объекта существуют только тогда, когда его родитель выполняется.
Constant. Постоянные данные объекта существуют только для чтения и сохраняют начальный набор значений в диалоговом окне свойств Data.
Export. Экспортируемые данные объекта - это данные машины состояний, которые могут быть доступны с помощью внешнего кода, который включает машину состояний.
Import. Импортированные данные - данные, определяемые внешним кодом, который может быть доступен с помощью машины состояний, вложенной в него.
Примечание Если Вы копируете блок диаграммы Stateflow из одной модели Simulink в другую, все объекты в иерархии диаграмм скопированы, кроме тех, которые стали родительскими с помощью машины состояний Stateflow. Это значит, что данные, которые становятся родительскими с помощью машины Stateflow (локальное, импортированное, экспортированное), не скопированы в новую машину. Однако Вы можете использовать Проводник, чтобы копировать индивидуальные данные, перетаскивая их курсором из одной машины в другую.
Type
Тип данных этого объекта, например, целочисленный, двойной, и т.д.
Port
Индекс порта связан с данными этого объекта. Это управление применяется только к входящим и выходящим данным.
Units
Единицы - например, дюймы, сантиметры, и т.д., представленные данными этого объекта. Значение этой области с объектом хранятся в словаре данных машины состояний.
Array
Данные этого объекта - множество. Параметры:
Sizes. Размер этого множества. Значением этой величины может быть скаляр или вектор MATLAB. Если это - скаляр, то определяется размер одномерного множества, (то есть, вектор). Если вектор MATLAB, то указывается размер каждого измерения многомерного множества, номер измерений которого соответствует длине вектора.
First Index. Определяет индекс первого элемента этого множества. Например, первый индекс нулевого множества - 0.
Limit Range
Эта группа управления определяет значения, используемые машиной состояний, чтобы проверить законность данных этого объекта. Она включает следующие два управления:
Min. Минимальное значение, которое данные этого объекта могут иметь в течение выполнения или моделирования машины состояний.
Max. Максимальное значение, которое данные этого объекта могут иметь в течение выполнения или моделирования машины состояний.
Initialize from.Источник начального значения для данных этого объекта - это либо словарь данных Stateflow, либо рабочее пространство MATLAB. Если данные этого объекта - множество, Stateflow устанавливает каждый элемент множества к указанному начальному значению.
Если источник - словарь данных, введите начальное значение в смежную область текста. Stateflow сохраняет значение, которое Вы вводите в словарь данных.
Если источник - рабочее пространство MATLAB, этот объект получает свое начальное значение из подобного названия переменной в рабочем пространстве. Предположим, что имя объекта данных Stateflow - A. Если родительское рабочее пространство имеет переменную по имени A, его значение использует инициализацию данных объекта.
Следующая таблица суммирует время инициализации для каждого индикатора.
Родитель |
Индикатор |
Инициализация |
Машина |
Local Export Import |
Начало моделирования Начало моделирования Не применяется |
Диаграмма |
Input from Simulink Output to Simulink Local |
Не применяется Начало моделирования или когда диаграмма заново инициализируется как часть подсистемы Simulink |
Состояние Без соединения с памятью С соединением с памятью |
Local |
Состояние активации (состояние введено) Начало моделирования или когда диаграмма заново инициализируется как часть подсистемы Simulink |
Графическая Функция |
Input from Simulink Output to Simulink Local |
Не применяется Когда функция активизирована Начало моделирования или когда диаграмма заново инициализируется как часть подсистемы Simulink |
Примечание Вы также может использовать Проводник Stateflow, чтобы установить область Initialize from.
Save final value to base workspace
Проверка этого параметра вызывает значение данных объекта, назначенных как название переменной в рабочем пространстве модели в конце моделирования.
Watch in debugger
Этот параметр вызывает отладчика, чтобы остановиться, если данные этого объекта изменены.
Description
Описание данных этого объекта.
Document link
Щелчок по этой области показывает предоставленную пользователем диалоговую документацию для данных этого объекта.
Определение множеств данных
Stateflow позволяет Вам определять множества данных. Чтобы определить множество, необходимо:
1. Добавьте данные объекта к словарю как потомка состояния, диаграммы, или машины, которая нуждается в доступе данных.
2. Откройте диалоговое окно Data. Проверьте окно Array. Установите свойство объекта Sizes к размеру каждого из измерений множества Setting Data Properties.
Например, чтобы определить вектор со 100 элементами, установите свойство Sizes в 100.
Чтобы определить множество 2 на 4, установите свойство Sizes в [2 4].
3. Установите свойство индекса объекта Initial в индекс множества первого элемента. Например, чтобы определить нулевое множество, установите свойство индекса Initial в 0.
4. Установите источник инициализации объекта и если инициализация происходит из словаря данных, то установите начальное значение.
Например, чтобы определить, что элементы множества инициализированы в 0, установите Initialized from из параметра диалогового окна Data в словаре данных и введите 0 в смежную область текста.
5. Установите другие параметры в диалоговом окне (например, Name, Type, и так далее), чтобы отразить предназначенное использование данных.
Пример.
Предположим, что Вы хотите определить локальное нулевое множество целого типа 4 на 4, названное rotary_switches. Далее предположим, что каждый элемент множества был первоначально равен 1 и не мог иметь никаких значений меньше чем 1 или больше чем 10. Следующее диалоговое окно Data показывает назначения для такого множества.
Определение входящих данных
Stateflow позволяет модели снабжать данными диаграмму через порты входа в блоке диаграммы. Такие данные называются входящими данными. Чтобы определить объект входящих данных, добавьте его к словарю данных Stateflow как потомка диаграммы, которая будет входящими данными. Установите индикатор нового объекта как Input from Simulink. Stateflow добавляет порт входа к диаграмме для каждого объекта входящих данных, которые Вы определяете для диаграммы.
Установите другие свойства объекта (например, Name, Type, и т.д.) соответствующих значений.
Вы можете устанавливать тип данных входящего объекта в любой поддерживающийся тип Stateflow. Если активизирован параметр обязательного заполнения данных, входящие сигналы должны соответствовать указанному типу, иначе появится ошибка несоответствия. Если параметр обязательного заполнения данных не активизирован, входящие сигналы должны быть типа double. В этом случае Stateflow преобразует входящие значения к указанному типу. Если входящий объект - вектор, модель должна предоставить данные через сигнальный вектор, связанный с соответствующим портом входа в диаграмме.
Определение выходящих данных
Выходящие данные - данные, которыми диаграмма снабжает другие блоки через порты выхода. Чтобы определить объект выходящих данных, добавьте данные объекта к данных как потомка диаграммы, который снабжает объект. Затем установите индикатор свойств нового объекта в Output to Simulink. Stateflow добавляет порт выхода к диаграмме для каждого выходящего объекта.
Вы можете устанавливать тип выходящего объекта в любой поддерживающийся тип данных Stateflow (например, целочисленный). Если параметр обязательного заполнения данных активизирован, диаграмма выведет сигнал того же типа данных, как тип выходящих данных объекта. Если этот параметр не активизирован, блок диаграммы Stateflow преобразовывает выходящие данные к типу double.
Соединение портов с данными
Stateflow создает и связывает порт входа с каждым объектом входящих данных, которые Вы определяете для диаграммы и порт выхода для каждого объекта выходящих данных. По умолчанию Stateflow соединяет первый порт входа с первым входящим объектом, который Вы определяете, второй порт входа со вторым входящим объектом, и так далее.
Диалоговое окно Data для каждого объекта показывает его текущее назначение порта в области Port. Вы можете изменять назначение, редактируя значение, показанное в области Port или выбирая объект данных в Проводнике и перемещая его.
Определение временных данных
Stateflow позволяет диаграммам и графическим функциям определять временные данные, которые сохраняются только пока диаграмма или графическая функция активна. Временные данные могут быть доступны только родителю диаграммы или графической функции. Определяя цикл счетчика в качестве временного, хорошо использовать Индикатор, так как значение используется только как счетчик и значение не должно сохраниться.
Экспорт данных
Stateflow может экспортировать определенные данные машины состояний к внешнему коду, который содержит машину состояний. Экспортируемые данные активизируют внешний код также хорошо, как машина состояний. Чтобы экспортировать данные, сначала добавьте их к словарю как потомка машины состояний, в которой они определены. Затем установите свойство индикатора в Exported; и другие свойства (например, Name и Type) соответствующих значений.
Генератор кода Stateflow производит C описание для каждого экспортируемого объекта данных в следующей форме
type ext_data;
Где type - тип экспортируемого объекта (например, int, double) и data -
Имя объекта Stateflow. Предположим, что ваша машина состояний определяет экспортируемый объект целочисленного типа названный counter. Генератор кода Stateflow экспортирует объект как следующее описание
Int ext_counter;
Генератор кода включает описания для экспортируемых данных в произведенном основном файле, таким образом, делая описания видимыми внешнему компилируемому коду или связывает с кодом.
Импорт данных
Машина состояний может импортировать данные, определяемые внешним кодом, который содержит машину состояний. Импортированные внешне данные активизируют машину состояний к данным доступа, определенным системой, в которой они содержатся. Чтобы импортировать определенные внешне данные объекта в машину состояний, добавьте его к словарю данных как потомка машины состояний. Затем установите свойство индикатора нового объекта в Imported, свойство Name в имя, используемое действиями машины, чтобы ссылаться на объект, и другие свойства (Type, например) соответствующего значения.
Генератор кода Stateflow предполагает, что внешний код обеспечивает модель для каждого импортированного объекта в следующей форме
type ext_data;
Где type - тип данных, соответствующий типу данных импортированного объекта Stateflow (например int для целочисленного, double для двойного, и т.д.) и data - имя объекта Stateflow. Предположим, что ваша машина состояний определяет импортированный объект целочисленного типа, названный counter. Генератор кода Stateflow ожидает объект, чтобы быть определенным во внешнем коде C как
Int ext_counter;
Документация данных
Stateflow позволяет Вам обеспечивать диалоговую документацию для данных, определенных моделью. Чтобы документировать особый объект данных, установите свойство Documentation в выражении, которое показывает документацию в любом формате (например, HTML файл или текст в MATLAB командное окно).
Обозреватель автоматического создания символа
Обозреватель автоматического создания символа помогает Вам избежать ошибочных данных и событий к вашей диаграмме Stateflow. Когда Вы анализируете или моделируете диаграмму, обозреватель обнаруживает
ссылку на данные и события, которые были предварительно не определены в Проводнике Stateflow. Тогда обозреватель открывается, и рекомендует установки для нерешенных данных или событий, чтобы помочь Вам определить эти символы.
Чтобы отклонить рекомендацию, щелкните для проверки отметки следующего типа символа. Обозреватель не проверяет вход для символа. Чтобы изменить рекомендуемый тип, индикатор, или родитель символа, щелкните соответствующий вход для символа в Обозревателе Символа. Обозреватель заменит вход с альтернативным значением. Продолжайте щелкать до тех пор, пока не появится желаемая альтернатива. Когда Вы удовлетворены предложенным символом, щелкните Add в Обозревателе, чтобы добавить символы к словарю данных Stateflow.