当グループではLHD計測データ収集系(LABCOMシステム)の運転と、同実験関係者・共同研究者の計測データ収集・データ利用・遠隔実験等を支援する以下のサービスを行っています。詳細は各項目をクリックしてください。
English
You are the th visitor since 4 July 2000
Contact : LABCOM
プライバシーポリシー
各種フォームから個人情報を入力・送信する前に必ず上記をご覧ください。
for PV-WAVE/IDL
ver.15.0.1
  • Retrieveってなに?
  • PV-WAVEってなに?
  • IDLってなに?
  • Retrieveのインストール
  • 計測データ/パラメータの取得
  • エラーコードの取得
  • 時間軸の取得
  • 電圧に変換して表示
  • 画像データの表示
  • WAITモードでのデータ取得
  • リアルタイムデータを取得
  • デモジュレータのパラメータを取得
  • 参照サイトの切り替え
  • Retrieveのアンインストール
  • クイズに挑戦!

Retrieveってなに?

Retrieveとは、PV-WAVEまたはIDLから直接呼出し可能なプロシージャで、計測データベースに格納されている計測データを取得するために使用します。
実体はランタイム共有ライブラリRetrieve.DLL(Linux版は libretrieve.so)とそれをPV-WAVE/IDLから呼び出すプロシージャ(.pro)ファイルより構成されています。
ですからユーザが共有ライブラリを呼び出す専用アプリケーションを作ることもできます。
 
 
 
計測データを取得するために使うんだね。
 
 
 
 
 

PV-WAVEってなに?

PV-WAVEは配列ベースのプログラミング言語であり、可視化データ解析アプリケーションの開発、配布に使用されています。
PV-WAVE は、画像及び信号処理、データの入出力、3次元サーフェス、プロット、ヒストグラム、コンター、アニメーション、カラーエディット、データベーステーブルの表示などの強力な機能を提供します。

LABCOMグループでは、Windows版 および Linux版の PV-WAVE Extreme Advantage 年間サイトライセンスを購入しています。NIFS所内であれば、自由に使用することができます。
 
ダウンロードはこちらから。
 
 
  NIFS所内ならPV-WAVEが使えるんだね。
 

IDLってなに?

IDL(The Interactive Data Language)は計測・実験、数値計算、統計解析、シミュレーション、ビジュアライゼーションなど様々な分野で使用されている非常に柔軟なソフトウェアです。IDLはデータ解析、可視化、アプリケーション開発などを含んだ統合環境を提供します。またIDLが持つIDL言語は対話形式(インタプリタ)、実行形式(テキスト、バイナリ)双方が可能です

解析情報グループにて、Windows および Linux 版の IDL のサイトライセンスを購入しています。 NIFS所内であれば、自由に使用することができます。

ダウンロードはこちらから。
 

 
  IDLもNIFS所内なら使えるんだね。
 

Retrieveのインストール

計測データ・パラメータを取得するには、Retrieveを利用します。
次の手順に沿って、Retrieveをインストールしましょう。
 
  まずはインストールするんだね。
 
  1. Retrieve+dbStoreをダウンロードし適当なフォルダに保存し ます。ダウンロードはこちらから。 
  2. インストールするPCに旧版のRetrieve+dbStoreがインストールされている場合は、必ず旧版をアンインストールしてください。 
  3. ダウンロードしたファイルをダブルクリックするとインストールが始まります。手順に沿ってインストールを行ってください。
  4. Retrieve+dbStoreをインストールすると、参照サイトが自動的に「LHD」に設定されます。デフォルトの参照サイトを変更したい場合はこちらをご覧ください。
    なお、可視化ソフト(PV-WAVE/IDL)では参照サイトを変更するコマンドが用意されています。詳しくはこちらをご覧ください。
  5. 可視化ソフトがインストールされていない場合は、以下を行ってください。
    1. 可視化ソフトをダウンロードしインストールを行ってください。
    2. 可視化ソフトを起動したときにRetrieve+dbStoreが利用できるよう、起動時の実行ファイルの指定を行ってください。
      • PV-WAVE
        wavestartupファイルをRetrieveのインストールされているフォルダから、PV-WAVEのインストールされているフォルダにコピーします。
        コピー元(デフォルト)
        C:\LABCOM\Retrieve\lib\pv-wave\wavestartup
        コピー先(デフォルト)
        C:\VNI\wave\bin\wavestartup
      • IDL
        IDLを起動後、[file]-[Preferences..]を選択し、[Startup]タブの[Startup file]にstartup_user_idl.proを指定します。
        指定場所(デフォルト)
        C:\LABCOM\Retrieve\lib\idl\startup_user_idl.pro

