このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
removeSignal
ブロックの出力信号をモデル コード マッピングから削除する
説明
removeSignal(
は、ブロックの出力端子ハンドルによって指定された信号を指定されたモデル コード マッピングから削除します。 coderMapObj
,portHandle
)
この関数は、ルートレベルの Inport ブロックから発生する信号には適用されません。
例
プログラム インターフェイスを使用して、Simulink モデルのコード マッピング構成で信号を追加および削除します。
コマンドが [コード マッピング] エディターにどのように反映されるかを対話的に確認するには、[信号/状態] タブが選択された状態でエディターが開いていることを確認してください。[コード マッピング] エディターを開く方法については、コード マッピング エディター – C を開くを参照してください。
モデル CoderMapAPI
を開きます。
simulinkModel = "CoderMapAPI";
open_system(simulinkModel);
関数coder.mapping.api.get
を使用して、モデルのコード マッピング オブジェクトを取得します。
codeMapObj = coder.mapping.api.get(simulinkModel);
4 つの Gain
ブロックの出力端子のハンドルを取得し、変数に格納します。
port_handle_1 = get_param(simulinkModel+"/gain_1","PortHandles").Outport; port_handle_2 = get_param(simulinkModel+"/gain_2","PortHandles").Outport; port_handle_3 = get_param(simulinkModel+"/gain_3","PortHandles").Outport; port_handle_4 = get_param(simulinkModel+"/gain_4","PortHandles").Outport
port_handle_4 = 303.0018
関数 addSignal
を使用して、モデルのコード マッピングに信号を追加します。sig_1
と sig_3
のストレージ クラスを ImportedExtern
に、sig_2
と sig_4
のストレージ クラスを ImportedExternPointer
に設定します。モデルを更新します。
addSignal(codeMapObj,[port_handle_1,port_handle_3],StorageClass="ImportedExtern") addSignal(codeMapObj,[port_handle_2,port_handle_4],StorageClass="ImportedExternPointer") set_param(simulinkModel,"SimulationCommand","update")
slbuild
コマンドを使用して、モデルからコードを生成します。
evalc("slbuild(simulinkModel)");
ImportedExtern
および ImportedExternPointer
ストレージ クラスの信号は、モデルの生成されたプライベート ヘッダー ファイルの別個のセクションで宣言されます。変数 priv_h_file
にプライベート ヘッダー ファイルの名前を格納します。
priv_h_file = fullfile(simulinkModel+"_grt_rtw",simulinkModel+"_private.h")
priv_h_file = "CoderMapAPI_grt_rtw/CoderMapAPI_private.h"
信号の宣言は、ヘッダー ファイルで次のコードとして表示されます。
/* Imported (extern) block signals */ extern real_T sig__1; /* '<Root>/gain_1' */ extern real_T sig__3; /* '<Root>/gain_3' */ extern real_T in_port_1; /* '<Root>/in_port_1' */ extern real_T in_port_2; /* '<Root>/in_port_2' */ /* Imported (extern) pointer block signals */ extern real_T *sig__2; /* '<Root>/gain_2' */ extern real_T *sig__4; /* '<Root>/gain_4' */ extern real_T *in_port_3; /* '<Root>/in_port_3' */ extern real_T *in_port_4; /* '<Root>/in_port_4' */
信号は、指定されたストレージ クラスに従って定義されます。
ヘッダー ファイルを開くには、MATLAB コマンド ウィンドウに次のコマンドを入力します。
edit(priv_h_file)
関数removeSignal
を使用して、モデルのコード マッピングから最初の 2 つの信号線を削除します。モデルを更新します。
removeSignal(codeMapObj,[port_handle_1,port_handle_2]) set_param(simulinkModel,"SimulationCommand","update")
slbuild
コマンドを使用してモデルをリビルドします。
evalc("slbuild(simulinkModel)");
更新されたセクションは、ヘッダー ファイルで次のコードとして表示されます。
/* Imported (extern) block signals */ extern real_T sig__3; /* '<Root>/gain_3' */ extern real_T in_port_1; /* '<Root>/in_port_1' */ extern real_T in_port_2; /* '<Root>/in_port_2' */ /* Imported (extern) pointer block signals */ extern real_T *sig__4; /* '<Root>/gain_4' */ extern real_T *in_port_3; /* '<Root>/in_port_3' */ extern real_T *in_port_4; /* '<Root>/in_port_4' */
削除された信号がヘッダー ファイルで表示されなくなっています。
入力引数
関数 coder.mapping.api.get
の呼び出しによって返されるコード マッピング オブジェクト (モデル コード マッピング)。
コード マッピングから削除する信号。信号のソース ブロックの出力端子ハンドルとして指定します。複数の信号を同時に削除するには、出力端子ハンドル配列を指定します。
例: removeSignal(codeMapObj,[outport_1_Handle,outport_2_Handle])
バージョン履歴
R2020b で導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)