装置を制御するラダープログラムを作成すると、入力リレーや出力リレーなどのビットデバイスとは異なる「ワードデバイス」と呼ばれるものを使用する場合が多々あります。
ワードデバイスは、三菱電機製シーケンサではデータレジスタやRレジスタなどに相当して、GOTから値を入力したり、ラダープログラム内部で記憶したりと色々な部分で使用します。
このワードデバイスの「値」が何らかの理由で変化したとき、ランプやメッセージ等で注意を促さなければならない場合があります。
この記事では、デバイス値の変化を検出してランプを点灯させるラダープログラム例を解説します。
この記事中のラダープログラムはGX Works2で作成しており、プロジェクトのPCシリーズはFXCPU、PCタイプはFX3G/FX3GCに設定してあります。
目次
1. 作成したラダープログラムとGOTの仕様説明
作成したラダープログラムとGOTの仕様や説明を解説します。
仕様
仕様は以下のようになります。
データレジスタ(D0)の値を監視して、変化したときにランプ(Y0)で注意喚起するラダープログラムです。
タイムチャート
タイムチャートは以下のようになります。

D0の値が変化したとき、値の内容に関わらずY0が2秒間ONします。
GOTの動作イメージ
GOTの動作イメージは以下のようになります。

GOTでデータレジスタ(D0)の値を変化させたとき、ランプ(Y0)が2秒間点灯します。
ラダープログラム
ラダープログラムは以下のようになります。

解説は次項で行います。
別のプログラムでも動作が同じであれば問題ありません。
2. ラダープログラムの解説(3分割)
先ほどのラダープログラムを3ヶに分けて解説をします。

① データレジスタ(D0)の変化を検知
上のラダープログラムの「①水色枠」の部分です。

接点形比較命令を用いて、データレジスタ(D0)と(D10)の値を比較します。(D10については後ほど解説します。)
[<> D0 D10] はデータレジスタ(D0)と(D10)の値が不一致のときに補助リレー(M1)がONします。接点形比較命令については以下のページで解説しておりますので、宜しければご覧ください。
② データレジスタ(D0)の値を(D10)に転送
上のラダープログラムの「②オレンジ色枠」の部分です。

転送命令(MOV命令)を用いてデータレジスタ(D0)の値を(D10)に転送しています。
M8000とは、三菱電機製FXシリーズの特殊デバイス「PLCがRUN中は常時ONする」接点です。
つまりこのラダープログラムは常時、データレジスタ(D0)の値を(D10)に転送し続けていることになります。
「あれ?それだと①の接点形比較命令で不一致にならなくね?」と思うかもしれませんが、ラダープログラムは上から順に処理を行うため、D0の値が変化したときのみ不一致が生じます。(少しわかりにくいかもしれません…)
転送命令については以下のページで解説しておりますので、宜しければご覧ください。
③ ランプ(Y0)を2秒間点灯
上のラダープログラムの「③紫枠」の部分です。

データレジスタ(D0)が変化したとき、補助リレー(M1)が1スキャンのみONするので、M1を入力条件とするY0の自己保持回路を作ります。
Y0の自己保持回路をOFFする条件は「Y0がONしてから2秒後にONするタイマ(T0)」です。
これにより、データレジスタ(D0)の値が変化したとき、ランプ(Y0)を2秒間点灯させる回路が完成します。
タイマについては以下のページで解説しておりますので、宜しければご覧ください。
3. 応用したGOTとラダープログラム
少しですが、先ほど解説したGOTとラダープログラムを応用します。
仕様
応用の仕様は以下のようになります。
GOTに表示するメッセージを追加しました。
GOTの動作イメージ
GOTの動作イメージは以下のようになります。

GOT左下部にメッセージが追加しています。
ラダープログラム
ラダープログラムは以下のようになります。

下部の2行が追加してあります。Y0は「D0の値が変化したときに2秒間ONするデバイス」のため、Y0がONしているときにメッセージ【D0の値が変化しました】と表示するようにします。
GOTのメッセージはコメント機能を用いており、D100が定数1のとき【メッセージはありません】と表示して、D100が定数2のとき【D0の値が変化しました】と表示します。
4. おわりに
デバイス値の変化を検出するラダープログラム例を解説しました。
このラダープログラムに名称を付けるのであれば「変化検出回路」がいいかなぁと思います。


