このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
TCP/IP を使用するエクスターナル モード シミュレーション
開発用コンピューターと選択されたハードウェア ボードの間に TCP/IP またはシリアル (RS-232) 通信チャネルを使用するエクスターナル モード シミュレーションを設定して実行します。
単純なモデルを作成および構成します。
ターゲットの実行可能ファイルをビルド、展開、および起動します。
パラメーターを調整します。
モデルの作成と構成
例のこの部分では、単純なモデル ex_extModeExample
を作成します。さらに ext_mode_example
という名前のフォルダーを作成し、モデルと生成される実行可能プログラムを保存します。
フォルダーとモデルを作成するには、次のようにします。
MATLAB® コマンド ラインに以下を入力します。
mkdir ext_mode_example
ext_mode_example
を作業フォルダーにします。cd ext_mode_example
Simulink® で、信号入力用の Sine Wave ブロック、並列した 2 つの Gain ブロック、および 2 つの Scope ブロックをもつモデルを作成します。必ず Gain ブロックおよび Scope ブロックにラベルを付けてください。
2 つの MATLAB ワークスペース変数、
A
とB
を定義して値を代入します。A = 2; B = 3;
Gain ブロック A を開き、対応する [ゲイン] パラメーターを変数
A
に設定します。Gain ブロック B を開き、対応する [ゲイン] パラメーターを変数
B
に設定します。ターゲット アプリケーションがビルドされ、エクスターナル モードで Simulink に接続されると、新しいゲイン値を実行中のターゲット アプリケーションにダウンロードできます。これを行うには、新しい値をワークスペース変数
A
とB
に代入するか、あるいはブロック パラメーター ダイアログ ボックスで値を編集します。詳細については、パラメーターの調整を参照してください。モデルの動作を確認します。Scope ブロックを開き、モデルを実行します。
A = 2
かつB = 3
のとき、出力が表示されます。モデルを
ex_extModeExample
として保存します。
ターゲットの実行可能ファイルのビルド
エクスターナル モードのターゲット アプリケーションで必要な、モデルとコード生成のパラメーターを設定します。次に、コードを生成し、ターゲット アプリケーションをビルドします。
Simulink ツールストリップの [アプリ] タブから、[ハードウェア ボードで実行] をクリックします。
[ハードウェア ボードで実行] ポップアップで、[ハードウェア ボード] をサポートされている ARM® Cortex®-A QEMU エミュレータに設定します。
[準備] セクションで、[ハードウェア設定] をクリックします。[コンフィギュレーション パラメーター] ダイアログ ボックスが開き、システム ターゲット ファイルによって決定された [ハードウェア実行] 設定が表示されます。
[ソルバー] ペインで以下を行います。
[タイプ] フィールドで
[固定ステップ]
を選択します。[ソルバー] フィールドで、
[離散 (連続時間なし)]
を選択します。[ソルバーの詳細] をクリックします。[固定ステップ サイズ] フィールドでは、
0.1
を指定します[適用] をクリックします。
[ハードウェア実行] 、 [ハードウェア ボード設定] 、 [External mode] ペインで、[Communication interface] を
TCP/IP
に設定します。[OK] をクリックします。次に、モデルを保存します。
ターゲット アプリケーションの実行
ex_extModeExample
ターゲット実行可能プログラムを実行し、Simulink を実行中のターゲット アプリケーションに対する対話的なフロント エンドとして使用します。実行可能ファイルは作業フォルダーの中にあります。ターゲット アプリケーションを実行し、Simulink とターゲット間の通信を確立します。
ターゲット アプリケーションを実行するには、次の手順に従います。
[ハードウェア] タブの [ハードウェアで実行] セクションで [監視および調整] をクリックします。次に、以下を行います。
[終了時間] フィールドで
inf
を指定します。これにより、ターゲット アプリケーションが Simulink から終了メッセージを受け取るまでモデルが実行したままになります。[ステップ単位のコマンド] で、[展開] をクリックします。
ターゲット アプリケーションは実行を開始し、待機状態になります。
モデルの Scope ブロックを開きます。モデルの実行を開始するまで、スコープ上に信号は表示されません。
[ハードウェア] タブの [ハードウェアで実行] セクションで [監視および調整] をクリックします。次に、[ステップ単位のコマンド] で、[接続] をクリックします。この操作によって Simulink とターゲット アプリケーション間のハンドシェイクが開始されます。Simulink とターゲットが接続されていると、[接続] ボタンは [切断] に変わります。
[ハードウェアで実行] セクションで、
をクリックします。これにより、生成されたモデル コードの実行が開始されます。モデルの 2 つのスコープに Gain ブロック A と B の出力が表示されます。
Simulink と実行中のターゲット アプリケーション間の通信が確立しました。Simulink のブロック パラメーターを調整して、パラメーターの変更による影響を確認できるようになりました。
パラメーターの調整
MATLAB ワークスペースで変数 A
または B
に新しい値を割り当てることで、いずれかの Gain ブロックのゲイン ファクターを変更できます。シミュレーション中にワークスペースでブロック パラメーターの値を変更する場合、以下の変更でブロック線図を明示的に更新する必要があります。ブロック線図を更新する場合、ターゲット アプリケーションに新しい値がダウンロードされます。
[ハードウェア] タブの [準備] セクションで、[バッチ モード] をクリックします。
コマンド プロンプトで、両方の変数に新しい値を割り当てます。たとえば、次のようになります。
A = 0.5; B = 3.5;
[ハードウェア] タブで、[準備] セクションの [すべてのパラメーターを更新] をクリックします。Simulink はブロック パラメーターを更新し、新しいゲイン値をターゲット アプリケーションにダウンロードします。
一定の条件下では、ブロック パラメーター値を指定するために使用する式を調整することもできます。シミュレーション中に式を変更するには、[ブロック パラメーター] ダイアログ ボックスを使用します。
Sine Wave ブロックのダイアログ ボックスで、[振幅] を
0.5
に設定します。[適用] または [OK] をクリックします。Simulink は新しいブロック パラメーター値をターゲット アプリケーションにダウンロードします。
ホスト/ターゲット通信からの Simulink の切断とターゲット アプリケーションの実行の終了を同時に行うには、[ハードウェア] タブの [ハードウェアで実行] セクションで [停止] をクリックします。
シミュレーション中に Sine Wave ブロックのサンプル時間を変更することはできません。ブロックのサンプル時間は、モデルの構造定義の一部であり、生成コードの一部でもあります。このため、ブロックのサンプル時間を変更するには、エクスターナル モードのシミュレーションを停止し、ブロックのサンプル時間をリセットして、実行可能プログラムをリビルドしなければなりません。
エクスターナル モードのシミュレーション時におけるブロック パラメーターの調整可能性は、生成されたコードによるブロック パラメーターの表現方法によって異なります。
たとえば、Gain A ブロック ダイアログ ボックスでは、シミュレーション時に [ゲイン] パラメーターで式 A
を変更することはできません。その代わりに、ベース ワークスペースで変数 A
の値を変更しなければなりません。生成されたコードは [ゲイン] パラメーター用のメモリにストレージを割り当てないため、式は変更できません。代わりに、コードはフィールド A
を構造体に作成します。
/* Parameters (auto storage) */ struct P_ex_extModeExample_T_ { real_T A; /* Variable: A */ real_T B; /* Variable: B */ real_T SineWave_Amp; /* Expression: 1 */ real_T SineWave_Bias; /* Expression: 0 */ real_T SineWave_Freq; /* Expression: 1 */ real_T SineWave_Phase; /* Expression: 0 */ };
生成されたコード アルゴリズムは、ブロック Gain A を表すコードでそのフィールドを使用します。この場合、グローバル構造体変数 ex_extModeExample_P
は型 P_ex_extModeExample_T_
を使用します。
ex_extModeExample_B.GainA = ex_extModeExample_P.A * rtb_SineWave;
ベース ワークスペースで A
の値を変更すると、シミュレーション時にターゲット アプリケーションのフィールド A
に新しい値がダウンロードされます。
生成されたコードは、ブロック内で各パラメーターを表すグローバル構造体 ex_extModeExample_P
にフィールドを作成するため、シミュレーション中に Sine Wave ブロック パラメーターの式を変更できます。ブロック ダイアログ ボックスで式を変更する場合、シミュレーションで最初に新しい式が評価されます。シミュレーションは、結果として得られる数値をターゲット アプリケーションの対応する構造体フィールドにダウンロードします。
生成されたコードにおける調整可能なキャリブレーション パラメーターの作成を参照してください。
ターゲットの通信バッファーのためのメモリ割り当ての制御
GRT ターゲットと ERT ターゲットで [コード生成] 、 [インターフェイス] 、 [静的なメモリ割り当て] チェック ボックスをオンにすると、コード ジェネレーターは静的なメモリ割り当てのみを使用するエクスターナル モード用のコード ("malloc のない" コード) を生成します。[静的なメモリ割り当て] を選択すると、[静的なメモリ バッファー サイズ] パラメーターが有効になります。このパラメーターを使用して、エクスターナル モードの静的なメモリ バッファーのサイズを指定します。既定値は 1,000,000 バイトです。プログラムに対して小さすぎる値が入力されると、エクスターナル モード シミュレーションは指定値を超えるメモリを割り当てようと試みてもそれができないので、out-of-memory エラーを発行します。このような場合、[静的なメモリ バッファー サイズ] フィールドの値を増やしてからコードを再生成します。
割り当てるメモリ量を判断するには、ターゲット上で詳細モードを有効にします (make
コマンド ラインに OPTS="-DVERBOSE"
を含めます)。エクスターナル モードでは、実行時に割り当てを試みたメモリ量および割り当てを試みるたびに使用できるメモリ量が表示されます。割り当てに失敗した場合、[静的なメモリ バッファー サイズ] フィールドに必要な値はこのコンソール ログを使用して決定することができます。
エクスターナル モード コントロール パネルを使用したエクスターナル モード シミュレーションの制御
エクスターナル モード コントロール パネルでは、次のようなエクスターナル モードの操作を一元的に制御できます。
[エクスターナル モード コントロール パネル] ダイアログ ボックスを開くには、[ハードウェア] タブの [準備] セクションで、[コントロール パネル] をクリックします。
接続、開始、停止
[エクスターナル モード コントロール パネル] は、Simulink ツールストリップの [ハードウェア] タブと同じ接続/切断、開始/停止機能を実行します。エクスターナル モード シミュレーションのグラフィカル コントロールの概要を参照してください。
[接続] ボタンをクリックして、モデルを待機中または実行中のターゲット アプリケーションに接続します。接続中は、ボタンは [切断] ボタンに変わります。[切断] はモデルをターゲット環境から切断しますが、ターゲット環境で実行しているリアルタイム コードを停止しません。
[リアルタイム コードを開始] ボタンをクリックすると、ターゲットでリアルタイム コードの実行が開始されます。ターゲット環境でリアルタイム コードが実行している間、ボタンは [リアルタイム コードを停止] ボタンに変わります。[リアルタイム コードを停止] はターゲット アプリケーションの実行を停止し、モデルをターゲット環境から切断します。
ホストへのターゲット アプリケーション信号データのアップロード
エクスターナル モード コントロール パネルでは、ホストへのデータ アップロードのトリガーとキャンセルを行うことができます。アップロード データの宛先は、ブロックおよびサブシステムのエクスターナル モードとの互換性にリストされている Scope ブロック、Display ブロック、To Workspace ブロックまたはその他のブロックやサブシステムです。
[トリガーの準備] ボタンおよび [トリガーをキャンセル] ボタンにより、フローティング スコープを除く互換性のあるブロックまたはサブシステムへのデータのアップロードを手動で制御できます (フローティング スコープについては、エクスターナル モード コントロール パネルの [フローティング スコープ] セクションを使用します)。
互換性のあるブロックまたはサブシステムへのデータのアップロードをトリガーするには、[トリガーの準備] ボタンをクリックします。ボタンが [トリガーをキャンセル] に変わります。
データのアップロードをキャンセルするには、[トリガーをキャンセル] ボタンをクリックします。ボタンが [トリガーの準備] に戻ります。
データのアップロードは手動でトリガーすることも自動的にトリガーすることもできます。データ アップロードの信号とトリガーの設定については、ターゲット アプリケーションの信号データのホスト モニタリングの設定を参照してください。
Scope、Time Scope、To Workspace を含むエクスターナル モード互換ブロックの一部は、アップロードされたデータのログをディスクに記録できます。データのアーカイブの設定については、ターゲット アプリケーションの信号データのホスト アーカイブの設定を参照してください。
[エクスターナル モード コントロール パネル] ダイアログ ボックスの [フローティング スコープ] セクションは、データが Floating Scope ブロックにアップロードされるタイミングと期間の長さを制御します。フローティング スコープは、エクスターナル モードでは次のようになります。
[外部信号とトリガー] ダイアログ ボックスには表示されません。
データをエクスターナル モードのアーカイブに記録しません。
手動トリガーのみサポートします。
[フローティング スコープ] セクションは次のパラメーターを含みます。
[データ アップロードを有効にする] オプションは、フローティング スコープに対して [トリガーの準備] ボタンとして機能します。ターゲットが切断されている場合、このオプションはフローティング スコープを接続するときにトリガーを装備するかどうかを制御します。ターゲットが接続されている場合、このオプションはトリガーの準備とキャンセルを切り替えるボタンとして動作します。
フローティング スコープへのデータのアップロードをトリガーするには、[データ アップロードを有効にする] をオンにします。
フローティング スコープへのデータのアップロードを取り消すには、[データ アップロードを有効にする] をオフにします。
[持続時間] 編集フィールドは、エクスターナル モードがトリガー イベント後のフローティング スコープ データを記録するための基本レート ステップ数を指定します。既定では、
[auto]
に設定されます。この場合、[外部信号とトリガー] ダイアログ ボックスで設定された持続時間の値が使用されます。持続時間の既定値は 1,000 基本レート ステップです。
ターゲット アプリケーションへのパラメーターのダウンロード
[エクスターナル モード コントロール パネル] ダイアログ ボックスの [バッチ ダウンロード] オプションで、パラメーターの一括変更の有効/無効を切り替えることができます。
既定の設定では、バッチ ダウンロードは無効です。バッチ ダウンロードが無効の場合、[OK] または [適用] をクリックすると、ブロック パラメーター ダイアログ ボックスを編集してブロック パラメーターに直接加えられた変更がターゲットに送信されます。[ブロック線図の更新] を実行すると、MATLAB ワークスペース変数への変更が送信されます。
[バッチ ダウンロード] を選択すると、[ダウンロード] ボタンが有効になります。[ダウンロード] をクリックするまで、ブロック パラメーターに行われた変更はローカルに保存されます。[ダウンロード] をクリックすると、変更内容は一度の転送でまとめて送信されます。
パラメーター値の変更がバッチ ダウンロードを待つ間、[エクスターナル モード コントロール パネル] ダイアログ ボックスの [ダウンロード] ボタンの右側にメッセージ "Parameter changes pending...
" が表示されます。このメッセージは、Simulink エンジンが通知を受信するまで表示されます。通知の内容は、新しいパラメーターがターゲット システムのパラメーター ベクトルにインストールされた、というものです。
ターゲット アプリケーションの信号データのホスト モニタリングの設定
信号データのアップロードにおけるトリガーの役割
エクスターナル モードでは、ターゲット アプリケーションの信号データのホストへのアップロードは "トリガー" に依存します。トリガーとは、データのアップロードを開始するために満たされなければならない一連の条件です。トリガーは装備することもしないこともできます。
トリガーを装備すると、ソフトウェアはデータのアップロードを開始するトリガー条件をチェックします。
トリガーを装備しない場合、ソフトウェアはトリガー条件をチェックしないため、データのアップロードは開始されません。
トリガーは、ホストがターゲットへの接続時に自動的に装備することも、エクスターナル モード コントロール パネルの [トリガーの準備] ボタンをクリックして手動で装備することもできます。
トリガーが装備されており、トリガー条件が満たされた場合、トリガーが起動してデータのアップロードが開始されます。
定義された期間データを収集すると、トリガー イベントは完了してデータのアップロードは停止します。トリガーはその後再装備することも、[トリガーの準備] ボタンをクリックするまで装備しないでおくこともできます。
アップロードするターゲット アプリケーションの信号の選択や、アップロードをトリガーする方法の設定については、信号データのアップロードの設定を参照してください。
信号データのアップロードの設定
[エクスターナル モード コントロール パネル] の [信号とトリガー] ボタンをクリックすると、[外部信号とトリガー] ダイアログ ボックスが開きます。
[外部信号とトリガー] ダイアログ ボックスには、エクスターナル モードの信号アップロードをサポートするモデル内のブロックとサブシステムが一覧表示されます。エクスターナル モードと互換性のあるブロックのタイプについては、ブロックおよびサブシステムのエクスターナル モードとの互換性を参照してください。
[外部信号とトリガー] ダイアログ ボックスでは、ターゲット システムから収集され、エクスターナル モードで表示される信号を選択できます。また、特定の信号条件が満たされた場合にデータのアップロードをトリガーするトリガー信号を選択し、トリガー条件を定義することもできます。
既定のトリガー オプション
前の図では、[外部信号とトリガー] ダイアログ ボックスの既定の設定が示されています。[外部信号とトリガー] ダイアログ ボックスの既定の動作は、ターゲット アプリケーションの監視を単純化します。既定の設定を使用する場合、信号とトリガーをあらかじめ設定する必要はありません。ターゲット アプリケーションを開始して Simulink エンジンをそれに接続します。エクスターナル モード互換ブロックが選択され、トリガーが準備されます。ターゲット アプリケーションに接続されると、信号のアップロードがすぐに開始されます。
既定のトリガー オプション構成は次のとおりです。
すべて選択
: オンソース
: 手動モード
: ノーマル持続時間
: 1000遅延
: 0ターゲットへ接続時にアーム
: オン
アップロードする信号の選択
モデル内のエクスターナル モード互換ブロックが、[外部信号とトリガー] ダイアログ ボックスの [信号選択] リストに表示されます。このリストは表示する信号の選択に使用します。[選択] 列では、X
が各選択されたブロックに表示されています。
[すべて選択] チェック ボックスをオンにすると、信号がすべて選択されます。既定の設定では、[すべて選択] が選択されています。
[すべて選択] がオフの場合、[オン] と [オフ] のオプションを使用して信号を個別に選択または選択解除できます。信号を選択するには、リスト エントリをクリックして [オン] オプションを選択します。信号を選択解除するには、リスト エントリをクリックして [オフ] オプションを選択します。
[すべてクリア] ボタンをクリックすると、信号がすべてクリアされます。
トリガー オプションの設定
信号データのアップロードにおけるトリガーの役割で説明されているように、信号データのアップロードはトリガーに依存します。トリガーは、アップロードを開始するために満たされなければならない条件を定義します。また、データのアップロードを開始するには、トリガーが装備されていなければなりません。トリガーが装備されておりトリガー条件が満たされた場合、トリガーが起動してアップロードが始まります。定義された期間データを収集すると、トリガー イベントは完了してデータのアップロードは停止します。
信号データをターゲット システムから収集 (アップロード) するタイミングと方法を制御するには、次の [外部信号とトリガー] ダイアログ ボックスの [トリガー オプション] を設定します。
[ソース]:
[手動]
または[信号]
。ボタンと信号のどちらがデータのアップロードをトリガーするのかを制御します。[手動]
を選択すると、データのアップロードを開始するトリガーとしてエクスターナル モード コントロール パネルの [トリガーの準備] ボタンを使用するようエクスターナル モードに指示します。[トリガーの準備] をクリックすると、データのアップロードが開始されます。[信号]
を選択すると、データのアップロードを開始するトリガーとしてトリガー信号を使用するようエクスターナル モードに指示します。トリガー信号がトリガー条件を満たしたとき (つまり、信号が指定した方向でトリガー レベルを超えたとき)、"トリガー イベント" が生じます (トリガー条件は [トリガー信号] セクションで指定します)。トリガーが "装備される" と、エクスターナル モードはトリガー イベントの発生を監視します。トリガー イベントが発生すると、データのアップロードが開始されます。モード:
[ノーマル]
または[ワンショット]
。トリガー イベントが完了した後でトリガーを再装備するかどうかを制御します。[ノーマル]
モードでは、エクスターナル モードはトリガー イベントが発生するたびにトリガーを自動的に再装備します。トリガーが起動すると次のデータのアップロードが始まります。[ワンショット]
モードでは、ユーザーのトリガー装備のたびに、エクスターナル モードは 1 回分のバッファー データのみを収集します。[モード] 設定の詳細については、ターゲット アプリケーションの信号データのホスト アーカイブの設定を参照してください。
持続時間:エクスターナル モードでトリガー イベント後にデータをアップロードする基本レート ステップ数を指定します (既定値は 1000)。たとえば [持続時間] が 1000 に設定され、モデルの基本 (最速) レートが 1 秒だとします。
基本レート 1 秒 (1.0 Hz) でサンプリングされる信号については、エクスターナル モードではトリガー イベントの最中に 1,000 個の連続するサンプルが収集されます。
2 秒 (0.5 Hz) でサンプリングされる信号については、エクスターナル モードではトリガー イベントの最中に 500 個のサンプルが収集されます。
遅延:データ収集に適用される遅延を指定します。遅延は、トリガー イベントとデータ収集の開始の間に経過する時間を表します。遅延は、基本レート ステップ数で表現されます。正または負の値を取ることができます (既定は0)。負数遅延は "トリガー前" を意味します。遅延が負の場合、トリガー イベントよりも前の時間からデータが収集されてアップロードされます。
ターゲットへ接続時にアーム:オンまたはオフにされます。ボタンと信号のどちらによってデータのアップロードをトリガーするかにかかわらず ([ソース] で定義)、データのアップロードを開始するにはトリガーを装備しなければなりません。
このオプションを選択した場合、ターゲットに接続するとトリガーが準備されます。
トリガーの [ソース] が
[手動]
の場合、データのアップロードは直ちに開始されます。トリガーの [ソース] が
[信号]
の場合、トリガー信号の監視が直ちに開始されます。トリガー信号がトリガー条件 ([トリガー信号] セクションで定義) を満たしたときに、データのアップロードが開始されます。
[ターゲットへ接続時にアーム] をオフにした場合、エクスターナル モード コントロール パネルの [トリガーの準備] ボタンをクリックして、トリガーを手動で装備します。
エクスターナル モードでシミュレーションを行うときは、ターゲット上でモデル内のレートごとにバッファーが作成されます。バッファー内の各エントリには、1 タイム ステップのレート内ですべての信号が必要とするすべてのデータを保持するのに十分な大きさがあります (信号を識別する時間とデータとエクスターナル モードのインデックス)。リング バッファー内のエントリの数は、エクスターナル モードのトリガーの [持続時間] パラメーター (ExtModeTrigDuration
) によって決まります。信号のバッファリングのためにターゲット上で割り当てられるメモリは、[持続時間] とアップロードする信号数に比例します。[持続時間] は、エクスターナル モードでのトリガー イベント後のログ データの基本レートのステップ数も示します。
[持続時間] の値は、データの各バッファーで収集されるデータの連続点の数を指定します。[持続時間] の値は、一連のバッファーが連続するのを当てにするのではなく、収集する必要がある連続するサンプル点の数と等しくなるように入力しなければなりません。サンプル点の合計数より小さい値を入力した場合、データ バッファーから MATLAB ワークスペースに値を転送するのにかかる時間の間サンプル点を失う可能性があります。Simulink ソフトウェアは 1 つのバッファー内でのみ点の連続性を維持します。バッファーの間では、転送時間のために一部のサンプルが失われる場合があります。
[持続時間] の値は、Scope ブロックおよび To Workspace ブロックの [直近のデータ点数に制限] の値に影響を及ぼす可能性があります。ブロックから MATLAB ワークスペースに保存されるサンプル点の数は 2 つの値の小さい方になります。ブロックから保存されるサンプル点の数を設定するには、[直近のデータ点数に制限] をクリアします。次に [持続時間] を使用して保存するサンプル点の数を指定します。
トリガー信号の選択
1 件の信号を 1 件のトリガー信号として指定することができます。トリガー信号を選択するには、[トリガー オプション] セクションにある [ソース] メニューから、[信号]
を選択します。これにより、[トリガー信号] セクションのパラメーターが有効になります。次に、[信号選択] リストの信号を選択し、[トリガー信号] ボタンをクリックします。
トリガーにする信号を選択すると、[信号選択] リストの [トリガー] 列に T
が表示されます。次の図では、Scope A
信号がトリガーです。また、[選択] 列の X
で示されるとおり、Scope B
も表示用に選択されています。
トリガー信号を選択した後、[トリガー信号] セクションを使用してトリガー条件を定義し、トリガー信号 [端子] および [要素] パラメーターを設定します。
トリガー条件の設定
[外部信号とトリガー] ダイアログ ボックスの[トリガー信号] セクションを使用してトリガー条件とトリガー属性を設定します。[トリガー信号] パラメーターは、[トリガー オプション] セクションのトリガー パラメーター [ソース] が [信号]
に設定されている場合にのみ有効になります。
既定の設定では、指定されたトリガー ブロックの最初の入力端子の要素によりトリガーが始動します (つまり、端子 1、任意の要素)。この動作は、[トリガー信号] セクションで、[端子] および [要素] の値を変更することで調整できます。[端子] フィールドには、数またはキーワード last
を入力することができます。[要素] フィールドには、数またはキーワード any
か last
を入力することができます。
[トリガー信号] セクションでは、トリガーが発生する条件を定義することができます。
方向:
[立ち上がり]
、[立ち下がり]
、または[両方]
。信号がしきい値を横切るときに移動する向きです。既定の設定は[立ち上がり]
です。レベル:トリガーを始動するために信号が指定の向きで横切らなくてはならないしきい値です。既定の設定では、レベルは 0 です。
ホールドオフ:
[ノーマル]
モードに対してのみ適用されます。[ホールドオフ] は基本レート ステップ数で表現され、1 件のトリガー イベントが終了してからトリガーが再装備されるまでの時間です。
接続中の [信号とトリガー] オプションの変更
信号データのアップロードを設定して、Simulink を実行中のターゲットの実行可能ファイルに接続すると、ターゲットから切断せずに信号とトリガーのオプションを変更できます。
トリガーが装備されると (たとえば、既定の設定のトリガー オプション [ターゲットへ接続時にアーム] が選択されている場合)、[外部信号とトリガー] ダイアログ ボックスを変更できません。信号とトリガー オプションを変更するには、次の手順に従います。
エクスターナル モード コントロール パネルを開きます。
[トリガーをキャンセル] をクリックします。トリガーおよびアップロードされたデータの表示が行われなくなります。
[外部信号とトリガー] ダイアログ ボックスを開いて、必要に応じて信号およびトリガー オプションを変更します。たとえば、[信号選択] セクションでスコープを有効または無効にして、[トリガー オプション] セクションでトリガーの [モード] をたとえば
[ノーマル]
から[ワンショット]
に変更します。[トリガーの準備] をクリックします。トリガーおよびアップロードされたデータの表示は、変更によって再開されます。
ターゲット アプリケーションの信号データのホスト アーカイブの設定
エクスターナル モードでは、Simulink Scope ブロックと To Workspace ブロックを使用してデータをディスクにアーカイブすることができます。
アーカイブ機能の処理を理解するには、アーカイブ機能が無効であるときのデータの処理を考えます。ワンショット モードとノーマル モードという 2 つのケースがあります。
ワンショット モードでは、トリガー イベント発生後、選択された各ブロックがデータをワークスペースに書き込みます。これは、シミュレーションの最後に行う動作と同じです。別のワンショットがトリガーされると、その時点で存在するワークスペース データは上書きされます。
[ノーマル] モードでは、エクスターナル モードはトリガー イベントが発生するたびにトリガーを自動的に再装備します。このように、ノーマル モードはワンショットが連続して発生したものであるとみなすこともできます。この一連のワンショットの個々のワンショットは、最後のものを除いて "中間結果" と呼ばれます。トリガーはいつでも始動する可能性があるため、中間結果をワークスペースに書き込むと、ワークスペース変数が不意に上書きされることがあります。したがって、既定の動作としては最後のワンショットの結果のみをワークスペースに書き込むよう設定されています。中間結果は破棄されます。次のトリガーまでに中間結果を調べるための時間が十分にあることがわかっている場合は、[中間結果をワークスペースに書き込む] オプションを選択して、この既定の動作をオーバーライドすることができます。このオプションをオンにしたからといって、ワークスペース データがそれ以降のトリガーによって上書きされることを防止できるわけではありません。
Simulink Scope ブロックを使用してディスクにデータをアーカイブする場合、[Scope パラメーター] ダイアログ ボックスを開いてオプション [ワークスペースにデータのログを作成] を選択します。このオプションは次の理由で必要になります。
データは、スコープ データ バッファーから MATLAB ワークスペースに転送されてから、MAT ファイルに書き込まれます。
[Scope パラメーター] ダイアログ ボックスに入力された [変数名] は MATLAB ワークスペースと MAT ファイルの変数名と同じです。データの保存を有効にすると [変数名] パラメーターで名前を付けた変数の MAT ファイルへの保存が可能になります。
メモ
Scope ブロックのオプション [ワークスペースにデータのログを作成] を選択しない場合、データ ログ用の MAT ファイルは作成されますが空です。
[データ アーカイブを有効にする] ダイアログ ボックスは次をサポートしています。
フォルダー ノート
ファイル ノート
データ アーカイブの自動化
[エクスターナル モード コントロール パネル] で [データのアーカイブ] ボタンをクリックして、[データ アーカイブを有効にする] ダイアログ ボックスを開きます。モデルがターゲット環境に接続されている場合、データをアーカイブ化する間は切断してください。ダイアログ ボックス内の他のコントロールを有効にするには、[アーカイブを有効にする] を選択します。
[データ アーカイブを有効にする] ダイアログ ボックスでは以下の操作がサポートされています。
フォルダー ノート
フォルダー内の関連するデータ ファイルの集合に注釈を追加するには、[データ アーカイブを有効にする] ダイアログ ボックスの [ディレクトリ ノートの編集] をクリックします。MATLAB エディターが開きます。このウィンドウで指定フォルダー内のファイルに保存するコメントを入力します。既定の設定では、コメントはデータ アーカイブで最後に書き込まれたフォルダーに保存されます。
ファイル ノート
個別のデータ ファイルに注釈を追加するには、[データ アーカイブを有効にする] ダイアログ ボックスの [ファイル ノートの編集] をクリックします。ファイル検索ウィンドウが開きます。既定の設定では、最後に書き込んだファイルに設定されています。MAT ファイルを選択すると、編集ウィンドウが開きます。このウィンドウで、個々のMAT ファイルに保存するコメントを追加または編集します。
データ アーカイブの自動化
ログ結果のディスクへの自動書き込みを (オプションで中間結果も含めて) 設定するには、[アーカイブを有効にする] オプションとその設定を有効にするコントロールを使用します。このダイアログ ボックスには、以下のコントロールがあります。
[ディレクトリ]:データの保存先フォルダーを指定します。[トリガーが準備できたときにディレクトリを増やす] を選択すると、エクスターナル モードでは接尾辞が付けられます。
[ファイル]:データの保存先ファイル名を指定します。[ワンショット後にファイルを増やす] を選択すると、エクスターナル モードでは接尾辞が付けられます。
トリガーが準備できたときにディレクトリを増やす:エクスターナル モードでは、[トリガーの準備] ボタンがクリックされるたびに別のフォルダーを使用してログ ファイルを書き込みます。これらのフォルダーの名前はインクリメントされます。たとえば、
dirname1
、dirname2
などのようになります。[ワンショット後にファイルを増やす]:新しいデータ バッファーは、インクリメントされたファイルに保存されます。
filename1
、filename2
という要領で既定の名前が付けられます。ファイルのインクリメントは、ノーマル モードでは自動的に行われます。[変数名にファイルの添字を付加]:エクスターナル モードでファイル名がインクリメントされるたびに、同じ名前をもつファイルに変数が埋め込まれます。[変数名にファイルの添字を付加] をオンにすると、各ファイルに一意の変数名が埋め込まれます。たとえば、エクスターナル モードでは、
xdata
という名前の変数をインクリメントされたファイル (file_1
、file_2
など) にxdata_1
、xdata_2
などのように保存します。このアプローチは MAT ファイルをワークスペースへ読み込み、MATLAB コマンド プロンプトでの変数の比較をサポートします。一意の名前がないと、MATLAB ワークスペース内の直前の変数はxdata
の各インスタンスにより上書きされてしまいます。[中間結果をワークスペースに書き込む]:Simulink Coder™ ソフトウェアで中間結果をワークスペースに書き込むには、このオプションを選択します。
エクスターナル モード シミュレーションのグラフィカル コントロールの概要
以下を使用して XCP エクスターナル モード シミュレーションを制御できます。
Simulink ツールストリップの [ハードウェア] タブ。[ハードウェア] タブを表示するには、Simulink ツールストリップの [アプリ] タブから、[カスタム ハードウェア上で実行] をクリックします。
エクスターナル モード コントロール パネル。このダイアログ ボックスを開くには、Simulink エディターの [ハードウェア] タブの [準備] セクションで、
をクリックします。次に、[信号の監視とトレース] で、[コントロール パネル] をクリックします。
次の表は、エクスターナル モード シミュレーションを制御するために使用できる [ハードウェア] タブの機能を示したものです。
エクスターナル モード アクション | [ハードウェア] タブ | [エクスターナル モード コントロール パネル] ボタン |
---|---|---|
モデルを待機中または実行中のターゲット アプリケーションに接続する | [ハードウェアで実行] 、 [接続] ボタン ![]() | [接続] |
ターゲット環境でコードのリアルタイム実行を開始する | [スタート] ボタン ![]() | リアルタイム コードを開始 |
モデルをターゲット環境から切断する (実行しているリアルタイム コードは停止しない) | [ハードウェアで実行] 、 [切断] ボタン ![]() | 切断 |
ターゲット アプリケーションの実行を停止し、モデルをターゲット環境から切断する | [停止] ボタン ![]() | リアルタイム コードを停止 |
ブロックおよびサブシステムのエクスターナル モードとの互換性
互換ブロック
エクスターナル モードでは次の種類のブロックを使用して、ターゲット アプリケーションからアップロードされた信号の受信と表示を行うことができます。
Floating Scope ブロックと Scope ブロック
DSP System Toolbox™ 製品の Spectrum Analyzer ブロックと Time Scope ブロック
Display ブロック
To Workspace ブロック
ユーザーが書いた S-Function ブロック
エクスターナル モード メソッドが S-Function API に組み込まれています。このメソッドによってユーザーが記述したブロックでエクスターナル モードをサポートできます。
matlabroot
/simulink/include/simstruc.h
を参照してください。XY Graph ブロック
いくつかのサブシステムを Signal Viewing Subsystem として指定し、それらを使用してターゲット アプリケーションからアップロードされた信号の受信と表示を行うことができます。詳細については、Signal Viewing Subsystemを参照してください。
エクスターナル モード互換のブロックとサブシステムを選択してトリガーを装備するには、[外部信号とトリガー] ダイアログ ボックスを使用します。既定の設定では、モデル内のそういった互換ブロックが選択され、ターゲット アプリケーションへの接続時に手動トリガーが装備されるよう設定されます。
Signal Viewing Subsystem
Signal Viewing Subsystem は、ターゲット システムから受信した信号の処理と表示をカプセル化する Atomic Subsystem です。ホスト上でのみ動作し、ターゲット システムにコードを生成しません。Signal Viewing Subsystem は、ノーマル、アクセラレータ、ラピッド アクセラレータおよびエクスターナル シミュレーション モードで実行されます。
メモ
Signal Viewing Subsystem は、SIL コンポーネントまたは PIL コンポーネント (SIL モードまたは PIL モードの最上位モデル、SIL モードまたは PIL モードの Model ブロック、SIL ブロックまたは PIL ブロックなど) 内に配置された場合は非アクティブです。ただし、SIL または PIL コンポーネントは、サポートされているモードで実行している Signal Viewing Subsystem に供給はできます。
Signal Viewing Subsystem が役立つのは、信号を処理または条件付けしてから表示またはログ作成する場合に、これらの作業をターゲット システム上では実行したくない状況です。Signal Viewing Subsystem を使用することにより、ターゲット システム上でより小さく効率的なコードを生成することができます。
Signal Viewing Subsystem は他のエクスターナル モード互換モード ブロックと同様に、[外部信号とトリガー] ダイアログ ボックスに表示されます。
あるサブシステムが Signal Viewing Subsystem であると宣言するには、以下のようにします。
[ブロック パラメーター] ダイアログ ボックスの [Atomic サブシステムとして扱う] オプションを選択します。
Atomic サブシステムの詳細については、サブシステム コードを別々の関数およびファイルとして生成を参照してください。
SimViewingDevice
プロパティを有効にするために、set_param
コマンドを使用します。set_param('blockname', 'SimViewingDevice','on')
'blockname'
はサブシステムの名前です。このサブシステムが以下の要件を満たしていることを確認します。
純粋な Sink ブロックでなければなりません。つまり、Outport ブロックも Data Store ブロックも含んではなりません。Goto ブロックを含んでもよいのは、対応する From ブロックがサブシステム境界内に含まれる場合のみです。
連続状態が存在してはなりません。
モデル sink_examp
には、Atomic Subsystem である theSink
が含まれます。
theSink
サブシステムでは、入力信号にゲインとオフセットが適用されて、Scope ブロックに表示されます。
theSink
が Signal Viewing Subsystem と宣言された場合、生成されたターゲット アプリケーションには Sine Wave ブロック専用のコードのみが含まれることになります。[外部信号とトリガー] ダイアログ ボックスで [theSink
] が選択されて装備された場合、ターゲット アプリケーションはシミュレーション時に正弦波信号を theSink
にアップロードします。すると、ユーザーはブロックのパラメーターを theSink
内で修正し、アップロードされた信号を観察することができるようになります。
theSink
が Signal Viewing Subsystem と宣言されないと、Gain、Constant、および Sum の各ブロックはターゲット システム上でサブシステム コードとして実行されます。正弦波信号が Simulink エンジンにアップロードされるのは、これらのブロックによって処理され sink_examp/theSink/Scope2
に表示された後です。ターゲット システム上での処理の需要が増えるのは、追加の信号処理が必要になった場合、およびブロック パラメーターの変更内容をホストからダウンロードするときです。
データ アーカイブでサポートされるブロック
エクスターナル モードでは、次の種類のブロックを使用してデータをディスクにアーカイブすることができます。
Scope ブロック
To Workspace ブロック
[データ アーカイブを有効にする] ダイアログ ボックスを使用してデータ アーカイブを設定します。詳細については、ターゲット アプリケーションの信号データのホスト アーカイブの設定を参照してください。
エクスターナル モードのプログラム的使用
エクスターナル モード シミュレーションを MATLAB コマンド ラインからまたはスクリプトでプログラム的に実行することができます。get_param
コマンドと set_param
コマンドを使用して、モデル シミュレーションのコマンド ライン パラメーター (SimulationMode
や SimulationCommand
など) およびエクスターナル モードのコマンド ライン パラメーター (ExtModeCommand
や ExtModeTrigType
など) の値の取得と設定を行います。
以下に示すモデル シミュレーション コマンドでは、Simulink モデルがオープンであり、モデルがエクスターナル モードを使用して接続するターゲット アプリケーションが既に読み込まれていることを想定しています。
Simulink モデルをエクスターナル モードに切り替えます。
set_param(gcs,'SimulationMode','external')
オープン モデルを読み込まれたターゲット アプリケーションに接続します。
set_param(gcs,'SimulationCommand','connect')
ターゲット アプリケーションの実行を開始します。
set_param(gcs,'SimulationCommand','start')
ターゲット アプリケーションの実行を停止します。
set_param(gcs,'SimulationCommand','stop')
モデルからターゲット アプリケーションを切断します。
set_param(gcs,'SimulationCommand','disconnect')
ワークスペース パラメーターを調整するには、コマンド プロンプトでその値を変更します。ワークスペース パラメーターが Simulink.Parameter
オブジェクトの場合、新しい値を Value
プロパティに代入します。
myVariable = 5.23; myParamObj.Value = 5.23;
エクスターナル モードでワークスペース パラメーターをダウンロードするには、モデルのブロック線図を更新します。以下のモデル シミュレーション コマンドにより、モデルの更新が実行されます。
set_param(gcs,'SimulationCommand','update')
スコープへのデータのアップロードをトリガーまたはキャンセルするには、ExtModeCommand
値 armFloating
と cancelFloating
または armWired
と cancelWired
を使用します。たとえば、ワイヤード (非フローティング) スコープへのデータのアップロードをトリガーした後で取り消すには、次を行います。
set_param(gcs,'ExtModeCommand','armWired') set_param(gcs,'ExtModeCommand','cancelWired')
次の表は、get_param
コマンドと set_param
コマンドで使用できるエクスターナル モードのコマンド ライン パラメーターを示したものです。表には、短い説明、有効な値 (太字で既定値を強調表示)、および [エクスターナル モード] ダイアログ ボックスでの等価物へのマッピングが記載されています。[コンフィギュレーション パラメーター] ダイアログ ボックスの [インターフェイス] ペインで選択できるオプションと等価であるエクスターナル モード パラメーターについては、モデル コンフィギュレーション パラメーター: コード生成インターフェイスを参照してください。
エクスターナル モード コマンド ライン パラメーター
パラメーターと値 | ダイアログ ボックスの等価物 | 説明 |
---|---|---|
ExtModeAddSuffixToVar off , on | データ アーカイブを有効にする:[変数名にファイルの添字を付加] チェック ボックス | インクリメントされた各ファイル名の変数名をインクリメントします。 |
ExtModeArchiveDirName character vector | データ アーカイブを有効にする:[ディレクトリ] テキスト フィールド | 指定したフォルダーにデータを保存します。 |
ExtModeArchiveFileName character vector | データ アーカイブを有効にする:[ファイル] テキスト フィールド | 指定したファイルにデータを保存します。 |
ExtModeArchiveMode character vector - off , auto , manual | データ アーカイブを有効にする:[アーカイブを有効にする] チェック ボックス | 自動化されたデータ アーカイブ機能を有効にします。
|
ExtModeArmWhenConnect off , on | 外部信号とトリガー:[ターゲットへ接続時にアーム] チェック ボックス | Simulink Coder ソフトウェアがターゲットに接続するとすぐにトリガーを装備します。 |
ExtModeAutoIncOneShot off , on | データ アーカイブを有効にする:[ワンショット後にファイルを増やす] チェック ボックス | 新しいデータ バッファーをインクリメンタル ファイルに保存します。 |
ExtModeAutoUpdateStatusClock (Windows® プラットフォームのみ)off , on | 使用できません | 継続的にターゲット時間をアップロードし、モデル ウィンドウのステータス バーに表示します。 |
ExtModeBatchMode off , on | エクスターナル モード コントロール パネル:[バッチ ダウンロード] チェック ボックス | バッチ モードでのパラメーターのダウンロードの有効/無効を切り替えます。 |
ExtModeChangesPending off , on | 使用できません | ExtModeBatchMode が有効の場合、ターゲットにダウンロードするパラメーターのキューに残っているパラメーターがあるかどうかを示します。 |
ExtModeCommand character vector - armFloating , armWired , cancelFloating , cancelWired |
| ターゲット アプリケーションにエクスターナル モード コマンドを発行します。 |
ExtModeConnected off , on | エクスターナル モード コントロール パネル:[接続/切断] ボタン | ターゲット アプリケーションとの接続状況を示します。 |
ExtModeEnableFloating off , on | エクスターナル モード コントロール パネル:[データ アップロードを有効にする] チェック ボックス | フローティング スコープとの接続が確立されたときのトリガー装備および解除の有効/無効を切り替えます。 |
ExtModeIncDirWhenArm off , on | データ アーカイブを有効にする:[トリガーが準備できたときにディレクトリを増やす] チェック ボックス | トリガーが装備されるたびにログ ファイルをインクリメンタル フォルダーに書き込みます。 |
ExtModeLogAll off , on | 外部信号とトリガー:[すべて選択] チェック ボックス | 入手できる信号をターゲットからホストにアップロードします。 |
ExtModeParamChangesPending off , on | 使用できません | Simulink Coder ソフトウェアがターゲットに接続され、ExtModeBatchMode が有効の場合、ターゲットにダウンロードするパラメーターのキューに残っているパラメーターがあるかどうかを示します。ExtModeChangesPending ではターゲットへの接続があるかどうかをチェックするので、ExtModeChangesPending より効率的です。 |
ExtModeSkipDownloadWhenConnect off , on | 使用できません | パラメーターをダウンロードせずにターゲット アプリケーションに接続します。 |
ExtModeTrigDelay integer (0 ) | 外部信号とトリガー:[遅延] テキスト フィールド | トリガーが発生してからデータ収集が開始されるまでの時間の長さ (基本レートステップ数) を指定します。 |
ExtModeTrigDirection character vector - rising , falling , either | 外部信号とトリガー:[方向] メニュー | 信号がしきい値を横切るときに移動する向きを指定します。 |
ExtModeTrigDuration integer (1000 ) | 外部信号とトリガー:[持続時間] テキスト フィールド | エクスターナル モードがトリガー イベント後のデータのログを作成する基本レート ステップ数を指定します。 |
ExtModeTrigDurationFloating character vector - integer (auto ) | エクスターナル モード コントロール パネル:[持続時間] テキスト フィールド | フローティング ステップの持続時間を指定します。[auto] が指定された場合、ExtModeTrigDuration の値が使用されます。 |
ExtModeTrigElement character vector - integer , any , last | 外部信号とトリガー:[要素] テキスト フィールド | トリガーを始動できる指定されたトリガー ブロックの入力端子の要素を指定します。 |
ExtModeTrigHoldOff integer (0 ) | 外部信号とトリガー:[ホールドオフ] テキスト フィールド | トリガー イベントが終了してからトリガーが再装備されるまでの基本レート ステップ数を指定します。 |
ExtModeTrigLevel integer (0 ) | 外部信号とトリガー:[レベル] テキスト フィールド | トリガー信号がトリガーを始動するために横切らなければならないしきい値を指定します。 |
ExtModeTrigMode character vector - normal , oneshot | 外部信号とトリガー:[モード] メニュー | トリガー イベントが発生するたびにトリガーが自動的に再装備されるかどうか、またはトリガー装備のたびに収集されるのが 1 バッファー分のデータのみかどうかを指定します。 |
ExtModeTrigPort character vector - integer (1 ), last | 外部信号とトリガー:[端子] テキスト フィールド | 要素がトリガーを始動できる指定されたトリガー ブロックの入力端子を指定します。 |
ExtModeTrigType character vector - manual , signal | 外部信号とトリガー:[ソース] メニュー | データのログ作成の開始が、トリガーが装備されたときなのか、それとも指定されたトリガー信号がトリガー条件を満たしたときなのかを指定します。 |
ExtModeUploadStatus character vector - inactive , armed , uploading | 使用できません | エクスターナル モードでのアップロード メカニズムのステータス (inactive、armed または uploading) を返します。 |
ExtModeWriteAllDataToWs off , on | データ アーカイブを有効にする:[中間結果をワークスペースに書き込む] チェック ボックス | 中間結果をワークスペースに書き込みます。 |
エクスターナル モードでの Stateflow チャートのアニメーション化
Stateflow® をお持ちの場合、エクスターナル モードでチャートをアニメーション化できます。エクスターナル モードでは、チャート内のステートをアニメーション化して、フローティング スコープや信号ビューアーでテスト ポイント信号を表示できます。
エクスターナル モードでのシミュレーション中のステートのアニメーション化
エクスターナル モードでチャート内のステートをアニメーション化するには、以下の手順に従います。
アニメーション化したいチャートをターゲット マシンに読み込みます。
[コンフィギュレーション パラメーター] ダイアログ ボックスで、[エクスターナル モード] チェック ボックスをオンにします。
[エクスターナル モード コントロール パネル] ダイアログ ボックスを開きます。
[信号とトリガー] をクリックします。
[外部信号とトリガー] ダイアログ ボックスで、以下のパラメーターを設定します。
場所 選択: [信号選択] ペイン アニメーション化したいチャート [トリガー オプション] ペイン [ターゲットへ接続時にアーム] チェック ボックス [トリガー オプション] ペイン [モード] フィールドのドロップダウン メニューから [ノーマル]
モデルをビルドして、実行可能ファイルを生成します。
ターゲット アプリケーションを展開します。
Simulink をターゲット アプリケーションに接続します。
生成されたモデル コードの実行を開始します。チャートは、実行されたステートを強調表示します。
フローティング スコープと信号ビューアーでのテスト ポイント データの表示
エクスターナル モードでチャートのシミュレーションを実行すると、ローカル スコープのチャート データをテスト ポイントとして指定して、フローティング スコープと信号ビューアーでテスト ポイント データを表示できます。
エクスターナル モードでのシミュレーション時にテスト ポイント データを表示するには、以下の手順に従います。
モデル エクスプローラーを開いて、表示するデータごとに以下の手順に従います。
中央の [コンテンツ] ペインで、目的のステートまたはローカル データを選択します。
右側の [ダイアログ] ペインで [ログ] タブを選択し、[テスト ポイント] チェック ボックスを選択します。
フローティング スコープまたは信号ビューアーから、信号選択ボタンをクリックします。
[信号セレクター] ダイアログ ボックスが開きます。
[信号セレクター] の [モデルの階層構造] ペインで、チャートを選択します。
[信号セレクター] の [リスト内容] メニューで、[テスト ポイント/ログ信号のみ] を選択し、表示する信号を選択します。
エクスターナル モードでのシミュレーション中のステートのアニメーション化の説明に従って、エクスターナル モードでモデルのシミュレーションを実行します。
スコープまたはビューアーに、シミュレーションの実行に応じてテスト ポイント信号の値が表示されます。
詳細については、ラピッド アクセラレータ モードでのスコープとビューアーの動作を参照してください。
TCP/IP およびシリアルのエクスターナル モードの制限事項
機能 | 詳細 |
---|---|
パラメーターの変更 | 通常、パラメーターを変更することはできません。変更すると、結果としてモデルの構造が変更されます。たとえば、次の項目は変更できません。
ブロック線図にこれらの変更を行うと、新しく生成されたコードを使用してプログラムをリビルドしなければなりません。 伝達関数のパラメーターおよび状態空間表現ブロックは、特定の方法で変更できます。
Simulink ブロック線図が外部のプログラムに一致しない場合、Simulink でチェックサムが一致しないことを示すエラーが発生します。チェックサムは最上位モデルを考慮しますが、参照モデルは考慮しません。更新されたブロック線図を使用してターゲット アプリケーションをリビルドします。 |
データのアップロード | 固定小数点または列挙型のデータ値のワークスペース パラメーターへのアップロードはサポートされていません。 |
シミュレーション時の信号値の表示 | モデルの信号値のグラフィカルな表示 (モデル ブロック線図での信号値の表示に記述) はサポートされません。たとえば、[シミュレーションでのデータ表示] は [ポイント時に値ラベルを表示]、[クリック時に値ラベルを切り替え] および [選択した端子の値ラベルを表示] のメニュー選択で使用できません。 |
調整可能な構造体パラメーター | 調整可能な構造体パラメーターのアップロードまたはダウンロードはサポートされません。 |
純粋な整数コード | 純粋な整数コードはサポートされます。 実行コマンドで 実行コマンドで
|
データのアーカイブ | データのディスクへのアーカイブでは、Scope ブロックと Workspace ブロックがサポートされます。ただし、他のスコープはデータのアーカイブのサポート対象外です。たとえば、Floating Scope ブロックまたはビューアーとジェネレーターのマネージャーのビューアー オブジェクトを使用してデータをアーカイブすることはできません。 |
参照モデルのスコープ | モデルの階層構造において、最上位モデルがエクスターナル モードでシミュレーションを実行し、参照モデルがノーマルまたはアクセラレータ モードでシミュレーションを実行する場合、参照モデルのスコープは表示されません。 ただし、最上位モデルがノーマル モードでのシミュレーションに変更された場合、参照モデルにおけるスコープの動作は、ノーマル モードとアクセラレータ モードで異なります。ノーマル モードでシミュレーションを実行する参照モデルのスコープは表示されますが、アクセラレータ モードでシミュレーションを実行する参照モデルのスコープは表示されません。 |
シミュレーションの開始時間 | 非ゼロのシミュレーション開始時間はサポートされていません。[コンフィギュレーション パラメーター] ダイアログ ボックスの [ソルバー] ペインで、[開始時間] を既定値の |
ファイルスコープのデータ | 組み込みのカスタム ストレージ クラス |
カスタム ストレージ クラスをもつ信号 | カスタム ストレージ クラス (CSC) をもつ信号のアップロードはサポートされていません。 |
printf ステートメントの使用 | ターゲット アプリケーション エラーおよび情報メッセージをターゲット ハードウェアのディスプレイに表示するには、 |
コマンド ライン引数 | 実行中のターゲット アプリケーションにコマンド ライン引数を使用できます。以下の制限が適用されます。
ターゲット ハードウェアがコマンド ライン引数の解析をサポートしない場合、ターゲット アプリケーション コンパイラに対してプリプロセッサ マクロ定義
set_param(modelName, 'OnTargetWaitForStart', 'on'); -DON_TARGET_WAIT_FOR_START=1 ) をコンパイラに提供します。 |
行優先のコード生成 | 行優先の形式で生成されたコードはサポートされていません。 |