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

マニュアル > サーバ作成ガイド > アクション編 > アクションの機能解説 > アラームサーバ > # アラームコントロールについて |

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

Panel Browserは、Panel Serverに接続してアラーム情報を取得して画面上に表示します。

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

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

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

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

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

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

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

リモートアラームクライアントのリファレンスは、コントロールリファレンスの「リモートアラームクライアント」を参照してください。

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

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

表示方法 | 解説
サマリ表示 | 現在、発生中もしくは確認されていないアラームの一覧が表示されます。アラームが復帰し、かつアラームが確認された場合、一覧から自動的に消えます。常に最新のアラームの状態が表示されます。 表示例１（確認がある場合） 表示例２（確認なしの場合）
ヒストリカル表示 | 指定した期間のアラーム履歴が表示されます。表示後に新しいアラームが発生しても、画面は自動的には更新されません。 表示例1（発生、復帰、確認を別レコードで表示した場合） 表示例2（発生、復帰、確認を１レコードでまとめた場合） 表示例３（確認なしの場合）
リアルタイム表示 | 最新のアラーム履歴が表示されます。新しいアラームが発生するごとに、自動的に画面が更新されます。その他はヒストリカル表示と同じです。 表示例1（発生、復帰、確認を別レコードで表示した場合） 表示例2（発生、復帰、確認を１レコードでまとめた場合） 表示例３（確認なしの場合）

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

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

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

フィールド書式（１列目は必ず[ALARMID]） タイトル, 幅, テキスト表示位置 [, 上書き] フィールド書式（２列目） タイトル, 幅, テキスト表示位置 [, 上書き] ：　：　： フィールド書式（Ｘ列目） タイトル, 幅, テキスト表示位置 [, 上書き]

記述例）アラームID、日時、タイプ（発生／復帰など）、メッセージ、の４列で表示

[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）出力するタグ値の桁数を編集する場合（この例では、小数点以下２桁に固定） NS([CM3],2) 尚、レイアウトの１列目には必ず[ALARMID]を設定する必要があります。
タイトル | グリッドに表示するタイトルです。
幅 | グリッドに表示するフィールドの列幅です。ピクセル単位で指定します。レイアウトの１列目には必ず[ALARMID]を設定する必要がありますが、表示をさせたくない場合は0を指定します。
テキスト表示位置 | グリッドに表示する位置です。下記の３タイプから選択します。 "left" - 左位置 "center" - 中央位置 "right" - 右位置
上書き | AlarmClientTypeが、"SUMMARY"," HISTORICAL2"," HISTORICAL3",の場合、アラームが発生した後、そのアラームが復帰、確認した時に、同一レコードの内容を書き換えるかどうかを指定します。 T - アラームの状態が変化するごとに、メッセージを上書きする。 F -発生時のメッセージを保持する（アラームの状態が変化しても変えない）。 例） {[TYPE] == "new"}{[CM0]},{[TYPE] == "recover"}{[CM1]},{[TYPE] == "ack"}{[CM2]}, {[TYPE] == "change"}{"変化しました"},{default}{"---"} 上記例では、発生、復帰、確認ごとにメッセージを切り替えています。そのような場合、上書きをTにする必要があります。 AlarmClientTypeが、"HISTORICAL1"の場合、１つのアラーム発生に対し、復帰、確認、変化が別々のレコードに表示されます。よって、上書きの設定は必要ありません。

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

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

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

アラームの表示方法には、サマリ表示、ヒストリカル表示、リアルタイム表示の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による日時の範囲を指定することができます。画面から検索条件として日時を入力し、指定した範囲のアラーム履歴を表示することができます。

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

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

| アラームの履歴は内部的に発生、復帰、確認、変化ごとに1レコードずつ作成されCSVやODBCデータベースへ保存されています。フィルタは、その各レコードを対象として絞り込まれます。AlarmClientTypeが、SUMMARY、HISTORICAL2、HISTORICAL3を指定した場合、まず各レコードを対象として絞り込まれた後、表示上１行として表示されます。その際、絞り込まれた結果にて発生のレコードが存在しない場合は、画面には表示されません。