labview 目次 第Ⅰ章 labview の基礎 3 例題1 labview 使用法基礎 3 例題2 while...

34
LabVIEW 使用マニュアル 兼例題テキスト 群馬工業高等専門学校 電子メディア工学科 (Last Revised: 2016/06)

Upload: doanngoc

Post on 11-May-2019

236 views

Category:

Documents


0 download

TRANSCRIPT

LabVIEW 使用マニュアル

兼例題テキスト

群馬工業高等専門学校 電子メディア工学科

(Last Revised: 2016/06)

2

目次

第Ⅰ章 LabVIEWの基礎 ............................................................................................. 3

例題1 LabVIEW使用法基礎 .................................................................................. 3

例題2 Whileループを用いた繰り返し実行 ............................................................ 7

例題3 ブール代数を用いた比較演算の使用 ............................................................ 9

例題4 Forループを用いた繰り返し実行 .............................................................. 11

例題5 配列へのデータ格納 ................................................................................... 13

例題6 グラフ表示器の使用法Ⅰ ............................................................................ 13

例題7 グラフ表示器の使用法Ⅱ ............................................................................ 17

例題8 ファイルへのデータの保存 ......................................................................... 19

例題9 ケースストラクチャを用いた条件分岐 ....................................................... 20

例題10 シーケンスストラクチャを用いた実行制御 ............................................ 21

第Ⅱ章 NI ELVISと LabVIEWを用いた基礎計測 ................................................... 22

例題11 電圧の測定Ⅰ ........................................................................................... 23

例題12 電圧の測定Ⅱ(複数電圧の測定) .......................................................... 25

例題13 電圧の生成(アナログ) ......................................................................... 27

例題14 電圧の生成(デジタル) ......................................................................... 29

例題15 交流信号の生成 ....................................................................................... 30

例題16 電流の測定 .............................................................................................. 31

第Ⅲ章 補足事項 ......................................................................................................... 32

例題17 グラフのリアルタイム表示 ..................................................................... 32

3

第Ⅰ章 LabVIEWの基礎 例題1 LabVIEW使用法基礎

(目的)

LabVIEW のプログラムを構成するフロントパネルとブロックダイアグラムの作成方法を

習得する.制御器と表示器について理解する.

図1.1 フロントパネル 図1.2 制御器パレット

図1.3 ブロックダイアグラム

図1.4 関数パレット

4

(説明)

1.フロントパネル(図1.1)

作成したプログラムを実行する画面.プログラムの動作に外部から影響を与える「制御

器」と,プログラムの実行結果を示す「表示器」からなる.これらのオブジェクトを追加

する場合は,メニューバーの「表示->制御器パレット」,もしくは右クリックにより,制

御器パレットを呼び出し,オブジェクトをクリックしたのちに,フロントパネル上で再ク

リックすることで配置される.

2.ブロックダイアグラム(図1.3)

プログラムを作成する画面.数値データ,演算ブロック,制御ブロック,測定器と連動

するブロック等の各ブロック間を配線することで,所望の動作を実現する.ブロックの追

加は,「表示->関数パレット」,もしくは右クリックにより,関数パレット(図1.4)を

呼び出して行う.画面上での配置方法はフロントパネルの時と同じ.

3.プログラムの作成例1(並列抵抗の自動演算プログラム)

(1) LabVIEW を立ち上げ,ウィンドウから[新規]-[ブランク VI]を選択し,空のプ

ロジェクトファイルを作成する.

(2) フロントパネル側で,制御器パレットから[モダン]-[数値]-[数値制御器]

を選択し,フロントパネル上に2つ配置する.その後,それぞれの制御器のラベル

を選択し,「R1」, 「R2」に変更する.

(3) 制御器パレットから,[モダン]-[数値]-[数値表示器]を選択し配置する.

その後に,ラベルを「R3」に変更する.

(4) ブロックダイアグラムウィンドウ側で,関数パレットから[プログラミング]-

[数値]-[積],[和],[商]をそれぞれ配置する.

(5) 各関数ブロックを適当に移動させ,図1.3のように配線する.関数ブロックの端

子付近にカーソルを近づけると,糸巻カーソル に変化し,配線を行うことが

可能となる.

(6) ブロックダイアグラム上にある,制御・表示器「R1」~「R3」を図1.3に示すよ

うに接続する.なお,[商]に関しては,左上の端子が「被除数」,左下の端子が

「除数」であることに注意する.今回は使わないが,[差],[剰余]に関しても同

様.

