DAQmx関数
LabVIEW基本講座 ハードウェア編8
LabVIEWのDAQmx関数を説明します。DAQmx関数は、NI社製DAQデバイスのデータ収集、信号発生、設定操作のプログラムができるVI関数です。
![DAQmx関数](https://i0.wp.com/www.peritec-si.com/wp/wp-content/uploads/labview-daqmx_01.png?resize=799%2C433&ssl=1)
多態性VI
DAQmxでは、同じ関数でも選択によって、異なるデータタイプや動作を使い分けることが多態性VI関数があります。
多態性とは
多態性(ポリモーフィズム)とは、オブジェクト指向プログラミングの一つで、ある1つ関数やメソッドなどが、引数や返り値の数やデータ型などの異なる複数の機能を1まとめにして、呼び出し時に使い分けるようにできること。
例:「DAQmx仮想チャンネルを作成」の1関数で、アナログ入力、アナログ出力、デジタルI/O、カウンタI/Oに使い分けます。
![多態性とは](https://i0.wp.com/www.peritec-si.com/wp/wp-content/uploads/labview-daqmx_02-1.png?resize=319%2C194&ssl=1)
![多態性VI](https://i0.wp.com/www.peritec-si.com/wp/wp-content/uploads/labview-daqmx_02-2.png?resize=491%2C297&ssl=1)
DAQmxの多態性VI
DAQmxでは以下の関数が多態性VIになります。
- DAQmx仮想チャンネルを作成
- DAQmx読み取り
- DAQmx書き込み
- DAQmxタイミング
- DAQmxトリガ
関数の下のリストをクリックして表示されるリストから使用する機能を選択します。
例:「DAQmx読み取り」をクリックして機能を選択します。
![DAQmxの多態性VI](https://i0.wp.com/www.peritec-si.com/wp/wp-content/uploads/labview-daqmx_03-1.png?resize=349%2C145&ssl=1)
選択した機能により読み取るデータタイプが変わります。
![DAQmx多態性VI](https://i0.wp.com/www.peritec-si.com/wp/wp-content/uploads/labview-daqmx_03-2.png?resize=691%2C134&ssl=1)
DAQmx関数一覧
DAQmxタスク名
DAQアシスタントで作成および保存されたすべてのタスクのリストを表示します。
![DAQmxタスク名](https://i0.wp.com/www.peritec-si.com/wp/wp-content/uploads/labview-daqmx_04.png?resize=75%2C33&ssl=1)
DAQmxグローバルチャンネル
DAQアシスタントを使用して作成および保存されたすべての仮想チャンネルをリストします。
![DAQmxグローバルチャンネル](https://i0.wp.com/www.peritec-si.com/wp/wp-content/uploads/labview-daqmx_05.png?resize=124%2C33&ssl=1)
DAQmx仮想チャンネルを作成
仮想チャンネルまたは仮想チャンネルのセットを作成して、それらをタスクに追加します。
![DAQmx仮想チャンネルを作成](https://i0.wp.com/www.peritec-si.com/wp/wp-content/uploads/labview-daqmx_06.png?resize=321%2C174&ssl=1)
多態性VIで、アナログ入力、デジタル出力、カウンタ出力などのチャンネルのI/Oタイプ、温度測定、電圧生成、イベントカウントなどの測定または生成の実行、および温度測定の熱電対やRTDなどのセンサの使用に対応します。
![DAQmx仮想チャンネルを作成多態性VI](https://i0.wp.com/www.peritec-si.com/wp/wp-content/uploads/labview-daqmx_06-2.png?resize=276%2C455&ssl=1)
DAQmx読み取り
指定したタスクまたは仮想チャンネルからサンプルを読み取ります。
![DAQmx読み取り](https://i0.wp.com/www.peritec-si.com/wp/wp-content/uploads/labview-daqmx_07.png?resize=319%2C56&ssl=1)
多態性VIで、 読み取るサンプルフォーマットの種類、1つまたは複数のチャンネル、一度に単一または複数のサンプルの読み取りを指定します。
![DAQmx読み取り多態性VI](https://i0.wp.com/www.peritec-si.com/wp/wp-content/uploads/labview-daqmx_07-2.png?resize=570%2C145&ssl=1)
DAQmx書き込み
指定したタスクまたは仮想チャンネルにサンプルを書き込みます。
![DAQmx書き込み](https://i0.wp.com/www.peritec-si.com/wp/wp-content/uploads/labview-daqmx_08.png?resize=433%2C94&ssl=1)
多態性VIで、書き込むサンプルフォーマットの種類、1つまたは複数のサンプルを書き込むかどうか、1つまたは複数のチャンネルに書き込むかどうかを指定します。
![DAQmx書き込み多態性VI](https://i0.wp.com/www.peritec-si.com/wp/wp-content/uploads/labview-daqmx_08-2.png?resize=511%2C144&ssl=1)
DAQmx完了まで待機
測定または生成が完了するまで待機します。このVIを使用して、タスクを停止する前に指定した操作が完了したかどうかを確認します。
![DAQmx完了まで待機](https://i0.wp.com/www.peritec-si.com/wp/wp-content/uploads/labview-daqmx_09.png?resize=317%2C55&ssl=1)
DAQmxタイミング
集録または生成するサンプル数を構成し、必要に応じてバッファを作成します。
![DAQmxタイミング](https://i0.wp.com/www.peritec-si.com/wp/wp-content/uploads/labview-daqmx_10.png?resize=319%2C135&ssl=1)
多態性VIで、タスクに使用するタイミングのタイプに対応します。
![DAQmxタイミング多態性VI](https://i0.wp.com/www.peritec-si.com/wp/wp-content/uploads/labview-daqmx_10-2.png?resize=327%2C193&ssl=1)
DAQmxトリガ
タスクのトリガを構成します。
![DAQmxトリガ](https://i0.wp.com/www.peritec-si.com/wp/wp-content/uploads/labview-daqmx_11.png?resize=313%2C42&ssl=1)
多態性VIで、構成するトリガおよびトリガのタイプに対応します。
![DAQmxトリガ多態性VI](https://i0.wp.com/www.peritec-si.com/wp/wp-content/uploads/labview-daqmx_11-2.png?resize=304%2C216&ssl=1)
DAQmxタスクを開始
タスクを実行状態に遷移し、測定または生成を開始します。このVIは、「DAQmx仮想チャンネルを作成」で「自動開始」をFalseにした場合Falseは必須となります。
![DAQmxタスクを開始](https://i0.wp.com/www.peritec-si.com/wp/wp-content/uploads/labview-daqmx_12.png?resize=317%2C44&ssl=1)
DAQmxタスクを停止
タスクを停止します。「DAQmxタスクを開始」を実行する前の状態に戻します。
![DAQmxタスクを停止](https://i0.wp.com/www.peritec-si.com/wp/wp-content/uploads/labview-daqmx_13.png?resize=315%2C42&ssl=1)
DAQmxタスクをクリア
タスクをクリア(消去)します。
タスクをクリアする前に、「DAQmxタスクを停止」をするか、予約したタスクを全て解放しておきます。
![DAQmxタスクをクリア](https://i0.wp.com/www.peritec-si.com/wp/wp-content/uploads/labview-daqmx_14.png?resize=249%2C47&ssl=1)
DAQmxチャンネルプロパティノード
DAQmxチャンネルクラスのプロパティノードです。
![DAQmxチャンネルプロパティノード](https://i0.wp.com/www.peritec-si.com/wp/wp-content/uploads/labview-daqmx_15.png?resize=614%2C387&ssl=1)
DAQmxタイミングプロパティノード
DAQmxタイミングクラスのプロパティノードです。
![DAQmxタイミングプロパティノード](https://i0.wp.com/www.peritec-si.com/wp/wp-content/uploads/labview-daqmx_16.png?resize=454%2C287&ssl=1)
DAQmxトリガプロパティノード
DAQmxトリガクラスのプロパティノードです。
![DAQmxトリガプロパティノード](https://i0.wp.com/www.peritec-si.com/wp/wp-content/uploads/labview-daqmx_17.png?resize=433%2C174&ssl=1)
DAQmx読み取りプロパティノード
DAQmx読み取りクラスのプロパティノードです。
![DAQmx読み取りプロパティノード](https://i0.wp.com/www.peritec-si.com/wp/wp-content/uploads/labview-daqmx_18.png?resize=616%2C333&ssl=1)
DAQmx書き込みプロパティノード
DAQmx書き込みクラスのプロパティノードです。
![DAQmx書き込みプロパティノード](https://i0.wp.com/www.peritec-si.com/wp/wp-content/uploads/labview-daqmx_19.png?resize=470%2C216&ssl=1)
DAQアシスタントExpress VI
NI-DAQmxを使用して、タスクの作成、編集、実行を行います。Express VIにより、表示されるダイアグラム対話式で構成することで、DAQmxプログラムを構築できます。
![DAQアシスタントExpress VI](https://i0.wp.com/www.peritec-si.com/wp/wp-content/uploads/labview-daqmx_20.png?resize=96%2C200&ssl=1)
DAQアシスタントExpress VI については次の章で詳しく説明します。
DAQmx上級関数
DAQmx上級関数では、タイミングやタスク管理など、高度なプログラミング関数が用意されています。
DAQmx Real-Time VIおよび関数
Real-Time操作の構成および実行には、DAQmx Real-Time VIおよび関数を使用します。
![DAQmx Real-Time VIおよび関数](https://i0.wp.com/www.peritec-si.com/wp/wp-content/uploads/labview-daqmx_21.png?resize=408%2C155&ssl=1)
DAQmxデバイス構成VIおよび関数
DAQmxデバイス構成VIおよび関数を使用して、ハードウェア特有の構成および制御を行います。
![DAQmxデバイス構成VIおよび関数](https://i0.wp.com/www.peritec-si.com/wp/wp-content/uploads/labview-daqmx_22.png?resize=278%2C249&ssl=1)
DAQmx上級タスクオプションVIおよび関数
DAQmx上級タスクオプションVIおよび関数をタスクの上級構成および制御に使用します。
![DAQmx上級タスクオプションVIおよび関数](https://i0.wp.com/www.peritec-si.com/wp/wp-content/uploads/labview-daqmx_23.png?resize=536%2C340&ssl=1)
DAQmx上級VIおよび関数
Real-Time操作の構成および実行には、DAQmx Real-Time VIおよび関数を使用します。
![DAQmx上級VIおよび関数](https://i0.wp.com/www.peritec-si.com/wp/wp-content/uploads/labview-daqmx_24-1024x149.png?resize=1024%2C149&ssl=1)