PIサーバーへのタグ登録時にデータを縦持ちにできますか

テクニカルサポートご担当者様

 

PIサーバーへのタグ登録は、タグ登録名一つ=1カラム、という感じで、その1カラムをタグ登録としてカウントをしているのが現状です。

 

BIツールや、データ前処理の工夫から、データを縦持ち(Long Data)で持っている方が良いことが多く、現在はPIタグを呼び出したピボットテーブル状のものを、変換して使ったりしておりますが、元のPIデータをLong Dataにして、3-4タグで呼び出せると、効率的になりますので、実施したいと思っております。

 

つまり、現在しているデータ蓄積、呼び出しはピボットテーブル状(Wide Data)でしており

 

   datetime                        a.tag   b.tag   c.tag   d.tag   e.tag   f.tag   ...

1   2020/11/30 00:00:00   1         10      100      0.1      200      150  

2   2020/11/30 00:01:00   2         9        101      0.5      100      160     

3   2020/11/30 00:02:00   3         11        98      0.3      150      155     

4   ....

 

のようになっております。

これを格納から3タグでまとめてしまいたいと思っております。配置変更は可能なのでしょうか。

 

datetime                        parameter.name         values

2020/11/30 00:00:00     a.tag.param.name      1

2020/11/30 00:00:00     b.tag.param.name      10

2020/11/30 00:00:00     c.tag.param.name      100

2020/11/30 00:00:00     d.tag.param.name      0.1

......

 

内部関数で、受け取ったデータにDescriptor情報をparameter.nameタグに付与して、同じ時間で値が変わるという構成ができないかなと思っております。呼び出し時にparameter.nameタグに対してフィルタをかけるという方法です。

 

まずは可否を教えていただき、対応方法をお聞きしたく。

どうぞよろしくお願いします。

  • Tetsuya Koyama様

    ご投稿ありがとうございます。

     

    まず、データ格納のタイミングでDescriptionを使用したデータの縦持ちはできません。

    DescriptionはPI Pointの属性となり、データ(イベント)の属性ではないためです。

    同一タイムスタンプに複数のデータを格納する事は可能ですが、順序は保証されないため、期待通りの動作とはならないと思います。

     

    データ取得側で縦持ちの形で取得する方法はまだあると思います。

    使用されているツールはPI DataLinkでしょうか?

  • お返事ありがとうございます。

    縦持ちでのデータ蓄積はできない、ということ承知しました。

     

    DataLinkもそうですが、ROSIsoft.zipをRから使用しております。本サイトのブログを参考にしております。

     

    その中で、指定した時刻の複数のタグデータを一気にPIから引き出したいときに、とても時間がかかっており、何かやれることはないかなと思っており、縦持ちになって、カラム数が限定されれば速くなるかなと思っております。DatLinkも縦持ちで早くできそうかなとも思い。

     

    現在は、GetPointValue()で、時刻とタグを入れ替えて、ひとつづつ呼び出しております。

    サンプリングする該当時間が連続ではないですので、この方法をしております。

     

    縦持ちデータの話から、Rの話になってしまいましたが、ご知見がございましたら、教えていただきたく。

  • 立て続けにすみません。

    示唆をいただきました「同一タイムスタンプに複数のデータを格納する事は可能ですが、順序は保証されないため」については、試してみたいと思います。順序はデータ加工側で合わせられますので、問題ありません。

     

    こちらはCustomer Portalの方で問い合わせると良いでしょうか。

    こちらでの質問と、Customer PortalでのCaseの使い分けがまだわかっておりません。教えていただけましたらと。

  • Tetsuya Koyama様

    ご投稿ありがとうございます。

     

    PI Data Archiveに対するデータ取得はなるべく一つの関数で取得していただくのがデータ取得を高速化させるポイントとなります。

    PI Pointを配列で渡して一括でデータを取得する方法もありますので、こちらもご検討いただければと思います。

     

    また、弊社テクニカルサポートとPI Squareとの使い分けについてですが、PI Systemをご利用いただいているお客様であれば弊社テクニカルサポートをご利用いただけます。こちらはご契約上、タイムリーにご返信する事になっています。あわせてお問い合わせ内容についても第三者の目に触れない形となります。