イベントカウントは、ソース信号の測定にフォーカスしたすべてのカウンタ操作の最も基本的なものです。基本的には、ソフトウェアコマンドでカウントレジスタをポーリングし、カウンタのソースに到着したアクティブエッジ数をカウントします。したがって、バッファ型イベントカウントは、現在のレジスタカウント値をPCメモリにラッチする制御信号としてゲートが動作するイベントカウントの形式です。この測定は、ゲートで発生する連続したイベント間の経過時間を測定できるため、時間スタンプ処理とみなされることもあります。図1は、バッファ型イベントカウントに使用される基本的なカウンタチップのコンポーネントを示します。
図1. カウンタチップ
操作には、カウンタのソースとゲートの両方を使用します。カウンタのゲートにあるアクティブエッジは、ハードウェアレジスタで現在のカウントレジスタをラッチするために使用されます。このレジスタは、ダイレクトメモリアクセス(DMA)経由で転送されるか、または事前に割り当てあられたPCメモリまたはソフトウェアバッファに割り込みを行います。ソフトウェアバッファは、連続操作に対して有限または連続になります。ソフトウェアバッファ内に入ると、値をLabVIEWで読み取ることができます。ゲート信号はサンプルクロックのように動作し、カウントレジスタの現在の値をサンプリングします。図2はカウンタレジスタのメモリへの転送を示します。
図2. バッファ型イベントカウント
バッファ型イベントのプログラミングの制御フローは、バッファが構成されることを要件とします。バッファは、NI Measurement→DAQmxの関数パレットにある「DAQmxタイミング」関数を使用してDAQmxで構成できます。
関数は多態性のため、変更するプロパティは「サンプルクロック」であることに注目することが重要です。「DAQmxタイミング」関数では、バッファサイズ、バッファモード、サンプルクロックソース(ゲートピン)、サンプルクロック極性(ゲート極性)は、図3に示すとおりに設定できます。
図3. 「DAQmxタイミング」関数でのバッファ構成
バッファ型は有限集録または連続集録で構成できます。有限バッファ型イベントカウントでは、サンプルモードが「有限サンプル」に設定され、事前に割り当てられたPCメモリからアプリケーション開発環境(ADE)メモリへデータをコピーします。図4は有限バッファ型イベントカウントを実行するLabVIEWプログラムのサンプルを示します。
図4. 有限バッファ型イベントカウント
図5に示すとおり、連続バッファ型イベントカウントは、バッファがループ内で読み取られることを除き、有限バッファ型イベントカウントに似ています。同様に、サンプルモードは「連続サンプル」として構成されます。また、連続バッファ型入力は、循環バッファ型入力またはダブルバッファ型入力とも呼ばれます。
図5. 連続バッファ型イベントカウント