ドキュメンテーション センター

  • 評価版
  • 製品アップデート

目次

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Arduino ハードウェア上でのタスク オーバーランの検出と修正

タスク オーバーランの発生時に、ターゲット ハードウェアで実行中の Simulink® モデルがそれを検出し、通知するようにモデルを設定できます。ターゲット ハードウェアで、あるタスクの次のインスタンスが開始されるようスケジュールされているときに、そのタスクのインスタンスがまだ実行されている場合、タスク オーバーランが発生します。スケジュールされているタスクの実行頻度を少なくするか、モデルで定義されているタスク数を減らすことで、オーバーランを修正できます。

オーバーラン検出を有効にするには、次の手順に従います。

  1. モデルで [ツール] メニューをクリックして、[ターゲット ハードウェアで実行][オプション] を選択します。

  2. 開いた [ターゲット ハードウェアで実行] ペインで、[Enable overrun detection] チェック ボックスをオンにします。

  3. [Digital output to set on overrun] パラメーターを使用して、デジタル出力のピン番号を指定します。

  4. [OK] をクリックします。

ボードにビジュアル オーバーラン インジケーターを作成するには、[Digital output to set on overrun] パラメーターで指定したハードウェア ピンと GND との間で、適切な抵抗器を LED と直列に接続します。長い方のレッグ (正) がデジタル出力ピンに接続されるように LED の向きを合わせます。

タスク オーバーランが発生した場合、以下のようになります。

  • [Digital output to set on overrun] パラメーターで指定されたデジタル出力ピンの状態は、低 (0 V) から高 (5 V) に変化します。

  • モデルの実行は継続しますが、有効なサンプル時間は指定された値より長くなります。

オーバーランの条件を修正するには、以下の解決策の 1 つまたは複数を適用して、モデルの処理負荷を低減させます。

  • モデルのサンプル時間を増やします。たとえば、すべてのデータ ソース ブロック内で [Sample time] パラメーターの値を増やします。

  • モデルを簡略化します。

エクスターナル モードを使用しているときに、前述の解決策でタスク オーバーラン条件を修正できない場合、エクスターナル モードを無効にすることを検討してください。エクスターナル モードでは、ターゲット ハードウェアで実行しているモデルに軽量サーバーが追加されます。このサーバーは、ターゲット ハードウェア上の処理負荷を増加させるため、タスク オーバーラン条件の原因となることがあります。

この情報は役に立ちましたか?