Получите идентификаторы сигналов для сигналов внутри Simulink.sdi.Run
объект, используя имя сигнала
возвращает один или несколько идентификаторов сигналов в sigIDs
= getSignalIDsByName(runObj
,name
)Simulink.sdi.Run
объект с заданным именем, name
.
Вы можете получить доступ к идентификаторам сигналов внутри Simulink.sdi.Run
объект путем определения имени сигнала, для которого требуется идентификатор сигнала. Можно использовать ID сигнала для сравнения сигналов с помощью Simulink.sdi.compareSignals
function, доступ к Simulink.sdi.Signal
объект для сигнала, используя Simulink.sdi.getSignal
function, или удалить сигнал от Данных моделирования Inspector используя Simulink.sdi.deleteSignal
функция.
В этом примере показано, как использовать getSignalIDsByName
функция для доступа к сигналу, используя его имя или путь блока и как получить доступ к идентификатору сигнала для сигнала, содержащегося в шине.
Создание данных в Данные моделирования Inspector
Этот пример использует модель импульсного счетчика, чтобы создать данные моделирования в Simulation Data Inspector. Модель имеет два входных сигналов, которые задают верхний и нижний пределы для счетчика, и один входной импульсный сигнал с импульсами для подсчета. Модель использует шины, чтобы отправить данные в Bus Counter
подсистема и из нее в блок Outport. Модель сконфигурирована, чтобы записать импульсный сигнал, input
и сигнал выхода, OUT
, который соединяется с блоком Outport.
Симулируйте модель, чтобы создать запуск, которая содержит записанные данные в Данных моделирования Inspector.
out = sim('ex_pulse_counter');
Идентификаторы сигналов доступа
Для доступа к записанным данным используйте программный интерфейс Данные Моделирования Inspector. The Simulink.sdi.Run.getLatest
функция возвращает Simulink.sdi.Run
объект, который соответствует последнему созданному запуску. Вы можете получить доступ к идентификаторам сигналов для записанных сигналов от Simulink.sdi.Run
объект.
countRun = Simulink.sdi.Run.getLatest;
Используйте getSignalIDsByName
функция для доступа к идентификатору сигнала для input
сигнал.
inSigID = getSignalIDsByName(countRun,'input');
В более сложной модели несколько сигналов могут иметь одно и то же имя. В этом случае использование только имени сигнала с getSignalIDsByName
функция приводит к массиву идентификаторов сигналов для всех записанных сигналов в модели, которые используют это имя. Чтобы избежать повторяющихся результатов, можно задать путь блока и имя сигнала вместе. Используйте точки для разделения элементов пути блока вместо косых черт. Для примера доступа к идентификатору сигнала для input
сигнал, вы также можете задать имя следующим 'ex_pulse_counter.Pulse Generator.input'
.
inSigID = getSignalIDsByName(countRun,'ex_pulse_counter.Pulse Generator.input');
Идентификаторы сигнала доступа для сигналов внутри составных сигналов
Выходы вошли в ex_pulse_counter
модель является сигналом шины. Вы можете получить доступ к идентификатору сигнала, который соответствует верхнему сигналу шины, OUT
, вложенная шина, LIMITBUS
, и отдельные сигналы в шине: output
, upper_limit
, и lower_limit
.
Чтобы получить доступ к идентификатору сигнала для верхней шины, укажите имя сигнала, OUT
.
OUTSigID = getSignalIDsByName(countRun,'OUT');
Для доступа к идентификатору сигнала для вложенной шины укажите путь к сигналу в иерархии шины.
LIMITBUSSigID = getSignalIDsByName(countRun,'OUT.LIMITBUS');
Для доступа к идентификатору сигнала для одного из отдельных сигналов укажите путь к сигналу в иерархии шины. Вы не можете получить доступ к сигналу, используя только имя сигнала. The Name
свойство Signal
объект включает иерархию шины.
upper_limitSigID = getSignalIDsByName(countRun,'OUT.LIMITBUS.upper_limit');
upper_limitSig = Simulink.sdi.getSignal(upper_limitSigID);
upper_limitSig.Name
ans = 'OUT.LIMITBUS.upper_limit'
runObj
- Запуск, содержащий сигналы с идентификаторами, к которым вы хотите получить доступSimulink.sdi.Run
объектЗапуск, содержащий сигналы с идентификаторами сигналов, к которым вы хотите получить доступ, заданный как Simulink.sdi.Run
объект.
name
- Имя сигнала с идентификатором, к которому вы хотите получить доступИмя сигнала с идентификатором сигнала, к которому вы хотите получить доступ, задается как вектор символов или строка.
Модель может использовать то же имя сигнала для более чем одного сигнала. В этом случае, когда вы хотите получить доступ к идентификатору сигнала для определенного сигнала, можно включить путь блока для блока, который формирует сигнал в name
аргумент. Для примера задайте name
как 'slexAircraftExample.Pilot.Stick'
для доступа к идентификатору сигнала с именем Stick
это выход Pilot
блок в slexAircraftExample
модель.
Для доступа к сигналам внутри составных сигналов задайте путь к сигналу через иерархию составного сигнала. Для примера задайте name
как 'COUNTERBUS.LIMITBUS.lower_limit'
для доступа к идентификатору сигнала для lower_limit
сигнал внутри шины LIMITBUS
который вложен в шину COUNTERBUS
.
Типы данных: char
| string
sigIDs
- Идентификаторы сигналов с заданным именемОдин или несколько идентификаторов сигналов с заданным именем возвращаются в виде скаляра или массива.
getSignalsByName
| Simulink.sdi.compareSignals
| Simulink.sdi.deleteSignal
| Simulink.sdi.getSignal
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.