2021/06/15

レコードの設定

ここでは以下のようなデータをトレースしてファイル出力後にSysmacStudioのデータトレースへインポートします

トレースデータ
トレースするデータビットを16個、INT型、DINT型、LINT型、REAL型、LREAL型をそれぞれ1個づつ
バッファの要素数10000個
バッファの数2個
トレースする周期2ms

レコード開始フラグでひとつめのバッファにデータを溜めます
バッファの最後までデータが入ったら2つめのバッファに切り替えてデータを溜めます
バッファが切り替わったタイミングでバッファをFileWriteVar命令でSDに書き出します

手順1:バッファの作成

1-1. バッファ用構造体の作成

Sysmac Studio データ型
RecSSConverter バッファ用構造体の作成

トレースしたいデータを入れるsData構造体を作成します
Data構造体をダブルバッファ用の構造体に入れてバッファリングに必要なサイズだけ配列を設定します
この配列の数がバッファサイズになります

構造体
名称データ型内容
sDataSTRUCTバッファ
RecTimeDATE_AND_TIME時刻
SamplingNoUINTサンプリングNo
IdxUINTIndex
BBOOL[16]BOOL型16個
INT16INT整数型16bit
INT32DINT整数型32bit
INT64LINT整数型64bit
RREAL実数型
LRLREAL実数型 倍精度

1-2. バッファを作成

Sysmac Studio 変数テーブルにバッファを作成
RecSSConverter バッファを作成

バッファ用の変数をData0とData1という名前で作成します
それぞれsData構造体の配列で要素数は10,000個で作成します

手順2:PLCのプログラム作成

2-1. バッファへデータ追加

Sysmac Studio データ追加ラダー
RecSSConverter データ追加ラダー

sDataの単体の変数をRecDataという名前で作っておきます
レコード開始フラグ(Rec)をONするとトレースしたいデータをRecDataにセットして
データをセットしたRecDataはRingBufPutファンクションを使ってバッファに追加します
ここではDummy~~~というグローバル変数をトレースしたいデータとしています

2-2. バッファがいっぱいになったら

Sysmac Studio バッファフルラダー
RecSSConverter バッファがいっぱいになったら

バッファがいっぱいになったらファイル名を作成してバッファをFileWriteVar命令でSDに書き込み指示を出します
同時にバッファを切り替えてファイル書込み中でも切り替えたバッファでレコーディングします
バッファがいっぱいになったら切り替えて書込みを繰り返します

次のページは

出力したファイルをSSConverterでデータトレース用CSVファイルに変換します

この記事へのコメント