サンプルプログラム
- 更新日2023-07-12
- 18分で読める
サンプルプログラム
NI-DMMのサンプルプログラムの場所については、『NI-DMM Readme』を参照してください。
次のサンプルプログラムは、DMMの主な機能を紹介するために用意されたものです。そのまま使用したり、システムに組み込んで使用したりすることができます。以下のADE用のサンプルプログラムが用意されています。
- LabVIEW 8.2.1以降
- LabWindows/CVI 7.1.1以降
- Visual C/C++ 6.0以降
- Visual Basic 6.0以降
NI製DMMモジュールとNI製スイッチモジュールの両方を使用しているサンプルプログラムについては、NI Developer Zone Webサイトを参照してください。
単一測定
DMMを使用した特定タイプの測定法を説明しています。レンジおよび分解能のデフォルト値は測定タイプに合わせてカスタマイズされています。各サンプルプログラムには、「niDMM初期化」、「niDMM測定を構成」、「niDMM読み取り」、「niDMM閉じる」関数の呼び出しが含まれています。サンプルプログラムによっては、これら以外の関数呼び出しも含まれています。たとえば、DC測定は電源周波数を設定します。AC測定は、AC帯域幅を設定します。
Measure DC Voltage
単一のDC電圧測定を集録します。入力信号のレンジおよび絶対分解能、およびシステムの電源周波数を指定します。測定値は測定表示器に表示されます。ブール表示器は測定値がレンジ外であるかどうかを示します。
Measure AC Voltage
単一のAC電圧測定を集録します。入力信号のレンジ、絶対分解能、帯域幅を指定してください。測定値は測定表示器に表示されます。ブール表示器は測定値がレンジ外であるかどうかを示します。
Measure DC Current
単一のDC電流測定を集録します。入力信号のレンジおよび絶対分解能、およびシステムの電源周波数を指定します。測定値は測定表示器に表示されます。ブール表示器は測定値がレンジ外であるかどうかを示します。
Measure AC Current
単一のAC電流測定を集録します。入力信号のレンジ、絶対分解能、帯域幅を指定してください。測定値は測定表示器に表示されます。ブール表示器は測定値がレンジ外であるかどうかを示します。
Measure Resistance (2線式および4線式)
単一の抵抗測定を集録します。測定タイプを2線式または4線式抵抗測定に設定します。入力信号のレンジおよび絶対分解能、およびシステムの電源周波数を指定します。測定値は測定表示器に表示されます。ブール表示器は測定値がレンジ外であるかどうかを示します。
Measure Frequency (NI 4065はサポートされていません)
単一の周波数および周期測定を集録します。入力信号の最低予想測定 (Hzまたは秒) または最大振幅を指定してください。測定値は測定表示器に表示されます。ブール表示器は測定値がレンジ外であるかどうかを示します。
Diode Test
単一のダイオード測定を集録します。入力信号のレンジおよび絶対分解能、およびシステムの電源周波数を指定します。NI 4065およびNI 4070/4071/4072デバイスでは電流ソースを構成可能です。測定値は測定表示器に表示されます。ブール表示器は測定値がレンジ外であるかどうかを示します。
DMM Measurement
NIデジタルマルチメータを使用して単一測定を集録します。測定関数およびレンジを選択します。分解能を精度数値で指定します。測定値は測定表示器に表示されます。ブール表示器は測定値がレンジ外であるかどうかを示します。
Measure Capacitance (NI 4072のみ)
単一のキャパシタンス測定を集録します。入力信号のレンジおよび平均を計算する測定数を指定します。測定値は測定表示器に表示されます。ブール表示器は測定値がレンジ外であるかどうかを示します。
Measure Inductance (NI 4072のみ)
単一のインダクタンス測定を集録します。入力信号のレンジおよび平均を計算する測定数を指定します。測定値は測定表示器に表示されます。ブール表示器は測定値がレンジ外であるかどうかを示します。
複数ポイント測定
「niDMM複数ポイントを構成」を使用する方法を示します。即時トリガのみを使用しています。
Acq&Graph Multiple Samples
複数の測定値を集録します。測定関数、レンジ、および絶対分解能を選択してください。集録するサンプル数を指定してください。「niDMM読み取り」により、希望したポイント数が集録されます。データは波形グラフで表示されます。
Cont Acq&Chart Multiple Samples
連続集録を実行します。測定関数、レンジ、および絶対分解能を選択してください。「niDMM開始」により集録が始まります。要求されたサンプルが、ループ内の「niDMM複数ポイントをフェッチ」を使用して返されます。データは波形チャートで表示されます。集録は停止をクリックすると停止します。
トリガ集録
測定値集録でトリガを使用する方法を示します。
Acq One Sample-Ext Trig
外部トリガが検出された場合に単一測定を集録します。測定関数、レンジ、および絶対分解能を選択します。トリガソースおよびトリガと測定間の遅延時間を指定します。測定値は測定表示器に表示されます。ブール表示器は測定値がレンジ外であるかどうかを示します。
Acq Multiple Samples-Ext Trig
有限数の測定を集録します。この集録は、特定のトリガソースにトリガが検知されたときに開始されます。すべてのポイントでは、トリガなしに集録を行います。測定関数、レンジ、絶対分解能、および電源周波数を選択します。トリガソースおよび集録するサンプル数を指定します。「niDMM複数ポイント読み取り」が、要求された数のサンプルをフェッチします。
Acq Multiple Samples-Ext Sample Trig
有限数の測定を集録します。初回の測定はトリガを必要としませんが、その後の測定はサンプリングトリガソースでトリガが検知された場合に集録されます。測定関数、レンジ、絶対分解能、および電源周波数を選択します。サンプリングトリガソースおよび集録するサンプル数を指定します。「niDMM複数ポイント読み取り」が、要求された数のサンプルをフェッチします。
Cont Acq Multiple Samples-Ext Trig-Ext Sample Trig
複数の測定値を連続的に集録します。指定されたエッジに基づき、ソースでトリガが検知された場合に測定値を集録します。測定関数、レンジ、絶対分解能、および電源周波数を選択します。トリガ/サンプリングトリガソースと一度に集録するサンプル数を指定してください。「niDMM複数ポイントの読み取り」は、使用できるポイント数か希望したポイント数のどちらか大きい数のサンプルをフェッチします。
Cont Acq Multiple Samples-SW Sample Trig
連続集録を実行します。各サンプルはソフトウェアトリガによりトリガされます。機能、レンジ、分解能を設定してください。「ソフトウェアトリガを送信」関数が呼び出されるたびに、フェッチによって測定が集録され、波形グラフで表示されます。停止をクリックすると集録は停止します。
Acq Multiple Samples-Interval Sample Trig
複数の測定値を連続的に集録します。初回の測定値はトリガなしで集録されます。その後は、「ソフトウェアトリガを送信」関数が呼び出されるたびに測定値が集録されます。測定関数、レンジ、絶対分解能、電源周波数を選択してください。
上級サンプルプログラム
これらのサンプルプログラムは、NI 4080/4081/4082およびNI 4070/4071/4072の上級機能を示します。
Improve Stability with Auto Zero (LV、CVIのみ)
オートゼロは、内部DMMオフセットを除去することで測定の安定性を向上します。このサンプルプログラムは、DC電圧または抵抗測定を集録し、測定値をユーザに返します。
計測器デスクリプタを指定した後、関数、レンジ、および分解能を選択します。「オートゼロ」を有効/無効に設定し、測定値に違いがあるか確認してください。
Eliminate V offsets with OCO (LV、CVIのみ)
「オフセット補正抵抗」を使用すると、オフセット電圧が存在する状態で抵抗を測定できます。「オフセット補正抵抗」は10 kΩ未満の抵抗測定に有用です。このサンプルは2線式または4線式抵抗測定を集録します。計測器デスクリプタを指定した後、関数、レンジ、および分解能を選択します。「オフセット補正抵抗」をオンにすると、この機能が有効になります。
Improve DC Resolution(LV、CVIのみ)
測定における低周波数ノイズを除去するには、アパーチャ遅延を1/f (f =ノイズ周波数) に設定します。複数測定の値を平均すると、分解能をさらに改善できます。DC電圧の複数測定を集録します。計測器デスクリプタを指定した後、関数とレンジを選択します。
安定した既知の電圧を入力する、または入力端子 (HI、LO) を短絡します。アパーチャ遅延に100 msを指定し、平均数を8に設定します。分解能が表示されていることを確認します。平均値を「1」に変更し、分解能が低下することを確認します。
Improve DC Noise Rejection (LV、CVIのみ)
単一測定を構成するサンプルの重み付けを多様化することで、入力ノイズの低減が可能です。「DCノイズ除去」プロパティはサンプルの重み付けを制御します。測定から除去される信号周波数は、選択したアパーチャ遅延に関連付けられています。
DC電圧の測定を集録します。VI中の一番上のグラフは測定を表示します。2番目のグラフは、入力信号の理論上ノイズ除去/周波数のプロットを表示します。
- 添付のテストリード線を入力に接続し、そのリード線を電源コードの付近に置きます。
- 計測器デスクリプタを指定した後、100 mVレンジを選択します。
- アパーチャ遅延は「10 ms」を選択します。
- 「DCノイズ除去 (DCNR)」を「標準」に設定します。
- 表示されたノイズを確認します。
- アパーチャ遅延を16.67 ms(60 Hz電源用)または20 ms(50 Hz電源用)にして繰り返します。
- 100 msアパーチャ遅延および高次DCNRを選択します。
- 表示されたノイズに違いがあるか確認します。
LC Cable Comp Load and Measure (NI 4072のみ)
ケーブル補正は、システムから浮遊容量 (開放補正) および浮遊インダクタンス (短絡補正) を除去することでキャパシタンス/インダクタンスの確度を改善します。このサンプルプログラムは、ファイルからの補正値の取り込み方法、構成済み測定の電流ソース周波数に基づいた正しい補正値の選択方法を示しています。
LC Cable Comp Measure and Save (NI 4072のみ)
ケーブル補正は、システムから浮遊容量 (開放補正) および浮遊インダクタンス (短絡補正) を除去することでキャパシタンス/インダクタンスの確度を改善します。このサンプルプログラムは、すべての電流ソース周波数の補正値を取得して保存する方法、および構成済み測定の電流ソース周波数に基づいた正しい補正値の選択方法を示しています。
LC Cable Compensation (NI 4072のみ)
ケーブル補正は、システムから浮遊容量 (開放補正) および浮遊インダクタンス (短絡補正) を除去することでキャパシタンス/インダクタンスの確度を改善します。このサンプルプログラムは、ファイルから補正値の取り込みまたはファイルへの保存方法、構成済み測定の電流ソース周波数に基づいた正しい補正値の選択方法を示しています。
セルフキャリブレーション
このサンプルプログラムは、セルフキャリブーレーションの実行方法およびNI 4070/4071/4072からキャリブレーション情報の検索方法を示します。セルフキャリブレーションの推奨周期についてはドキュメントを参照してください。このサンプルでは、セルフキャリブレーション動作は、この動作が実行された時点の速度を表示します。キャリブレーション情報には、DMMで最後にキャリブレーションを実行した日付と温度が保存されます。この情報をデバイスの現在の温度(システムの周囲温度と違うことが多い)と一緒に使用し、セルフキャリブレーションを行う必要があるかどうかを決定できます。このサンプルではセルフキャリブレーションの時間を計り、結果を表示します。「niDMMセルフキャリブレーション」の実行には約60秒かかります。
波形集録
以下のサンプルプログラムは、NI 4070/4071/4072を高電圧絶縁デジタイザとして使用可能にするNI-DMM波形集録関数を示しています。
Read & Graph Waveform (LV、CVIのみ)
波形を集録します。波形集録の機能、レンジ、サンプリングレート、および波形中のポイント数を選択します。「niDMM波形の読み取り」を使用して、要求された波形を集録します。データは波形グラフで表示されます。
Fetch & Graph Waveform (LV、CVIのみ)
「niDMM波形をフェッチ」を複数回、反復して波形を集録します。波形集録の機能、レンジ、サンプリングレート、集録するポイント数、および1度にフェッチするサンプル数を選択します。要求されたサンプルは、ループ内で「niDMM波形をフェッチ」を使用して返されます。ループ内の各反復で取得されたデータは波形グラフに表示されます。停止ボタンを押すと、集録は停止します。
Triggered Waveform(LV、CVIのみ)
このサンプルプログラムは、トリガによって開始された波形集録を実行します。波形集録の機能、レンジ、サンプリングレート、および波形のポイント数を選択します。「niDMM波形をフェッチ」を使用して、要求されたサンプルが返されます。データは波形グラフで表示されます。
Waveform Demo (LVのみ)
このデモは入力波形を集録し、表示します。計測器デスクリプタを入力し、実行ボタンをクリックします。実行中に、ディビジョンあたりの電圧およびタイムベースを調整できます。
NI-DMMでシミュレーションフラグを使用して、NI 4070/4071/4072の波形集録モードをシミュレーションできます。
タイムベース設定によって計測器の集録レートが決まります。集録レート表示器はタイムベース設定の変更にともない変化します。
サンプルプログラムのサブルーチンは集録データを解析し、信号における最初の正のゼロ交差を検索します。ルーチンでゼロ交差が見つかった場合、(10×タイムベース秒) の波形が表示されます。解析で正のゼロ交差が検知されない場合、グラフには集録バッファの最初からのデータが表示されます。
このサンプルプログラムおよびそのブロックダイアグラムソースは、NI-DMMサンプルプログラムの「波形集録」フォルダに保管されています。
性能に関するサンプルプログラム
以下のサンプルプログラムは、NI 4070/4071/4072のDC読み取り速度仕様を示します。
Achieving 7 Digits of Resolution (LV、CVIのみ)
複数サンプルの平均を計算することで7桁の分解能を取得する方法を示します。NI 4070/4071/4072のHI端子とLO端子の間に短絡を接続します。デバイスの入力デスクリプタを指定します。サンプルプログラムを実行します。DC電圧測定が選択したレンジで集録されます。測定値はグラフで表示されます。分解能の有効桁数は、過去100回の測定を基に算出され、表示器に表示されます。読み取り速度も表示されます。終了をクリックすると、集録が終了します。アパーチャ遅延、平均数、キャリブレーション設定を変更することができます。VIを実行して特定の構成における分解能の有効桁数および秒あたりの読み取り値を表示します。平均の数が1より多い場合は、オートゼロをONに設定する必要があります。
Max DC Reading Rate at 7.5 Digits
NI 4071で7½桁の分解能で、読み取りレートを上げる方法を示します。NI 4071のHI端子とLO端子の間に短絡を接続します。デバイスの入力デスクリプタを指定します。サンプルプログラムを実行します。DC電圧測定が選択したレンジで集録されます。測定値はフロントパネルのチャートに表示されます。読み取り速度は表示器に表示されます。終了をクリックすると、集録が終了します。
このサンプルプログラムは、7½桁分解能でより速い読み取り速度を実現するために、NI 4071を7½桁で測定するように構成して、ADCキャリブレーションをオフにし、直接オートゼロをONに、平均の数を「4」に、アパーチャ遅延を「1電源周期 (PLC)」に構成します。
Maximizing DC Reading Rates (LV、CVIのみ)
アパーチャ遅延を指定してNI 4070/4071/4072のDC読み取りレートを最大化する方法を示します。通常、DMMは指定の分解能を実現するアパーチャ遅延を自動で選択しますが、このサンプルプログラムでは、アパーチャ遅延を手動で設定します。集録した測定はノイズのない分解能の桁数を計算するために使用されます。
ほとんどの従来型DMMでは、固定表示にあるADCの性能を定義するノイズの「数」をもとに分解能の桁数を指定します。保守的な方法を使用する場合は、ノイズのない桁数を基に有効分解能を計算します。このサンプルプログラムの計算を参考にして、実際の測定値を基に特定の測定設定および条件に合ったアパーチャ遅延を決めることができます。
- NI 4070/4071/4072のHI端子とLO端子の間に短絡または非常に安定した入力信号を接続します。
- デバイスの計測器デスクリプタを指定します。
- 希望の関数とレンジを選択します。
- 推奨アパーチャ遅延設定の表を使用して、アパーチャ遅延を選択します。
- サンプルプログラムを実行します。
- 終了をクリックして、集録を終了します。
測定値および読み取り速度は2つの表示器で表示されます。ノイズのない桁数の値は、過去100回の測定を基に算出され、表示器に表示されます。
このサンプルプログラムを使用して、アプリケーションに最適な、速度とノイズ間のトレードオフを見つけます。短絡入力での10 Vレンジでは、3.33 msアパーチャ遅延で290回読み取り/秒の速度で6½桁の分解能になります。アパーチャ遅延を10 msに増加させると、約6.7桁の分解能で約100回/秒で読み取ります。
アパーチャ遅延を100 msに変更することで、分解能は6.8桁近くになります。これは、その他のノイズソース (感度レンジでの特定フロントエンドノイズ、環境ノイズ、検査対象デバイスによるノイズ) を加算する前のDMMの特定性能機能です。
1 MΩ抵抗と10 msのアパーチャ遅延を使用して抵抗を測定してみてください。その際、抵抗はNI 4070/4071/4072に付属する標準の非シールドテストリード線で接続してください。おそらく、この高インピーダンステストセットアップは、環境に存在する電源周波数ノイズにより妨害されます。10 msはラインサイクル (50または60 Hz) の倍数でないため、DMMは環境ノイズを除去しません。これはノイズなし分解能表示器に表示される値からわかります。アパーチャ遅延を16.66 ms (北米外の 50 Hzライン周波数では20 ms) に変更することで、ノイズのない有効分解能は大幅に改善されます。アパーチャ遅延を100 msにすると、さらに良い結果が得られます。