イベント型ログフォーマットで定周期にログをとる

<< Click to Display Table of Contents >>

マニュアル > サーバ作成ガイド > アクション編 > アクションの応用 > ロガー >

イベント型ログフォーマットで定周期にログをとる

概要

イベント型ログフォーマットで定周期にロギングを行うための方法について解説します。この方法によって、以下のようなニーズを解決することができます。

 

一般型ログのログフォーマットでは、フィールド数はロギング対象とするタグ数に依存します。従って、大量なタグ数でのロギングを行う場合、一般型ログではフィールド数が増えます。

 

(一般型ログの場合)

時刻

U01.F01.SD0001

U01.F01.SD0002

・・・

U01.F01.SD0999

2003/1/1 10:12:00

81

163

・・・

1243

2003/1/1 10:12:10

124

1635

・・・

6243

・・・

・・・

・・・

・・・

・・・

 

 

定周期でロギングを行いたいが、何らかの理由でフィールド数を増やしたくないような場合には、スクリプトVer1アクションの利用によって以下のようなイベント型ログフォーマットで定周期にログをとることが可能です。

(イベント型ログフォーマットで定周期にログ出力した場合)

時刻

タグ名

2003/1/1 10:12:00

U01.F01.SD0001

81

2003/1/1 10:12:00

U01.F01.SD0002

163

・・・

・・・

・・・

2003/1/1 10:12:00

U01.F01.SD0999

1243

2003/1/1 10:12:10

U01.F01.SD0001

124

2003/1/1 10:12:10

U01.F01.SD0002

1635

・・・

・・・

・・・

2003/1/1 10:12:10

U01.F01.SD0999

6243

この例では、SD0000~SD0999までを10秒ごとに以下のフォーマットで保存します。

 

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

 

設定手順

タグの設定

1.データ収集のためのタグ「U01.F01.SD0000」~「U01.F01.SD0999」を設定します。
c_action_logger_0102

 

 


アクションの設定

1.ロガーアクション「A01」を追加します。時刻フィールド「F01」及び以下のイベントフィールドを追加します。
 
・F02:フィールドタイプ「タグ名」
・F03:フィールドタイプ「値」
 
c_action_logger_0103
 

2.スクリプトVer1アクション「A02」を追加します。スクリプトに以下を記述して下さい。これにより、A02が実行される都度、F01のイベントが発生します。
c_action_logger_0104
 

//Event/F01!Fire = 1

 

 

 


イベントの設定

1.フォルダ「F01」を作成し、実行アクションに「A01」を設定します。「U01.F01.SD0000」~「U01.F01.SD0999」を選択して、「F01」フォルダにドラックアンドドロップします。タグイベントの連続追加ウイザード(右画面)が表示されるので、「手動発生」をチェックします。この設定により、タグの値が変化してもイベントが発生しなくなります。c_action_logger_0105
 

2.定周期イベント「E01」を追加し、実行アクションに「A02」を設定します(※E01はフォルダ「F01」の中に追加しないこと)。c_action_logger_0106

 

 

解説

イベントフォルダ「F01」内に設定したSD0000からSD0999までの1000個のタグイベントには、すべて「手動発生」がチェックされています。「手動発生」をチェックする事で、タグイベントはタグ値が変化してもイベントが発生しなくなります。一方、スクリプトアクションで設定した以下の式は、フォルダ内のタグイベントを手動で発生させます。

 

 

//Event/F01!Fire = 1

 

 

上のスクリプトは、F01のイベントを発生させます。従って、スクリプトアクションが10秒ごとに呼び出されることにより、10秒周期で「F01」内のすべてのタグイベントが手動で発生します。タグイベントが発生することにより、「F01」で設定した「A01」のロガーアクションが実行され、結果として以下のようなログが行われます。

 

 

c_action_logger_0107

 

 

hint

この例で使用した「E01!Fire」とは、イベントが持つシステムプロパティです。このプロパティを操作する事により、強制的にイベントを発生させることができます。