[KEKB Bunch Feedback Group]

Hewlett Packard製HP8594用EPICS Device Support(Japanese)


by とびやま まこと(Makoto Tobiyama)/KEKB ビームモニターグループ

警告
以下の記述に関しては、意図する、しないに関わらず多くの誤り、誤解が含まれていると思われますので、決して信用してはいけません。これを信じて起きた損害に関しては、当方は一切責任を持ちません。


If you need contact with the author, please E-mail makoto.tobiyama@kek.jp.
目次

1.はじめに

HP8594Eは9kHz〜2.9GHzまでの周波数帯域をカバーするポータブル・スペクトラム・アナライザです。KEKB-FBではHP8594E+OP140(狭帯域幅及び高安定周波数基準)+OP010(トラッキング・ジェネレーター)をベータトロンチューン測定用にHER、LERにそれぞれ1台ずつ使っています。GP-IBインターフェースを通してEPICSでリモート制御しています。また背面から出ているビデオ信号をコントロール室までビデオ光変換でもってきて、コントロール室でリアルタイムに画像をみることができるようにしています。

2.サポートする機能

HP8594Eは非常に多くの機能を持っており、それぞれGP-IB経由でコントロールする事ができます。このデバイスサポートでは、ベータトロンチューン測定に必要な機能を中心に多くの機能をサポートするように努力しましたが、バグがとりきれないfunction、使わない方がいい機能もあります。

3.EPICS環境

本デバイスサポートは、EPICS R312で開発したもので、様々な障害を経てR313最新版で大過なく使用しています。EPICSそのものに対する説明、入門出家入道遁世については専門家に帰依するなり、コントロールグループのページをご参照なさるなり勝手になさってください。動作はPPC603で確認しています。

4.コードの概要

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")

5.EPICSデータベースサンプル