(7) フロントパネルを表示し,「R1」,「R2」に適当な抵抗値を入力する.

(8) ツールバーの[実行]ボタン(矢印アイコン)をクリックし,プログラムを実行す

る.実行終了後に表示器 R3 に和分の積「(R1*R2)/(R1+R2)」の値が表示されている

ことを確認する.

5

(9) ブロックダイアグラムウィンドウを表示し,[実行のハイライト]ボタン を押し

た後に,ブロックダイアグラムの[実行]ボタンを押し,データの流れを確認す

る.

4.プログラムの作成例2(フロントパネル上の LED 点灯プログラム)

(1) フロントパネル上に[モダン]―[ブール]-[垂直トグルスイッチ],および[円 LED]

を配置する.

(2) ブロックダイアグラムウィンドウで,垂直トグルスイッチブロックと,円 LED ブロ

ックを接続する.

(3) フロントパネル上で,実行ボタンの隣の連続実行ボタン(矢印がループになってい

るボタン)をクリックし,プログラムが永続的に実行される状態にする.

(4) 垂直トグルスイッチをクリックすることで,LED が点灯,消灯を繰り返すことを確

認する.

(5) 停止ボタン(メニューバーの赤丸ボタン)をクリックし,実行を停止する.

5.ツールパレット

図1.5のツールパレットで配線やオブジェクト操作の機能

を選択でき,それぞれに応じたカーソルの形になる.また,自

動ツール選択を ON にしておくと,カーソルの位置に応じて自動

的に変化する.

6.ショートカットキー

・ Ctrl+E:フロントパネルとブロックダイアグラムの表示切替

・ Ctrl+B:ブロックダイアグラムで壊れた配線を削除

・ Ctrl+R:プログラムの実行

・ Ctrl+H:詳細ヘルプの表示/非表示

・ Ctrl+T:フロントパネルとブロックダイアグラムを同時に表示

・ Shift+右クリック:ツールパレット呼び出し

図1.5 ツールパレット

6

7.データの型

データの型(どういう形式のデータがブロックダイアグラム上を流れるかを示す)は関

数ブロック枠の色や,配線の色,種類で区別できる.また配線の太さや数で配列の次元が

見分けられる.表1に主なデータ型を示す.

表1 データの種類

データ型 色 配線種

数値(整数) 青 実線

数値(浮動小数) オレンジ 実線

ブール値 緑 点線

文字列 ピンク 鎖線

7

例題2 Whileループを用いた繰り返し実行

(目的)

条件を満たすまで動作を繰り返し実行する While ループの使用方法を習得する.

(説明)

While ループは,ループ内に含まれるブロックを,停止条件を満たすまで繰り返し実行

する制御ブロック.停止条件の判定は内部ブロックの実行後に行われるため,While 文よ

りは Do-While 文に近い.ループ内の反復端子(図2.2左下の iが入っている青い四

角)には,実行回数が格納されており,ブロック内で繰り返し回数を数値情報として用い

たいときに利用できる.

図2.1 フロントパネル

条件端子:接続されたブロ

ックからの出力が True の場合

停止

条件端子:接続されたブロ

ックからの出力が False の場

合停止

反復端子:ループ回数参照

用ブロック

図2.2 ブロックダイアグラム

8

(例題)

1.プログラム作成(While ループを用いた継続的実行)

(1) 例題1のプログラムをコピーし別の名前を付けたのちに LabVIEW で開く.

(2) フロントパネルから垂直トグルスイッチを削除する.

(3) ブロックダイアグラムで,関数パレットから[プログラミング]-[ストラクチ

ャ]-[While ループ]を選択.

(4) プログラムを While ループ枠で囲む.

(5) 条件端子にカーソルを近づけ糸巻カーソルになったら,[右クリック]-[制御器

を作成]を選択しボタンを配置.

(6) フロントパネルに画面を切り替え,追加された停止ボタンを含めて,配置を整え

る.

(7) プログラムを実行(「連続実行」はしない)する.R1,R2 の値を変えて,それに連

動して R3 が変化することを確認する.

(8) 停止ボタンをクリックして,プログラムが終了することを確認する.

(課題)

(1) フロントパネルに新たに数値表示器を配置し,反復端子の値をフロントパネルから

確認できるように変更し,反復端子に繰り返し回数が格納されていることを確かめ

よ.なお,数値の切り替わりが早すぎて確認が難しい場合は,「次のミリ秒倍数ま

