Discussion:
Virtual/Non-virtual Bus Types
(too old to reply)
Katie
2005-02-01 10:05:14 UTC
Permalink
I'm having trouble with the following problem using Simulink 5.1...

I need to transport signals on a bus of multiple data types but when
but my model has crashes when I do.

When I build a subsystem for building the bus in a separate file I
get the following error (with no crash):

"An error occurred while propagating data type 'mixed' from block
'untitled/Bus Creator', output port 1"

This doesn't make sense to me as when I've searched for help on the
Mathworks website I found the following:

"The signals connected to the input data ports of a nonvirtual block
cannot differ in type."

AND

"Buses may be either virtual or nonvirtual. During simulation, blocks
connected to a virtual bus read their inputs from memory allocated to
the component signals, which may reside in noncontiguous areas of
memory. By contrast, blocks connected to a nonvirtual bus read their
inputs from a copy of the component signals maintained by Simulink in
a contiguous area of memory allocated to the bus [...]

The Bus Creator and Inport blocks output virtual buses by default. To
cause them to output a nonvirtual bus, select the Output as structure
option on their parameter dialog boxes. You can also use the Signal
Conversion block to convert nonvirtual to virtual buses, and vice
versa."

... since the default from a bus creator should be a VIRTUAL bus and
virtual buses CAN handle mixed data types, why am I having these
problems?

Any experience and/or help with this problem will be appreciated.
checker
2005-02-02 00:55:39 UTC
Permalink
Post by Katie
I'm having trouble with the following problem using Simulink 5.1...
I need to transport signals on a bus of multiple data types but when
but my model has crashes when I do.
When I build a subsystem for building the bus in a separate file I
"An error occurred while propagating data type 'mixed' from block
'untitled/Bus Creator', output port 1"
This doesn't make sense to me as when I've searched for help on the
"The signals connected to the input data ports of a nonvirtual
block
cannot differ in type."
AND
"Buses may be either virtual or nonvirtual. During simulation,
blocks
connected to a virtual bus read their inputs from memory allocated to
the component signals, which may reside in noncontiguous areas of
memory. By contrast, blocks connected to a nonvirtual bus read
their
inputs from a copy of the component signals maintained by Simulink in
a contiguous area of memory allocated to the bus [...]
The Bus Creator and Inport blocks output virtual buses by default. To
cause them to output a nonvirtual bus, select the Output as
structure
option on their parameter dialog boxes. You can also use the Signal
Conversion block to convert nonvirtual to virtual buses, and vice
versa."
... since the default from a bus creator should be a VIRTUAL bus and
virtual buses CAN handle mixed data types, why am I having these
problems?
Any experience and/or help with this problem will be appreciated.
Katie,

My guess is that you have an outport connected to your mixed type
bus. Outports don't seem to accept mixed types ... they can be
arrays of the same type but not structures (I'm using 5.0 and don't
see the option to output as a structure). Try disconnecting your
mixed bus from your outport and then updating your diagram (CTRL+D).

HTH,

-Chris

Loading...