ログの開始/停止を制御する

<< Click to Display Table of Contents >>

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

ログの開始/停止を制御する

概要

タグイベントによってロギングの開始と停止を制御する設定方法について解説します。例として、月曜から金曜日の8時から18時までの間のみ、1秒周期のログを取ります。また、サンプルの応用例としてロギングのサンプリングレートをダイナミックに切り替える方法も併せて紹介します。

 

c_action_logger_0055

 

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

 

設定手順

タグの設定

1.ロギング対象とする仮想デバイスタグ「U01.F01.SD0000」~「U01.F01.SD0009」を設定します。c_action_logger_0056
 
 

2.ログの開始・停止のトリガのためのメモリデバイスタグ(時刻ビットタグ)「U02.F01.T01」を設定します。c_action_logger_0057
 
 

3.メモリデバイスの時刻ビットタグには、月曜から金曜日まで、8時0分0秒から17時59分59秒を設定します。
c_action_logger_0058

 

 

 


アクションの設定

1.ロガーアクション「A01」及びスクリプトVer1アクション「A02」を追加します。
 
A01:以下のフィールドを設定します。
・時刻フィールド
・タグフィールド(※「SD0000」~「SD0009」を「A01」へドラックアンドドロップ)c_action_logger_0050
 

2.A02:スクリプト「//Event/E01!Enable = U02.F01.T01」を設定。
c_action_logger_0059
 
 

 


イベントの設定

1.定周期イベント「E01」及びタグイベント「E02」を追加します。
E01:1秒周期とし、実行アクションに「A01」を設定。初期状態を無効にするため、「無効にする」をチェック。
E02:タグに「U02.F01.T01」、比較条件に「タグ値が変化した」、実行アクションに「A02」を設定する。c_action_logger_0060

 

解説

メモリデバイスの時刻ビットタグは、指定した時刻や期間のみONさせることができるビットです。今回の設定では8時から18時までの間ONします。

 

c_action_logger_0055

 

① 8時にON

1.U02.F01.T01がONになるとタグイベント「E02」が発生し、スクリプトVer1アクション「A02」が実行されます。

2.「A02」では「//Event/E01!Enable = U02.F01.T01」の式が実行され、定周期イベント「E01」が有効になり、1秒周期のロギングが開始されます。
この式は「E01」の有効状態を切り替えるためのもので、1の時有効、0の時無効になります。「U02.F01.T01」の状態はこの時ON(1)の状態であるため、「//Event/E01!Enable」には「1」が設定されます。

 

② 18時にOFF

1.U01.F01.T01がOFFになるとタグイベント「E02」が発生し、スクリプトVer1アクション「A02」が実行されます。

2.「A02」では「//Event/E01!Enable = U02.F01.T01」の式が実行され、定周期イベント「E01」は無効となり、ロギングが停止します。

 

 

hint

E01!Enableは、イベントが持つシステムプロパティの一つです。

 

このサンプルの応用例

今回は時刻ビットタグを用いましたが、PLCと通信するタグを「U02.F01.T01」の代わりに用いれば、PLCからのトリガによってロギングの開始・終了を制御することができます。

また、異常状態を検出した時のみ集中的にログを取りたい場合など、ログのサンプリングレートをダイナミックに切り替えたい場合には、高速用の定周期イベント及び低速用の定周期イベントを2つ用意し、それぞれのイベントの有効・無効をスクリプトアクションで切り替えることで実現できます。

 

具体的には、以下例のように設定します。この例の場合、このとき「U02.F01.T01」がONの時高速で、OFFの時低速でログが取られます。

例)

「EVENT_HI」定周期イベント(高速ログ用)

高速用の周期を設定。

初期状態を無効にするため、「無効にする」をチェックする。

実行アクションに「A01」を設定する。

 

「EVENT_LO」定周期イベント(低速ログ用)

低速用の周期を設定。

初期状態を無効にするため、「無効にする」をチェックする。

実行アクションに、上例同様「A01」を設定する。

 

「A02」スクリプトアクション

//Event/EVENT_HI!Enable = U02.F01.T01

//Event/EVENT_LO!Enable = Not U02.F01.T01

 

※「Not U02.F01.T01」のNotとは、True/Falseを反転します。