Распространение метки сигнала

Можно задать имена сигналов и сконфигурировать распространение имен сигналов в Simulink® модель для отслеживания метки сигнала через один блок или множество блоков. Список поддерживаемых блоков см. в разделе Блоки, которые Поддержка Распространение метки сигнала.

Когда вы назовете сигнал и включите отображение распространения метки сигнала для выходных сигналов разрешенных блоков:

  • Если существует заданное пользователем имя сигнала, которое Simulink может распространять, метка распространенного сигнала включает имя в угол скобках (для примера, <sig1>).

  • Если нет имени сигнала для распространения, Simulink отображает пустой набор угла скобок (<>) для метки.

Для примера в следующей модели сигнал выхода от блока Subsystem сконфигурирован для распространения метки сигнала. Метка распространенного сигнала (<const>) основывается на имени выходного сигнала в восходящем направлении блока Constant (const).

Для получения дополнительной информации о том, как Simulink создает метки распространенного сигнала, смотрите, Как Simulink распространяет метки сигнала.

Блоки, которые поддерживают распространение метки сигнала

Можно использовать распространение метки сигнала с выходными сигналами для нескольких блоков соединения, которые маршрутизируют сигналы через модель, не меняя данные. Блоки соединения не выполняют преобразования сигнала.

Кроме того, блоки Model поддерживают распространение метки сигнала.

Блоки соединения, которые поддерживают распространение метки сигнала, являются:

Блоки Bus Creator и Bus Selector не поддерживают распространение метки сигнала. Однако, если необходимо просмотреть иерархию любого сигнала шины, используйте иерархию шины отображения.

Диалоговое окно Свойства для сигнала указывает, поддерживает ли этот сигнал распространение метки сигнала. Параметр Show propagated signals доступен только для блоков, которые поддерживают распространение метки сигнала. Для получения дополнительной информации смотрите Отображение меток распространенного сигнала.

Как Simulink распространяет метки сигнала

В целом Simulink последовательно выполняет распространение метки сигнала:

  • Для различных конструкций моделирования (для примера, нешинных и шинных сигналов, виртуальных и невиртуальных шин, вариантов подсистемы и модели, ссылок на модели и библиотек)

  • В моделях с скрытыми блоками или без них, которые Simulink вставляет в определенных случаях, чтобы включить симуляцию

  • При загрузке модели, редактировании, обновлении и временах симуляции

Для получения информации о некоторых особых случаях смотрите:

Общая обработка распространения метки сигнала

В целом, когда вы активируете распространение метки сигнала для выхода сигнала блока (для примера, BlockA), Simulink выполняет следующую обработку, чтобы найти имя исходного сигнала для распространения:

  1. Проверяет блок, выходной сигнал которого соединяется с BlockA, и при необходимости продолжает проверку восходящих блоков, работая назад от ближайшего блока к самому дальнему блоку.

  2. Останавливается, когда встречается с блоком, который либо:

    • Поддерживает распространение метки сигнала и имеет имя сигнала

    • Не поддерживает распространение метки сигнала

  3. Получает имя сигнала (если таковой имеется) выход для блока, в котором останавливается Simulink.

  4. Использует это имя сигнала для метки распространенного сигнала любых выходных сигналов нисходящих блоков, для которых вы разрешаете распространение метки сигнала.

Например, в следующей модели предположим, что вы активируете распространение метки сигнала для выходного сигнала для блока Subsystem (то есть сигнала, соединенного с Out1 порт).

Simulink проверяет внутри подсистемы, проверяет в восходящем направлении от блоков From и GoTo (которые поддерживают распространение метки сигнала и не имеют имени), а затем проверяет в восходящем направлении, к блоку Constant, который не поддерживает распространение метки сигнала.

Simulink использует имя сигнала выходного сигнала Constant блока, const. Метка распространенного сигнала для выходного сигнала Subsystem блока <const>.

