アラームコントロールについて

<< Click to Display Table of Contents >>

マニュアル > 監視システム構築ガイド > 主要機能の構築 > アラーム > 画面ライブラリを利用しない独自アラーム画面の作成 >

アラームコントロールについて

アラームコントロールとは

アラームサマリや履歴表示などのクライアント側の処理には、アラームコントロールを利用します。

 

アラームコントロールは以下の2種類があります。

 

1)リモートアラームグリッド(RemoteAlarmGrid)

2)リモートアラームクライアント(RemoteAlarmClient)

 

リモートアラームグリッドコントロールは、アラーム情報をグリッドで表示するためのコントロールです。アラームサーバーに接続してアラーム情報の表示を行います。画面ライブラリのアラームサマリ、アラーム履歴や、フレームライブラリの標準フレームワークに含まれる各種アラーム画面では、リモートアラームグリッドを使用しています。

 

一方、リモートアラームクライアントコントロールは、リモートアラームグリッドから表示機能を除いたコントロールです。グリッド表示を行わないだけで、アラームサーバーとアラーム情報の授受を行うための各種機能を利用することができます。このコントロールは、スクリプトを使用して表示やアラーム処理を独自で行いたい場合(例えば、アラーム警報音を鳴らす等)に使用される上級者向けのコントロールです。

 

 

hint

画面ライブラリの各種アラーム画面、イベント画面は、リモートアラームグリッドコントロールを用いて構築されています。

 

hint

リモートアラームグリッド、リモートアラームクライアントに関する詳細については、コントロールリファレンスの「リモートアラームグリッド」「リモートアラームクライアント」を参照してください。

 

 

アラームグリッドの表示様式

アラームの表示方法には、サマリ表示、ヒストリカル表示、リアルタイム表示の3通りの方法があります。いずれの表示様式についてもリモートアラームグリッドにより表示が可能であり、アラームサーバーへの接続要求処理の内容に応じた表示様式が採用されます。

 

表示方法

解説

サマリ表示

現在、発生中もしくは確認されていないアラームの一覧が表示されます。アラームが復帰し、かつアラームが確認された場合、一覧から自動的に消えます。常に最新のアラームの状態が表示されます。

 

表示例1(確認がある場合)

c_action_0254

 

表示例2(確認なしの場合)
c_action_0255

 

ヒストリカル表示

指定した期間のアラーム履歴が表示されます。表示後に新しいアラームが発生しても、画面は自動的には更新されません。

 

表示例1(発生、復帰、確認を別レコードで表示した場合)

c_action_0256

 

表示例2(発生、復帰、確認を1レコードでまとめた場合)

c_action_0257

 

表示例3(確認なしの場合)

c_action_0258

 

リアルタイム表示

最新のアラーム履歴が表示されます。新しいアラームが発生するごとに、自動的に画面が更新されます。その他はヒストリカル表示と同じです。

 

表示例1(発生、復帰、確認を別レコードで表示した場合)

c_action_0259

 

表示例2(発生、復帰、確認を1レコードでまとめた場合)

c_action_0260

 

表示例3(確認なしの場合)

c_action_0258

 

 

 

アラームグリッドのレイアウト設定

アラーム表示のレイアウト設定は、リモートアラームグリッド(RemoteAlarmGrid)のAlarmLayoutプロパティで行います。以下はAlarmLayoutプロパティで設定するレイアウトの書式です。AlarmLayoutプロパティは複数行のテキストとして記述し、レイアウトの1列目には必ず[ALARMID]を設定する必要があります。

 

アラームレイアウト書式)

フィールド書式(1列目は必ず[ALARMID])

タイトル, 幅, テキスト表示位置 [, 上書き]

フィールド書式(2列目)

タイトル, 幅, テキスト表示位置 [, 上書き]

 : : :

フィールド書式(X列目)

タイトル, 幅, テキスト表示位置 [, 上書き]

 

記述例)アラームID、日時、タイプ(発生/復帰など)、メッセージ、の4列で表示

[ALARMID]

AlarmID, 60,center

[DATESTR]

日時,120,center

[TYPEJP]

タイプ,120,center

[CM0] & [CM1]

メッセージ, 250, left

 

 

アラームレイアウト書式の各定義項目の仕様は以下のとおりです。

 

項目

解説

フィールド書式

表示したいフィールドです。フィールドは「フィールド名について」の仕様に従ったフィールド名を指定します。単純にフィールド名を指定する以外に、演算式を用いて複数のフィールドを組み合わせて表示したり、条件に応じて表示するフィールドを切り替えたりすることができます。演算式で使用できるオペレータや関数は「演算式構文」に基づきます。

 

例1)複数列を合成する場合

[TYPESTR] & ":" & [CM0] & [CM1]

 

例2)条件により出力するメッセージを変える場合

