サイトのタイトル

OSD

SSレコーダの作り方 (1/4)

概要

SysmacStudioのデータトレースにインポートできるファイルを出力するレコーダを作成します
トレースするデータはリングバッファ(メモリ内)に残して任意のタイミングでファイル出力することにします
デバッグや異常発生時の解析などに活用してください

関連記事はこちら→SysmacStudioのデータトレースファイル形式で常時出力

目的

準備

出力ファイルのフォーマット

SysmacStudioのデータトレースでエクスポートされるファイルフォーマットに合わせて出力します(今後のバージョンアップで変更になる可能性はあります)

トレースデータ

トレースしたいデータは構造体sDataにセットします

sData STRUCT

RecTime

DATE_AND_TIME

変数1

INTなど

・・・

最大191個 (*1)
*1 SysmacStudioのデータトレースでは変数の数はNJ501,NX701は192個それ以外は48個ですが、
ここで作ったファイルはNX102などでトレースしたデータもプロジェクトの機種をNJ501かNX701に変更することでインポートすることが可能です

RecTime(DATE_AND_TIME型)はデータトレースファイルを作成するのに必須なので必ず入れてください
その他のメンバはトレースしたい変数を自由に設定します

トレース可能なデータ型 基本データ型(文字列除く)
配列(要素数指定)
列挙型
構造体/共用体(メンバを指定)


このナビでは以下のデータをトレースすることにします

構造体

リングバッファの容量

トレースデータはリングバッファに記録していきます
リングバッファは常に更新して古いデータを上書きしていくためリングバッファの容量によって記録できる期間が変わります
できるだけ大きくしたいのですが、PLCのシステム的に以下の制限があるため以下の範囲でリングバッファの容量を決定することになります

項目 限界 リングバッファとの関係
変数 4MByte(4,194,304byte) リングバッファ全体の容量
バッファ数 65535 sDataのレコード数

参 考
バッファ数別にトレースデータにINT型のデータを複数設定した場合のリングバッファの容量は以下のようになります
リングバッファ構造体


このナビで作るトレースデータをリングバッファに配列数65535個で設定すると約3.25MByteの容量になります
(メモリ使用状況で確認)

リングバッファ構造体

メモリ使用状況


トレース周期

トレースする周期は任意で構いません
トレースしたい周期でリングバッファにデータを追加していきます


このナビではプライマリタスク周期(2ms)でトレースします

トレース期間

トレース周期とリングバッファのバッファ数(配列数)で保存できる期間が決まります
トレース周期 × バッファ数= トレース期間
(例) 2ms × 65534 = 131068ms = 約 2m 11s

参 考
バッファ数別のトレース周期とトレース期間の関係
リングバッファ構造体

次のページからは

SSレコーダのプログラム作成方法を手順を追って説明します

ダウンロード

ここで作るプロジェクトを先にダウンロードしたい人は
naviRecorderSS.csm2