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

27 ビュー (過去 30 日間)
MathWorks Support Team
MathWorks Support Team 2017 年 12 月 11 日
回答済み: MathWorks Support Team 2017 年 12 月 11 日
信号名と Subsystem ブロックのポート名が一致しているか確認する方法があれば教えてください。
例えば、下図の Subsystem2 は、入力信号名と Subsystem のポート名が一致していないため、一致していないことを検出する方法があれば教えてください。

採用された回答

MathWorks Support Team
MathWorks Support Team 2017 年 12 月 11 日
入力信号の名前は、ブロックプロパティの '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' について、信号名とブロックの入力ポート名を取得するサンプルファイルがダウンロード可能です。

その他の回答 (0 件)

カテゴリ

Help Center および File Exchangeプログラムによるモデル編集 についてさらに検索

タグ

タグが未入力です。

製品


リリース

R2011b

Community Treasure Hunt

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

Start Hunting!