SSレコーダの作り方 (1/4)
概要
-
SysmacStudioのデータトレースにインポートできるファイルを出力するレコーダを作成します
トレースするデータはリングバッファ(メモリ内)に残して任意のタイミングでファイル出力することにします
デバッグや異常発生時の解析などに活用してください
関連記事はこちら→SysmacStudioのデータトレースファイル形式で常時出力
準備
- 出力ファイルのフォーマット
-
SysmacStudioのデータトレースでエクスポートされるファイルフォーマットに合わせて出力します(今後のバージョンアップで変更になる可能性はあります)
- トレースデータ
-
トレースしたいデータは構造体sDataにセットします
sData STRUCT RecTime
DATE_AND_TIME 変数1
INTなど ・・・
最大191個 (*1)
ここで作ったファイルはNX102などでトレースしたデータもプロジェクトの機種をNJ501かNX701に変更することでインポートすることが可能です RecTime(DATE_AND_TIME型)はデータトレースファイルを作成するのに必須なので必ず入れてください
その他のメンバはトレースしたい変数を自由に設定しますトレース可能なデータ型 基本データ型(文字列除く)
配列(要素数指定)
列挙型
構造体/共用体(メンバを指定)
このナビでは以下のデータをトレースすることにします
- リングバッファの容量
-
トレースデータはリングバッファに記録していきます
リングバッファは常に更新して古いデータを上書きしていくためリングバッファの容量によって記録できる期間が変わります
できるだけ大きくしたいのですが、PLCのシステム的に以下の制限があるため以下の範囲でリングバッファの容量を決定することになります -
項目 限界 リングバッファとの関係 変数 4MByte(4,194,304byte) リングバッファ全体の容量 バッファ数 65535 sDataのレコード数 -
このナビで作るトレースデータをリングバッファに配列数65535個で設定すると約3.25MByteの容量になります
(メモリ使用状況で確認)
- トレース周期
-
トレースする周期は任意で構いません
トレースしたい周期でリングバッファにデータを追加していきます
このナビではプライマリタスク周期(2ms)でトレースします - トレース期間
-
トレース周期とリングバッファのバッファ数(配列数)で保存できる期間が決まります
トレース周期 × バッファ数= トレース期間
(例) 2ms × 65534 = 131068ms = 約 2m 11s