The Ground Test Accelerator Required Support from

EPICS
Experimental Physics
and
Industrial Control System
(EPICS)
概要
Bob Dalesio, Dec, 2002
2003/P571: Channel Access Concepts
1
EPICS



あらすじ
序論:EPICSとは何か

共同研究活動としてのEPICS

Architecture

Tool-Kit
IOC Core

Channel Access

Process Database
結論
2003/P571: Channel Access Concepts
2
EPICS
EPICSとは何か?

EPICSはEPICS ツールキットを使っている様々な研究機関のコントロールグループの共同研究活動
である。

EPICSはコントロールシステムのソフトウェア開発と保守コストを削減することを可能にするツー
ルキットの名前である。そのためにツールキットは以下の手法を提供する:

プログラミングにかわり、設定ツールを用いる。

多くのユーザによりテストされたソフトウェアを提供

インクリメンタルな発展を可能とするモジュラー構造

すべての層ににおける拡張を可能とする定義済みのインタフェース
2003/P571: Channel Access Concepts
3
EPICS
EPICSとは何か?:共同研究

北米、ヨーロッパ、アジアの100以上の独立したプロジェクトが参加

素粒子原子核物理、天文、工業制御などの分野で応用されている。

ネットワーク経由でソフトウェアの共有を行う。

独立のあるいは共同での逐次的なコードの開発が参加メンバーによって進められる。

E-mailなどによる問題の報告とその解決

ドキュメンテーションもWWWから入手可能

コラボレーションミーティングにおいて、これからの開発方針、新しいアプリケーションの報告
、既存のソフトウェアに対する新しい要求などが議論され、ネットワーク上で奉公される。

複数の研究所からの参加者からなる小さなデザイングループによる会合が特定のソフトウェアの
設計上の問題を議論するために開かれる。:Channel Access, Archiving , MMIなど
2003/P571: Channel Access Concepts
4
EPICS
EPICSとは何か? 主要な共同研究の参加者
Fermilab D0
Experiment
Oakridge National
Laboratory
Deutches ElektronenSynchrotron
Institute of High Energy
Physics (Beijing)
Los Alamos National
Laboratory
KEK (Koh ehnerugii
Kencuesho)
Lawrence Berkeley
National
Laboratory
Stanford Linear
Accelerator Center
Argonne National
Laboratory
Commissariat a l’Energie
Atomique (SACLAY)
Berliner
ElekronenspeicherringGesellschaft fur
Synchrontronsrahlung
Paul Scherrer
Institut
Jefferson
Laboratory
W. M. Keck
Observatory
Shanghai Syncrotron
Radiation Facility
2003/P571: Channel Access Concepts
Gemini
Telescope
RIKEN
Budker Institute of Nuclear
Physics
5
EPICS
EPICSは広い範囲に応用可能
Advanced Photon Source
PVs
300K
I/O Controllers
170
KEK B
CEBAF
240K
180K
94
98
BESSY II
Swiss Light Source
D0 (FNL)
150K
90K
60K
110
160
124
19K
15K
21
18
1K
2K
1
2
35K
3K
17
2
PEP II RF and Longitudinal Control
Low Energy Demonstrator Accelerator
Compass
Keck II
Gemini Telescope
Next Linear Collider Test Accelerator
*Diamond
*Japanese Hadron Facility
PF-AR
50K
~50K
~25K
*Spallation Neutron Source
150K
180
~100
~50
150
*Planned or under construction
2003/P571: Channel Access Concepts
6
EPICS


EPICSとは何か? 分散アーキテクチャ
EPICSは物理的にはフロントエンド・コントローラとオペレータ・ワークステーションがTCP/IP
とUDP/IPで交信するフラットなアーキテクチャである。

新しい計算機の追加にたいして自然に追従する。

物理的な階層はブリッジ、ルータ、ゲートウェイなどによって導入される。

ネットワークバンド幅が主要な制限要素となる。
EPICSのソフトウェアはクライアント・サーバモデルに基づいている。システム上のいずれの二つ
計算機間でも直接に読み・書きのできるデータ保存場所(EPICS データベース)をもつ。

ローカルなネームサービスによって新しい要素(レコード、IOC)の統合は自動的に行われる。