Если бы выходной сигнал от блока Constant не имел имени сигнала, то метка распространенного сигнала была бы пустым набором угловых скобок (<>).

Предположим, что в блоке Subsystem вы активируете распространение метки сигнала для выходного сигнала от блока In1, и вы используете диалоговое окно Свойства, чтобы задать имя сигнала const-from для сигнала выхода блока From, как показано ниже.

Метка распространенного сигнала для выходного сигнала блока Subsystem изменяется на <const-from>, потому что это первый именованный сигнал, с которым Simulink сталкивается при обработке распространения метки сигнала.

В следующей модели распространение метки сигнала для выходного сигнала блока Subsystem использует имя сигнала bus1, которое является именем выходного сигнала шины блока Bus Creator. Метка распространенного сигнала не включает имена сигналов элемента шины (a и b).

Отобразите метки распространенного сигнала

Можно отобразить метки распространенного сигнала для отдельных сигналов или отобразить метки распространенного сигнала для всех сигналов в модели. Чтобы отобразить метки для всех сигналов, в редакторе Simulink, на вкладке Debug, выберите Information Overlays > Propagated Signal Labels.

Чтобы отобразить метку распространенного сигнала для отдельного сигнала:

  1. Щелкните правой кнопкой мыши сигнал, для которого необходимо отобразить метку распространенного сигнала, и выберите Properties.

  2. В диалоговом окне Свойств сигнала» выберите Show propagated signals.

    Параметр Show propagated signals доступен только для выходных сигналов от блоков, которые поддерживают распространение метки сигнала.

Чтобы включить это свойство сигнала программно, создайте указатель на сигнальную линию и задайте signalPropagation как 'on'. Например, вы можете использовать этот код, чтобы включить или отключить свойство для всех сигналов в диаграмме модели.

% Create an array of handles to every signal line in the diagram
signalLines = find_system(gcs,'FindAll','on','type','line');

% Enable or disable the property for each signal line
for i = 1:length(signalLines)

      % set(signalLines(i),'signalPropagation','off');
      set(signalLines(i),'signalPropagation','on');
end

Если сигнал уже имеет метку, то альтернативный подход для отображения метки распространенного сигнала:

  1. В диаграмме модели щелкните метку сигнала.

  2. Удалите текст метки.

  3. В текстовом поле метки сигнала введите угол скобку (<).

  4. Щелкните за пределами сигнальной метки.

    Simulink отображает метку распространенного сигнала.

Особые случаи распространения сигнала

Обработка для ссылочных моделей

Чтобы включить распространение метки сигнала для ссылочных моделей, в сложение к шагам, описанным в Отображение Mabels распространенных сигналов, используйте настройку по умолчанию для параметра Model Configuration Parameters > Model Referencing > Propagate all signal labels out of the model. Другими словами, убедитесь, что параметр включен.

Если вы вносите изменения в модель-ссылку, которая влияет на распространение метки сигнала, метки распространенного сигнала за пределами модели-ссылки не отражают эти изменения до тех пор, пока вы не обновите схему или не симулируете модель.

Для примера, модель ex_signal_label_prop_model_ref имеет модель-ссылку, которая включает сигнал выхода от блока In1, который имеет имя сигнала input_1.

Если вы активируете распространение метки сигнала от Out1 порта блока Model, этот сигнал не отражает имя input_1 до тех пор, пока вы не обновите схему или не симулируете модель.

Обработка для вариантов и конфигурируемых подсистем

Simulink обновляет метку распространенного сигнала (если включена) для выходного сигнала Блока Subsystem или блока Model, когда оба из этих условий происходят:

  • Сигналы выхода для вариантов моделей имеют различные имена сигналов.

  • Вы изменяете активную модель варианта или подсистему варианта.

Для Subsystem блоков метка сигнала обновляется во время редактирования. Для Model блоков обновление происходит, когда вы обновляете схему или симулируете модель.

Похожие темы