<< Click to Display Table of Contents >> マニュアル > 監視システム構築ガイド > 主要機能の構築 > アラーム > アラームのカスタマイズ > DBを利用したアラーム構築 > DBを利用したアラームでアラームのフィールドを追加する |
概要
アラームサーバーには、アラームメッセージに任意のタグの値を含めて保存する機能が用意されています。
ここでは、アラームサーバー(ODBC)を使用して、数値型(整数、浮動小数点)、文字型、ビット型などの、様々なデータ型のタグ値をアラームメッセージに含めてデータベース上に保存する方法について説明します。
尚、ここでは例として、SQLServer2017を用いたサンプルをもとに説明します。
サンプルのダウンロード
このページで紹介されている作成例には、サンプルが用意されています。
サンプルは以下からダウンロードすることができます。
尚、上記のサンプルには、各DBMS用のテーブル作成DDL(alarm.sql)が含まれています。サンプルDDLは以下のフォルダに格納されています。
(プロジェクトフォルダ)\DDL_sample
\myslq\alarm.sql
\oracle\alarm.sql
\postgresql\alarm.sql
\sqlserver\alarm.sql
サンプルの説明
■タグの設定
サンプルのサーバ設定ファイルには、以下のタグが登録された状態となっています。
仮想デバイスユニット:U01
フォルダ:F01からF06までの6つのフォルダを登録
タグ:以下のタグを登録
タグ名 |
デバイス |
タイプ |
サイズ |
内容 |
U01.F01.M0000~M0007 |
内部リレー |
ビット |
1ビット |
アラーム発生条件として使用。 |
U01.F02.T00~T07 |
データレジスタ |
アスキー |
10ワード |
タグコメントのテスト用として(アスキー20文字)。 |
U01.F03.T00~T07 |
データレジスタ |
整数バイナリ |
1ワード |
タグコメントのテスト用として(16ビット整数)。 |
U01.F04.T00~T07 |
データレジスタ |
倍精度浮動小数点 |
4ワード |
タグコメントのテスト用として(64ビット浮動小数)。 |
U01.F05.T00~T07 |
内部リレー |
ビット |
1ビット |
タグコメントのテスト用として(ブール(※タグがビットの場合))。 |
U01.F06.T00~T07 |
データレジスタ |
整数バイナリ |
1ワード |
タグコメントのテスト用として(ブール(※タグが数値の場合))。 |
尚、サンプルのPanel Serverの設定では、本サンプルの動作確認を簡単に行えるように、画面下部に「Monitor01」としてタグモニタビューが設定されています。
(テスト用タグモニタ)
■アラームマスタの設定
サンプルのアラームマスタファイルには、以下の内容が登録されています。
U01.F01.M0000からM0007までのタグがアラームの発生条件です。タグコメントとしてCM3:TAGからCM7:TAGを定義し、文字列、整数、浮動小数、ブール(ビットタグ)、ブール(数値タグ)の5種類のデータ型のタグを参照するように設定されしています。
■アラームデータ用のデータベースの準備
本サンプルを動作させるには、アラームデータを格納するためのテーブルをデータベース側に用意する必要があります。
まず、データベースを1つ用意してください。データベースの名称は自由に付与することができます。
以下は、SQLServer Management Studioのオブジェクトエクスプローラーで表示した例です。以下の例では「ALARMDB2」という名称のデータベースが作成されている状態です。
尚、アラームサーバー(ODBC)アクションは、必ずしもアラームデータ用に専用のデータベースを用意する必要はありません。接続先のデータベースは、アラームデータを格納するテーブル以外の他のテーブルが混在する環境であっても特に問題はありません。
■データベースにアラームデータ用のテーブルを用意する
データベースを作成したら、アラームデータを格納するためのテーブルを登録してください。
テーブル名は自由に付与することができますが、今回は例として「ALARM」という名称のテーブルが作成されているものとします。
ALARMテーブルには以下のフィールドを作成してください。尚、サンプルに含まれているテーブル作成DDL(alarm.sql)を使用してテーブルを作成することもできます(※以下はSQLServerの例です)。
フィールド名 |
データ型 |
キー設定 |
NULL許容 |
補足 |
ALARMDATE |
datetime |
PRIMARY KEY |
しない |
アラームのレコードが生成された日時です。 |
SECINDEX |
int |
PRIMARY KEY |
しない |
SECINDEXフィールドには、アラームが同一時刻で発生した場合に、同一時刻内にて0からはじまるインデックス番号が割り当てられます。データベースを使用する場合、本フィールドを定義するようにしてください。 |
ALARMID |
varchar(255) |
(なし) |
しない |
アラームIDです。 |
ALARMTYPE |
varchar(7) |
(なし) |
する |
アラームのタイプを表す文字列が格納されます。 |
ALARMACK |
tinyiny |
(なし) |
する |
アラームの確認状況のステータスが格納されます。 |
ALARMRECOVER |
tinyiny |
(なし) |
する |
アラームの復帰状況のステータスが格納されます。 |
ALARMCONDID |
smallint |
(なし) |
する |
アラームの発生復帰状態を表す数値が格納されます。 |
ALARMSTATE |
tinyiny |
(なし) |
する |
アラームの[STATE]フィールドのステータスを保存します。ステータスは以下の0~3の数値です。 0 : 復帰、確認済 1 : 発生、確認済 2 : 復帰、未確認 3 : 発生、未確認
|
ALARMCM3 |
varchar(255) |
(なし) |
する |
アラームのタグコメント[CM3:TAG]を保存するための、文字型のフィールドを用意します。 このフィールドにはタグコメント3で指定された文字列タグのアスキー文字が格納されます。 |
ALARMCM4 |
int |
(なし) |
する |
アラームのタグコメント[CM4:TAG]を保存するための、数値型のフィールドを用意します。 このフィールドにはタグコメント4で指定された数値タグの数値が格納されます。 |
ALARMCM5 |
float |
(なし) |
する |
アラームのタグコメント[CM5:TAG]を保存するための、数値型のフィールドを用意します(浮動小数点)。 このフィールドにはタグコメント5で指定された数値タグの浮動小数点の数値が格納されます。 |
ALARMCM6 |
varchar(5) |
(なし) |
する |
アラームのタグコメント[CM6:TAG]を保存するための、文字型のフィールドを用意します。 このフィールドには、タグコメント6で指定されたビットタグのブール値として「TRUE」または「FALSE」という文字列が格納される事を想定し、最大5文字の文字型としています。 |
ALARMCM7 |
tinyiny |
(なし) |
する |
アラームのタグコメント[CM7:TAG]を保存するための、数値型のフィールドを用意します。 このフィールドには、タグコメント7で指定された数値タグでブールを表す場合の「0」または「1」の値が格納されます。 |
以下は、SQLServerで表示した例です。
本サンプルには、SQLServer以外のDBMS用のテーブル作成DDL(alarm.sql)が含まれています。実際に使用するDBMSでテーブル定義を行う際の参考としてください。 |
データベース側のテーブルで定義するフィールドのデータ型の名称(例えば「INT」「INTEGER」「NUMBER」「FLOAT」「DOUBLE」など)は、DBMSの種類により差があります。アラームサーバー(ODBC)のようにあらかじめテーブルを手動で作成しておく必要のあるアクションでは、接続するDBMS側で適切なテーブル定義を行う必要があります。接続可能なDBMS毎の推奨データ型については、Appendixの「データベースとの接続設定」を参照してください。 |
PostgreSQLを使用したデータベースに接続する場合、データベース側に用意するテーブルでは、テーブル名、フィールド名ともに全て小文字で定義する必要があります。 |
■アラームサーバー(ODBC)アクションの設定
Panel Serverに登録されているアラームサーバー(ODBC)アクションは以下のように設定されています。
各設定とも、標準プロジェクトに登録されているアラームサーバーCSVアクションと同等の設定内容となっています。
左記は基本設定タブです。
アクション名は「Alarm」としています。
アラームフォルダには以下が設定されています。
server_data\alarm
アラームのメンテナンスを行うにチェックを入れ、日数を指定します。
ここでは例として、3650日、10000レコードと設定しています(※保存日数等の設定については、実際の環境にあわせて適切な値を設定してください)。
|
|
左記はODBC設定タブです。
データベースの選択から、接続するDBMSを選択してください。本サンプルでは「SQLServer」が選択されています。 もし、SQLServer以外のDBMSと接続したい場合は、目的のDBMSを選択してください。
データソースの設定は、実際にサンプルを動作させる環境にあわせて再度設定してください。尚、データソースの設定手順は、各DBMSとも共通的な操作により行うことができます。ODBC設定については、アクションの共通設定の「ODBC設定」の記述を参照してください。
テーブル名には、アラームで使用するテーブルを指定します。ここでは「ALARM」としています。
|
PostgreSQLを使用したデータベースに接続する場合、データベース側に用意するテーブルでは、テーブル名、フィールド名ともに全て小文字で定義する必要があります。従って、以下で指定するテーブル名は小文字で指定するようにしてください。
(PostgreSQLの例)
|
左記はアラームマスタタブです。
マスターファイルには以下が設定されています。
server\alarm\master.csv
|
左記は保存項目タブです。
本サンプルでは、以下の項目が追加されています。
データベース上のテーブルに作成するフィールド名は、本設定の定義と一致している必要があります。具体的には、「DB Field」の列に表示されている名称とテーブルのフィールド名を一致させる必要があります。尚、データベース上のフィールド定義と左記の定義内容の並び順については、特に一致している必要はありません。
|
PostgreSQLを使用したデータベースに接続する場合、データベース側に用意するテーブルでは、テーブル名、フィールド名ともに全て小文字で定義する必要があります。従って、保存項目タブで指定するDBFieldに指定するフィールド名には、全て小文字で指定するようにしてください。
(PostgreSQLと接続する場合の保存項目の設定例)
尚、保存項目の設定では、デフォルトで表示されているフィールド名(グレーの部分)は、ダブルクリックする事で編集可能な状態になります。
|
■アラームサマリ、アラーム履歴画面のレイアウト設定
本サンプルのアラームサマリおよびアラーム履歴画面では、アラームの動作を確認しやすいように、AlarmLayoutプロパティに以下のようなレイアウトが設定されています。アラームレイアウトのフィールド名の詳細を知りたい場合は、「フィールド名について」を参照してください。
尚、各画面の右側の表示が見切れて表示される場合は、グリッド表示のスクロールバーを左右にずらす事で表示することができます。
(アラームサマリ画面)
AlarmLatoutプロパティ(アラームサマリ画面)
[ALARMID] ALARMID, 80, center
[ACK] ACK, 50, center
[RECOVER] RECOVER, 50, center
[TYPE] TYPE, 50, center,T
[STATE] STATE, 50, center,T
[DATE] DATE, 200, center,T
[DATESTR] DATESTR, 150, center,T
[ARDATESTR] ARDATESTR, 150, center
[OCCURDATESTR] OCCURDATESTR, 150, center
[ACKDATESTR] ACKDATESTR, 150, center
[RECOVERDATESTR] RECOVERDATESTR, 150, center
[CM0] CM0, 100, center
[CM1] CM1, 100, center
[CM2] CM2, 100, center
[CM3] CM3, 100, center
[CM4] CM4, 100, center
[CM5] CM5, 100, center
[CM6] CM6, 100, center
[CM7] CM7, 100, center
|
(アラーム履歴)
AlarmLatoutプロパティ(アラームサマリ画面)
[ALARMID] ALARMID, 80, center
[ACK] ACK, 50, center
[RECOVER] RECOVER, 50, center
[TYPE] TYPE, 50, center
[STATE] STATE, 50, center
[DATE] DATE, 160, center
[DATESTR] DATESTR, 200, center
[ARDATESTR] ARDATESTR, 150, center
[OCCURDATESTR] OCCURDATESTR, 150, center
[ACKDATESTR] ACKDATESTR, 150, center
[RECOVERDATESTR] RECOVERDATESTR, 150, center
[CM0] CM0, 100, center
[CM1] CM1, 100, center
[CM2] CM2, 100, center
[CM3] CM3, 100, center
[CM4] CM4, 100, center
[CM5] CM5, 100, center
[CM6] CM6, 100, center
[CM7] CM7, 100, center
|
動作確認
アラームデータを格納するためのデータベースの準備および、ODBC設定が完了した状態で、Panel Serverの画面上部にあるオンライン(黄矢印)をクリックしてください。
続いて、Panel Editorの画面上部にあるブラウザ実行アイコン(緑矢印)をクリックし、Panel Browserを呼び出します。
Panel Browserが起動しました。
本サンプルのアラームマスタには、以下のようなアラームが設定されています。
また、Panel Serverの画面の下部には、あらかじめ以下のようなタグモニタ(Monitor01)が登録されています。
上記を踏まえ、タグモニタからタグの値を操作し、アラームを発生させてみましょう。
まず、タグモニタから以下のタグの値を変更します(これらのタグはタグコメントとして保存されるタグです)。
•U01.F02.T00 ・・・ABC ※文字を入力する
•U01.F03.T00 ・・・123
•U01.F04.T00 ・・・150.25
•U01.F05.T00 ・・・TRUE
•U01.F06.T00 ・・・1
続いて、タグモニタから、アラーム発生条件のタグをTRUEに変更します。
•U01.F01.M0000 ・・・TRUE
すると、アラームが発生し、アラームサマリに以下のようなアラームが表示されます。
アラームサマリ画面のアラームグリッドの右側に、上記で編集した各タグの値がタグコメントとして表示されることを確認してください。尚、表示が見切れている場合はグリッドをスクロールさせてみてください。
また、データベース側に以下のようなアラームデータ(発生)が保存されていることを確認してください。特に、データベース上のタグコメントのフィールドに、上記で設定したタグの値が格納されている事を確認してください。
続いて、タグモニタから以下のタグの値を変更してください(先ほどの値と異なる値となるようにしてください)。
変更例:
•U01.F02.T00 ・・・DEF
•U01.F03.T00 ・・・456
•U01.F04.T00 ・・・165.43
•U01.F05.T00 ・・・FALSE
•U01.F06.T00 ・・・0
上記の変更後、タグモニタからアラーム発生条件のタグをFALSEに戻します。
•U01.F01.M0000 ・・・FALSE
アラームサマリのM0000のアラームが復帰し、確認待ちの状態になりました。
また、データベース側に以下のようなアラームデータ(復帰)が保存されていることを確認してください。データベース上のタグコメントのフィールドには、上記で変更したタグの値が格納されています。
続いて、アラームサマリ画面から「一括確認」ボタンをクリックしてください。
すると、アラームサマリから確認済のアラームが消去されます。
データベース側には以下のようなアラームデータ(確認操作)が保存されていることを確認してください。
アラーム履歴画面を表示すると、以下のような履歴データが表示されます。
タグコメント部分を見ると、以下のように表示されます。データベース側に保存されている値と一致している事を確認してください。