【三菱FXシリーズ】比較(CMP)命令の指令方法とラダープログラム例

00_【三菱FXシリーズ】比較(CMP)命令の指令方法とラダープログラム例

三菱電機製シーケンサFXシリーズにおける「比較」命令とは、2つの定数やデバイスの値を比較して、大・一致・小の3パターンをビットデバイスに出力するラダープログラム命令です。

比較命令を用いることにより、2つの定数やデバイスの値の大小の状態により出力・処理内容を変更することができます。

この記事では、三菱電機製シーケンサFXシリーズにおける比較命令の指令方法ラダープログラム例について解説します。

注意
この記事中のラダープログラムはGX Works2で作成しており、PCタイプはFX3G/FX3GCに設定してあります。

三菱電機製シーケンサFXシリーズにおいて、比較命令は以下のシーケンサ・バージョンで使用することが可能です。

FX3S:Ver1.00以降
FX3G:Ver1.00以降
FX3GC:Ver1.40以降
FX3U:Ver2.20以降
FX3UC:Ver1.00以降

2つの定数やデバイスの値を比較できる命令には、他に「接点形比較命令」があります。接点形比較命令については以下のページで解説しておりますので、宜しければご覧ください。

00_【三菱FXシリーズ】接点形比較命令の指令方法とラダープログラム例【三菱FXシリーズ】接点形比較命令の指令方法とラダープログラム例

1. 比較命令の指令方法

比較命令には、4種類の指令方法があります。

CMP:16ビット連続実行形
CMPP:16ビットパルス実行形
DCMP:32ビット連続実行形
DCMPP:32ビットパルス実行形

CMPは、比べる・比較する(Compare)の略です。

メモ
連続実行形は、入力条件がONしている間、毎スキャン実行される命令です。
パルス実行形は、入力条件がONしたときの1スキャンのみ実行される命令です。

CMP:16ビット連続実行形(基本の形)

16ビット連続実行形の比較命令は”CMP”と指令します。

こちらがCMP命令を使用したラダープログラム例です。

10_CMP命令

このラダープログラムは、入力条件であるX0がONしている間、定数5とデータレジスタD0の値を比較します。比較した結果に応じて下記のように補助リレーM0~M2のいずれかをONさせます。

D0が5未満のとき→ M0がONする
D0が5のとき→ M1がONする
D0が5超過のとき→ M2がONする

D0の値に応じて、M0~M2の何れか1ヶが必ずONします。

CMP命令は「連続実行形」であるため、X0がON中にD0の値が変化すると比較結果であるM0M2も追従して変わります。

注意
比較結果を出力するビットデバイスは指定したデバイスを先頭する3点を占有しますので、他の用途では使用できません。重複に注意してください。(上のラダープログラムではM0~M2)

先ほどのラダープログラムはGX Works2の回路上で CMP K5 D0 M0 と入力するとEnterキーを押すと挿入されます。

10_命令挿入

CMPP:16ビットパルス実行形

16ビットパルス実行形の比較命令は”CMPP”と指令します。

こちらがCMPP命令を使用したラダープログラム例です。

11_CMPP命令

連続実行形(CMP命令)との違いは、入力条件であるX0がOFF→ONになった瞬間に1回だけ比較命令が実行されることです。

X0がONしている状態でD0の値が変化しても、比較結果であるM0~M2の値は変わりません。

DCMP・DCMPP:32ビット実行形

32ビット連続実行形の比較命令は”DCMP”と指令します。

32ビットパルス実行形の比較命令は”DCMPP”と指令します。

こちらがDCMP・DCMPP命令を使用したラダープログラム例です。

12_DCMP命令
13_DCMPP命令

32ビット実行形の場合、比較対象のデバイスはどちらも2ワード(32ビット)長として扱われます。

↑のラダープログラムの場合、比較対象はD0・D1になります。

注意
ラダープログラム上ではD1を指令していませんが、他の用途で使用できなくなります。

2.【例題①】常に比較命令を実行する

下記仕様のラダープログラムを比較命令を用いて解説します。

仕様
スイッチ(X0)を押すたびに、データレジスタD0を1ずつ加算する。
データレジスタD0の状態により以下の通りランプを点灯させる。
D0が8未満のとき、ランプ(Y0)が点灯
D0が8のとき、ランプ(Y1)が点灯
D0が8超過のとき、ランプ(Y2)が点灯

データレジスタを1ずつ加算させるためにはインクリメント(INC)命令を使用します。三菱電機製シーケンサFXシリーズにおけるインクリメント(INC)命令は以下のページで解説しておりますので、宜しければご覧ください。

00_【三菱FXシリーズ】インクリメント(INC)・デクリメント(DEC)命令の指令方法とラダープログラム例【三菱FXシリーズ】インクリメント(INC)・デクリメント(DEC)命令の指令方法とラダープログラム例

タイムチャート

タイムチャートは以下のようになります。

