PI UFL Interfaceで取り込み可能なデータについて

PI UFL Interfaceで、以下のようなCSVファイルを取り込もうとしています。

以下の2パターンですが、「PI Interface Configuration Utility」の「UFLdesigner.exe」の

設定だけで取込できますでしょうか。

それとも何かしらのプログラミングないし、事前にCSVファイルの加工が必要でしょうか。

 

※基本的に、例えばA列にタグ名、B列にtimestamp、C列に値という形式でないと

だめだったような記憶があるので、それ以外のパターンがどこまで可能なのかを知りたいです。

 

1:A列を「timestamp」、B1セルやC1セルの名称を「タグ名」、B,C列の値を「値」として取り込み


pastedImage_0.png.png

 

2:B2セルの日付時刻を「timestamp」、F2セルのアカウント名を「タグ名」、F2セルのログオンIDを「値」として取り込み


pastedImage_1.png.png

  • PI UFL InterfaceのiniファイルをUFLdesigner.exeで設定する方法は以下に記載されています。

    PI UFL Interface iniファイルの作成方法

    1については問題なく対応できます。

    2についてはF2セルのログオンIDを取得するところが少し難しそうです。

    Stringの処理についてはユーザーマニュアルに記載があるので、そちらを使用して試してみてください。

    Substr関数、Length関数、Instr関数などが利用できるかと思います。

    https://livelibrary.osisoft.com/LiveLibrary/content/en/int-ufl-v4/GUID-449A0399-60D8-4647-BE3D-B9DD295C31A4

     

    もう一点UFLdesignerは日本語に対応していません。

    UFLdesignerを使用する場合、iniファイルを作成後、日本語部分が文字化けしているので、作成したiniファイルをメモ帳などで手動で開き、文字化けを修正する必要があります。

  • ご回答ありがとうございます。

     

    2については、難しそうとのことで、別途検討いたします。

    1については対応できるとのことですが、どのようにiniファイルを修正すればよいのか、

    あるいはUFLdesigner.exeでどのように設定すればいいのか、「作成方法」の手順だけでは

    掴みかねています。お手数ですが、具体的な設定方法が分かれば、教えてください。

  • 以下私がテストした結果です。参考にしていただければ幸いです。


    pastedImage_0.png.png

    データのcsvを選択します。

    2 Variablesをクリックし、Fieldを5つ追加します。


    pastedImage_1.png.png

    3 Message Typeにて2つ追加します。

    1行目が,で始まるのであればMSG_1はC1==","でよいかと思います。


    pastedImage_2.png.png

    4 Data ExtractionにてMSG_1,2それぞれ指定します。


    pastedImage_3.png.png


    pastedImage_4.png.png

    5 ActionsにてStoreInPIを指定します。


    pastedImage_5.png.png

    こちらで以下が作成できますが、いかがでしょうか?

    [FIELD]

    FIELD(1).NAME="TimeStamp"

    FIELD(1).TYPE="DateTime"

    FIELD(1).FORMAT="MM/dd/yyyy hh:mm:ss"

    FIELD(2).NAME="TagName1"

    FIELD(2).TYPE="String"

    FIELD(3).NAME="TagName2"

    FIELD(3).TYPE="String"

    FIELD(4).NAME="Value1"

    FIELD(4).TYPE="Number"

    FIELD(5).NAME="Value2"

    FIELD(5).TYPE="Number"

     

    [MSG]

    MSG(1).NAME="MSG_1"

    MSG(2).NAME="MSG_2"

     

    [MSG_1]

    MSG_1.FILTER=C1==","

    TagName1=[",(*),*"]

    TagName2=[",*,(*)"]

     

    [MSG_2]

    MSG_2.FILTER=C1=="*"

    TimeStamp=["(*),*,*"]

    Value1=["*,(*),*"]

    Value2=["*,*,(*)"]

    StoreInPI(TagName1, ,TimeStamp,Value1, , )

    StoreInPI(TagName2, ,TimeStamp,Value2, , )

     

    結果ご連絡いただければと思います。