Доступ к сигналам в Simulink.sdi.Run
объект с помощью имени сигнала
возвращает один или несколько sigs
= getSignalsByName(runObj
,name
)Simulink.sdi.Signal
объекты с именем, заданным name
.
к Simulink.sdi.Signal
Объекты по наименованиюМожно использовать Инспектора Данных моделирования программируемый интерфейс, чтобы получить доступ к Simulink.sdi.Signal
объекты, которые соответствуют регистрируемым или импортированным данным. Используя getSignalsByName
функция, можно задать имя сигнала, который вы хотите получить от Simulink.sdi.Run
объект. Можно получить доступ к данным для отдельных сигналов и составить сигналы.
Создайте данные в инспекторе данных моделирования
Этот пример использует модель импульса в противоречии с, создают данные моделирования в Инспекторе Данных моделирования. Модель имеет два входных сигнала, которые задают верхнее и нижний предел для счетчика и один входной сигнал импульса с импульсами, чтобы рассчитать. Модель использует шины, чтобы отправить данные в Bus Counter
подсистема и из него с блоком Outport. Модель сконфигурирована, чтобы регистрировать импульсный сигнал, input
, и выход, соединенный с блоком Outport.
Симулируйте модель, чтобы создать запуск, который содержит записанные данные в Инспекторе Данных моделирования.
out = sim('ex_pulse_counter');
Доступ к сигналам в инспекторе данных моделирования
Используйте Инспектора Данных моделирования программируемый интерфейс, чтобы получить доступ к записанным данным. Simulink.sdi.Run.getLatest
функция возвращает Simulink.sdi.Run
объект, который соответствует последний раз созданному запуску.
countRun = Simulink.sdi.Run.getLatest;
Используйте getSignalsByName
функционируйте, чтобы получить доступ к input
сигнал. Проверяйте Name
свойство возвращенного Simulink.sdi.Signal
объект.
inSig = getSignalsByName(countRun,'input');
inSig.Name
ans = 'input'
input
сигнал не является составным сигналом, таким образом, Children
свойство Signal
объект пуст.
inChildren = inSig.Children; size(inChildren)
ans = 1×2
0 0
Теперь используйте getSignalsByName
функционируйте, чтобы получить доступ к выходному сигналу, OUT
. OUT
сигнал шины, который содержит выходной сигнал счетчика, output
, и встречные предельные сигналы, upper_limit
и lower_limit
, во вложенной шине под названием LIMITBUS
.
outSig = getSignalsByName(countRun,'OUT');
Проверяйте Name
и Children
свойства для возвращенного Signal
объект. Children
значение свойства содержит два Signal
объекты, которые соответствуют сигналам на следующем уровне иерархии в OUT
шина.
outSig.Name
ans = 'OUT'
outChildren = outSig.Children; size(outChildren)
ans = 1×2
1 2
Поскольку Signal
объект outSig
соответствует составному сигналу, вы не можете построить данные сигнала в Инспекторе Данных моделирования, использующем Checked
свойство или plotOnSubPlot
функция. Чтобы отобразить данные на графике в составном сигнале, получите доступ к отдельному Signal
объекты.
Доступ к сигналам в составном сигнале
Можно получить доступ к сигналам в OUT
шина и LIMITBUS
путем индексации в Children
свойство соответствующего Signal
объект. Например, можно получить доступ к output
сигнал от OUT
соедините шиной Signal
объект.
outChildren = outSig.Children; outputSig = outChildren(1); outputSig.Name
ans = 'OUT.output'
Можно также получить Signal
объект для output
сигнал путем определения пути к сигналу через иерархию шины.
outputSig = getSignalsByName(countRun,'OUT.output');
outputSig.Name
ans = 'OUT.output'
Получить доступ к upper_limit
предупредите, задайте полный путь к сигналу в шине.
upper_limitSig = getSignalsByName(countRun,'OUT.LIMITBUS.upper_limit');
upper_limitSig.Name
ans = 'OUT.LIMITBUS.upper_limit'
runObj
— Запуститесь содержащий сигналы, к которым вы хотите получить доступSimulink.sdi.Run
объектЗапуститесь содержащий сигналы, к которым вы хотите получить доступ в виде Simulink.sdi.Run
объект.
name
— Имя сигнала вы хотите получить доступИмя сигнала вы хотите получить доступ в виде вектора символов или строки.
Модель может использовать то же имя сигнала больше чем для одного сигнала. В этом случае, когда это необходимо, чтобы получить доступ к определенному сигналу, можно включать блок path для блока, который производит сигнал в name
аргумент. Например, задайте name
как 'slexAircraftExample.Pilot.Stick'
получить доступ к сигналу под названием Stick
это - выход Pilot
блокируйтесь в slexAircraftExample
модель.
К сигналам доступа в составных сигналах задайте путь к сигналу через иерархию составного сигнала. Например, задайте name
как 'COUNTERBUS.LIMITBUS.lower_limit'
получить доступ к lower_limit
предупредите в шине о LIMITBUS
это вкладывается в шине COUNTERBUS
.
Типы данных: char |
string
sigs
— Сигналы, совпадающие с указанным именемSimulink.sdi.Signal
возразите | массив Simulink.sdi.Signal
объектыОдин или несколько сигналов, совпадающих с указанным именем, возвращенным как Simulink.sdi.Signal
возразите или массив Simulink.sdi.Signal
объекты.
Simulink.sdi.compareSignals
| Simulink.sdi.deleteSignal
| Simulink.sdi.getSignal
| getSignalIDsByName
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.