exponenta event banner

Группирование сигнальных линий в виртуальные шины

Можно объединить сигналы в шину, а затем получить доступ к шине в целом или выбрать определенные сигналы с шины. Виртуальная шина Simulink ® аналогична пучку проводов, удерживаемых вместе обвязкой. Для сравнения, невиртуальная шина Simulink аналогична структуре в коде C.

Не все блоки могут принимать шины, а некоторые блоки неявно преобразуют шины в векторы. Сведения о том, какие блоки поддерживают какие типы шин, см. в разделе Блоки с поддержкой шины. Сведения об определении преобразований шины см. в разделе Управление преобразованиями шины в вектор.

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

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

Совет

При открытии модели или создании шины в редакторе Simulink не отображаются стили линий шины. Для обновления стилей линий необходимо скомпилировать модель. На вкладке «Моделирование» панели инструментов Simulink щелкните Обновить модель (Update Model) или Выполнить (Run).

Группировать сигнальные линии внутри компонента

Сигналы можно группировать в виртуальную шину внутри компонента с помощью блоков Bus Creator.

Откройте пример модели, содержащий три блока.

Чтобы создать шину, содержащую выходные данные из нескольких блоков, перетащите курсор для выбора блоков. В этом примере выберите блоки Chirp Signal и Sine Wave. На появившейся панели операций щелкните Создать шину.

Simulink добавляет блок Bus Creator и соединяет входы с этим блоком. Выходом блока Bus Creator является виртуальная шина.

Для упрощения идентификации элементов шины маркируйте входные данные в блоке Bus Creator. Промаркируйте выходной сигнал блока Chirp Signal двойным щелчком на строке и введите Chirp. Аналогично, маркируйте выходной сигнал блока синусоидальной волны Sine.

Чтобы создать вторую шину, содержащую первую шину и выходные данные блока Step, перетащите фигуру, чтобы выбрать блоки Bus Creator и Step. На появившейся панели действий нажмите кнопку «Создать шину». Sine и Chirp сигналы являются элементами входной шины, Simulink создает одну и ту же шину независимо от того, включает ли выбор блоки синусоидального и частотного сигналов.

Simulink добавляет еще один блок Bus Creator и соединяет входы с этим блоком. Выходной сигнал блока Bus Creator представляет собой виртуальную шину, содержащую вложенную шину.

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

Маркировка выходных данных блока Step Step и выход первого блока Bus Creator NestedBus. При необходимости расположите блоки, чтобы улучшить удобочитаемость модели.

Подключите выход второго блока Bus Creator к блоку Scope и пометьте выход TopBus. Чтобы визуально идентифицировать шины, скомпилируйте модель, щелкнув Обновить модель (Update Model) или Выполнить (Run) на вкладке Моделирование (Modeling) панели инструментов Simulink. При компиляции модели обновляются стили линий.

Подключение нескольких выходных сигналов к порту

В этом примере показано, как сгруппировать выходные сигналы подсистемы или модели в виртуальную шину с использованием блоков Out Bus Element.

Откройте пример модели, содержащий три исходных блока.

Добавьте в модель блок Out Bus Element. Блок Out Bus Element аналогичен блоку Bus Creator, подключенному к блоку Outport. Подключите выход блока Chirp Signal к блоку Out Bus Element.

Метка рядом с блоком Out Bus Element состоит из двух частей. Первая часть этикетки описывает шину (OutBus), и вторая часть метки описывает элемент шины (signal1). Чтобы упростить идентификацию элементов шины, переименуйте элемент двойным щелчком мыши. signal1 и ввод Chirp.

Для создания двух копий блока дважды перетащите блок Out Bus Element. При копировании блока таким образом укажите, следует ли создавать новый порт или использовать существующий порт. Чтобы создать одну выходную шину, содержащую все сигналы, выберите «Использовать существующий порт» при каждом копировании блока, а затем подключите сигналы.

Чтобы создать иерархию в выходной шине, используйте точки в части метки, описывающей элемент шины. Каждая точка создает новый уровень иерархии. Создание вложенной шины с именем NestedBus путем определения элементов шины как NestedBus.Sine и NestedBus.Stepсоответственно.

Также можно подключить шину к блоку Out Bus Element. Если другие блоки Out Bus Element соответствуют одному и тому же порту, шина вложена в выходную шину. Часть метки, описывающей элемент шины, содержит имя этой вложенной шины.

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

Три блока Out Bus Element создают виртуальную шину в выходном порту модели. Чтобы увидеть виртуальную шину, обратитесь к модели в другой модели или переместите блоки Out Bus Element в подсистему. Стили линий обновляются при компиляции модели. Чтобы скомпилировать модель, на вкладке Моделирование (Modeling) панели инструментов Simulink щелкните Обновить модель (Update Model) или Выполнить (Run).

Объединение нескольких портов подсистемы в один порт

В этом примере показаны три способа упрощения интерфейса подсистемы путем преобразования нескольких портов и связанных с ними сигналов в один порт и шину.

Откройте пример модели, содержащей две подсистемы с несколькими портами ввода и вывода.

Перетащите рамку выбора вокруг сигнальных линий между двумя подсистемами. На появившейся панели операций щелкните Создать шину (Create Bus).

Simulink заменяет блоки Inport и Outport в исходной и целевой подсистемах блоками In Bus Element и Out Bus Element.

Перетащите рамку выбора вокруг сигнальных линий между исходными блоками и первой подсистемой. На появившейся панели операций щелкните Создать шину (Create Bus).

Simulink добавляет блок Bus Creator перед первой подсистемой и заменяет блоки Inport в первой подсистеме блоками In Bus Element.

Перетащите рамку выбора вокруг сигнальных линий между второй подсистемой и блоками Scope. На появившейся панели операций щелкните Создать шину (Create Bus).

Simulink заменяет блоки Outport во второй подсистеме блоками Out Bus Element и добавляет блок Bus Selector после второй подсистемы.

Полученная модель использует виртуальные шины в интерфейсах подсистемы.

См. также

| | |

Связанные темы