Proceedings of the 11th Annual Meeting of Particle Accelerator Society of Japan
August 9-11, 2014, Aomori, Japan

PASJ2014-MOOL08

EPICS 内蔵小型デバイスサーバの開発
DEVELOPMENT OF COMPACT DEVICE SERVER WITH EPICS
帯名 崇#, A), 路川 徹也 B)
Takashi Obina#, A), Tetsuya MichikawaB)
A)
KEK, high Energy Accelerator Research InstituteB)
East Japan Institute of Technology Co., Ltd.

Abstract

Large accelerator control system must handle a lot of instruments that are located in wide-spread area in manybuildings. Many kinds of software framework for such purpose have been developed, such as EPICS, TANGO,MADOCA, etc. On the other hand, most of commercial products available on the market do not embed such a softwaretools by default. We have developed a compact device server to control four devices with RS232C interfaces. The
device server works as an EPICS Input/Output Controller (IOC). In this paper, details of design, fabrication and resultsof long-term test will be reported.

1.

はじめに加速器をはじめとした巨大な実験装置を制御するには数多くのデバイスを遠隔地から操作する必要がある。これらのデバイスを有機的かつ機能的に制御するためには、なんらかの制御フレームワークが必要となるため、EPICS[1], MADOCA, TANGO など多くのソフトウェアが開発されてきた。その一方で、市販の製品を購入した際には RS232C や GPIB など標準的なインターフェースを持つ製品はあるものの、Figure 1: Overview of EPICS control system. Channel
最初から加速器制御フレームワークに対応している
Access (CA) protocol is used to communicate among
製品はほとんど無い。このような状況を打開するた
IOCs, control program or operator interfaces (OPIs).
め、我々は RS232C インターフェースを持つ小型デバイスサーバを開発し、各種デバイスを制御フレー ることで制御を行っている。IOC としては VME をムワークに容易に対応させることを目指した。本稿 はじめとしたバスシステムが多く用いられるほか、では EPICS を内蔵したデバイスサーバの開発につい PLC や Linux/Windows 等を搭載した PC が使用されて、ハードウェアおよびソフトウェアの詳細と加速 ることもある。
器での運用実績について報告する。
なにか新しいハードウェアを市販品として購入した場合にその機器が直接 CA プロトコルを理解していれば制御の面では最も簡便で理想的である。これ
2. 開発の動機と方針
ならば電源を投入して Ethernet に接続するだけです
ぐに EPICS 環境で制御できるような状況になるため、2.1 開発の動機追加で何もする必要がない。しかしながら現実的にKEK においては多くの加速器で EPICS と呼ばれ はそのような機器は市場にはほとんどなく、搭載さるネットワーク分散型ソフトウェアフレームワーク れ て い る イ ン タ ー フ ェ ー ス （ 例 え ば RS232C やを使用している。詳細は参考文献[1]に譲るが、基本 GPIB、デジタル I/O、アナログ I/O 等）に応じて的な考え方として全体をハードウェア制御層、ネッ IOC を設置し、そこで稼働するソフトウェアはハートワーク層、プレゼンテーション層の３階層構造に ドあるいはソフトウェア担当者が個別の機器に応じ分けるものである。図１に概略を示すように、ハー て開発しているのが現状である。
ドウェアを制御するための入出力コントローラ
ここではさらに具体的に RS232C の機器制御を例（Input/Output controller, IOC）が個別の機器に依存 に挙げる。RS232C は非常に古くから存在するシリする部分を担当し、最上位のプレゼンテーション層 アルインターフェースであり、多くの機器が標準的に位置する各種ユーザーインターフェース（OPI） に装備している。制御用コンピュータ（以下ではや 制 御 プ ロ グ ラ ム 群 と は チ ャ ン ネ ル ア ク セ ス IOC とする）にはシリアルインターフェースが１～（Channel Access, CA）と呼ばれるプロトコルを使用 ２個程度はじめから装着されていることも多く、対して状態変数（Process Variables, PV）をやりとりす象物が少ないときにはこれで十分であった。対象物の数が多い場合には IOC に増設ボードを装着するこ# takashi.obina@kek.jp___________________________________________- 210 -

