EPICS on F3RP61 の開発と応用○小田切淳一 A) 、荒木栄 A) 、内山暁仁 B) 、上窪田紀彦 A) 、亀田喜一 C) 、清道明男 A) 、込山美咲 D) 、白津英仁 C) 、高木誠 E) 、中川秀利 A) 、中村卓也 F) 、中村達郎 A) 、名倉信明 G) 、夏井敏樹 C) 、古川和朗 A) 、三川勝彦 A) 、村杉茂 A) 、本橋重信 E) 、山田秀衛 A) 、山本昇 A)A)高エネルギー加速器研究機構
住重加速器サービス株式会社
C)横河電機株式会社
D)
理化学研究所仁科加速器センター
E)
関東情報サービス株式会社
F)
三菱電機システムサービス
G)
日本アドバンストテクノロジー株式会社
B)

概要
Experimental Physics and Industrial Control System (EPICS) をベースにした加速器制御システムのための新しいフロントエンド・コントローラを開発した。同コントローラは Linux を OS として採用した横河電機社製 FA-M3

PLC 用の CPU モジュール（F3RP61）と I/O モジュールから構成される。EPICS のコア・プログラムを F3RP61の上で直接実行することにより、PLC 自体を EPICS の Input / Output Controller (IOC) として利用することが可能になった。これにより、VME/VxWorks ベースの IOC の下に従来型の PLC を配置して両者をイーサネット越しに通信させる必要はなくなり、IOC と PLC の機能を F3RP61/Linux ベースの IOC に統合することができた。その結果、制御ソフトウェアの開発時間が短縮され、維持費用が軽減された。この技術は既に KEKB, J-PARC, RIBF な
ど、現在稼働中の加速器の制御システムにおいて実用に供され、F3RP61 と、その上で動作する EPICS（EPICS onF3RP61）の安定性が実証されている。本稿では EPICS on F3RP61 の開発と応用事例、および同技術に関わる最近の発展と今後の展開について述べる。

1.

はじめに近年、加速器制御システムにおいてフロントエンド制御のためのコントローラとして PLC が多用される傾向にある。EPICS に基づく加速器制御システムの場合、PLC は IOC と呼ばれるフロントエンド計算機の下に配置され、直接、被制御機器と向き合うことになる（図 1 (A)）。上位制御系からの設定、実行コマンド等は IOC を経由して

図 1: 組込み EPICS による PLC の IOC 化

PLC に送られ、また、各種の設定値、モニタ値、被制御機器の状態情報などは PLC から IOC を経由して上位制御系に届けられる。このように、EPICS ベースの制御システムに PLC が導入された結果として、本来、被制御機器に向き合うコントローラであるべき IOC は単なる仲介役に近い存在となった。また、IOC の機能の一部が PLC に移転したことにより、フロントエンドの制御ロジックが複数のコントローラ上に分散されるようになった。このことは 3 節に詳述するように制御ソフトウェアの開発時間と開発コストの上昇を招く。
次節では、まず EPICS の特徴と基本的概念について簡潔に述べ、3 節と 4 節において、組込み EPICS 技術によるフロントエンド制御の簡素化とソフトウェア開発の効率化について述べる。5 節では実際の加速器への応用事例について述べ、6 節で同技術に関わる今後の展開について触れる。最後の 7 節において本稿のまとめを行う。

2.

EPICS とはEPICS (Experimental Physics and Industrial Control System) とは、加速器制御システムを構築するためのソフトウェア部品（ツールキット）の集まりである。1980 年代にロス・アラモス国立研究所とアルゴンヌ国立研究所が中心となって開発され、現在では数多くの加速器および大型物理実験施設の制御に採用されている。EPICS の基
本パッケージは、EPICS Open Source License の下で、無償でダウンロードして利用できる。また、メーリング・リストなどを通じて EPICS コミュニティからの（voluntary な）サポートを得ることもできる。

EPICS はネットワークで結合された分散型のシステムを前提とする。ローカル制御室に設置され、直接、機器と向き合うフロントエンド計算機は IOC (Input / Output Controller) と呼ばれ、この上で制御ロジックを構築するための汎用的なソフトウェア部品が提供されている。一方、オペレータとインタフェースする GUI などのソフトウェアも豊富にそろっている。こちらは中央制御室に置かれる Operator Interface (OPI) と呼ばれるサーバ上で実行される。

