DAQ の設定スクリプトの編集が済んだら、あとは DAQ を走らせてみる。以下にDAQの走らせ方を記載する。コンピュータと AMANEQ の電源が落ちている状態から作業することを想定する。
コンピュータを起動したら、daq-webctl と redis を立ち上げる。$HOME/run/init.sh (もしくは $HOME/exp-config/my_exp/run/init.sh) を実行すればよい。この init.sh はすでに daq-webctl と redis が立ち上がっていたとしても、繰り返し実行して問題ない。
$ cd $HOME/run $ ./init.sh
AMANEQ の電源を入れたら、イニシャライズを以下のように行う。
$ cd $HOME/exp-config/my_exp/fee_scripts $ ./config_modules.sh
これで AMANEQ は Ready になる。AMANEQ になんらかの問題がある場合、 reset_modules.sh を実行すると解決する場合がある。
$ cd $HOME/exp-config/my_exp/fee_scripts $ ./reset_modules.sh $ ./config_modules.sh
reset_modules.sh を実行した後は、再び config_modules.sh を実行してから DAQ を走らせる。 ただし、このスクリプトは他の RBCP アクセスと干渉する可能性があり、他の作業者が FEE の設定をしたり、スケーラを読んでいる場合は一旦作業を止めてもらう、もしくはスケーラの読み出しを止めてから実行するのが安全な模様。
コンピュータ上でブラウザを立ち上げ、http://localhost:8080 にアクセスし、DAQ Controller を確認。ここでポート番号 8080 はデフォルトであり、init.sh 内で他のポート番号を指定している場合はその番号に従う。また、DAQ Controller は外部のコンピュータからも操作可能であり、 http://<DAQマシンの IP アドレス>:8080 の URL にブラウザでアクセスすると、DAQ Controller が見られる。RUN number の Getボタンを押すと、次に走るラン番号がわかる。たまに DAQ Controller が落ちるので、ページを再読み込みして、コントローラーが落ちていないか確認。もし落ちていたら、以下のようにコマンドを打つ。
$ cd $HOME/run $ ./init.sh
さらに、このディレクトリ内で、FairMQ デバイス (NestDAQ の processor) を立ち上げる。この時、DAQのコンフィグレーションに応じて使うスクリプトを変える。
$ ./stf.sh
$ ./tf.sh
$ ./tfs.sh
これで、FairMQ デバイスの種類の数に対応する数の xterm が立ち上がる。DAQ Controller でFairMQ デバイスの数も確認し、run.sh で指定したプロセスの数が揃っているかも確認する。また、xterm の出力もみて、エラーを吐いていないかも確認する。
DAQ Controller で Init Device and Connection -> Ready -> Init Task -> Read -> Run とすると DAQ のランが走る。FairMQ デバイスのステータスがすべて Ready になっていれば良い。うまく状態遷移しない場合もあるので注意する。また、FairMQ デバイスのプロセスの数が減っていないかも確認。topology などに問題があると、プロセスがどんどん死んでいき、数が減る。さらに、xterm 上の各プロセスにおいて正しくデータが流れているかもチェックする。問題がある場合はトラブルシューティングを参照のこと。
Web Controller で Stop ボタン -> Reset Task -> Reset -> Reset Device を押す。ランを再び実行する場合、上記のランのスタートを行えば良い。
Web Controller で End ボタンを押す。これで FairMQプロセスが停止する。
トラブルシューティングを参照のこと。
2024/10/03 小林 信之 (阪大RCNP)