1. TOP
  2. OMRON
  3. NX/NJシリーズ
  4. データ処理
  5. ロギング
  6. イベント方式でバイナリファイル

概略

メモリの値が変化したらデータを残します
定周期でリングバッファを編集用のリングバッファにコピーします
コピーしたリングバッファに溜まっているデータをWriteBufにデータを整列させてます
整列したWriteBufは定期的または一杯になったら構造体をまるごとFileWriteVarでSDメモリに書き込みます

FileWriteVar命令はメモリの状態をそのままSDメモリに書き込むためバイナリファイルになります
ファイルを開くためには上位側でアプリケーションが必要です

EventBinImage

シンボル

リングバッファのファンクションを使います

RingBufPut

RingBufGet

EventLogSDWriteCSV

使用例

構造体

構造体

ラダー-

プライマリタスク

ラダー1

定周期タスク

ラダー2

ラダー3

プライマリタスクでは監視しているメモリの値が変化したときにRingFilePutで時刻と変数と値をバッファに追加します
値の変化はビット情報ではXOR命令で前回値と比較してOFF→ON、ON→OFFを監視します
数値では前回値から今回の値を引いて変化の範囲(rangeDInt)を超ているかを監視します

定周期タスクでは10秒間隔もしくはデータが5000個溜まったらリングバッファを編集用のリングバッファ(EventLogRingBufferCopy)にコピーします
コピーしたリングバッファに溜まっているデータを書込み用バッファ(EventLogWriteBuffer)に追加していきます
時刻を監視して分の単位が変化するか、書込み用バッファのカウントが55000個を超えるとFileWiteVar命令でEventLogWriteBuffer構造体を丸ごとSDカードに書き込みます

ダウンロード

ダウンロードされたときは利用規約に同意したものとみなします

この記事へのコメント