Simulinkモデル 接続先ポート番号の取得
34 ビュー (過去 30 日間)
古いコメントを表示
Simulinkモデル 接続先ブロックについて質問です。
あるブロックの"LineHandles"から"DstHandle"まで取得し、出力先を確認できますが、
出力先ブロックの上から何番目に接続されているかを確認したいです。
”PortConnectivity”から"Dstport"を使用し、何番目に接続されていることは確認できました。(1番目に接続:0で出力)
しかし、信号線が枝分かれした際、それぞれが違うブロックに接続され、[1,2]の順で取得したい時に[2,1]と出力されます。
”PortConnectivity”を使用せずに接続先ブロックの上から何番目に接続されているかわかるプロパティまたは
方法はありますでしょうか。
少し分かりづらい質問で申し訳ないですがご回答をお願いいたします。
回答 (1 件)
Etsuo Maeda
2019 年 3 月 28 日
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 件のコメント
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!