で待機」(関数パレット-[プログラミング]-[タイミング]-[次のミリ秒倍

数まで待機])を配置し,適当な数値を接続すること.

9

例題3 ブール代数を用いた比較演算の使用

(目的)

論理演算用のブロックを用い,数値情報からブール値を作成し,停止条件に使用する.

(説明)

「制御器,もしくは測定デバイスから得られた数値情報が一定の基準を満たした場合にプ

ログラムを停止させる」等の制御を行う場合,数値情報を論理演算用ブロック(~より大

きい,~以下,~と等しいなどの True か False かを出力するブロック)を使用する.

図3.1 フロントパネル

図3.2 ブロックダイアグラム

10

(例題)

1.プログラムの作成(抵抗値に負の数が入力されたときに停止する機構の実現)

(1) 例題2で作成した vi ファイルをコピーし,適当な名前を付ける.

(2) 例題2のブロックダイアグラムで,関数パレットから[プログラミング]-[比

較]―[以下?]を配置する.

(3) [以下?]の上側入力端子を[和]ブロックの出力と接続し,下側入力端子で[右ク

リック]-[作成]-[定数]で”0”を入力する.

(4) [停止]と条件端子の配線上で[右クリック]-[挿入]-[ブールパレット]-

[Or]を選択

(5) [Or]の入力端子と[以下?]の入力端子を接続する.これにより,「R1+R2 が

負」か「停止ボタンが押された」のどちらかの条件を満たした時に,プログラムが

停止する.この時点でブロックダイアグラムが図 3.2 と同じになっていることを確

認する.

(6) プログラムを実行したのちに,「R1+R2 が負」になるように抵抗値を入力し,プロ

グラムが停止することを確認する.その後,抵抗値の和が正になるように制御器の

入力を書き換えたのちに,プログラムを再実行し「停止ボタンが押す」ことによっ

てもプログラムが停止することを確認する.

※ 前述の通り,R1,R2 はゼロ以下の値も設定できてしまう.これを防ぐには,[R1]上

で[右クリック]-[プロパティ]-[データエントリ]タブ-[デフォルトの制限

を使用]のチェックをし,最小を例えば[0.001],範囲外の値の対応を[強制]とす

ることで,制御器に 0以下の数を入力できないように設定することも可能である.

(課題)

(1) 図3のようなフロントパネルで,「抵抗値」と「電圧値」を数値制御器から入力

し,「許容電力を超過した場合に」,LED が点灯するプログラムを作成せよ.抵抗の

容量は 1/4W とする.

図3.3 課題(1)のフロントパネル

抵抗値用数値制御器

電圧値用数値制御器

11

例題4 Forループを用いた繰り返し実行

(目的)

あらかじめ指定された回数,動作を繰り返し実行する for ループの使用方法を習得する.

(説明)

for ループは,ループ内に含まれるブロックを,あらかじめ指定された回数(for ループ

左上のカウント端子に接続された数)に達するまで,繰り返し実行する制御ブロックのこ

と.While 文が任意の論理ブロック,論理演算ブロックを条件とできるのに対し,停止条

件に制限が付いた形を取る.While 文と同様,ループ内の反復端子(図4.2左下の青四

角に i)には,実行回数が格納されており,ブロック内で繰り返し回数を数値情報として

用いたいときに利用できる.

図4.1 フロントパネル

図4.2 ブロックダイアグラム

12

(例題)

1.プログラムの作成(フロントパネルへの正弦関数の表示)

(2) 新規 vi ファイルを作成し,図 4.1,4.2 に示すようにフロントパネル,ブロックダ

イアグラム上にブロックを配置する.なお,初出のブロックは以下の位置から呼び

出すことができる.

メータ:制御器パレット-[モダン]-[数値]-[メータ]

For ループ:関数パレット-[プログラミング]-[ストラクチャ]-[For

ループ]

次のミリ秒倍数まで待機:関数パレット-[プログラミング]-[タイミン

グ]-[次のミリ秒倍数まで待機]

Sine:関数パレット-[数学]-[基本&特殊関数]-[三角関数]-

[Sine]

2π:関数パレット-[数学]-[数値]-[数学&科学定数]-[2π]

(3) プログラムを実行して,メータが±1の間を振動することを確認する.また,カウ

ント端子の値を変えて実行し,挙動の変化を確認する.

※ トンネル端子:ループの外側と内側でデータをやり取りするときの端子.ループの中

から外,もしくは外から中に値を渡したいときに使用する

(課題)

(1) 関数y = + + を計算し,数値表示器に表示するプログラムを作成し,x=0~5

