イベントの基本

<< Click to Display Table of Contents >>

マニュアル > サーバ作成ガイド > イベント編 >

イベントの基本

イベントとは?

イベントは、「定周期イベント」「定刻イベント」「タグイベント」の3種類があります。イベントにアクションを登録することで、指定の時間もしくは条件が成立した時に登録してあるアクションを呼び出します。

 

イベントの追加は画面左側ツリーの「イベント」アイコンから行います。

c_event_0001

 

 

イベント

イベントには以下の種類を選択できます。


イベント名

説明

定周期イベント

一定周期間隔でアクションを実行します。

定刻イベント

指定した時刻にアクションを実行します。

タグイベント

タグ値を評価し、条件が成立した時にアクションを実行します。

値変化、値一致、不一致、大なり、小なりなどの条件を組み合わせます。

 

定周期イベント

 

c_event_0002

 

定周期イベントは、一定間隔で発生するイベントです。時間からミリ秒単位までの周期を指定できます。すべて「0」と設定すると、可能な限り速い周期でイベントを発生させます。

 

オンライン直後に即座に初回のイベントを発生させたい場合には「初回のイベントを即座に発生させる」をチェックします。

 

例)1分と設定した場合

「初回のイベントを即座に発生させる」ON時:オンライン直後、即座に発生します。

「初回のイベントを即座に発生させる」OFF時:オンラインから1分経過した時に発生します。

 

 

定刻イベント

 

c_event_0003

 

設定した時刻になったときに発生します。

 

 

attention

定刻イベントの「毎」設定は順番に設定を行う必要があるため注意が必要です。

 

例)

順に設定がされている場合はOKです。
c_event_0004

 

順に設定がされていない場合はNGです。
c_event_0005

※「毎日」、「毎時」にチェックは入っているが「毎月」の設定が行われていないためNG

 

 

タグイベント

タグイベントは、タグの値を評価して、条件の成立時に発生するイベントです。

タグイベントは、様々な個所からアクションを実行するためのトリガとして利用することができます。

 

c_event_0006

 

 

以下はタグイベントの利用例です。

 

PLCのラダーからアクションを実行
ラダーからイベントのトリガとしたいPLCデバイスの値をON/OFFさせ、そのデバイスとリンクしたタグ値の評価によってイベントを発生させることで、PLCからアクションを実行させることができます。例えば、PLCのラダーロジックからレポート印刷やメール送信などのトリガをかけることができます。また、システムプロパティを用いることで、PLCと通信不能になった時に自動的にメールを送信するなどの応用も可能です。

 

SCADA/VisualBasic/Excelなどからアクションを実行
OPC/DDE/IPLinkなどのインターフェースを経由して、外部からタグの値を更新することによってアクションのトリガを発生させることができます。

 

Panel Browserの画面操作からアクションを実行
Panel Browserの画面からタグの値を更新し、タグ値の変化によるアクションのトリガをかけることができます。

 

スクリプトVer1アクションで実行
計算結果によりアクションを実行させたい場合はスクリプトアクションを用います。

 

 

タグイベントは様々な値の条件をもとにイベントを発生させることができます。

 

 


 

単一条件

 

タグの値が変化した、ビットがONした、値が100以上になった等、1つの条件でイベントを発生させる場合は、以下の2箇所を設定します。

まず、「タグ」の部分に、イベントを判定する元となるタグをタグパスで指定します(「U01.F01.T01」など)

。そして、どのような条件によってイベントを発生させるのかを、「比較条件」に指定します。

「タグの値が変化した」を選択した場合、タグが変化する度にイベントが発生するため、比較値を定義する必要はありません。

その他の条件(「タグ値=比較値」など)を選択した場合には、比較値を設定して下さい。

なお、ビットタグの場合、比較値には「TRUE/FALSE」もしくは「1/0」を設定することができます。

 

c_event_0050

 

 

hint

タグ名に「U01!Alive」などのシステムプロパティも設定できます。「Alive」プロパティは、PLCとの通信が出来なくなったときにイベントを発生させたい場合に便利です。

 

 


 

複数条件

 

■HI/LO条件


c_event_0051

HI/LO条件でイベントを発生させる場合は、上の3箇所を設定します。

必ず、LO側よりHI側の比較値の方が大きな値となるように設定して下さい。

例)HI「10」LO「5」のとき

変化前の値

変化後の値

イベント

8

11

発生する

11

15

発生しない

15

11

発生しない

11

8

発生しない

8

6

発生しない

6

3

発生する

3

1

発生しない

1

11

発生する

11

1

発生する

 

■HI_HI/HI/LO/LO_LO条件


c_event_0052

