| 93 | == 実行例2:IOC再起動時に元の値を書き戻すやりかた。これが通常の使い方 == |
| 94 | 例として ai レコードを3個用意する(obina:ai1, :ai2, :ai3)[[br]] |
| 95 | |
| 96 | iocBoot ディレクトリでの作業 |
| 97 | * 保存したいレコード名を記載した request ファイルを作成 |
| 98 | {{{ |
| 99 | [obina@erlserv iocsrtest]$ cat test1.req |
| 100 | obina:ai1.VAL |
| 101 | obina:ai2.VAL |
| 102 | obina:ai3.VAL |
| 103 | }}} |
| 104 | * st.cmd ファイル |
| 105 | {{{ |
| 106 | ..... |
| 107 | |
| 108 | dbLoadRecords "db/ai_sample.db" |
| 109 | # for autosave |
| 110 | set_requestfile_path("$(TOP)/iocBoot/$(IOC)", "") # saveファイルの場所を指定 |
| 111 | save_restoreSet_DatedBackupFiles(1) # バックアップファイル作成(日付ごと) |
| 112 | set_pass0_restoreFile("test1.sav") # restore ファイル指定 |
| 113 | |
| 114 | cd ${TOP}/iocBoot/${IOC} |
| 115 | iocInit |
| 116 | |
| 117 | # start monitor for save/restore # iocInit の後に記載する |
| 118 | create_monitor_set("test1.req", 10) # requestファイルに記載のレコードをモニター開始。変化があればファイル保存(10秒ごと)。 |
| 119 | }}} |
| 120 | |
| 121 | |
| 122 | set_pass0_restore を使うのか _pass1_ を使うのか(あるいは両方)は目的によって異る。また、databaseファイルで PINI=YES/NO の違いもある。 |
| 123 | このサンプルで色々試してみると動作を理解しやすいかもしれない。 |
| 124 | |
| 125 | * create_monitor_set を実行すると .sav ファイルが作成される。中身は今回の例だと以下のようになる。 |
| 126 | {{{ |
| 127 | [obina@erlserv iocsrtest]$ cat test1.sav |
| 128 | # autosave R5.3 Automatically generated - DO NOT MODIFY - 151209-184538 |
| 129 | obina:ai1.VAL 3.4567 |
| 130 | obina:ai2.VAL 1.2345 |
| 131 | obina:ai3.VAL 7.65432 |
| 132 | <END> |
| 133 | }}} |
| 134 | |