{[TYPE] == "new"}{[CM0]},{[TYPE] == "recover"}{[CM1]},{[TYPE] == "ack"}{[CM2]},

{[TYPE] == "change"}{"変化しました"},{default}{"---"}

 

例3)出力するタグ値の桁数を編集する場合(この例では、小数点以下2桁に固定)

NS([CM3],2)

 

尚、レイアウトの1列目には必ず[ALARMID]を設定する必要があります。

タイトル

グリッドに表示するタイトルです。

グリッドに表示するフィールドの列幅です。ピクセル単位で指定します。尚、レイアウトの1列目には必ず[ALARMID]を設定する必要がありますが、アラームIDを画面上に表示したくないような場合は、幅に「0」を指定します。

テキスト表示位置

グリッドに表示する位置です。以下の3タイプから選択します。

"left" - 左位置

"center" - 中央位置

"right" - 右位置

上書き

AlarmClientTypeが、"SUMMARY"," HISTORICAL2"," HISTORICAL3",の場合、アラームが発生した後、そのアラームが復帰、確認した時に、同一レコードの内容を書き換えるかどうかを指定します。

 

T - アラームの状態が変化するごとに、メッセージを上書きする。

F -発生時のメッセージを保持する(アラームの状態が変化しても変えない)。

 

例)

{[TYPE] == "new"}{[CM0]},{[TYPE] == "recover"}{[CM1]},{[TYPE] == "ack"}{[CM2]},

{[TYPE] == "change"}{"変化しました"},{default}{"---"}

 

上例では、発生、復帰、確認ごとにメッセージを切り替えています。そのような場合、上書きをTにする必要があります。

 

AlarmClientTypeが、"HISTORICAL1"の場合、1つのアラーム発生に対し、復帰、確認、変化が別々のレコードに表示されます。よって、上書きの設定は必要ありません。

 

 

hint

アラームの状態が変化するごとに、メッセージを変更したい場合は、上書きオプションに「T」を指定してください。なにも指定しないとデフォルトで「F」になり、発生時のメッセージが保持されて表示されます。

 

hint

本コントロールの仕様として、レイアウトの1列目には必ず[ALARMID]を設定する必要があります。もし、要件的にアラームグリッドにアラームIDを表示させたくない場合は、幅の指定を0にすることで非表示にできます。

 

[ALARMID]

AlarmID, 0,center

 : : :

 

 

 

アラームサーバーへの接続要求処理

アラームの表示方法には、サマリ表示、ヒストリカル表示、リアルタイム表示の3通りの方法があります。表示したい様式に応じて、アラームコントロールからアラームサーバーに対する以下の接続要求メソッドを使い分けて呼び出す必要があります。

 

SubscribeSummaryメソッド ・・・サマリ表示のための接続要求を行う。

 

SubscribeHistoricalメソッド ・・・ヒストリカル表示のための接続要求を行う。 

 

SubscribeRealtimeメソッド ・・・リアルタイム表示のための接続要求を行う。

 

ほとんどの場合において、接続要求メソッドの呼び出しは、接続を行うリモートアラームグリッドコントロールのOnInitializeイベント内に記述します。一方で、Panel Serverとの切断/再接続を考慮して接続を行いたいような場合にはリモートアラームグリッドのOnLoginイベント内に記述します。

 

各メソッドの詳細については、コントロールリファレンスの「リモートアラームグリッド」を参照してください。

 

 

アラームフィルタと日時範囲指定について

SubscribeSummary/SubscribeHistorical/SubscribeRealtimeメソッドにてアラーム表示を行う際に、フィルタを指定することで表示するアラームを絞り込むことができます。例えば、重要度が高いアラームのみ表示したり、グループ1のアラームのみ表示したりする場合に利用します。

 

例)コメント1が"Line2"でかつコメント2が10以上のアラームのみ表示したい

[CM1] == "Line2" && [CM2] >= 10

 

 

例)コメント1に"異常"という文字が含まれるアラームのみ表示したい

IsLike([CM1], "%異常%")

 

また、SubscribeHistoricalメソッドではStartTime、EndTimeによる日時の範囲を指定することができます。画面から検索条件として日時を入力し、指定した範囲のアラーム履歴を表示することができます。

 

 

hint

演算式で使用できるオペレータや関数は「演算式構文」に基づきます。特にIsLikeメソッドは類似検索をしたい場合に便利です。IsLikeについてはルートメソッドを参照下さい。

 

hint

SubscribeHistoricalメソッド 及び SubscribeRealtimeメソッドでは、取得する最大レコード数を指定することができます。但し、ここで指定するレコード数は、フィルタ適用前の最大レコード数になります。従って、フィルタとレコード数を同時に指定した場合、指定した件数と表示されたレコード数が異なる結果となる場合があります。