Simulink とターゲット ハードウェアの間のエクスターナル モードの接続性の設定
エクスターナル モード シミュレーションについて、target Package
を使用して Simulink® とターゲット ハードウェアの間の接続性を指定できます。
次の図は、エクスターナル モード シミュレーションのコンポーネントの概要を示したものです。
target パッケージは、コンポーネントの実装用のクラスを提供します。次の表に主なクラスを示します。
コンポーネント | クラス | 目的 |
---|---|---|
ターゲット ハードウェア |
| MATLAB® にターゲット ハードウェアの記述を提供します。 |
展開ツール |
| 次の目的でクラスを使用できます。
[カスタム ハードウェア上で実行] アプリの [監視と調整]、[展開]、[接続]、および [開始] の機能を提供するには、 |
| ||
| ||
接続性 |
| Simulink とターゲット ハードウェアの間のデータ転送用の通信プロトコルを提供します。 |
| ターゲット ハードウェアに通信チャネルと rtiostream API 実装の詳細を提供します。 | |
| ターゲット ハードウェアへの開発用コンピューターの接続に関する詳細を提供します。 |
XCP エクスターナル モード シミュレーションの接続性のカスタマイズ
ERT (ert.tlc
) および GRT (grt.tlc
) システム ターゲット ファイルを使用して生成されるコードについて、XCP 通信プロトコルを使用したエクスターナル モード シミュレーションを実行できます。
開発用コンピューター上。
他のターゲット ハードウェア上 (サポート パッケージを使用)。
カスタム ターゲット ハードウェアのシステム ターゲット ファイルが ERT または GRT システム ターゲット ファイルから派生している場合、target Package
のクラスを使用して接続性をカスタマイズします。たとえば target.ExternalMode
や target.CommunicationInterface
です。
この例では、XCP ベースのエクスターナル モード シミュレーションの接続性をカスタマイズする方法を示します。Simulink とターゲット ハードウェアの間の接続性を設定するには、次を行います。
TCP/IP またはシリアルのエクスターナル モード シミュレーションの接続性のカスタマイズ
TCP/IP またはシリアルのエクスターナル モード シミュレーションについて、次のワークフローを通じて接続性をカスタマイズできます。
トランスポート プロトコルと通信プロトコルを実装する。
target Package
パッケージを使用してターゲット アプリケーションの実行ツールを指定する。
Simulink とターゲット ハードウェアの間の接続性の設定にはXCP エクスターナル モード シミュレーションの接続性のカスタマイズで説明したワークフローを使用しますが、次の点が異なります。
手順 1 の後に、クライアントおよびサーバーの通信プロトコルの選択およびTCP/IP またはシリアルのエクスターナル モード通信のためのトランスポート層の作成の情報を使用して、TCP/IP またはシリアル プロトコル用のクライアント側とサーバー側のエクスターナル モード通信を実装します。
手順 5、手順 6、および手順 7 は実行しません。
手順 8 ではボード オブジェクトのみを追加できます。
手順 10 で、Simulink とターゲット ハードウェアの間の接続を指定するには、[コンフィギュレーション パラメーター] ダイアログ ボックスで、次を行います。
[トランスポート層] リストから
[TCPIP]
または[シリアル]
を選択します。[MEX ファイルの引数] フィールドに「
'localhost' 1 0
」と入力します。
実行ツール テンプレート
この節では、target.ExecutionTool
サービス インターフェイスの疑似コードの例を示します。このツールは、ターゲット ハードウェアでアプリケーションを開始して追跡します。
classdef MyExecutionTool < target.ExecutionTool methods function errFlag = startApplication(this) % Call "customDownloadTool" to download the application. [status, result] = ... system(sprintf('customDownloadTool %s', this.Application)); if status == 0 errFlag = false; else disp(result); errFlag = true; end end function errFlag = stopApplication(~) % Add code here to stop the application, if possible. errFlag = false; end function [status, errFlag] = getApplicationStatus(~) % Add code here to return the application status, if known. status = target.ApplicationStatus.Unknown; errFlag = false; end end end
参考
関連するトピック
- エクスターナル モード シミュレーションによるパラメーター調整、信号監視、コード実行プロファイリング
- XCP 通信を使用したエクスターナル モード シミュレーション
- クライアントおよびサーバーの通信プロトコルの選択
- TCP/IP またはシリアルのエクスターナル モード通信のためのトランスポート層の作成
- Set Up PIL Connectivity by Using Target Framework
- Define Custom Emulator for Target Connectivity