# イベントログ

トレーニング > 応用編 > ロギング機能 > # イベントログ |

イベントログの作成

ここでは、タグイベントを利用して、CSVファイルへのイベントログ出力を行います。今回は、PLCデバイスの代わりに仮想デバイスを参照します。仮想デバイスの「特殊リレー」（SM）は、自動的にON/OFFが変化してくれるため、ロギングのテストなどで値の変化をシミュレートさせることができます。今回はこの信号のON/OFFを設備の動作信号に見立ててイベントログを作成します。

ログファイルのフォーマット例は以下のようなイメージになります。

時刻 | タグ名 | タグコメント | メッセージ | タグ値
2016/9/11 07:50:00 | U01.F01.SM0004 | モーターA | モーターA起動信号 | TRUE
2016/9/11 07:50:01 | U01.F01.SM0005 | モーターB | モーターB起動信号 | FALSE
2016/9/11 07:52:05 | U01.F01.SM0006 | バルブA | バルブA全閉 | TRUE
・・・ | ・・・ | ・・・ | ・・・ | ・・・

上記の場合、左の列から、時系列フィールド、タグ名、タグコメント、メッセージ、信号状態を出力します。これらの列構成の定義はロガーアクションの設定で行います。行の単位が一件のログのレコードであり、タグイベントの検出条件に応じて１行のレコードを出力します。

準備作業（タグ登録）

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

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

タグ | デバイス種別 | 備考
“SM0004”から”0007”までの連番 | SM （特殊リレー） | 4点の連続したタグを作成し、“モーターA起動信号”などの任意のコメントを設定する（このコメントもログに出力します）。

SM0004は１秒毎に自動的にON/OFFを繰り返します。同様に、SM0005は２秒、SM0006は３秒、SM0007は５秒毎に変化します。

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

ロガーアクションの設定

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

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

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

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

4.イベントフィールドを追加する（タグ名）
ツリーからA01を右クリックしてメニューを表示し、追加／イベントフィールドを選択します。新たに“F02”フィールドが追加されます。
F02フィールドのプロパティを表示し、イベントフィールドのフィールドタイプを、“タグ名”に設定します。

5.イベントフィールドを追加する（タグコメント）
ツリーからA01を右クリックしてメニューを表示し、追加／イベントフィールドを選択します。新たに、“F03”フィールドが追加されます。
F03フィールドのプロパティを表示し、イベントフィールドのフィールドタイプを、“タグコメント”に設定します。

6.イベントフィールドを追加する（メッセージ）
ツリーからA01を右クリックしてメニューを表示し、追加／イベントフィールドを選択します。新たに、“F04”フィールドが追加されます。
F04フィールドのプロパティを表示し、イベントフィールドのフィールドタイプを、“メッセージ”に設定します。
このメッセージに表示する内容は、後ほど行うイベント側の設定によって自由に指定できます。

7.イベントフィールドを追加する（タグ値）
ツリーからA01を右クリックしてメニューを表示し、追加／イベントフィールドを選択します。新たに、“F05”フィールドが追加されます。
F05フィールドのプロパティを表示し、イベントフィールドのフィールドタイプを、“値”に設定します。

イベントの設定

次に、イベントの設定を行います。タグの値が変化する度に発生するタグイベントを作成し、先ほど設定したロガーアクションの呼び出しを定義します。

1.イベントにフォルダを追加します。
Panel ServerのツリーからEventを右クリックしてメニューを表示し、追加／フォルダを選択します。イベントの下に“F01”フォルダが新たに作成されます。

| タグイベントはフォルダ無しでも追加できますが、複数件のイベントを登録する際には、まずはフォルダを作成してその下にイベントを登録するようにすると管理がしやすくなります。

2.タグイベントを追加します。
タグイベントは一件ずつ登録してもOKですが、Multiviewからドラッグ＆ドロップによって一括で登録することもできます。まず、Multiviewにタグを表示し、フィールド追加したいタグを選択状態にします（この例では、SM0004～SM0007までの全タグを選択）。次に、先ほど作成したF01フォルダにドラッグ＆ドロップします。
ドロップすると以下のダイアログが表示されます。ここではデフォルトのまま“次へ”をクリックします（後ほど、個々のイベント毎に条件を設定します）。

| どのような条件の時にイベントを発生させるかは、タグイベントの設定によって行います。デフォルトの「タグ値が変化した」では、タグ値が変化する都度イベントが発生します。例えばタグ値>100といった数値比較や、タグ値がOFFからONになった時だけ発生、といった設定にすることも可能です。

3.続いて、ダイアログが以下の状態になります。ここでも“次へ”をクリックしてください（メッセージ等の設定は後ほど行います）。
続いて、ダイアログが以下の状態になります。このまま“完了”をクリックしてください。
イベントフォルダに、SM0004からSM0007が追加されました

4.イベントのプロパティを設定する（発生条件、メッセージ文言など）
イベントの発生条件は、個々のタグイベントのプロパティで設定することができます。タグイベントのプロパティを表示し、タグイベントタブを選択して下さい。デフォルトでは「タグ値が変化した」になっています。ここで、例えばタグの値がOFFからONになった時のみ（FALSEからTRUEになった時）ロギングしたい場合には、下記のような設定にします。
イベントログに出力するメッセージは、個々のタグイベントに対して設定していきます。タグイベントのプロパティからイベント属性タブを選択して、メッセージに出力したいメッセージ文言を指定します。個々のイベントのメッセージに、“モーターA起動信号”、“ポンプA異常”など、任意の文言を指定してみて下さい。

5.実行するアクションを設定する
イベントが発生した時に実行するアクションを設定します。ここでは、イベントを束ねているフォルダ“F01”に対してアクションを設定します。ツリーからイベントのF01フォルダを右クリックしてプロパティを表示してください。ダイアログから実行アクションタブを選択し、アクション名に先ほど作成した“A01”を指定して追加ボタンをクリックします。
一覧にA01が追加されました
これで、“F01”に含まれるイベントのいずれかが発生する度に、“A01”というロガーアクションが実行されます。OKボタンをクリックしてプロパティ画面を閉じ、設定ファイルを保存してください。
以上で設定は完了です。

| この様に、アクションは個々のイベントに対しても設定できますが、フォルダに対して一括で設定することも可能です。その他、イベントの有効／無効の切り替えなどもフォルダ単位で一括して行えます。

動作確認

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

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

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