getSignalIDsByName

Получите идентификаторы сигналов для сигналов внутри 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'

Входные параметры

свернуть все

Запуск, содержащий сигналы с идентификаторами сигналов, к которым вы хотите получить доступ, заданный как Simulink.sdi.Run объект.

Имя сигнала с идентификатором сигнала, к которому вы хотите получить доступ, задается как вектор символов или строка.

Модель может использовать то же имя сигнала для более чем одного сигнала. В этом случае, когда вы хотите получить доступ к идентификатору сигнала для определенного сигнала, можно включить путь блока для блока, который формирует сигнал в name аргумент. Для примера задайте name как 'slexAircraftExample.Pilot.Stick' для доступа к идентификатору сигнала с именем Stick это выход Pilot блок в slexAircraftExample модель.

Для доступа к сигналам внутри составных сигналов задайте путь к сигналу через иерархию составного сигнала. Для примера задайте name как 'COUNTERBUS.LIMITBUS.lower_limit' для доступа к идентификатору сигнала для lower_limit сигнал внутри шины LIMITBUS который вложен в шину COUNTERBUS.

Типы данных: char | string

Выходные аргументы

свернуть все

Один или несколько идентификаторов сигналов с заданным именем возвращаются в виде скаляра или массива.

Введенный в R2020a