The 14th Symposium on Accelerator Science and Technology, Tsukuba, Japan, November 2003

µITRON を用いた JAERI ERL-FEL 制御系の開発
菊澤 信宏 A)A)

日本原子力研究所 自由電子レーザー研究グループ〒319-1195 茨城県那珂郡東海村白方白根 2-4

概要
原研自由電子レーザー用制御系は、1992 年から運用を開始し、何度かの大きな変更を行いながらも基本的な部分は変更せずに使用してきた。しかしながら、PC とインターフェースボードが入手困難となり、ハードウェア、ソフトウェアの更新が必要となっている。低コストで作業量を減らすため、現在の CAMAC モジュールをできるだけ活用できるように互換性を考慮し、OS にµITRON を使ったローカルコントロールユニットの開発を進めている。この新しい制御系では、特定のプラットフォームに依存しない Java／CORBA で開発を行う予定である。

1

はじめに

原研 ERL-FEL の制御系は安価な PC を用いたネットワー
ク 分 散 処 理 型 制 御 系 FELOWS (FEL Operators WindowSystem) を独自に開発し、1992 年に運用を開始した[1]。機器とのインターフェースには CAMAC を用い、CAMAC コントロール用の PC には当時広く普及していた NEC 製
PC-9801 を採用した。現在は 5 台の CAMAC クレートと 7台の PC を使って制御を行っており、主に電磁石電源と電子銃の制御を行っている。当初は制御用ソフトウェアはWindows3.1 上のソフトとして開発されたが、2001 年にJAERI FEL をエネルギー回収型 FEL(JAERI ERL-FEL)に改造するのにあわせて制御用 PC の OS を Windows95 にアップグレードした。このとき、最新の OS にアップグレードできなかったのは、古い PC の性能による制限であった。
現在では PC-9801 や PC-9801 用の古い規格のインターフェースボードが入手困難となり、ハードウェアの維持やOS などのバージョンアップも困難になってきている。このことにより、新しく導入した計測制御機器用のプログラ
ムが現在の制御用 PC では動作しないなどの問題が発生している。しかしながら、CAMAC 用インターフェースボードが古い規格のために PC の更新が困難となっている。仮にインターフェースボードまで含めて PC を更新した場合でも、OS の仕様の違いから制御用ソフトウェアの根本的な部分から変更が必要となる。たとえば、現在使用している制御用ソフトウェアは 16 ビットアプリケーションであるが、これらを WindowsXP などで動作させるためには32bit アプリケーションに変更する必要がり、16bit アプリ
ケーションを 32bit アプリケーションに変更するためにはソフトウェアの基本的な部分から大幅に変更する必要がある。
以上の理由から早い時期に PC の更新が必要となっているが、できるだけ現在の制御系と互換性を維持しながら、より安定して動作し、将来の機能拡張にも対応できる制御系にすることを目的としている。このため、現在の制御用PC に代わるローカルコントロールユニット(LCU)を開発し、2003 年度中に PC-9801 と置き換えることを計画している[2]。
この LCU を使った制御系の概要について報告する。

2ローカルコントロールユニット

近年、加速器分野ではシーケンサが使用される例が増えているが[3]、現在の CAMAC をシーケンサに置き換えた場
合には配線作業が必要となり、改めて動作確認などを行う必要がでてきてしまう。一方、CAMAC モジュールはそのまま使いながら LCU を更新する場合には、CAMAC モジュールから各電源までの配線作業は必要なく、しばらく新旧のシステムを共存させておいて切替ながら動作確認することができるという利点がある。
PC-9801 に代わる CAMAC とのインターフェースに、産業用途として多くの実績を持つµITRON を OS として採用したコントローラ(ニチゾウ電子制御製 ND-MCU)を LCUとして選択した。ND-MCU は CPU に SH7751(SH4)、動作クロック 200MHz を採用しており、拡張スロットとしてPCI スロットを 3 スロット装備している。OS であるµITRON はリアルタイム OS として組込みシステムに広く用いられている。このため、将来にわたって OS のバージョンアップの必要などが無い。ND-MCU は HDD や空冷用のファンを用いていないために故障の心配がほとんど無く、特別なシャットダウン操作無しに電源を ON/OFF できる。また、OS として Windows などを使った PC と比べてハングアップの心配などもほとんど無いと期待できる。
LCU には PCI スロットがあるため、CAMAC クレートコントローラ(東陽テクニカ製 CC/7700)用 PCI インターフェースボード(東陽テクニカ製 CC/PCI)を LCU に挿して使用し、LCU から CAMAC にアクセスする。新しい制御系のハードウェアの構成を図１に示す。空いた PCI スロットに安価な市販の PCI ボードを追加することによって、将来はCAMAC 以外にも機能拡張が可能となっている。
LCU から CAMAC クレートコントローラにアクセスするために CAMAC インターフェースボードのドライバを開発する必要がある。図２に LCU 内部のソフトウェア構成を示す。LCU には Ethernet ポートがあって TCP/IP で通信できるため、LCU 内のコントロールソフトは TCP/IP で送られた制御コマンドを実行し、バッテリバックアップされたメモリ上の設定値テープルに CAMAC モジュールなどの設定値を保存する。また、LCU の起動時には設定値を自動的に復元できるような機能を持たせることを考えている。
LCU は一種のネットワーククレートコントローラとして自律的に動作し、ホストコンピュータとは独立して制御を行えるようになる。
現在の制御系で CAMAC による制御を行っているのは、主に電磁石電源と電子銃であり、現在はマニュアルで制御している RF もリモートで計算機制御できるように変更を行っている。これらで 5 台の CAMAC クレートが使われており、5 台の LCU を使用する予定である。