EPICS について特筆すべき点は、IOC と OPI の間の通信を担う Channel Access と呼ばれるライブラリがあることである。このため、IOC と OPI でのデータのやり取りは、チャネル（データの流れ）の名称を両者で一致させるだけで実現できる。Channel Access は Unix のソケットに近いオーバヘッドの少ない高速な通信を行うが、IOCの動的な追加への対応や TCP 接続が切れた場合の再接続などの基本機能がしっかりと実装されており、その安定性は世界中の多くの加速器研究施設等における長年の運用実績により証明されている。

3.

組込み EPICS の必要性

本節では組込み EPICS の必要性について詳しく述べる。

3.1

PLC のプログラミング環境の学習コスト

高機能化が著しい近時の PLC の実態は、むしろ IOC と同等な機能を有するフロントエンド計算機に近い。高機能化が進めば、当然、それに応じてアプリケーション開発に必要なプログラミングと、アプリケーション開発環境に習熟するための学習コストも増す。EPICS については、しばしば、その学習コストの高さが欠点として指摘されているが、言葉を換えれば、それだけ EPICS が高い機能性を持つことの証左であるとも言える。単純な処理を複雑なプログラムで記述することはできても、複雑な処理を単純なプログラムで記述することはできないからである。いずれにせよ、高機能な二種の計算機（IOC と PLC）を併用することは、学習コストの増加を招き、制御ソフトウェアの開発コストと維持コストの増大を招くため、後で述べる人的保護のインタロックなどの特別な場合を除いて可能な限り避けるべきであろう。

3.2

分散した制御ロジックのデバッグの難しさ

IOC と PLC の併用がもたらすもう一つの弊害として制御ソフトウェアの開発時、運用時のデバッグの難しさがある。IOC のプログラミングと PLC のプログラミングは、別なプログラマが担当する場合が多い。これは両者のプログラミングのスタイル、開発環境が極めて異質であることに起因する。このような状況において両者の結合試験を行う場合、双方が相手方の理解を欠いたままで不具合の調査に当たることになり、些細な問題であってもデバッグを完了するまでに時間が掛かることが多い。これは開発時においては開発時間と開発コストの増加を、運用時においてはダウンタイムの増加を招くため好ましいことではない。立ち上げ時の短期間での実装と頻繁な制御ソフトウェアの更新に対応せざるを得ない加速器制御の現実を考慮すれば、無用な階層性は排してフロントエンドの制御ロジックを局所化することによりデバッグを容易にすることが望ましい。

3.3

EPICS デバイス/ドライバ・サポートの開発コスト

EPICS に基づく加速器制御システムの場合、通常、IOC と PLC はイーサネットを介して接続される。商用の制御システムであれば、上位計算機と PLC との通信をサポートするドライバ・プログラムはベンダーにより供給されるため、ユーザがドライバ・プログラムを実装する必要はない。しかし、ユーザ・コミュニティによる開発を前提とする EPICS の場合、世界的にポピュラーなデバイスを除けば、新たなデバイスをサポートするためには、ドライバ・ソフトウェア（デバイス/ドライバ・サポート）を自ら実装する必要がある。イーサネット上の TCP/IP 通
信は 1 ミリ秒程度の時間を要する遅い I/O 処理であることにより、デバイス/ドライバ・サポートはコールバックを使用する非同期型の複雑なものになる。タイムアウト処理と受信処理に競合が生じた場合の取り扱い、さらにTCP を用いる場合はコネクションが切れた後での自動復旧処理にも注意が必要である。これらの理由で、TCP/IP通信をサポートするデバイス/ドライバ・サポートの実装は手間の掛かる作業になる。既に述べたように、EPICS
では、ユーザ・インタフェースを実行するサーバと IOC の間の通信については Channel Access ライブラリによってこれらの問題が解決されていることを考えれば、IOC と PLC の通信のために同様の機能を持つデバイス/ドライバ・サポートを実装することは無駄の多い話である。

3.4

組込み EPICS による問題の解決

