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

33 visualizaciones (últimos 30 días)
shota
shota el 27 de Feb. de 2019
Respondida: Etsuo Maeda el 28 de Mzo. de 2019
Simulinkモデル 接続先ブロックについて質問です。
あるブロックの"LineHandles"から"DstHandle"まで取得し、出力先を確認できますが、
出力先ブロックの上から何番目に接続されているかを確認したいです。
”PortConnectivity”から"Dstport"を使用し、何番目に接続されていることは確認できました。(1番目に接続:0で出力)
しかし、信号線が枝分かれした際、それぞれが違うブロックに接続され、[1,2]の順で取得したい時に[2,1]と出力されます。
”PortConnectivity”を使用せずに接続先ブロックの上から何番目に接続されているかわかるプロパティまたは
方法はありますでしょうか。
少し分かりづらい質問で申し訳ないですがご回答をお願いいたします。
  1 comentario
Shoumei
Shoumei el 4 de Mzo. de 2019
サンプルモデルと、そのモデルのどの情報を取得したいかを教えてもらえると助かります。

Iniciar sesión para comentar.

Respuestas (1)

Etsuo Maeda
Etsuo Maeda el 28 de Mzo. de 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

Categorías

Más información sobre プログラムによるモデル編集 en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!