東京工業大学大学院理工学研究科基礎物理学専攻中村研究室メンバー

ホームページおぼえがきDAQ > 簡易DAQテスト

簡易DAQテスト

中村研実験室のDAQシステムが動作しているかを確認する手順を書いたおぼえがき。ここでは、線源を使わず宇宙線を測定することを考え、検出器からの信号は、十分に少ないと仮定する。取得したデータはANAPAWでヒストグラムにする。babarl DAQについては、を参照。

(書いたことをあまり見直していないので、間違いがたくさんあると考えられる。)

構成

■ 装置

使用する装置は、次のとおり。ADCは、CAMAC Crateのステーションナンバー3番(左から3番目のところ)に入っていると仮定する。

種類 略称 品番/品名 備考
パソコン PC
CAMAC クレート CAMAC Crate CAMAC moduleの入れ物
クレートコントローラ Crate Ctrl.
ハイボルサプライ HV
ゲート&ディレイジェネレータ Gate Gen.
Analog to Digital Converter ADC
100ns Delay 100ns Delay
ホドスコープ Det. 中村研制作

■ 回路図

テストの手順

NBBQのbabarlDAQモードを用いて、DAQを行う。NBBQ(Neo bb DAQ)とはRTlinuxでない普通のLinux上でも動くお手軽DAQシステム。検出器のテストなどのDead Timeを気にしないDAQに向く

■ NBBQ準備

NBBQの使い方はに書いてあるが、ここでは手順を詳しく書く。また、ステーションナンバー3番にADCを入れたと仮定する。

  1. ktermのアイコン(パソコンのディスプレイをあしらったアイコンで、その画面には「漢あ」と表示されている)から、ktermを起動する。以下のようなコマンドをうち、作業するディレクトリを作る。(ここでは、testというディレクトリを作った。既に存在する場合は、test2などのディレクトリを作る。)
  2. $ cd ~/
    $ mkdir test
    

  3. testディレクトリにて、以下のコマンドを打ち、NBBQのセットアップに必要なファイルをコピーする。
  4. $ cd ~/test
    $ nbbqcpy
    $ ls		# コピーできたか確認
    Makefile    bbdaq.c      def-advme.h   evt.c       sca.c      v775.c  v792.h
    bb-camac.h  bbmodules.h  def-cc77.h    nbbqctrl.h  startup.c  v775.h
    bb-cc77.h   bbrl.c       def-k2915.h   nbbqdrv.c   stop.c     v785.c
    bb-k2915.h  clear.c      def-sbs620.h  nbbqdrv.h   v767.c     v785.h
    bb-vme.h    common.h     def-vmemm.h   nbbqio.h    v767.h     v792.c
    

  5. 以下の6つのファイルを環境に合わせ、以下のように書き換える。/* */ の間はコメント。また、//の右側もコメント。詳しくは、。実際に変更するのは、bbmodules.h, startup.c, stop.c, evt.cらへん。
  6. bbmodules.h
    #define BBRL
    #define MAXBUFF 0x1e00
    
    #define CAMAC       /* CAMACを使うことを宣言。 */
    #define CAMACINT    /* CAMACを割り込みソースにします。(省略可) */
    #define CC7700      /* クレートコントローラの選択。K2915 から CC7700 に変更。 */
    #define LAMN  3     /* Look At Me モジュールの選択。 */
                        /* ステーションナンバー3番に入っているADCをLAMとする。 */
    #define OPRN 22     /* 今回は使わないので、変更しない。この行、削除しても良い。 */
                        /* アウトプットレジスタのあるステーションナンバーを指定。 */
    #define OPBUSYCL 1  /* アウトプットレジスタを使わない場合は関係ない。この行、削除しても良い。 */
    

    startup.c
    void startup(void){
    
        crate_define_lam(LAMN);     /* crate_define_lam(LAMN)でLAMにするモジュールを指定。 */
        control_mod(0,LAMN,0,26);   /* control_mod(0,LAMN,0,26)でLAMにするモジュールに対して LAMを許可。 */
    
      /* アウトプットレジスタは使わないため、以下コメントアウト。 */
      /* write_data(0,OPRN,0,17,OPBUSYCL); */
    }
    

    stop.c
    void stop(void){
        control_mod(0,LAMN,0,9);  /* cotrol_mod(0,LAMN,0,9)で念のためLAMモジュールをクリア。*/
        control_mod(0,LAMN,0,24); /* control_mod(0,LAMN,0,24)でLAMを禁止。 */
    }
    

    evt.c
    void evt(void){
    
        /* init_event(1)は約束ごとで、evt.cの先頭に書く。おまじない? */
        /* init_segment(segid) <−> end_segment() の間にセグメントのデータを記述していく。
    	segidには、1 や 2 を指定する。セグメントとは、データを保存するスペースのこと?
    	segidに 1 を指定すると、idが 1 の場所にデータが保存されていく感じ?
    	後でANAPAWで解析するときに、このsegidを使う。
         */
        init_event(1);
        init_segment(1);
    
        /* read_segndata(short len,short c,short n,short a,short f)
    	は、セグメントにlen個データを追加 (aはインクリメントされる)。
    	すなわち、データファイルの中の、セグメントってところにデータを保存するってこと?
    	ここで、lenはADCのチャンネル数。16チャンネルなので、16とした。
    	今回は1チャンネルしか使わないので、1としてもよい。
    	cは 0 にする。クレートが複数ある場合には 0 以外を書くこともある。
    	nはADCのステーションナンバーの 3 を指定する。aはよくわからない。
    	fはCAMACファンクションでデータの読み込みを実行する 0 を指定する。
    	CAMACファンクションについては、仕様書参照。
         */
        read_segndata(16,0,3,0,0);
    
        end_segment();
    
        /* LAMモジュールをクリア。次のデータに備える。 */
        control_mod(0,LAMN,0,9);
    }
    

    sca.c
    void sca(void){
        /* スケーラは使わないため、ここには何も書かなくてよい。*/
    }
    

    clear.c
    void clear(void){
        /* アウトプットレジスタは使わないため、ここには何も書かなくてよい。*/
        /* write_data(0,OPRN,0,17,OPBUSYCL); */
    }
    

  7. 変更したら、以下のコマンドを打ち、ドライバをコンパイルする。
  8. $ make clean
    $ make
    

  9. コンパイルしたドライバを以下のようにインストールする。(コンパイルをし直した場合などは nbbqrst で入れ直しが出来る。)
  10. $ nbbqinst
    

