DAQ-‐Middlewareについて
千代浩司(せんだいひろし) 大学共同利用機関法人
高エネルギー加速器研究機構(KEK) 素粒子原子核研究所
2013-‐09-‐03 1
DAQ-‐Middlewareとは• RT-‐Middlewareを実験データ収集用
に拡張 • DAQコンポーネント (RTコンポーネン
ト)を組み合わせてシステムを構築する。以下をユーザーに提供する。 – 状態遷移 – DAQコンポーネント – ランコントーロール(DAQ-‐Operator(コントローラ))
– システムコンフィギュレーション – システムインターフェース
2013-‐09-‐03 2
DAQ- Component
DAQ- Operator
DAQ-Middleware
DAQ- Component
DAQ- Component
RT-Middleware
Run Control Function
System Configuration
function Data Transfer
Function
Web Interface
もくじ
• DAQ-‐Middlewareが想定している実験 DAQ: Data AcquisiBon (データ収集)
• DAQ-‐Middlewareの紹介
2013-‐09-‐03 3
高エネルギー加速器研究機構 (KEK)• 加速器を使ったサイエンス
– 素粒子、原子核の研究 – 物質構造、生命科学 – 場所: 茨城県つくば市および東海村 – 人員: 教員 380人、技術職員 150人、事務職員 150人
2013-‐09-‐03 4
東海キャンパス
2013-‐09-‐03 5
J-‐PARC• Japan Proton Accelerator Research Complex
2013-‐09-‐03 6
高エネルギー加速器研究機構 (KEK)、原子力研究開発機構 (JAEA)共同運営
J-‐PARC/MLF (物質•生命科学実験施設)
2013-‐09-‐03 7
2013-‐09-‐03 8
測定法
L
陽子ビーム
速い中性子
中速中性子
遅い中性子
試料
検出器E=1/2*m(L/t)2
25Hz
2013-‐09-‐03 9
水銀ターゲット
解析には散乱中性子のエネルギーと位置情報が必要 • エネルギーは飛行時間から速さを算出 • 位置情報は検出器の位置、および電荷で算出
Q1
Q2
L
x
x/L= Q1/(Q1+Q2) 4kΩ
He3ガス一次元検出器
PSD(posiBon sensiBve detector)
2013-‐09-‐03 10
2013-‐09-‐03 11
2013-‐09-‐03 12
2013-‐09-‐03 13
2013-‐09-‐03 14
2013-‐09-‐03
読出し方式(昔)
• 共有バスによる読出し方式CAMAC, VMEbus ⇒クレート内にコントローラが必要
⇒基本的にはコントローラによるシーケンシャルなモジュール読出しのためスループットに限界
Controller
ADCs
CAMAC Dataway
計算機へ
15
2013-‐09-‐03
読出し方式(今)
• 共有バスによるシリアル読出しから、ネットワークによる並列読出しへシフトが起こっている
• SiTCPの発明により、種々のモジュールのネットワーク読出しが可能になった h[p://e-‐sys.kek.jp/tech/sitcp/
16
FPGA
DAQ-‐Middlewareについて
2013-‐09-‐03 17
2013-‐09-‐03
データ収集(DAQ)システムの基本要素データ読出し、保存
– 検出器からの信号を(デジタイズして)保存する– オフラインで詳細なデータ解析のため
オンライン解析(モニタ)– 実験の監視を行う (ビーム時間が制限されている
場合もある)– 実験遂行の妥当性を保障する
ランコントロール – スタート、ストップ (プロセスの起動、停止)
周辺機器コントロール – 高電圧、温度など
18
従来のDAQシステム構築
• スクラップ & ビルド – ソフトウェアの再利用については
• ライブラリレベルでの再利用 (システムとしては結局あらたなものを作ることになる)
• システムレベルでの再利用 (データ収集効率が落ちる)
2013-‐09-‐03 19
DAQ-‐Middlewareがめざすもの
• 目的 – システム構築の負担を減らす – データ収集効率を最大限に近づける
• 方針 – デバイスドライバ、読み出しライブラリとシステム
の間にコンポーネント層を設ける • データ収集効率の確保 • 実験毎の違いを吸収
– システムの枠組みは普遍フレームワークとする2013-‐09-‐03 20
2013-‐09-‐03 21
DAQ-‐Middlewareとは• RT-‐Middlewareを実験データ収集用
に拡張 • DAQコンポーネント (RTコンポーネン
ト)を組み合わせてシステムを構築する。以下をユーザーに提供する。 – 状態遷移 – DAQコンポーネント – ランコントーロール(DAQ-‐Operator(コントローラ))
– システムコンフィギュレーション – システムインターフェース
2013-‐09-‐03 22
DAQ- Component
DAQ- Operator
DAQ-Middleware
DAQ- Component
DAQ- Component
RT-Middleware
Run Control Function
System Configuration
function Data Transfer
Function
Web Interface
DAQ-Middleware構成図
Dispatcher
Logger
Monitor Gatherer
・ ・ ・
HTTP Server
• Control Panel on Web browser (javascript, ajax) • Python GUI • Command line program
Online histograms on Web browser
Read-‐out modules
PC
PC
xml/h[p Command/Status
User Interface
XML
System ConfiguraBon
Online histograms using ROOT
XML/JSON
Device CondiBon/ Online analysis
• 使用するコンポーネントを指定 • コンポーネント間接続情報 • パラメータ
• 装置パラメータ • オンラインモニタパラメータ
Detectors
Daq Operator
2013-‐09-‐03 23
mod_python mod_wsgi
command/status
状態遷移
2013-‐09-‐03 24
LOADED
CONFIGURED
RUNNING PAUSED
Configure
Start
Unconfigure
StopPause
Resume
2013-‐09-‐03 25
InacBve
Error
LOADED
CONFIGURED
RUNNING PAUSED
Configure
Start
Unconfigure
StopPause
Resume
Created
Alive
AcBve
Atcive状態のサブステートとして必要な状態を実装
26
DAQコンポーネント
n DAQコンポーネント == RT コンポーネント n データ転送機能はInPort, OutPortを利用 n DaqOperatorコンポーネントからの指示(コマンド、ステータス)はサービス
ポートを利用 n コマンド: 状態遷移 n ステータス: InPort, OutPortの状態、取り扱ったデータ数
InPort OutPort
Service Port (command/status)
Logics (for data handling)
Data
InPort OutPort
Service Port (command/status)
Logics (for data handling)
Data + =
2013-‐09-‐03
DAQコンポーネント間のデータフォーマット
2013-‐09-‐03 27
COMPONENT HEADER
COMPONENT FOOTER
Event Data
Event Data
Event Data
Event Data
Reserved ReservedHeader MagicHeader Magic
Data Byte Size
Data Byte Size
Data Byte Size
Data Byte Size
Reserved ReservedFooter MagicFooter Magic Seq. Num Seq. Num Seq. Num Seq. Num
Component Header
Component Footer
Data Byte Sizeには下流コンポーネントに何バイトのイベントデータを送ろうとしたか を入れる 下流側ではDataByteSizeを読んでデータが全部読めたかどうか判断する
Sequence Numberにデータを送るのは何回目かを入れる 下流側では受け取った回数を自分で数えておいて、Sequence Numberとあうか どうか確認する
ランコントロールおよび システムインターフェース: DaqOperator
2013-‐09-‐03 28
HTTP Server
• Control Panel on Web browser (javascript, ajax) • Python GUI • Command line program
xml/h[p Command/Status
User Interface
Daq Operator
28
DAQコンポーネント
• DAQコンポーネントに対してデータ収集スタート、ストップ等の指示、ステータス取得を行う必要がある。 • DaqOperatorを作り、これに統括させる。DaqOperatorはRTコンポーネント。サービスポートを利用している。 • 外部システムからDaqOperatorに対する指示はxml/h[pで行う
• 既存のものがあるときは、h[pで通信するようにすれば使える
command,status
システムコンフィギュレーション• XMLファイルに記述し、DaqOperatorが読んで
システム構成を把握する。 • システムコンフィギュレーションファイルの変
更で構成を変更することができる。
2013-‐09-‐03 29
127.0.0.1 127.0.0.1 50000 SampleReader0.rtc /home/daq/MyDaq/SampleReader/SampleReaderComp /tmp/daqmw/rtc.conf 2 samplereader_out
READOUT
READOUT
READOUT
READOUT
ユーザー側でのセットアップ
• RedHat Enterprise Linux互換OS用RPMパッケージ、Ubuntu用パッケージを配布 – セットアップスクリプトの実行でダウンロードから
セットアップまで終了する
2013-‐09-‐03 30
ユーザーの利用方法
2013-‐09-‐03 31
LOADED
CONFIGURED
RUNNING
PAUSED
daq_dummy()
daq_dummy()
daq_run()
daq_dummy()
CONFIGURE daq_configure()
START daq_start()
PAUSE daq_pause()
UNCONFIGURE daq_unconfigure()
STOP daq_stop()
RESUME daq_resume()
各状態および状態遷移時に呼ばれる関数を用意。 ユーザーは各関数を実装することでDAQコンポーネントを完成させる。
利用例
• 実験 – J-‐PARC/MLF – DAQ system of Depth-‐resolved XMCD (X-‐ray MagneBc Circular Dichroism)
experiments at Photon Factory (KEK IMSS, KEK IPNS)
– CANDLES (岐阜県神岡地下実験) • 実験(これから)
– J-‐PARC Hadron E16 (High P) – SuperNEMO
• 検出器(センサー)テストベッド – ILC CCD Vertex (KEK,東北大学) – GEM (KEK 測定器開発室) – SOI (KEK 測定器開発室) – ADC_SiTCP (Open-‐It) – J-‐PARC Hadron COMET (RoesB, CDC) (これから)
2013-‐09-‐03 32
J-‐PARC MLF中性子での使用状況
2013-‐09-‐03 33
DAQ-‐Middleware Working
2008年5月のファーストビームから稼働している。
開発体制
2013-‐09-‐03 34
Open-‐It (Open source consorBum of InstrumentaBon) の1プロジェクトとして開発を進めている。 Open-‐It : 加速器科学および関連分野に関する放射線計測システム開発のための開発教育拠点ネットワーク テクノロジー: ASIC, PCB, FPGA, Soqware 教育: OJT, トレーニングコース、セミナー h[p://openit.kek.jp/
学部: 11, M1: 66, M2: 9, D1-‐3: 8 その他 41
DAQ-‐Middleware プロジェクト
• 2010年4月DAQ-‐Middleware Core グループ結成 • メンバー
– 千代、濱田、井上 (KEK) – 長坂 (広島工業大学) – 味村 (大阪大学) – 神徳、安藤 (産業技術総合研究所) – 和田 ( (株) Bee Beans Technologies) – 仲吉(2011年4月まで)、安(2012年3月まで)
2013-‐09-‐03 35
DAQ-‐Middleware トレーニングコース
2013-‐09-‐03 36
毎年夏に東日本、西日本でそれぞれ開催
2013-‐09-‐03 37
p RT-‐Middlewareを実験データ収集システムに拡張 p RT-‐Middlewareからの拡張点
– 実験データ収集に必要な状態遷移の拡張 – サービスポートを利用したコマンド/ステータス送受信機能
の実装 p 利用状況
– 実験として 大強度陽子加速器施設(J-‐PARC)物質・生命科学実験施設(MLF)の14個のビームライン
CANDLES(神岡地下実験室) – 検出器センサーテストベッドとしての利用
p 開発体制 – Open-‐Itの1プロジェクトとして開発を進めている Open-‐It: 加速器科学および関連分野に関する放射線計測システム開発のための開発教育拠点ネットワーク
p URL h[p://daqmw.kek.jp/ h[p://openit.kek.jp/