# 定周期ログ

トレーニング > 応用編 > ロギング機能 > # 定周期ログ |

ロギング機能の概要

FA-Panelのロガーアクションによるロギング機能では、Panel Serverで登録されたタグの値やコメントなどの情報を、時系列のログデータとしてCSVファイルやデータベースにロギングすることができます。生成されたログデータは、履歴トレンドグラフの表示や、日報・月報・年報などのレポート機能のデータソースとして利用される他、Visual Basicなどの開発言語で構築された独自のアプリケーションからの利用も可能です。

ロギング処理はPanel Server上のアクションとイベントによって実行されます。ロギング自体は「ロガーアクション」によって行い、ロギングしたいトリガ（タイミング）を「イベント」によって制御します。ロガーアクションの設定では、ログデータに含めるデータ項目や時系列のフォーマットなどを定義し、イベントの設定では、定周期イベント、定刻イベント、タグイベントの、３種類のイベントの中から目的に応じた処理タイミングを設定します。

定周期イベントは、例えば1秒刻みなどの一定周期で発生させることができます。定刻イベントは、例えば毎日23時59分に発生させる等、あらかじめ指定した日時にトリガを発生させることができます。タグイベントは、指定したタグ値の評価によって、例えばあるタグがFALSEからTRUEになった時にトリガを発生させる、などの設定が可能です。

| ロギング機能に関する詳細は、アクションの機能解説「ロガー」に記載されていますので、参照して下さい。

定周期ログの作成

ここでは、定周期イベントをトリガとして利用し、CSVファイルへの１秒定周期でのアナログ値のロギングを行います。今回は、PLCデバイスの代わりに仮想デバイスを参照します。仮想デバイスの「特殊レジスタ」（SD）は、自動的に値が変化してくれるため、ロギングのテストなどで値の変化をシミュレーションさせることができます。

テーブルのフォーマットは以下のようなイメージになります。

F01 | SD0000 | SD0001 | ・・・ | SD0008 | SD0009
2016/9/9 20:50:00 | 0 | 0 | ・・・ | 0 | 2
2016/9/9 20:50:01 | １ | 10 | ・・・ | 12 | 46
2016/9/9 20:50:02 | 2 | 10 | ・・・ | 16 | 145
・・・ | ・・・ | ・・・ | ・・・ | ・・・ | ・・・

列の単位が、「フィールド」（ログのデータ項目）になります。上記の場合、一番左の列が時系列のフィールドで、それ以外の列がログ出力対象タグのアナログ値フィールドです。この例ではSD0000からSD0009までの１０点のアナログタグをログ出力します。このように、ほとんどのログデータには時系列のフィールドが含まれます。

行の単位が、一件のログのレコードになります。上記の場合、アナログ値の変化の有無にかかわらず、１秒周期で１行のレコードを出力します。

準備作業（タグ登録）

まずは、Panel Serverで設定ファイルを新規作成し、ロギング対象とするタグを登録して下さい。

1.Panel Serverにタグを登録します。
Panel Serverを起動し、以下のような仮想デバイスとタグを追加してください。
ユニット名： “U01”　・・・仮想デバイス
フォルダ名： “F01”
登録するタグ：

タグ | デバイス種別 | 備考
“SD0000”から”0009”までの連番 | SD （特殊レジスタ） | １０点の連続したタグを作成する

2.設定ファイルを保存します。
タグの登録が終わったら、サーバ側の設定ファイルを一旦保存します。以降の作業でも、引き続きこの設定ファイルを使って作業を行います。

ロガーアクションの設定

タグを登録したら、ロガーアクションの設定を行います。ロガーアクションの設定では、ログ出力するファイル名、ログデータ項目とするフィールドの定義を行います。

1.ロガーアクションを追加する
Panel Serverのツリーから、Actionを右クリックしてメニューを表示し、追加／アクションを選択します。
アクションの追加ダイアログが表示されるので、「ロガー（CSV）」を選択してOKボタンをクリックします。
A01というアクションが追加されました

| アクションを追加すると、“A01”、“A02”などのアクション名が自動的に付与されます。登録するアクションの数が少ない場合にはこのまま使用して問題ありませんが、アクションがたくさんになってくると、どのアクションが何の処理なのか分からなくなってしまいがちです。アクション名はプロパティから自由に変更できます。アクションの目的毎に、“Log01”、“Alarm01”などといった名称を付与して管理するのも効果的な方法です。

