Main Content

Simulink とターゲット ハードウェアの間の接続性の設定

エクスターナル モード シミュレーションについて、target Package を使用して Simulink® とターゲット ハードウェアの間の接続性を指定できます。

次の図は、エクスターナル モード シミュレーションのコンポーネントの概要を示したものです。

target パッケージは、コンポーネントの実装用のクラスを提供します。次の表に主なクラスを示します。

コンポーネントクラス目的
ターゲット ハードウェアtarget.BoardMATLAB® にターゲット ハードウェアの記述を提供します。
展開ツール target.SystemCommandExecutionTool

次の目的でクラスを使用できます。

  • 開発用コンピューターからターゲット アプリケーションを実行するためのシステム コマンドを取得する。

  • ターゲット アプリケーションの実行サービスの実装を記述する。

  • ターゲット アプリケーションの実行を管理するツール用の MATLAB サービス インターフェイスを提供する。

[カスタム ハードウェア上で実行] アプリの [監視と調整][デプロイ][接続]、および [開始] の機能を提供するには、target.ExecutionTool を使用する必要があります。

target.ExecutionService
target.ExecutionTool
接続性 target.ExternalModeSimulink とターゲット ハードウェアの間のデータ転送用の通信プロトコルを提供します。
target.CommunicationInterfaceターゲット ハードウェアに通信チャネルと rtiostream API (Embedded Coder) 実装の詳細を提供します。

XCP エクスターナル モード シミュレーションの接続性のカスタマイズ

ERT (ert.tlc) および GRT (grt.tlc) システム ターゲット ファイルを使用して生成されるコードについて、XCP 通信プロトコルを使用したエクスターナル モード シミュレーションを実行できます。

  • 開発用コンピューター上。

  • 他のターゲット ハードウェア上 (サポート パッケージを使用)。

カスタム ターゲット ハードウェアのシステム ターゲット ファイルが ERT または GRT システム ターゲット ファイルから派生している場合、target Package のクラスを使用して接続性をカスタマイズします。たとえば target.ExternalModetarget.CommunicationInterface です。

この例では、XCP ベースのエクスターナル モード シミュレーションの接続性をカスタマイズする方法を示します。Simulink とターゲット ハードウェアの間の接続性を設定するには、次を行います。

  1.  ボード記述を作成

  2.  展開ツールを選択

  3.  target.ExecutionTool を使用

  4.  target.SystemCommandExecutionTool を使用

  5.  ターゲット ハードウェアの通信インターフェイスを作成

  6.  通信プロトコル スタックを指定

  7.  ボード オブジェクトをすべての MATLAB セッションで保持

  8.  モデルのボードを選択

  9.  Simulink とターゲット ハードウェアの間の接続を指定

TCP/IP またはシリアルのエクスターナル モード シミュレーションの接続性のカスタマイズ

TCP/IP またはシリアルのエクスターナル モード シミュレーションについて、次のワークフローを通じて接続性をカスタマイズできます。

  • トランスポート プロトコルと通信プロトコルを実装する。

  • target Package パッケージを使用してターゲット アプリケーションの実行ツールを指定する。

Simulink とターゲット ハードウェアの間の接続性の設定にはXCP エクスターナル モード シミュレーションの接続性のカスタマイズで説明したワークフローを使用しますが、次の点が異なります。

実行ツール テンプレート

この節では、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

参考

関連するトピック

外部の Web サイト