このページではOMRON NX/NJシリーズのSysmac Studioで実装するPLCロギングについて解説します。
CSVファイル保存、バイナリ保存、リングバッファを利用した高速ロギング、データベースへの記録方法を紹介しています。

ロギングの種類

タイミング

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

種類

ログフォーマット

記録データは次のようになります

種類

種類

トレース型ロギング

もっとも簡単なロギング

AddDelimiter命令とFilePut命令を使ってロギングします
AddDelimiterとFilePutによるロギング

リングバッファを使ったロギング

もっとも簡単なロギングにバッファ処理を入れてロギングします
リングバッファを使ったロギング

リングバッファとバイト配列でロギング

バッファ処理とFileWrite命令を使ってバイト配列をロギングします
リングバッファとFileWriteによる高速ロギング

性能について

BOOL型を100個程度+DINT型100個程度のデータをロギングしたときの最速収集周期 (NJ501で計測)

もっとも簡単なロギング 100ms
リングバッファを使ったロギング 30ms
リングバッファとバイト配列でロギング 1ms

イベント型ロギング

イベント型でCSVファイル

イベント型でCSVファイルを作成します
イベント型CSVロギング

イベント型でバイナリファイル

イベント型でCSVファイルを作成してFTP
イベント型バイナリロギング

性能について

1秒間に記録できる件数 (NJ501で計測)

CSVファイル 8,000件
バイナリファイル 80.000件

おまけ

超高速 構造体まるごとロギング

FileWriteVarを使って構造体をまるごと保存します
FileWriteVar

性能について

BOOL型を100個程度+DINT型100個程度のデータをロギングしたときの最速収集周期 (NJ501で計測)

構造体まるごとロギング 0.2ms以下 / レコード

目安として
1MByte(INT型 500000個)の構造体を書くのに250~350ms
500KByteの構造体を書くのに100~200ms

データベースロギング

トレース型

Insertでロギング

ログデータをInsert命令を使って1レコードづつ挿入します
データベースInsertロギング

BatchInsertを使ってロギング

ログデータをBatchInsert命令を使って一括挿入します
データベースBatchInsertロギング

性能について

Insertにかかる時間(NX102)

Insertでロギング 30ms / レコード
BatchInsertでロギング 3ms / レコード

関連ページ

この記事へのコメント