以上に述べた問題は全て IOC と PLC という二種の I/O コントローラを用いることによりフロントエンド制御が二層化されたことに起因する。したがって、PLC 自体を IOC とする、つまり、PLC の CPU モジュールの上で直接、EPICS の IOC プログラムを実行することができれば、これらの問題はすべて雲散霧消する（図 1 (B)）。IOC
プログラムを実行する計算機には OS が必要とされるが、近年の技術の進歩により OS を搭載した PLC 用 CPU モジュールが市場で調達可能になった。これらの CPU モジュールと既存の豊富な PLC 用 I/O モジュールを組み合わせて新たなタイプの IOC を実現できる。PLC に EPICS を組み込んだ IOC（EPICS on F3RP61）を採用すれば、ソフトウェア開発の学習コストは基本的には EPICS だけで済み、デバッグも EPICS のアプリケーションのみで済む。さらに次節で述べるように EPICS デバイス/ドライバ・サポートの開発も大幅に簡素化される。

4.

EPICS ON F3RP61 の開発

4.1

IOC の OSEPICS では、その開発当初から IOC の OS として主に VxWorks（商用のリアルタイム OS）が使われてきた。しかし、現在では Linux が使われるケースが多くなっている。それは以下の理由による。第一に、高周波フィード
バック、大電力ビームからの機器の保護といった極めて速い応答を要求される制御には FPGA を用いることが主流になりつつあること。第二に、近年、Linux のリアルタイム応答性の向上が著しいこと。これはカーネル 2.6 から、カーネルモードで実行中のプロセスから処理を横取りする機能（preemption）が備わったことによる。その結果、リアルタイム応答性については、FPGA がカバーする領域と Linux でカバーできる領域の間のギャップは狭まりつつある。

4.2

Linux のメリット

加速器制御において Linux を採用することには、以下のような大きな利点がある。工業プラントやコンシューマ向けの製品とは異なり、加速器は実験装置という性格が強く、その生涯に亘り性能向上に向けての機器の追加、構成の変更が継続的に行われる。その結果、制御ソフトウェアについても永遠に製品として完成することはなく、運転休止期間中、運転中を問わず制御ソフトウェアの修正、機能追加が求められる。言葉を換えれば、加速器制図 2: Linux 搭載 CPU モジュール（横河電機社製 F3RP61）

図 3: F3RP61 上で起動した EPICS IOC プログラム（画面左下が IOC のターミナル）
御のためのアプリケーション・ソフトウェアの「製品寿命」はかなり短い。このため、ソフトウェアの開発期間の短縮は特に重要な意味を持つ。アプリケーション・プログラムがカーネルと一体化したモジュールとして実行されるリアルタイム OS の場合、アプリケーションの修正に伴ってカーネルからのリブートが必要になるため、小まめな修正への対応には向かない。これに対してアプリケーションをユーザ・レベルのプロセスとして実装するLinux の場合、その起動と終了は格段に速い。そこで、修正、コンパイル、実行、結果の確認という一連のサイクルを小まめに繰り返すことができる。また、アプリケーションのバグによりシステム自体がクラッシュすることもない。このようなアプリケーション開発の容易さが、被制御機器の更新などに素早く対応する際の Linux の大きなメリットとなる。

4.3

FA-M3 用 Linux 搭載 CPU モジュール

このような加速器制御分野からの要望に応える形で、横河電機株式会社により Linux を OS として採用した

FA-M3 用 CPU モジュール（図 2）が開発され、2008 年 9 月に F3RP61 として市場への製品供給が始まった。
4.4

EPICS IOC プログラムの動作確認

Linux は EPICS の標準配布パッケージがサポートする OS であるため、F3RP61 をターゲットとした EPICS のビルドと実行に関しては特に問題になることはない。実際、標準配布パッケージに含まれる Make ファイルに然る図 4: KEKB 可動ビームマスク（中央下部がステッピング・モーター）べき修正、追加を加えた後、F3RP61 の Board Support Package (BSP) に含まれる build tool chain により EPICS をビルドし、F3RP61 上で IOC プログラムを実行できることが確認された。（図 3）4.5EPICS デバイス/ドライバ・サポートの開発

FA-M3 の I/O モジュールにアクセスするためのドライバはカーネル・モジュールとして BSP に含まれる。このドライバが提供する Application Program Interface (API) をラップするだけで容易に EPICS のデバイス/ドライバ・サポートを実装することが可能である。簡単なデータ型のデバイス・サポートの場合について実装に要する時間を測ったところ、2 時間程度で済むことが分かった。

