このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
XCP 通信を使用したエクスターナル モード シミュレーション
エクスターナル モード シミュレーションでは、パラメーターをリアルタイムで調整し、ターゲット アプリケーションの信号を監視できます。[カスタム ハードウェア上で実行] アプリを使用して、開発用コンピューターで、またはカスタム ハードウェアで、XCP 通信チャネルを使用するエクスターナル モード シミュレーションを設定して実行できます。
エクスターナル モード シミュレーションについて、以下を行います。
開発用コンピューターでターゲット アプリケーションをビルドします。
ターゲット アプリケーションをターゲット ハードウェアに展開します。
ターゲット ハードウェア上で実行するターゲット アプリケーションに Simulink® を接続します。
ターゲット ハードウェア上で生成コードの実行を開始します。
開発用コンピューターでの XCP エクスターナル モード シミュレーションの実行
XCP 通信プロトコルを使用するエクスターナル モード シミュレーションを構成して実行します。シミュレーション中に以下を行います。
Scope ブロック、Dashboard ブロック、およびシミュレーション データ インスペクターを使用して信号を監視する。
Dashboard ブロックを使用してパラメーターを調整する。
XCP の信号の監視とパラメーター調整の構成
この例で使用するフォルダーを作成します。
mkdir ext_mode_xcp_example cd ext_mode_xcp_example
Simulink を開いて、以下のブロックを含む簡単なモデル
xcpExample
を作成します。Sine Wave
Gain
Scope
Half Gauge
Knob
Sine Wave ブロックをダブルクリックします。[サンプル時間] を 0.1 に設定してから、[OK] をクリックします。
Gain ブロックをダブルクリックします。[ゲイン] を 2 に設定して [OK] をクリックします。
Sine Wave ブロックを Gain ブロックに接続し、その接続に名前を付けます (たとえば
Test Signal
)。Gain ブロックを Scope ブロックに接続し、その接続に名前を付けます (たとえば
Output Signal
)。ログ記録用に
Test Signal
を構成します。Test Signal
を選択します。[信号] タブの [モニター] セクションで [信号のログ] を選択します。
信号のログ記録を有効にしない場合、
Test Signal
をシミュレーション データ インスペクターにストリーミングできません。Test Signal
の値を監視するように Half Gauge ブロックを構成します。Half Gauge ブロックをダブルクリックします。
Simulink エディターで、
Test Signal
を選択します。[ブロック パラメーター] ダイアログ ボックスで、以下を行います。
ブロックを
Test Signal
に接続します。[最大値] フィールドに値を入力します (たとえば
1
)。
[OK] をクリックします。
Sine Wave ブロックの [振幅] パラメーターを調整するように Knob ブロックを構成します。
Knob ブロックをダブルクリックします。
Simulink エディターで、Sine Wave ブロックを選択します。
[ブロック パラメーター] ダイアログ ボックスで、以下を行います。
ブロックを Sine Wave ブロックの [振幅] パラメーターに接続します。
[最小値] フィールドと [最大値] フィールドに値を入力します (たとえば、それぞれ 0.1 と 1)。
[OK] をクリックします。
モデルを
xcpExample
として保存します。
ハードウェアの指定とモデルの準備
Simulink ツールストリップの [アプリ] タブから、[ハードウェアで実行するように設定] セクションで、[カスタム ハードウェア上で実行] をクリックします。[カスタム ハードウェア上で実行] ポップアップ ダイアログ ボックスで [終了] をクリックします。
[ハードウェア] セクションの [Board] フィールドで、既定の
[No Board]
を使用します。[準備] ギャラリーの [モデル コンフィギュレーション] で、[ハードウェア設定] をクリックします。[コンフィギュレーション パラメーター] ダイアログ ボックスが開き、システム ターゲット ファイルによって決定された [ハードウェア実行] 設定が表示されます。
[ソルバー] ペインの [タイプ] フィールドで、
[固定ステップ]
を指定します。次に、[ソルバーの詳細] の [固定ステップ サイズ (基本サンプル時間)] フィールドに 0.1 を指定します。[コード生成] 、 [最適化] ペインで、[既定のパラメーター動作] を
[調整可能]
に設定します。[コード生成] 、 [インターフェイス] ペインで、[エクスターナル モード] チェック ボックスをオンにします。次に、[トランスポート層] を
[XCP on TCP/IP]
に設定します。[XCP on TCP/IP]
を選択すると自動的に、[MEX ファイル名] にext_xcp
が指定され、[静的メモリの自動割り当て] チェック ボックスがオンになり、[最大持続時間] が有効になります。この例では、[最大持続時間] の既定値を使用します。[システム ターゲット ファイル] が
[ert.tlc]
である場合、[コード生成] 、 [テンプレート] ペインで、[メイン プログラム例の生成] チェック ボックスをオンにして、[ターゲット オペレーティング システム] を[BareBoardExample]
に設定します。コード ジェネレーターは、エクスターナル モード抽象化レイヤーのドキュメント (
で入手可能) を使用して、オペレーティング システムを実行しないベア ボードに XCP エクスターナル モードのターゲット接続を提供できる方法を示す例を作成します。matlabroot
\toolbox\coder\xcp\src\target\ext_mode\include\ext_mode.h[OK] をクリックして変更を適用し、ダイアログ ボックスを閉じます。
[ハードウェア] タブの [接続] フィールドに、
IP: "localhost" – Port:17725
と表示されます。Simulink と開発用コンピューターの間の接続は、[トランスポート層] を[XCP on TCP/IP]
に設定する際にステップ c で指定されました。モデルを保存します。
ターゲット アプリケーションのビルトと実行
[ハードウェアで実行] セクションで、次を行います。
シミュレーション終了時間の既定以外の値を指定するには、[終了時間] フィールドで、
inf
などの値を指定します。[監視と調整] をクリックして、プロセスを開始します。ソフトウェアでは次が行われます。
実行可能ファイルを含むターゲット アプリケーション ファイルをビルドします。信号のデバッグ シンボルは、コード生成の構成に従って、実行可能ファイルの一部として作成されるか、別のファイル内に作成されます。コード生成のさまざまな構成の詳細については、Simulink モデルから生成されたコードのビルドに使用するアプローチを参照してください。
ターゲット アプリケーションを開発用コンピューターで別のプロセスとして展開します。
Simulink をターゲット アプリケーションに接続します。
生成されたモデル コードを開始します。
手順を個別に実行するには、[監視と調整] 、 [ステップ単位のコマンド] にある以下のボタンをその順にクリックします。
[監視用のビルド]
[展開]
[接続]
[開始]
信号の監視とパラメーターの調整
以下を使用して Test Signal
を監視できます。
Scope ブロック –– ブロックをダブルクリックします。
シミュレーション データ インスペクター –– [シミュレーション データ インスペクター] ボタンをクリックします。シミュレーション データ インスペクターが開いたら、[Test Signal] チェック ボックスをオンにします。これにより、ストリーム データが表示されます。
Half-Gauge ブロック。
正弦波の振幅を変更するには、Knob ブロックのポインターを必要な値まで回転させます。
次の表で、シミュレーション中に調整可能なブロック パラメーターを調整するさまざまな方法を示します。
方法 | 詳細 |
---|---|
モデル データ エディター | モデル データ エディターを通じてパラメーターを調整するには、次のようにします。
詳細については、モデル データ エディターを参照してください。 |
[ブロック パラメーター] ダイアログ ボックス | [ブロック パラメーター] ダイアログ ボックスを通じてパラメーターを調整するには、次のようにします。
|
MATLAB® ワークスペース | ブロック パラメーターが MATLAB ワークスペース変数の場合、次のようにします。
詳細については、変数の作成と編集を参照してください。 |
生成されたコードでのパラメーター調整の詳細については、TCP/IP またはシリアル通信を使用するエクスターナル モード シミュレーションおよび生成されたコードにおける調整可能なキャリブレーション パラメーターの作成 (Embedded Coder)を参照してください。
モデルに Stateflow® チャートが含まれる場合、ステート アクティビティを表示できます。詳細については、Stateflow チャートのアニメーション化 (Stateflow)を参照してください。
ターゲット アプリケーションの停止
[終了時間] に達する前に、実行を停止してターゲット アプリケーションを切断するには、[ハードウェア] タブの [ハードウェアで実行] セクションで [停止] をクリックします。
コード実行を停止せずにターゲット アプリケーションを Simulink から切断する場合は、[停止] 、 [ステップ単位のコマンド] 、 [切断] をクリックします。
XCP エクスターナル モード シミュレーションのトリガーされた信号の監視
XCP エクスターナル モード シミュレーションについて、Simulink での信号監視のためのターゲット アプリケーション データのアップロードを開始するトリガーを構成できます。
Simulink エディターで、それぞれの信号を右クリックして [選択した信号のログ] を選択することで、次の信号のログ記録を構成します。
test_signal
test_carrier
test_output
cmp_output
Simulink ツールストリップの [アプリ] タブから、[ハードウェアで実行するように設定] セクションで、[カスタム ハードウェア上で実行] をクリックします。[カスタム ハードウェア上で実行] ポップアップ ダイアログ ボックスで [終了] をクリックします。
[準備] ギャラリーの [モデル コンフィギュレーション] で、[ハードウェア設定] をクリックします。
[ソルバー] ペインの [タイプ] フィールドで、
[固定ステップ]
を指定します。[コード生成] 、 [インターフェイス] ペインで、[エクスターナル モード] チェック ボックスをオンにします。
[トランスポート層] を
[XCP on TCP/IP]
に設定します。これにより、[MEX ファイル名] がext_xcp
に指定されます。[OK] をクリックします。次に、モデルを保存します。
[外部信号とトリガー] ダイアログ ボックスを開くには、[準備] ギャラリーの [信号の監視とトレース] で、[コントロール パネル] をクリックします。
[コンフィギュレーション] セクションで [信号とトリガー] をクリックします。これにより [外部信号とトリガー] ダイアログ ボックスが開きます。
このダイアログ ボックスを通じて、監視する信号を選択して、ターゲット アプリケーションからデータをアップロードするためのトリガーを構成します。この例では、既定の設定を使用します。
[すべて選択] チェック ボックスがオン — ダイアログ ボックスで [選択] 列の各行に
X
が表示されます。シミュレーション中、ログ記録されたすべての信号を監視できます。[ソース] が [手動] に設定 –– エクスターナル モード コントロール パネルで [トリガーの準備] ボタンなどの、データのアップロードの手動での制御が提供されます。
[ターゲットへ接続時にアーム] チェック ボックスがオン — Simulink をターゲット アプリケーションに接続するときに、トリガーが準備されます。
[OK] をクリックして [外部信号とトリガー] ダイアログ ボックスを閉じてから、[OK] をクリックしてエクスターナル モード コントロール パネルを閉じます。
Simulink エディターで、[ハードウェア] タブに移動します。
[ハードウェアで実行] セクションの [終了時間] フィールドに値 (
inf
など) を指定します。モデルを保存します。
[監視と調整] をクリックして、プロセスを開始します。ソフトウェアでは次が行われます。
ターゲット アプリケーションをビルドします。
ターゲット アプリケーションを開発用コンピューターで別のプロセスとして展開します。
Simulink をターゲット アプリケーションに接続します。
生成されたモデル コードを開始します。
スコープの表示を表示するには、ScopeA
および ScopeB
をダブルクリックします。
シミュレーション データ インスペクターで信号を監視するには、[結果の確認] セクションで [データ インスペクター] をクリックします。
[エクスターナル モード コントロール パネル] から、信号のログ記録と監視を中止したり再開したりできます。[接続とトリガー] セクションで [トリガーをキャンセル] または [トリガーの準備] をそれぞれクリックします。
ターゲット アプリケーションの実行を停止して Simulink をターゲット環境から切り離すには、[リアルタイム コードを停止] をクリックします。
信号の監視とトリガー オプションの詳細については、XCP エクスターナル モード コントロール パネルおよびXCP 外部信号とトリガー ダイアログ ボックスを参照してください。
コマンド ラインからの XCP エクスターナル モード シミュレーションの実行
コマンドを使用して、XCP エクスターナル モード シミュレーションを実行できます。モデル パラメーターの値を取得および設定するには、get_param
コマンドと set_param
コマンドを使用します。
これらのコマンドを実行するには、Simulink モデルを開き、ターゲット アプリケーションを実行していなければなりません。
モデルのシミュレーション モードをエクスターナル モードに設定します。
set_param(gcs,'SimulationMode','external');
Simulink をターゲット アプリケーションに接続します。
set_param(gcs,'SimulationCommand','connect')
生成されたモデル コードを実行します。
set_param(gcs,'SimulationCommand','start');
パラメーターを調整するには、そのワークスペース変数の値をライン コマンドを使用して変更します。たとえば、ブロック パラメーターの値が
Simulink.Parameter
オブジェクトとして指定されている場合、新しい値をValue
プロパティに割り当てます。myParamObj.Value = 5.23;
ターゲット アプリケーションに新しい値をダウンロードするには、モデルを更新します。
set_param(gcs,'SimulationCommand','update');
ターゲット アプリケーションを停止し、ターゲット環境から Simulink を切断します。
set_param(gcs,'SimulationCommand','stop');
生成コードの実行を停止せずにターゲット アプリケーションから Simulink を切断するには、以下のコマンドを使用します。
set_param(gcs,'SimulationCommand','disconnect');
引数 'SimulationCommand'
を使用する set_param
コマンドは非同期です。スクリプトからコマンドを連続して実行すると、各コマンドは、前のコマンドの完了を待たずに開始されます。各コマンドが完了したかどうかを確認するには、スクリプトで、引数 'SimulationStatus'
を指定して get_param
コマンドを使用します。たとえば、手順 1 ~ 3 で、スクリプトに以下のコマンドを指定します。
set_param(gcs,'SimulationMode','external'); set_param(gcs,'SimulationCommand','connect'); isExternalSimulationActive = false; while ~isExternalSimulationActive simStatus = get_param(gcs, 'SimulationStatus'); isExternalSimulationActive = strcmp(simStatus, 'external'); end set_param(gcs,'SimulationCommand','start');
詳細については、プログラムによるシミュレーションの実行を参照してください。
診断ビューアーに、get_param
コマンドと set_param
コマンドで生成されたエラー メッセージが表示されます。
次の表は、get_param
コマンドと set_param
コマンドで使用できるパラメーターを示したものです。
XCP エクスターナル モード コマンド ライン パラメーター
パラメーターと値 | ダイアログ ボックスの等価物 | 説明 |
---|---|---|
ExtModeArmWhenConnect off , on | 外部信号とトリガー:[ターゲットへ接続時にアーム] チェック ボックス | Simulink Coder™ ソフトウェアがターゲットに接続するとすぐにトリガーを装備します。 |
ExtModeBatchMode off , on | エクスターナル モード コントロール パネル:[バッチ ダウンロード] チェック ボックス | バッチ モードでのパラメーターのダウンロードの有効/無効を切り替えます。 |
ExtModeConnected off , on | エクスターナル モード コントロール パネル:[接続/切断] ボタン | ターゲット アプリケーションとの接続状況を示します。 |
ExtModeEnableFloating off , on | エクスターナル モード コントロール パネル:[データ アップロードを有効にする] チェック ボックス | フローティング スコープとの接続が確立されたときのトリガー装備および解除の有効/無効を切り替えます。 |
ExtModeLogAll off , on | 外部信号とトリガー:[すべて選択] チェック ボックス | 入手できる信号をターゲットからホストにアップロードします。 |
ExtModeSendContiguousSamples off , on | 外部信号とトリガー:[複数の連続するサンプルを同一パケットで送信] チェック ボックス | 信号を Simulink にストリーミングするための XCP DAQ Packed Mode を指定します。ターゲット アプリケーションはパケット内の複数のタイム ステップからサンプルを送信します。ExtModeTrigDuration では、パケットで送信されるサンプルの数を決定します。 |
ExtModeTrigDelay integer (0 ) | 外部信号とトリガー:[遅延] テキスト フィールド | トリガーが発生してからデータ収集が開始されるまでの時間の長さ (基本レートステップ数) を指定します。 |
ExtModeTrigDirection character vector - rising , falling , either | 外部信号とトリガー:[方向] メニュー | 信号がしきい値を横切るときに移動する向きを指定します。 |
ExtModeTrigDuration integer (1000 ) | 外部信号とトリガー:[持続時間] テキスト フィールド | エクスターナル モードがトリガー イベント後のデータのログを作成する基本レート ステップ数を指定します。
n = (基本レート)/(サンプル レート)
|
ExtModeTrigHoldOff integer (0 ) | 外部信号とトリガー:[ホールドオフ] テキスト フィールド | トリガー イベントが終了してからトリガーが再装備されるまでの基本レート ステップ数を指定します。 |
ExtModeTrigLevel integer (0 ) | 外部信号とトリガー:[レベル] テキスト フィールド | トリガー信号がトリガーを始動するために横切らなければならないしきい値を指定します。 |
ExtModeTrigMode character vector - normal , oneshot | 外部信号とトリガー:[モード] メニュー | トリガー イベントが発生するたびにトリガーが自動的に再装備されるかどうか、またはトリガー装備のたびに収集されるのが 1 バッファー分のデータのみかどうかを指定します。 |
ExtModeTrigSignalBlockPath character vector | 外部信号とトリガー:[信号選択] ビューで、信号を選択し、[トリガー信号] ボタンをクリック。 | トリガー信号を提供する出力端子を含むブロックへのパスを指定します。 |
ExtModeTrigSignalOutputPortIndex integer | 外部信号とトリガー:[信号選択] ビューで、信号を選択し、[トリガー信号] ボタンをクリック。 | ExtModeTrigSignalBlockPath で指定されるブロックのトリガー信号出力端子のインデックスを指定します。 |
ExtModeTrigType character vector - manual , signal | 外部信号とトリガー:[ソース] メニュー | データのログ作成の開始が、トリガーが装備されたときなのか、それとも指定されたトリガー信号がトリガー条件を満たしたときなのかを指定します。 |
XCP エクスターナル モード シミュレーションにおける通信バッファーのためのメモリ割り当て
XCP ベースのエクスターナル モード シミュレーションでは、例えば大量のデータを Simulink にストリーミングするモデルや低メモリのターゲット デバイスで実行されるモデルを扱う際に、メモリ要件を手動で特定する必要はありません。
[トランスポート層] を [XCP on TCP/IP]
または [XCP on Serial]
に設定すると、次のコンフィギュレーション パラメーターが有効になります。
静的メモリの自動割り当て (
ExtModeAutomaticAllocSize
)最大持続時間 (
ExtModeMaxTrigDuration
) — 既定値は 10 基本レート ステップ。
[最大持続時間] の値を含むモデル情報を使用して、以下に使用するメモリがソフトウェアによって割り当てられます。
XCP スタックで使用される内部データ構造体
XCP パケットのストレージ
[静的メモリの自動割り当て] チェック ボックスをオフにした場合は次のようになります。
内部データ構造体に割り当てられるメモリは、既定値になります。
XCP パケットに割り当てられるメモリは、[静的なメモリ バッファー サイズ] (
ExtModeStaticAllocSize
) フィールドを使用して指定できます。既定値は 1,000,000 バイトです。
十分なメモリが割り当てられていないと、エクスターナル モード シミュレーションで内部データ構造体または信号のストリーミング用のメモリを予約しようとしたときにメモリ不足エラーが発生します。この場合は、[静的メモリの自動割り当て] チェック ボックスを再度オンにすると、必要なメモリの量をソフトウェアで計算できます。
XCP エクスターナル モード接続を設定するために target
パッケージを使用する場合は、次の XCP パラメーターの値を指定することで、ターゲット ハードウェア メモリの事前割り当てをより詳細に制御できます。
MaxCTOSize
MaxDTOSize
XCP エクスターナル モード接続オプションがある target.XCPExternalModeConnectivity
オブジェクトを作成した後、関連する target.XCPTransport
オブジェクトのプロパティを使用して XCP パラメーター値を指定します。次に例を示します。
extModeConnectivity = target.create('XCPExternalModeConnectivity', ... 'Name', 'External Mode Connectivity', ... 'XCP', xcpConfiguration); extModeConnectivity.XCP.XCPTransport.MaxCTOSize = 16 extModeConnectivity.XCP.XCPTransport.MaxDTOSize = 256
MaxCTOSize
と MaxDTOSize
の値を小さくすると、より少ないターゲット ハードウェア メモリの事前割り当てが行われます。詳細については、XCP エクスターナル モード シミュレーションの接続性のカスタマイズを参照してください。
ターゲット アプリケーションの引数
オプションの引数を使用してターゲット アプリケーションを実行できます。オプションの引数をカスタム起動ツールの実装を介してターゲット アプリケーションに渡します。
引数 | 説明 |
---|---|
-w | Simulink からメッセージを受信するまで、ターゲット アプリケーションが待機状態になり、その状態のままでいることを指定します。
|
-tf | モデル パラメーター 次で
|
ホストベースのエクスターナル モード シミュレーションの場合、追加の rtiostream (Embedded Coder)
引数を指定できます。
引数 | 説明 |
---|---|
| 詳細レベルを指定します。
|
|
Windows® では、 Linux® では、 |
|
|
XCP エクスターナル モードの制限事項
次の表で、XCP 通信を使用するエクスターナル モード シミュレーションに適用される制限事項について説明します。
機能 | 詳細 | ||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
モデル構造を変更するパラメーターの更新 | 以下は変更できません。
モデル構造を変更するパラメーターの更新を行う場合は、ターゲット アプリケーションをリビルドしなければなりません。 状態の数が変更されない場合、Transfer Fcn、Discrete Transfer Fcn、Discrete Filter ブロックの分子多項式パラメーターと分母多項式パラメーターを変更できます。 ユーザー指定または計算されたパラメーター (零点 - 極を状態空間に変換することで得られた行列 A、B、C、D) の State-Space、Zero-Pole、および Discrete Zero-Pole ブロックのゼロ要素は変更できません。 State-Space ブロックでは、可制御正準実現で行列を指定する場合、A、B、C、D 行列に対する、この実現と行列の次元を保持するすべての変更が許可されます。 Simulink ブロック線図がターゲット アプリケーションに一致しない場合、Simulink はチェックサムが一致しないことを通知するエラーを生成します。チェックサムは最上位モデルを考慮しますが、参照モデルは考慮しません。ターゲット アプリケーションをリビルドするには、更新されたブロック線図を使用します。 | ||||||||||||||||||||||||||||||||||||||||||
信号値の表示 | シミュレーション中の信号値のグラフィカル表示はサポートされていません。たとえば、[Data Display in Simulation] のメニュー項目 [Show Value Labels When Hovering]、[Toggle Value Labels When Clicked] および [Show Value Label of Selected Port] は使用できません。詳細については、モデル ブロック線図での信号値の表示を参照してください。 | ||||||||||||||||||||||||||||||||||||||||||
データのアーカイブ | [エクスターナル モード コントロール パネル] で使用できる [データのアーカイブ] 機能はサポートされていません。シミュレーション データ インスペクターを使用してデータを収集してエクスポートできます。 | ||||||||||||||||||||||||||||||||||||||||||
信号のログ設定のオーバーライド | [信号ログ セレクター] を使用して信号のログ記録の設定をオーバーライドする場合、[間引き] および [データ点を制限] の設定をオーバーライドする制御はサポートされていません。 | ||||||||||||||||||||||||||||||||||||||||||
サブシステム信号のログ | エクスターナル モード シミュレーションの場合、ターゲット ハードウェア上のイベントに応答して、信号のログが発生します。現在、サポートされているログ イベントは、新しいサンプル時間刻みのみです。一部のサブシステムは、制御信号で有効化または無効化されます。これらのサブシステムでは、サブシステムへの制御信号が有効でない場合も信号値のログが記録されます。 たとえば、Enabled Subsystem ブロックの信号がログ記録用に設定されていれば、サブシステムへの制御信号が 0 より大きくない場合も信号値のログが記録されます。この場合、ログに記録される値は、制御信号が最後に 0 より大きかったときの信号の値です。 この制限が適用されるサブシステムの詳細については、Simulink Subsystem のセマンティクスを参照してください。 | ||||||||||||||||||||||||||||||||||||||||||
コンパイラのデバッグ シンボルの形式 | ツールチェーンは以下のいずれかの形式でデバッグ情報を生成しなければなりません。
| ||||||||||||||||||||||||||||||||||||||||||
グローバル変数 | 信号、パラメーター、および状態はグローバル変数として指定しなければなりません。変数が格納されるターゲット メモリの位置は、0 ~ 4294967295 の範囲になければなりません。 | ||||||||||||||||||||||||||||||||||||||||||
パラメーター構造体 | 構造体であるパラメーターは調整できません。 | ||||||||||||||||||||||||||||||||||||||||||
純粋な整数コード | 純粋な整数コードはサポートされます。コード生成では、 実行コマンドで 実行コマンドで
| ||||||||||||||||||||||||||||||||||||||||||
可変サイズの信号 | 可変サイズの信号のアップロードはサポートされていません。 | ||||||||||||||||||||||||||||||||||||||||||
アドレスの粒度 | ワードのアドレスを使用するターゲット ハードウェアはサポートされていません。 | ||||||||||||||||||||||||||||||||||||||||||
移植可能なワード サイズ | 製品ターゲット ハードウェアでワードのアドレスが指定可能である場合、移植可能なワード サイズを使用したホストベースのターゲット アプリケーションの生成はサポートされていません。製品ターゲット ハードウェアは 8 ビット、16 ビットおよび 32 ビットのネイティブ データ型をサポートしなければなりません。 | ||||||||||||||||||||||||||||||||||||||||||
Scope ブロック | モデルが Scope ブロックを使用していて、エクスターナル モード シミュレーション中にログ記録されるデータの量が非常に大きくなると、Simulink の速度が低下する場合があります。Scope ブロックの代わりに、シミュレーション データ インスペクターまたは Dashboard ライブラリの同等のブロックを使用できます。詳細については、シミュレーション データの可視化方法の決定を参照してください。 | ||||||||||||||||||||||||||||||||||||||||||
Scope ブロックおよび Floating Scope ブロックとスコープ ビューアー | 一部の信号データ型はサポートされていません。シミュレーションで警告が発生します。 | ||||||||||||||||||||||||||||||||||||||||||
Floating Scope ブロックとスコープ ビューアー | エクスターナル モード シミュレーションで Floating Scope ブロックとスコープ ビューアーを使用して参照モデルの信号を監視することはできません。参照モデルの信号を監視するには、信号のログ記録を有効にして、シミュレーション データ インスペクターを使用します。 | ||||||||||||||||||||||||||||||||||||||||||
参照モデル内の Scope ブロックと Display ブロック | モデルの階層構造では、最上位モデルがエクスターナル モードで実行されている場合、信号を表示するブロックは参照モデルで表示を提供しません。参照モデルで信号を監視するには、信号のログ記録を有効にして、シミュレーション データ インスペクターを使用します。 | ||||||||||||||||||||||||||||||||||||||||||
Simulink メッセージ ブロックに接続された Scope ブロックと Display ブロック | エクスターナル モード シミュレーションでは、Simulink メッセージ ブロックに接続された Scope ブロックおよび Display ブロックから内容が表示されません。 メッセージを可視化するには、シミュレーション データ インスペクターまたは Dashboard ブロックを使用します。 | ||||||||||||||||||||||||||||||||||||||||||
非ゼロのシミュレーション開始時刻 | 非ゼロのシミュレーション開始時間はサポートされていません。[ソルバー] 、 [開始時間] の既定値である | ||||||||||||||||||||||||||||||||||||||||||
中間ステップ値 | 一部の Simulink ブロックは、シミュレーション タイム ステップで複数の値を生成できます。以下に例を示します。
エクスターナル モード シミュレーションのタイム ステップごとに、Simulink は、それらのブロックの最終的な値のみをターゲット アプリケーションからアップロードします。Simulink は、ステップ中に生成された中間値をアップロードしません。 | ||||||||||||||||||||||||||||||||||||||||||
サービス コード インターフェイス | ターゲット環境での生成コードの実行時に XCP 通信を使用してパラメーターを調整したり信号を監視したりすることは、ERT ベースのシステム ターゲット ファイルとサービス コード インターフェイスで構成されたコンポーネント モデルから生成されたコードではサポートされません。 | ||||||||||||||||||||||||||||||||||||||||||
ファイルスコープのデータ | ファイルスコープのデータはサポートされていません。たとえば、組み込みのカスタム ストレージ クラス
| ||||||||||||||||||||||||||||||||||||||||||
行優先のコード生成 | 行優先の形式で生成されたコードはサポートされていません。 | ||||||||||||||||||||||||||||||||||||||||||
同時実行 | Windows および Linux コンピューター上では、同時実行がサポートされます。 Mac コンピューター上では、ネイティブ スレッド例を使用した同時実行はサポートされていません。[エクスターナル モード] および [ターゲット上でタスクの同時実行を許可] チェック ボックスが選択されている場合、エクスターナル モード シミュレーション用の同時実行をサポートするターゲット ハードウェア サポート パッケージを使用していなければ、ターゲット アプリケーションを作成できません。 Windows コンピューター上では、実行時に、ターゲット アプリケーションの基本サンプル時間がシステムのタイマー割り込み間隔 (通常 15.625 ms) の最も近い倍数に量子化されます。サンプリング サブレートは、基本サンプル レートの想定される倍数です。シミュレーション データ インスペクター (SDI) にログが記録されるタイムスタンプは、時計時間ではなく、シミュレーション時間に相当します。例として次の表では、基本サンプル時間が 10 ms、サブレート サンプル時間が 20 ms である Simulink モデルのステップ時間を示します。
| ||||||||||||||||||||||||||||||||||||||||||
シミュレーション データのエクスポート | ログ記録された信号と最上位モデルの出力データを MATLAB ワークスペースにエクスポートできます。
MATLAB ワークスペースではなく、MAT ファイルにデータをエクスポートする場合は、[データセットのデータをファイルにログ] チェック ボックスもオンにします。 シミュレーションの状態データのエクスポートはサポートされていません。 シミュレーション出力を単一オブジェクトとして保存することはサポートされていません。シミュレーションで警告が発生します。 |
参考
関連するトピック
- エクスターナル モード シミュレーションによるパラメーター調整、信号監視、コード実行プロファイリング
- ログ記録用の信号のマーク
- Simulink とターゲット ハードウェアの間のエクスターナル モードの接続性の設定
- XCP サーバー ソフトウェアのカスタマイズ
- シミュレーション データ インスペクター