【オムロンCJ】ビット反転(COM)命令の指令方法とラダープログラム例

00_【オムロンCJ】ビット反転(COM)命令の指令方法とラダープログラム例

オムロンCJシリーズにおける「ビット反転」命令とは、CHデータを反転するラダープログラム命令です。

ビット反転命令を用いることにより、CHデータの各ビットのON/OFF(1 or 0)を反転させることができます。

この記事では、オムロンCJシリーズにおけるビット反転命令の指令方法ラダープログラム例について解説します。

注意
この記事のラダープログラムはCX-Programmer Ver. 9.63で作成しており、PLC機種はCJ2Mに設定してあります。
注意
オムロンCJシリーズにおいてビット反転命令は、CJ2H-CPU6□-EIP、CJ2H-CPU6□、CJ2M-CPU□□、CJ1□-CPU□□□-□で使用可能です。その他の機種についてはマニュアルを参照してください。

オムロンCJシリーズにはCHデータを反転させた結果を他のCHに転送する「否定転送」命令があります。否定転送(MVN)命令については以下のページで解説しております。

00_【オムロンCJ】否定転送(MVN)命令の指令方法とラダープログラム例【オムロンCJ】否定転送(MVN)命令の指令方法とラダープログラム例

1. ビット反転命令の指令方法

ビット反転命令には、動作オプションを含めると4種類の指令方法があります。

命令文内容動作オプション
COM1ワード長のビット反転命令
@COM1ワード長のビット反転命令微分
COML2ワード長のビット倍長反転命令
@COML2ワード長のビット倍長反転命令微分
メモ
動作オプションの「微分」とは微分オプションと呼ばれ、命令の入力条件の立ち上がり(OFF→ON)時に、1サイクルのみ命令が実行されるものです。

COM:1ワード長のビット反転命令(動作オプション無し)

1ワード長のビット反転命令(動作オプション無し)は”COM”と指令します。

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

10_COM命令

このラダープログラムは、0.00がONしている間、データメモリD0の各ビットを反転します。

例えば、D0に16進数”AAAA”が格納されている状態で0.00がONすると、D0には各ビットの反転した”5555”になります。

↓は16進数”AAAA”を反転したときのデータメモリD0の内容です。

10_COM命令実行5555

D0に16進数”FFFF”が格納されている状態で0.00がONすると、D0には各ビットの反転した”0000”になります。

↓は16進数”FFFF”を反転したときのデータメモリD0の内容です。

10_COM命令実行0000

オプション無しのビット反転(COM)命令を用いた場合、1サイクル毎にD0が反転し続けます。D0の各ビットを反転させる場合「入力条件を微分化」または「微分オプションの反転(@COM)命令」を使用する必要があります。

10_命令解説3

「入力条件を微分化する」手法として、立上り微分(DIFU)命令があります。立上り微分(DIFU)命令については以下のページで解説しております。

00_【オムロンCJ】立上り微分DIFU命令の指令方法とラダープログラム例【オムロンCJ】立上り微分(DIFU)命令の指令方法とラダープログラム例

「微分オプションの反転(@COM)命令」については、次項で解説します。


先ほどのラダープログラムはCX-Programmerの回路上で COM D0 と入力してEnterキーを押すと命令が挿入されます。 ※スマートインプットモードの場合

10_命令挿入

@COM:1ワード長のビット反転命令(微分オプション)

1ワード長のビット反転命令(微分オプション)は”@COM”と指令します。

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

11_@COM命令

微分オプションのビット反転(@COM)命令は「入力条件の立ち上がり(OFF→ON)時に1サイクルのみ命令が実行される」ことです。

立ち上がり時に1回のみCHデータが反転するため、入力条件がONし続けたとしても1サイクル毎にD0が反転し続けることはありません。

11_@COM命令解説

COML・@COML:2ワード長のビット倍長反転命令

2ワード長のビット倍長反転命令(動作オプション無し)は”COML”と指令します。

2ワード長のビット倍長反転命令(微分オプション)は”@COML”と指令します。

こちらがCOML・@COML命令のラダープログラム例です。

12_COML命令
13_@COML命令

2ワード長のビット倍長反転命令の場合、各CHは指定したCHを下位とする2ワードとして扱われます。

注意
上のラダープログラム例では、D1を上位CHとして使用されるため、他の用途で使用できなくなります。

2.【例題①】1ワード長の反転結果を求める

下記仕様のラダープログラムをビット反転命令を用いて解説します。

仕様
スイッチ(0.00)を押すと、データメモリD0の各ビットの状態を反転させる。

反転させる対象のデータメモリはD0のみのため、1ワード長のビット反転命令を使用します。

タッチパネルの動作イメージ

タッチパネルの動作イメージは以下のようになります。

例題①_タッチパネル

スイッチ(0.00)を押すと、データメモリD0の各ビットの状態が反転します。

ラダープログラム

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

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

0.00を入力条件とする1ワード長のビット反転命令(微分オプション)の@COM命令を使用して、D0の各ビットの状態を反転します。

オプション無しのビット反転(COM)命令を用いると、1サイクル毎にD0が反転し続けるため、@COM命令を使用しています。(入力条件を微分化してCOM命令を用いてもOKです。)

3.【例題②】2ワード長の反転結果を求める

下記仕様のラダープログラムをビット倍長反転命令を用いて解説します。

仕様
スイッチ(0.00)を押すと、データメモリD0,D1の各ビットの状態を反転させる。
データメモリはD0を下位とする2ワード(32ビット)長として扱う。

データメモリを2ワード長として扱うため、2ワード長のビット倍長反転命令を使用します。

タッチパネルの動作イメージ

タッチパネルの動作イメージは以下のようになります。

例題②_タッチパネル

スイッチ(0.00)を押すと、データメモリD0,D1の各ビットの状態が反転します。

ラダープログラム

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

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

0.00を入力条件とする2ワード長のビット倍長反転命令(微分オプション)の@COML命令を使用して、D0,D1の各ビットの状態を反転します。

4. おわりに

オムロンCJシリーズにおけるビット反転命令について解説しました。

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

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

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

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

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

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

コメントを残す

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