# CSVログのファイル名を動的に変更する

マニュアル > サーバ作成ガイド > アクション編 > アクションの応用 > ロガー > # CSVログのファイル名を動的に変更する |

概要

CSVファイルでのロギングで、ログファイルのファイル名をランタイム中に目的に応じて変更しながらロギングを行いたい場合があります。例えば下記のような画面です。

▪ワーク、段取り番号ごとにログのファイル名を変更したい

▪外部アプリケーションからの設定指示でファイル名を指定したい

▪PLCのロジックによってファイル名を指定したい

ここでは、上記のような場面を想定して、ランタイム中にログファイルのファイル名を動的に変更する方法について解説します。この例では、SD0000～SD009までのデータを、ワーク番号ごとにファイル名を変更して保存します。

具体的には、U02.F01.T01を文字列タグとして定義し、このタグの内容をファイル名として使用します。通信によってPLCからタグの内容を取得すれば、同様の処理方式によってPLCのラダーによるファイル名の制御が可能となります。また、このタグの内容をVisualBasicやSCADA等の外部アプリケーションからIPLinkやOPC/DDE経由で書き換える事によっても、ファイル名の制御が可能となります。

なお、この例では、データログのタイミングとしてU02.F01.T02（ビットタグ）を定義し、TRUEに変化した時にSD0000からSD0009までのデータをロギングします。

WORK01.txt

時刻 | SD0000 | ・・・ | SD0009
2003/1/1 10:12:00 | 0 | ・・・ | 11
・・・ | ・・・ | ・・・ | ・・・
2003/1/1 10:12:02 | 5 | ・・・ | 11

WORK02.txt

時刻 | SD0000 | ・・・ | SD0009
2003/1/1 10:12:02 | 12 | ・・・ | 22
・・・ | ・・・ | ・・・ | ・・・
2003/1/1 10:12:10 | 23 | ・・・ | 22

WORK03.txt

時刻 | SD0000 | ・・・ | SD0009
2003/1/1 10:12:10 | 14 | ・・・ | 33
・・・ | ・・・ | ・・・ | ・・・
2003/1/1 10:12:15 | 16 | ・・・ | 33

この機能のサンプルは、以下からご利用頂けます。

設定手順

タグの設定

1.データ収集のためのタグ「U01.F01.SD0000」～「U01.F01.SD0009」を設定します。

2.ファイル名のためのタグ「U02.F01.T01」とデータ取得トリガのためのタグ「U02.F01.T02」を設定します。
「T01」は文字列タグとして、20ワードのアスキータイプとして設定します。

アクションの設定

1.ロガーアクション「A01」を追加し、時刻フィールド「F01」及び「SD0000～SD0009」のタグフィールドを追加します。

2.ここで、ファイル名の「拡張」として「ファイル名にタグ値を付加する」を選択し、「タグ名」として「U02.F01.T01」を指定してください。

イベントの設定

1.タグイベントとして「U02.F01.T01」を追加します。このイベントはロギング処理のためのものではなく、ログファイル名の変更をアクションに通知するためのものです。「U02.F01.T01」が変化した時に（すなわち、ファイル名の文字列が変更された時）、アクション名「A01」、パラメータ「SETFILENAME」を実行します。パラメータ「SETFILENAME」を指定することにより、ロガーアクションはファイル名の変更を認識します（なお、この呼び出しではロギングは行われません）。

2.タグイベント「U02.F01.T02」を追加し、実行アクションに「A01」を指定します。この設定により、「U02.F01.T02」がONになったときに「A01」が実行されます。

解説

イベントの実行アクションの定義で「SETFILENAME」パラメータを指定すると、そのタイミングでログファイルのファイル名を変更することができます。このサンプルの場合「U02.F01.T01」の文字列が変化したとき、つまりファイル名が変化したときに、ログファイルのファイル名を変更しています。動作を確認するには、適当な文字を「U02.F01.T01」に設定後、「U02.F01.T02」をTRUEにしてみて下さい。

ファイル名を変更したい場合は「U02.F01.T01」に異なるファイル名を再設定した後に、再び「U02.F01.T02」をFALSEからTRUEへ変更する事によって、新しいファイル名によってロギングが行われます。

| ファイル名が設定されていない状態の場合、ログファイルは保存されません。 上記の例では、「U02.F01.T01」が空白文字のまま「A01」「SETFILENAME」を実行したとしても、ファイル名は設定されません。