計測データ/パラメータの取得

PV-WAVE/IDLを起動し、Retrieveで計測データ・パラメータを取得してみましょう。(Retrieveの使用方法はこちらをご覧ください)
 
STEP1 データを取得してみよう

■図-1
では、計測データとパラメータを取得してみましょう。(図-1参照)
params = 1    …パラメータ格納変数の定義(初期化)をしておきます
retrieve, 'Bolometer', 48000, 1, 1, shot, param=params    …shotに計測データ、paramsにパラメータの情報を取得します
これで、shotに計測データ、paramsにパラメータ情報が取得されました。
 
STEP2 データを表示してみよう

では次に、取得した計測データを表示してみましょう。(図-2参照)
plot, shot    …取得した計測データを表示します
新しいウィンドウが開き、取得した計測データが表示されます。(図-3参照)

■図-2

■図-3

STEP3 パラメータを表示してみよう

次に、取得したパラメータを参照してみましょう。(図-4参照)
printParam, params    …取得したパラメータを表示します
パラメータが表示されます。

■図-4
STEP4 パラメータを変換してみよう
 
パラメータ(パラメータ名、パラメータ値)は文字列として格納されているため、取得したパラメータを表示・変換するために次のファンクションが用意されています。(変換方法はこちらをご覧ください)
 
getParamLong
getParamInt
getParamFloat
getParamDouble
getParamString
 
■図-5

では試しに、取得したパラメータの'Range'の値をFloatに変換してみましょう。(図-5参照)
FloatValue = getParamFloat('Range', params)
    …取得したパラメータ'Range'を文字列から32ビット単精度実数(float)に変換しFloatValueに保存します

次に、infoでFloatValueの内容を確認してみましょう。(図-5参照)
info, FloatValue
    …変換したデータの 内容を表示します
値がFloatに変換されているのがわかります。
 

 
こうやってデータを取得するんだね。  
 
 

エラーコードの取得

Retrieveではエラーコードを取得することによって、データが正しく取得できたかどうか、またエラーの場合どういう内容なのかを知ることができます。

データが正しく取得できた場合、エラーコードは 0 が返されます。
データが取得できず異常終了した場合はエラーコードは 0以外 が返されます。
エラーコードの内容は、Retrieveパッケージに含まれているRetrieve Error Codes(retrieveErrorCode.htm)で確認できます。
参照方法:[スタート]→[すべてのプログラム]→[LABCOM Retrieve+dbStore*.*.*]→[Retrieve Error Codes] 


STEP1 エラーコードを取得してみよう
 
では、データを取得しエラーコードを参照してみましょう。(図-6参照)
■図-6
retrieve, 'Bolometer', 48000, 1, 1, shot, code    …codeにエラーコードを取得します
print, code   
…codeを表示します
エラーコードは 0 でした。(図-6参照)
このデータは正しく取得できたことがわかります。
■図-7
他のデータも取得してみましょう。(図-7参照)
retrieve, 'Bolometer', 48830, 1, 1, shot, code    …codeにエラーコードを取得します
print, code   
…codeを表示します
エラーコードが 0以外 ですのでデータは正しく取得されていません。(図-7参照)
エラーの内容をRetrieve Error Codesで確認してみましょう。

これでデータが取得できなかった原因がわかりましたね。
 
  どんなエラーなのか、エラーコード表を見ればわかるんだね。
 

時間軸の取得

PV-WAVE/IDL上にて時間軸を取得するには、Retrieve(ver.15.0.0以降)(※推奨)で計測データと同時に取得する方法(Retrieveの使用方法はこちら)と、Retrieve_tまたはRetrieve_tdで時間軸のみ取得する方法(Retrieve_tまたはRetrieve_tdの使用方法はこちら)があります。
 