例題①_タイムチャート

X0がONするたびにD0が1ずつ加算され、比較結果に応じてY0~Y2の何れかがONします。

GOTの動作イメージ

GOTの動作イメージは以下のようになります。

例題①_GOT

スイッチ(X0)を押すたびにD0が加算され、比較結果に応じてランプ(Y0)~(Y2)の何れかが点灯します。

ラダープログラム

ラダープログラムは以下のようになります。

例題①_ラダープログラム

スイッチ(X0)を押すたびにデータレジスタD0を1ずつ加算するため、パルス実行形のインクリメント(INCP)命令を使用します。(1行目)

M8000を入力条件とする比較(CMP)命令を用いて、データレジスタD0の値と定数8を比較します。

メモ
三菱電機製シーケンサFXシリーズにおけるM8000は『PLCがRUN中は常にONする』特殊なデバイスです。

比較(CMP)命令の入力条件をM8000にすることで、常にD0と定数8を比較します。よって、M0~M2のいずれか1ヶが必ずONします。

3.【例題②】スイッチが押されている時のみ比較する

下記仕様のラダープログラムを比較命令を用いて解説します。

仕様
スイッチ(X0)を押すたびに、データレジスタD0を1ずつ加算する。
データレジスタD0の状態により、スイッチ(X1)がおされているときのみ以下の通りランプを点灯させる。
D0が8未満のとき、ランプ(Y0)が点灯
D0が8のとき、ランプ(Y1)が点灯
D0が8超過のとき、ランプ(Y2)が点灯

【例題①】は比較(CMP)命令を常に実行することで、必ずランプのいずれかがONしていました。今回はスイッチ(X1)が押している間のみ比較命令を実行します。

メモ
比較命令は常に実行させておいて、Y0~Y2の条件にX1を入れる方法でもOKです。
今回は比較命令の動作を解説したいので、『X1』がONしているときのみ比較命令を実行する手法を取ります。

GOTの動作イメージ

GOTの動作イメージは以下のようになります。

例題②_GOT

スイッチ(X0)を押すたびにD0が加算されます。(【例題①】と同様)

データレジスタD0と定数8を比較して、スイッチ(X1)が押されている間のみランプ(Y0)~(Y2)の何れかが点灯します。

ラダープログラム

ラダープログラムは以下のようになります。

例題②_ラダープログラム

【例題①】と同様、スイッチ(X0)を押すたびにパルス実行形のインクリメント(INCP)命令でデータレジスタD0を1ずつ加算します。(1行目)

スイッチ(X1)が押されている間のみデータレジスタD0と定数8を比較するため、比較(CMP)命令の入力条件をX1とします。

比較(CMP)命令でONしたビットデバイスは、リセット(RST)命令などを用いて新たに”0”を書き込まなければ”1”を保持します。

スイッチ(X1)が押されていない間は各ランプを消灯させるため、M0~M2を一括リセット(ZRST)命令を用いて一括で”0”を書き込みます。

一括リセット(ZRST)命令は以下のページで解説しておりますので、宜しければご覧ください。

00_【三菱FXシリーズ】一括リセット(ZRST)命令の指令方法とラダープログラム例【三菱FXシリーズ】一括リセット(ZRST)命令の指令方法とラダープログラム例

4. おわりに

三菱電機製シーケンサFXシリーズにおける比較命令について解説しました。

2ヶのデバイスの値を比較する点では接点形比較命令とよく似ています。接点形比較命令は不等号を使用するため、ラダープログラムを見て直感的に判断できる理由で私は接点形比較命令をよく使います。

よく似た命令でCMLと指令するものがあります。これは反転転送命令と呼ばれる命令で、比較命令とは全く関係ありません。

反転転送(CML)命令は以下のページで解説しておりますので、宜しければご覧ください。

00_【三菱FXシリーズ】反転転送(CML)命令の指令方法とラダープログラム例【三菱FXシリーズ】反転転送(CML)命令の指令方法とラダープログラム例

以下の参考書はラダープログラムの色々な「定石」が記載されており、実務で使用できるノウハウが多く解説されています。私がラダープログラムの参考書として自信をもってオススメできるものです。

ただし、ラダープログラムやPLCといった電気・制御設計は参考書やWebサイトのみでの学習には必ずどこかで限界が来ます。

各メーカが販売しているPLCやプログラム作成のアプリケーションを揃えるには安くても十万円以上の大きな費用が掛かり、独学は現実的ではありません。

ラダープログラムの一番現実的な学習方法は「実務で経験を積む」ことです。電気・制御設計者はこれから更に必要な人材になり続けますので、思い切って転職する選択肢もあります。

DODA』といった大手求人(転職)サイトには電気・制御設計の求人が数多く紹介されています。※登録は無料です。

「スキルこそ今後のキャリアを安定させる最も大切な材料」と考える私にとって電気・制御設計はとても良い職業だと思います。キャリアの参考になれば幸いです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です