AF SDKにてデータの欠損を判断する方法

下記(a)(b)(c)について、アプリ側(プログラム)で判断する方法をご教示ください。

現在のデータ取得方法として、PI-SDKのPIPoint.RecordedValues()を使用していますが

データが取れなければ結果0件が返ってくるのみなので、他の手段等で、指定時間における

データのステータス(ex.不定)を判断できればと思います。

 

(a)PIシステム側から中継PC(またはDCS)からデータ取得中の状態

 

(b)PIシステム側で中継PCからデータは取れていない状態だが、

 

  中継PCではキューイング中。

 

(c)PIシステム側で中継PC(またはDCS)からデータを取れておらず

 データ欠損している状態(完全に欠損しているとき)

 

【システム構成】

 

 DCS<-中継PC(APIノード)<-PIシステム<-アプリ

 

【開発環境】

 

 VB.NET 2010

 

 PI-AF-SDK 2012
Parents
  • PI-SDKのPIPoint.RecordedValurs()と記載がありますが、AF SDKをご使用ということでよろしいでしょうか?

    AF SDK 2012は古いのでバージョンアップをお勧めいたします。

     

    さて、今回、中継PCのステータスを取得したいとのことですので、InterfaceマシンがBufferingしているのか、サービスが動作しているのかなどを確認したいのだと思います。

    これらはパフォーマンスモニタータグやインターフェースのHealthTagにて確認することが可能です。

    (パフォーマンスモニターインターフェースが該当マシンに接続できて値を問題なく返していればパフォーマンスタグは正しい値を収集することができます。)

    たとえばPI Buffer Subsystemのステータスを確認したければ、

    PI Buffered Physical Servers > Total Queued Eventsを見れば、その対象のPI Data Archiveに対する現在のQueueされたイベント数が確認できます。

    タグ作成はPI SMT > IT Points > Performance Counters > Build Tagsからタグ作成が可能です。

    今回はリモートマシンですので、中継PC上のローカルグループ Performance Monitor Usersグループの権限が必要です。

    また、インターフェースが動作しているかどうかはインターフェース側で作成できるHealth TagのHeartBeatタグを利用することが多いです。

    (ICUから作成可能です。PI ICU > UniInt > Health Points)

    DeviceのステータスはDevice Statusタグが利用可能です。あとは無圧縮の収集タグを作成し、値を更新しているか、System Digital State(I/O Timeout など)となっていないか確認するなどが手段としてあります。

     

    これらを実装すればAF SDKにて該当のHealthタグ、Performance Monitor Tagの値を取得して、どのような状態か判断することは可能かと思います。

Reply
  • PI-SDKのPIPoint.RecordedValurs()と記載がありますが、AF SDKをご使用ということでよろしいでしょうか?

    AF SDK 2012は古いのでバージョンアップをお勧めいたします。

     

    さて、今回、中継PCのステータスを取得したいとのことですので、InterfaceマシンがBufferingしているのか、サービスが動作しているのかなどを確認したいのだと思います。

    これらはパフォーマンスモニタータグやインターフェースのHealthTagにて確認することが可能です。

    (パフォーマンスモニターインターフェースが該当マシンに接続できて値を問題なく返していればパフォーマンスタグは正しい値を収集することができます。)

    たとえばPI Buffer Subsystemのステータスを確認したければ、

    PI Buffered Physical Servers > Total Queued Eventsを見れば、その対象のPI Data Archiveに対する現在のQueueされたイベント数が確認できます。

    タグ作成はPI SMT > IT Points > Performance Counters > Build Tagsからタグ作成が可能です。

    今回はリモートマシンですので、中継PC上のローカルグループ Performance Monitor Usersグループの権限が必要です。

    また、インターフェースが動作しているかどうかはインターフェース側で作成できるHealth TagのHeartBeatタグを利用することが多いです。

    (ICUから作成可能です。PI ICU > UniInt > Health Points)

    DeviceのステータスはDevice Statusタグが利用可能です。あとは無圧縮の収集タグを作成し、値を更新しているか、System Digital State(I/O Timeout など)となっていないか確認するなどが手段としてあります。

     

    これらを実装すればAF SDKにて該当のHealthタグ、Performance Monitor Tagの値を取得して、どのような状態か判断することは可能かと思います。

Children