KEK 電子陽電子入射器のタイミング系ソフトウェアの構築
草野史郎1,A)、古川和朗 B)、諏訪田剛 B) 上窪田紀彦 B)
A)

三菱電機システムサービス（株）〒305-0045 茨城県つくば市梅園 2-8-8B)

高エネルギー加速器研究機構〒305-0801 茨城県つくば市大穂 1-1

概要
KEK 電子陽電子入射器（KEK Linac） では、1982年の最初のビーム供給から現在にいたるまで改良、増強を行ってきた。この間、タイミング信号の制御には、3 種類の機器（KEK Linac 独自の loop3 モジュール、CAMAC TD4、VME TD4V ）が導入され、rf 系やビームモニタ等に対して目的に合わせた 100 点以上のタイミング信号が供給されている。本稿では、加速器オペレータや運転ソフトウェアからハードウェアを意識せずにタイミング信号を操作できるように見せるためのソフトウェア上の工夫や問題点を報告する。

１．はじめにKEK Linac は、1982 年の最初のビーム供給から 20年以上経過し多くの改良、増強を行ってきた[1,2]。タイミング系の機器でも幾つかのものが 20 年以上経過し保守が困難になってきている。また、KEKB Ringへの入射のための SLED 空洞[3]によるエネルギー増強でタイミング信号の機能増強が必要となった。
1993 年の新制御システムへの移行[3]においては、運転開始から使用している loop3 ディレイモジュールのみを使用していたが、1997 年に KEKB のための

KEK Linac 増強時[4]に CAMAC 用 TD4 モジュール、
2001 年に loop3 ディレイモジュールの代替として
VME 用 TD4V モジュールが追加された。現在は３つの異なる機器があるが、統一的に制御可能になっており、オペレータがその違いを意識する必要はない。
一般的に、ディレイモジュールは一旦タイミングが決まるとその後はあまり変更することがない。しかし KEK Linac では、KEKB Ring に対し 3.5GeV e+、8.0GeV e-、PF-Ring/PF-AR Ring に対し 2.5GeV e-のビームを供給している。それぞれの加速器でビームエネルギーが違うため、ビーム供給にはクライストロンの高圧タイミングを変えることで（加速状態をACC、待機状態を Stand-By と呼んでいる。）対応している。特に KEKB への入射は限られた時間内にタイミングの切り替えを行う必要がある。また、2001
年からは KEKB e+ へ 2 バンチ入射をするためタイミング調整の頻度が高くなっている。
このような要求に応えるためにも、タイミング制
御ソフトウェアは、KEK Linac の安定運転には重要である。本稿では、タイミング系ソフトウェアの構成、工夫、問題点を報告する。

２．タイミングシステム

Opt-network
PC Console system

Windows NT
touch-terminals
MSDOS
X-terminals
Unix
Shell script
Unix

poplarplum
lycheefor operatealmondorangefor develop
OS:Compaq Tru64 V5.1
図 1：システム構成

1

Sub systems

ServerClientE-mail: kusano@mail-linac.kek.jp

Opt-network

ABC Sec Sub-con
CAMAC TD41 system
2 Sec Sub-con
VME loop3
1 system
1~5 Sec Sub-con
VME TD4V* 4systems
A~5 Sub-booster
CAMAC TD4
* 8 systems

現在の KEK Linac のタイミングシステムは、5 台のサーバ計算機を中心に CAMAC（Ethernet CAMAC
Controller2 を使用）、VME が制御ネットワークに相互接続された構成になっている（図 1）。3 種類のモジュールの設置場所、用途を表 1 に示す。

VMEloop3 TD
TD4V

CAMAC TD4
poplarread/write

ECC driver

表 1: 各モジュールの配置
モジュール
設置場所
用途CAMAC TD4
ABC セクタ クライストロンー副制御室
高圧タイミング
A~5 セクター SLED 用反転タ
サブブースタ イミング、ビー（図 2）
ムモニタなどVME TD4V
1~5 セクター クライストロン
副制御室
高圧タイミング
loop3
2 セクター副 クライストロン
制御室
高圧タイミング

lychee/plum
write

eccrecv

readrcamacd

eccpl

read/write

event

read

read
write

Shared memory

umdistTD4V
loop3

サーバ(rtrigd) poplar/lychee/plum

クライアント
図 3：タイミング系ソフトウェア構成
クライアントは多数の計算機上で動作している。

3.2 CAMAC ドライバ(ECC driver)
ECC driver は、Ethernet CAMAC Controller 用のドラ
イ バ で 、 CAMAC コ マ ン ド を LLC(Logical LinkControl)あるいは UDP/IP でモジュールに送り、制御を行っている 3。また、IEEE 規格で規定されている
CAMAC 関数が、C 言語のライブラリとして HYTEC
ELECTRONIC 社より提供されている。

3.3 サーバソフトウェア(rtrigd)
図 2：サブブースター筐体内 CAMAC クレート

３．ソフトウェア
3.1 ソフトウェア概要

サーバソフトウェア rtrigd とクライアントアプリ
ケーションとの間は、KEK Linac 標準の RPC（RemoteProcedure Call）によって接続されている。rtrigd は、クライアントからの要求を受けると、KEK Linac 標準の table データベースからどの機器（VME、CAMACなど）のどのモジュールに対応するものかを調べ該当するモジュールを制御する。

