変数をファイルに保存

概略

大量のデータを保持したいときに、非保持変数を通常のメモリとして使用しながら、SDカードにファイルとして記憶する方法です
変数をSDカードに書き込む方法と特徴について調べます

処理内容

大容量変数を丸ごとSDに書き出す
非保持変数メモリに大容量の変数を作成してFileWriteVar命令で変数を丸ごとSDに書き出します
こうすることでファイルを書き込んでから電源がOFFするまでの変数の値の変化は保持できないものの、ファイルに書き込んだ時点までを保持する事ができる変数を作ることができます
保持変数が足りなくなったら、少し巻き戻っても問題のない変数をこの方法でファイルに保持することを検討します
ファイルに書き込んだ値は電源ON時にFileReadVar命令で読出します

構造体
約524KBの構造体を宣言

グローバル変数
構造体を配列にして約4MBのグローバル変数にする

メモリ使用状況
メモリ使用状況で確認

ラダー
TriggerをONでファイル書込み


書込み時間計測

書き込む変数(WriteVar)のSampleStructの要素数を変えて4MB,3MB,2MB,1MBのサイズで書込み時間を測てみました
定周期にファイルに書き出す時は、この書込み時間の2倍以上を目安に書込み処理を実行するタイミングを調整してください
100回計測中の最大値(かっこは平均値)
4MB
機種 書込み時間(ms)
NX701
 930 (802)
NX201
 1338 (1181)

3MB
NX701
 780 (607)
NX201
 1088 (893)
NJ501
 930 (754)

2MB
NX701
 623 (410)
NX201
 816 (607)
NJ501
 732 (507)

1MB
NX701
 292 (191)
NX201
 412 (292)
NJ501
 366 (242)
NJ301
 474 (297)
NJ101
 426 (323)