MATLAB Answers

shota
0

Simulinkモデル 接続先ポート番号の取得

Asked by shota
on 27 Feb 2019
Latest activity Answered by Etsuo Maeda on 28 Mar 2019
Simulinkモデル 接続先ブロックについて質問です。
あるブロックの"LineHandles"から"DstHandle"まで取得し、出力先を確認できますが、
出力先ブロックの上から何番目に接続されているかを確認したいです。
”PortConnectivity”から"Dstport"を使用し、何番目に接続されていることは確認できました。(1番目に接続:0で出力)
しかし、信号線が枝分かれした際、それぞれが違うブロックに接続され、[1,2]の順で取得したい時に[2,1]と出力されます。
”PortConnectivity”を使用せずに接続先ブロックの上から何番目に接続されているかわかるプロパティまたは
方法はありますでしょうか。
少し分かりづらい質問で申し訳ないですがご回答をお願いいたします。

  1 Comment

Shoumei
on 4 Mar 2019
サンプルモデルと、そのモデルのどの情報を取得したいかを教えてもらえると助かります。

Sign in to comment.

1 Answer

Answer by Etsuo Maeda on 28 Mar 2019

Shoumeiさんのおっしゃる通り、何をどうされているのかよく分かりませんが、"Lineの接続先ブロックの何番目に接続されているのか"を判定するなら接続先のブロックのプロパティを使えばいいのではないでしょうか。
vdp
hx2 = get_param('vdp/x2', 'Handle');
PcMux = get_param('vdp/Mux', 'PortConnectivity');
PcMux(1).SrcBlock == hx2
PcMux(2).SrcBlock == hx2
組み込みサンプルのvdpであれば、x2からLineは複数分岐して、MuxやOutPortにつながっています。
Mux側でPortConnectivityを取得し、SrcBlockのハンドルとx2のハンドルの一致を順に比較すれば、x2からのLineがMuxの2番目のInputにつながっていることが分かります。
実モデルや実コードを見せたくない場合は、vdpやf14などの公知のモデルと、vdpやf14に合わせたコードで質問された方がよりよい回答が得られます。
チュートリアル: MATLAB Answersで早く的確な回答を得るためのポイント
HTH

  0 Comments

Sign in to comment.