В модели сигналы шины используются для объединения нескольких сигналов в одну сигнальную линию. Можно создавать виртуальные или невиртуальные сигналы шины. Представление в сгенерированном коде зависит от:
Для виртуальной шины сгенерированный код выглядит так, как если бы шина не существовала.
Сгенерированный код для невиртуальной шины представляет данные шины со структурой. При необходимости отслеживания соответствия между моделью и кодом может оказаться полезным использование структуры в созданном коде. Сведения о создании структур с использованием невоиртуальных сигналов шины см. в разделе Организация данных в структуры в сгенерированном коде.
Общие сведения о шинах см. в разделах и Типы составных сигналов.
Чтобы создать эффективный код из моделей, содержащих сигналы шины, устраните ненужные копии данных, следуя передовым практикам при построении модели.
При использовании шин в модели, для которой предполагается создать код:
Установка параметров конфигурации диагностики шины может упростить разработку модели.
Способы реализации шины и выбор невиртуальной или виртуальной шины могут влиять на скорость, размер и четкость генерируемого кода.
Некоторые полезные методы реализации шины не сразу очевидны.
При работе с автобусами эти рекомендации помогают улучшить результаты. В руководящих принципах описываются методы:
Упрощение компоновки модели.
Повышение эффективности генерируемого кода.
Определите структуры данных для интерфейсов функций (подсистем).
Определите структуры данных, соответствующие существующим структурам данных во внешнем коде C.
Есть некоторые компромиссы между скоростью, размером и ясностью. Например, код для невиртуальных шин легче считывать, поскольку шины отображаются в коде как структуры, но код для виртуальных шин быстрее, поскольку виртуальные шины не требуют копирования данных сигнала. Примените некоторые рекомендации в зависимости от того, где вы находитесь в процессе разработки приложений.
Simulink ® обеспечивает диагностику, которую можно использовать для оптимизации использования шины. На панели «Параметры конфигурации» > «Диагностика» > «Возможности подключения» задайте следующие значения.

Виртуальные шины - это графические удобства, которые не влияют на сгенерированный код. В результате механизм генерации кода способен полностью оптимизировать сигналы в шине. С помощью блоков преобразования сигналов можно выполнять преобразование между виртуальными и невиртуальными шинами. В некоторых случаях при необходимости Simulink автоматически преобразует виртуальную шину в невиртуальную. Например, диаграмма Stateflow преобразует входную виртуальную шину в невиртуальную.
Для объединения сигналов вызова функции необходимо использовать виртуальную шину.
Необходимо использовать невиртуальные шины для:
Неавтономные классы хранения
Создание определенной структуры из шины
Блоки ввода или вывода корневого уровня, если шина имеет смешанные типы данных
Автобусы могут содержать подчинённые автобусы. Для создания эффективного кода установите классы хранения подчиненных шин в Auto. Установка для класса хранения значения Auto устраняет:
Выделение резервной памяти для сигнала подчиненной шины и для сигнала родительской шины
Дополнительные операции копирования (копирование данных на подчиненную шину, а затем копирование с подчиненной шины на конечную шину)
Эта модель содержит невиртуальные сигналы шины. Сигналы подчиненной шины Sub_Bus_1 и Sub_Bus_2 использовать класс хранения Auto.

Сгенерированный кодовый алгоритм эффективно присваивает данные входного сигнала сигналам шины.
void ex_nonvirtual_buses_step(void)
{
Nonvirtual_In_One.SimpleBus_1.A1 = A1;
Nonvirtual_In_One.SimpleBus_1.A2 = A2;
Nonvirtual_In_One.SimpleBus_2.A3 = A3;
Nonvirtual_In_One.SimpleBus_2.A4 = A4;
Nonvirtual_In_One.A5 = A5;
}