FileWriteVarのメリット

FileWriteVar命令を利用すると構造体全体を一度に保存できます。 CSV変換や文字列変換が不要なためCPU負荷が低く、高速なデータ保存が可能です。

大量データのロギングや波形収集、トレーサビリティ用途に適しています。

概略

FileWriteVar命令を使って構造体のデータをSDカードに保存できます
保存したファイルはパソコンでバイナリエディタや自作アプリで読むことが可能ですが、パソコンのプログラムを作る必要があります
FileWriteVarによる構造体バイナリ保存

使用例

ラダー

FileWriteVarで保存したファイルはパソコン等でバイナリエディタで開いたり、C#などで読み出して確認します

ファイルに保存する構造体(配列にした変数を保存しています)
FileWriteVarで保存する構造体定義

バイナリエディタで開く

バイナリエディタを使って保存したファイルの中身をみてみます
日付時刻型の8byte+DINT型の4byte+DINT型の4byteの構造体の順番にデータが入っていますが、ここで注意が必要なのは日付はわけのわからない数値(日付時刻をシリアル化した数値)が入っていて、DINT型はリトルエンディアンの並びで入っていることです
これ以外に複数のデータ型(INT型やDINT型、REAL型、文字列型など)が混在する構造体の場合はアライメントを意識する必要があります

構造体アライメントに注意

FileWriteVarで保存したデータはPLC内部のメモリ配置そのままで保存されます。INT型、DINT型、LREAL型などが混在する場合はCPUのアライメント規則により隙間データが入ることがあります。

PCアプリで読み出す場合はPLCマニュアルのアライメント規則を確認してください。

バイナリエディタで確認した保存データ

C#で読み出す

よくある質問

FileWriteVarとFileWriteの違いは何ですか?

FileWriteVarは変数や構造体をそのまま保存できます。FileWriteはバイト配列を保存します。

保存したファイルはExcelで開けますか?

バイナリ形式のため直接は開けません。専用アプリやC#などで読み出します。

FileWriteVarは高速ですか?

文字列変換を行わないため高速です。大量データ保存に向いています。

DATE_AND_TIME型はどのように保存されますか?

内部表現の64bit値として保存されます。PC側で日時へ変換する必要があります。

ダウンロード

この記事へのコメント