2.ロガーアクションのプロパティを設定します。
ツリーから“A01”を右クリックしてメニューを表示し、プロパティダイアログを表示します。テキスト設定タブを開き、ファイルのパスとファイル名を指定してください（ここでは、“log1-1.csv”としています）。ここでは、サーバ設定ファイルの保存んフォルダ内にDBというフォルダを作成し、そのフォルダにCSVデータをロギングするように指定しています。

| 「拡張」のコンボボックスは、デフォルトで「ファイル名に日付・時刻を付加する」になっています。この設定は、ログファイルのファイル名に処理日付を含めることを意味します。例えば、ファイル名の設定が“log1-1.csv”の場合、実際に生成されるファイル名は“log1-1yyyymmdd.csv”（ymdは年月日）というファイル名になります。つまり、日付毎にログファイルが生成されることになります。特別な要件がない限り、デフォルトのとおりログファイルを日付毎に分けて作成する設定を推奨します。

| 「フラッシュ設定」とは、ログファイルにレコードを書き出すタイミングの設定です。デフォルトでは１になっているため、１レコード毎にログファイルに書き込みが行われます。この数値を上げると、指定した件数毎にログファイルに追加書き込みを行うようにチューニングすることができます（※指定件数に到達するまではキャッシュ上に保持している）。 この機能は、実運用時に高い頻度でのハードディスク書き込みが長期にわたって続いた場合、ハードディスク自体の寿命が短くなってしまうのを軽減する目的で設計されています。

3.時刻フィールドを追加する
ツリーからA01を右クリックしてメニューを表示し、追加／時刻フィールドを選択します。
A01に、F01フィールドが追加されました

| “F01”などのフィールドの名称もプロパティから自由に変更することができます。フィールドのプロパティはMultiviewから対象のフィールドを右クリックすることで表示できます。尚、時刻フィールドのフォーマットの変更もプロパティから行えます（時刻フィールドにミリ秒を含めることなども可能です）。

4.タグフィールドを追加します。
ログに含めるタグをフィールドとして追加します。タグフィールドは時刻フィールドと同様の手順で１件ずつ登録してもOKですが、Multiviewからドラッグ＆ドロップによって一括で登録することもできます。まず、Multiviewにタグを表示し、フィールド追加したいタグを選択状態にします（この例では、SD0000～SD0009までの全タグを選択）。次に、A01にドラッグ＆ドロップしてやります。
ドロップすると、タグフィールド連続追加のダイアログが表示されます。このままの設定で「次へ」をクリックします。

| 「キャッシュ値でログをとる」とは、タグキャッシュの内容によってロギングを行うことを意味します。キャッシュに関する詳細は、「ロガー」を参照してください。

5.次に、フィールド名の作成方法を指定します。ここでは、このままの設定で「完了」をクリックします。
A01に、SD0000からSD0009までのタグフィールドが追加されました

イベントの設定

次に、イベントの設定を行います。一秒ごとに発生する定周期イベントを作成し、先ほど設定したロガーアクションの呼び出しを定義します。

1.定周期イベントを追加する
Panel ServerのツリーからEventを右クリックしてメニューを表示し、追加／定周期イベントを選択します。
新たに“E01”というイベントが追加されました

| イベントの詳細については、「イベント編」を参照してください。

2.イベントのプロパティを設定します。
Multiviewから“E01”を右クリックしてメニューを表示し、プロパティを表示します。
定周期イベントタブを開き、設定が１秒になっていることを確認します（デフォルトが１秒です）。
実行アクションタブを開き、アクション名のコンボボックスから先ほど設定した“A01”アクションを選び、追加ボタンをクリックします。
追加ボタンをクリックすると、リストに登録されます。
これで、“E01”というイベントが１秒周期で発生する度に、“A01”というロガーアクションが実行されます。OKボタンをクリックしてプロパティ画面を閉じ、設定ファイルを保存してください。
以上で設定は完了です。

動作確認

1.Panel Serverをオンライン状態にします（黄色矢印）。
Multiviewにアクションを表示してみて下さい。「完了／要求」の値が１秒周期でカウントアップされていれば、定周期イベントに応じてアクションが正しく実行されています。

2.次に、ロギングによってCSVファイルが生成されていることを確認します。
前述のとおり、ファイル名には年月日が含まれています（“log1-120160909.csv”など）。ファイルが存在していれば、メモ帳などで内容を表示してみてください。以下のようなイメージで時系列毎にアナログ値が書き出されていればOKです。
CSV出力例：

3.動作確認が終わったら、Panel Serverをオフラインに戻します。