目次
R3172+OPT20+OPT27+OPT74は株式会社アドバンテスト製の9kHz〜26.5GHzの周波数領域をカバーするポータブル・スペクトラムアナライザです。この広範囲において最高分解能30Hz(OPT27)、残留FM20Hzp-p、測波帯雑音-100dBc/Hz(OPT27、10kHzオフセット)という高度な基本性能を有しています。OPT74トラッキングジェネレーターは、100kHzから3GHzまで掃引可能です。
R3172は非常に多くの機能を持っており、それぞれGP-IB経由でコントロールする事ができます。このデバイスサポートでは、ベータトロンチューン測定に必要最低限な機能をサポートしています。
本デバイスサポートは、EPICS R313で開発したものです。EPICSそのものに対する説明、入門出家入道遁世については専門家に帰依するなり、コントロールグループのページをご参照なさるなりしてください。動作はPPC750+National Instruments製GPIBコントローラーで確認しています。
GDLコードを以下に示します。ご先祖筋のR3361デバイスサポートと良く似ていますが(というか、ほとんど流用)、月日は流れ、滄海変じて桑田となってしまい、結構変えないと動きませんでした。R3361と同じくSRQ割り込みがかかったとき、ステータスバイトをクリアするEPICSレコードが動作するようにしています。ということで、SRQのあとの動作は、このデータベースからFLINKしたデータベースが行うように、データベース内のリンクを作成する必要があります。
waveform転送はバイナリー転送です(7/2倍しか早くならないけど)。このため、waveform転送の時だけはデリミタをEOIのみにする必要があります。なお、横軸点数は1001点か501点かコマンドで選べますが、waveform変換は1001点版しか対応していませんのでご注意ください。
しつこく超う×××ったれな伝統に従い、ADVANTEST殿のSpectrum Analyzerは
トレースデータは「測定値」ではなく、画面上のトレースポジションを出力します。
しかも今回は恐れ入ったことに縦軸は1792から14592という
超訳分からん値となります。デバイスサポート内である程度
変換しても良いのですが、
何か私のごとくには理解不能な深遠な理由があるかも知れませんのでwaveform
にはこの値を直接出力することにしました。そこで、
使い物になるデータに変換するのは例によって例のごとく
EPICSシーケンサに
やらせています。
ステータスバイトクリアのデータベース(FBLAS2:SRQREC)のFLINK先のどこかに
calcレコード(FBLAS2:SWTRIG)をリンクしておき、これをモニターしてTRACE:Aを
SPECTRUM:AあるいはSPECTRUM:Bに変換します。
dbdファイルの中で次のように定義します。(自動的にできるはず)
#R3172 dbd list
device(ai,GPIB_IO,devAiR3172Gpib,"R3172")
device(ao,GPIB_IO,devAoR3172Gpib,"R3172")
device(bi,GPIB_IO,devBiR3172Gpib,"R3172")
device(bo,GPIB_IO,devBoR3172Gpib,"R3172")
device(stringin,GPIB_IO,devSiR3172Gpib,"R3172")
device(stringout,GPIB_IO,devSoR3172Gpib,"R3172")
device(longin,GPIB_IO,devLiR3172Gpib,"R3172")
device(longout,GPIB_IO,devLoR3172Gpib,"R3172")
device(mbbi,GPIB_IO,devMbbiR3172Gpib,"R3172")
device(mbbo,GPIB_IO,devMbboR3172Gpib,"R3172")
device(waveform,GPIB_IO,devWfR3172Gpib,"R3172")
このデバイスサポートで使うデータベースの例を示します。
DTYP | Record | Signal | Name | Function | Remarks
|
---|
R3172 | ao | 0 | $(USER):SETCF | 中心周波数設定 |
|
R3172 | ai | 1 | $(USER):GETCF | 中心周波数読み取り |
|
R3172 | ao | 2 | $(USER):SETSTARTF | スタート周波数設定 |
|
R3172 | ai | 3 | $(USER):GETSTARTF | スタート周波数読み取り |
|
R3172 | ao | 4 | $(USER):SETSTOPF | ストップ周波数設定 |
|
R3172 | ai | 5 | $(USER):GETSTOPF | ストップ周波数読み取り |
|
R3172 | ao | 6 | $(USER):SETCFSTEP | 周波数ステップ設定 | やっぱり要りますか?
|
R3172 | ao | 7 | $(USER):SETCFSTEP:AUTO | 周波数ステップ自動 | 本当に?
|
R3172 | ai | 8 | $(USER):GETCFSTEP | 周波数ステップ読み取り |
|
R3172 | ao | 9 | $(USER):SETSPAN | スパン周波数設定 |
|
R3172 | ai | 10 | $(USER):GETSPAN | スパン周波数読み取り |
|
R3172 | ao | 11 | $(USER):SETRBW | RBW設定 |
|
R3172 | ao | 12 | $(USER):SETRBW:AUTO | RBW自動 |
|
R3172 | ai | 13 | $(USER):GETRBW | RBW読み取り |
|
R3172 | ao | 14 | $(USER):SETVBW | VBW設定 |
|
R3172 | ao | 15 | $(USER):SETVBW:AUTO | VBW自動 |
|
R3172 | ai | 16 | $(USER):GETVBW | VBW読み取り |
|
R3172 | ao | 17 | $(USER):SETSWEEP | sweep設定 |
|
R3172 | ao | 18 | $(USER):SETSWEEP:AUTO | sweep自動 |
|
R3172 | ai | 19 | $(USER):GETSWEEP | VBW読み取り |
|
R3172 | ao | 20 | $(USER):SETAT | attenuator設定 |
|
R3172 | ao | 21 | $(USER):SETAT:AUTO | attenuator自動 |
|
R3172 | ai | 22 | $(USER):GETAT | attenuator読み取り |
|
R3172 | ao | 23 | $(USER):SETCPL:AUTO | coupling auto |
|
R3172 | ao | 24 | $(USER):SETYSCALE | Y軸設定 | 10,5,2,1のみ受け付ける(mbboにしろよ!)
|
R3172 | mbbi | 25 | $(USER):GETYSCALE | Y軸読み出し | 0=10dB,1=5dB,2=2dB,3=1dB
|
R3172 | ao | 26 | $(USER):SETREF | reference level設定 |
|
R3172 | ai | 27 | $(USER):GETREF | reference level読み取り |
|
R3172 | ao | 28 | $(USER):SETTGPWR | TG power設定 |
|
R3172 | ao | 29 | $(USER):SETTGPWR:ON | TG on |
|
R3172 | ao | 30 | $(USER):SETTGPWR:OFF | TG off |
|
R3172 | ai | 31 | $(USER):GETTGPWR | TG power読み取り |
|
R3172 | ao | 32 | $(USER):SETTGCAL:AUTO | TGトラッキング自動調整 |
|
R3172 | so | 33 | $(USER):TITLE | TITLE設定 | LON/たいとる/としてくだされ
|
R3172 | so | 34 | $(USER):TITLE:OFF | TITLE off |
|
R3172 | waveform | 35 | $(USER):GETTRACE:A | トレースA転送 | 1001点、1792から14592の値になる
|
R3172 | waveform | 36 | $(USER):GETTRACE:B | トレースB転送 | 1001点、1792から14592の値になる
|
R3172 | ao | 37 | $(USER):SETTRIG:SINGLE | シングルショットトリガー |
|
R3172 | ao | 38 | $(USER):SETTRIG:START | トリガースタート |
|
R3172 | ao | 39 | $(USER):SETTRIG:CONT | フリーラン |
|
R3172 | ao | 40 | $(USER):SETTRACE:CLEARA | トレースAクリア | いらん
|
R3172 | ao | 41 | $(USER):SETTRACE:CLEARB | トレースBクリア | 不要
|
R3172 | ao | 42 | $(USER):SETMARKER:PEAK | マーカーをpeakに |
|
R3172 | ao | 43 | $(USER):SETMARKER:ON | マーカーON |
|
R3172 | ao | 44 | $(USER):SETMARKER:OFF | マーカーをOFF | 要らんかも
|
R3172 | ao | 45 | $(USER):SETMARKER:DELTA | マーカーをdelta modeに |
|
R3172 | ao | 46 | $(USER):SETMARKER:NORMAL | マーカーをnormal modeに |
|
R3172 | ai | 47 | $(USER):GETMARKER:FREQ | マーカー周波数読み取り |
|
R3172 | ai | 48 | $(USER):GETMARKER:AMP | マーカーamplitude読み取り |
|
R3172 | ao | 49 | $(USER):SETSA:INIT | SA初期化 | やめて
|
R3172 | ao | 50 | $(USER):SETVEW:WRITEA | A write | ?
|
R3172 | ao | 51 | $(USER):SETVEW:WRITEB | B write | ?
|
R3172 | ao | 52 | $(USER):SETVEW:VIEWA | A view | ?
|
R3172 | ao | 53 | $(USER):SETVEW:VIEWB | B view | ?
|
R3172 | ao | 54 | $(USER):SETVEW:MAXA | A maxhold | ?
|
R3172 | ao | 55 | $(USER):SETVEW:MAXB | B maxhold | ?
|
R3172 | longout | 56 | $(USER):SETAVGA | A avarage回数設定 |
|
R3172 | ao | 57 | $(USER):SETVEW:AVGA:START | A Average start |
|
R3172 | ao | 58 | $(USER):SETVEW:AVGA:STOP | A Average stop |
|
R3172 | ao | 59 | $(USER):SOFTINIT | Status clear | 役に立たないかも
|
R3172 | longout | 60 | $(USER):SETAVGB | B avarage回数設定 |
|
R3172 | ao | 61 | $(USER):SETVEW:AVGB:START | B Average start |
|
R3172 | ao | 62 | $(USER):SETVEW:AVGB:STOP | B Average stop |
|
R3172 | longout | 63 | $(USER):SETTGMAN | TGトラッキングマニュアル調整 |
|
R3172 | so | 64 | $(USER):SRQON | SRQ ON | 掃引終了時だけにSRQ出る
|
R3172 | so | 65 | $(USER):SRQOFF | SRQ OFF |
|
R3172 | so | 66 | $(USER):SRQREC | ステータスバイトクリア | SRQ後このレコードが起動される
|
R3172 | so | 67 | $(USER):SETTRACE501 | 横軸501点に | しないで
|
R3172 | so | 68 | $(USER):SETTRACE1001 | 横軸1001点 | 初期状態
|
R3172 | mbbi | 69 | $(USER):GETTRACE:NUM | 横軸点数 | 0=501,1=1001
|
R3172 | so | 70 | $(USER):SETHISENSE:ON | Hi Sense On |
|
R3172 | so | 71 | $(USER):SETHISENSE:OFF | Hi Sense OFF |
|
R3172 | mbbi | 72 | $(USER):GETSENSE | Sense Mode | 0=OFF,1=ON
|
Soft | waveform | N/A | $(USER):SPECTRUM:A | トレースAの値 | シーケンサが変換
|
Soft | waveform | N/A | $(USER):SPECTRUM:B | トレースBの値 | シーケンサが変換
|
Soft | bi | N/A | $(USER):TRACE:SEL | SPECTRUMAB変換選択 | 0ならA、その他はB
|
Soft | calc | N/A | $(USER):SWTRIG | スイープ終了トリガ | シーケンサ使用
|
まだ全部はテストしていません。
データベースファイル本体例は以下をご参照ください。
通常通りのGP-IB設定およびシーケンサ設定をします。
memAddToPool(0x2000000,0x2000000)
enableSlaveA24()
sysA24MallocInit(0x40000)
dbLoadDatabase("dbd/fbppcApp.dbd")
dbLoadRecords("fbppcApp/Db/FBLSAA2.db","USER=FBLAS2, ADDR=A3")
nigpib_num_links = 1
ht2992_num_cards = 0
iocInit
seq &AD_SA2
EPICSシーケンサを使って波形転送をするためには、FBLSA2:SRQONを設定してください。
現在このspectrum analyzerは運転に使用していませんが、現有機のトラブル時に
は代替機として使用する予定です。とはいってもコマンド、トレースデータいずれ
をとっても互換性がないので、簡単にはいきませんけど。
Makoto Tobiyama
30/Apr/2004
Return to FB Home Page...