ファンクションブロックをつくってみた
タイトルの通り、信号のON時間(MAX,MIN)を計測するファンクションブロックをつくってみました。
以下のように動作します。
使い方:時間を測定したい信号をON→OFFさせる。OFF時にMAXとMINが更新されます。
出力される時間の単位は[10ms]です。
初期化したい場合はリセット信号を入力します。
ローカルラベル
コピー用
i_Signal ビット VAR_INPUT FALSE [入力]信号
i_bReset ビット VAR_INPUT FALSE [入力]リセット信号
o_MaxTime ダブルワード[符号なし]/ビット列[32ビット] VAR_OUTPUT 0 [出力]処理時間 最大値(10ms)
o_MinTime ダブルワード[符号なし]/ビット列[32ビット] VAR_OUTPUT 0 [出力]処理時間 最小値(10ms)
o_CurrentTime ダブルワード[符号なし]/ビット列[32ビット] VAR_OUTPUT 0 [出力]処理時間 現在値(10ms)
mMeasureTime ダブルワード[符号なし]/ビット列[32ビット] VAR 0 計測用_処理時間(10ms)
mInit ビット VAR FALSE 初期化フラグ
mProcessing ビット VAR FALSE 処理中
mProcessingEnd ビット VAR FALSE 処理終了
プログラム本体
最後に
もっとこうした方が良い、機能追加したほうが良いなどアドバイス頂けると嬉しいです。
次はSTで記述してみます。