コンテンツ
-
概要
-
フィールドの説明
-
書類
1. 概要
このドキュメントでは、EPICS scanparm レコードと、それを構築および使用するための関連する EPICS ソフトウェアについて説明します。このレコードのこのリリースは EPICS 3.14.8.2 と互換性がありますが、EPICS レコードの 3.13.x バージョンとは互換性がありません。
scanparm レコードは、EPICS sscan レコードに書き込むためのパラメータを保存し、これらのパラメータを sscan レコード bin にロードして sscan レコードにスキャンを実行させるためのショートカットを EPICS エンド ユーザーに提供します。その目的は、ユーザーがマウスをクリックするだけで事前定義されたスキャンを構成および実行できるようにすることです。
ちなみに、EPICS におけるスキャンという用語は、一般にレコードの実行、特に実行対象のレコードの選択方法を指します。本書では、スキャンにはそのような意味はありません。ここで、scan は sscan レコードが行うことです。
1) ロケーターを特定の位置に移動し、その位置に到達するまで待ちます
2) 検出器をトリガーし、収集が完了するまで待ちます。
3) ロケーターと検出器からのデータの読み取りと保存
4) 繰り返します
スキャンの詳細については、sscan のドキュメントを参照してください。
最も単純かつ一般的な使用法では、scanparm レコードは起動時に特定のポジショナー (モーターなど) に関連付けられ、この scanparm レコードは特定の sscan レコードの構成と実行に使用されます。通常、実行時にユーザーは開始位置と終了位置、および収集するデータ ポイントの数を scanparm レコードに書き込みます。これ以降、scanparm レコードへの 1 回の書き込みでスキャンを実行できるようになります。複数の scanparm レコードを 1 つのロケーターに関連付けることができ、複数の scanparm レコードを 1 つのデータベースに結合して、複数のロケーターおよび複数の sscan レコードのスキャン パラメーターを保存することができます。
scanparm レコードには、書き込むパラメータ、読み取るパラメータ、およびユーザーから受信して別のレコードに転送するコマンドのフィールドのコレクションが含まれています。
2. フィールドの説明
すべてのレコード タイプに共通のフィールドに加えて、scanparm レコードには以下で説明するフィールドがあります。
1) レコード固有フィールドのアルファベット順リスト
2)情報発信に関する分野
3) 収集情報に関する分野
4) さまざまな分野
5) プライベートフィールド
1) レコード固有フィールドのアルファベット順リスト
注: 上記の「アクセス」列では
- R: 読み取り専用
- R/W: 読み取りと書き込みが可能です。
- R/W*: 読み取りと書き込みが可能です。レコードの SCAN フィールドが「パッシブ」に設定されている場合、チャネル アクセスの書き込みによってレコードの実行がトリガーされます。
- ×:アクセスを許可しません。
2) 送信メッセージに含まれるフィールド
値フィールド | タイプ | 出力リンク | 代表的な対象分野 | 目的 |
プレ | DBF_SHORT | 止まる | <sscan>.CMND | 古いロケーター設定をクリアする |
SM | DBF_メニュー (sscanP1SM) |
OSM | <sscan>.P1SM | ロケーター スキャン モード (例: リニア、テーブル、フライ) |
AR | DBF_メニュー (sscanP1AR) |
オール | <sscan>.P1SM | ロケーターの絶対/相対 |
AFT | DBF_メニュー (sscanPASM) |
オフト | <sscan>.PASM | ロケーター ポストスキャン モード (例: その場で停止、開始位置への移動など) |
PPV | DBF_STRING | OPPV | <sscan>.P1PV | ロケーターによって駆動される PV の名前 |
RPV | DBF_STRING | ORPV | <sscan>.R1PV | ロケーターによって読み取られた PV の名前 |
バット | DBF_STRING | OTPV | <sscan>.T1PV | プローブトリガーのPV名 |
DPV | DBF_STRING | 答え | <sscan>.D01PV | 検出器のPV名 |
SP | DBF_DOUBLE | OSP | <sscan>.P1SP | ロケーターの開始点 |
EP | DBF_DOUBLE | OEP | <sscan>.P1EP | ロケーターの終点 |
NP | DBF_LONG | OEP | <sscan>.NPTS | 収集するデータポイントの数 |
SC | DBF_SHORT | OSC | <sscan>.EXSC | スキャン開始 |
現在 | DBF_DOUBLE | OAQT | <sscan>.TP | 収集時間 |
3) 収集する情報の分野
リンクを入力してください | 値フィールド | 代表的な対象分野 | 目的 |
IMP | MP | <sscan>.MPTS | 利用可能なデータポイントの最大数を取得する |
IACT | 活動 | <sscan>.BUSY | ターゲットの sscan レコードがアクティブかどうかを確認する |
4) 実行に関わるフィールドの管理
値フィールド | 出力リンク | 代表的な対象分野 | 目標 |
ロード | オロアド | <scanparm>.LOAD | scanparm レコードがパラメーターを sscan レコードに書き込みます。曲線を定義するために複数の scanparm レコードが必要な場合 (マルチロケーター スキャンや多次元スキャンなど)、OLOAD フィールドは次の scanparm レコードにリンクする必要があります。 |
行く | 品質 | <scanparm>.GO | scanparm レコードがパラメータを sscan レコードに書き込み、sscan レコードがスキャンを開始するようにします。スキャンを定義するために複数の scanparm レコードが必要な場合 (たとえば、複数のロケーター スキャンや多次元スキャンの場合)、OGO フィールドは次の scanparm レコードにリンクされ、実行される最後の scanparm レコードはその OGO リンクを使用する必要があります。 sscan を実行すると、レコードのスキャンが開始されます。 |
3. 書類
次の表では、scanparm ロギングを実装して使用するために必要なファイルについて簡単に説明します。
1) ソースコード
scanparmRecord.c | scanparm ロギングのロギングのサポート |
scanparmRecord.dbd | このファイルは、scanparm レコードのすべてのフィールド メニューを定義します。 |
2) データベースと自動保存要求ファイル
scanParms.db | sscan レコードと scanparm レコードが同じプレフィックスを持つ場合、それは 1 次元の単一ステージのスキャンされたデータベースに使用されます。 |
scanParmsRemote.db | sscan レコードと scanparm レコードが異なるプレフィックスを持つ場合、それは 1 次元、1 段階のスキャン データベースとして使用されます。 |
scanParms2Pos.db | 1 次元 2 段階スキャン用のデータベース。 |
scanParms2D.db | 2Dスキャン用のデータベース。 |
3) MEDMウィンドウファイル
- scanParms.adl
- scanParmsRemote.adl
- scanParmsCustom.adl
- scanParms2Pos.adl
- scanParms2D.adl
これらのファイルは、scanparm レコードおよび関連するプロセス変数にアクセスするための medm ウィンドウを構築します。たとえば、コマンド ラインからいずれかを使用するには、次のように入力します。
medm -x -macro "P=xxx:,Q=m1,PV=m1" scanParms.adl
medm -x -macro "P=xxx:,Q=yyy:m1,PV=yyy:m1" scanParmsRemote.adl
medm -x -macro "P=xxx:,Q=m1,EGU=,NAME=,DESC=" scanParmsCustom.adl
medm -x -macro "P=xxx:,Q=device,PV1=xxx:m1,PV2=xxx:m2,SCAN=yyy:scan1" scanParms2Pos.adl
medm -x -macro "P=xxx:,Q=device,DESC=,EGU1=,NAME1=,EGU2=,NAME2=" scanParms2D.adl
4) EPICS 起動ファイル
st.cmd: 起動スクリプト
このファイルは配布パッケージには含まれていません。以下は、scanparms をサポートする起動ファイルの注釈付きの概要です。
# vxWorks startup script to load and execute system (iocCore) software.
# scanparm-related databases
# Tell EPICS all about the record types, device-support modules, drivers,
# etc. in the software we just loaded (xxxApp)
dbLoadDatabase("dbd/xxxApp.dbd")
dbLoadTemplate("scanParms.substitutions")
5) 自動保存リクエストファイル
scanParms_Settings.req
ユーザーが変更可能な設定を scanParms.db データベースに保存するためのサンプル要求ファイルは auto_settings.req に含まれています。これを使用するには、auto_settings.req の各 scanParms データベースに次の形式の行を追加します。
file scanParms_settings.req P=xxx: M=m1