において計算結果が正しく表示されていることを確認せよ.ただし,実係数 a,b は

フロントパネルから数値制御器を使って与えるものとする.

13

例題5 配列へのデータ格納

(目的)

測定データを表示するための配列の作成方法,およびデータ格納方法を習得する.

(説明)

LabVIEW ではフロントパネルの表示器を配列として扱うことができる(図 5.1).実際に

は任意の自然数次元の配列を作成可能であるが,表示という観点からは 1次元,もしくは

2次元の配列を使用することになる.

図5.1 フロントパネル

図5.2 ブロックダイアグラム

配列表示領域の拡張

14

(例題)

1.プログラムの作成

(1) 例題 4で作成した vi ファイルをコピーし,適当に名前を変更する.

繰り返し回数を 1000 から 10 に忘れずに変更しておくことを.

(2) 図 5.1 に従って,フロントパネルに 1次元数値配列,2次元数値配列を作成する.

数値配列の作成方法は,

① 制御器パレット-[モダン]-[配列]-[配列]をフロントパネル上に

配置

② 制御器パレット ―[モダン]-[数値]-[数値表示器]を選択し,配

列上にドロップ

③ 2 次元配列の場合は,ブロックダイアグラム側で配列ブロックを右クリッ

クしてプロパティを呼び出し,サイズタブを選択し,次元を 2に変更

④ フロントパネルで配列のサイズを適当に変更

(3) 図 5.2 に従って,ブロックダイアグラムを完成させる.なお,配列連結端子は,関

数パレット-[プログラミング]-[配列]-[配列連結端子]を配置し,縦方向

に拡張して使用する.

(4) プログラムを実行し動作を確認する.

※ 2 次配列でデータが格納される部分に注意する.行方向(0行と 1行)にそれ

ぞれ格納される.

※ 配列表示器の横の数字は配列の指標をあらわし,その指標のデータから表示

される.

※ 自動指標トンネルを使用すると,ループ実行毎に得られたデータを配列とし

て外に取り出せる.通常のトンネル(トンネルを右クリックで切り替え可

能)は最後のループ実行で得られたデータのみ取り出せる.トンネルの種類

の切り替えは,表示されているトンネル上で右クリック.

(課題)

(1) While ループを使って,例題5を書き換えてみる.(ヒント:停止条件は繰り返し

回数が 10 以上になる場合,なのでブール演算子と反復端子(i)を用いて条件変数

を作成する)

15

例題6 グラフ表示器の使用法Ⅰ

(目的)

集録したデータをグラフィカルに表示する方法を習得する. (説明)

LabVIEW で使用することができる主なグラフ表示器として,波形チャート,波形グラ

フ,XY グラフがある.使い分けは以下の通り.

・波形チャート:データの測定ごとにリアルタイムで表示する.横軸は時間で固定.

・波形グラフ:データを配列で受け取り,それを一度に表示する.横軸は時間で固定.

・XY グラフ:2次元配列(2行 N列)を受け取り,それを 2次元平面上に表示する.X

軸 Y軸の物理量は任意

図6.1 フロントパネル

図6.2 ブロックダイアグラム

16

(例題)

1.プログラムの作成

(1) 例題 5で作成した vi ファイルをコピーし,適当に名前を変更する.なお,2地毛

配列表示器はこの例題では使用しないので削除する.

(2) フロントパネルに波形チャートと波形グラフを配置する.

波形チャート,グラフ:[制御器パレット]-[モダン]-[グラフ]-

[波形チャート],[波形グラフ]

(3) ブロックダイアグラムを図 6.1 に従って接続する.

(4) 実行して,グラフの表示のされ方を確認する.

※ グラフの表示は,グラフ上で[右クリック]-[データの操作]-[チャー

トのクリア]でクリアされる.

※ 表示領域の変更は,直接グラフ上で数字を選択し変更する方法と,グラフ上

で[右クリック]-[プロパティ]-[スケール]で変更する方法の二つが

ある.

(課題)

(1) 波形チャートを For ループの外に出し,波形グラフと同じ配列データを接続する

とどうなるか確認せよ.

17

例題7 グラフ表示器の使用法Ⅱ

(目的)

グラフ表示器の一つ,XYグラフの使用方法を習得する. (説明)

XY グラフにデータを渡す時には,それぞれの配列をバンドル(束ねる)して XY グラフに

渡す.2次元配列表示の際に使用した配列連結とは異なることに注意する.

