シーケンス制御講座

タイマーを使わずに時間を測定する

シーケンス制御講座 中級編 コラム タイマーを使わずに時間を測定する

タイマーを使わずに時間を測定する方法を解説します。わざわざ使う必要はありませんが、このようなこともできるということで紹介しています。参考にしてみてください。別の記事でサイクルタイムを測定しましたが、タイマーのカウントがPLCのメーカーによってカウントアップ方式になったり、カウントダウン方式だったりとバラバラです。このような時にカウントアップ用のタイマーを作ることができます。

サイクルタイムの測定方法

作成日:2025年05月08日
更新日:2025年05月08日


サイクルタイムの測定

タイマーを使ってサイクルタイムを測定する場合、次のようになります。

設備が起動中であれば「M0」がONします。この「M0」の接点を使ってタイマーコイル「T0」を動作させます。「T0」に”H”がついているのは、高速タイマー化しているため0.01秒単位で測定できます。

測定したいタイミングで「T0」の値をデータレジスタなどに転送して「T0」をリセットします。ここではサイクルタイムが「D20」に転送され、その後「T0」は0からカウントされます。[BMOV]命令で「D20」の値をブロック転送しているのは履歴として値を残すためです。

これがタイマーコイルを使った簡単なサイクルタイムの測定方法です。これをタイマーコイルを使わずに測定するにはどうしたらいいでしょうか?

タイマーを使わずに測定

先ほどと同じ回路をタイマーコイルを使わずに作ります。方法はPLCが標準でもっているシステムリレー(特殊リレー)を使います。名前は違いますがどのPLCも持っています。

三菱PLCでは「SM409」というのが0.01秒クロックと呼ばれるリレーで、コイルとして使うのではなく接点として使います。この接点は0.01秒周期でON/OFFを繰り返します。この接点を使い、接点がONした瞬間にデータレジスタの値を1加算します。するとデータレジスタの値が0.01秒に1回加算され、時間を測定することができます。データレジスタの値が103であれば1.03秒ということになります。

そして加算していくのでカウントアップのタイマーができます。キーエンスやオムロンPLCのタイマーコイルは、カウントダウン方式なので、タイマーの値をそのまま転送してもカウントアップまでの残り時間が転送されるため多少演算する必要がありました。この方法であればメーカーを問わず同じように使用できます。

ただしシステムリレーは常時動作しているので、最大で0.01秒の誤差が発生します。実際の回路を見てみましょう。

このようにタイマーコイルの代わりにインクリメント命令を使用します。インクリメント命令は、命令を実行すると指定されたデータレジスタの値に”1”を加算します。これにより「SM409」がONするタイミングで「D0」に”1”を加算していけば0.01秒ごとに「D0」には”1”が加算されていきます。これによって「D0」の値が1000であれば1秒ということになります。そして今回はインクリメント命令を使用しましたが、足し算命令でも大丈夫です。

注意点ですが、インクリメント命令などの加算命令はパルスで実行してください。「SM409」は0.01秒周期でON/OFFしますが、ONしている0.005秒あります。このONしている間命令を実行するとPLCのスキャン分カウントしてしまいます。例えばPLCのスキャンタイムが0.001秒であれば「SM409」がONしている間、5回程度命令が実行されます。そのため測定時間が全く違うものになってしまいます。



図解入門 よくわかる最新 シーケンス制御と回路図の基本はKindle版(電子書籍)です。単行本ご希望の方は、フォーマットで単行本を選択してください。または、トップページよりご購入ください。

Copyright (C) 2010 シーケンス制御講座, All rights reserved.