Upload
ziv
View
129
Download
2
Embed Size (px)
DESCRIPTION
Andrew Johnson APS. EPICS データベース (プロセス・データベース)とは ?. 目次. レコード フィールドとフィールドのタイプ レコード のスキャン 入出力レコードタイプ ハードウェア サポート レコードのリンク レコードと同時に変更する 保護機構 アラーム、デッドバンド、シミュレーション、セキュリティ. データベース = レコード + リンク レコード = フィールド + プロセス. EPICS に基づく制御システムは一台以上の IOC(Input Output Controller) を含んでいる。 - PowerPoint PPT Presentation
Citation preview
12003/P571: What is an EPICS Database?
EPICS
EPICS データベース(プロセス・データベース)とは ?
Andrew Johnson
APS
22003/P571: What is an EPICS Database?
EPICS 目次
レコード フィールドとフィールドのタイプ レコード のスキャン 入出力レコードタイプ ハードウェア サポート レコードのリンク レコードと同時に変更する 保護機構 アラーム、デッドバンド、シミュレーション、セキュリティ
32003/P571: What is an EPICS Database?
EPICS データベース = レコード + リンクレコード = フィールド + プロセス
EPICS に基づく制御システムは一台以上の IOC(Input Output Controller) を含んでいる。
それぞれの IOC にはその IOC がなすべきことを指定する一つ以上のデータベースがロードされている。
データベースは様々なタイプのレコードの集合である。 レコードは以下の特徴をもつオブジェクトである。:
個々のレコード毎の独立な名前 A unique name レコード型 (class) 毎の振る舞い 制御可能な属性 ( フィールド) 関連したハードウェア I/O (device support) 他のレコードへのリンク
42003/P571: What is an EPICS Database?
EPICS レコードの活動
レコードは活動的である— レコードは仕事をすることができる : 他のレコードやハードウェアからデータを取り込む 計算を行う 値が許容された範囲にあるかどうかを確認し、必要ならアラームを発生
する。 他のレコードやハードウェアに値を書き込む 他のレコードをアクティブ(活性)にしたり、不活性にする。 ハードウェアからの信号を待つ(割り込み)
あるレコードが何をするかは、レコードの型とそのレコードのフィールドの設定に依存する。
レコードが処理” process” されるまではどのような動作も行われない。
52003/P571: What is an EPICS Database?
EPICS どのようにレコードは実装されているか ?
レコード属性のデータ保存場所とレコードタイプ情報へのポインタ型からなるCの構造体
データベース中のレコード定義は次の情報を提供する レコード名 レコード型 それぞれのフィールドの値
レコード型は次の情報を提供する。 すべてのフィールドの定義 レコードの動作を実装しているコード( RSET)
EPICS アプリケーション毎の要求に応じて新しいデータ型を追加することができる。
62003/P571: What is an EPICS Database?
EPICS レコードのある表現
72003/P571: What is an EPICS Database?
EPICS
レコードのグラフィカルな表現
82003/P571: What is an EPICS Database?
EPICS レコードの別なグラフィカルの表現
アナログ出力レコードの CapFast 上での表現
(小シンボル)
92003/P571: What is an EPICS Database?
EPICS IOC から見たレコード
record(ao,"DemandTemp") { field(DESC,"Temperature") field(ASG,"") field(SCAN,"Passive") field(PINI,"NO") field(PHAS,"0") field(EVNT,"0") field(DTYP,"VMIC 4100") field(DISV,"1") field(SDIS,"") field(DISS,"NO_ALARM") field(PRIO,"LOW") field(FLNK,"") field(OUT,"#C0 S0") field(OROC,"0.0e+00") field(DOL,"") field(OMSL,"supervisory") field(OIF,"Full") field(PREC,"1") field(LINR,"NO CONVERSION") field(EGUF,"100") field(EGUL,"0") field(EGU,"Celcius")
field(DRVH,"100") field(DRVL,"0") field(HOPR,"80") field(LOPR,"10") field(HIHI,"0.0e+00") field(LOLO,"0.0e+00") field(HIGH,"0.0e+00") field(LOW,"0.0e+00") field(HHSV,"NO_ALARM") field(LLSV,"NO_ALARM") field(HSV,"NO_ALARM") field(LSV,"NO_ALARM") field(HYST,"0.0e+00") field(ADEL,"0.0e+00") field(MDEL,"0.0e+00") field(SIOL,"") field(SIML,"") field(SIMS,"NO_ALARM") field(IVOA,"Continue normally") field(IVOV,"0.0e+00")}
アナログ出力レコードを定義する .db ファイルの全体
ここには設定が必要なフィールドだけが示されている。この他に実行時にだけ使われるフィールドがある。
102003/P571: What is an EPICS Database?
EPICS フィールドの役割
定義 何がレコードのプロセスを開始するか(周期的、外部割り込み、オペレ
ータ操作) データ入出力の先 生の I/O データを制御量に変換する方法 アラームを報告するべき時を指定するリミット レコードをモニタしているクライアントにたいしていつ値の変更の通
知を送るか。 処理アルゴリズム その他そのレコードタイプで設定が必要なもの
実行時の値を保持する 入出力値 アラーム状態、重篤度、アックノレッジ タイムスタンプの処理 その他内部的に利用されるデータ
112003/P571: What is an EPICS Database?
EPICS フィールドの型
フィールドは以下のデータ型をとりうる 整数 Integers
char, short or long signed or unsigned
浮動小数点 float or double
文字列 max length 40 characters or less
メニュー選択 いくつかの文字列から一つを選ぶ 内部的には短整数として保持される
リンク 同じあるいは別の IOC 上にある別のレコードへのリンク ハードウェア・シグナルへのリンク (device support) 値の読み書きのために使われる
その他の内部的データ 外部から直接にはアクセス不能
122003/P571: What is an EPICS Database?
EPICS すべてのレコードに共通のフィールド
設計時フィールドNAME 28 文字のユニークな名前DESC 28 文字の記述ASG アクセス セキュリティ グループSCAN スキャン機能PHAS スキャンの順位 (phase)PINI 初期化時のプロセス ?PRIO スケジューリング プライオリティSDIS スキャン禁止値入力リンクDISV スキャン禁止値DISS スキャン禁止時の重篤度FLNK フォワード リンク
実行時フィールドPROC プロセスの強制PACT プロセス実行中フラグSTAT アラーム状態SEVR アラーム重篤度TPRO プロセスのトレースUDF 値が未定義状態の時1に設定される。TIME 最後にプロセスされた時間
132003/P571: What is an EPICS Database?
EPICS レコードのスキャン
SCAN フィールドは以下のメニュー選択枝から選ばれる。 周期的エベント — 0.1 seconds .. 10 seconds I/O 割り込み ( もしデバイスがサポートしていれば ) ソフトエベント — EVNT フィールド 受動的 (Passive): 既定値
PHAS フィールドに数値を指定することで、同一のスキャンのなかでの実行順序を設定する。 PHAS=0 のレコードが最初に「処理」され、 その後 PHAS=1 , PHAS=2 と続く
PINI=YES のレコードはデータベースプロセスの起動時に一度「処理」される。
PRIO フィールドには Low/Medium/High のプライオリティをソフト・エベントあるいは I/O 割り込みで「処理」されるレコードで指定する。
レコードは PROC フィールドに任意の値が書き込まれた時、「処理」される。
142003/P571: What is an EPICS Database?
EPICS 入力レコードのフィールド
ほとんどの入力レコードは次のフィールドをもつ:INP 入力リンク:どこから値を読み込むか?DTYP デバイス・タイプRVAL 生の値VAL 物理量・ Engineering valueLOPR 下限値HOPR 上限値
アナログ I/O レコードは次のフィールドをもつ :LINR ユニット変換指定
No conversion, Linear, breakpoint tables…EGUL 生の値の下限値に対応する物理量EGUF 生の値の上限値に対応する物理量EGU 物理量の単位(文字列)
152003/P571: What is an EPICS Database?
EPICS 入力レコードの使用例:周期的入力
レコード名“ Temperature” のアナログ入力レコード (AI) 値は Xycom XY566 ADC Card 0 Signal 0 から読み込む 0.1 秒毎に新しい値を HW から読み込む。 データは ADC の範囲から to 摂氏 0..120 に変換される。
162003/P571: What is an EPICS Database?
EPICS 割り込み入力
レコード名 “ VentValve” のバイナリ入力 (BI) レコード データは Allen-Bradley TTL I/O Link 0, Adaptor 0, Card 3, Signal 5
から読み込む PLC からの割り込み信号によって値が変わる度に読み込まれる。 0 = “Closed”, 1 = “Open” バルブが開いている (1) の時レコードのアラーム状態は重警報状態
(Major_Alarm) となる。
172003/P571: What is an EPICS Database?
EPICS 出力レコードのフィールド ほとんどの出力レコードは次のフィールドをもつ:
OUT 出力リンク(値の出力先)DTYP デバイスタイプVAL 物理量・制御量RVAL 生な出力値DOL 出力値を持ってくる入力リンク(チャンネル)OMSL 出力モード選択
Supervisory, Closed LoopLOPR 下限値HOPR 上限値
アナログ出力レコードは次のフィールドももつ。 :OROC 出力変化率:OIF 増減( Incremental )か直接指定( Full)OVAL 出力値DRVH 出力上限値DRVL 出力下限値IVOA 不正出力時の動作指定
Continue Normal, Don’t Drive output, set output to IVOV
IVOV 不正出力時のデフォルト値RBV 読み返し値
182003/P571: What is an EPICS Database?
EPICS 受動的出力
“Solenoid” という名前のバイナリ出力レコード (BO) Xycom XY220 Digital output Card 2 Signal 12 を制御 SCAN=Passive: レコードは次の場合に「処理」される
チャンネルアクセスによって .VAL フィールドに値が書き込まれる。 別のレコードが .VAL フィールドに値を書き込む 別のレコードからフォワードリンクされている。 (入力レコードでは)別のレコードがこのレコードの値を読み込んだ
とき
192003/P571: What is an EPICS Database?
EPICS リンク
リンクはフィールドの型一つで、以下のいずれかとなる Input link
データを読み出す Output link
データを書き込む Forward link
このレコードの処理が終わったときに処理されるレコードを指す
202003/P571: What is an EPICS Database?
EPICS 入力、出力リンクに指定できるのは…
定数 :03.14159265361.6e-19
ハードウェア・リンク ハードウェアの入出力信号を選択。その形式は、デバイス・サポートに
依存している。 プロセス・バリアブル・リンク
レコードの名前を指定。それは次のいずれかの型のリンクとなる。 データベース・リンク
リンクに指定されたレコードは同じ IOC 上にある。 チャンネル・アクセス・リンク
リンクに指定されたレコードは別の IOC 上にある。
212003/P571: What is an EPICS Database?
EPICS ハードウェア・リンク
VME_IO #Cn Sn @parmCard, Signal
INST_IO @parmCAMAC_IO #Bn Cn Nn An Fn @parm
Branch, Crate, Node, Address, FunctionAB_IO #Ln An Cn Sn @parm or #Ln Pn Cn Sn Fn @parm
Link, Adaptor, Card, Signal, FlagGPIB_IO #Ln An @parm
Link, AddressBITBUS_IO #Ln Nn Pn Sn @parm
Link, Node, Port, SignalBBGPIB_IO #Ln Bn Gn @parm
Link, Bitbus Address, GPIB AddressVXI_IO #Vn Cn Sn @parm or #Vn Sn @parm
Frame, Slot, Signal
222003/P571: What is an EPICS Database?
EPICS データベース・リンク
いかのものを指定できる : 同じ IOC 上にあるレコードの名前
myDb:myRecord フィールド名をさらに指定できる
.VAL (default) プロセス・パッシブ・フラグ
NPP (default)PP
重篤度最大化フラグNMS (default)MS
たとえば :M1:current.RBV NPP MS
注 : 非同期処理デバイス・サポートをもつレコードからの PP 指定の Get 要求は新しい値を返さないことに注意。
232003/P571: What is an EPICS Database?
EPICS チャンネル・アクセス・リンク
データベースリンクと同様に指定。 指令された名前のレコードは同じ IOC に存在していない 他の IOC と CA プロトコルで通信する。 フィールド名を含んでいてもよい。 (.VAL が既定値) PP リンクフラグは無視される。
入力リンクは常に NPP 出力リンクはしゅつりょくさきのフィールドの PP 属性に依存 その他の CA と同じ振る舞いである。
MS リンクフラグは入力リンクに適用される。 入力リンクは与えられた NMS や MS のフラグが効果を持つ 出力リンクは常に NMS
追加のフラグCAローカルなリンクであっても CA リンクを使う。CP入力リンクでは、 Camonitorエベントが発生する毎にこのレコードが処理さ
れる。 or input link, process this record on CA monitor eventCPP:Cp のデータ読み出し:問題の切り分け
242003/P571: What is an EPICS Database?
EPICS リンク・フラグのまとめ
Input Links Output Links
DB Links
.PP or .NPP
.MS or .NMS.PP or .NPP.MS or .NMS
CA Links
Always .NPP.MS or .NMS.CA to force..CP to process thisrecord on change..CPP only processif SCAN=Passive
.PP behavior ofdestination field.Always .NMS.CA to force.
Pages 16 thru 23 of the IOC Application Developer’s Guide cover this topic.
252003/P571: What is an EPICS Database?
EPICS デバイス・サポート
レコードは直接ハードウェアにアクセスするわけではない。 デバイス・サポート層が要求のあった場合に入出力動作を実行
する。 個々のデバイス・サポートは一つのレコード型に対する入出
力を提供する。 DTYP フィールドで使用するデバイス・サポートを指定する。 選択されたデバイス・サポートがリンク (INP or OUT field) に
指定するデバイスのアドレス指定の形式を規定する。 新しいデバイス・サポートの追加はレコードのソフトウェア
の変更を必要としない デバイス・サポートは他のソフトウェア(ドライバ・サポー
ト)を呼び出してもよい。
262003/P571: What is an EPICS Database?
EPICS 同期 I/O 対 非同期 I/O
EPICS の決まりでは、デバイスサポートが遅いデバイスの入出力要求の完了を待つことを許さない。:スキャンのプロセス全体を待たせてしまうので。
レジスタ・ベースの VME カードは通常即座に応答を返す:同期
同期デバイス・サポート呼び出し元に帰る前にすべての入出力を完了する。
シリアルや I/O バス装置はデータを返すまでに長い時間(>10ms) を必要とする。:非同期
非同期デバイスサポートは呼び出し時に I/O を開始し、それをPACT を True にしたまま呼び出しもとに帰る。
結果が準備できると (CPU 割り込み)デバイス・サポートはレコードの process 関数を呼び出し、「処理」を終了させる。
272003/P571: What is an EPICS Database?
EPICS ソフト・デバイス・サポート
入力および出力レコードはデバイス・サポートを通じてハードウェア I/O を実行するように設計されている。
これらのレコードはソフト・デバイス・サポートを使うことで、 DB あるいは CA リンクを使うことで他のレコードにアクセスすることができる。
二つのタイプのソフト・デバイス・サポートが用意されている: Soft Channel
リンクを通じて VAL を読み書きする。データの変換は行わない。 Raw Soft Channel
Inputs RVAL をリンクを通じて読み込む。 RVAL を VAL に変換 (record-type specific)
Outputs VAL を RVAL に変換 (record-type specific) RVAL を出力リンクに書き込み
282003/P571: What is an EPICS Database?
EPICS フォワード・リンク
フォワード・リンクは通常同じ IOC のレコードを参照するデータベースリンクである。
CA リンクも可能であるが、リンク先のレコードの PROC フィールドをリンク先として指定する必要がある。
フラグはない (PP, NMS etc) リンク先のレコードは、「処理」実行されるためにSCAN = Passive
を指定されている必要がある。 値は渡さない、単に「処理」を開始するだけである。
292003/P571: What is an EPICS Database?
EPICS 「処理」の連鎖
302003/P571: What is an EPICS Database?
EPICS どのレコードは決して処理されないか
312003/P571: What is an EPICS Database?
EPICS どのレコードは 2 回処理されるか ?
322003/P571: What is an EPICS Database?
EPICS PACT フィールド
すべてのレコードは PACT と名付けらら他 boolean 実行時フィールド をもっている (Process Active)
PACT レコードのリンクの無限ループを壊す効果を持つ レコードの「処理」の開始直後に PACT は” true” に設定され
る。 そのレコード中のリンクが値の読み書きに使われている間は PACT がtrue に設定される。
PACT はレコードの I/O 動作が終了しフォワードリンクの「処理」が終わったら False に設定される。
PACT が True であるとどの PP リンクもそのレコードの「処理」を開始することができない。 入力レコードは現在の値を使う 出力レコードは自分自身の値を単に出力する。 d
332003/P571: What is an EPICS Database?
EPICS 何が起きるか?
342003/P571: What is an EPICS Database?
EPICS レコードを「処理」から守る
条件によっては個々のレコードの「処理」を禁止することができれば便利である。
レコード特有の「処理」ルーチンが呼び出される前に、 SDISフィールドに指定された入力リンクから値が読み出され、 DISA フィールドに収めれらる。
もし DISA=DISV であればレコードは「処理」されない。:レコードの process 関数は呼び出されない。
「処理」が禁止されたレコードは DISS フィールドに指定された重篤度状態になる。
「処理」が禁止されたレコードの FLNK フィールドはトリガされない。
352003/P571: What is an EPICS Database?
EPICS レコードの処理時間はどのように割当られるか ?
いくつの IOC タスクが使われる : コールバック (3 priorities) — I/O Interrupt scanEvent — Soft Event scanPeriod — Periodic
スキャンの周期ごとに異なるタスクが割り当てられる 早いスキャンタスクほど高い実行割当率が実現できる。 Faster scan
rates are given a higher task priority (if supported by OS) Ca のタスクは レコード「処理」のタスクよりも低いプライ
オリティをもつ。
362003/P571: What is an EPICS Database?
EPICS ここでは何が悪いか
372003/P571: What is an EPICS Database?
EPICS ロック・セット
一つのレコードが二つのスキャン・タスクから同時に「処理」されることを防ぐ
ロック・セットは以下の条件で関係付けられる一組のレコードである。 出力データベース・リンク フォーワード・リンク PP あるいはM Sフラグをもつ入力リンク 配列
ロック・セットは IOC の起動時に自動的に決定される。次の条件があればロック・セットを分割することができる。 リンクが CA リンクである。 CA フラグを用いる。 NPP NMS のデータベースリンク
382003/P571: What is an EPICS Database?
EPICS アラーム
すべてのレコードは次のフィールドをもつSEVR アラームの重篤度
NONE, MINOR, MAJOR, INVALID
STAT アラーム状態 ( 原因 )READ, WRITE, UDF, HIGH, LOW, STATE, COS, CALC, DISABLE, etc.
ほとんどの数値的なレコードは VAL フィールドの値を HIHI, HIGH, LOW および LOLO フィールドと VAL フィールドの値が確定した後に比較する。
HYST フィールドでアラームのチャタリングを防止する。 それぞれのアラーム・リミット (HIHI, HIGH, LOW, LOLO) に
たいして独立に重篤度 (HHSV, HSV, LSV, LLSV) を指定できる。 離散的(バイナリ)レコードでは、特定の状態になったときあ
るいは、状態の変化時にアラーム状態となることができる。 (COS)
392003/P571: What is an EPICS Database?
EPICS 値の変化の通知 : モニタ・デッドバンド
CA は数値レコードをモニタしているクライアントに次の条件が成り立つとき、通知を送る。 VAL が次のフィールドに指定された値以上に変化したとき :MDEL Value monitorsADEL Archive monitors
アラームの状態が変化したときHYST Alarm hysteresis
アナログ入力レコードでは入力ノイズの影響を軽減するために平滑化のフィルタを適用することができる (SMOO) 。
402003/P571: What is an EPICS Database?
EPICS ブレークポイント・テーブル
アナログ入力・出力レコードは非線形変換を RVAL<->VAL 変換の際に使うことができる。
ブレークポイント・テーブルは与えられたテーブルから値を補間する。 ブレークポイント・テーブルを使うには LINR フィールドにブレークポイ
ント・テーブルの名前を指定する。
ブレークポイント・テーブルの例 (in your .dbd file)breaktable(attenuator1_1) { 504, 0 795, 1.25 909, 2.5 1012, 3.75 ...}
0
5
10
15
20
25
30
35
0 500 1000 1500 2000 2500
A/D Units
Attenuation (db)
412003/P571: What is an EPICS Database?
EPICS シミュレーション
入出力レコードはしばしばハードウェア・インタフェースのシミュレーションをサポートしている。SIML Simulation mode linkSIMM Simulation mode valueSIOL Simulation input linkSIMS Simulation alarm severity
レコードはデバイスサポートを使う前に、 SIML リンクからSIMM の値を読み込む。
もし SIMM=YES であれば , デバイス・サポートは無視される ;レコードは SIOL リンクを入出力先として使う。
シミュレーション・モード中 (SIMM=YES) にはアラームの重篤度は SIMS フィールドに指定された値に固定される。
422003/P571: What is an EPICS Database?
EPICS アクセス・セキュリティ
ネットワークを用いた制御システムはセキュリティルールを適用できる機能を持たねばならない。 誰が、何時、どこで、何をできるのか ?
EPICS ではセキュリティは CA サーバ(通常は IOC) で守られている。
レコードは ASG フィールドにしてされたアクセス・セキュリティ・グループに割り当てられる。 ASG フィールドに指定がなければ DEFAULT セキュリティ・グループ
が選択される。 それぞれのグループのルールによって、 CA クライアントが
そのグループに所属するレコードの読み・書きの権限を持っているかどうかを クライアントの IP address 、ユーザ フィールドのアクセス・セキュリティ・レベル データベースから読み出した値
に基づいて決定する。
432003/P571: What is an EPICS Database?
EPICS アクセス・セキュリティ設定ファイル
セキュリティルールはアクセス・セキュリティ設定ファイルからロードされる。
example:UAG(users) {user1, user2}HAG(hosts) {host1, host2}ASG(DEFAULT) { RULE(1, READ) RULE(1, WRITE) { UAG(users) HAG(hosts) }}
もしセキュリティ・設定ファイルがロードされなければセキュリティの機能は働かず、すべての要求が処理される。
アクセス・セキュリティ・設定ファイルの詳細については IOCアプリケーション・デベロッパ・ガイドの第五章を参照せよ。