Retrieve
Retrieve_tは、モジュール設定にDTSとのリンク情報がある第7サイクル以降の時間軸データの情報を取得することができます。(※注意)
Retrieve_td
は、DTSとのリンク情報がない第6サイクルまでのデータを取得することができます。

未対応データに関してはこちらをご覧ください。

 
  時間軸は、Retrieveで取得した方が速いんだね。  
   

(※推奨)
Retrieveで時間軸を取得すれば、計測データと同時に取得できますので処理が効率的です。 処理時間もこちらの方が速いので、Retrieveで時間軸を取得することをお勧めします。

(※注意)
Retrieve、Retrieve_tにて時間軸を取得するには、データ収集運転設定で各モジュールのDTSリンク情報(TRGsource, TRGhostID, TRGmoduleID, TRGchannel, CLKsource, CLKhostID, CLKmoduleID, CLKchannel)が正しく設定されている必要があります。

CASE1 Retrieveで時間軸を取得 (推奨)
 
STEP1 時間軸を取得してみよう
 
RetrieveでFLOAT型の時間軸を取得してみましょう。(図-8参照)
p=1    …計測データパラメータ格納変数の定義(初期化)をしておきます
time=1    …時間軸格納配列の定義(初期化)をしておきます
t=1    …時間軸パラメータ格納変数の定義(初期化)をしておきます

■図-8
retrieve, 'Bolometer', 48000, 1, 1, data, param=p, tarray=time, tparam=t   …timeにFLOAT型の時間軸、tに時間軸パラメータの情報を取得します
printparam, t
    …取得した時間軸パラメータを表示します
パラメータのArrayDataTypeを見ると、Floatとなっています。
これで、FLOAT型の時間軸情報が取得できたことが分かりますね。(図-8参照)
 
では次に、DOUBLE型で時間軸を取得してみましょう。(図-9参照)
retrieve, 'Bolometer', 48000, 1, 1, data, param=p, tarray=time, tparam=t, /double    …timeにDOUBLE型の時間軸、tに時間軸パラメータの情報を取得します
printparam, t    …取得した時間軸パラメータを表示します
パラメータのArrayDataTypeを見ると、Doubleとなっています。
■図-9
これで、DOUBLE型の時間軸情報が取得できたことが分かりますね。(図-9参照)
 
STEP2 時間軸でデータを表示してみよう
 
では、Retrieveでデータと一緒に時間軸を取得しグラフを表示してみましょう。(図-10参照)
retrieve, 'Bolometer', 48000, 1, 1, data, tarray=time   
…dataに計測データ、timeに時間軸の情報を取得します
plot, time, data    …取得した計測データを時間軸で表示します
横軸が時間(秒)に変わっているのがわかりますね。(図-11参照)
 
 
時間軸で表示するとわかりやすいね。  
 
 
■図-10

 
■図-11
CASE2 Retrieve_tで時間軸を取得
 
STEP1 時間軸を取得してみよう
 
Retrieve_tでFLOAT型の時間軸を取得してみましょう。 (図-12参照)
t=1    …パラメータ格納変数の定義(初期化)をしておきます
retrieve_t, 'Bolometer', 48000, 1, 1, time, param=t   …timeにFLOAT型の時間軸、tに時間軸パラメータの情報を取得します
printparam, t    …取得した時間軸パラメータを表示します
■図-12

パラメータのArrayDataTypeを見ると、Floatとなっています。
これで、FLOAT型の時間軸情報が取得できたことが分かりますね。(図-12参照)
 
DOUBLE型の時間軸情報を取得したい場合は、Retrieveと同様に/doubleを指定します。
retrieve_t, 'Bolometer', 48000, 1, 1, time, param=t, /double
    …timeにDOUBLE型の時間軸、tに時間軸パラメータの情報を取得します
 
STEP2 時間軸でデータを表示してみよう
 
取得した時間軸を使い、横軸を時間(秒)にしてデータを表示してみましょう。
retrieve, 'Bolometer', 48000, 1, 1, data      …計測データを取得します
retrieve_t, 'Bolometer', 48000, 1, 1, time    …時間軸を取得します
plot, time, data    …取得した計測データを時間軸で表示します
 
