Proceedings of the 5th Annual Meeting of Particle Accelerator Society of Japanand the 33rd Linear Accelerator Meeting in Japan (August 6-8, 2008, Higashihiroshima, Japan)

DEVELOPMENT OF EPICS DEVICE SUPPORT FOR PIC-BASED I/O
CARD WITH A NETWORK INTERFACE,A)

Akito Uchiyama1B)

C), Jun-ichi Odagiri , Misaki Komiyama , Masaki Fujimaki

C)A)

SHI Accelerator Service, Ltd. (SAS)
1-17-6 Osaki, Shinagawa, Tokyo, 141-0032
B)

High Energy Accelerator Research Organization (KEK)
1-1 Oho, Tsukuba, Ibaraki, 305-0801

C)

RIKEN Nishina Center for Accelerator-Based Science
2-1 Hirosawa, Wako, Saitama, 351-0198

Abstract
In the large experimental facilities such as RIBF, KEKB, and J-PARC, the accelerators are operated by the remotecontrol system based on EPICS. However, for RIKEN Linear Accelerator (RILAC) of RIBF injector, the control system
is not only EPICS-based controllers, but also handmade hard-wired switches in operation. To solve this complication,
we developed EPICS device support using asynDriver for PIC Network Interface Card (PICNIC) composed Microchip
PIC16F877 and a network interface.

ネットワーク対応PIC搭載I/Oカード用EPICSデバイスサポートの開発
１．はじめに
現 在 の 加 速 器 制 御 シ ス テ ムはRIBF、KEKB、JPARCといった多くの施設が分散システム構築ツールであるExperimental Physics and Industrial Control
System (EPICS)2 を採用してシステム構築している[1][2][3]。EPICSを用いて構築されたシステムでは上位 制 御 ク ラ イ ア ン ト が 各 デ バ イ ス を EPICS
Input/Output Controller (IOC)を介して制御する事により、PLCやGPIB機器、VMEボード等の様々な異なるデバイスが混在しているシステムであっても上位制御側から見ればChannel Accessと呼ばれる同じプロトコルでアクセスする事が可能である。これにより、大型加速器の様な大規模実験施設においてもフロントエンド制御と上位プログラムとの間のインターフェースが統一され保守性、拡張性の高いシステム構築を可能にしている。しかし、IOCからデバイスにアクセスする為には、IOCとデバイスをインターフェースするソフトウェアである、デバイスサポートを用意しなくてはならない。したがってデバイスサポートを自前で開発する手間を省く為に既にデバイスサポートが開発済み、もしくはEPICSコラボレーションでデバイスサポートが用意されているデバイス 3 を選んで採用する事も多い。しかしながらこの事はハードウェアのコスト面に問題がある場合がある。例えばRIBFの入射器であるRILACの電磁石電源、真空系、ビーム診断系の制御システムはほぼEPICSで構築されているが、一部には加速器室とコントロール室を直接配線したハードワイヤのコン
ト ロ ー ラ も 存 在 す る [4] 。 こ れ ら は シ ン プ ル な

ON/OFF型スイッチである事が多く、高度なロジックを必要としないが、このスイッチ一つをEPICSでリモート化する為だけにPLCやN-DIM[5] といった高機能なデバイスを採用する事はハードウェアのコストパフォーマンスの面において得策ではない。そこで安価で容易に組込みが可能なI/Oボードであるトライステート社PICNIC Ver.2(図1)に注目し、EPICSデバイスサポートを開発する事とした。

図 1: PICNIC Ver.2 外観

２．ターゲットボード
PICNICとはMicrochip社PIC16F877マイコンが内蔵されたイーサネット接続可能なI/Oボードの事である[6]。大きな特長は、PICNICのファームウェアには簡易的なWebサーバが実装されており、別途制御ク
ライアントを開発しなくてもデフォルトでブラウザ

1

E-mail: a-uchi@riken.jp
http://www.aps.anl.gov/epics
3
http://www.aps.anl.gov/epics/modules/index.php
2-454-

Proceedings of the 5th Annual Meeting of Particle Accelerator Society of Japanand the 33rd Linear Accelerator Meeting in Japan (August 6-8, 2008, Higashihiroshima, Japan)

