日本大学電子線利用研究施設における加速器モニタの開発
中尾圭佐1,A) 佐藤勇 B) 早川建 B) 田中俊成 B) 早川恭史 B) 横山和枝 B) 境武志 A) 菅野浩一 A) 石渡謙一郎 A)
橋本英子 A) 藤岡一雅 A) 村上琢哉 A) 長谷川崇 A) 宮崎慎也 A)A)

日本大学大学院 理工学研究科 量子理工学専攻〒274-8501 千葉県船橋市習志野台 7-24-1 日本大学理工学部船橋校舎 電子線利用研究施設
B)

日本大学量子科学研究所〒274-8501 千葉県船橋市習志野台 7-24-1 日本大学理工学部船橋校舎 電子線利用研究施設

概要
日本大学電子線利用研究施設(LEBRA)では、電子線形加速器の周辺機器及び周辺環境を常時モニタするシステムを開発している。現在商用電源変動及び実験室内γ線量モニタが稼動しており、監視データは Web で公開し簡単にアクセスできるようになっている。本稿ではこのシステムの概要を述べる。

１．はじめにLEBRA では、2001 年 5 月に自由電子レーザ(FEL)
発振に成功し、今年の秋以降 FEL を使うユーザ実験が始まる予定である[1]。ユーザ実験が始まると運転停止期間を最小にする要求があるが、そのためには加速器及びその周辺機器の健康管理が必須である。しかし現状では健康管理に必要な長期間の連続したデータがない。また航空機のフライトレコーダのような、トラブル時の手がかりになるもの必要である。
そこで加速器とその周辺機器及び周辺環境を常時モニタし、その記録を公開するシステムを構築している。

２．何を測るか
上記のような要求から、測定点は網羅的にならざるを得ない。そこで以下のような測定点を考えている。
! ビーム電流! ビームエネルギ! 電子銃のエミッション電流! Klystron 出力 Power! RF アンプの出力 Power! 偏向電磁石の入力電圧及び電流! 加速管、導波管内の真空! 加速器及び周辺機器付近の温度! 冷却水温度! 商用電源電圧! 運転者の操作量
商用電源電圧を測定する理由は、商用電源電圧の変動がビームに影響することがわかっているからである[2]。運転者の操作量は、トラブル時に運転者の意
1E-mail: nakao@lebra.nihon-u.ac.jp

図を推測するための手がかりであり、加速器制御プログラムによって記録される[3]。

３．システム構成
システム構成を図１に示す。本システムは、測定機器のアナログ信号を A/D 変換してデータベースに記録する Device Server と、測定データを保持する
Database と Database に格納されたデータを公開する
Web Server からなる。
ユーザは Web ブラウザで Web サーバにアクセスし、データの種類、期間、フォーマットを指定して Submit
ボタンを押すと指定されたデータを閲覧することができる。現在サポートしているフォーマットは、グラフ表示とカンマ区切りテキストである。Submit ボ
タンを押すと Web ブラウザは CGI を呼び出す。CGIは Web サーバ上で動作するプログラムで、ユーザからのリクエストを受け取ると、データベースにアクセスし指定された種類、期間のデータを取得し表示する。フォーマットに「グラフ表示」が指定された場合は、取得したデータを gnuplot に渡してグラフを画像として生成し、その画像を表示する HTML を出力する（図２）。カンマ区切りテキストは表計算ソフトで解析が必要な場合の利便性を考えたもので、Web ブラウザでダウンロードすることができる。
これらの CGI、Device Server プログラムは C++で書かれている。

４．測定対象の追加
２章であげた測定対象以外の測定点を追加したいという要求が出てくるのは想像に難くない。そのためにはまず Device Server で動作しているプログラムに追加する測定対象を A/D 変換するように書き換えなければならない。この書き換えが簡単でなければ、測定対象を追加する度にバグが混入し不安定になってしまう可能性が高いだけでなく、柔軟性の低いシステムの烙印を押されてしまう。
しかし各測定対象は、測定間隔が異なっていたり、瞬時値が必要なもの、サンプリングが必要なものなど様々である。

Web Server
Database
Device Server
DeviceDevice
図１ システム構成

図３ クラス図 クラス図はクラスやインターフェースなどの相互の静的な関係を表す。クラス TimerTask は execute, wait, addObserver の３つのメンバ関数を持つ。DataTakerA 及び B は抽象
クラス Observer から派生させ、takeIn メンバ関数を再定義している。

図２

商用電源変動グラフ表示例