XY グラフ:制御器パレットから[モダン]-[グラフ]-[XY グラフ].

バンドル:[関数パレット]―[プログラミング]-[クラスタ]-[バンド

ル].

図7.1 フロントパネル

図7.2 ブロックダイアグラム

18

(例題)

1.プログラムの作成

(1) 図 7.1,7.2 に示すようにフロントパネル,およびブロックダイアグラムを作成

する.

(2) 実行して,XY グラフ上に線分の集合が表示されることを確認する.

(課題)

(1) 上記の例題のプログラムを以下の 2点について改良せよ(ヒント:for 分の繰り

返し回数とグラフ上にプロットされる点の数は一致している)

図形が閉じるようにする

図形がなめらかになるようにする(見た目が円に近くなるようにする)

※ 単一の XY グラフ表示器に複数の XY グラフを表示したい場合は,バンドルした XY デ

ータを配列連結して,表示器に渡す.(下図参照)

19

例題8 ファイルへのデータの保存(課題対象外)

(目的)

集録したデータのエクスポート(出力)方法について習得する. (説明)

測定データをレポート,論文等の図として活用する場合には,測定データをテキスト,も

しくはデータシートの形で保存する必要がある.LabVIEW において,測定データをファイ

ルに書き出す方法として以下の 2つを示す.

<方法1>(手動で保存する方法)

プログラム実行後,フロントパネルのグラフ表示器上で[右クリック]-[エクスポー

ト]-[データをクリップボードにエクスポート](操作後,Excel 等にペーストする必要

あり),または[データをエクセルにエクスポート](自動的に Excel が起動する).

<方法2>(自動的に保存する方法:図 8.1)

ブロックダイアグラムに記述する.X配列,Y配列を配列連結したのち,[スプレッドシ

ートに書き込む]にわたす.

・ スプレッドシートに書き込む:関数パレットから[プログラミング]-[ファイル

IO]-[スプレッドシートに書き込む]

・ [スプレッドシートに書き込む]の転置端子を True,デリミタ端子を”,”とす

る.

(課題)

上記のいずれか方法で,測定結果を Excel ファイルに保存し,そのデータを用いて

Excel のグラフ作成機能を使って円を描画せよ.

図8.1 ブロックダイアグラム

20

例題9 ケースストラクチャを用いた条件分岐

(目的)

条件によりプログラムの実行を変化させる方法を習得する. (説明)

プログラミング言語における If 文や Case 文と同様に,LabVIEW において内部条件(演

算,測定の結果から導かれる条件),外部条件(フロントパネルのスイッチが押された,

等の条件)により挙動を変更するには,ケースストラクチャを使用する.条件ごとに,ケ

ースセレクタラベルを切り替えて,対応するブロック図を作成する必要がある.

ケースストラクチャ:関数パレットから[プログラミング]-[ストラクチャ]

-[ケースストラクチャ]. (課題)

(1) 図 9.1,9.2 に 2 つの抵抗が直列・並列に接続された時の合成抵抗を演算し表示

するプログラムのフロントパネル,ブロックダイアグラムが示してある.ケース

ストラクチャの True 側(=抵抗が直列に接続された場合)のブロックダイアグ

ラムを追加することで,このプログラムを完成させよ.なお,True の選択はケー

スセレクタラベルをクリックしておこなえる.

図9.1 フロントパネル

図9.2 ブロックダイアグラム

21

例題10 シーケンスストラクチャを用いた実行制御

(目的)

プログラムの実行順序を厳密に指定する方法について習得する. (説明)

手続型プログラミング(C言語,Perl 等)では,セミコロン(;),もしくはキャリッ

ジリターンで区切られた順番で各文が実行される.シーケンスストラクチャは,LabVIEW

によるブロックダイアグラムの実行順序を,前述のプログラミング言語のように「明示的

に」制御する機構である.

※ 例題1のプログラムでは抵抗の計算と LED の点灯のどちらが先に実行されるかは確定

していない.LabVIEW では,ストラクチャ等により明示的な制御構造を持たない場合,デ

ータの依存関係によって実行順が決定づけられる.(すなわち,あるモジュールの入力が

確定するまで,そのモジュールの実行は行われない).これを利用して,測定用コンポー

ネントのエラー入出力を接続することで,実行制御を行うこともできる.詳細は後述.

(課題)

(1)図 10.1 に示すようなブロックダイアグラムを作成し,フロントパネルにおいて停

止ボタンを押してから約 3秒後に LED が点灯することを確認せよ.