からアクセスしてI/O制御やPICNIC自身のIPアドレ期型のそれに比べてプログラムが複雑になり、一かス、ゲートウェイ、ポート番号といった固有設定のら開発する事は負担が大きすぎる。そこでEPICSコ変更を行う事が可能、と言う所にある。ネットワー
ラボレーションでは、非同期型のデバイスサポート
ク機器の設定変更が容易にできるユーザフレンドリの実装に共通に必要とされる機能をまとめたフレーなインターフェースを持つ事は実際の運用時のメンムワークであるasynDriver[7]が予め用意されている。
テナンス性において重要である。
一方で、同じような目的でイーサネット接続のデPIC16F877 マ イ コ ン 内 に 書 き 込 ま れ る フ ァ ー ム
バイスに特化したフレームワークを提供している
ウェア、接続ライブラリ、回路図は全てWeb上で公netDev[8] はKEKのEPICS横断化グループと理研加速開されており 4 、コントローラ開発の自由度が非常器制御グループにより開発され、RIBF、KEKB、Jに高く、トライステート社の情報以外にも書籍 5 や6Web上 に開発事例の情報が多くあり参考にできる。 PARCの制御系でも多く利用されている。本開発でなお筆者らがPICNICに注目した最大の理由として、 は既存のPICNIC接続ライブラリを使用する為に低レベルドライバとの切り分けができている安価(2008年7月現在¥7,200-)で購入可能である事にasynDriverを選択した。
加えて、Linux用ライブラリがGPLで公開されているという点を挙げる。PICNIC Ver.2の仕様 [6]を表１
3.2 非同期I/Oの仕組みに示す。
以上の様な利点のあるPICNICを、EPICSをベース非同期のデバイ ス サポ ート はそ れ自体非常に複雑とする制御システムからアクセス可能にする事は有だ が 、 こ の メ ソ ッ ド はasynDriverの 主要部分にな る益であると考えられる。
asynManagerによ っ て 提供さ れる 。 非同期I/Oの場合のレ コ ード プロ セス の仕組みを 具体的に説明する と
表１ : PICNIC Ver.2 仕様
次の順にな る 。 (図2参照)
通信方式
Ethernet 10BaseT
内蔵I/F(アナログ) 入力4ch + 温度センサ用1ch
・ レ コ ード がプロ セス さ れる と デバイ ス サポート
入力範囲 0～5 Vが asynManager の メ ソ ッ ド の 一 つ で あ る
分解能 10ビット
queueRequestを 呼び、 I/O要求を キ ュ ーに 入れ I/O
内蔵I/F(デジタル) 1.出力4ch, 入力4chを 実行する 別ス レ ッ ド (portThread)にイ ベン ト の発
2.出力6ch, 入力2ch (液晶使用
生を 通知する (epicsEventSignal)時)・ portThreadはepicsEventWaitで イ ベン ト 発生を 待※1 or 2をPC側で選択可
ち 受 け 、 通 知 さ れ た 際 に I/O を 実 行 す る
内蔵I/F(シリアル) 入出力1ch(processCallback関数の実行)
内蔵プロトコル
arp,ip,udp,tcp,http,ICMP,DHCP
・ processCallback関数の中では非同期I/Oを 完成

さ せる 為に当該レ コ ード を 再度プロ セス する 為のリ ク エス ト を 発行する 。

３．EPICSデバイスサポート開発手法
3.1 フレームワーク
PICNICの様なイーサネットを介してIOCと接続されるデバイスは、VMEやCompact PCIの様なCPUがバスを介してI/Oモジュールにアクセスするデバイスと比べ、I/Oの開始から終了までに時間がかかる為、デバイスサポートを非同期型にしなくてはならない。しかし非同期型のデバイスサポートは通常同

上記一連の過程において 、 デバイ ス と の通信中に受信待ち でブロ ッ ク する のはportThreadであ り 、 I/Oを 要求し た ス レ ッ ド 自身はブロ ッ ク する 事な く 、 次の レ コ ード プ ロ セ ス に進める 事が非同期I/Oの要点
であ る 。

図 2: 非同期I/O の概要

4

http://www.tristate.ne.jp/picnic/menu.html

5

例え ば“LANによ る ハード ウ ェ ア 制御 CQ出版” 等

6

例え ば“http://wikiwiki.jp/disklessfun/?remote-sys” 等-455-

Proceedings of the 5th Annual Meeting of Particle Accelerator Society of Japanand the 33rd Linear Accelerator Meeting in Japan (August 6-8, 2008, Higashihiroshima, Japan)

3.3 開発環境のI/O確認用LEDが点灯し た 。

EPICS base, asynDriverのバージ ョ ン は現在(2008年2月)の最新を 用いて 開発を 行っ た 。 開発環境を 含めた 詳細を 表2に示す。

４．まとめ、考察

表2: デバイ ス サポート 開発環境

LinuxEPICS baseasynDriver
PICNIC library

CentOS 5.1 i386
3.14.9R4-9libpicnic-20051115.tar.gz

