# 大量データのロギング

マニュアル > サーバ作成ガイド > アクション編 > アクションの応用 > ロガー > # 大量データのロギング |

概要

配列タグを使って大量データのロギングを行う方法について解説します。

ロギング対象のタグを各１点ずつ用意しても大量データのロギングを行うことは可能ですが、ロガーアクションに登録するタグの点数が多くなりすぎると、設定作業が煩雑なものとなる場合があります。配列タグを利用することによって、１つのタグ登録作業のみで連続したデバイスエリアを簡単にロギングすることができるようになります。

この機能のサンプルは、以下からご利用頂けます。

設定手順

タグの設定

1.データ収集のための仮想デバイスタグ「U01.F01.SD0000」を設定し、下記プロパティにより配列として定義します（この例では5000個の配列とします）。この設定によりSD0000～SD04999の連続したアドレスエリアが１つのタグでまとめて定義されます。

アクションの設定

1.ロガーアクション「A01」を追加します。時刻フィールドを設定した後、先ほど作成した配列タグ「U01.F01.SD0000」をドラックアンドドロップしてタグフィールドを設定して下さい。ここで、タグフィールドのプロパティを下記のように設定します。
名前：「U01_F01_SD」　列数：「5000」　桁数：「４」

イベントの設定

1.定周期イベント「E01」を追加します。周期を１秒周期とし、実行アクションに「A01」を設定します。

解説

配列タグを使うと、連続したデバイスを一括で保存することができます。この例では5000個の連続したデバイスとして定義しました。CSVファイルへのロギングにおいてフィールド名はあまり重要な意味を持ちませんが、ODBC経由でデータベースにロギングを行う場合、ロガーのフィールド名の定義をテーブルレイアウトに一致させる必要があります。

この例の場合、フィールド設定画面で名前を「U01_F01_SD」、列数：「5000」、桁数：「４」と設定しました。これによりログデータの各フィールド名は「U01_F01_SD0000」～「U01_F01_SD4999」の連番として出力されます。

このサンプルの応用例

配列タグは、イベント型ログに含めて使用することも可能です。例えば、以下のフォーマットでは各タグの値が変化したことを１行に１タグ単位で保存しています。

時刻 | タグ名 | 値
2003/1/1 10:12:00 | U01.F01.SD005 | 81
2003/1/1 10:12:01 | U01.F01.SD001 | 163
2003/1/1 10:12:02 | U01.F01.SD004 | 41
・・・ | ・・・ | ・・・

これを、各タグを配列タグで定義し、フィールド設定の列数を複数列として設定することにより、１行に複数タグをブロック単位でログ出力することができます。この場合、配列タグ内で１つでも値が変化するとロギングが行われます。尚、各タグの配列数がフィールドの列数より多い場合、フィールドの列数を超えた配列要素は切り捨てられます。反対に、配列数がフィールドの列数より少ない場合には、余分なフィールドはNULLで埋められます。

時刻 | タグ名 | 値００ | ・・・ | 値９９
2003/1/1 10:12:00 | U01.F01.BLOCK1 | 81 | ・・・ | 98
2003/1/1 10:12:01 | U01.F01. BLOCK3 | 163 | ・・・ | 54
2003/1/1 10:12:02 | U01.F01. BLOCK5 | 41 | ・・・ | 2
・・・ | ・・・ | ・・・ | ・・・ | ・・・