PLCイベントログをCSVファイルとして保存する方法
イベント方式でCSV保存するメリット
- 変化したデータのみ保存できる
- ファイルサイズを小さくできる
- Excelでそのまま開ける
- 上位アプリ不要で内容を確認できる
- トラブル解析が容易になる
CSV保存とバイナリ保存の違い
| 項目 | CSV | バイナリ |
|---|---|---|
| 可読性 | 高い | 低い |
| ファイルサイズ | 大きい | 小さい |
| 速度 | 遅い | 速い |
| 解析 | 容易 | 専用ツール必要 |
イベントログ保存の仕組み
メモリの値が変化したらデータを残します
SDカードへ書込む方法は「リングバッファとバイト配列でロギング」と同じです

シンボル
EventLogSDWriteCSV
処理内容はTraceSDWriteとほぼ同じ
イベントログ用構造体

プライマリタスクの処理

定周期タスク

EventLogSDWriteCSVの動作
プライマリタスクでは監視しているメモリの値が変化したときにRingFilePutで時刻と変数と値をバッファに追加します
値の変化はビット情報ではXOR命令で前回値と比較してOFF→ON、ON→OFFを監視します
数値では前回値から今回の値を引いて変化の範囲(rangeDInt)を超ているかを監視します
定周期タスクではリングバッファから読み出してSDカードに書き込みをします
バイト配列に変換してSDカードに書き込むEventLogSDWriteCSVFBの処理に時間がかかるため10ms~のタスク周期で調整します
リングバッファにデータがあればEventLogSDWriteCSVを実行してSDカードに書込みます
よくある質問
CSVファイルはExcelで開けますか?
はい。保存したCSVファイルはExcelやテキストエディタで確認できます。
イベントログと定周期ログの違いは何ですか?
イベントログは値が変化した時のみ保存するためデータ量を削減できます。
CSV保存はバイナリ保存より遅いですか?
文字列変換処理が必要なため一般的にCSV保存の方が処理負荷は高くなります。
リングバッファを使用する理由は何ですか?
イベントが短時間に集中した場合でもデータ欠落を防ぐためです。
ダウンロード
このサイトが役に立ったと感じたら、ご支援いただけると嬉しいです