3.4 PICNIC用デバイスサポート
EPICSでPICNICにア ク セス する 為に開発し た デバ
イ ス サ ポ ー ト は 、 DI/DO 用 の devBiPicnic,devBoPicnic 、 AI 用 の devAiPicnic で あ る 。 ま た 、 レ
コ ード タ イ プによ ら な い共通の低レ ベルド ラ イ バとし て drvAsynPicnicを 開発し た 。 PICNICと のア ク セス
はdrvAsynPicnic中でPICNIC接続ラ イ ブラ リ 内の関数を 呼ん で いる 。 概要を 図3に示す。 ト ラ イ ス テ ート社が 用意し て いる Linux版PICNICラ イ ブラ リ では、I/Oピ ン DI/DO/AIの UDP通信に よ る ア ク セ ス だけ でな く 、 DI/DOピ ン に接続さ せる 液晶ディ ス プレ イ の表示やシ リ ア ルポ ート を 利用し た 通信も サポート されて いる が、 そ れら の機能はEPICSでは使用頻度が低いと 判断し た 為省いた 。 よ っ て 、 本EPICSデバイ
ス サ ポ ー ト で 提 供 さ れ る 機 能 は UDP を 利 用 し た
DI/DO/AIへのI/Oのみであ る 。

図3:PICNIC用デバイ ス サポート 全体概要
(白抜き 部分が本開発で実装さ れた 部分)
3.5 動作テスト
DI/DO/AIについて テ ス ト 用データ ベース フ ァ イ ルを 作成し て 動作テ ス ト を 行っ た 。 DIテ ス ト 用のデータ ベース フ ァ イ ル”picnic.db”の例を 示す。
record(bo, "uchiyama:test"){
field(DTYP, "Picnic")
field(OUT, "@picnic1:4")
field(MASK, "1")}

複雑な ロ ジ ッ ク が必要な い制御にEPICS対応の安
価な 組込みI/Oボ ード を 提供する 事が可能にな り 、
ハード ウ ェ ア のコ ス ト パフ ォ ーマン ス の問題を 解決
で き た 。 asynDriverを 用い た 開発はデバッ グ に時間と 労力を 必要と し た が、 RILAC制御シ ス テ ム の発展に貢献する 事が期待さ れる 。 な お、 今後本デバイ ス
サポ ート を EPICSコ ラ ボ レ ーシ ョ ン にフ ィ ード バッ
ク し た い、 と 考え て いる 。
PICNICを 遠隔コ ン ト ロ ーラ と し て 運用し て い く
為にはリ レ ー等回路を 組込む必要があ り 、 今後こ の実装を 行う 予定であ る 。

５．謝辞
予想を 超え て 長い開発時間を 要する 事にな っ て し
ま っ た にも 関わら ず、 完成ま で継続的な サポート をし て く ださ っ た 、 理研リ ニ ア ッ ク 大木智則氏、 藍原利光氏、 山内啓資氏、 小山田和幸氏、 田村匡史氏に感謝致し ま す。

参考文献
[1] M. Komiyama, et al., “CONTROL SYSTEM FOR RIKEN
RI-BEAM FACTORY”, Proc. 4 Annu. Meet. Particle
Accelerator Society of Japan and 32 Linear Accelerator Meet.
Japan, Wako, 416-418 (2007).
[2] T. Nakamura, et al., “STATUS OF KEKBACCELERATORS CONTROL SYSTEM IN 2006”, Proc. 3Annu. Meet. Particle Accelerator Society of Japan and 31 LinearAccelerator Meet. Japan, Sendai, 922-924 (2006).
[3] H. Yoshikawa, et al., “CURRENT STATUS OF THE
CONTROL SYSTEM FOR J-PARC ACCELERATORCOMPLEX”, Proc. of ICALEPCS07, Knoxville, Tennessee,USA, 2007, 62-64[4] M. Komiyama, et al., “CONTROL SYSTEM FOR THE
RIKEN RI-BEAM FACTORY”, Proc. 3 Annu. Meet. Particle
Accelerator Society of Japan and 31 Linear Accelerator Meet.
Japan, Sendai, 932-934 (2006).
[5] M. Komiyama, et al., “CURRENT STATUS OF THE
CONTROL SYSTEM FOR THE RIKEN ACCELERATORRESEARCH FACILITY”, Proc. of ICALEPCS’03, Gyeongju,Korea, 2003, 107-109[6] ト ラ イ ス テ ート 社 PIC Network interface Card Kit Ver.2
取扱説明書[7] M. R. Kraimer, “EPICS: OPERATING-SYSTEMINDEPENDENT DEVICE/DRIVER SUPPORT”, Proc. of
ICALEPCS’03, Gyeongju, Korea, 2003, 205-207[8] J. Odagiri, et al., “EPICS Device/Driver Support Modules
for Network-based Intelligent Controllers”, Proc. of
ICALEPCS’03, Gyeongju, Korea, 2003, 494-496

結果は問題無く Cannel Accessによ り PICNIC標準搭載-456-