PI UFL Interfaceは多くのPIユーザーにご使用いただいています。

csvファイルのデータを読み込むことができるこのインターフェースは、

csvファイルに適したiniファイルを作成してから動作させる必要があります。

たとえば、csvファイルに

tag名,Value, Timestampの順で、データが入っている場合、それを読み込めるiniファイルを定義する必要があるわけです。

UFLTag1,51.2,2016/09/15 11:13:40

UFLTag1,50.55,2016/09/15 11:14:40

などがcsvの例です。

 

ここではiniファイルの作成方法を簡易的に説明します。

詳細はPI Interface for Universal File and Stream Loading (PI UFL)のユーザーガイドをご参照ください。

 

PI Systemのインターフェースの設定はPI Interface Configuration Utility (PI ICU)で行います。

Windowsボタン→すべてのプログラム→PI SystemPI Interface Configuration Utility (PI ICU)から起動することができ、以下のような画面が表示されます。

既存のサービスがある場合、画面中央右上のドロップダウンボックスから、設定対象のインターフェースを指定します。

または新規作成の場合、フォルダを開くマークをクリックし、PIPC\Interfaces\PI_UFLより、PI_UFL.bat_newを読み込み、新規作成します。

左側のペインにある「UFL」を選択すると、PI UFL Interfaceの設定が上記のように表示されます。

中央の“Configuration File”で指定されているiniファイルが読み込みの定義情報になります。

右側にある"Launch UFLDesigner.exe"のボタンをクリックすると、

指定しているiniファイルを編集するソフトであるUFLDesignerが起動し、そこで設定ファイルの設定等が可能です。

iniファイル自体はUFLDesignerで構築できますし、エディターでの編集も可能です。

 

UFLDesignerでの設定方法を以下に解説します。(詳細はUFLのマニュアルを参照してください。)

まず、csvデータファイルを読み込みます。

File > Open Data Fileよりcsvファイルを開きます。

つぎに1 Generalをクリックします。

1 Generalを定義したら、2 Variableをクリックします。

ここでは変数を定義します。Tag, Timestamp, Valueなどは定義する必要があります。

csvに合わせて変数の数と、Data Typeを定義します。

iniファイル作成後、テキストエディタから変更もできます。

変数の定義ができたら、3 Message Typesをクリックします。

ここではMessage Typesを定義します。MSGは読み込む行により、処理を分けることができます。

ここでは,で始まる行はMSG_1として処理をし、20*で始まる行はMSG_2として処理するという意味になります。

それぞれのMSGで違った処理を行うことができます。

一番典型的なものはcsvファイルにタイトル行が入っている場合です。以下のようなcsvファイルがあった場合、

Tag,Value,Timestamp

UFLTag1,51.2,2016/09/15 11:13:40

UFLTag1,50.55,2016/09/15 11:14:40

...

MSG_1ではC1=="Tag*"とし、

MSG_2ではC1=="*"とすればよいでしょう。

1行目を読んだときはMSG_1として処理されます。

2行目を読んだときはMSG_1は条件として合致しないため、MSG_2に合致するか確認がされ、

MSG_2は"*"となっているため、必ずヒットします。そしてMSG_2でタグに値を書き込む処理を記載すればよいわけです。

ちなみにMSG_1はタイトル行なので、何も処理する必要はありません。

4 Data Extractionをクリックします。

処理を行いたいMSG番号を選択し、+をクリックします。

区切り文字や、文字の位置を定義します。csvであればDelimitedを選択してNextをクリックです。

Commaを選びます。

変数が上部に表示されるので、Data previewにドラッグアンドドロップします。(<Add variable>というところにドロップできます。)

完了したらFinishをクリックします。

 

5 Actionsをクリックします。

ここではCSVファイルのデータを変数に割り当てます。

これはMSGごとに実施します。

プラスボタンをクリックすると、アクションの定義ができます。

StoreInPIPI Data Archiveのタグに値を書き込みます。

右側の白いボックスに変数が出てきますので、Resultの変数部分にドラッグアンドドロップすることで、変数の割当を行えます。

Addボタンをクリックすることで、アクションを追加できます。

iniファイル作成後の手順は以下となります。

  1. UFLの設定ファイルに合わせたデータが入ったCSVファイルを用意します
  2. そのUFL Interfaceが監視しているフォルダにCSVファイルを移動する。
  3. UFL Interfaceを起動する。

 

なお、データに日本語が含まれている場合、文字化けが発生します。

この場合、iniファイル作成後、テキストエディタで文字化けした文字を正しいものに修正します。

 

PI Interfaceの起動・停止はPI ICUからと、マシンのサービス管理から行えます。

PI ICUから行う場合には以下のボタンを使用します。

(この画面では起動ボタンがグレーアウトされており、インターフェースが起動している状態であることを示しています。)

注意点として、過去データをPI Data Archiveに取り込む際にはArchive Fileが用意されている必要があります。

確認はPI System Management Tool (SMT)から行います。

Windowsボタン→すべてのプログラム→PI SystemPI System Management Toolから左下のペインのOperationArchivesを開くとArchive Fileを確認できます。

このスクリーンショットの場合52個のArchive Fileがあり、200811日からのデータを格納できるようになっていますが、それ以前のデータを格納する場合にはアーカイブを作成する必要があります。

一番下にあるアーカイブファイルのStart Time以降のデータであれば格納できることになります。

Archive Fileの作成には左上のボタンをクリックしてウィザードを使って操作を行います。

左上にある白いフォルダのボタン「create a new archive」をクリックすると以下のウインドウが出ます。

上部のMultiple archives for backfillingを選択し、必要事項を入力します。

変更する部分としてはStart TimeおよびEnd Time (過去データの時間範囲にあわせて)

そしてアーカイブファイルを作る頻度になります。上記設定では1週間に1つのアーカイブファイルを作成するという設定ですが、

Weekの部分を変更し1か月に1つという設定でもよいかと思います。

指定入力後にOKを押すとArchive Fileの作成が開始されしばらくすると準備が完了します。

 

PI ICUからPI UFL Interfaceを起動すれば読み込みが開始されます。

うまく読み込まれない場合、iniファイルで指定したOUTPUT=のパスに作成されたファイルを確認し、

問題を調べます。なお、iniファイルでDEB=4など設定すると、より多くのメッセージが出力されます。

 

また、PI UFL Interfaceをインストールすると、Exampleが入ります。

%PIHOME%\Interfaces\PI_UFL\Example

こちらのサンプルもiniファイルの作成の参考にできます。

PI UFL Connectorのiniファイルもほとんど同様の書式となりますが、

こちらにはUFLDesigner.exeと同じようなGUIツールはないため、手動でiniファイルを作成する必要があります。