HI_HI/HI/LO/LO_LO条件でイベントを発生させる場合は、上の3箇所を設定します。

必ず、LO_LOからHI_HIになるにつれ比較値を大きい値にして下さい。

 

なお、右の例では、4→6及び21→19の変化でイベントが発生しています。

これは、LOLO(またはHIHI)からの復帰という意味のイベント発生ではなく、LOLOの後にLOが発生した(HIHIの後にHIが発生した)ことを表すイベントです。

従って、LOから正常値への復帰(またはHIからの復帰)については、イベントは発生しません。

 

例)HIHI「20」HI「15」LO「10」LOLO「5」のとき

変化前の値

変化後の値

イベント

1

4

発生しない

4

6

発生する

6

9

発生しない

9

11

発生しない

11

14

発生しない

14

16

発生する

16

19

発生しない

19

21

発生する

21

24

発生しない

24

21

発生しない

21

19

発生する

19

16

発生しない

16

14

発生しない

14

11

発生しない

11

9

発生する

9

6

発生しない

6

4

発生する

4

1

発生しない

1

21

発生する

21

1

発生する

1

16

発生する

16

9

発生する

 

■自由定義


c_event_0053

「=」「<>」と「>」「<」「>=」「<=」を混在させる場合は、「=」「<>」を最初の方の行に記述して下さい。

また、「>」「<」「>=」「<=」に関しては、最初の方の行の比較値が一番大きく、最後の方の行が一番小さい値となるように定義して下さい(つまり、「HIHI/HII/LO/LOLO条件」のように「>」「>=」が先になり、「<」「<=」は後になります)。

例)EQ1「タグ値=1」EQ2「タグ値=3」

変化前の値

変化後の値

イベント

0

1

発生する

2

発生しない

2

3

発生する

3

4

発生しない

3

1

発生する

 

 

hint

タグの値がある範囲(例えば50以上100以内)になったときにイベントを発生させたい等、複数の条件を組み合わせてイベントの発生を定義したい場合には、スクリプトVer1アクションと組み合わせてイベントを定義するようにします。

 

 


 

初期状態を無視

 

「初期状態を無視」をチェックすると、オンライン直後の値が条件を満たしていてもイベントを発生させません。一度条件からはずれて、再び条件を満たしたときにイベントを発生させます。

例えば、条件を「タグ値=比較値」で値「1」としたとき、オンライン直後のPLCの値が1になっていたとしてもイベントは発生しません。一度1以外の値になった後、再び1になったときに発生します。

 

c_event_0054

 

 

hint

「初期状態を無視」はイベントのシステムプロパティ「Enable」を「1」にした直後の動作にも適用されます。

 

 


 

手動発生

 

「手動発生」をチェックすると、値が条件を満たしていてもイベントを発生させません。

ただし、イベントが発生した時の値は保持されます。この設定は、スクリプト「E01!Fire」でイベントの発生のタイミングを手動で制御したいときにチェックします。

 

c_event_0055

 

 

hint

「手動発生」は主にロガーアクションのイベント型ログで使用されます。それ以外の用途で使用される場面は少ないかもしれません。

ロガーアクションでイベント手動発生によるロギングを行う方法は、「ロガーアクション詳細マニュアル」の、「イベント型ログフォーマットで定周期にログをとる」の記述を参照下さい。

 

 


 

スクリプトVer1との組み合わせ

 

タグイベントでは定義しきれないような複雑な条件でイベントを発生させたい場合には、スクリプトVer1アクションとの組み合わせによって実現します。

具体的には、判定結果を格納する判定用のタグを専用で1つ用意しておき、条件の判定をスクリプトVer1によって行い、判定結果を判定用タグに代入します。そのタグがTRUEの時にタグイベントを発生させるようにします。

 

例)「U01.F01.T02」が50以上100以下の範囲に入ったら

U01.F01.T01  =  U01.F01.T02 > 50 And U01.F01.T02 < 100

 

例)「U01.F01.T02」と「U01.F01.T03」の平均値が100を超えたら

U01.F01.T01  = (U01.F01.T02 + U01.F01.T03 ) / 2 > 100

 

この場合、条件比較を行うスクリプトVer1アクションの呼び出しは、それ用に作成した定周期イベント又は定刻イベントで定期的に計算を行うようにします。

又は、計算の右辺で使用されているタグを元にタグイベントを作成し、各タグの値が変化した時にイベントが発生するようにしておき、評価に用いるタグが変化する都度スクリプトVer1が実行されるようにします。

 

 

hint

通常、上例のような判定用タグは、仮想デバイスもしくはメモリデバイスで作成します。メモリデバイスの数値タグでは小数点を扱う事もできます。