IOC間のポイント・ツー・ポイントのデータ交換はIOCレベルでの制御の自動化を可能とする。
2003/P571: Channel Access Concepts
7
EPICS Supports a Standard Control System
EPICS
Architecture
Workstations:
Sun
Hp
DEC/Alpha
Silicon Graphics
PC
OS:
Unix, Some Windows
Site LAN/WAN
I/O Controllers:
VME,VXI
PCI, Workstations
OS:
vxWorks, Unix, Windows
RTEMS, RTLinux, L4 linux
Remote and Local I/O Buses:
Field
Control Net, PCI, CAN-Bus, Industry
Pack, VME, VXI, PCI, ISA, CAMAC,
GPIB, Profibus, Bitbus, Serial, AllenBradley, Modbus, Yokogawa, G-3,
Ethernet/IP
2003/P571: Channel Access Concepts
I/O
Field I/O
Field I/O
Field I/O
8
EPICS
EPICS Architecture
Channel Accessプロトコルに基づく通信
Channel Access Client (CAC)
Connection Data Transfers
WAN/LAN/Local
Connection
Data Transfers
Channel Access Server (CAS)
2003/P571: Channel Access Concepts
9
EPICS
EPICS Architecture
Channel Access Client (CAC)
Connection Data Transfers
WAN/LAN/Local
Connection
Data Transfers
Channel Access Server (CAS)
DB Engine Types
データベースエンジンがI/Oとの仲介をおこなう。
Device Support
Driver Support
I/O Controller
2003/P571: Channel Access Concepts
10
EPICS
EPICS Architecture
チャンネルアクセスサーバが提供するデータを
監視・変更するためのチャンネル・アクセス・
クライアント群
OPIツール
DM/MEDM/DM2K/EDM/JDM
Alarm Handler / stripTool/
knobManager
Channel Access Client (CAC)
Connection Data Transfers
WAN/LAN/Local
Connection
Data Transfers
Channel Access Server (CAS)
DB Engine Types
Device Support
Driver Support
I/O Controller
2003/P571: Channel Access Concepts
11
EPICS
EPICS Architecture
User Tools
DM/MEDM/DM2K/EDM/JDM
Alarm Handler / stripTool/
knobManager
Connection Server
Channel Access Client (CAC)
Connection Data Transfers
WAN/LAN/Local
Connection
Data Transfers
Channel Access Server (CAS)
名前解決などのサービ
スのためのプラグイン
DB Engine Types
Device Support
Driver Support
I/O Controller
2003/P571: Channel Access Concepts
12
EPICS
EPICS Architecture
Archive Viewing Archive Analysis
User Tools
DM/MEDM/DM2K/EDM/JDM
Alarm Handler / stripTool/
knobManager
Connection Server
Archive Access
Archiving
Channel Access Client (CAC)
Connection Data Transfers
WAN/LAN/Local
Connection
Data Transfers
Channel Access Server (CAS)
Webベースの管理機能
をもつデータ保存プロ
グラム。
DB Engine Types
Device Support
Driver Support
I/O Controller
2003/P571: Channel Access Concepts
13
EPICS
EPICS Architecture
Archive Viewing Archive Analysis
Program Interfaces
User Tools
DM/MEDM/DM2K/EDM/JDM
Alarm Handler / stripTool/
knobManager
Connection Server
Archive Access
Archiving
Channel Access Client (CAC)
Connection Data Transfers
C, C++, Fortran, JAVA
IDL / Matlab / Mathematica
ActiveX / DDE / VisBasic
XAL/ SDDS / SAD /
tcl / PERL / Python
State Notation Lang / FSQT
WAN/LAN/Local
Connection
Data Transfers
Channel Access Server (CAS)
DB Engine Types
Device Support
Driver Support
I/O Controller
2003/P571: Channel Access Concepts
新たなCAクライアントを作成するため
の、汎用のプログラム言語やスクリプ
ト言語、また状態遷移実装言語、数
学的なあるいは加速器モデリングの
ための言語に対するプログラム・イン
ターフェイスが用意されている。
14
EPICS
EPICS Architecture
Archive Viewing Archive Analysis
Program Interfaces
User Tools
DM/MEDM/DM2K/EDM/JDM
Alarm Handler / stripTool/
knobManager
Connection Server
Archive Access
Archiving
Channel Access Client (CAC)
Connection Data Transfers
C, C++, Fortran, JAVA
IDL / Matlab / Mathematica
ActiveX / DDE / VisBasic
SDDS / SAD /
tcl / PERL / Python
State Notation Lang / FSQT
WAN/LAN/Local
Connection
Data Transfers
Channel Access Server (CAS)
Connection
Data Transfers
Portable Channel Access Server (CAS)
DB Engine Types
Device Support
Driver Support
I/O Controller
2003/P571: Channel Access Concepts
ポータブル・チャンネル・サーバはEPICS以
外のデータソースをEPICS に統合するため
に利用できる。
15
EPICS
EPICS Architecture
Archive Viewing Archive Analysis
Program Interfaces
User Tools
DM/MEDM/DM2K/EDM/JDM
Alarm Handler / stripTool/
knobManager
Archive Access
Archiving
Channel Access Client (CAC)
Connection Data Transfers
Connection Server
C, C++, Fortran, JAVA
IDL / Matlab / Mathematica
ActiveX / DDE / VisBasic
SDDS / SAD /
tcl / PERL / Python
State Notation Lang / FSQT
WAN/LAN/Local
Connection
Data Transfers
Channel Access Server (CAS)
DB Engine Types
Connection
Data Transfers
Portable Channel Access Server (CAS)
Generic Data Descriptor
Device Support
Driver Support
I/O Controller
Channel Access Client
Gateway
2003/P571: Channel Access Concepts
サブネットワーク間のト
ラフィックを制限するた
めに Gatewaが使われ
る。
16
EPICS
EPICS はすべての層で
インタフェースを提供する。
Archive Viewing Archive Analysis
Program Interfaces
User Tools
DM/MEDM/DM2K/EDM/JDM
Alarm Handler / stripTool/
knobManager
Archive Access
Archiving
Channel Access Client (CAC)
Connection Data Transfers
Connection Server
C, C++, Fortran, JAVA
IDL / Matlab / Mathematica
ActiveX / DDE / VisBasic
SDDS / SAD /
tcl / PERL / Python
State Notation Lang / FSQT
WAN/LAN/Local
Connection
Data Transfers
Channel Access Server (CAS)
DB Engine Types
Connection
Data Transfers
Portable Channel Access Server (CAS)
Generic Data Descriptor
Access Lib
Active X
Channel Access Client
Gateway
Any Data
Store
Portable CAS
Labview / Excel..
PCAS - Windows
Device Support
Driver Support
I/O Controller
2003/P571: Channel Access Concepts
17
EPICS
EPICS ソフトウェアは
CoreとExtensionsからなる
Archive Viewing Archive Analysis
Program Interfaces
User Tools
DM/MEDM/DM2K/EDM/JDM
Alarm Handler / stripTool/
knobManager
Archive Access
Archiving
Channel Access Client (CAC)
Connection Data Transfers
Connection Server
C, C++, Fortran, JAVA
IDL / Matlab / Mathematica
ActiveX / DDE / VisBasic
SDDS / SAD /
tcl / PERL / Python
State Notation Lang / FSQT
WAN/LAN/Local
Connection
Data Transfers
Channel Access Server (CAS)
DB Engine Types
Connection
Data Transfers
Portable Channel Access Server (CAS)
Generic Data Descriptor
Access Lib
Active X
Channel Access Client
Gateway
Any Data
Store
Portable CAS
Labview / Excel..
PCAS - Windows
Device Support
Driver Support
I/O Controller
2003/P571: Channel Access Concepts
18
EPICS
IOC Core: プロセス・データベース
(EPICS データベース)
LAN
ca-client
ca-server
process DB
dev support
CAサーバはこのデータベースに対する、接続、
読み出し(get),書き込み(put), 監視(monitor)の機能を
提供する。
CA クライアントは他のIOC上のプロセス・
データベースへのアクセスを提供する。
プロセス・ブロック(record)は基本要素: AI, AO, BI, BO, Motor, CALC, PID, SUB,
etc.…
レコードは様々な機能のためのフィールドからなる: SCHEDULE, I/O, CONVERT,
ALARM, MONITOR
実行時の値を保持する: VALUE, TIMESTAMP, ALARM CONDITION, etc.…
新たなプロセス・ブロック(レコード)は容易に追加できる。
設定ツール:VDCT, Relational DB, Text Editor at the workstation
設定ファイルはASCII: ダウンロード後はバイナリのデータ構造となる。
2003/P571: Channel Access Concepts
19
EPICS
IOC Core: Process Database
LAN
ca-client
ca-server
process DB
dev support
Process Block execution time varies from block type to block type
AI on a PowerPC ~100,000/second (50% idle)
AI on a 68060 is ~18,000/second (50% idle)
AI on a 68040 is ~6,000/second (50% idle)
Fastest periodic scan rate is dependent on vxWorks clock tick - 60 Hz
Interrupt scanning is limited by the CPU bandwidth (interrupt delay ~33usec)
Name resolution - 10,000/second – on an 040 - runs at the lowest priority
2,500 Process blocks use around 1 Megabyte of memory
SupportChannel
to particular
physical
2003/P571:
Access Concepts
I/O is distinct from process logic - ASCII device type
20
EPICS
IOC Core: CA クライアント/サーバ ライブラリ
Operator Interface
Sequencer
Channel Access Client
Channel Access Client
LAN/WAN
Database Links
Channel Access Client
TCP/IP & UDP
Channel Access Server
クライアント: ネットワーク上のチャンネル・アクセス・サーバをもつサブシステムに
EPICS Process Database
たいして読み書きの機能を提供する。
サーバ: そのノードにあるデータに対するネットワーク上のクライアントからのCA
クライアント呼び出しに読み書きの接続を提供する。
CAライブラリの提供する機能
Dynamic Channel Location, Get, Put, Monitor
Access Control, Connection Monitoring, Automatic Reconnect
Conversion to client types, Composite Data Structures
プラットフォーム: UNIX, vxWorks, VMS (Client only), Windows NT, RTEMS,
rtLinuxx
2003/P571: Channel Access Concepts
21
EPICS
IOC Core: Channel Access Services
Operator Interface
Sequencer
Channel Access Client
Channel Access Client
Database Links
Channel Access Client
TCP/IP & UDP
LAN/WAN
Performance:
68040 over 10 Mbit Ethernet
Channel Access Server
Gets
EPICS Process Database
Propagation Delay
2 mS
Throughput
7.8K /sec
Puts
Propagation Delay
1 mS
Throughput
17K /sec
Monitors
Propagation Delay
Dependent
Throughput
15K / sec
(Typically 10% channels have monitors)
(memory use in IOC - 2 Meg / 60 connections)
(30% network load for 15K monitors / second)
2003/P571:
Access Concepts
IncreaseChannel
bandwidth
with Routers, Bridges, Higher speed networks and EPICS gateway22
EPICS
IOC Core: レコードとチャンネルとの対応
AI:
Name
SCAN
VAL
STAT
SEVR
HOPR
LOPR
HIHI
HIGH
LOW
LOLO
ACK
ACKT
EGU
HHSV
HSV
LSV
LLSV
Channel Access Client:
Connect to “Name”
Add Event to
alarm change
monitor change
archive change
Make data type request
Value
Status & Severity
Time Stamp
Display and Control
Information
2003/P571: Channel Access Concepts
Channel Access Client:
Connect to “AI<.VAL>”
AI.VAL
AI.STAT
AI.SEVR
AI.TS
AI.HOPR
AI.LOPR
AI.EGU
Connect to AI.SCAN
AI.SCAN
AI.STAT
AI.SEVR
AI.TS
# Choices
List of choices
23
EPICS
EPICSのラーニングカーブはなだらか
ではない

