• 検索結果がありません。

(Microsoft PowerPoint - daqmiddware-overview [\214\335\212\267\203\202\201[\203h])

N/A
N/A
Protected

Academic year: 2021

シェア "(Microsoft PowerPoint - daqmiddware-overview [\214\335\212\267\203\202\201[\203h])"

Copied!
20
0
0

読み込み中.... (全文を見る)

全文

(1)

DAQミドルウエアの概要

2008年8月5・6日

DAQ 実習 - DAQ-Middleware

KEKエレクトロニクスシステムグループ

KEK測定器開発室DAQプロジェクト

安 芳次

(2)

DAQミドルウエアの狙い

• 多数の計算機を使ったネットワーク分散型D

AQソフトウエア

• ソフトウエアの汎用化

– 国際標準ロボット技術(RTミドルウエア)の利用

– 国際標準ロボット技術(RTミドルウエア)の利用

– XMLによるデータ収集パラメータの記述

• 複雑さの隠蔽

– パッケージソフトウエア化(簡単インストール)

– 通信・同期・マルチスレッドなどの隠蔽

– 自動化による簡単操作

(3)

RTミドルウエアとは?

• Object Management Group(OMG)による国際

標準ロボット技術

• ロボット分野に限らず、自律し協調したコン

ポーネントを必要とする組み込み系を含むソ

ポーネントを必要とする組み込み系を含むソ

フトウエアのインフラを提供する

• 日本では産総研が標準化を主導し、

OpenRTM-aistパケージを開発している

http://www.is.aist.go.jp/rt/OpenRTM-aist/html/index.html

(4)

<<PIM>> RTM Specification 他の プラ ット フォー ムにお ける モデ ル NE DO ロジェク トによ る 準 仕様 プ 標 来 的な 準 化作 業 将 標 PSM 基づく ンターフェースに イ PIM ベル仕様レ < <mapping> > <<use>> <<PSM> RTM CORBA model <<PIM> SDO model <<PSM>> RTM EJB mode l <<PSM>> RTM SOAP model

OMG のモデリング

A IST よる R TMに 実装 実 現済 み 未 実現 張された ンターフェース 拡 イ 実装 他 のベ ンダによる 実装 <<use>>

<<im plem ents>>

<<interface>> OpenRTM basic interface OpenRTM-aist Other RTM <<interface>> OpenRTM ext. interfa ce

PIM: Platform Independent Model

PSM: Platform Specific Model

(5)

RT-Component Architecture

Status

Status

Main Thread

Data Flow

Command

Command

Data Input

Data Output

Command/ Status Flow

(6)

DAQミドルウエアの特徴

System

Configuration

DAQ Extension

– RTミドルウエアの上に独自

のステートマシンを構築し、

RTミドルウエアを基にした

新たなDAQ用のベースク

ラスを設計

RTM

DAQ Extension

ラスを設計

その上に

– コマンド・ステータスを操作

するRun control

– XMLを用いたSystem

configuration

– XML/HTTPプロトコルを用い

たSystem Interface

(7)

WEB

WEB

Server

DAQ

Operator

DAQミドルウエア構成例

XML/HTTP通信

Gatherer

Dispatcher

SiTCP

Logger

SiTCP

CORBA通信

TCP/IP通信

Monitor

Gatherer、Dispatcher、Logger、Monitor、これらのコンポーネントは

DAQOperatorの指示に従い、互いに他のコンポーネントと自律協

調して動作している。

(8)

Run control

• コマンド・ステータスを操作する

• DAQ独自のステートマシンを持つ

• ステートの遷移はSystem Interfaceからのコマ

ンドを受け取ることで実現する

ンドを受け取ることで実現する

• DAQOperatorは各種DAQコンポーネントに対

応するコマンドを実行し、それらの操作する

(9)

State Machine

activate

RTM State Machine

Inactive state

Active state

LOADED

configure

unconfigured

DAQ State Machine

error

reset

deactivate

Error state

CONFIGURED

RUNNING

PAUSED

configure

start

pause

resume

stop

unconfigured

(10)

ユーザが記述すべき

主なメソッド

daq_configure()

- configureコマンドで構成パラメータを取得

daq_start()

- startコマンドでRUNの準備

daq_run()

ー daq_start()が呼ばれた後、ひたすら実行される(このメソッ

ドが何度も呼ばれる)

daq_pause()

- pauseコマンドを受けて一時データ収集を中止

daq_resume()

resume

daq_resume()

- resumeコマンド受けて一時中止していたデータ収集

を再開

daq_stop()

- stopコマンドを受けてRUNを終了する

daq_unconfigure()

- unconfigureコマンドをうけて再びconfigureコマン

ドを受け取れるようにする

これらのメソッドを自分に合わせて変更しするだけでよい。ただし、XMLの

スキーマを変えるような変更の場合は、別途変更が必要。

(11)

System Configuration

• XML言語で記述される

• DAQOperatorはその記述をDocument Object

Model(DOM)解析する

• DAQOperatorは解析されたパラメータを、DAQ

• DAQOperatorは解析されたパラメータを、DAQ

コンポーネントには、名前と値の対(NVList)に

して渡す(コンポーネントの負担を軽減)

• これにより、汎用DAQコンポーネントを実現

する

(12)

DAQミドルウエアの構成XMLファイル

<?xml version="1.0"?> <configInfo> <daqGroups> <daqGroup gid="group1"> <components> <component cid="Reader0"> <hostAddr>kensdaqpc5.kek.jp</hostAddr> <hostPort>50000</hostPort> <instName>Reader0.rtc</instName> <execPath>/home/daq/bin/ReaderComp</execPath> <execPath>/home/daq/bin/ReaderComp</execPath> <confFile>/home/daq/rtc.conf</confFile> <startOrd>4</startOrd> <inPorts> </inPorts> <outPorts> <outPort>reader_out</outPort> </outPorts> <params> <param pid="monRate">100</param> <param pid="portNo">1111</param> <param pid="srcAddr">127.0.0.1</param> </params> </component>

(13)

System interface

• メッセージはXML言語で、通信プロトコルは

HTTPで実現される

• Apache httpd + mod_pythonモジュールを使

• PythonスクリプトとDAQOperatorを結びつける

ため、ParameterClient/ParameterServerクラス

を開発(Python interface + C++クラス)

(14)

システムインターフェイス

システムインターフェイスについて

について

Parameter

Server

汎用HTTPサーバ

Python WEB I/F for Apache (mod_python) Parameter Client

XML/HTTP

XML

Request / Response

HTTPクライアント

REQUEST <?xml version="1.0" encoding="UTF-8" ?>

Controller

Server

DAQCommand/ Response DAQ-Component DAQ-Component <?xml version="1.0" encoding="UTF-8" ?> <request> <methodname>Begin</methodname> <methodparams></methodparams> </request> RESPONSE <?xml version="1.0" encoding="UTF-8" ?> <response> <returnvalue> <result> <status>OK</status> <message>Error Reason</message> </result> </returnvalue> </response>

(15)

ParameterClient programming

mod_python

programming

HTML programming

<form name="myform" action="/DAQ/daq.py/command"

method="post">

<input type="text" name="cmd" size=40 maxlength=40 />

<input type="submit" value="Submit" />

</form>

ParameterClient

Python interface for

ParameterClient

programming

def command(req, cmd):

if not cmd:

return "A required parameter is missing..."

client = ParameterClient.ParameterClient("localhost",

30000)

client.put("command", cmd)

(16)

ParameterServer programming

Pseudo DaqOperator +

ParameterServer

int

start

() {

cout << "this is start method" << endl;

cout << "gotValue = " << gotValue << endl;

}

RTC::ReturnCode_t DaqOperator::run2() {

if(server==NULL) {

server= new ParameterServer(30000);

server.bind("command", &command,

start

);

server.bind("command", &command,

start

);

server.bind("status", &status);

server.Run();

command =“NOP”;

}

// check

if(command==“START”) {

start処理

} else if (command==“K”) {

}

}

(17)

開発の現状

• RTミドルウエア

– 産総研と共同研究を続けている

• DAQミドルウエア

– 全国大学・研究所向けDAQ-Middleware-1.0.0-RC

– 全国大学・研究所向けDAQ-Middleware-1.0.0-RC

のリリース(DAQ講習会で利用しているもの)

– DAQ-MiddlewareがJ-PARC物質・生命科学実験施

設(MLF)の5月末の中性子ファーストビームで、

初めて本格的な実験に利用された

– 秋のMLF実験に向けてDAQ-Middlewareを改良中

(18)
(19)

中性子ファーストビーム実験

スクリーンショット

(20)

まとめ

• DAQミドルエアを紹介した

– 国際標準ロボット技術、RTミドルウエアを拡張したもの

– Run Controlを開発

– XML言語を使ったSystem configrationを実現

– Webサーバと連携してXML/HTTP通信で疎結合可能な仕

組みを作った

• 全国大学・研究所向けDAQ-Middleware-1.0.0-RCを

リリース

• DAQミドルウエアは本年5月末のJ-PARC中性子ファ

ーストビーム実験で初めて本格的な実験に使用

参照

関連したドキュメント

First three eigenfaces : 3 個で 90 %ぐらいの 累積寄与率になる.

Wang, A new inequality of Ostrowski’s type in L 1 norm and applications to some special means and to some numerical quadrature rules, Tamkang J. Wang, A new inequality of

Among all the useful tools for theoretical and numerical treatment to variational inequalities, nonlinear complementarity problems, and other related optimization problems, the

This paper derives a priori error estimates for a special finite element discretization based on component mode synthesis.. The a priori error bounds state the explicit dependency

READ UNCOMMITTED 発生する 発生する 発生する 発生する 指定してもREAD COMMITEDで動作 READ COMMITTED 発生しない 発生する 発生する 発生する デフォルト.

図 キハダマグロのサプライ・チェーン:東インドネシアの漁村からアメリカ市場へ (資料)筆者調査にもとづき作成 The Yellowfin Tuna Supply Chain: From Fishing Villages in

As is well-known, this is an ill-posed problem Using the Tikhonov method, the authors give a regularized solution, and assuming the (unknown) exact solution is in H(R),a &gt; 0

Here we shall supply proofs for the estimates of some relevant arithmetic functions that are well-known in the number field case but not necessarily so in our function field case..