Comments
Description
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日土曜日