EPICSのインストール

自動的にデータベースを構築するアプリケーション開発環境の設定

IOCをワークステーションからブートするための設定

新たなドライバのインストール

アプリケーションをデバグするためのの知識:すべての人に求められている。

プロセス・データベースの使い方

CAクライアントツールの選択と使用法の習得

このラーニングカーブはいくつかの方法で和らげることができる。

他のEPICSを利用している研究所からのトレーニングを受ける。

EPICSを利用している研究所へ要員を派遣し、そこでEPICSについての経験を積む。

利用しているプラットフォームと同じプラットフォームを利用しているコラボレーションメン
バを探し、援助を受ける。
2003/P571: Channel Access Concepts
24
EPICS
新規の開発
技術の変化をうまく使いこなし、コストを削減しながら機能、
使い安さ、性能を向上させている。

改良されたCAプロトコル、新たなモニタオプション、OOインタフェース、最適化されたCAサー
バなどをサポートするCAライブラリのアップグレード(LANL/ANL/SLAC)

より良いデータ分析とオペレーションのために分散されたデータ保管・取出機能をRDBや
CORBAを用いて実現する。 (LANL/JLAB/DESY/BESSY/SLAC)

新たなデータベース設定ツール (APS/Cosy Lab/Diamond)

新たなオペレーティングシステムでのIOCコアとドライバのサポート (SSRL/CLS/KEK)

新たな高機能物理アプリケーションのためのプラットフォーム (ORNL/LANL/CosyLab/BNL)
2003/P571: Channel Access Concepts
25
EPICS
結論
EPICSは、スケーラブルで柔軟なツールキットの共同開
発を通じて、その参加者(研究所)の要求に答え続けて
いく。

基本的な性能と機能はスケーラブルであり、容易に設定できる。

クライアント、レコード型、データ・ストア、そしてハードウェアに対する明確なインタフェー
スは独立した開発、容易な再統合、陳腐化に対する抵抗力を提供してくれる。

オープンソフトウェア開発は共同開発をサポートし、また参加研究所にたいしその要求にあった
人材を容易に見つけることのできる大きな才能のプールを提供する。

継続した改良は最新の技術を取り入れながら、機能、性能、リライアビリティを拡充していくこ
とを可能としている。
2003/P571: Channel Access Concepts
26