# データベースへのロギング

トレーニング > 応用編 > ロギング機能 > # データベースへのロギング |

データベースへのロギングの作成

ここでは、定周期イベントを利用して、データベースへの１秒周期でのロギングを行います。仮想デバイスの特殊レジスタ（SD） 及び 特殊リレー（SM）の値を、SQL Serverで作成したデータベース上のテーブルに対してODBC経由でロギングを行います。

ログのフォーマット（テーブル）は以下のようなイメージになります。

F01 | SD0000 | SD0001 | SM0006 | SM0007
2016/9/9 20:50:00 | 12 | 1 | 0 | 1
2016/9/9 20:50:01 | 22 | 25 | 1 | 0
2016/9/9 20:50:02 | 57 | 165 | 1 | 1
・・・ | ・・・ | ・・・ | ・・・ | ・・・

準備作業（タグ登録）

まずは、Panel Serverで設定ファイルを新規作成し、ロギング対象とするタグを登録して下さい。

1.Panel Serverにタグを登録します。
Panel Serverを起動し、以下のような仮想デバイスとタグを追加してください。
ユニット名： “U01”　・・・仮想デバイス
フォルダ名： “F01”
登録するタグ：

タグ | デバイス種別 | 備考
“SD0000”,”SD0001” | SD（特殊レジスタ） | 2点のタグを作成する
"SM0006","SM0007" | SM（特殊リレー） | 2点のタグを作成する

2.設定ファイルを保存します。
タグの登録が終わったら、サーバ側の設定ファイルを一旦保存します。以降の作業でも、引き続きこの設定ファイルを使って作業を行います。

3.SQL Serverデータベースを作成する
SQL Serverで新規データベースを作成し、ロギングを行うテーブルを作成します。各名称は任意ですが、ここでは以下の設定に合わせて作成します。

項目 | 備考
データベース名 | TRAINING
テーブル名 | LOGTABLE テーブルレイアウト “F01”、“SD0000”など、テーブルレイアウトはログ設定のフィールド名と合わせる必要があります。また、フィールドのデータ型も、ログに書き込まれるデータの型に合わせて設定する必要があります。

| 接続するSQL Serverへ接続可能なODBCドライバーがインストールされている必要があります。事前にご確認下さい。

ロガーアクションの設定

タグを登録したら、ロガーアクションの設定を行います。ロガーアクションの設定では、ログ出力するデータベースの設定（ODBCの設定）、ログデータ項目とするフィールドの定義を行います。

1.ロガーアクションを追加する
Panel Serverのツリーから、Actionを右クリックしてメニューを表示し、追加／アクションを選択します。
アクションの追加ダイアログが表示されるので、「ロガー（ODBC）」を選択してOKボタンをクリックします。

2.時刻フィールドを追加する
ツリーからA01を右クリックしてメニューを表示し、追加／時刻フィールドを選択します。
A01に、F01フィールドが追加されました

3.タグフィールドを追加する
これまでの手順と同様に、Multiviewからドラッグ＆ドロップにより一括登録します。但し、ログフィールドの名称はデータベース側に設定したフィールド名称と同じにする必要があるので注意が必要です。
ドロップすると、タグフィールド連続追加のダイアログが表示されます。このままの設定で「次へ」をクリックします。
フィールド名の作成方法を指定します。ここでは、このままの設定で「完了」をクリックします（※フィールド名は後から変更します）。
フィールドが追加されました。ここで、自動生成されたフィールド名を、データベースに設定したフィールド名と同じ内容に変更します。
“U01_F01_SD0000”などを、“SD0000”に変更します。全てフィールド名を変更すると以下の形になります。

| 複数のフィールドのプロパティを連続的に変更したい場合には、適用ボタンによって変更を適用することにより、ダイアログを表示したままで、次のフィールドの設定を連続的に変更することができます（プロパティダイアログを表示したままで、Multiviewから対象を再度選択します）。OKボタンによる確定操作は、その都度ダイアログが閉じてしまうため、連続作業を行う上で非効率です。

4.ロガーアクションのODBC設定を行う
データベースとのODBC接続設定は、ロガーアクションのプロパティから設定します。
A01アクションのプロパティを表示し、ODBCタブを表示します。画面からデータソース名の「...」ボタンをクリックします。
ODBC設定画面が表示されるので、「選択」ボタンをクリックします。
データソースの選択ダイアログが表示されるので、新規作成ボタンをクリックします。
データソースの新規作成ダイアログが表示されるので、次へをクリックします。
接続するデータベースに合わせて、セットアップするドライバを選択します。ここでは「SQL Server」を選択して次へをクリックします。SQL Serverへ接続する為のODBCドライバがインストールされていない場合、設定前にインストールして下さい。
完了ボタンをクリックします。
次に表示される画面から、データソース名を入力します（ここでは“LOGDB”と入力します）。また、SQL Serverが稼働するPCのホスト名かIPアドレスを指定します。次へボタンをクリックします。
データベースへ接続する為のユーザパスワードを設定します。設定後、次へをクリックします。
デフォルトデータベースを選択します。設定後、次へをクリックします。
完了ボタンをクリックします。
確認画面が表示されるので、「Test...」ボタンをクリックして接続を確認します。「... SUCCESSFULLY!」が表示されたら、接続可能状態です。「OK」ボタンで設定を保存します。
データソースの選択ダイアログに新たに追加したデータソースが表示されたのを確認し、OKボタンをクリックしてダイアログを閉じます。
表示がアクションのプロパティ画面に戻ります。ロギングするテーブル名に先ほど設定したテーブルが設定されていることを確認し、テーブルを選択ボタンをクリックします。
SQL Serverへのログイン確認が表示された場合、ID/Passwordを入力してOKをクリックします。
ロギングを行う対象のテーブルを選択して、OKボタンをクリックしてダイアログを閉じます。
選択したテーブル名が設定されていることを確認し、OKボタンをクリックしてダイアログを閉じます。

イベントの設定

次に、イベントの設定を行います。一秒ごとに発生する定周期イベントを作成し、先ほど設定したロガーアクションの呼び出しを定義します。

1.定周期イベントを追加する
Panel ServerのツリーからEventを右クリックしてメニューを表示し、追加／定周期イベントを選択します。
新たに“E01”というイベントが追加されました

2.イベントのプロパティを設定します。
Multiviewから“E01”を右クリックしてメニューを表示し、プロパティを表示します。
定周期イベントタブを開き、設定が１秒になっていることを確認します（デフォルトが１秒です）。
実行アクションタブを開き、アクション名のコンボボックスから先ほど設定した“A01”アクションを選び、追加ボタンをクリックします。
追加ボタンをクリックすると、リストに登録されます。
これで、“E01”というイベントが１秒周期で発生する度に、“A01”というロガーアクションが実行されます。OKボタンをクリックしてプロパティ画面を閉じ、設定ファイルを保存してください。
以上で設定は完了です。

動作確認

1.Panel Serverをオンライン状態にします（黄色矢印）。
Multiviewにアクションを表示してみて下さい。「完了／要求」の値が１秒周期でカウントアップされていれば、定周期イベントに応じてアクションが正しく実行されています。

2.次に、ロギングによってデータベースにログが生成されていることを確認します。
データベースからLOGTABLEのデータを確認します。
LOGTABLEのデータ確認結果例：

3.動作確認が終わったら、Panel Serverをオフラインに戻します。