■ NBBQ起動/DAQ

  1. CAMACモジュールの電源を入れ、クレートコントローラのスイッチをONLINEにする(NBBQ起動時にONLINE/OFFLINEの切替えを行うと高確率で故障するらしい?)。前述のtestディレクトリにてコマンド: $ bbrlcom と打つと、NBBQが起動し、Command: と聞かれる。
  2. nsstaと打つと、データを保存しないモードでのDAQが始まる。別のシェルで$ blkmonitor と打つと、一定時間ごとにデータの流れているのがわかり、DAQできているかを確認できる。
  3. stop と打てば、nsstaが停止する。次にデータを保存するモードでDAQを始める。
  4. Command: と聞かれているところで、wthと打つ。これで保存するデータのヘッダを書く。(例えば、startなど。適当で良い?)データを保存するモードでのDAQには、必須事項。
  5. いよいよDAQを始める。Command: と聞かれているところで、startと打つとDAQが始まる。これで、作業しているディレクトリに0001.rdfといったデータファイルができる(DAQ中もこのrdfファイルはANAPAWで読み込める)。
  6. ある程度時間が経ったら、stopと打ち、DAQを停止する。フッタ(例えば、endなど。適当で良い?)を指定したら、データファイル完成。

■ ANAPAWインストール

rdfファイルからヒストグラムを作るには、ANAPAWが必要なのでを参考にインストールする。自分のアカウントを作り、そのホームディレクトリにインストールするのがよい。

■ ANAPAWでヒストグラム表示

rdfファイルができたら、ANAPAWをインストールし、ADCで取ったデータをヒストグラムとして表示する。

  1. まず、~/test/0001.rdfをANAPAWの作業ディレクトリ(?) ~/exp/nbbqにコピーする。
  2. $ cp ~/test/0001.rdf ~/exp/nbbq
    $ cd ~/exp/nbbq
    

  3. 以下のようなanaファイル(ファイル名: test.ana)を~/exp/nbbqに作る。
  4. test.ana
    analys
    1
    hst1
    0, 1,1,1,2, 400, 0.,2000., 'raw 1'
    

  5. cshを起動したら、以下のようにANAPAWにログインして、ANAPAWを起動する。
  6. $ csh
    $ analogin
    $ anapaw
    

  7. 以下のコマンドを実行すると、ヒストグラムが書ける。
  8. ANAPAW> book test.ana
    ANAPAW> hst1
    ANAPAW> ana/loop 0001.rdf
    ANAPAW/LOOP> start
    

  9. ANAPAW終了はexitコマンドとかを打ったりする。

本おぼえがきの書体について

書体意味
AaBbCc123端末の表示する文字。またはコードなど。$ You have mail.
AaBbCc123ユーザーが入力する文字。
端末の表示する文字と区別する。
$ su
password:
AaBbCc123コマンドの引数やコードの可変部分。
実際の名前や値と置き換える。
$ rm filename

参考文献・webページ


ページ制作履歴
2007/11/21 制作開始
2007/11/21 webにアップ