Proceedings of the 11th Annual Meeting of Particle Accelerator Society of Japan
August 9-11, 2014, Aomori, Japan

PASJ2014-MOOL08ともよく行われてきた。しかし、このような構成を 10]。設計年代が少し古いということもあって CPU 能
とった場合の大きな欠点として IOC と対象物との距 力は控え目でメモリもあまり多く搭載していないこ離が近く（数 m ～ 数 10 m 程度まで）なければい と、価格もほかの製品に比べて高価であることなどけないこと、特殊なハードウェアが必要になるため の理由で今回の候補からは除外した。Galileo は設IOC が故障したときの対応が非常に困難になること 計を始めた段階ではまだ市販されていなかったが、等が挙げられる。そのほかデバッグも当該 IOC 上で CPU 能力は十分であるがサイズが大きいこと、消費しかできないという欠点もあった。近年ではこれら 電力の面からも組み込み用途というよりは小型のの問題を解決するためにシリアル―Ethernet メディ PC という傾向が強い。Intel プロセッサに限定されアコンバータを使用することが多い。IOC とメディ るアプリケーションがあれば今後候補に上ると考えアコンバータとの間はソケット通信を使用してデー ている。1)～3)の３種類のボードはいずれも個人レタのやり取りを行うため、IOC の設置場所はネット ベルでも購入可能な程度に安価であるため近年非常ワーク上のどこにあっても良く、距離の問題は無い。 に人気が高く、ユーザー間の議論や情報共有が広くさらに、１つのマシンから複数のメディアコンバー 行われている製品である。これらについての比較表
タとの通信を行うこともできるため、特殊なハード を表１に示す。Arduino Uno は最も小型かつ安価でウェアが不要になって耐障害性の面で有利になった。 あるがホスト PC に USB 接続して使用することが前
この構成での欠点は主として２つある。１つはメ 提になっており OS やイーサネットインターフェー
ディアコンバータと IOC 間のネットワーク通信と スを搭載することに問題が出てくる。Raspberry Pi
CA プロトコルが流れるネットワークとは論理的に と BeagleBone Black は似通ったスペックである。
は全く別の通信であるにもかかわらず、物理メディ 最終的に I/O ピン数が多いこと、ハードウェアでアとしてはおなじ Ethernet 線を使うため冗長であり、 RS232C ポートが５ポートサポートされることを重ネットワークトラフィックの増加につながりやすい 視して、BeagleBone Black （以下 BBB と記述）をことである。もう１つは、CA プロトコルは標準化 採用することとした。
されているため、初期化方法やなんらかの障害によってコネクションが切断された場合の再接続方法
Table 1: Comparison of Three Boardsなどが規定されているのに対し、メディアコンバー
タとの通信は機器に依存する部分であるため障害後の復旧に問題が生じる場合があることである。特に後者はメディアコンバータの製品によって違いがあり、多種多数の機器が導入されることは管理コストの増加につながってしまう。
以上の問題を解決し、少しでも理想形に近づけるため、我々は EPICS を内蔵した小型デバイスサーバを開発することにした。
2.2

開発の方針