CASE3 Retrieve_tdで時間軸を取得

Retrieve_tdは使用しているDTSを直接指定することで時間軸情報を取得することができます。
 
STEP1 時間軸を取得してみよう
 
では、Retrieve_tdでFLOAT型の時間軸を取得してみましょう。
内部クロックとサンプリング数を定義後、時間軸を取得します。(図-13参照)
■図-13
clk = long(1000000)    …1kHzサンプリングの場合
samp = long(128)*long(1024)    …128Kの収集をした場合(Aurora14 128Kモジュールなど)
retrieve_td, 38000, 1, 'VME', '133.75.175.156', 'DMOD0', 1, 1, 'External', clk, samp, time
    …timeにFLOAT型の時間軸の情報を取得します
これで、timeにFLOAT型の時間軸情報が取得されました。

DOUBLE型の時間軸情報を取得したい場合は、Retrieveと同様に/doubleを指定します。
retrieve_td, 38000, 1, 'VME', '133.75.175.156', 'DMOD0', 1, 1, 'External', clk, samp, time, /double    …timeにDOUBLE型の時間軸の情報を取得します

STEP2 時間軸でデータを表示してみよう
 
取得した時間軸を使い、横軸を時間(秒)にしてデータを表示してみましょう。(図-13参照)
clk = long(1000000)    …1kHzサンプリングの場合
samp = long(128)*long(1024)    …128Kの収集をした場合(Aurora14 128Kモジュールなど)
■図-14
retrieve_td, 38000, 1, 'VME', '133.75.175.156', 'DMOD0', 1, 1, 'External', clk, samp, time    …時間軸を取得します
retrieve, 'ECH', 38000, 1, 1, data    …計測データを取得します
plot, time, data    …取得した計測データを時間軸で表示します
横軸が時間(秒)に変わっているのがわかりますね。(図-14参照)
 

電圧に変換して表示

電圧(ボルト)に変換した計測データをFLOAT型もしくはDOUBLE型のデータ配列で取得することができます。(電圧値変換できるのは、Retrieve ver.13.2.0以降です。Retrieveの使用方法はこちらをご覧ください)

電圧値変換ができるモジュールは、以下のモジュールです。(2011-08-04現在)
Aurora14, SEGADC, HOUSIN_C012, WE72XX, PXI6115, PXI6132, PXI6133, PXI6143, PXI6225, PXI6255, PXIe5186, (PXIe4300)
 
STEP1 データを電圧で取得しよう

電圧値に変換したFLOAT型の計測データと時間軸を取得してみましょう。(図-15参照)
 
  電圧値でデータを取得できるんだ!  
   
■図-15
p = 1    …パラメータ格納変数の定義(初期化)をしておきます
retrieve, 'Bolometer', 48000, 1, 1, data, param=p, /vflt    …計測データをFLOAT型の電圧値に変換して取得します
retrieve_t, 'Bolometer', 48000, 1, 1, time
    …時間軸を取得します

DOUBLE型で計測データを取得したい場合は次のように指定します。
retrieve, 'Bolometer', 48000, 1, 1, data, param=p, /vdbl    …計測データをDOUBLE型の電圧値に変換して取得します

STEP2 電圧と時間軸でデータを表示してみよう

電圧値変換した計測データと時間軸で表示してみましょう。(図-15参照)
plot, time, data    …電圧値変換した計測データと時間軸で表示します

縦軸が電圧、横軸が時間軸で表示されましたね。(図-16参照)

■図-16

画像データの表示

カメラで収集された画像データのを表示してみましょう。
  
STEP1 画像データを取得してみよう
 
Retrieveで画像データを取得します。(図-17参照)
p = 1    …パラメータ格納変数の定義(初期化)をしておきます
■図-17
retrieve, 'IRcamera-edge', 48702, 1, 1, data, param=p    …画像データ、パラメータを取得します
 
STEP2 データを3次元に変換してみよう

(注意)
11サイクル以降のデータは3次元配列のデータが格納されるようになりましたので、この処理は必要ありません。STEP3にお進みください。11サイクルより前のデータは1次元配列で格納されますので次の通りreformを行ってください。
 
