PItoPIにおける、データの意図的な間引きについて

ソースのDAから貧弱なターゲットのDAに対する、データの周期を減らした値をPItoPIで送るにはどうすればよいでしょうか。

 

現在、こちらで運用しているPItoPIの運用ルールとして、ソースとターゲットの間ではcompressionもexceptionも許可せずに、

両DAのイベント数が等しくなるような設定で運用を行っております。

今のところはターゲットのDAには豊富なストレージと高速な回線を用意することで問題なく連携できておりますが、

今後、容量の限られたDAに対してデータを送付することが来ることが予想されます。

 

よって以下の点質問いたします。

・もともと1秒周期だったデータを、2秒周期や3秒周期にしてPItoPIで送信することはできないか。

・ターゲットのDAのタグにはcompressionやexceptionを無効化しているが、これを有効化することは推奨されないか。

 

 

ご回答お待ちしております。

  • 返事が遅くなり、大変申し訳ございません。

     

    ・もともと1秒周期だったデータを、2秒周期や3秒周期にしてPItoPIで送信することはできないか。

    はい可能です。Location4を利用すると、scan classを設定できます。Location4=0ではイベントトリガーになりますが、Location4=1,2,3,...では登録されたscan classを利用します。つまり、すべてのデータを取得するではく、2秒ごとに、3秒ごとに新しい値を取得します。

     

    ・ターゲットのDAのタグにはcompressionやexceptionを無効化しているが、これを有効化することは推奨されないか。

    scan classの設定を更新する分かりに、ターゲットPI ServerにソースPI Serverより厳格な圧縮を利用するとデータの量を減らしながら、精度を残せます。

     

     

    圧縮の定義のチューニングするために、パートナーのアプリケーションがあります。

    私は自身で利用したことがなく、おすすめできないですが。

    http://patterndiscovery.com/products/compressioninsight/

  • > ・もともと1秒周期だったデータを、2秒周期や3秒周期にしてPItoPIで送信することはできないか。

     

    上記のルフェーブルの回答のように、Location4を設定することで、ソース側のデータを決まった周期で取得することはできますが、

    これは、あくまでも取得周期の設定となり、データの周期を変えて(間引いて)収集するものではありません。

    つまり、もともと1秒周期のデータを、PItoPIのLocation4にて5秒周期のスキャンクラスのタグで収集した場合、5秒おきに、5つのデータが収集されることになります。

    そのため、Location4の設定では、データを間引くことはできません。

     

    > ・ターゲットのDAのタグにはcompressionやexceptionを無効化しているが、これを有効化することは推奨されないか。

     

    ルフェーブルからの回答の通り、ターゲット側にcompressionやexceptionを設定することにより、ターゲット側に格納されるデータの量を減らすことができます。

    このように設定されているお客様もいらっしゃいます。

    ソース側のデータとターゲット側のデータが全く同じである必要が無いのであれば、有用な設定であると考えます。

  • ルフェーブル様、渡辺様

     

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

    今回行いたかったことは、渡辺様に補足いただいた「更新周期だけでなくデータ自体も間引く」ということになります(質問がわかりづらくすみません)。

    ご提案いただいたように、compressionやexceptionを有効化することで消費されるHDDの容量や通信帯域を節約できるかと思います。

     

    ちなみに若干違う圧縮方法となるのですが、もともと1秒周期で格納されていたデータを一律で1分周期などでソースのDAから取得することは可能でしょうか?

    こちらで使用している別案件のデータ出力ツールなどでは、データの精度を落として容量を節約する際には、センサーから上がってくるデータの保存周期を

    1秒から10秒,1分などで調整可能なのですが、似たような機能はPItoPIでも実現可能でしょうか?

     

    お手数ですが、ご回答のほどよろしくお願いいたします。

     

    以上

  • 渡辺様

     

    ご回答いただきありがとうございます。

    追加でお伺いした質問は、個人的な疑問点でした。

    周期で無差別に間引くより、PIによる間引きのほうが品質が良いというのはおっしゃる通りだと思います。

     

    本件これでクリアになりました。

    現状このような通信を行うケースは予定されておりませんが、

    いずれ容量の圧縮を余儀なくされた場合、ご提案いただいた方法で対応したいと思います。

     

    本件ありがとうございました。

     

    以上

  • > ちなみに若干違う圧縮方法となるのですが、もともと1秒周期で格納されていたデータを一律で1分周期などでソースのDAから取得することは可能でしょうか?

     

    あいにくではございますが、現在のところPItoPIインターフェースでは、ソースDAから取得したデータを異なる周期に変更してターゲットに送信することはできません。

    これは、PItoPIインターフェースが、異なるPI Data Archive間のデータをコピーする目的のために用意されているということと、

    周期を変更するより、ExceptionおよびCompressionでデータを圧縮したほうが、圧倒的にデータの精度を保てるためです。

    また、異なるPI System間のアセットモデルとデータを同期するPI System Connectorについても仕様を確認しましたが、現在のところ、ご要望の機能はご用意がありませんでした。

     

    どうしてもターゲット側のデータを一定間隔にしたいということであれば、

    ・ソース側のPI Data Archiveに、長い時間間隔でデータをもつ別のタグを作り(Analysis機能などで一定時間おきに書き出し)、そのタグをPItoPIで送信する

    ・カスタムアプリで、一定間隔のデータをソース側から取り出し、ターゲットに送信する

    ということは考えられるかとは思います。