When automatically generating S-functions with RTW, if a BusObject is not used by Bus Creators, the S-function does not handle Bus inside C code, but through block interface. To see that, right click and select Look Under Mask in the resulting Block.
This may pose a problem if the Bus is somehow big.
This is because the automatic S-function/Bus definition interface has so many outputs (1 for each signal in the Bus) that it goes beyond block position limit in Simulink.
To workaround this problem, we may use BusObject in the Bus Creators, allowing then RTW to handle Buses in the C code, without needing to create a huge Block interface outside. Thus a
Bus is treat as an unique output signal from S-functions.
Gustavo Baldo Carvalho (2021). S-functions x HugeBus with BusObj as Workaround for "Input Bounds are out of range" (https://www.mathworks.com/matlabcentral/fileexchange/25936-s-functions-x-hugebus-with-busobj-as-workaround-for-input-bounds-are-out-of-range), MATLAB Central File Exchange. Retrieved .
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!