最初に決定すべき項目はこのデバイスサーバ全てを最初から開発するのか、あるいは市販品をベースにした開発をするのか、であった。これには最終的
BBB の特徴としてはソフトウェアのみならずハーに必用なハードウェアの数量と、開発にかかるコスト（金銭面と時間、労力まで含めて）とに大きく関 ドウェアまで含めてオープンソース化されているこわる。現状のマンパワーでベースとなるハードウェ とが挙げられ、ライセンス形態はクリエイティブコ
アと OS まで含めたソフトウェア開発を遂行するこ モンズとなっている。ドキュメント類も充実しておとはほぼ不可能であり、当面必要となる数量も１０ り、“Cape”と呼ばれる拡張ボード規格についても個以下と大量ではなかったため、今回の目的に適し よく整備されている[11]。市販品の Cape も数多く販た市販の小型ボードを選定する方針とした。今後の 売されるなど、活動は活発に行われている。BBB は応用を常に念頭におき、できるかぎり拡張性・柔軟 実際の生産品に組み込むというよりはプロトタイプ性に富むハードウェアであることを条件に入れてい 製作としての用途を前提にした製品であるが、自己責任において機器に組み込んで使用することは妨げる。
近年の回路集積技術の進歩の恩恵を受けて、小型 ていない[12]。
デバイスサーバに使用可能なハードウェアは各社か
2.3 製作ターゲットら多くの製品が出ている。比較対象にしたのは以下
今回製作するデバイスサーバの最初の目標はの製品である：1) BeagleBone Black[2], 2) Raspberry
[3]
[4]
[5]
[6]
EPICSを内蔵した 4 ポート RS232C サーバである。
Pi , 3) Arduino Uno , 4) Armadillo , 5) Suzaku , 6)
[7]
これは後述するコンパクトERL 加速器における放Galileo 。これらの製品のうち、比較的業務用途と射線モニタで使用することを主眼にしている。前述いえる製品はアットマークテクノ社製の Armadillo
および Suzaku である。I/O ピンの数は十分であり、 したように BBB は SoC チップ内に UART (Universal
EPICS を稼働させた実績もいくつか存在している [8- Asynchronous Receiver Transmitter)回路を内蔵してお- 211 -Proceedings of the 11th Annual Meeting of Particle Accelerator Society of Japan
August 9-11, 2014, Aomori, Japan

PASJ2014-MOOL08

り、ブート時のコンフィグレーションでこれらの ネクタを採用すれば小型化は可能であるが、本来のポートを使うように指定するのみでシリアル通信が 目的である「簡便に接続できるデバイスサーバ」と可能となる。
いう主旨を優先して Dsub-9pin コネクタを４個配置
BBB を起動するとき、デフォルトでは HDMI 出 した。
力有効でシリアルポートは１ポートのみ使用可能なソフトウェア開発状態となる。BBB には定義済みの動作モードが８種 3.
類用意されていてピンごとにモードを指定可能である。Cape ボードを装着し、EEPROM に書かれた 3.1 OS と開発環境のセットアップ
BBB のデフォルト OS は Angstrom Linux である。
ファームウェアに対応するドライバを読み込むように設定することで電源投入時にモードを決定できる。 CentOS や Debian などよく使用される Linux と設定
４ポートの RS232C を使うには使用する全ピンを が異なるため、手間取ることもあったがコミュニモード６に設定するのが簡単である。また、BBB の ティの情報などを参照して解決することができた。
I/O 電圧レベルは 3.3 V であるため RS232C 用のレ 最新のリビジョン (Rev C)ではデフォル ト OS がベルコンバータも搭載した Cape を設計した。回路 Debian に変更されており、こちらはほぼ苦労することなく EPICS をインストール可能であった。
図および基板図面を図２に示す。
通常、OS はオンボード eMMC から立ち上げること が で き る が 、 今 回 作 成 し た Cape で 使 用 す る
UART のピンが eMMC と重なっているという問題があった。そこで当面は microSD カードを装着してそこからブートする方針とした。各種プログラムはBBB に ssh でログインした後にセルフコンパイルを行う。通常、組み込み機器の CPU は遅く、クロスコンパイルを行うことが一般的であるが BBB ではさほどストレスなくコンパイル・実行が出来る。
Figure 2: Circuit and board schematic of mezzanine card.
EPICS Base 全体をコンパイルするような場合にはさSimple double-sided board is enough to mount all parts.
すがに時間がかかるが、許容範囲内である。Base の基板製作はインターネット経由でプリント基板メー ほかにもよく使用する asyn, sequencer, stream device
カに発注した[13]。基板サイズが小さいため、安価か などすべて問題なくコンパイルと実行が出来た。
つ１週間以内には基板が送られてくる。オプションとして部品実装まで発注することもできるが、DIP 3.2 EPICS Application 開発
ALOKA 社製の放射線モニタ MAR-782[15]を１つのパッケージの場合は価格が高い。量産するならば表デバイスサーバあたり最大４台接続する。RS232C面実装パーツでの設計にする必要がある。
シャーシについても安価に製作するため、特殊な 経由であるため Linux では /dev/ttyO1 等のデバイスサイズを避けてタカチ社製の標準ケース kc5-13-10 ファイル経由でアクセスする。メッセージベースのをベースにして追加工することにした [14] 。加工用 非同期制御を簡単に取り扱うことのできる AsynDriver[16]と Stream Device[17] を使用した。
CAD 図面を作成して送るのみで製作可能である。
IOC アプリケーションプログラムは NFS マウント
図３に製作したデバイスサーバの写真を示す。子
したサーバ上においている。SD
カード上に保存す基板である Cape は BBB の上に装着される。Dsubることも可能ではあるが、できる限り個々のデバイコネクタのサイズが大きいため全体のサイズを極端に小さくすることは困難である。特殊なシリアルコ スサーバの個性をなくすためにこの方針とした。また、ブート時に自動的に IOC が起動するように設定してある。

4.

Figure 3: Photograph of 4-port RS232C device server. A“Cape” mezzanine board is installed on top of BBB.

結果

図４にデバイスサーバと KEK にてコミッショニングが進行中のコンパクト ERL (cERL) [18]の平面図と放射線モニタの配置図を示す。cERL のシールド
壁外形は約 60 m × 20 m 程度である。計測器にはALOKA 社製 MAR-782 を使用している。これは放射線センサと本体部分とを分離することが可能であるため、センサ部をシールド内の特にレベルが高いと予想される場所に設置し、約 40m 程度の専用線で本体と接続している。外部インターフェースは
RS232C あるいは RS422 が選択可能であるため、今回は RS232C に設定して、直近の場所にデバイスサーバを設置した。同時に加速器制御専用のネッ- 212 -Proceedings of the 11th Annual Meeting of Particle Accelerator Society of Japan
August 9-11, 2014, Aomori, Japan

PASJ2014-MOOL08

することも可能にしている。BBB の ADC 入力は 0～ 1.8 V / 12bit であり、このままでは不便であった
ため、前段にスケール調整用のバッファ回路を配置して±10V の電圧入力を読み込む仕様とした。デジタルは最大 60bit の 3.3V TTL レベル I/O である。ソフトウェアのデバッグは完了し、問題なく動作することを確認した。これから実際の設置場所に配置して運用する予定である。

Figure 4: Left figure shows area monitor (ALOKAMAR-782) and a device server installed on the outside
wall of accelerator shield. Location of radiation sensors
are shown as a yellow circle in the right figure.
トワークに接続して EPICS IOC として通信を行っている。MAR-782 は指定した閾値を超えるとリレー出力を出すポートを備えているため、インターロック目的には接点を監視するシステムを別系統で用意している。加速器制御室は同じ建物の２階に位置している。
測定結果の例を図５に示す。このときは午前中に超伝導空洞のコンディショニングを実施し、パルスビームによるビーム調整に続いて連続ビーム(CW、6.5 μA 程度)によるビーム調整スタディを行ったときの記録である。シールド内各所での放射線レベルを測定することでビームロスの発生源の調査とチューニングを行うことができる。
デバイスサーバの設置後、約半年間以上にわたって連続運用を実施している。ビーム運転その間、一度も再起動を実施する必用もなく順調に連続稼働した。

Figure 5: Example plot of radiation level inside the cERL
accelerator shield, when CW beam tuning was carriedout. CSS program is used to show the data.
4 ポート RS232C 版のほかに、NIM ケースに格納した多機能タイプの開発も実施した。これは主としてデジタル I/O とアナログ入力として使用することを目的としている。ケースは加速器制御でよく利用されている NIM モジュールとしたが、NIM ビン電源が無い環境でも単体で使用可能にするため、背面の切り替えスイッチによって AC アダプタから給電

Figure 6: BBB installed in NIM chassis. 60 bit Digital
I/O, 1 port RS232C, 6 channels ADC are available.

5.

まとめと今後の予定

市販の名刺サイズシングルボードコンピュータである BeagleBone Black をベースにして EPICS 内蔵の小型デバイスサーバを開発した。最初の応用例として４ポートの RS232C ホストとして稼働する IOCを製作して KEK-cERL において連続運転をおこない、機器制御とモニタに関して十分な性能と安定性を持っていることを確認した。開発したデバイスサーバは拡張性にも優れているため、今後新しいデバイスの制御が必要になったときにも迅速なプロトタイピングを行うことができる。今後の開発ターゲットとしては以下のような候補を検討している• 1 port モデル製作、4 port タイプの量産、• USB ホスト（既に実績あり）• PoE 対応
• 様々な I/O に使用 (Digital/Analog)• Ethernet 2 port タイプ• Gigabit Ethernet• 単純な表示端末や入退室の表示用 PC 置き換え
デバイスサーバが大量に必要な場合は BBB を使用するよりはこれをベースにしてボードを一から製作した方が安価になる可能性もあるが、当面必要な数量を考えると BBB をそのまま利用していく方が有利だと考えている。しかし、最近では本製品の人気のため入手困難になっている状況も現れている。いずれ解消すると思われるが、このような状況に陥ることを避けるため、新たなプラットホームを自作するという選択肢も常に考慮しておく必要があると思われる。
BBB をベースにしたプラットホームは他の制御系、たとえば導入部で例を挙げた TANGO, MADOCA の
ほ か PF ビ ー ム ラ イ ン で 使 用 さ れ て い る
STARS/COACK[19]などへも容易に移植可能である。

- 213 -

Proceedings of the 11th Annual Meeting of Particle Accelerator Society of Japan
August 9-11, 2014, Aomori, Japan

PASJ2014-MOOL08

このたび我々が開発した拡張ボードの回路図や基板図面、ケース図面などのハードウェア情報やソフトウェア開発の詳細な記録は wiki サイト [20-21]にて公開しておりダウンロードして利用可能である。より多くの研究所や個人によるハードウェア/ソフトウェアの開発および情報共有を進めて行くことで開発コミュニティが広がることを期待している。

参考文献[1] EPICS, http://www.aps.anl.gov/epics/[2] BeagleBone Black, http://beagleboard.org/black[3] Raspberry Pi, http://www.raspberrypi.org/[4] Arduino, http://www.arduino.cc/[5] Armadillo, http://armadillo.atmark-techno.com/[6] Suzaku, http://suzaku.atmark-techno.com/[7] Galileo, http://www.intel.co.jp/content/www/jp/ja/
do-it-yourself/galileo-maker-quark-board.html[8] T. T. Nakamura, et al., Proc. IPAC10, Kyoto (2010) 2683
[9] S. Kusano, et al., Proc. 8th Annual Meeting of Particle
Accelerator Society of Japan (2011) MOPS095[10] EPICS Users wiki, EPICS on Armadillo development,
http://cerldev.kek.jp/trac/EpicsUsersJP/wiki/armadillo/crossenv[11] BeagleBone Capes
http://elinux.org/Beagleboard:BeagleBone_Capes[12] BeagleBone Black “System Reference Manual”
http://elinux.org/Beagleboard:BeagleBoneBlack[13] プリント基板センターPB、http://pcb-center.com/
P 板.com, http://www.p-ban.com/ 等[14] タカチ製作所 http://www.takachi-el.co.jp/[15] ALOKA MAR-782, http://www.hitachi-aloka.co.jp/english/
products/data/radiation-011-MAR781782[16] EPICS Asyn Driver,
http://www.aps.anl.gov/epics/modules/soft/asyn/[17] EPICS Stream Device 2
http://epics.web.psi.ch/software/streamdevice/[18] ERL 開発室 http://pfwww.kek.jp/ERLoffice/index.html[19]STARS, http://stars.kek.jp/[20] EpicsUsers wiki, http://cerldev.kek.jp/trac/EpicsUsersJP/[21] ALOKA MAR-782 用 IOC 開発, EpicsUsersJP wiki,
http://cerldev.kek.jp/trac/EpicsUsersJP/
wiki/epics/streamdevice/Aloka_MAR_783- 214 -