取得したデータは1次元配列で格納されているため、3次元配列に変更します。
まずはパラメータを参照します。
printparam, p    …取得したパラメータを表示します

ここで必要なのは、SampledFrame(収集したフレーム数)、RegionOfInterestWidth(画像幅)、RegionOfInterestHeigh(画像高さ)の3つのパラメータです。
それぞれ値は次のようになっていました。(図-18参照)
1   SampledFrame              300   Integer
1   RegionOfInterestWidth    580   Integer
1   RegionOfInterestHeight   480   Integer


■図-18


■図-19


 
  データを3次元配列に変更するんだね。  
   
先程参照した3つのパラメータの値で、画像データが格納されている1次元配列dataを3次元配列に変更します。(図-19参照)
data = reform(data, 580, 480, 300)    …取得したデータを画像幅、画像高さ、フレーム数で3次元配列に変更します
 
STEP3 画像を表示してみよう

画像の輝度をカラーに変更します。(図-20参照)
loadct, 15   …カラーテーブルを呼び出します
 
■図-20
画像を表示する方法は、次の3つがあります。
tvscl (静止画)
movie (動画)
WgAnimateTool (アニメーション・ウィジェット)(PV-WAVEのみ)
 
 
tvscl (静止画) での表示

表示するウィンドウを作成し、表示するフレーム番号をtvsclで指定します。
window,インデックス番号,XSize=画像幅,YSize=画像高さ
tvscl,data(*,*,フレーム番号),/Order


では、画像を表示してみましょう。(図-21参照)
■図-21

■図-22

  window, 0, XSize=580, YSize=480    …表示するウィンドウを作成します
tvscl, data(*, *, 0), /Order  
 …0フレーム目を表示します
作成したウィンドウに指定したフレーム番号の画像が表示されます。(図-22参照)
 
 
movie (動画) での表示

表示するウィンドウを作成し、取得したデータ配列をmovieで指定します。
■図-23
  window,インデックス番号,XSize=画像幅,YSize=画像高さ
movie,データ配列

では、動画を表示してみましょう。(図-23参照)
window, 0, XSize=580, YSize=480
    …表示するウィンドウを作成します
movie, data 
                                      …取得したデータを動画で表示します
作成したウィンドウに動画が表示されます。(図-22参照 実際には画像が動いて見えます)
 
WgAnimateTool (アニメーション・ウィジェット) での表示(PV-WAVEのみ)

アニメーション・ウィジェットで動画を表示してみましょう。(図-24参照)
WgAnimateTool, data, /Order    …アニメーション・ウィジェットを呼び出します
  ウィンドウが開き、自分で速度や進行方向等を指定することができます。(図-25参照)
 
 
わーい!カメラ画像も表示できたね。  
 
■図-24


■図-25
 

WAITモードでのデータ取得

現在実験中のショット番号でまだデータが存在しない場合、出現を待ってデータを取得したい場合があります。
 
その場合、WAITモードで待ち時間を設定しデータを取得することができます。(Retrieveの使用方法はこちらをご覧ください)
 
 
データの出現を待ってくれるんだ!  
 

 
STEP1 WAITモードでデータを取得してみよう

■図-26


■図-27
では、WAITモードで現在実験中のショットデータを取得してみましょう。(図-26参照)
retrieve, 'Bolometer', 92848, 1, 1, shot, /wait, timeout=30    …待ち時間を30秒に設定しデータを取得します
このショット番号はまだデータが無いため、データが出現するまで待ちます。(図-26参照)
データが出現した時点でデータを取得します。(図-27参照)
 

リアルタイムデータの取得(PV-WAVEのみ)

WE7000 および PXI デジタイザを用いる計測において、定常実験時などにリアルタイムデータ収集モードでサーバが動作している場合に、リアルタイムでのデータを取得することができます。
 
リアルタイムデータの取得には、波形データの取得(WaveMonitor) と、カメラ画像データの取得(TVMonitor) の2種類があります。(WaveMonitor、TVMonitorの使用方法はこちらをご覧ください)
 
STEP1 波形データを取得してみよう
■図-28
では、波形データをリアルタイムで取得してみましょう。(図-28参照)
WaveMonitor, 'CDP', 82
    …波形データを取得します