フラットシーケンスストラクチャ-関数パレットから[プログラミング]-

[ストラクチャ]-[フラットシーケンスストラクチャ]

順次実行するブロックを追加するには,枠上で[右クリック]-[後にフレ

ームを追加]

遅延時間-関数パレットから[プログラミング]-[タイミング]-[遅延

時間].その後に遅延時間設定端子に適切な数値情報を接続すること.

図10.1 ブロックダイアグラム

22

第Ⅱ章 NI ELVISと LabVIEWを用いた基礎計測 (NI ELVIS とは?)

NI ELVIS(National Instruments Educational Laboratory Virtual Instrumentation Suite)は、オシロスコープ、デジタルマルチメータ、関数発生器、ボードアナライザなど、一般によく使用される 12種類の計測器を 1つのプラットフォームに統合した、授業や実験に最適な実践形式の設計・試作プラットフォームです。PC へは USB で接続しますので、計測値の集録や表示が手早く簡単に行えます。NI LabVIEWグラフィカルシステム設計ソフトウェアを使ってプログラミングしますので、柔軟性が高くアプリケーションのカスタ

マイズも可能です。NI ELVISは、NI Multisim作図・シミュレーション環境内で回路のシミュレーションと NI ELVIS計測器からの計測を結合させるもので、NI電子工学教育プラットフォームに欠かせない要素です。教育を念頭に置いて設計されている NI ELVIS は、回路設計から計測、制御、通信、組込/MCU理論など、あらゆる分野の指導に適した総合的なツールです。(National Instruments Webページより抜粋)

NI ELVISの使用することができる機能(下線部は工学実験で主として使用する機能) 1. Digital Multimeter 2. Oscilloscope 3. Function Generator 4. Variable Power Supply 5. Bode Analyzer 6. Dynamic Signal Analyzer 7. Arbitrary Waveform Generator 8. Digital Reader 9. Digital Writer 10. Impedance Analyzer 11. 2-wire Current-Voltage Analyzer 12. 3-wire Current-Voltage Analyzer

23

例題11 電圧の測定Ⅰ

(目的)

NI ELVISの使用方法,および単一の電圧測定方法について習得する. (説明)

LabVIEW の関数パレットには,「DAQ アシスタント」という測定機器とプログラムを仲介

する計測用の関数が用意されており,ブロックダイアグラムに組み込むことで,測定結果

をプログラム上に反映できる.この関数と NI ELVIS を用いて電圧の測定を行う.

(例題)

1.プログラム作成手順

(1) フロントパネルに波形チャートと数値表示器を配置する.

(2) ブロックダイアグラムに While ループ,「次のミリ秒倍数まで待機」を配置する.

(3) DAQ アシスタントを,関数パレットから[Express]-[入力]-[DAQ アシスタン

ト]とたどることで探し,配置する.配置後,設定ウィンドウが表示されるので,

以下のように設定を行う.

1. Express タスク作成ウィンドウで[信号を集録]-[アナログ入力]-[電

圧].

2. [Dev1(NI ELVISⅡ)]-[ai0]を選択し[終了].(場合によっては Dev1 の数

字箇所が異なる場合もあるが,そのまま設定して問題なし)

3. DAQ アシスタントウィンドウの集録モードを[1サンプル(オンデマンド)]

に変更し,[OK]をクリック.

(4) 測定したダイナミックデータを数値データに変換するモジュールを配置する.手順

は以下の通り.

1. ダイナミックデータからの変換:関数パレットから[Express]-[信号操

作]-[ダイナミックデータからの変換]または,DAQ アシスタントのデータ

端子で[右クリック]-[信号操作パレット]-[ダイナミック・・・].

2. ダイナミックデータ変換のデータタイプは[単一スカラ]を選択する.

図11.1 フロントパネル 図11.2 ブロックダイアグラム

24

2.回路接続手順

付属のキットに入っている太陽光パネルのプラス側を AI0+,マイナス側を AI0-,AI0

-と AIGND をそれぞれ接続する.図 11.3 参照のこと.マイナス側をグラウンド(

0V)と接続し忘れると,基準電圧がないため,電圧が正しく表示されないので注意.

図11.3 例題 11 回路図

(課題)

(1) 太陽光パネルからの出力電圧値が 1V を下回ったら LED を点灯させるプログラムを

追加する.(テキスト等で覆うと,概ね 1V を下回る)

25

例題12 電圧の測定Ⅱ(複数電圧の測定)

(目的)

複数の電圧値をプログラム内で扱う方法について習得する. (説明)

