for MATLAB ver.15.0.0 |
- Retrieveってなに?
- MATLABってなに?
- Retrieveのインストール
- 計測データ/パラメータの取得
- エラーコードの参照
- 時間軸の取得
- 電圧に変換して表示
- 画像データの表示
- WAITモードでのデータ取得
- リアルタイムデータを取得
- デモジュレータのパラメータを取得
- 参照サイトの切り替え
- Retrieveのアンインストール
- クイズに挑戦!
Retrieveってなに?
Retrieveとは、MATLABから直接呼出し可能なプログラムで、計測データベースに格納されている計測データを取得するために使用します。MATLABから呼び出すプログラム(.m)ファイルとランタイム共有ライブラリRetrieve.DLL(Linux版はlibretrieve.so)より構成されています。
ですからユーザが共有ライブラリを呼び出す専用アプリケーションを作ることもできます。
計測データを取得するために使うんだね。 | |||
MATLABってなに?
MATLABは、アルゴリズム開発、データの可視化、数値計算を行うためのハイレベルなテクニカルコンピューティング言語および対話型環境です。信号(波形)解析・画像処理、通信システム設計、制御系設計、実験計測、金融工学、生命工学などの様々な分野で利用できます。また、Toolbox(目的別のMATLAB関数群)により、柔軟に機能拡張に対応できます。Simulink(シミュレーションとモデルベースデザイン環境)との組み合わせ利用は、シミュレーションソフトとして最もポピュラーな存在でもあります。MATLABでデータを可視化するんだね。 | |||
Retrieveのインストール
まずはインストールするんだね。 | |||
次の手順に沿って、Retrieveをインストールしましょう。
- Retrieve+dbStoreをダウンロードし適当なフォルダに保存します。ダウンロードはこちらから。
- インストールするPCに旧版のRetrieve+dbStoreがインストールされている場合は、必ず旧版をアンインストールしてください。
- ダウンロードしたファイルをダブルクリックするとインストールが始まります。手順に沿ってインストールを行ってください。
- Retrieve+dbStoreをインストールすると、参照サイトが自動的に「LHD」に設定されます。デフォルトの参照サイトを変更したい場合はこちらをご覧ください。
なお、MATLABでは参照サイトを変更する関数が用意されています。詳しくはこちらをご覧ください。 - MATLABがインストールされていない場合は、インストールを行ってください。
- MATLABを起動したときにRetrieve+dbStoreが利用できるよう、サーチパスに"$Retrieve/lib/matlab"を追加してください。もしくは、"$Retrieve/lib/matlab/startup.m"ファイルを、MTALABサーチパスのディレクトリにコピーしてください。すでにファイルがある場合は、内容を追記してください。
計測データ/パラメータの取得
MATLABを起動し、Retrieveで計測データ・パラメータを取得してみましょう。(Retrieveの使用方法はこちらをご覧ください)STEP1 | データを取得してみよう |
---|
[data param code] = retrieve('ECH', 100100, 1, 1); …dataに計測データ、paramにパラメータの情報を取得します
これで、dataに計測データ、paramにパラメータ情報が取得されました。
STEP2 | データを表示してみよう |
---|
plot(data{1}); …取得した計測データをグラフ表示します
新しいウィンドウが開き、取得した計測データが表示されます。(図-3参照)
STEP3 | パラメータを表示してみよう |
---|
printParam(param); …取得したパラメータを表示します
パラメータが表示されましたね。
STEP4 | パラメータを変換してみよう |
---|
では試しに、取得したパラメータの'Range'の値を取得してみましょう。(図-5参照)
value = getParam('Range', param) …取得したパラメータ'Range'をvalueに保存します
valueにRangeの値が入りましたね。
次に、valueの内容を確認してみましょう。(図-5参照)
whos value; …valueの情報を表示します
型がsingleになっていますね。
エラーコードの参照
Retrieveではエラーコードを取得することによって、データが正しく取得できたかどうか、またエラーの場合どういう内容なのかを知ることができます。データが正しく取得できた場合、エラーコードは 0 が返されます。データが取得できず異常終了した場合はエラーコードは 0以外 が返されます。
エラーコードの内容は、Retrieveパッケージに含まれているRetrieve Error Codes(retrieveErrorCode.htm)で確認できます。
参照方法:[スタート]→[すべてのプログラム]→[LABCOM Retrieve+dbStore*.*.*]→[Retrieve Error Codes]
STEP1 | エラーコードを参照しよう |
---|
[data param code] = retrieve('ECH', 105000, 1, 1); …codeにエラーコードが入ります
code …codeの内容を表示します
エラーコードは 0 でした。(図-6参照)
このデータは正しく取得できたことがわかります。
他のデータも取得してみましょう。(図-7参照)
[data param code] = retrieve('ECH', 100, 1, 1); …codeにエラーコードが入ります
code …codeの内容を表示します
どんなエラーなのか、エラーコード表を見ればわかるんだね。 | ||
エラーコードとエラーメッセージが表示されましたね。こちらはエラーコードが 0以外 ですのでデータは正しく取得されていません。(図-7参照)
エラーの内容をRetrieve Error Codesで確認してみましょう。
これでデータが取得できなかった原因がわかりましたね。
時間軸の取得
時間軸を取得するには、Retrieve_tまたはRetrieve_tdで取得します。(Retrieve_tまたはRetrieve_tdの使用方法はこちら)※PV-WAVE/IDLでは、Retrieveにて計測データと時間軸データの同時取得ができますが、現在の所MATLABでは同時取得はできませんのでご了承ください。
時間軸は、Retrieve_tかRetrieve_tdで取得するんだね。 | ||
Retrieve_tは、モジュール設定にDTSとのリンク情報がある第7サイクル以降の時間軸データの情報を取得することができます。(※注意)
Retrieve_tdは、DTSとのリンク情報がない第6サイクルまでのデータを取得することができます。
※未対応データに関してはこちらをご覧ください。
(※注意)
Retrieve_tにて時間軸を取得するには、データ収集運転設定で各モジュールのDTSリンク情報(TRGsource, TRGhostID, TRGmoduleID, TRGchannel, CLKsource, CLKhostID, CLKmoduleID, CLKchannel)が正しく設定されている必要があります。
CASE1 | Retrieve_tで時間軸を取得 |
---|
STEP1 | 時間軸を取得してみよう |
---|
[time tparam code] = retrieve_t('Bolometer', 101000, 1, 1); …timeに時間軸、tparamに時間軸パラメータの情報を取得します
printParam(tparam); …取得した時間軸パラメータを表示します
MATLABでは型の指定をしなかった場合、DOUBLE型で時間軸を取得します。
パラメータのArrayDataTypeを見ると、Doubleとなっていますね。(図-8参照)
では次に、SINGLE型で時間軸を取得してみましょう。(図-9参照)
[time tparam code] = retrieve_t('Bolometer', 101000, 1, 1, 'single'); …timeにSINGLE型の時間軸、tに時間軸パラメータの情報を取得します
printParam(tparam); …取得した時間軸パラメータを表示します
パラメータのArrayDataTypeを見ると、Singleとなっています。(図-9参照)
これで、SINGLE型の時間軸情報が取得できたことが分かりますね。
STEP2 | 時間軸でデータを表示してみよう |
---|
[data param code] = retrieve('Bolometer', 101000, 1, 1); …計測データを取得します
[time tparam tcode] = retrieve_t('Bolometer', 101000, 1, 1); …時間軸を取得します
plot(time{1}, data{1}); …取得した計測データを時間軸で表示します
横軸が時間(秒)に変わっているのがわかりますね。(図-11参照)
時間軸で表示するとわかりやすいね。 | |||
CASE2 | Retrieve_tdで時間軸を取得 |
---|
STEP1 | 時間軸を取得してみよう |
---|
data = retrieve('RADH', 98000, 1, 1); …計測データを取得します
tm = retrieve_td(98000, 1, 'VME','133.75.175.172', 'DMOD0', 5, 2, 'External', 0, length(data{1})); …tmに時間軸の情報を取得します
これで、tmに時間軸情報が取得されました。
SINGLE型の時間軸情報を取得したい場合は、Retrieve_tと同様に'single'を指定します。
tm = retrieve_td(98000, 1, 'VME', '133.75.175.172', 'DMOD0', 5, 2, 'External', 0, length(data{1}), 'single'); …timeにSINGLE型の時間軸の情報を取得します
STEP2 | 時間軸でデータを表示してみよう |
---|
plot(tm, data{1}); …時間軸で表示します
横軸が時間(秒)に変わっているのがわかりますね。(図-13参照)
電圧に変換して表示
電圧(ボルト)に変換した計測データをFLOAT型もしくはDOUBLE型のデータ配列で取得することができます。(電圧値変換できるのは、Retrieve ver.13.2.0以降です。Retrieveの使用方法はこちらをご覧ください)電圧値変換ができるモジュールは、以下のモジュールです。(2011-08-08現在)
Aurora14, SEGADC, HOUSIN_C012, WE72XX, PXI6115, PXI6132, PXI6133, PXI6143, PXI6225, PXI6255, PXIe5186, (PXIe4300)
STEP1 | データを電圧で取得しよう |
---|
[data param code] = retrieve('Bolometer', 101000, 1, 1, 'vflt'); …計測データをFLOAT型の電圧値に変換して取得します
[time tparam tcode] = retrieve_t('Bolometer', 101000, 1, 1); …時間軸を取得します
DOUBLE型で計測データを取得したい場合は次のように指定します。
[data param code] = retrieve('Bolometer', 101000, 1, 1, 'vdbl'); …計測データをDOUBLE型の電圧値に変換して取得します
STEP2 | 電圧と時間軸でデータを表示してみよう |
---|
plot(time{1}, data{1}); …電圧値変換した計測データと時間軸で表示します
縦軸が電圧、横軸が時間軸で表示されましたね。(図-15参照)
画像データの表示
カメラで収集された画像データを静止画、または動画で見ることができます。画像データを表示してみましょう。STEP1 | 画像データを取得しよう |
---|
[data param code] = retrieve('TSCCD', 107000, 1, 1); …画像データ、パラメータを取得します
STEP2 | 画像を表示してみよう |
---|
colormap gray …カラーマップでgrayを指定します
画像を表示する方法は、次の2つがあります。
image (静止画) CASE1へお進みください。
movie (動画) CASE2へお進みください。
CASE1 | imageで静止画を表示 |
---|
image(data{1}(:, :, 130)'); …130フレーム目を表示します
指定したフレーム番号の画像が表示されましたね。(図-19参照)
(※注意)
11サイクル以降の画像データは3次元配列で格納されますが、11サイクルより前の画像データは1次元配列で格納されますので、取得したデータを3次元に変更する必要があります。
11サイクルより前の画像データは、次の通りreshapeで1次元配列から3次元配列への変更を行ってください。
[data param code] = retrieve('IRcamera-edge', 48702, 1, 1); …画像データ、パラメータを取得します
printparam(param); …パラメータを表示し画像幅、画像高さ、フレーム数を確認します
frame = reshape(data{1}, 580, 480, 300); …1次元配列から3次元配列に変更します
colormap gray …カラーマップでgrayを指定します
image(frame(:, :, 130)'); …130フレーム目を表示します
CASE2 | movieで動画を表示 |
---|
まずはパラメータを参照します。
printparam(param); …取得したパラメータを表示します
ここで必要なのは、SampledFrame(収集したフレーム数)です。
値は次のようになっていました。(図-20参照)
1 SampledFrame 450 int32
imageでSampledFrame(収集したフレーム数)分表示し、動画を表示する為のムービーフレームを作成します。(図-21参照)
for i = 1:450 …フレーム数分繰り返します
image(data{1}(:, :, i)'); …1フレームづつ表示します
f(i) = getframe; …ムービーフレームを作成します
end
これでムービーフレームが作成されました。
では、動画を表示してみましょう。(図-21参照)
movie(f); …ムービーフレームを再生します
動画が表示さましたね。
WAITモードでのデータ取得
現在実験中のショット番号でまだデータが存在しない場合、出現を待ってデータを取得したい場合があります。その場合、WAITモードで待ち時間を設定しデータを取得することができます。(Retrieveの使用方法はこちらをご覧ください)
データの出現を待ってくれるんだ! | |||
STEP1 | WAITモードでデータを取得してみよう |
---|
[data param code] = retrieve('Bolometer', 106173, 1, 1, 'wait', 'timeout', 120); …待ち時間を30秒に設定しデータの出現を待ちます
このショット番号はまだデータが無いため、データが出現するまで待ちます。(図-22参照)
データが出現した時点でデータを取得します。(図-23参照)
リアルタイムデータの取得
WE7000 および PXI デジタイザを用いる計測において、定常実験時などにリアルタイムデータ収集モードでサーバが動作している場合に、リアルタイムでのデータを取得することができます。リアルタイムデータの取得には、波形データの取得(WaveMonitor)と、カメラ画像データの取得(TVMonitor) の2種類があります。(WaveMonitor、TVMonitorの使用方法はこちらをご覧ください)
STEP1 | 波形データを取得してみよう |
---|
waveMonitor('CDP', 1); …波形データを取得します
新しいウィンドウが開き、波形データがリアルタイム表示されます。
終了する時は、'q'または'Q'を押します。
STEP2 | カメラ画像データを取得してみよう |
---|
tvMonitor('TSCCD', 1); …カメラ画像データを取得します
新しいウィンドウが開き、カメラ画像データがリアルタイム表示されます。
終了する時は、'q'または'Q'を押します。
デモジュレータのパラメータを取得
Retrieve_t(Ver.14.0.0以降)で、DTSモジュールを直接指定することにより、デモジュレータのパラメータを取得することができます。(Retrieve_tの使用方法はこちらをご覧ください)STEP1 | パラメータを取得してみよう |
---|
計測名を指定する代わりに、'DTS:'を付けてからDTSホスト名:DTSモジュール名を指定します。(図-26参照)
※時間軸データ配列には有効なデータは入りません。
※FPGA-DTSでは、TRG#1-6がCH#1-6、CLK#1-6がCH#7-12になっています。
[time tparam code] = retrieve_t('DTS:VME01', 98000, 1, 1); …dtsモジュールを指定し、tparamにパラメータの情報を取得します
これで、tparamにパラメータ情報が取得されました。
STEP2 | パラメータを表示してみよう |
---|
printparam(tparam); …取得したパラメータを表示します
デモジュレータのパラメータが表示されましたね。(図-27参照)
デモジュレータのパラメータも見れるんだね! | |||
参照サイトの切り替え
環境変数「INDEXSERVERNAME」で設定されているサイト以外のデータを参照する場合には、参照サイトを切り替える必要があります。(データ利用者の各々PC端末には、所属するサイトの実験データにのみアクセスが可能になっており、他サイトの実験データ参照には、別途、アクセス許可を得る必要があります。詳しくはこちらをご覧ください)
参照サイトを切り替えるにはChangeSite、現在の参照サイト名を表示するには、CurrentSiteを使用します。(ChangeSite、CurrentSiteの使用方法はこちらをご覧ください)
STEP1 | サイトを切り替えてみよう |
---|
code = changeSite('QUEST'); …参照サイトを切り替えます
STEP2 | サイトを確認してみよう |
---|
currentSite; …参照サイトを表示します
QUEST …現在の参照サイトが表示されます
と表示されましたね。(図-29参照)
これで現在の参照サイトが確認できました。
Retrieveのアンインストール
アンインストールは「コントロールパネル」-「アプリケーションの追加と削除」で行なってください。アンインストールを行うと、環境変数も自動的に削除されますが、うまく削除されない場合があります。
その場合は、手動で次の環境変数を削除してください。
- Retrieve
- INDEXSERVERNAME
アンインストールで自動的に環境変数も削除してくれるんだね。 | |||
クイズに挑戦!
こちらで勉強したことが理解できているかどうか、クイズに挑戦してみましょう!*全問正解者にはもれなくLABCOMより豪華記念品を贈呈します!皆さん、ふるってご解答ください。
Retrieveクイズに挑戦!
クイズの実行にはJRE(Java Runtime Environment)が必要です。
Oracleのサイトから最新版のJREをダウンロードし、インストールを行ってください。
また、IEをご利用の場合は、「ツール」→「インターネットオプション」で「詳細設定」タブをクリックし、「設定」で「Java(Sun)」の「<applet>にJava2を使用(再起動が必要)」にチェックを入れ「適用」をクリックし、その後IEを再起動してください。