3 つの異なる機器をリモート制御するのに、ソフトウェアをいくつも用意することは管理する側にとっ3.4 クライアントアプリケーション(trig)て非常に煩わしいし、また使う側にとってもプログクライアントアプリケーションとしては、スクリラムが複数あると混乱を招くことになる。そこで、3プト言語から利用しやすいシェルコマンドの trig やつの異なる機器をひとつの機器と見せるために、いクライアントライブラリ libtrig を利用するものがあくつかのコンポーネントを用意した。運転用のクラり、いずれも RPC を通して rtrigd に接続する。
イアントアプリケーションからの要求は、すべてサーバを通し各コンポーネントに振り分け処理をする。
3.5 rcamacd / eccpl / eccrecv
ソフトウェアの構成は、ECC driver、rtrigd、eccpl、eccrecv、rcamacd、umdist となっている（図 3）。そCAMAC TD4 に対しては、あとで述べる理由から、れぞれは、プロセス間通信によって処理を行う。以
直接アクセスを 1 台のサーバに制限しており、書き下では個々のコンポーネントについて詳細を述べる。 込みは rcammacd、読み出しは eccpl が行う、他のサーバは rtrigd や eccrecv を通して制御を行う。rcamacd
2

HYTEC ELECTRONIC 社製 1365 Ethernet CAMAC Crate
Controller MKIII

3

KEK Linac では、poplar(Compaq Tru64 V5.1)上で動作。

は、クライアントから CAMAC TD4 モジュールに対して値変更の要求があった場合、table データベースを読み込み、対応する TD4 モジュールの値を変更し、eccpl に変更があったことをイベント通知する。eccplは、約 15 秒に 1 回、もしくは rcamacd からのイベン
ト通知を受け取ると約 100 台の CAMAC TD4 からデータを取得する。取得したデータは、eccpl が動作するサーバ計算機の共有メモリ上の cache に展開し、同時に他の 4 台のサーバ計算機に送られる。eccrecv は、eccpl から送られたパケットを共有メモリ上の cacheに展開している。

3.6 umdist (td4vd/loop3)
umdist は、UDP/IP によるメッセージ分配ソフトウ
ェアで、table データベースにより操作したい機器を選択し、それに対してメッセージを送る。タイミン
グ関連では、TD4V と loop3 モジュールの制御のために使用されている。

3.7 加速器運転用アプリケーション

これらの問題を解決するために、全ての処理をrtrigd 上で行わず eccpl、rcamacd の２つのコンポーネントを分離した。コンポーネントに分けることでeccpl、rcamacd のみが ECC ドライバにアクセスすることにし、rtrigd は複数のサーバ計算機で動作するが、CAMAC ドライバは 1 台の計算機のみで動作させアクセス数の制限を行った。応答処理に関しては、データを共有メモリ上の cache に展開することで対策を行った。実際の運転では、設定変更よりステータスの読み込みが圧倒的に多いため、サーバが共有メモリ上の cache データを読むことでハードウェアへの直接アクセスの頻度を少なくすることにもなった。

4.2 ソフトウェア監視プログラム
KEK Linac では、制御プログラムの監視を Unix のcron 機能で定期的に行っている。何らかのトラブルでプログラムが停止した場合、自動的に再起動を行うようになっている。しかし、CAMAC ドライバは起動する際に端末を必要とするためこの機能が使えない。このため、CAMAC ドライバの監視は VNC5という仮想端末で行われている。

KEKB Linac の運転では、数多くのタイミング系のクライアントアプリケーションが使用されている。
4.3 タイミング監視・測定
その全てがサーバを通してタイミング信号を操作している。図 4 は一例として、各セクターの SLED rfビームを安定に供給するには、それぞれのタイミタイミングを調整するプログラムである。2 バンチ加ングが常に所定の関係に保たれていることが望まし
速[5]の際、2 つのバンチ間のエネルギー調整に用いる。 い。そこで、各セクターサブブースターに CAMAC
TDC6（時間/デジタル変換）を配置し TD4 のタイミング定期的に測定する機能を eccpl に組み込もうとしている。今後この機能により定期的にタイミングを監視するようにしたい。

５．まとめ

図 4：クライアントアプリケーションの例

４．考察

本稿は、KEK Linac におけるタイミング系ソフトウェアの構築について述べた。現在のシステム構成になってから約 1 年間が経過し KEK Linac の安定したビーム供給に貢献している。ビームモードの切り替え[6]も 1 日あたり約 50 回行われ問題なく対応できている。今後更に改良、改善を進め安定な加速器運転に貢献していきたい。

参考文献[1]K.Furukawa et al., “Upgrade Plan for the Control Systemof the KEK e-/e+ Linac”, Proc. of ICALEPCS91, Tsukuba,Japan, 1991.
[2] K.Furukawa et al., “Accelerator Controls in KEKB Linac
1997 年に CAMAC TD4 が追加された時には eccpl、Commissioning”, Proc. of 23rd Linear Accelerator Meetingin Japan, 1998, pp.355-357
rcamacd はなく rtrigd だけで全ての処理を行っていた。
[3] N.Kamikubota, K.Furukawa, K.Nakahara and I.Abe, Nucl.
しかし、CAMAC ドライバに問題があったために安Instr. Meth. A352(1994)131
定した運用が行われないことが度々起こった 4。
[4] A.Enomoto, Proc. of the LINAC’98, Chicago, August 1998,
p57-59・ 別の計算機から同時に 5 つ以上の要求がある[5]
古川和朗、他、第26 回ライナック研究会会議録、つくと 5 つ目以降の要求が正常に処理されない。
ば、2001 年 8 月、p288-290
・ 複数の計算機から処理の頻度が高いと極端に[6] 古川和朗、他、第 25 回ライナック研究会会議録、姫路、応答処理が悪くなる。
2000 年 7 月、p111-113

4.1 CAMAC ドライバによる問題

4

これらはメーカの提供する CAMAC ドライバの不具合であるが、現在のところ解消していない。

56

http://www.uk.research.att.com/vnc/
LeCroy 社製 MODEL 2277 TDC