信号名と Subsystem のポート名が一致して​いるか確認する方法は​ありますか?

28 views (last 30 days)
MathWorks Support Team
MathWorks Support Team on 11 Dec 2017
信号名と Subsystem ブロックのポート名が一致しているか確認する方法があれば教えてください。
例えば、下図の Subsystem2 は、入力信号名と Subsystem のポート名が一致していないため、一致していないことを検出する方法があれば教えてください。

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 11 Dec 2017
入力信号の名前は、ブロックプロパティの 'InputSignalNames' プロパティから取得できます。
Subsystem や ModelReference ブロックのポート名は、find_system 関数を使ってそのブロックの中にある Inport ブロックを検索し、検索できたブロックの 'Name' プロパティから取得できます。
 
%%check Subsystem port
subsys_name = 'sig_prop/Subsystem2';
% 信号名を取得
sig_name = get_param(subsys_name,'InputSignalNames')
% ブロックの入力ポートの名前を取得
inport_blk = find_system(subsys_name,'BlockType','Inport');
inport_order = sig_name;
for k = 1:length(inport_blk)
kk = eval(get_param(inport_blk{k},'Port'));
inport_order{1,kk} = get_param(inport_blk{k},'Name');
end
サブシステム 'sig_prop/Subsystem2' と Model Reference ブロック 'sig_prop/Subsystem4' について、信号名とブロックの入力ポート名を取得するサンプルファイルがダウンロード可能です。

More Answers (0)

Categories

Find more on プログラムによるモデル編集 in Help Center and File Exchange

Tags

No tags entered yet.

Products


Release

R2011b

Community Treasure Hunt

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

Start Hunting!