LLRF制御システムでは、F3RP61上でautosaveを使用するため、ビルドと動作確認を行った。

 

評価に使用したbaseautosaveのバージョンは以下の通りである。

 

base_R3.14.11

autosave_R4-7

 

autosaveライブラリのF3RP61向けのビルドには特段の留意点などはなく、マニュアルにも記載されている通常のモジュールの手続きで成功した。

 

最終的にはF3RP61USER SRAMにチャネルの値を保存し、リブート時にそこから値を復旧することが目的であるが、手始めとして、まず保存ファイル(.savファイル)の置き場所として(NFSマウントした)スタートアップ・スクリプトのあるdirectoryを選んで試験を行った。試験に使用したファイルは以下の通りである。

Database File
Request File
Startup Script
Save File

 

以下に今回の評価・試験中に得たレッスンを列挙する。

 

1.当初、スタートアップ・スクリプトのcurrent directoryからの相対パスで指定しようとしたが、“ファイルが開けない”というエラー・メッセージが出た。絶対パスで指定することにより、問題は解決した。

 

2.ハードウェアから値を読み出すモニタ・チャネルの(saveはともかく)restoreには意味がない。

 

3.今回の保存と復旧の試験に使用した二つの出力型レコード(ao, bo)の場合、何れもレコードの初期化時にVALが操作されるため、set_pass0_restoreFileで復旧したVALの値は上書きされてしまう。今回の試験では二つのレコードともVALがゼロで上書きされたが、どのように上書きされるかは、レコードの初期化時に参照されるフィールドの値に依存する。

 

4.set_passX_restoreFileで起動時に初期化されたレコードは、マニュアルに記載されている通り、プロセスはされない。(値の復旧後もUDF=1のまま。)


5.上記4は重要なポイントであるため、F3RP61Linuxを再起動し、I/Oモジュールをリセットすることによっても確かめた。IOC起動時にautosaveで出力型レコードのVALの値を復旧してもハードウェアへの書き込みは起こらない。(レコードをプロセスした時点でハードウェアへの書込みが起きる。)

 

6.上記はハードウェアへの出力に直結したレコードのautosaveによる自動セーブ、自動復旧には注意を要することを意味する。特に大電力、高電圧の出力に直結したレコードの自動セーブ、自動復旧は避けるべきであろう。

 

7.autosaveはインタロック閾値、出力に直結しない各種パラメータの初期値設定に限って用いることが妥当と思われる。

 

8.Sequenced backup fileの数はデフォルトで3に設定されており、その作成周期のデフォルト値は60秒である。(レコードのプロセスに伴い毎回、モニタ通知がなされる今回の試験では、60秒毎にtest.sav0, test.sav1, test.sav2がリングバッファ的に更新される。)

 

9.Dated backup fileを作成する機能はデフォルトで有効化されている。(IOCの再起動の度に日付の付されたバックアップ・ファイルが作成される。)