目次
HP8594Eは9kHz〜2.9GHzまでの周波数帯域をカバーするポータブル・スペクトラム・アナライザです。KEKB-FBではHP8594E+OP140(狭帯域幅及び高安定周波数基準)+OP010(トラッキング・ジェネレーター)をベータトロンチューン測定用にHER、LERにそれぞれ1台ずつ使っています。GP-IBインターフェースを通してEPICSでリモート制御しています。また背面から出ているビデオ信号をコントロール室までビデオ光変換でもってきて、コントロール室でリアルタイムに画像をみることができるようにしています。
- ベータトロンチューン測定システム
HP8594Eは非常に多くの機能を持っており、それぞれGP-IB経由でコントロールする事ができます。このデバイスサポートでは、ベータトロンチューン測定に必要な機能を中心に多くの機能をサポートするように努力しましたが、バグがとりきれないfunction、使わない方がいい機能もあります。
本デバイスサポートは、EPICS R312で開発したもので、様々な障害を経てR313最新版で大過なく使用しています。EPICSそのものに対する説明、入門出家入道遁世については専門家に帰依するなり、コントロールグループのページをご参照なさるなり勝手になさってください。動作はPPC603で確認しています。
GDLコードのみを以下に示します。waveform変換用のfunctionをもっています。データ区切りはcrなので、crごとにデータを取り出す必要があります。
dbdファイルの中で次のように定義します。(自動的にできるはず)
#HP8590 dbd list
device(ai,GPIB_IO,devAiHP8590Gpib,"HP8590")
device(ao,GPIB_IO,devAoHP8590Gpib,"HP8590")
device(bi,GPIB_IO,devBiHP8590Gpib,"HP8590")
device(bo,GPIB_IO,devBoHP8590Gpib,"HP8590")
device(stringin,GPIB_IO,devSiHP8590Gpib,"HP8590")
device(stringout,GPIB_IO,devSoHP8590Gpib,"HP8590")
device(longin,GPIB_IO,devLiHP8590Gpib,"HP8590")
device(longout,GPIB_IO,devLoHP8590Gpib,"HP8590")
device(mbbi,GPIB_IO,devMbbiHP8590Gpib,"HP8590")
device(mbbo,GPIB_IO,devMbboHP8590Gpib,"HP8590")
device(waveform,GPIB_IO,devWfHP8590Gpib,"HP8590")
このデバイスサポートで使うデータベースの例(HER用SA)を示します。
DTYP | Record | Signal | Name | Function | 通常使用 | Remarks
|
---|
HP8590 | ao | 0 | FBH_SA:set_cf | 中心周波数設定 | ○ |
|
HP8590 | ao | 1 | FBH_SA:set_cf_up | 周波数ステップアップ | |
|
HP8590 | ao | 2 | FBH_SA:set_cf_dn | 周波数ステップダウン | |
|
HP8590 | ai | 3 | FBH_SA:get_cf | 中心周波数読み取り | ○ |
|
HP8590 | ao | 4 | FBH_SA:set_startf | スタート周波数設定 | |
|
HP8590 | ao | 5 | FBH_SA:set_startf_up | スタート周波数ステップアップ | |
|
HP8590 | ao | 6 | FBH_SA:set_startf_dn | スタート周波数ステップダウン | |
|
HP8590 | ai | 7 | FBH_SA:get_startf | スタート周波数読み取り | ○ |
|
HP8590 | ao | 8 | FBH_SA:set_stopf | ストップ周波数設定 | |
|
HP8590 | ao | 9 | FBH_SA:set_stop_up | ストップ周波数ステップアップ | |
|
HP8590 | ao | 10 | FBH_SA:set_stopf_dn | ストップ周波数ステップダウン | |
|
HP8590 | ai | 11 | FBH_SA:get_stopf | ストップ周波数読み取り | ○ |
|
HP8590 | ao | 12 | FBH_SA:set_cf_step | 周波数ステップ設定 | |
|
HP8590 | ao | 13 | FBH_SA:set_cf_step_up | 周波数ステップアップ | |
|
HP8590 | ao | 14 | FBH_SA:set_cf_step_dn | 周波数ステップダウン | |
|
HP8590 | ao | 15 | FBH_SA:set_cf_step_auto | 周波数ステップ自動 | |
|
HP8590 | ai | 16 | FBH_SA:get_cf_step | 周波数ステップ読み取り | |
|
HP8590 | ao | 17 | FBH_SA:set_span | スパン周波数設定 | ○ |
|
HP8590 | ao | 18 | FBH_SA:set_span_up | スパン周波数ステップアップ | |
|
HP8590 | ao | 19 | FBH_SA:set_span_dn | スパン周波数ステップダウン | |
|
HP8590 | ai | 20 | FBH_SA:get_span | スパン周波数読み取り | ○ |
|
HP8590 | ao | 21 | FBH_SA:set_rbw | RBW設定 | ○ |
|
HP8590 | ao | 22 | FBH_SA:set_rbw_up | RBWステップアップ | |
|
HP8590 | ao | 23 | FBH_SA:set_rbw_dn | RBWステップダウン | |
|
HP8590 | ao | 24 | FBH_SA:set_rbw_auto | RBW自動 | |
|
HP8590 | ai | 25 | FBH_SA:get_rbw | RBW読み取り | ○ |
|
HP8590 | ao | 26 | FBH_SA:set_vbw | VBW設定 | ○ |
|
HP8590 | ao | 27 | FBH_SA:set_vbw_up | VBWステップアップ | |
|
HP8590 | ao | 28 | FBH_SA:set_vbw_dn | VBWステップダウン | |
|
HP8590 | ao | 29 | FBH_SA:set_vbw_auto | VBW自動 | ○ |
|
HP8590 | ai | 30 | FBH_SA:get_vbw | VBW読み取り | ○ |
|
HP8590 | ao | 31 | FBH_SA:set_sweep | sweep設定 | ○ |
|
HP8590 | ao | 32 | FBH_SA:set_sweep_up | sweepステップアップ | |
|
HP8590 | ao | 33 | FBH_SA:set_sweep_dn | sweepステップダウン | |
|
HP8590 | ao | 34 | FBH_SA:set_sweep_auto | sweep自動 | ○ |
|
HP8590 | ai | 35 | FBH_SA:get_sweep | VBW読み取り | ○ |
|
HP8590 | ao | 36 | FBH_SA:set_at | attenuator設定 | ○ |
|
HP8590 | ao | 37 | FBH_SA:set_at_up | attenuatorステップアップ | |
|
HP8590 | ao | 38 | FBH_SA:set_at_dn | attenuatorステップダウン | |
|
HP8590 | ao | 39 | FBH_SA:set_at_auto | attenuator自動 | ○ |
|
HP8590 | ai | 40 | FBH_SA:get_at | attenuator読み取り | ○ |
|
HP8590 | mbbo | 41 | FBH_SA:set_couple | coupling設定 | | AC/DC
|
HP8590 | mbbi | 42 | FBH_SA:get_couple | coupling読み取り | |
|
HP8590 | ao | 43 | FBH_SA:set_log_sc | log scale設定 | | dB/div
|
HP8590 | ao | 44 | FBH_SA:set_log_sc_up | log scaleステップアップ | |
|
HP8590 | ao | 45 | FBH_SA:set_log_sc_dn | log scaleステップダウン | |
|
HP8590 | ai | 46 | FBH_SA:get_log_sc | log scale読み取り | |
|
HP8590 | ao | 47 | FBH_SA:set_linear | linear scale設定 | | 使わない
|
HP8590 | ao | 48 | FBH_SA:set_ref | reference level設定 | ○ |
|
HP8590 | ao | 49 | FBH_SA:set_ref_up | reference levelステップアップ | |
|
HP8590 | ao | 50 | FBH_SA:set_ref_dn | reference levelステップダウン | |
|
HP8590 | ai | 51 | FBH_SA:get_ref | reference level読み取り | ○ |
|
HP8590 | ao | 52 | FBH_SA:set_srcat | TG src attenuator設定 | | 変なので使わない
|
HP8590 | ao | 53 | FBH_SA:set_srcat_up | TG src attenuatorステップアップ | | 変なので使わない
|
HP8590 | ao | 54 | FBH_SA:set_srcat_dn | TG src attenuatorステップダウン | | 変なので使わない
|
HP8590 | ao | 55 | FBH_SA:set_srcat_auto | TG src attenuator自動 | ○ |
|
HP8590 | ai | 56 | FBH_SA:get_srcat | TG src attenuator読み取り | |
|
HP8590 | ao | 57 | FBH_SA:set_srcpwr | TG src pwr設定 | ○ | dBm
|
HP8590 | ao | 58 | FBH_SA:set_srcpwr_up | TG src pwrステップアップ | |
|
HP8590 | ao | 59 | FBH_SA:set_srcpwr_dn | TG src pwrステップダウン | |
|
HP8590 | ao | 60 | FBH_SA:set_srcpwr_on | TG src pwr on | ○ |
|
HP8590 | ao | 61 | FBH_SA:set_srcpwr_off | TG src pwr off | ○ |
|
HP8590 | ai | 62 | FBH_SA:get_srcpwr | TG src pwr読み取り | ○ | dBm
|
HP8590 | ao | 63 | FBH_SA:set_srctkpk | TGトラッキング自動調整 | 絶対× | この機能自体が極度に呪われているので決して使わない
|
HP8590 | mbbo | 64 | FBH_SA:set_grat | Grating ON/OFF | |
|
HP8590 | so | 65 | FBH_SA:set_title | title設定 | ○ |
|
HP8590 | waveform | 66 | FBH_SA:get_trace_a | トレースA転送 | ○ | 399点
|
HP8590 | waveform | 67 | FBH_SA:get_trace_b | トレースB転送 | |
|
HP8590 | waveform | 68 | FBH_SA:get_trace_eos | トレースAをスイープ終了後転送 | | 不調
|
HP8590 | ao | 69 | FBH_SA:set_trigger_single | シングルショットトリガー | ○ |
|
HP8590 | ao | 70 | FBH_SA:set_trigger_start | トレーススタート | ○ |
|
HP8590 | ao | 71 | FBH_SA:set_trace_a_clrw | トレースAクリア | |
|
HP8590 | ao | 72 | FBH_SA:set_trace_b_clrw | トレースBクリア | |
|
HP8590 | ao | 73 | FBH_SA:set_marker_peak_eos | スイープ終了後マーカーをpeakに | | 不調
|
HP8590 | ao | 74 | FBH_SA:set_marker_peak_nh | マーカーを第2peakに | |
|
HP8590 | ao | 75 | FBH_SA:set_marker_peak_nr | マーカーを右側の次のpeakに | |
|
HP8590 | ao | 76 | FBH_SA:set_marker_peak_nl | マーカーを左側の次のpeakに | |
|
HP8590 | ao | 77 | FBH_SA:set_marker_delta | マーカーをdelta modeに | |
|
HP8590 | ao | 77 | FBH_SA:set_marker_delta | マーカーをdelta modeに | |
|
HP8590 | ao | 78 | FBH_SA:set_marker_normal | マーカーをnormal modeに | ○ |
|
HP8590 | ai | 79 | FBH_SA:get_marker_freq | マーカー周波数読み取り | ○ | Hz
|
HP8590 | ai | 80 | FBH_SA:get_marker_amp | マーカーamplitude読み取り | ○ | dBm
|
HP8590 | longout | 81 | FBH_SA:set_marker_act | アクティブマーカー設定 | |
|
HP8590 | longin | 82 | FBH_SA:get_marker_act | アクティブマーカー読み取り | |
|
HP8590 | ao | 83 | FBH_SA:set_marker_center | マーカー周波数をcenter frequencyに | |
|
HP8590 | mbbo | 84 | FBH_SA:set_marker_count | マーカーカウンターモードON/OFF | |
|
HP8590 | longout | 85 | FBH_SA:set_marker_fc_res | マーカーカウンターモードresolution | | Hz
|
HP8590 | longin | 86 | FBH_SA:get_marker_fc_res | マーカーカウンターモードresolution | | Hz
|
HP8590 | ao | 87 | FBH_SA:set_marker_off | マーカーOFF | |
|
HP8590 | longin | 88 | FBH_SA:get_marker_xpos | マーカーの画面上の位置 | |
|
HP8590 | mbbo | 89 | FBH_SA:set_view_trace | 表示トレース設定 | | A,B,C
|
HP8590 | ao | 90 | FBH_SA:set_sa_init | SA初期化 | ○ |
|
HP8590 | ao | 91 | FBH_SA:set_cont_sweep | 連続sweep | ○ |
|
HP8590 | ao | 92 | FBH_SA:set_maker_peak | Markerをpeakに | ○ |
|
HP8590 | ao | 93 | FBH_SA:dispose_all | user defined functionをすべてクリア | | 使わない
|
HP8590 | ao | 94 | FBH_SA:dispose_oneos | EOSでuser defined functionをすべてクリア | | 使わない
|
HP8590 | ao | 95 | FBH_SA:set_trace_maxhold_a | Trace Aをmaxholdに | |
|
HP8590 | ao | 96 | FBH_SA:set_trace_maxhold_b | Trace Bをmaxholdに | |
|
HP8590 | longout | 97 | FBH_SA:set_trace_vavg | video avarage設定 | |
|
HP8590 | ao | 98 | FBH_SA:set_trace_vavg_on | video avarage on | |
|
HP8590 | ao | 99 | FBH_SA:set_trace_vavg_off | video avarage off | |
|
HP8590 | ai | 103 | FBH_SA:get_trace_eos | sweep終了後peak読み取り | | 不調
|
HP8590 | ai | 104 | FBH_SA:get_eos | sweep終了後marker読み取り | | 不調
|
HP8590 | ao | 105 | FBH_SA:set_srq | SRQ強制発行 | |
|
HP8590 | ao | 106 | FBH_SA:rel_srq | SRQ取り消し | |
|
HP8590 | longin | 107 | FBH_SA:get_stb | ステータスビット読み込み | |
|
HP8590 | longout | 109 | FBH_SA:set_srctk | トラッキングセット | ○ |
|
HP8590 | longin | 110 | FBH_SA:get_srctk | トラッキング設定値 | ○ |
|
初めはパネル機能をすべてコントロールできるように作っていったが、自動コントロールという観点からは結構余計だったと思う。基本機能さえサポートすれば良く、あとの細かい部分はユーザーインターフェース上で行った方が良い。
通常通りのGP-IB設定をすればOKです。
このデバイスサポートは通常使用では何の問題もなく動いていますが、何らかの機会にこける(IOCごとこける、単にGP-IBのエラーが出るとかスペクトラムアナライザが暴走するという訳ではない)ことがあります。どうもメモリーリークあるいはスタック食いつぶしが起きている様ですが、私の能力ではまだつぶしきれていません。
Makoto Tobiyama
16/Mar/2001
Return to FB Home Page...