• 要件—入出力タスクでハードウェアタイミングがサポートされていません。
  • 解決法—タイミングループ (LabVIEWの場合) または非同期タイマ (LabWindows/CVIの場合) を使用して、タイミング重視ループにソフトウェアタイミングを適用します。NI-DAQmxタスクをオンデマンドタイミングが使用されるように構成します。

    利点

    • ハードウェアタイミングによってI/O制御ループを実行できます。
    • 読み取り、処理、書き込みの各操作は、タイミングループや非同期タイマで定義されるソフトウェアタイミングの時間内に実行されます。

    制約事項

    入出力サンプルがソフトウェアジッタの影響を受けます。

  • サンプルアプリケーション: ソフトウェアタイミングによる入出力

    このようなアプリケーションの例には、デジタルI/O制御ループが挙げられます。アプリケーションは、複数の離散的な入力の状態を監視し、対応する出力を制御アルゴリズムに基づいてトグルします。ハードウェアタイミングは、NI-DAQmxシングルポイントデジタルI/Oタスクでは使用できません。

    タイミングダイアグラム



    LabVIEWの例: ソフトウェアタイミングによる入出力

    メモ このサンプルはLabVIEWユーザ向けに書かれていますが、基本的な概念はLabWindows/CVIなどの他のアプリケーション開発環境にも共通します。
    • タスクは、システムの時間ソース (ミリ秒またはマイクロ秒の分解能) によって実行されるタイミングループによって実行されます。タイミングループが適切なレートで実行されるよう設定します。
    • すべてのタスクがソフトウェアタイミング (オンデマンド) になるよう構成します。
    • タイミングループによって、前回の反復が時間内に完了したかどうかフィードバックを得られます。このフィードバックは、遅れて終了 [i-1]ノードによって行われます。

    サンプルブロックダイアグラム



    メモ
    • タイミングループでは、アプリケーションがループ内から周期を調節できます。これにより、制御のために動的なタイミングアルゴリズムを実装できます。
    • タイミングループが次の反復を待機している間、優先度の低いプロセスを実行できます。
    • その他のソフトウェアタイミングには、「待機」VIや「次のミリ秒倍数まで待機」VI (ミリ秒またはマイクロ秒の分解能) などがあります。これらの方法では、アプリケーションが遅れてもフィードバックを得られません。