[KEKB Bunch Feedback Group]

SRS DG645用EPICS Device Supportの製作(Japanese)


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

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


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

1.はじめに

Stanford Research SystemsのDG645は標準でT0+4chのディレイ出力が可能な 高精度digital delayです。設定によりかなり複雑な動作をさせることも可能 ですが、本Device supportは単純なdelay機能しかimplementしていません。
御本格の機能をお使いになる場合は、EPICSご本家のサイトにちゃんとした 専門家が作った清く正しく美しいdevice supportがありますので、そちらをご利用ください。

2.IOコマンド

サポートするIOコマンドは以下の通りです。
機能Command例Response例備考
トリガー*TRG SSおよびマニュアルトリガー時に使う
トリガーソース設定TSRC 4single shot fall edge
トリガーソース読み出しTSRC?4
ディレイ設定DLAY 2,0,1e-8ABチャンネル T0に対してdelay 10ns
width設定DLAY 3,2,1e-8ABチャンネル幅10ns(Aに対して10ns)
ディレイ読み出しDLAY?20,+0.00000001000T0に対して10ns
幅読み出しDLAY?32,+0.00000001000Aに対して10ns
振幅設定LAMP 1,0.8ABチャンネル振幅0.8V
オフセット設定LOFF 1,-0.8ABチャンネルオフセット-0.8V(NIMレベル)
極性設定LPOL 1,0ABチャンネル極性負(Neg. logic)
振幅読み出しLAMP?1+0.8ABチャンネル振幅0.8V
オフセット読み出しLOFF?1-0.8ABチャンネルオフセット-0.8V(NIMレベル)
極性読み出しLPOL?10ABチャンネル極性負(Neg. logic)
トリガーレベル設定TLVL -0.2閾値-0.2V
トリガーレベル読み出しTLVL?-0.2
このほか、多分使わないinhibit設定・読み出し、Holdoff設定・読み出しも一応 implementしてあります。

3.EPICS環境

本デバイスサポートは、EPICS R314.12.3-CSAのAsynドライバー用に開発したものです。 EPICSそのものに対する説明、入門出家入道については徳の高い専門家に帰依するなり、 古今東西の古文書、Wikiなどを調べるなどの厳しい修行が求められるかもしれません。動作はLinux (CentOS 6.8_x86_64)上の EPICS R314.12.3-CSA+Asyn-4.23で検証しています。

4.コードの概要

コードを以下に示します。特に説明は不要と思われます(最近頓にケチなので)。

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

サンプルファイルは以下を参照してください。 立ち上がり時にGET系をすべて1回動かしてデータをとるとともに、 設定コマンドを動かしたときにデータをとるようにFLNKでつないであります。 また、もしも必要ならば全部(でもないが)のデータをscanするように EVENTレコードも用意しています。

なお、T0については、DELAY、Widthとも設定データベースは用意していますが、 設定自体は出来ない模様です(ホントかな?)

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

スタートアップの必要部分は以下の通りです。
dbLoadRecords("db/FB_DG645.db","USER=FBD:TIME,L=L0, A=1")

drvAsynIPPortConfigure("L0","172.19.***.***:5025",0,0,0)
操作用のCSSパネルを作りました。以下のようなイメージです。

7.まとめ

Stanford Research SystemsのDG645の EPICSデバイスサポートおよびデータベースについて紹介しました。
Makoto Tobiyama
10/Mar/2017

Return to FB Home Page...