---
title: プログラミングコース03 電源・デジタルマルチメータ計測
tags: 
author: [株式会社ペリテック](https://www.docswell.com/user/Peritec)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/PJR999N579.jpg?width=480
description: プログラミングコース03の解説つきスライドです。 是非テキストや動画（Youtube）と併用ください。
published: April 30, 26
canonical: https://www.docswell.com/s/Peritec/5GNL9J-programming_course03
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/PJR999N579.jpg)

プログラミングコース
P03 電源・デジタルマルチメータ計測
デジタルマルチメータを使用した
計測プログラミングを学ぶ
（GP-IB Interface）
株式会社ペリテック


# Page. 2

![Page Image](https://bcdn.docswell.com/page/PEXQQQNXJX.jpg)

本コースで習得すべき内容
① 一般的に広く使用されているデジタルマルチメータは、NIからLabVIEWドライバが
標準関数として提供されている。このドライバの使用方法を習得して、電圧計測・
電流計測・抵抗計測のLabVIEWプログラムが作成できるようになること。
② 電源のLabVIEWドライバ入手方法を学ぶこと。入手後、ドライバを使用して電源を
制御するLabVIEWプログラムが作成できるようになること。
③ NIが推奨しているキューメッセージハンドラ（生産者／消費者デザインパターン）を
使用してLabVIEWプログラムが作成できるようになること。
④ 表制御器、波形チャートを使用して計測データの数値表示・グラフ表示を行う
LabVIEWプログラムが作成できるようになること。
⑤ 計測結果のファイル保存、ファイル読込みのLabVIEWプログラムが作成できるよ
うになること。
※ NI＝米国ナショナルインスツルメンツ社


# Page. 3

![Page Image](https://bcdn.docswell.com/page/3EK999N9ED.jpg)

本コースでプログラミングを学ぶシステム構成
電源
GPIB-USB
ノートPC
デジタル
マルチメータ
GPIBケーブル


# Page. 4

![Page Image](https://bcdn.docswell.com/page/L73WWWV975.jpg)

本コースで作成するプログラムの機能
① 電源の出力電圧をデジタルマルチメータで計測して出力電圧値と計測電圧値をグラフと一覧表に表示
するプログラムを作成する。
② キューメッセージハンドラ（生産者／消費者デザインパターン）を使用する。
③ 開始電圧（小数点2桁）・終了電圧（小数点2桁）・増分電圧（小数点2桁）が設定できること。
④ 電圧を出力したあとに電圧の計測を実行するまでの待ち時間がミリ秒単位で設定できること。
⑤ 計測No、出力電圧（小数点2桁） 、計測電圧（小数点3桁） を一覧表に表示すること。
⑥ 計測電圧を波形チャートに表示すること。
⑦ 計測の中断ができること。（再開できなくてよい。）
⑧ 一覧表のデータがファイル保存（csvファイル形式：カンマ区切り）できること。
⑨ 保存したファイルを読み込んで一覧表と波形チャートに表示できること。


# Page. 5

![Page Image](https://bcdn.docswell.com/page/87DKKK88JG.jpg)

本コースで配布するプログラムの画面設計


# Page. 6

![Page Image](https://bcdn.docswell.com/page/VJPKKK8WE8.jpg)

Step①電源制御ドライバを入手する。
①（例）日本ナショナルインスツ
ルメンツHPで”E3631A Driver”を
検索する
②LabVIEW Driverをダウン
ロードする。


# Page. 7

![Page Image](https://bcdn.docswell.com/page/2EVVVVN9EQ.jpg)

Step②サンプルVIで電源の動作を確認する。
ダウンロードしたDriverのプロジェクト
をLabVIEWで読み込んでサンプルVI
を選択して表示する。
NI MAXを起動してGPIBアドレスを確
認後、動作を確認する。


# Page. 8

![Page Image](https://bcdn.docswell.com/page/57GLLLK4EL.jpg)

Step③電源制御ドライバVIを作成する。
E3631A Driver.vi
サンプルVIを改造してドライバVIを作成する。
列挙体をタイプ定義に指定して以下の処理に
分割する。（右図：ダイアグラム参照）
１．initialize
２．output
３．stop
４．close
サンプルVIを分割してドライバVIを作成する理由：
毎回初期化 ～ クローズを実行しないようにして処理速度を速くするため。


# Page. 9

![Page Image](https://bcdn.docswell.com/page/4EQYYYNRJP.jpg)

Step④サンプルVIでDMMの動作を確認する。
34401のサンプルを検索して表示する。
NI MAXを起動してGPIBアドレスを確
認後、動作を確認する。


# Page. 10

![Page Image](https://bcdn.docswell.com/page/KJ4WWWGQ71.jpg)

Step⑤DMM制御ドライバVIを作成する。
34401A Driver.vi
サンプルVIを改造してドライバVIを作成する。
列挙体をタイプ定義に指定して以下の処理に
分割する。（右図：ダイアグラム参照）
１．initialize
２．measurement
３．close
サンプルVIを分割してドライバVIを作成する理由：
毎回初期化 ～ クローズを実行しないようにして処理速度を速くするため。


# Page. 11

![Page Image](https://bcdn.docswell.com/page/LE1YYYDL7G.jpg)

Step⑥CSVファイル保存VIを作成する。
ファイルパスと計測結果（一覧表）を入力パラメータとし
て、年月日_時分秒.csvというファイル名で保存するVI
を作成する。
sub csv file save.vi


# Page. 12

![Page Image](https://bcdn.docswell.com/page/GEWGGGYQJ2.jpg)

Step⑦CSVファイル読込VIを作成する。
ファイルパスを入力パラメータとして、計測結果
とグラフ表示データを読み込むVIを作成する。
sub csv file read.vi


# Page. 13

![Page Image](https://bcdn.docswell.com/page/47ZLLLX3J3.jpg)

Step⑧生産者／消費者デザインパターンでメインVIを作成する。


# Page. 14

![Page Image](https://bcdn.docswell.com/page/YJ6WWW4ZJV.jpg)

Step⑨キューで送信するメッセージを列挙定数で作成する。
配付するプログラムは、以下のように処理を分割し
て作成しました。
①Initialize 1：初期化処理①
②Initilalize 2：初期化処理②
③wait ：idle loop
④csv save ： 計測データ保存処理
⑤csv read ：計測データ読み込み処理
⑥34401A VISA ：VISA I/F 変更処理
⑦E3631A VISA ： VISA I/F 変更処理
⑧measurement ：計測処理
⑨measurement_stop ：計測停止処理
⑩exit : プログラム終了処理


# Page. 15

![Page Image](https://bcdn.docswell.com/page/GJ5MMMQ9J4.jpg)

Step⑩生産者ループのイベント処理を作成する。
配付するプログラムは、以下のように
イベント処理を作成しました。
それぞれ列挙定数で作成した項目を選
択してキューに要素を追加します。
①CSV保存ボタン：値変更
②CSV読込ボタン：値変更
③計測開始ボタン：値変更
④停止ボタン：値変更
⑤Exitボタン：値変更
⑥34401A VISA ：値変更
⑦E3631A VISA ：値変更


# Page. 16

![Page Image](https://bcdn.docswell.com/page/9E2999P57R.jpg)

Step⑪消費者ループ：initialize 1を作成する。
スタックシーケンス0：
プログラム終了時、ファイルに保存し
た画面設定データを読み込んで再現
する処理を作成しています。
スタックシーケンス1：
E3631A電源ドライバと34401A
DMMドライバの初期化処理を作成し
ます。正常に初期化できない場合は
エラーメッセージを表示するようにし
ています。


# Page. 17

![Page Image](https://bcdn.docswell.com/page/D7Y44456EM.jpg)

Step⑫消費者ループ：initialize 2を作成する。
initialize 2：以下の初期化を行います。
計測結果一覧表、表示位置、波形チャート、計測開始ランプ
開始電圧（シフトレジスタ）、計測回数（シフトレジスタ）


# Page. 18

![Page Image](https://bcdn.docswell.com/page/VENYYY41J8.jpg)

Step⑬消費者ループ：csv_saveを作成する。
csv_save：sub csv file save.viを配置します。


# Page. 19

![Page Image](https://bcdn.docswell.com/page/Y79PPPQYE3.jpg)

Step⑭消費者ループ：csv_readを作成する。
csv_read：sub csv file read.viを配置します。
計測結果の表示位置、波形チャートを初期化してからデータを表示します。


# Page. 20

![Page Image](https://bcdn.docswell.com/page/G78DDDGK7D.jpg)

Step⑭消費者ループ：csv_readを作成する。（つづき）
csv_read：sub csv file read.viを配置します。
計測結果の表示位置、波形チャートを初期化してからデータを表示します。


# Page. 21

![Page Image](https://bcdn.docswell.com/page/L7LMMMGPJR.jpg)

Step⑮消費者ループ：measurementを作成する。
measurement：電圧出力、待ち時間、電圧計測、グラフ表示、計測結果表示をスタック
シーケンスで配置しています。
増分電圧の計算と終了の判断（sub output volt.vi）、一覧表スクロールの
処理（sub index value.vi）、計測回数＋１の処理も行っています。


# Page. 22

![Page Image](https://bcdn.docswell.com/page/4EMYYYQ2EW.jpg)

Step⑮消費者ループ：measurementを作成する。（つづき①）
measurement：電圧出力、待ち時間、電圧計測、グラフ表示、計測結果表示をスタック
シーケンスで配置しています。
増分電圧の計算と終了の判断（sub output volt.vi）、一覧表スクロールの
処理（sub index value.vi）、計測回数＋１の処理も行っています。


# Page. 23

![Page Image](https://bcdn.docswell.com/page/PER99985J9.jpg)

Step⑮消費者ループ：measurementを作成する。（つづき②）
measurement：電圧出力、待ち時間、電圧計測、グラフ表示、計測結果表示をスタック
シーケンスで配置しています。
増分電圧の計算と終了の判断（sub output volt.vi）、一覧表スクロールの
処理（sub index value.vi）、計測回数＋１の処理も行っています。


# Page. 24

![Page Image](https://bcdn.docswell.com/page/P7XQQQ8XEX.jpg)

Step⑮消費者ループ：measurementを作成する。（つづき③）
measurement：電圧出力、待ち時間、電圧計測、グラフ表示、計測結果表示をスタック
シーケンスで配置しています。
増分電圧の計算と終了の判断（sub output volt.vi）、一覧表スクロールの
処理（sub index value.vi）、計測回数＋１の処理も行っています。


# Page. 25

![Page Image](https://bcdn.docswell.com/page/37K999K97D.jpg)

Step⑮消費者ループ：measurementを作成する。（つづき④）
measurement：電圧出力、待ち時間、電圧計測、グラフ表示、計測結果表示をスタック
シーケンスで配置しています。
増分電圧の計算と終了の判断（sub output volt.vi）、一覧表スクロールの
処理（sub index value.vi）、計測回数＋１の処理も行っています。


# Page. 26

![Page Image](https://bcdn.docswell.com/page/LJ3WWWZ9J5.jpg)

Step⑯消費者ループ：measurement_stopを作成する。
measurement_stop：電圧出力停止を配置しています。
Exitボタン有効、計測ランプと計測開始ボタンの初期化も行っています。


# Page. 27

![Page Image](https://bcdn.docswell.com/page/8JDKKKR8EG.jpg)

Step⑰消費者ループ：exitを作成する。
exit：電圧 Driver CloseとDMM Driver Closeを配置しています。
消費者ループを終了（While Loopの条件にTrueを接続）させています。


# Page. 28

![Page Image](https://bcdn.docswell.com/page/VEPKKKWW78.jpg)

Step⑱消費者ループ：34401A VISAを作成する。
34401A VISA：DMM Driver closeを実行後、initializeを配置してVISA resourceの
シフトレジスタを初期化しています。


# Page. 29

![Page Image](https://bcdn.docswell.com/page/27VVVV897Q.jpg)

Step⑲消費者ループ：E3631A VISAを作成する。
E3631A VISA：電源 Driver closeを実行後、initializeを配置してVISA resourceの
シフトレジスタを初期化しています。


# Page. 30

![Page Image](https://bcdn.docswell.com/page/5JGLLL547L.jpg)

Step⑳サブVIの説明 （sub array data.vi）
測定回数、出力電圧、測定電圧を入力パラメータとして一覧表に表示する一行分の
計測データ配列（文字列配列）を作成しています。


# Page. 31

![Page Image](https://bcdn.docswell.com/page/47QYYYZREP.jpg)

Step⑳サブVIの説明 （sub graph data.vi）
出力電圧、計測電圧を入力としてグラフに表示する配列データを作成しています。


# Page. 32

![Page Image](https://bcdn.docswell.com/page/KE4WWW3QJ1.jpg)

Step⑳サブVIの説明 （sub index value.vi）
現在行、設定行、制御器refnumを入力パラメータとして現在行が設定行を超えた
場合に一覧表を垂直スクロールさせています。


# Page. 33

![Page Image](https://bcdn.docswell.com/page/L71YYY1LJG.jpg)

Step⑳サブVIの説明 （sub output volt.vi）
出力電圧、増分電圧、終了電圧を入力パラメータとして次の出力電圧の算出と
計測終了のチェックを行っています。


# Page. 34

![Page Image](https://bcdn.docswell.com/page/G7WGGG8QE2.jpg)

まとめとポイント
① GPIB接続の計測器
① NI MAXの計測器スキャンを実行すればGPIBアドレスと機種名が確認できる。
② ダウンロードした計測器ドライバ
① LabVIEWのInstr.libへ入れて、関数パレットに表示できる。
③ ドライバVIの作り方
① Initialize→Measure→Closeにcase分割すれば他の計測器及びNI製品でも同じ。
② NI製DMMのドライバ作成については、【付録.１】を参照のこと。
④ メインVIの作り方
① キューメッセージハンドラ（生産者／消費者デザインパターン）を使用する。
② キューで送信するメッセージは列挙定数をタイプ定義して作成する。
⑤ CSVファイル保存
① ２次元の文字配列に変換すれば簡単にWrite／Readできる。
⑥ 画面の再現
① デフォルトデータディレクトリを利用する。


# Page. 35

![Page Image](https://bcdn.docswell.com/page/4JZLLL83E3.jpg)

付録．１ NI DMM サンプルVI
右図１～５の関数をInitialize→Measure→Close
にcase分割してドライバVIを作成すれば、
本コースのプログラムに組込むことができます。
また、case分割せずにそのまま組込んでも問題
ありません。
Measure DC Volts.vi


# Page. 36

![Page Image](https://bcdn.docswell.com/page/YE6WWWPZEV.jpg)

付録．２ NI DC Power サンプルVI
下図１～１４の関数をSetting &amp; Output→Reset &amp; Closeにcase分割してドライバVIを作成すれば、本コースのプロ
グラムに組込むことができます。
NI-DCPower Source DC voltage.vi


