Retrieve
2010年1月2日以前のCDPデータ(制御データ)を取得するには、計測名、ショット番号、サブショット番号を次の通りに指定します。
計測名: |
※タグ番号の先頭に”0”がついている場合は0を省いてください 例)001→1 |
||||||
ショット番号: |
|
||||||
サブショット番号: |
|
例)
p=1
低速:retrieve,'BL-H1_M_BL_J-Volt-5',2020060321,1231,1,data,param=p
高速:retrieve,'HCSA-3USA3LOW-Strain-7-f',19980609,3,1,data,param=p
クエンチ:retrieve,'V_V-1F_LSD_L-Temp-6-q',19980916,2,1,data,param=p
ただし、低速計測でデータが欠落している時分(サブショット番号)を指定した場合、それより前のデータが取得されることがあります。
retrieveパラメータを同時に取得して、"startDatetime"、"endDatetime"にてデータの計測期間を確認してください。
1 startDatetime 2006-03-21 12:30:58 String
1 endDatetime 2006-03-22 00:30:28 String
ver14.1.0以前のRetrieveは、インストーラが32bit版と64bit版の2種類にわかれております。
64bit版のOSに32bit版のPV-WAVEをインストールした場合、Retrieveは32bit版をインストールしないと動作いたしません。OS-32bit、OS-64bitに関係なく、PV-WAVEの32bit版、64bit版に合わせてRetrieveのインストールを行ってください。
○ PV-WAVE(32)+Retrieve(32)
○ PV-WAVE(64)+Retrieve(64)
× PV-WAVE(32)+Retrieve(64)
× PV-WAVE(64)+Retrieve(32)
PV-WAVE(32)+Retrieve(32) | PV-WAVE(64)+Retrieve(64) | |
OS-32bit | ○ | × |
OS-64bit | ○ | ○ |
なお、ver15.0.0以降はインストーラが1つになり、Retrieveライブラリを自動選択するように、PV-WAVE、IDL、MATLABの各プロシジャを改修しました。
※ver.14.0.0以降はこちらのエラーは解消されております。
Linux(32bit)版IDL5.5でRetrieveを実行すると、稀に以下のエラーメッセージが表示されデータが取得できない場合があります。
-117: Inflate() failed
これは、Linux(32bit)版IDL5.5に元々組み込まれているデータ圧縮解凍ライブラリZLIBが、Retrieveで用いているものより旧いのバージョンであるため起こる現象で、 ごく一部のデータパターンでのみ発生するようです。
なお、Windows版ではLinux版とは動作メカニズムが異なるため、正常に動作します。
以下の場合に、このエラーメッセージが表示され取得できません
retrieve_t 未対応のモジュールで収集されているデータ
ADC(CPS412,HOUSIN_C012_2), PHA(TOYO629,CPHA1219),
カメラ(PXI1409,PXI1411)による収集データ
※HOUSIN_C012_2, TOYO629 については、Ver. 15.0.0 から対応 (ただしMATLABを除く)
※第12サイクルまでに対応予定です(2.と同じく過去データにも対応します)
ただし外部の独自クロックで動作しているモジュールについては未定
時間軸情報システムが未対応の時期に収集されたデータ
※モジュール設定の履歴情報から再構成し、使用可能になりましたら該当の方にご連絡いたします
標準的なデモジュレータ以外のクロックでサンプリングされたデータ
クロックジェネレータ(SEGDCM,CTS504)からのクロックにより収集しているデータ
※SEGDCM及びCTS504のクロックの関連付け情報も設定できるようになりますので、第12サイクルより対応予定です
以前のデータ収集プログラムでは、データの分解能(ビット長)をヘッダー情報に保持していないため、データ転送側で、Resolutionのデフォールト値を16ビットとして
与えております。
これは、 当時のデジタイザのうちAurora14が12ビット長、TOYO629が16ビット長で動作していたため、
両者の大きい方をとって、デフォールト値を16ビットとしました。
このため、以前のデータ収集プログラムで収集したデータのパラメータを表示すると
Resolution(bit)=16
と表示されますが、Aurora14の場合は正しくは12ビット長です。
なお、正しくResolutionが表示されるのは、計測別パラメータ取得開始番号一覧に記載されているショット番号以降になります。
以下の説明では、パラメータ名は緑字で、パラメータ値が文字列の場合は、“”で括ってあります。
*外部クロックに設定され、デモジュレータを利用している場合は、retrieve_tの利用をお勧めます。
ExtIntClock が“External”の場合
外部クロックでサンプリングが動作しています。 (retrieve_t推奨)
ただし、Aurora14の外部クロック回路上、サンプリング周期は ClockSpeed の設定により、
分周率=ClockSpeed値/1 MHz
で分周されるので、実際のサンプリング周波数=外部クロック周波数×分周率、になります。
外部クロックの周期そのままでサンプリングを実行するには、ClockSpeed が1MHzになっている必要があります。
ExtIntClock が“Internal”の場合
ClockSpeed の値がサンプリング周期です。単位はHzです。
例) ClockSpeed=1000の場合1000Hz 1msec周期
SEG-ADCモジュールは常に外部クロックでサンプリングが動作しています。
外部クロックはSEG-DCMモジュールから供給されることが多いです。
SEG-DCMでのサンプリング周期の求め方は、
Clock が“External”の場合
外部クロックでサンプリングが動作しています。 (retrieve_t推奨)
Clock が“(整数値)”の場合
Clock の値がサンプリング周期です。 単位はHzです。
例) Clock=10000の場合 10KHz 0.1msec周期
以下の説明では、パラメータ名は緑字で、パラメータ値が文字列の場合は、“”で括ってあります。
*外部クロックに設定され、デモジュレータを利用している場合は、retrieve_tの利用をお勧めます。
ClockSourceが“External(BUSCLK)”、“External”の場合
外部クロックでサンプリングが動作しています。(retrieve_t推奨)
Ext.ClockInterval(uSec)の値がサンプリング周期です。 単位はuSecです。
例) Ext.ClockInterval(uSec)=10000の場合 100Hz 10msec周期ClockSourceが“Internal”の場合
ClockInterval(uSec)の値がサンプリング周期です。 単位はuSecです。
例) ClockInterval(uSec)=10000の場合100Hz 10msec周期ただし、WE7251モジュールはCH間はマルチプレクサ切り換えなので、CH間のタイミングは同時ではありません。
ClockSource=“External”はWE7275モジュールのみです。
以下の説明では、パラメータ名は緑字で、パラメータ値が文字列の場合は、“”で括ってあります。
※外部クロックに設定され、デモジュレータを利用している場合は、retrieve_tの利用をお勧めます。
SamplingTimeBase が“External”の場合
外部クロックでサンプリングが動作しています。(retrieve_t推奨)
算出方法は、“InternalClock(20Mhz)”と同じです。SamplingTimeBase が“InternalClock(20Mhz)”の場合
SamplingClock の値がサンプリングのベースクロックです。 単位はHzです。
SamplingInterval の値がべースクロックに対する間隔です。
サンプリング周期 = SamplingClock の値 / SamplingInterval の値
例) SamplingClock=20,000,000、SamplingInterval=20の場合
20,000,000/20=1000,000(1Mhz) 1usec周期
ただし、SamplingInterval の値が0の場合は1とみなしてください。
RTretrieveはデフォルトで UDP:9832 のポート番号でデータ・ストリームの受信を行います.このため,WindowsXP SP2やWindows Server 2003以降では,以下のようにWindowsファイアーウォールの例外設定をする必要があります.これにより通常はデータ・ストリームの受信が可能になります.しかし,NIFS-VPN,LHD-VPNなどを利用するため,VPNクライアント・ソフトウェアをインストールしているモバイル・ノート等のPCでは,さらに注意が必要です.
Cisco VPN Client では,オプション(O)で『ステートフル ファイアウォール(常にオン)(S)』をチェックして有効にすることができますが,この(常にオン)はVPN不使用時もファイアウォールが有効になります.このため,RTretrieve が利用する UDP:9832 ポートへの受信パケットが自動的に落とされてしまいます.これはFTPクライアントでも同じ症状となります.
Cisco VPN ClientをインストールしたPCでRTretrieveを使用される場合は,ステートフル ファイアウォールを有効(常にオン)の設定のままにしない,ようご注意ください.
現状では,retrieve_tプロシージャでは時間軸のバイナリデータのみしか取得できませんが,retrieveプロシージャで計測名に"DTS"を指定してデモジュレータ情報を取得することができます.(DTS計測チャネル番号対応リストはこちら)
SiFNA計測のデモジュレータ情報は,このDTSのチャネル#2に格納されていますので,次のようにして取得できます.
WAVE> retrieve,'DTS',61170,1,2,data,param=p
---Arc Shot Infomation---
Index Server Name = DasIndex.LHD.nifs.ac.jp
Trans Server Name = DAS31.LHD.nifs.ac.jp
Shot Number = 61170
Sub Shot Number = 1
Channel = 2: 2
DATE = 2005-12- 8
TIME = 9:28:58
---Channel Information---
Channel Number = 2
Data Type = RAW
Data Size = 44
Compress Size = 41
WAVE> printparam,p
parameter count = 39
channel count = 1
Note: Parameter value is shown first 16 characters.
CH Name Value Type
1 Comment String
1 ChannelNumber 2 Integer
1 ModuleGroup CAMAC String
1 ModuleType DTS String
1 DataType RAW String
1 Resolution(bit) 16 Integer
1 DataLength(byte) 44 Integer
1 TimeOfCollectedThu Dec 08 09:26:48 200 String
1 EventOutMode On String
1 BaseRate 1000000 Integer
1 ExternalTrigger Valid String
1 ClockSource External String
1 VMEbusInterrupt Disable String
1 MoveMode MODE0 String
1 InterruptTrigger Disable String
1 InterruptEvent Disable String
1 InterruptUninhibit Disable String
1 InterruptInhibit Disable String
1 InterruptError Disable String
1 InterruptClockError Disable String
1 InterruptSetup Disable String
1 InterruptStop Disable String
1 TimerTriggerChannel 1 Integer
1 DelayLinePreset 0 Integer
1 InternalDelay 15 Integer
1 ChannelNumberInModule 2 Integer
1 DvdRange 1msec String
1 DvdMagnification 5 Integer
1 DvdConnectDiag. SiFNA String
1 DelayTime_s 0. Double
1 PulseWidth_s 11. Double
1 RepetitionTime_s 11.1 Double
1 DelayTime 119999985 Integer
1 PulseWidth 11000000 Integer
1 RepetitionTime 11100000 Integer
1 RepetitionCount 1 Integer
1 TriggerSelect 1 Integer
1 ConnectDiag. SiFNA String
1 HostName 133.75.175.100 String
放電開始からのトリガ遅延時間は,次のようにして求められます.
トリガ遅延時間(μS)=(DelayTime+ InternalDelay)*(1000,000/BaseRate) -120,000,000
ただし,わざわざ計算しなくても,プラズマ計測制御GUIから設定した値がそのまま格納されている次のパラメータを使用
すれば同じ結果が得られます.(単位は秒)
1 DelayTime_s 0. Double
PulseWidth_s 、RepetitionTime_s も同様にGUIから設定された値です.
なお,分周クロックについては,BaseRateを考慮する必要はありません.
「DTS計測チャネル番号対応リスト(8チャンネル/デモジュレータ単位)」
CH.1 = Langmuir2
CH.2 = SiFNA
CH.3 = Magnetics
CH.4 = Magnetics
CH.5 = SXmp
CH.6 = SX8O
CH.7 = SXfluc
CH.8 = SX8O
CH.9 = FIR2
CH.10 = FIR2
CH.11 = FIR2
CH.12 = FIR2
CH.13 = FIR2
CH.14 = FIR2
CH.15 = FIR2
CH.16 = FIR2
CH.17 = FIR1
CH.18 = FIR1
CH.19 = FIR1
CH.20 = FIR1
CH.21 = FIR1
CH.22 = FIR1
CH.23 = FIR1
CH.24 = FIR1
CH.25 = MMWINT
CH.26 = MMWINT
CH.27 = MMWINT
CH.28 = MMWINT
CH.29 = MMWINT
CH.30 = MMWINT
CH.31 = MMWINT
CH.32 = MMWINT
CH.33 = PHA
CH.34 = PHA
CH.35 = PHA
CH.36 = PHA
CH.37 = PHA
CH.38 = PHA
CH.39 = PHA
CH.40 = PHA
CH.41 = Brems
CH.42 = -
CH.43 = Halpha
CH.44 = Halpha
CH.45 = Halpha
CH.46 = -
CH.47 = -
CH.48 = Brems
CH.49 = Halpha
CH.50 = Brems
CH.51 = Halpha
CH.52 = Halpha
CH.53 = Halpha
CH.54 = Halpha
CH.55 = Halpha
CH.56 = Brems
CH.57 = FIG
CH.58 = FIG
CH.59 = FIG
CH.60 = FIG
CH.61 = FIG
CH.62 = FIG
CH.63 = FIG
CH.64 = FIG
CH.65 = ECH
CH.66 = -
CH.67 = -
CH.68 = -
CH.69 = -
CH.70 = -
CH.71 = -
CH.72 = -
CH.73 = Fastion
CH.74 = -
CH.75 = -
CH.76 = -
CH.77 = -
CH.78 = -
CH.79 = -
CH.80 = -
CH.81 = NBEL
CH.82 = NBEL
CH.83 = NBEL
CH.84 = NBEL
CH.85 = NBEL
CH.86 = NBEL
CH.87 = NBEL
CH.88 = NBEL
CH.89 = ICHVOLT
CH.90 = ICHVOLT
CH.91 = ICHVOLT
CH.92 = ICHVOLT
CH.93 = ICHVOLT
CH.94 = ICHVOLT
CH.95 = ICHVOLT
CH.96 = ICHVOLT
CH.97 = GPCRADH
CH.98 = GPCRADH
CH.99 = GPCRADH
CH.100 = GPCRADH
CH.101 = GPCRADH
CH.102 = GPCRADH
CH.103 = GPCRADH
CH.104 = GPCRADH
CH.105 = RADL
CH.106 = GPCRADH
CH.107 = -
CH.108 = RADL
CH.109 = -
CH.110 = -
CH.111 = GPCRADH
CH.112 = -
CH.113 = LABCOM
CH.114 = LABCOM
CH.115 = LABCOM
CH.116 = LABCOM
CH.117 = LABCOM
CH.118 = LABCOM
CH.119 = LABCOM
CH.120 = LABCOM
CH.121 = TESPEL
CH.122 = -
CH.123 = -
CH.124 = -
CH.125 = -
CH.126 = -
CH.127 = TESPEL
CH.128 = -
CH.129 = MWRM
CH.130 = MWRM
CH.131 = MWRM
CH.132 = MWRM
CH.133 = MWRM
CH.134 = MWRM
CH.135 = MWRM
CH.136 = MWRM
CH.137 = Bolometer
CH.138 = ImpMon
CH.139 = Magnetics
CH.140 = Bolometer
CH.141 = Langmuir
CH.142 = ImpMon
CH.143 = SiFNA
CH.144 = SiFNA
CH.145 = HIBP
CH.146 = HIBP
CH.147 = HIBP
CH.148 = HIBP
CH.149 = HIBP
CH.150 = HIBP
CH.151 = HIBP
CH.152 = HIBP
CH.153 = NPA
CH.154 = NPA
CH.155 = NPA
CH.156 = NPA
CH.157 = NPA
CH.158 = NPA
CH.159 = NPA
CH.160 = NPA
CH.161 = Bolometer
CH.162 = FPellet
CH.163 = Reflectmetry
CH.164 = MMimg
CH.165 = Reflectmetry
CH.166 = Emoto
CH.167 = MMimg
CH.168 = MMimg
CH.169 = USRM
CH.170 = Magnetics
CH.171 = Flxloop
CH.172 = MMimg
CH.173 = Magnetics
CH.174 = MMimg
CH.175 = FastCamera
CH.176 = -
平成12年4月27日現在,Windows2000 で動作が確認されているRetrieveは以下の通りです.
【動作確認済み】
平成14年4月27日現在,WindowsXP でも以下の動作が確認されています.
【動作確認済み】
PV-WAVE 上で Retrieve を実行すると
% LINKNLOAD: Error loading sharable executable.
Symbol: PvwRetrieveGetInfo, File = C:\LABCOM\Retrieve\bin\retrieve.dll Bad file
というエラーメッセージが出る。
これは、Retrieve が使用している DLL ファイルと同名のファイルがシステムフォルダ等にあるために起ります。
これを回避する方法を以下に示します。
(Retrieveをインストールしたフォルダ)\lib\pv-wave\retrieve_pvwave.pro を以下の方法で変更します。
テキストエディタで開いて、次の2行を探します。
result = LINKNLOAD ( object, symbol_GetInfo,Diag_Name, Server, IndexServer,
AShot_Number, ASub_Shot_Number, $
Shot_Number, Sub_Shot_Number, LastCh, YY, MM, DD, hh, m, ss, manageVersion,
comment, commentsize, sch, ech )
見付けたら、前と後に次のように1行づつ追加します。
pushd, !RETRIEVE + '\\bin'
result = LINKNLOAD ( object, symbol_GetInfo,Diag_Name, Server,
IndexServer, AShot_Number, ASub_Shot_Number, $
Shot_Number, Sub_Shot_Number, LastCh, YY, MM, DD, hh, m, ss, manageVersion,
comment, commentsize, sch, ech )
popd
変更後、上書き保存してからPV-WAVEを立ち上げなおします。
この問題は、将来的なバージョンで修正する予定です。
取得パラメータの1行は次の4項目からなり,文字列として返されます.
モジュール名,パラメータ名,パラメータ値,データタイプ
(注)dbstoreで登録したデータの場合,モジュール名は"General"(固定)となります.
例えば,Aurora14の入力電圧範囲は次の3つのパラメータで決定されます.
(但し,1つのモジュール内では,各チャネルの設定は全て同じという前提です)
Aurora14,Range,5,5
Aurora14,RangeFactor,2,4
Aurora14,RangePolarity,Bipolar,1
これらの値の意味はモジュールのマニュアルより,
Range=5V, RangeFactor=x2, RangePolarity=Bipolar
であることが判るので,結局電圧範囲は-10V~+10Vとなります.
Aurora14モジュールのパラメータの中には,12ビット分解能を示すパラメータがないのでAurora14=12bit
ADCとプログラムで区別することになります.
RetrieveをLinux上でコンパイルすると、次のようなエラーが出てコンパイルが停止する場合があります。
include/DMODNames.h:64: error: brace-enclosed initializer used to initialize 'char*'
PV-WAVEやIDLは、標準プラットホームが Redhat Linux系となっており、SUSE
Linux等には未対応です。ですからRetrieveパッケージもそれに合わせてRedhat系で開発動作検証を行っています。
Linuxのディストリビューションは数が多いので、各ディストリビューションで全て動作確認を取るのは事実上不可能です。そのためにLinux/UNIX向け配布にはソースコードを添付しておりますので、標準のRedhat系環境以外でご利用のユーザ各位には、自助努力をお願いします。
このエラーは、コンパイラが許容するC言語書式の変更により、エラーとして認識されるようになったものですから、許容される書式に書換えてもらえば結構です。ヒントは次のとおりです。
static const char *paramname[MAX_PARAM]={
"control ",
"mode ",
…
};
retrieve ファイルを以下のように見ていただくと判りますが、retrieve単体コマンドは、環境に依存せず動作確認ができるよう静的リンク
された実行形式にしてあります。
% file retrieve
retrieve: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for
GNU/Linux 2.2.5, statically linked, not stripped
これに対して、PV-WAVEやIDL中から呼び出すRetrieveプロシージャの本体は、動的リンクライブラリ(retrieve.dll あるいは
libretrieve.so) であり、これは静的リンクされたコマンドと異なり、
% ldd libretrieve.so
libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x400a9000)
libz.so.1 => /usr/lib/libz.so.1 (0x4015c000)
libpq.so.3 => /usr/lib/libpq.so.3 (0x4016a000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x40185000)
libc.so.6 => /lib/tls/libc.so.6 (0x42000000)
libssl.so.4 => /lib/libssl.so.4 (0x401b2000)
libcrypto.so.4 => /lib/libcrypto.so.4 (0x401e8000)
libdl.so.2 => /lib/libdl.so.2 (0x402d9000)
libnsl.so.1 => /lib/libnsl.so.1 (0x402dd000)
libcom_err.so.3 => /usr/kerberos/lib/libcom_err.so.3 (0x402f2000)
libresolv.so.2 => /lib/libresolv.so.2 (0x402f4000)
libkrb5.so.3 => /usr/kerberos/lib/libkrb5.so.3 (0x40306000)
libk5crypto.so.3 => /usr/kerberos/lib/libk5crypto.so.3 (0x40365000)
libm.so.6 => /lib/tls/libm.so.6 (0x40375000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x40397000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
libgssapi_krb5.so.2 => /usr/kerberos/lib/libgssapi_krb5.so.2 (0x4039f000)
とこれだけのランタイム・ライブラリに動的に依存しています。そのため、これら全てがシステムにインストールされているこ
とが動作条件になります。OS/ディストリビューションの違いによって、システムライブラリの依存関係もある程度変わりますので、必ずしも
このリスト例と同じになる訳ではありませんが、ここで、
libpq.so.3 => not found
のように1つでも依存ライブラリを見つけられないと、動作可能な状態にはなりません。
該当パッケージが正しくインストールされているかを確認してください。Retrieve動的リンクライブラリは標準ライブラリ以外に postgresql,libz,openssl など のパッケージに依存して(使って)います。もしソースコードをコンパイルする場合にも、これらの*-dev版(開発パッケージ)がインストールされている必要があります。