パルス信号の立ち上がりと立ち下がり両方のタイミングとアナログ入力または出力を同期させたい場合、アナログ入力または出力タスクと、変化検出用に必要な仮想チャンネルであるデジタル入力タスクを作成し、デジタル入力タスクのDAQmxタイミング関数を「変化検出」モードに設定します。パルス信号はデジタル入力タスクで指定したデバイスのラインに配線します。
デバイス名はDev1など、Measurement & Automation Explorer(NI MAX)で設定されたものを使用します。
なお、変化検出は一部のデバイスのみ対応しております。対応しているデバイスの一覧は下記リンクを参照してください。
LabVIEW
「変化検出」モードに設定したDAQmxタイミング関数の「立ち上がりエッジ物理チャンネル」と「立ち下がりエッジ物理チャンネル」は同一の端子に設定し、サンプルモードは「連続サンプル」に設定します。アナログ入力または出力タスクのDAQmxタイミング関数は「サンプルクロック」モードに設定し、「ソース」端子を「/デバイス名/ChangeDetectionEvent」に設定します。
LabVIEWで変化検出とアナログ入力を同期させるサンプルは以下の通りです。
VB.NET / C#
VB.NETまたはC#では、ReadDigChan_ChangeDetection_Eventsサンプルで、Lines、Rising Edge Lines、Falling Edge Linesを「/デバイス名/port0/line0:7」に設定します。続いて、ContAcqVoltageSamples_ExtClkDigStartのような外部信号をタイミングクロックソースとして受け付けるサンプルプログラムを実行し、表示されるウィンドウでTiming ParametersのClock Sourceを「/デバイス名/ChangeDetectionEvent」に設定します。
上記2つのサンプルを共に実行することでデジタルタスクが変化検出を実行し、アナログタスクが変化検出のタイミングでデータ収集をすることが可能です。
VB.NETまたはC#の変化検出サンプルは、[NI-DAQmxのサンプルフォルダ]\DotNET[バージョン]\Digital\Read Values\ReadDigChan_ChangeDetection_Events にあります。また、外部信号を受け付けるアナログ入力のサンプルは、[NI-DAQmxのサンプルフォルダ]\DotNET[バージョン]\Analog In\Measure Voltage\ContAcqVoltageSamples_ExtClkDigStart にあります。
NI-DAQmxのサンプルは、スタートボタンからNational Instruments»NI-DAQmx»NI-DAQmx Examplesと選択すると開くことが可能です。
ANSI C
ANSI Cでは、ReadDigChan-ChangeDetectionサンプルを開き、68行目のDAQmxCreateDIChan関数の、lines(2つ目の引数)と、69行目のDAQmxCfgChangeDetectionTiming関数の、risingEdgeChanとfallingEdgeChan(2つ目と3つ目の引数)のデバイス名を任意のものに変更します。
続いて、アナログ入力または出力をするサンプル内にあるDAQmxCfgSampClkTiming関数の、source(2番目の引数)を、「/デバイス名/ChangeDetectionEvent」に設定します。
上記2つのサンプルを共に実行することでデジタルタスクが変化検出を実行し、アナログタスクが変化検出のタイミングでデータを収集します。
ANSI Cの変化検出サンプルは、[NI-DAQmxのサンプルフォルダ]\DAQmx ANSI C\Digital\ReadValues\Read Dig Chan-Change Detectionにあります。また、ANSI Cのアナログ入力または出力サンプルは、[NI-DAQmxのサンプルフォルダ]\DAQmx ANSI C\Analog InまたはAnalog Outにあります。
NI-DAQmxのサンプルは、スタートボタンからNational Instruments»NI-DAQmx»NI-DAQmx Examplesと選択すると開くことが可能です。
変化検出の詳細については下記リンクを参照してください。