How to Programmatically replace blocks in Simulink

I have a model with hundreds of blocks from an old library that I want to replace.
I've made a dummy model. "Version 2" inside the model is the goal. I've done 3 by hand just for clarity.
I want to Replace all Step blocks with Constant blocks. I also want to take the Label of the Step block, and it to the Constant Value of the new Constant block.
There's a couple functions that could work that I've added to the script.
Let me know if you have ideas!

回答 (2 件)

Shadaab Siddiqie
Shadaab Siddiqie 2021 年 7 月 29 日

0 投票

Form my understanding you want to replace few blocks in your model with another blocks. You can do this using replace_block like so:
%Load the model sldemo_clutch.
openExample('sldemo_clutch');
%In the 'Unlocked' subsystem, replace blocks whose Gain value is bv with Integrator blocks.
replace_block('sldemo_clutch/Unlocked','Gain','bv','Integrator');
If you want to replace block in model with block from another model you can refer pil_block_replace.

1 件のコメント

Ramae Smith
Ramae Smith 2021 年 8 月 2 日
Thanks, this adresses the repalcement aspect.

サインインしてコメントする。

Ramae Smith
Ramae Smith 2021 年 8 月 2 日

0 投票

My colleague figured it out. The flaw in this code is that it works one block at a time. Ideally I wanted to replace and relabel all of the step blocks in my model at once.
① Get the name of the Step block
paramValue = get_param ('untitled / Step','Name');
② Convert the Step block to the Constant block
RepNames = replace_block ('untitled','Step','Constant');
(3) Set the value value of the converted Constant block to the name of the Step block.
set_param ('untitled / Step','Value', paramValue);

カテゴリ

ヘルプ センター および File ExchangeProgrammatic Model Editing についてさらに検索

製品

リリース

R2018a

質問済み:

2021 年 7 月 26 日

コメント済み:

2021 年 8 月 2 日

Community Treasure Hunt

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

Start Hunting!

Translated by