Measurement and Control System with LabView 6.1 and GPIB-ENET/100
LabVIEW6.1とGPIB-ENET/100を用いた磁場制御プログラム
注意: ここにあげた文章はあくまでメモ程度の参考であって
正確さを保証するものではありません。
LabViewライブラリ(llb)の使用
ハードウエアに依存する通信の設定などはまとめてライブラリー化しておくと
使い勝手がよい。
HP(Agilent Technologies)社DC電源(HP66xxA)、デジタルマルチメータ
(HP34401A)、Textronix社デジタルオシロスコープ(TDSシリーズ)などのメジャー
な測定器のライブラリーはNational Instruments社の
NI Developer Zone
-Instrument Driver Netwoek-
Downloads
からダウンロードできる。ダウンロードしたファイルを所定の位置(\inst.lib)に
インストールすると、[関数][計測器I/O][計測器ドライバ]から使うことがで
きる。個人的に作ったライブラリなら、
- [関数]のパネルの左下から、[VIを選択]を選ぶ
- lldファイル(LabVIEW VI Library)ファイルを選ぶ、
(たとえばScu_Lib.lldだったとする)
- これで、LabView標準のライブラリーと同じように個人的に作ったライブ
ラリーが使える。
- 自分でライブラリー作るには、[ツール][VIライブラリマネージャ]をつか
う。
SCUとの通信
SCUとの通信はUNIXで標準的に用いられるTCP Socket通信を用いる。このため
のライブラリーは標準でLabView6.1に用意されている。最も基本的な通信の流
れは
- 「相手先とつなぐ(open)」
- 「相手先に書き込む(write)」
- 「相手先から読み込む(read)」
- 「相手先との接続を切る(close)」
となる。ここで1,4はかならず行い、2,3は必要に応じて何度でも繰り返すこと
ができる。もっとも簡単な例を示すと
で、この例では、
- SCUとの接続を開き(SCU Open)、
- デバイス[BT.BT_M.P_D1.IA]を指定(SCU ID)した後
- preset値[PValue]をかきこみ(SCU Write)、
- 5000 msec待って
- [BT.BT_M.P_D1.IP]を指定(SCU ID)して、
- actual値[AValue]を読み込み(SCU Read)
- 接続を閉じている(TCP Close)。
実際には一回の操作を
するために毎回Open Closeをするのは効率的ではないので、Whileループや
Forループを用いて操作を繰り返すようにつくる。
使用に際して与えるべき情報は、
- SCU hostのIPアドレス(既定)
- Socket通信のソケット(既定)
- User ID (1から5までのコースに応じて決まった値)
- 操作を行うdeviceの名前
である。
エコー電子製NMRの読み出し。
エコー電子製NMR装置は先ほどのSCUの例と異なり、GPIBによりデータを読み出すが、
通信のハードウエア、ソフトウエアが異なっても、ライブラリ化しておけば
見掛け上ほとんど変らない感覚で使用できる。
この例では、
- GPIBデバイスに接続(ECHO Open)
- NMR値、Hall値を読み込む(ECHO Read)
- NMR lockしているかのstatusを表示
- 2, 3を10回繰り返す。
- 接続を閉じる(VISA Close)
をおこなう。closeの際に用いる関数が異なることに注意
旧Raiden磁場制御の例
この例では、これまでの例で紹介したライブラリーを用い、
- SCUの電源に電流値を設定する
- エコー電子のNMRの値を読む
- Agilent Technologiesの電源の電流、電圧を設定する。
- 電流、NMRの値のLogをグラフにする。
- Logをファイルに保存する。
をおこなう。
パネルの説明
- D1 Preset: D1のpreset電流値を入力。入力が受け付けられるとgreenに点灯
- D2 sub, Q1, Q2: D1補助電源、Q1, Q2の電流値を入力。Outputがonになると
greenに点灯。
- D1 sub, Q1, Q2 Pol: リレーボックスの出力極性を指定するトグル
- D1 sub, Q1, Q2 Output: 電流出力ON/OFFの切り替え
- D1 sub, Q1. Q2 ROut: リレーボックスの出力ON/OFFの切り替え(通常
ONでよい)
- D1、D2 NMR: 磁場の強さ。NMR lockがかかるとgreenに点灯。