...

加速器制御とLL

by user

on
Category: Documents
50

views

Report

Comments

Transcript

加速器制御とLL
加速器制御とLL
2013.8.24
山本 昇
J-PARC センタ
KEK, 加速器研究施設
13年8月24日土曜日
目次
•
高エネルギー荷電粒子加速器とその制御
•
加速器制御とLL
•
加速器制御のためのPython 拡張モジュール
13年8月24日土曜日
荷電粒子加速器とはどんな物?
13年8月24日土曜日
これは高エネルギー荷電粒子加速器では
ありません。(残念ながら)
13年8月24日土曜日
ガソリンの化学エネ
ルギーをバイクの運
動エネルギーに変換
している。
これは高エネルギー荷電粒子加速器では
ありません。(残念ながら)
13年8月24日土曜日
J-PARC LINAC(線形加速器)
電気エネルギーを
空洞中の高周波電
場を通して荷電粒
子の運動エネルギ
ーに変換する。
長さ約250mのトンネルに
36台の高周波空洞があります。
黄色の高周波空洞が荷電粒子を加速する
(荷電粒子に運動エネルギーを与える).
13年8月24日土曜日
J-PARC MAIN RING
(シンクロトロン加速器)の一部
陽子(H+)を3GEVから30GEVまで加速
円周約1.6KM、毎秒約20万回
13年8月24日土曜日
MR のビーム(荷電粒子束)取り出し部分
ダンプ
モニタ装置
真空を保つビー
実験室へ
MR
ムパイプ
電磁石
加速されたビーム(荷電粒子の束)は実験室に送られる
13年8月24日土曜日
加速器の構成要素
•
粒子を加速する加速空洞と
エネルギーを供給する高周波発生装置
•
粒子ビームの通り道である真空パイプと
真空を維持するための真空ポンプ等
•
粒子ビームの軌道や広がりを制御する電磁石
およびその電源
•
粒子の位置や振動の状態を監視するモニタ装置
•
これら全ての装置を制御する制御システム
13年8月24日土曜日
加速器制御室
加速器運転中のJ-PARC中央制御室の様子
見学の御相談は:http://www.j-parc.jp/public/event/publicity/index.html
13年8月24日土曜日
荷電粒子加速器はどこで使われる?
•
素粒子/原子核物理研究:物質の根源を探る
•
物性/生命科学研究:物質の構造を探る
•
産業利用:放射光、放射線の利用
•
医療利用:診断、治療への応用
•
ブラウン管/電子顕微鏡などは小さな加速器と言えなくもない。
13年8月24日土曜日
つくば市に電子加速器施設
東海村に陽子加速器施設(J-PARC)
電子加速器施設
KEKB(1998)/PF/AR/LINAC
陽子加速器施設
J−PARC(2007)
13年8月24日土曜日
加速器制御システム
13年8月24日土曜日
J-PARC 加速器制御システム
制御点数は10万点程度
(Field Bus: VME, PLC, GP-IB, Ethernet,
Serial,CAMAC, ... )
HW制御用計算機:100台程度
(VME-SBC, Linux-PLC, PC)
サーバ計算機 :ブレード計算機
ファイルサーバー:~20T
Network 分散 : J-PARC MRは円周約1.6km
13年8月24日土曜日
VME-SBC
•
VME-SBC(Single Board Computer)をHW
のコントローラとして利用:IOは別モ
ジュール
•
VxWorks + EPICS(IOC-sh)
•
Linux + EPICS (IOC-sh)
13年8月24日土曜日
LINUX-PLC
•
PLC(programable logic controller):高信頼
性、比較的安価
•
このコントローラはラダープログラムでは
なく、LinuxPCとして動作する。
•
PLCコントローラ上でEPICS ソフトウエア
(IOC-sh)を実行している。
13年8月24日土曜日
SOFTWARE 構成
EPICS
Tools
ROOT/
CSS
SAD
Python PyROOT
(Java
(加速器モ Tcl/Tk (No CA
platform
interface,
デル)
for EPICS)
yet)
EPICS
通信規約:EPICS Channel Access over TCP/IP
リアルタイム データベース:EPICS DB
ハードウエア制御:Device/Driver Support
EPICS: Experimental Physics and Industrial Control System
13年8月24日土曜日
LL in 加速器制御
加速器制御のどこでLLがつかわれるのか?
•
加速器装置のモニタ/ユーザインタフェース: SAD, Tkinter , WxPython, PythonEPICS interface
•
データの分析:Python(SciPy, matplotlib), ROOT
•
RDB: postgresql with psycopg2/sqlalchemy
•
Web: Apache+PHP, Python , Zope
•
測定装置の試験:PyVXI-11, PyUSBTMC(何れも自社開発)
•
その他諸々:定型作業自動化など、 MacSpeechX.py(自社開発)
13年8月24日土曜日
ROOT
•
CERN(ヨーロッパ原子核研究所)で開発された、素粒子実験データ解析用の
プログラムフレームワーク
•
豊富なデータ処理機能とグラフ表示機能をもつ
•
CINT/C++言語のインタプリタを内蔵している。
•
CINTはMasaharu Goto(Agilent Technologies)さんが開発を始めたもの。
13年8月24日土曜日
SAD
•
KEK で開発された加速器の計算モデル記述/計算システム
•
荷電粒子光学/荷電粒子ダイナミクス
•
加速器要素とそれらの並び(List)として加速器を記述する。
•
Mathematica Likeなプログラム機能を内蔵する。(K. Oide and others)
•
EPICS CAアクセス関数をもつ。制御と加速器モデルの連携が可能。
•
Tkinterライブラリを使ったアプリケーションフレームワーク
13年8月24日土曜日
PYTHON 拡張モジュール
module名
Python-CA
macspeechX
PyVXI11
PyUSBTMC
13年8月24日土曜日
機能
EPICS CAライブラリ
との接続
MacOSX Speech synthesis
ライブラリとの接続
ネットワーク接続の
測定装置の制御
USB接続装置
モジュールのタイプ
C-module
ctypes →PyObjc
SWIG
Python (PyUSBを利用
PYTHON-CA
•
EPICS CA ライブラリへの Python インタフェース
•
•
豊富なPythonライブラリとEPICSを接続
Cモジュール(_ca.so)とPython モジュール(ca.py)の組み合
わせ
•
EPICS CA monitor 機能のcallbackもPythonで記述可能
•
multi threaded なEPICS CAライブラリ とPythonのグロー
バル インタプリタ ロックとの共存で苦労しました。
•
GUIシステムでは更に複雑に。
13年8月24日土曜日
Tkinter/
WxPython
pylab/
psycopg2/
matplotlib sqlalchemy
Python
Python CA モジュール
EPICS CA
EPICS DB
デバイス
.......
MASCSPEECHX.PY
•
macspeechmodule.c:
•
Guido von RossumによるMacOS の Speech Manager ライブラリアクセスモジュール
(1996-1997)
•
•
C-module
macspeechX.py:
•
macspeechmodule.cは MacOSX(Speech Synthesis manager)では動作しなくなったため、開
発。初期バージョンはctypesを使って開発された。macspeechモジュールと互換(2006)
•
最新版では、MacOSX標準のpythonとPyObjCを使うように書き換えられた。これにより、
日本語での読み上げ(Kyoko)を利用可能となった。(2013)
13年8月24日土曜日
PYTHON応用例
音声警報システム
Alarm
Status Change
(CA Monitor)
IOC
Device
IOC
Device
message
(UDP)
Voice Message
(MacSpeech)
Python Program
•UDPパケットを
Server
(Mac)
特定のポートで待つ
•メッセージを受け取ったら
システムライブラリを使って
読み上げる
13年8月24日土曜日
音声
音声警報サーバ
•
Python スクリプト: ~250行
•
UDPポートでメッセージをまつ:ポート番号∼声色
•
Mac OSのSpeech Synthesis ライブラリにメッセージを渡す。
•
terminalにメッセージと送信もと情報を表示
•
KEKB加速器/J-PARC加速器で2000頃(?)から使われている。
13年8月24日土曜日
おまけ
•
このトーク準備のための調査で、
•
MacOSX 10.4 Tigerから Core Audio のAUNetSend/AUNetReceiveが利用可能に
なった。
•
現在のsaコマンドはAUNetSendを使って読み上げてたデータを送信すること
ができる。
•
こちら使った方が便利かな?
13年8月24日土曜日
PY-VXI11
•
オシロスコープなどのネットワーク接続可能な測定器をPythonから操作するためのモジュール。主に、測定器のテスト
に使っている。EPICSとは独立
•
VXI-11はIEEE-488(~GP-IB)のネットワーク版の標準規格
•
VXI-11は装置側にONC-RPCサーバがある。PythonとRPC-クライアントライブラリの接続モジュールをSWIGで開発。
•
SQR(装置側からの割り込み送信機能)は
(まだ)サポートされていない。
•
オシロスコープデータが長大になってきたので、
SWIGではデータ変換の効率が悪いかも。
•
•
cythonへの乗り換えができたらいいな。
「PyVISA使えば?」と言われると返す言葉がない。
13年8月24日土曜日
PY-USBTMC
•
オシロスコープなどのUSB接続可能な測定器をPythonから操作するためのモジュ
ール。主に、測定器のテストに使っている。EPICSとは独立
•
USB-TMC(Test and Measurement Class)は測定装置向けのUSB class
•
PyUSB(+libusb or openusb)を利用
したPure Python module
•
「PyVISA使えば?」と言われると
返す言葉がない。
13年8月24日土曜日
PY-USBTMC
•
オシロスコープなどのUSB接続可能な測定器をPythonから操作するためのモジュ
ール。主に、測定器のテストに使っている。EPICSとは独立
•
USB-TMC(Test and Measurement Class)は測定装置向けのUSB class
•
PyUSB(+libusb or openusb)を利用
したPure Python module
•
「PyVISA使えば?」と言われると
返す言葉がない。
13年8月24日土曜日
まとめ
•
J-PARC加速器制御システムでは、 Python, Root, SAD, PHP等のLLが様々な局面で使わ
れている。
•
制御システムの構築/試験のために幾つかのPython拡張モジュールが開発された。
•
Python拡張モジュール開発方法の進化は著しい。
•
•
C → SWIG→ ctypes →cython
汎用なモジュールもありますので、使ってみてください。
13年8月24日土曜日
Fly UP