シーケンス制御講座

数値の切替を検出

データレジスタのようなワードデバイス内の値が切り替わったことを検出したいと思ったことはないでしょうか?例えば「D0」に"2"という数値が入っていて、その数値が"3"や"10"に切り替わった瞬間に内部リレーをONするなど。このような方法は簡単にできます。

作成日:2025年10月30日
更新日:2025年10月30日


数値の切替を検出

データレジスタなどのワードデバイスの値が切り替わったことを検出する方法はとても簡単です。検出だけならたったの2行でできます。

回路にコメントは入れていませんが、この回路ではデータレジスタ「D0」の値の変化を検出できます。「D0」の値が変化すると「M0」が1スキャンONします。

「M0」はパルスと同じで1スキャンしかONしないため、分かりやすいようにその下の行で「M1」を自己保持するようにしていますが、必要なければ書く必要はありません。

仕組みの解説

仕組みがわからなくても使えますが、仕組みが分かったほうがいいので解説します。

まずこの回路を実現するために、監視したいデバイス(値の変化を検出したいデバイス)とは別に、同じサイズのワードデバイスが必要です。今回は監視したいデバイスを「D0」と「D1」のダブルワード。そして同じサイズのデバイスに「D2」と「D3」のダブルワードを使用します。もちろんシングルワード(16ビット)でも大丈夫です。

最初はこのように「D0」に"0"という値が入っているとします。「SM400」は常時ONの接点なので、常時監視する形になります。「D0」と「D2」には同じ"0"という値が入っているので、接点比較の部分は条件がそろっていないのでONできません。

つぎに「D0」の値が"0"→"1"に変化しました。すると接点比較の部分で「D0」と「D2」の値が違うので、条件が整いこの接点がONします。そして「M0」がONします。

次の行にMOVの転送命令があり「D0」の値をそのまま「D2」に転送しています。つまりここで「D0」の値と「D2」の値が”1"となり、同じ値になります。この時点で「D0」と「D2」の値が同じになり比較接点はOFFします。しかしプログラムはそのまま次の行をスキャンしていくため、少しの間(1スキャン)「M0」はONします。

「M1」は1スキャンだけONするので、次の行で「M0」を使用した処理があれば実行されます。ここでは「M1」に自己保持をかけています。「M0」1スキャンONするので、上記のように比較回路のすぐ下に書く必要はなく、プログラムのどこに書いても大丈夫です。

プログラムのスキャンがENDまで到達すると、再度先頭からスキャンします。そして再度比較部分をスキャンしたとき、「D0」と「D2」の値が違うので「M1」はOFFします。

このような感じで「D0」の値が変化すると「M0」が1スキャンだけONします。ここでは1行ずつ解説したので「M0」はしっかりONしているように感じますが、実際のPLCでは一瞬しかONしないのでモニタなどで確認することはできないと思います。また、基本的に「D0」と「D2」は同期していのでモニタでは常に同じ値が入っています。

これがワードデバイス内の値の変化を検出する方法です。とても簡単に使えると思いますので、使う機会があれば是非使ってみてください。



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

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