ロギング
ロギングの種類
タイミング
PLCのメモリ(ビットの状態や数値など)をロギングする方法は、イベント型とトレース型に分けることができます
それぞれの記録するタイミングは下図のように違います

ログフォーマット
記録データは次のようになります


トレース型
もっとも簡単なロギング
AddDelimiter命令とFilePut命令を使ってロギングします
リングバッファを使ったロギング
もっとも簡単なロギングにバッファ処理を入れてロギングします
リングバッファとバイト配列でロギング
バッファ処理とFileWrite命令を使ってバイト配列をロギングします
性能について
BOOL型を100個程度+DINT型100個程度のデータをロギングしたときの最速収集周期 (NJ501で計測)
| もっとも簡単なロギング | 100ms |
| リングバッファを使ったロギング | 30ms |
| リングバッファとバイト配列でロギング | 1ms |
イベント型
イベント型でCSVファイル
イベント型でCSVファイルを作成します
イベント型でバイナリファイル
イベント型でCSVファイルを作成します
ついでにFTP
性能について
1秒間に記録できる件数 (NJ501で計測)
| CSVファイル | 8,000件 |
| バイナリファイル | 80.000件 |
おまけ
超高速 構造体まるごとロギング
FileWriteVarを使って構造体をまるごと保存します
性能について
BOOL型を100個程度+DINT型100個程度のデータをロギングしたときの最速収集周期 (NJ501で計測)
| 構造体まるごとロギング | 0.2ms以下 / レコード |
目安として
1MByte(INT型 500000個)の構造体を書くのに250~350ms
500KByteの構造体を書くのに100~200ms
データベースにロギング
トレース型
Insertでロギング
ログデータをInsert命令を使って1レコードづつ挿入します
BatchInsertを使ってロギング
ログデータをBatchInsert命令を使って一括挿入します
性能について
Insertにかかる時間(NX102)
| Insertでロギング | 30ms / レコード |
| BatchInsertでロギング | 3ms / レコード |








