Simulink Mask Port Visibility

20 ビュー (過去 30 日間)
Fabian David Chico Moreno
Fabian David Chico Moreno 2020 年 11 月 20 日
回答済み: Alexander 2023 年 12 月 22 日
Hello!
I have a masked simulink block which has 3 models with different level of fidelity.
I would like to add a check box that when selected turns on/off the visibility of certain ports that are/are not required in the block depending of the user selection.
I see that in some blocks such as the battery one in the figure. This functionality is already added. The port Ta is activated or deactived as a function of the check box.
Does anyone know who to do this?
Thanks in advance.

回答 (4 件)

Nikhil Sonavane
Nikhil Sonavane 2020 年 11 月 27 日
You may refer to this link for more details.

Arthur Reis
Arthur Reis 2022 年 3 月 23 日
Perhaps using an enabled subsystem?

Katherine May
Katherine May 2022 年 4 月 20 日
If you're running a custom S-function using a MEXed C-file, you can add the checkbox value to the S-function parameters to send it through to your C file, then selectively enable only the number of ports that you need. Also make sure that accompanying TLC files & port labels will set/grab the correct values from the correct ports.
Like this:
static void mdlInitializeSizes(SimStruct *S) {
boolean usePort = mxGetScalar(ssGetSFcnParam(S, INDEX_USE_PORT)) == 1;
[...]
if(usePort){
ssSetNumInputPorts(S, 1);
ssSetNumOutputPorts(S, 1);
} else {
ssSetNumInputPorts(S, 0);
ssSetNumOutputPorts(S, 0);
}
}
I'm still investigating a solution for when the controlling block is a subsystem containing S-function blocks.

Alexander
Alexander 2023 年 12 月 22 日

カテゴリ

Help Center および File ExchangeSimulink Coder についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by