属性値の限界値超過、ASF SDKでの異常判別について

PI-DA、PI-AFの属性値に設定可能な数値の限界値、またそれらのAF SDKでの参照、変更についてお聞きしたいことがございます。

 

まず、型をInt32に定義したタグAを作成し、そのタグを参照するよう属性A[rpm]を設定しました。

 

公式のリファレンスによるとInt32の範囲は、Int32:-2,147,483,648~2,147,483,647とあり、

 

その下限値(-2,147,483,648)をPI System Explorerにて属性Aに設定したところ、エラー発生しRange Overとなりました。

 

(普通のInt32であれば、0x80000000が下限であるが、0x80008000が下限である様子(0x80008001以下が格納できずにRange Overになる))

 

上記の事象が起こる理由が分からないのですが、属性の型や単位など、要因があるのでしょうか。

 

また現状、属性値の参照、属性値への設定をアプリからAF SDKにて行っており、上記現象の回避方法として、Element、EventFrameのIsGoodを使用して判定し、エラーとしているのですが、この対処方法は適切なのでしょうか。

 

AF SDKによるもっと別の評価方法があればご教示いただけないでしょうか。
Parents
  • Toshimitsu Tsuyoshi

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

     

    Rickからの返信の通り、PI Data Archive側の制約により格納できない値があります。

    今回のご要望であれば精度を優先し、Double、Float64での定義が良いかと思います。

     

    Event FramesのIsGood関数を使用して判断しているとの事でしたが、こちらは値が登録された事を確認するという事でしょうか?

    (登録に失敗するとPI Pointの値にシステムステータスが入り、それをIsGood関数で検知?)

     

    使い方としては問題ありませんが、点数が多いと多数のEvent Frameが作成される事となりますので、

    定期的に不要なEvent Frameは削除していただければと思います。

Reply
  • Toshimitsu Tsuyoshi

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

     

    Rickからの返信の通り、PI Data Archive側の制約により格納できない値があります。

    今回のご要望であれば精度を優先し、Double、Float64での定義が良いかと思います。

     

    Event FramesのIsGood関数を使用して判断しているとの事でしたが、こちらは値が登録された事を確認するという事でしょうか?

    (登録に失敗するとPI Pointの値にシステムステータスが入り、それをIsGood関数で検知?)

     

    使い方としては問題ありませんが、点数が多いと多数のEvent Frameが作成される事となりますので、

    定期的に不要なEvent Frameは削除していただければと思います。

Children
No Data