メインコンテンツ

MATLAB PIL 実行のためのホストとターゲット間の通信

このセクションでは、PIL 実行中に開発用コンピューターとターゲット ハードウェア間で通信するために rtiostream API を使用する方法について説明します。

通信 rtiostream API

rtiostream API では、ターゲット接続 API の通信がサポートされます。rtiostream API を使用して、異なるプロセス間でのデータ交換を可能にする通信チャネルを実装します。

PIL 検証には、ホストとターゲット間の通信チャネルが必要です。この通信チャネルは、ホストとターゲットで実行されるドライバー コードで構成されます。rtiostream API は、このドライバー コードで実装する必要があるターゲット側およびホスト側の関数のシグネチャを定義します。

この API は、データを送信する物理レイヤーから独立しています。可能な物理レイヤーには、RS232、イーサネット、コントローラー エリア ネットワーク (CAN) があります。

完全な rtiostream の実装には、ホスト側とターゲット側の両方のドライバーが必要です。コード生成ソフトウェアには、既定の TCP/IP 実装用のホスト側のドライバーに加えて、シリアル通信用のバージョンも含まれています。以下を使用できます。

  • TCP/IP rtiostream 通信チャネル。ターゲット固有の TCP/IP デバイス ドライバーを用意するか、サードパーティから入手する必要があります。

  • シリアル通信チャネル。ターゲット固有のシリアル デバイス ドライバーを用意するか、サードパーティから入手する必要があります。

その他の通信チャネルやプラットフォームの場合、コード生成ソフトウェアでは既定の実装は提供されません。ホスト側とターゲット側の両方のドライバーを用意する必要があります。

rtiostream API は次の関数で構成されています。

以下に内容と参照先を示します。

ホストとターゲットの同期

rtiostream API を使用して通信チャネルを実装した場合、ホストとターゲットを同期する必要があります。この同期により、ターゲット アプリケーションが完全に初期化される前に MATLAB がデータを送受信しないようになります。

TCP/IP rtiostream 実装でホストとターゲットを同期するには、rtw.connectivity.RtIOStreamHostCommunicatorsetInitCommsTimeout メソッドを使用します。このアプローチは、ターゲット サーバーが実行されるまで MATLAB が自動的に待機するため、接続指向の TCP/IP rtiostream 実装に適しています。

シリアルなどの他の rtiostream 実装では、ターゲットが完全に初期化されるのを待つことなく、rtiostream 接続の MATLAB 側が開きます。この場合、ターゲット アプリケーションが完全に初期化されるまで、Launcher 実装を待機させる必要があります。ホストとターゲットを同期するには、次のいずれかのアプローチを使用します。

  • Launcher 実装の最後に一時停止を追加して、ターゲットの初期化が完了するまで Launcher を待機させる。

  • Launcher 実装で、ターゲットの初期化が完了するまで待機するサードパーティのダウンローダーまたはデバッガー API を使用する。

  • Launcher / rtiostream 実装に、ターゲットの初期化の完了を確認するハンドシェイク メカニズムを実装する。

rtiostream ドライバーのテスト

テスト スイートを使用して、カスタム rtiostream インターフェイス実装の動作をデバッグおよび検証します。

テスト スイートは以下に役立ちます。

  • 組み込みの rtiostream サポートがないカスタム ハードウェアの統合に必要な時間を短縮する。

  • カスタム rtiostream ドライバーのテストに必要な時間を短縮する。

  • カスタム rtiostream ドライバーのパフォーマンスを解析する。

テスト スイートは 2 つの部分で構成されています。1 つの部分は、ターゲット ハードウェア上で実行されるアプリケーションです。もう 1 つの部分は MATLAB で実行されます。詳細については、rtiostreamtest を参照してください。

ホストとターゲット間の通信のトラブルシューティング

PIL 実行中に通信 I/O 情報を表示するには、MATLAB Coder™ アプリの [すべての設定] タブで、[SIL/PIL の詳細][オン] に設定します。または、coder.EmbeddedCodeConfig オブジェクトで SILPILVerbosity プロパティを true に設定します。

既定では、[SIL/PIL の詳細][オフ] に設定されています。

[SIL/PIL の詳細][オン] に設定した SIL 実行では、開発用コンピューター上で別プロセスとして実行されるターゲット アプリケーションと MATLAB の間で発生する通信の I/O 情報がアプリに表示されます。

参考

| | | | | |

トピック