在一个模型中,可以使用总线信号打包多个信号汇集成一个单一的信号线。您可以创建虚拟的或者非虚拟总线信号。在生成的代码的表示取决于:
对于虚拟总线,生成的代码看起来好像总线并不存在。
对于非虚拟总线生成的代码表示与结构的总线数据。当你要跟踪的模型和代码之间的对应关系,在生成的代码中使用的结构,或许会有帮助。要使用非虚拟总线信号产生结构,参见数据组织成结构生成的代码。
有关公交车的一般信息,请参阅和复合信号的类型(金宝appSIMULINK)。
为了从包含总线信号,通过你构建模型以下最佳做法消除不必要的数据复制模型高效的代码。
当您在为您打算生成代码模型中使用公交车:
设置总线诊断的配置参数可以使模型开发更容易。
总线实现技术,和非虚拟或虚拟总线的选择,可以影响速度,大小,并且将所生成的代码的清晰度。
一些有用的总线实现技术不会立即明显。
当你与公交车上班,这些准则帮助你提高的结果。指南介绍了技术:
简化模型的布局。
增加的生成的代码效率。
定义函数(子系统)接口的数据结构。
定义匹配外部的C代码的现有数据结构的数据结构。
有速度,大小和清晰度之间进行权衡。例如,对于非虚总线的代码更容易阅读,因为公交车出现在代码结构,但对于虚拟总线的代码是更快,因为虚拟总线不需要复制信号数据。采用基于你在应用程序的开发过程,其中的一些准则。
金宝app®提供了可用于优化总线的使用诊断。设置在下面的值配置参数>诊断>连接窗格。
虚拟总线是不影响生成代码的图形化的便利。其结果是,编码生成引擎能够在总线完全优化的信号。尽可能使用虚拟总线,而不是非虚总线。您可以通过使用虚拟和非虚拟总线之间的转换信号转换块。在一些情况下,自动的Simul金宝appink需要时虚拟总线转换为一个非虚拟总线。例如,状态流图表的输入虚拟总线转换到非虚拟总线。
捆绑函数调用信号,你必须使用一个虚拟总线。
您必须使用非虚巴士:
非汽车存储类
从总线产生的特定结构
根级别INPORT或出口框当总线具有混合数据类型
公共汽车可以包含下级总线。要生成高效的代码,下属巴士的存储类型设置为汽车
。设置存储类汽车
消除:
冗余存储器的分配的从属总线信号和用于父总线信号
另外的拷贝操作(将数据复制到从属总线,然后从从属总线复制到最终的总线)
此模型包含非虚总线信号。下属总线信号Sub_Bus_1
和Sub_Bus_2
使用存储类汽车
。
所生成的代码算法有效地分配所述输入信号数据到总线信号。
空隙ex_nonvirtual_buses_step(无效){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;}