4.6

EPICS Sequencer の動作確認

EPICS の標準配布には含まれていないが、シーケンス制御を行うための追加的なソフトウェア・モジュールとして EPICS Sequencer がある。EPICS Sequencer は State Notation Language (SNL) と呼ばれる独自の言語で記述される。その特徴は、その名が示すように state（状態）という概念を持つことにある。複数の状態を定義し、それらの間で特定のイベントを契機として遷移するプログラムを書くことになるが、このイベント待ちを簡明に記述する構文も用意されている。EPICS on F3RP61 では、EPICS Sequencer で従来の PLC 用 CPU におけるラダー・プログラムを置き換えることができる。

5.

加速器制御への応用

5.1

電源制御への応用

加速器の電磁石、高周波源などの電源で比較的大型のものは、内蔵コントローラとして PLC を採用することが多い。電源立ち上げシーケンス、出力電流のランピングなどの制御ロジックは特に EPICS Sequencer との相性が良い。F3RP61 上で EPICS Sequencer を用いることで、短期間に制御プログラムを開発することができ、また、開発後の保守性も向上し、長期に亘るメンテナンスが容易になる。KEK では、これまでに KEKB 加速器のパルス Q電磁石電源の制御、J-PARC 主リングからの遅い取り出しラインの静電セプタム電源およびセプタム電磁石電源の制御に利用され、既に 1 年以上の動作実績がある。また、理化学研究所仁科加速器センターの RIBF の 28GHz 超伝導 ECR イオン源の電源制御にも採用され、安定な動作が確認されている。

5.2

位置決め制御への応用

加速器制御では、可動電磁石、可動ビームマスクなどをステッピング・モーターで駆動するための位置決めが必要とされ、モータ・ドライバの制御に PLC の位置決め制御モジュールが利用される場合がある。位置決め制御
モジュールに対するコマンドの発行、コマンドに対する ACK の確認、指示動作完了の待機といった一連のシーケ

図 5: ビームマスク位置決め制御のための IOC

図 6: EPICS on F3RP61 による可動ビームマスク制御システムの簡素化
ンスについても EPICS Sequencer を用いることで可読性と保守性の高いプログラムを書くことができる。また、上記の位置決め制御は、独立した単軸位置決め動作の組合せであることが多いため、制御対象となるモータ（回転軸）の数が多い場合には、一つのテンプレート化されたプログラムと、軸ごとのパラメータを記述するパラメータ・ファイルの組合せの形でプログラムが作成できれば都合が良い。実際、EPICS Sequencer はテンプレート化に対応しているため、この条件を満たしている。EPICS on F3RP61 を応用した具体的な事例としては、KEKB の可動ビームマスク（図 4, 図 5, 図 6）、J-PARC 主リングからの遅い取り出しラインのセプタム電磁石群、及び静電セプタム電極の位置決め制御がある。

5.3

データ収集への応用

FA-M3 には 50 マイクロ秒の変換周期に対応する ADC を備えたアナログ入力モジュールがあり、これらを利用して比較的遅い信号を対象としたデータ収集システムを構築することができる。J-PARC 主リング制御では、二種のビームモニタからの出力信号（いずれも積分信号）の読出しに EPICS on F3RP61 が応用されている。ひとつはビームロスモニタの処理回路からの信号の読出しであり、もうひとつは速い取り出しラインへの入射電荷をモニタするための Fast Current Transformer（図 7）の処理回路からの読出しである。前者は 300 点を超える信号を 8 台のユニットで分担する大規模なシステムであるのに対し、後者は 1 点のみの信号を扱う小さなシステム（図 8）である、という点で大きく異なるが、いずれもタイミング・システムからの同期信号により駆動されるイベント駆動型のシステムである。タイミング・システムからの同期信号は応答性の高いデジタル入力モジュールに入力され、

図 7: 速い取り出しラインに設置された Fast Current Transformer (FCT)

図 8: FCT からのデータ収集のための IOC（右のペア線が電荷読出し、左のペア線が同期信号）
このモジュールから F3RP61 に割込みを掛けることでビームに同期したデータの収集を実現している。これらのビーム信号の読出しでは、データ収集タイミングのジッターを抑える必要があること（1 ミリ秒程度）、ビームモニタからの生データを積分する処理回路が有効なデータを保持する時間が限られていること（4 ミリ秒以内）、の二つの理由により、他の応用に比べて高いリアルタイム応答性が求められるが、これまでの運用実績から F3RP61が求められるリアルタイム応答性を持つことが実証されている。

