Why does this bus creator output a multiplexed signal?
19 views (last 30 days)
Show older comments
Kristian Krajewski
on 7 Mar 2019
Commented: Kristian Krajewski
on 13 Mar 2019
I have a bus creator in my model that is behaving weirdly, or at least I have never seen this before and I have no idea how to fix this (I've tried several things to no avail, first of all replacing the bus creator with a fresh one from the library browser to make sure nobody messed with the properties). I am getting the following error message(s) when trying to run the model:
Simulink cannot unify the dimensions of the multiplexed signal at output port 1 of '[...]/HMI Spec/Bus Creator' to match the input dimension of input port 1 of '[...]/HMI Spec/Out1'. Specifically, Simulink cannot unify {1,1,1,1,1,1,1} to match 1. Consequently, Simulink cannot propagate dimension information from output port 1 of '[...]/HMI Spec/Bus Creator' to input port 1 of '[...]/HMI Spec/Out1'.
Component:Simulink | Category:Modelerror
Error in port widths or dimensions. Invalid dimension has been specified for output port 1 of '[...]/HMI Spec/Bus Creator'.
Component:Simulink | Category:Modelerror
Error in port widths or dimensions. Input port 1 of '[...]/HMI Spec/Out1' is a one dimensional vector with 1 elements.
In the model it looks like this:

Inside the submodels there's a structure like this (they all look the same):

As you can see, these are all 1-dimensional signals. They initially come from a dSpace RTICAN-Block, but this has never been a problem before, as they're all just doubles. I have no idea why this single bus creator is acting up like this. Any ideas or input is greatly appreciated!
0 Comments
Accepted Answer
Yingye Gan
on 7 Mar 2019
Hi Kristian,
I am assuming that you are using R2018a release and that the output signal of the dSpace RTICAN-Block is a virtual bus signal. In that case, this type of error occurs by design.
There are a few options you can try that may solve the problem,
Option (1): Create the Bus Object create the CAN_MESSAGE_BUS object in the base workspace by executing the canMessageBusType function, and then convert the virtual bus to a nonvirtual bus before entering the CAN Unppack using a Signal Conversion block.
Option (2): Create a Bus Object for the Bus Creator combining the CAN Msg buses and make this one also nonvirtual.
Option (3): Use Vector Concatenate/Selector instead of Bus Creator/Selector.
Option (4): Try out the model in R2018b or later releases.
Hope you find the reply helpful.
More Answers (0)
See Also
Categories
Find more on General Applications in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!