The 14th Symposium on Accelerator Science and Technology, Tsukuba, Japan, November 2003

ConsoleCORBA

T CP/IP
CC/PCILCUCAMAC Crate Controller

CAMAC
CRAT ECAMAC
CRAT E

Magnetetc.

RF etc.

新たにソフトウェアを開発するための環境を選択する
ときに、さまざまな環境での互換性を最も重視し、Java を選択した。Java はオブジェクト指向言語の一つで機種依存性の非常に少ない言語であり、マルチプラットフォームに対応したソフトウェアが構築できる。Java は加速器制御の分野でも利用され始めており[4]、ハードウェアに依存しない部分や、あまり制御速度を必要としない部分は Java で構築する予定である。これによって将来のアップグレードも容易になると期待できる。
通信関係のミドルウェアには分散オブジェクトである
CORBA(Common Object Request Broker Architecture)を利用する予定である。CORBA とは米 OMG(Object ManagementGroup)が規定する、分散システム環境でオブジェクト同士がメッセージを交換するための共通仕様であり、マルチプラットフォーム環境で OS や開発言語に依存しないクライアント－サーバアプリケーションの開発が容易になる。加速器制御の分野でも CORBA を使った制御系の開発が行われている[5]。
Java での表示には ANKA で開発された Accelerator Beans(ABeans)[6]を利用する予定である。図３に電磁石電源制御用プログラムの表示例を示す。

図１：新制御系のハードウェア構成
電源の選択

制御コマンドT CP/IP

現在の設定値もしくはモニタ値

バッテリバックアップ
RAMLCU
コントロール
ソフト

設定値
テーブル

出力電流値設定エリア（キー入力、及び、スライダ入力）

CAMAC
ドライバ

Polarity
MonValue

計器表示が設定値表示かモニタ値表示かを示す

＋

CAMAC
インターフェースボード

現在設定してる極性値＋－

極性切替えボタンCAMACクレートコントローラ

図３：電磁石制御用プログラムの表示例
図２：LCU のソフトウェア構成

43

制御用ソフトウェア

制御用ソフトウェアは Windows3.1 上の 16 ビットアプリ
ケーションとして Turbo Pascal で開発され、その後、Delphi
1.0 に移植された。しかし、現在の WindowsXP 用の 32 ビットアプリケーションに変更するためには、OS の仕様の違いによって共有メモリやタスク管理などに関係した部分から、開発ツールの違いによって GUI に関係した部分まで、ほとんど全ての部分で修正が必要であった。このため、
LCU を更新するのにあわせて制御用ソフトウェアは新規に開発することにした。

ラッパリングソフト

LCU は CORBA プロトコルによる通信ができないため、制御用ソフトウェアから CORBA プロトコルで送られた制御コマンドを TCP/IP に変換するラッパリングソフトが必要である。
新しい制御系のソフトウェア構成を図 4 に示す。
コンソールの制御用プログラムから送られたコマンドは
CORBA からラッパリングソフトによって TCP/IP のコマンドに変換され、LCU 内部のコントロールソフトに送られる。
このラッパリングソフトは各 LCU に関するパラメータ定義ファイルを管理しており、コンソールの起動時に各パラメータを設定する。電源の数が増えた場合などはこのパラメータ制御ファイルを変更するだけで対応できる。

The 14th Symposium on Accelerator Science and Technology, Tsukuba, Japan, November 2003

GUI制御画面

GUI制御画面
CORBA

ラッパリングソフト

パラメータ
定義ファイルT CP/IPLCU

CAMACクレート

LCU

CAMACクレート

LCU

CAMACクレート

LCU

CAMACクレート

LCUCAMACクレート

図４：新制御系のソフトウェア構成

5

まとめ

CAMAC とのインターフェースにµITRON を採用した
LCU を開発して現在の PC-9801 と置き換える計画であり、その準備を進めている。これによって将来の PC の更新の心配が無くなり、古くなった CAMAC システムを今後とも永く使いつづけることができるようになると考えられる。
さらに、OS として Windows を使った現在の PC より安定性が向上し、リアルタイム制御性が向上することが期待される。この更新の結果、コンソール用 PC と LCU を分離することができ、コンソール用には最新の PC に更新できるため、制御系に高度なシミュレーションコードを融合させることができると考えられる。
制御用ソフトウェアの開発には Java／CORBA を使用する予定である。Java／CORBA はプラットフォームに依存しない環境で利用できるため、将来の PC の更新にも対応しやすいと考えられる。

参考文献[1] M. Sugimoto, Nucl. Instr. and Meth. A331 (1993) 340[2] N. Kikuzawa, Proceedings of the 28th Linear Accelerator
Meeting in Japan, Tokai, July 30- Aug. 1, 2003, p.437[3] R. Kato, et al., Proceedings of the 27th Linear Accelerator
Meeting in Japan, Kyoto, Aug. 7-9, 2002, p.365[4] S. Kusano et al., Proceedings of the 23rd Linear Accelerator
Meeting in Japan, Tsukuba, Sep. 16-18, 1998, p.369.
[5] S. Kusano et al., Proceedings of International Conference on
Accelerator and Large Experimental Physics ControlSystems, Trieste, Italy, 1999, p.535.
[6] T. Tanabe et al., Proceedings of the 13th Symposium on
Accelerator Science and Technology, Suita, Osaka, Japan,Oct., 2001, p.108.