経過時間取得

概略

あるビットがONしている時間を知りたい時など、ON時間を計測する方法を紹介します。
この方法を応用してタクトタイムを計測するなどにも利用できます

システム時計を使って計測する方法

ラダー
SW001の立上りで現在時刻をStartTimeに保存します。
その後、SW001の立下りで現在時刻をEndTimeに入れてSUB_DT_DT()命令でEndTimeからStartTimeを引きElapsedTimeに保存します。
時間計測1
ElapsedTimeにはTime型で保存されるので数値型に変換したい場合はTimeToNanoSec()命令で数値に変換してください。
ST
ラダーと同様に処理開始の前にStartTimeに現在時刻を保存して、処理終了で現在時刻とStartTimeの差を経過時間を計測します。

さらに細かくスキャン内で経過時間を計測する方法

プログラムの処理時間(経過時間)をマイクロ秒単位で計測します
ElapsedSeconds
シンボル
ElapsedSeconds
Symbol
入力
StartMicroSecCnt ULINT 計測開始時のフリーランニングカウンタの値
出力
Out LREAL 計測時間(秒) 例:0.000012

ダウンロード

SampleElapsedSeconds.csm2