5.4

インタロック状態の監視への応用

インタロック状態の監視に EPICS on F3RP61 を用いる場合は、これまでに述べた応用とは異なる側面がある。
第一に、インタロック、特に人的な保護のインタロックには非常に高い信頼性が求められること。第二に、ロジッ
クが単純な AND/OR の組合せで組まれること、である。ラダー・プログラムは試験のカバレッジが上げ易く、また、AND/OR で組むロジックを分かり易く表現できるため、インタロック用の PLC には従来型の CPU が向いている。しかし、インタロック・システムの場合にも、EPICS on F3RP61 は、従来型 PLC 用 CPU と上位の制御プログラムとの仲介を果たす役割を担う CPU としての利用価値がある。同一ユニットでマルチ CPU 構成を採ることも可能であるし、また、必要に応じて PLC 専用のリンクで結ばれる大規模なネットワークに参加することで上位との架け橋となることもできる。

6.

今後の展開

EPICS on F3RP61 の今後の展開には大きく分けて三つの柱がある。第一にリアルタイム応答性のさらなる向上である。これについては、すでに横河電機株式会社により feasibility study が進行中であり、PREEMPT RT パッチの適用によって 100 マイクロ秒のレベルでのリアルタイム応答性が実現可能できることが分かっている。表 1 に横河電機株式会社が、2009 年 10 月に神戸で開催された EPICS Collaboration Meeting において公表した PREEMPT RT適用カーネルのリアルタイム応答性を示すデータを掲載する。表中に示された数字は、F3RP61 上で hackbench を負荷として実行した状態で、一定の周期で休眠と起床を繰り返すリアルタイム・プロセスのジッター（起床時刻の予定時刻からの遅延）を表す。このパッチを適用したカーネルが製品としてリリースされた暁には、FPGA とLinux で加速器制御システムに要求されるリアルタイム応答性のすべてをカバーすることが可能であろう。
表 1: PREEMPT RT パッチによるリアルタイム応答性の改善
レイテンシ範囲

現製品
2ms 6 万回PREEMPT RT
1ms 4320 万回

0µs 〜
10µs 〜
20µs 〜
30µs 〜
40µs 〜
50µs 〜
60µs 〜
70µs 〜
80µs 〜
90µs 〜
100µs 〜
110µs 〜
120µs 以上
レイテンシ最大値

00
23,617
26,609
3,341
2,928
1,476
1,088
507
25684
2866
1,065 µs

137,3827,559,622
31,478,761
1,924,410
1,925,191
268,1235,958
546
692 µs

第二の柱は、加速器を構成する機器の製造を受注する企業への EPICS 技術の移転である。人件費に対する厳しい制約の下で数多くのプロジェクトを抱える KEK にとって、今後、加速器制御のためのソフトウェア開発も外注化を進めざるを得ない。IOC として VME/VxWorks を使用する場合、開発環境の導入コストが外注化のネックとなってきたが、F3RP61/Linux を IOC として使う場合には、この問題が大幅に軽減される。実際、本稿執筆時において、組込み EPICS ベースの制御を外注化した最初のケースが実現しつつある。SuperKEKB の新 Low Level RF システムに向けて、組込み EPICS 技術を最大限に利用した制御システム一式の開発が三菱電機特機システム株式会社により進められている。これまでの経験によれば、およそ 1 週間の基礎講習と、実システム開発段階における、それなりの関与により、組込み EPICS ベースの制御システムを外注することは十分に可能であると考えている。
最後に、EPICS on F3RP61 の世界に向けての情報発信がある。加速器制御に PLC を多用する傾向は日本に限られたことではない。PLC の利便性による加速器制御システムへの浸透により、PLC の上位システムへの統合に際して抱える問題は世界共通の課題であるにも関わらず、これまでに、この問題に明快な答が提案された報告は少ない。EPICS on F3RP61 は、日本発の技術として積極的に海外にアナウンスしていく価値が十分あると思われる。
このような観点から、現在、時差がなくコミュニケーションが容易な東アジア地区に拠点を持つ加速器研究施設との技術の共有を目指して協力関係を構築する道を模索している。これまでに上海放射光施設（ SSRF）、高能物理研究所（IHEP）、台湾放射光施設（NSRRC）などから積極的な反応を得ており、すでに採用を決定した事例もある。サポート体制の整備に見通しが立てば欧米への紹介にも積極的に取り組みたいと考えている。