例えば商用電源変動を記録する場合、実効値を記録したいので、交流波形をサンプリングして実効値を計算する必要があるが、γ線量を記録する場合はγ線量計の瞬時値で十分なのでサンプリングする必要はない。
そこで、C++のオブジェクト指向という特徴を生かし測定対象毎の処理をクラスで隠蔽し独立性を高めた。このクラス構造を図３に示す。ここではデザインパターンの一種である Command パターン[4]を適用した。Command パターンは処理をカプセル化する。
クラス構造の一部を図３に示す。
クラス DataTakerA、DataTakerB は、測定対象 A 及
び B のデータ取得処理をカプセル化することを目的としたクラスで、抽象クラス Observer から派生し、その処理を takeIn メンバ関数に記述する。
TimerTask は複数の Observer オブジェクトを持ちその Observer オブジェクトの takeIn メンバ関数を順次呼んでいく execute メンバ関数を持っている。
プログラムは複数のスレッドを持ち、各スレッドでひとつずつ TimerTask オブジェクトを生成する。
スレッドを一定時間待機させた後 execute メンバ関数

図４ シーケンス図 シーケンス図はオブジェ
クト間の相互作用を時系列で表している。オブジェクト TimerTask は DataTakerA 及び B の takeIn メンバ関数を呼び出し後一定時間待機し、これを繰り返す。
を呼ぶループを作れば、一定時間毎に測定を行うことができる (図４) 。
測定対象を追加するには、Observer クラスを派生し、派生したクラスの takeIn メンバ関数にデータを取得する処理を記述した後、任意の TimerTask オブジェクトにその派生クラスを登録すればよい。

５．実装
現在商用電源変動及び実験室γ線量常時モニタが本システムで稼動している。現在クライストロンの真空度とアンジュレータ付近の気温の常時モニタの追加作業中である。

Device Server は、Microsoft Windows2000 で動作している。Web Server には Apache HTTP Server2を、データベースには PostgreSQL3を使用している。
Apache と PostgreSQL は同じ PC 上で稼動しており
この PC の OS には Debian GNU/Linux4を採用した。

６．評価
本稿執筆時点で稼動開始から約 3 週間が経過しているが、稼動開始当初 Device Server が Database にアクセスできないとプログラムが強制終了するというバグがあったが、修正後安定して稼動している。
Device Server 及び Database/Web Server に使用している PC は買い替えで余った PC を使用しており、また Windows2000 と開発環境のライセンス料、A/D 変換ボード代を除けば無料であるため、開発コストは低く抑えられている。
動作速度に関しては CGI の動作が遅い。これは CGIが Database に接続する処理が遅いためである。これを改善するために、起動時に Database との接続をあらかじめ確立しておく、コネクションプールを保持しておくことが一般に有効とされているが CGI はブラウザからアクセスされたときに起動するため、コネクションプールでは改善できない。現状では我慢できるレベルであるが、測定点が多くなるにつれてデータベースの負荷が大きくなるので CGI の処理がいっそう遅くなることが予想される。アクセスの多いデータをキャッシュするなどの対策が必要になるかもしれない。
ビーム電流等の加速器の運転に有用なデータのモニタが始まると、制御室でリアルタイムに表示したいという要求が出てくることが考えられる。前述のとおり CGI の動作は遅く、そもそも HTTP にはリアルタイム性は考慮されていない。そのため Web/CGIに変わるデータ公開法として CORBA を検討している。[5][6]６．まとめ
日本大学電子線利用研究施設では加速器及びその周辺機器のパラメータや周辺環境を常時モニタするシステムを開発しており、商用電源電圧モニタと、実験室γ線量モニタが、現在安定に稼動している。
モニタしたデータは Web ブラウザを用いて誰でも閲覧することができる。
今後は測定点を増やすとともに、リアルタイム性をもつ監視データの公開方法を探っていく。

2

http://httpd.apache.org
http://www.postgresql.org
4
http://www.debian.org
3

参考文献[1] 佐藤勇 他 「日本大学電子線利用研究施設の現状と研究計画」Proceedings of this meeting.
[2] 早川建 他 「商用電源変動とビーム不安定性」the 26th
Linear Accelerator Meeting in Japan, Tsukuba, Aug. 1-3,2001, p285-287[3] 早川建 他 「加速器調整履歴の集積」 Proceedings ofthis meeting.
[4] Eric Gamma, et al., 「デザインパターン」Softbank,ISBN4-89052-797-4[5] 上窪田紀彦 他 「Java と CORBA を使った加速器状態リアルタイム表示システム」 the JPS meeting in Osaka,Apr.2000,
http://www-linac.kek.jp/~kami/report/jps00_osaka/ohp/htm
l/JPS00.htm[6] T.Tanabe, et al., “Distributed-Object Based Design ofRIBF
ControlSystem
Using
Java/Corba”
Proceedings of the 13th Symposium on Accelerator
Science and Technology, Suita, Osaka, Japan, Oct.
2001, p108-