このデバイスサポートで使うデータベースの例(HER用SA)を示します。
DTYPRecordSignalNameFunction通常使用Remarks
HP8590ao0FBH_SA:set_cf中心周波数設定
HP8590ao1FBH_SA:set_cf_up周波数ステップアップ
HP8590ao2FBH_SA:set_cf_dn周波数ステップダウン
HP8590ai3FBH_SA:get_cf中心周波数読み取り
HP8590ao4FBH_SA:set_startfスタート周波数設定
HP8590ao5FBH_SA:set_startf_upスタート周波数ステップアップ
HP8590ao6FBH_SA:set_startf_dnスタート周波数ステップダウン
HP8590ai7FBH_SA:get_startfスタート周波数読み取り
HP8590ao8FBH_SA:set_stopfストップ周波数設定
HP8590ao9FBH_SA:set_stop_upストップ周波数ステップアップ
HP8590ao10FBH_SA:set_stopf_dnストップ周波数ステップダウン
HP8590ai11FBH_SA:get_stopfストップ周波数読み取り
HP8590ao12FBH_SA:set_cf_step周波数ステップ設定
HP8590ao13FBH_SA:set_cf_step_up周波数ステップアップ
HP8590ao14FBH_SA:set_cf_step_dn周波数ステップダウン
HP8590ao15FBH_SA:set_cf_step_auto周波数ステップ自動
HP8590ai16FBH_SA:get_cf_step周波数ステップ読み取り
HP8590ao17FBH_SA:set_spanスパン周波数設定
HP8590ao18FBH_SA:set_span_upスパン周波数ステップアップ
HP8590ao19FBH_SA:set_span_dnスパン周波数ステップダウン
HP8590ai20FBH_SA:get_spanスパン周波数読み取り
HP8590ao21FBH_SA:set_rbwRBW設定
HP8590ao22FBH_SA:set_rbw_upRBWステップアップ
HP8590ao23FBH_SA:set_rbw_dnRBWステップダウン
HP8590ao24FBH_SA:set_rbw_autoRBW自動
HP8590ai25FBH_SA:get_rbwRBW読み取り
HP8590ao26FBH_SA:set_vbwVBW設定
HP8590ao27FBH_SA:set_vbw_upVBWステップアップ
HP8590ao28FBH_SA:set_vbw_dnVBWステップダウン
HP8590ao29FBH_SA:set_vbw_autoVBW自動
HP8590ai30FBH_SA:get_vbwVBW読み取り
HP8590ao31FBH_SA:set_sweepsweep設定
HP8590ao32FBH_SA:set_sweep_upsweepステップアップ
HP8590ao33FBH_SA:set_sweep_dnsweepステップダウン
HP8590ao34FBH_SA:set_sweep_autosweep自動
HP8590ai35FBH_SA:get_sweepVBW読み取り
HP8590ao36FBH_SA:set_atattenuator設定
HP8590ao37FBH_SA:set_at_upattenuatorステップアップ
HP8590ao38FBH_SA:set_at_dnattenuatorステップダウン
HP8590ao39FBH_SA:set_at_autoattenuator自動
HP8590ai40FBH_SA:get_atattenuator読み取り
HP8590mbbo41FBH_SA:set_couplecoupling設定AC/DC
HP8590mbbi42FBH_SA:get_couplecoupling読み取り
HP8590ao43FBH_SA:set_log_sclog scale設定dB/div
HP8590ao44FBH_SA:set_log_sc_uplog scaleステップアップ
HP8590ao45FBH_SA:set_log_sc_dnlog scaleステップダウン
HP8590ai46FBH_SA:get_log_sclog scale読み取り
HP8590ao47FBH_SA:set_linearlinear scale設定使わない
HP8590ao48FBH_SA:set_refreference level設定
HP8590ao49FBH_SA:set_ref_upreference levelステップアップ
HP8590ao50FBH_SA:set_ref_dnreference levelステップダウン
HP8590ai51FBH_SA:get_refreference level読み取り
HP8590ao52FBH_SA:set_srcatTG src attenuator設定変なので使わない
HP8590ao53FBH_SA:set_srcat_upTG src attenuatorステップアップ変なので使わない
HP8590ao54FBH_SA:set_srcat_dnTG src attenuatorステップダウン変なので使わない
HP8590ao55FBH_SA:set_srcat_autoTG src attenuator自動
HP8590ai56FBH_SA:get_srcatTG src attenuator読み取り
HP8590ao57FBH_SA:set_srcpwrTG src pwr設定dBm
HP8590ao58FBH_SA:set_srcpwr_upTG src pwrステップアップ
HP8590ao59FBH_SA:set_srcpwr_dnTG src pwrステップダウン
HP8590ao60FBH_SA:set_srcpwr_onTG src pwr on
HP8590ao61FBH_SA:set_srcpwr_offTG src pwr off
HP8590ai62FBH_SA:get_srcpwrTG src pwr読み取りdBm
HP8590ao63FBH_SA:set_srctkpkTGトラッキング自動調整絶対×この機能自体が極度に呪われているので決して使わない
HP8590mbbo64FBH_SA:set_gratGrating ON/OFF
HP8590so65FBH_SA:set_titletitle設定
HP8590waveform66FBH_SA:get_trace_aトレースA転送399点
HP8590waveform67FBH_SA:get_trace_bトレースB転送
HP8590waveform68FBH_SA:get_trace_eosトレースAをスイープ終了後転送不調
HP8590ao69FBH_SA:set_trigger_singleシングルショットトリガー
HP8590ao70FBH_SA:set_trigger_startトレーススタート
HP8590ao71FBH_SA:set_trace_a_clrwトレースAクリア
HP8590ao72FBH_SA:set_trace_b_clrwトレースBクリア
HP8590ao73FBH_SA:set_marker_peak_eosスイープ終了後マーカーをpeakに不調
HP8590ao74FBH_SA:set_marker_peak_nhマーカーを第2peakに
HP8590ao75FBH_SA:set_marker_peak_nrマーカーを右側の次のpeakに
HP8590ao76FBH_SA:set_marker_peak_nlマーカーを左側の次のpeakに
HP8590ao77FBH_SA:set_marker_deltaマーカーをdelta modeに
HP8590ao77FBH_SA:set_marker_deltaマーカーをdelta modeに
HP8590ao78FBH_SA:set_marker_normalマーカーをnormal modeに
HP8590ai79FBH_SA:get_marker_freqマーカー周波数読み取りHz
HP8590ai80FBH_SA:get_marker_ampマーカーamplitude読み取りdBm
HP8590longout81FBH_SA:set_marker_actアクティブマーカー設定
HP8590longin82FBH_SA:get_marker_actアクティブマーカー読み取り
HP8590ao83FBH_SA:set_marker_centerマーカー周波数をcenter frequencyに
HP8590mbbo84FBH_SA:set_marker_countマーカーカウンターモードON/OFF
HP8590longout85FBH_SA:set_marker_fc_resマーカーカウンターモードresolutionHz
HP8590longin86FBH_SA:get_marker_fc_resマーカーカウンターモードresolutionHz
HP8590ao87FBH_SA:set_marker_offマーカーOFF
HP8590longin88FBH_SA:get_marker_xposマーカーの画面上の位置
HP8590mbbo89FBH_SA:set_view_trace表示トレース設定A,B,C
HP8590ao90FBH_SA:set_sa_initSA初期化
HP8590ao91FBH_SA:set_cont_sweep連続sweep
HP8590ao92FBH_SA:set_maker_peakMarkerをpeakに
HP8590ao93FBH_SA:dispose_alluser defined functionをすべてクリア使わない
HP8590ao94FBH_SA:dispose_oneosEOSでuser defined functionをすべてクリア使わない
HP8590ao95FBH_SA:set_trace_maxhold_aTrace Aをmaxholdに
HP8590ao96FBH_SA:set_trace_maxhold_bTrace Bをmaxholdに
HP8590longout97FBH_SA:set_trace_vavgvideo avarage設定
HP8590ao98FBH_SA:set_trace_vavg_onvideo avarage on
HP8590ao99FBH_SA:set_trace_vavg_offvideo avarage off
HP8590ai103FBH_SA:get_trace_eossweep終了後peak読み取り不調
HP8590ai104FBH_SA:get_eossweep終了後marker読み取り不調
HP8590ao105FBH_SA:set_srqSRQ強制発行
HP8590ao106FBH_SA:rel_srqSRQ取り消し
HP8590longin107FBH_SA:get_stbステータスビット読み込み
HP8590longout109FBH_SA:set_srctkトラッキングセット
HP8590longin110FBH_SA:get_srctkトラッキング設定値
初めはパネル機能をすべてコントロールできるように作っていったが、自動コントロールという観点からは結構余計だったと思う。基本機能さえサポートすれば良く、あとの細かい部分はユーザーインターフェース上で行った方が良い。

6.スタートアップファイルサンプル

通常通りのGP-IB設定をすればOKです。

7.おわりに

このデバイスサポートは通常使用では何の問題もなく動いていますが、何らかの機会にこける(IOCごとこける、単にGP-IBのエラーが出るとかスペクトラムアナライザが暴走するという訳ではない)ことがあります。どうもメモリーリークあるいはスタック食いつぶしが起きている様ですが、私の能力ではまだつぶしきれていません。
Makoto Tobiyama
16/Mar/2001

Return to FB Home Page...