複雑な回路の計測を行う際には,回路上の複数点の電流,電圧を同時に測定することがあ

る.DAQ アシスタントの読み取りポート数を複数設定することで,複数個所の信号値を測

定可能である.この時,DAQ アシスタントからのデータは配列の形で出力されるため,表

示器等に測定値を与える場合には,配列から要素を抜き出す必要がある.そのために

LabVIEW では,要素抽出を実現する[指標配列]モジュールが準備されている.

(例題)

1.プログラム作成手順

(1) 例題 11 で使用した vi ファイルを適当な名前でコピーする.

(2) 図 12.1 に示すように,フロントパネルから波形チャートを削除し,代わりに 1×2

の実数値表示アレイ(図 12.1 右上)と,数値表示器を追加する.

(3) ブロックダイアグラムにおいて DAQ アシスタントの設定を変更する.手順は以下の

通り.

1. [DAQ アシスタント]を右クリックしプロパティを呼び出す.

2. 上部の[チャンネルを追加]をクリックし,新たに[ai1]を作成する.

3. [ダイナミックデータから変換]を右クリックし,[1Dスカラ配列-自動]を

選択することで,このモジュールの出力を配列に変更する.

4. 指標配列:関数パレットから[プログラミング]-[配列]-[指標配列]を

用いて図 12.2 に示すように接続する.

2.回路接続手順

例題 11 で用いた太陽電池に加えて,新たに乾電池の起電力を測定する.乾電池のプラ

ス側を AI1+,マイナス側を AI1-,AI1-と AIGND を接続する.回路図は図 12.3 の通り

図12.1 フロントパネル 図12.2 ブロックダイアグラム

26

図12.3 例題 12 回路図

(課題)

このプログラムでは最新のデータが配列に上書きされて格納されるため,前に測定し

たデータは消えてしまう.測定したデータすべてを配列に格納できるようにプログラム

を修正する.

(ヒント:While 文の反復端子を使用.フロントパネルの表示用アレイはあらかじめ 2

次元に拡張して While ストラクチャの外に出す必要あり(例題 5を参照))

27

例題13 電圧の生成(アナログ)

(目的)

アナログ電圧値の出力を制御する方法を習得する. (説明)

回路の応答を計測する場合には,必ず入力信号を与える必要がある.通常はパターンジ

ェネレータや固定・可変電源を使用するが,NI ELVIS はこれらの信号生成機能を有してい

るため,LabVIEW 上で適切なブロックを使用することにより,様々な信号パターンを作成

することができる.

(例題)

1.プログラム作成手順

(1) 例11のプログラムを適当な名前でコピーする.

(2) ブロックダイアグラムに DAQ アシスタントを一つ追加する.

(3) Express 作成ウィンドウで[信号を生成]-[アナログ出力]-[電圧]

[ao0]を選択したのちに,[終了]をクリックする.

(4) DAQ アシスタントウィンドウで生成モードを[1サンプルオンデマンド]を選択

し,[OK]をクリックする.(設定しないとエラーが出るので注意)

(5) 測定では入力信号が確定したのちに,計測を行う必要があるため,依存関係が重

要である.依存関係を明示するために,電圧出力側の DAQ アシスタントの[エラ

ー出力]と,電圧測定側の DAQ アシスタントの[エラー入力]を結線する.

(6) 残りの部分(乗算,定数,電圧測定側等)を図 13.1 に従って作成する.

2.回路接続手順

AO_0 と AI_0+,AI_0-と AIGND を直接,接続する(単純なため回路図略).

図13.1 ブロックダイアグラム

28

※ アナログ出力は AO 0,AO 1 のほかに,可変電源出力 SUPPLY+,SUPPLY-がある.AO

は比較的早い(遅延の少ない)信号を出力できるが,電流は最大±5mA,電圧は±10V.可

変電源は電流が最大±500mA,電圧は最大±12V,交流電圧としては使えない.

(課題)

(1)例題のプログラムを以下のように拡張せよ.

0V から 5V まで変化するようにする.

1 回当たりの変化量(例題だと 0.1V)を数値制御器で設定できるようにす

る.

29

例題14 電圧の生成(デジタル)(課題対象外)

(目的)

デジタル回路用の出力生成制御方法を習得する.

(説明)

トランジスタ,ダイオード等の特性計測に連続値からなるアナログ入力が使用されるのと

異なり,デジタル IC 制御,パルス出力などを行う場合には,High, Low の 2 値のみからな