7.

結論

加速器制御システムで多用される PLC を IOC として用いる技術、EPICS on F3RP61 を開発した。同技術はKEKB, J-PAR, RIBF などの加速器制御システムにおいて各種電磁石電源の制御、ビームマスクや電磁石などの位置決め制御、ビームモニタの処理回路からのデータの読出し、インタロック状態のモニタなどに応用され、制御ソフトウェアの開発効率を高める上で効果的であることが実証された。また、同技術の長期運用における安定性も確認された。国内での実績により、EPICS on F3RP61 は海外の加速器研究施設からの評価も得て、幾つかの加速器研究施設では導入に向けての試験評価が進められている。Linux のリアルタイム応答性のさらなる向上に向けた研究開発も実用化の段階に達し、加速器制御分野におけるさらなる応用範囲の拡大が期待される。

参考文献[1] http://www.aps.anl.gov/epics/[2] http://www.aps.anl.gov/epics/EpicsDocumentation/AppDevManuals/AppDevGuide/AppDevGuide3.13.0b12.pdf[3] http://epics.cosylab.com/cosyjava/JCA-Common/Documentation/CAproto.html[4] http://ics-web.sns.ornl.gov/edm/edmUserManual/index.html[5] http://ics-web.sns.ornl.gov/kasemir/archiver/[6] http://www.aps.anl.gov/epics/EpicsDocumentation/AppDevManuals/Sequencer/snl 1.9 man.html[7] http://www.yokogawa.co.jp/rtos/Products/rtos-prdcpu9-ja.htm[8] J. Odagiri, et al., ”EPICS Device/Driver Modules for Network-based Devices”, Proc. of the 3rd Annual Meeting of ParticleAccelerator Society of Japan and the 31st Linear Accelerator meeting in Japan, Sendai, Aug. 2-4, 2006.
[9] Jiang Geyang, ”Porting EPICS Core Program onto micro-ITRON/SH4-based Device Controllers”, Proc. of International Workshop on Personal Computers and Particle Accelerator Controls (PCaPAC05), Hayama, Japan, March 22-25, 2005.
[10] A. Uchiyama, et al., ”Development of Embedded EPICS on F3RP61-2L”, Proc. of International Workshop on Personal Computersand Particle Accelerator Controls (PCaPAC08), Ljubljana, Slovenia, Oct. 20-23, 2008.
[11] J. Odagiri, ”Application of EPICS on F3RP61 to Accelerator Control”, Proc. of the 6th Annual Meeting of Particle Accelerator
Society of Japan, Tokai, Aug 5-7.
[12] M. Mikawa, et al., ”Embedded EPICS Controller for KEKB Pulsed Quadrupole Magnet Power Supply”, Proc. of International
Conference on Accelerator and Large Experimental Physics Control Systems (ICALEPCS09), Kobe, Japan, Oct. 12-16, 2009.
[13] T. Nakamura, et al., ”Upgrading the Control System of the Movable Masks for KEKB”, Proc. of the 6th Annual Meeting ofParticle Accelerator Society of Japan, Tokai, Aug 5-7.
[14] M.Takagi, et al., ”Control of the J-PARC Slow Extraction Line Based on Embedded EPICS”, Proc. of the 6th Annual Meeting ofParticle Accelerator Society of Japan, Tokai, Aug 5-7.
[15] S. Motohashi, et al., ”Improvement of PLC-based Data Acquisition System for Beam Loss Monitors of the J-PARC Main Ring”,Proc. of the 6th Annual Meeting of Particle Accelerator Society of Japan, Tokai, Aug 5-7.
[16] M. Komiyama, et al., ”Upgrading the Control System of RIKEN RI-Beam Factory for New Injector using Embedded EPICS”,Proc. of the 6th Annual Meeting of Particle Accelerator Society of Japan, Tokai, Aug 5-7.
[17] http://devresources.linuxfoundation.org/craiger/hackbench/