カウンタは、入力信号の比較に基づいてレジスタ値(カウント)を増分し、レジスタ値に基づいて出力パルスを生成する場合に使用します。図1に示す通り、少なくともSourceとGateの2つの入力があり、アプリケーションによってはOutラインも使用することがあります。
図1. カウンタチップコンポーネント
カウンタはカウントレジスタで現在のカウントを保存します。エッジがSource入力で検出されると、カウンタが増分または減分します。ナショナルインスツルメンツのカウンタチップは、ソフトウェアレジスタとハードウェアレジスタの両方があります。ハードウェアレジスタは、現在のカウントを保存します。これは、ハードウェアのカウント操作の干渉なしにアプリケーションでレジスタをクエリするため、ソフトウェアレジスタがハードウェアレジスタのコピーを保持します。
カウンタのサイズは、特定のカウンタチップがゼロに対してロールオーバーする前までにカウントできる最大数です。カウントは、通常、カウンタの分解能を表す合計ビット数(N)とともにカウントレジスタでバイナリビットとして表示されます。したがって、最大カウント数は、以下の式で計算されます。
2^N - 1 ここでNはビット数です。
たとえば、24ビットの分解能を持つカウンタは、最大カウントが2^24 – 1= 16,777,215です。
ターミナルカントは、カウントレジスタがゼロにロールオーバーするときにヒットします。カウンタがTCをヒットする場合、カウンタ出力は、論理LOWと論理HIGHの間でトグルするか、または出力ピンからパルスを送信するようにプログラミングできます。生成された出力信号は、デバイスまたは処理の警告に使用できます。
ターミナルカウントが一定値に達したかどうかは、DAQmxでカウンタ出力イベントプロパティを使用してハードウェアで判断されます。カウンタ出力イベントは、カウンタがターミナルカウントに達すると発生するイベントです。DAQmxでは、信号の出力動作を選択し、指定した端子にカウンタ出力イベントをエクスポートすることができます。
カウンタ出力イベントを構成するにはDAQmx信号をエクスポートプロパティノードを使用します。図2に示す通り、これはLabVIEWで、測定I/O » DAQmx-データ集録 » DAQmx上級タスクオプション » DAQmxエクスポート信号を選択します。
図2. DAQmx信号をエクスポートサブパレット
カウンタ出力イベントで、以下のプロパティを定義できます。
図3に示す通り、これらのプロパティは、DAQmx信号をエクスポートプロパティノード » イベント » カウンタ出力イベントの下にあります。
図3. カウンタ出力イベントプロパティ
出力端子プロパティは信号の経路設定を行う端子を指定する間、出力動作プロパティはカウンタ出力イベントの出力動作(パルスまたはトグル)を指定します。
信号パルスを生成するか、端子カウントで状態をトグルして、ラインがトグルに設定されている場合は出力パルスの極性またはアイドル状態を指定する信号を生成できます。
図4は、カウンタ出力イベントでサンプルデジタルエッジカウント操作を使用し、端子カウントを決定してHIGHアクティブの極性でパルスを生成することを示します。
図4. 端子カウント出力イベントを使用する簡単なエッジカウンタ処理