るデジタル出力が使用される. 本課題では,NI ELVIS に含まれているデジタル専用ポー

トから,信号を出力する.

(例題)

1.プログラム作成

(1) DAQ アシスタントを選択し,Express 作成ウィンドウで[信号を生成]-[デジタ

ル出力]-[ライン出力]-[Dev1(NI ELVIS II)]-[port0/line0]を選択し,

[終了]をクリックする.

(2) DAQ アシスタントウィンドウの生成モードを[1サンプル(オンデマンド)]を選

択し,[OK]をクリックする.

(3) DAQ アシスタントンのデータ端子にブール配列を作成.“T”で出力が High,“F”で

出力が Low となる.

(4) 図 14.1 を参考に,残りの部分を作成する.

2.回路接続手順(回路図省略)

(1) DIO 0 と LED 0 を接続する(単純なため,回路図省略)

ダイオードに過電流が流れるのを防止する電流制限抵抗は内蔵されている.

図14.1 ブロックダイアグラム

(課題)

(1) フロントパネルの数値制御器で秒数を指定し,その間隔で LED が点滅するプログラ

ムを作成せよ.

30

例題15 交流信号の生成(課題対象外)

(目的)

NI ELVISでの交流信号生成方法について習得する. (説明)

LabVIEW には,DAQ アシスタントのほかに,NI ELVIS 用の各種の計測関数が用意されて

いる.本例題では,Function Generator 関数を使って交流信号を出力し,DAQ アシスタン

トを用いてその信号を取り込み,波形チャートに出力する.交流の場合 1サンプルでは間

に合わないので,Nサンプルを用い,適切にサンプルレート(信号周波数の 20 倍程度)を

設定する.

(例題)

1.プログラム作成

(1) 関数パレットから[プログラミング]-[測定 I/O]-[NI ELVISmx]-

[Function Generator]を選択し,ブロックダイアグラム上に配置する.

(2) ブロックダイアグラムにおいて,DAQ アシスタントの集録モードを[Nサンプ

ル]とする.

(3) 図 15.1,15.2 に従って,残りの部分を作成する.

2.回路接続手順

FGEN と AI0+,AI0-と AIGND をそれぞれ接続する.

図15.1 フロントパネル

図15.2 ブロックダイアグラム

31

例題16 電流の測定

(目的)

接続した回路の電流を測定する方法を習得する. (説明)

NI ELVIS を用いて電流を測定するには,

(1) NI ELVIS の Digital Multimeter 関数を用いる

(2) 既知の抵抗の両端の電圧を測定して,オームの法則より求める

の 2つの方法がある.

(例題)

図 16.1 のように NI ELVIS のブレッドボード上に回路を作成し,図 16.2 に示すように

ブロックダイアグラムを作成する.フロントパネルは,数値表示器を用いて 2つの電流値

が確認できるようにしておく.DAQ アシスタントでは,Nサンプル,サンプル数:100,サ

ンプリングレート 1kHz とし,100 個のデータを平均する(ノイズ除去のため).

図16.1 電流測定回路

図16.2 ブロックダイアグラム

※ サンプリングレートが 1kHz のとき,測定間隔は1/1000 =1ms である.100 個サンプルすると DAQ アシスタントの実行は大体 100ms かかる.

(注意) DMMの A端子と COM端子を短絡しない ようにすること.A端子と COM端子の間に仮想的にデジタルマルチメータが入る. (実体は NI ELVISの内部)

32

第Ⅲ章 補足事項 例題17 グラフのリアルタイム表示

(目的)

シフトレジスタの使用方法を理解し,グラフのリアルタイム表示に関する方法を習得する. (説明)

例題7のように,XY グラフは表示するデータを配列に格納して,一括で与える必要があ

る.そのため,グラフの描画は全ての測定が完了したのちに行われる.グラフをリアルタ

イムで表示する場合には,シフトレジスタを用いる.図 17.1 に示すようなブロックダイ

アグラムを用いると,図中の「XY リアルタイム」で示されるグラフ表示器には,For ルー

プの実行途中であっても,途中の演算までのグラフが表示されることになる.

シフトレジスタの追加:ループの枠上で[右クリック]-[シフトレジスタを追加],

左側のシフトレジスタで[作成]-[定数]でレジスタを初期化する.

図17.1 ブロックダイアグラム

※ シフトレジスタは実行時に自動的に初期化されないため,For ループの外部で初期値

(通常は 0)を設定する必要がある.

33

リファレンス(例題,実験で使用するモジュールへのパス)

34