新しいウィンドウが開き、波形データがリアルタイム表示されます。
終了する時は、'q'または'Q'を押します。
 
STEP2 カメラ画像データを取得してみよう
■図-29

次は、カメラ画像データをリアルタイムで取得してみましょう。(図-29参照)
TVMonitor, 'PXITEST', 1, mode='YUV422'   …カメラ画像データを画像フォーマット'YUV422'で取得します
新しいウィンドウが開き、カメラ画像データが画像フォーマット'YUV422'でリアルタイム表示されます。
 
終了する時は、'q'または'Q'を押します。
 
  リアルタイムでデータが見れるんだ!
 

デモジュレータのパラメータを取得

Retrieve_t(Ver.14.0.0以降)で、DTSモジュールを直接指定することにより、デモジュレータのパラメータを取得することができます。(Retrieve_tの使用方法はこちらをご覧ください)
 
STEP1 パラメータを取得してみよう

では、デモジュレータのパラメータを取得してみましょう。
■図-30
計測名を指定する代わりに、'DTS:'を付けてからDTSホスト名:DTSモジュール名を指定します。(図-30参照)
※時間軸データ配列には有効なデータは入りません。
※FPGA-DTSでは、TRG#1-6がCH#1-6、CLK#1-6がCH#7-12になっています。
params = 1    …パラメータ格納変数の定義(初期化)をしておきます
retrieve_t, 'DTS:VME01:DMOD0', 90000, 1, 1, data, param=params    …dtsモジュールを指定し、paramsにパラメータの情報を取得します
これで、paramsにパラメータ情報が取得されました。
 
STEP2 パラメータを表示してみよう

次に、取得したパラメータを参照してみましょう。(図-31参照)
printParam, params    …取得したパラメータを表示します
デモジュレータのパラメータが表示されましたね。(図-31参照)
 
 
デモジュレータのパラメータも見れるんだね!  
 
■図-31


参照サイトの切り替え

環境変数「INDEXSERVERNAME」で設定されているサイト以外のデータを参照する場合には、参照サイトを切り替える必要があります。
(データ利用者の各々PC端末には、所属するサイトの実験データにのみアクセスが可能になっており、他サイトの実験データ参照には、別途、アクセス許可を得る必要があります。詳しくはこちらをご覧ください)
 
参照サイトを切り替えるにはChangeSiteコマンド、現在の参照サイト名を表示するには、CurrentSiteコマンドを使用します。(ChangeSite、CurrentSiteの使用方法はこちらをご覧ください)

 
  他の実験サイトのデータも見れるんだね。  
   
STEP1 サイトを切り替えてみよう

参照サイトを切り替えてみましょう。(図-32参照)
ChangeSite,'LHD'
    …参照サイトを切り替えます

■図-32
STEP2 サイトを確認してみよう

現在の参照サイト名を表示してみましょう。(図-33参照)
CurrentSite    …参照サイトを表示します

 LHD    …現在の参照サイトが表示されます
と表示されましたね。 (図-31参照)
これで現在の参照サイトが確認できました。
 
■図-33

Retrieveのアンインストール

アンインストールは「コントロールパネル」-「アプリケーションの追加と削除」で行なってください。
アンインストールを行うと、環境変数も自動的に削除されますが、うまく削除されない場合があります。
その場合は、手動で次の環境変数を削除してください。
  • Retrieve
  • INDEXSERVERNAME

 

 
アンインストールで自動的に環境変数も削除してくれるんだね。  
 

 

前へ 

クイズに挑戦!

こちらで勉強したことが理解できているかどうか、クイズに挑戦してみましょう!
*全問正解者にはもれなくLABCOMより豪華記念品を贈呈します!皆さん、ふるってご解答ください。
 

Retrieveクイズに挑戦!

クイズの実行にはJRE(Java Runtime Environment)が必要です。
Sunのサイトから最新版のJREをダウンロードし、インストールを行ってください。
また、IEをご利用の場合は、「ツール」→「インターネットオプション」で「詳細設定」タブをクリックし、「設定」で「Java(Sun)」の「<applet>にJava2を使用(再起動が必要)」にチェックを入れ「適用」をクリックし、その後IEを再起動してください。