機器の起動停止の回数および時間の取得について

機器A運転状況タグが"OFF"→"ON"になった場合のタイムスタンプおよび指定した起点時間からの回数を取得したいと考えています。

どのような関数の組み合わせが良いか教えていただきたいです。

 

IF('機器A運転状況'="ON")  Then(TimeStamp('機器A運転状況')) Else NoOutput()

という式を書きましたが、連続運転状態ではON状態の出力が出続けるため、上手く希望する値を取得できませんでした。

 

よろしくお願いいたします。

  • If条件を PrevVal('attribute','*') = "Off" and 'attribute'= "On"  とするのではいかがでしょうか?

    他にも”HasChanged”や”HasValueChanged"という値が変化したことに対してboolean型で返す関数や

    ”SecSinceChange"という関数もありますので使えるかもしれません。

  • タグがある状態であった時間を取得する関数は以下です。

    TimeEq(tag, starttime, endtime, value)

     

    例:)昨日1日の間で、ポンプのステータスのタグ「PumpStatus」が「On」であった秒数を取得。

    TimeEq('PumpStatus', 'y', 't', "On")

     

    また、タグがある状態になった時刻を取得する関数は以下です。

    FindEq(tag, starttime, endtime, value)

     

    例:)昨日1日の間で、初めてポンプのステータスのタグ「PumpStatus」が「On」になった時刻を取得。

    FindEq('PumpStatus', 'y', 't', "On")

     

    ちなみにご希望の演算はどのアプリケーション(DataLink, ProcessBook, AF or etc...)で実施をお考えでしょうか?

  • PrevVal('attribute','*') = "Off" and 'attribute'= "On"の条件で起動停止時間を取得できました。

    ありがとうございます。

  • 参考になる関数を提示していただき、ありがとうございます。

    現在は主にAFを使い分析を進めておりますので、今後もよろしくお願いいたします。