【三菱Qシリーズ】否定転送(CML)命令の指令方法とラダープログラム例

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

「否定転送」命令とは、三菱電機製シーケンサQシリーズにおける指定したデバイスの各ビットの状態を反転して転送するラダープログラム命令です。

否定転送命令を用いることにより、データレジスタの各ビットを反転させたり、補助リレーのON/OFFをまとめて切替えることができます。

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

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

1. 否定転送命令の指令方法

否定転送命令には、4種類の指令方法があります。

  • CML:16ビット連続実行形
  • CMLP:16ビットパルス実行形
  • DCML:32ビット連続実行形
  • DCMLP:32ビットパルス実行形

CMLは、補足するもの・補足体(Complement)からきています。

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

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

16ビット連続実行形の否定転送命令は”CML”と指令します。

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

10_CML命令

このラダープログラムでは、入力条件であるX0がONしている間、データレジスタD0の各ビットを反転した結果をD10に転送するものです。

このラダープログラムで「事前にD0に定数で-3930を格納」して否定転送命令を実行すると、D10の値は以下のようになります。

10_デバイスモニタ

D0の各ビットのON/OFFの状態を反転した結果をD10に転送します。

メモ
GX Works2では、回路上で CML D0 D10 と入力してEnterキーを押すと、上の命令文が挿入されます。

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

16ビットパルス実行形の否定転送命令は”CMLP”と指令します。

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

11_CMLP命令

連続実行形(CML命令)との違いは、入力条件X0がONした瞬間のみ命令が実行されることです。つまりX0した瞬間のD0の各ビットの反転状態をD10に転送をします。

DCML・DCMLP:32ビット実行形

32ビット連続実行形の否定転送命令は”DCML”と指令します。

32ビットパルス実行形の否定転送命令は”DCMLP”と指令します。

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

12_DCML命令
13_DCMLP命令

32ビット実行形の場合、2ワード(32ビット)長のデータの各ビットを反転させた結果を転送するものです。

上のラダープログラムでは、データレジスタD0,D1の2ワード長の各ビットを反転した結果をD10,D11に転送します。

2. 【例題①】1ワード長の否定転送を求める

下記仕様のデータレジスタの値を否定転送するラダープログラム例について解説します。

仕様
スイッチ(X0)を押したとき、データレジスタD0の値をD1に否定転送する。
※「否定転送」とは、ここでは各ビットの反転状態のことをいう。

GOTの動作イメージ

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

例題①_GOT

使用していないデバイスが多々ありますがご了承ください。

スイッチ(X0)が押されると、その時のデータレジスタD0の値をD1に否定転送します。

スイッチ(X0)が押されている間に、D0の値が変化するとD1の値も追従して変化します。

ラダープログラム

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

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

X0を入力条件とするCML命令を使用します。

スイッチ(X0)がONしている間に、データレジスタD0の値が変化するとD1の値も変化させるために「16ビット連続実行形」を用いています。

3. 【例題②】2ワード長の否定転送を求める

下記仕様のデータレジスタの値を否定転送するラダープログラム例について解説します。

仕様
スイッチ(X0)を押したとき、データレジスタD0,D1の値をD2,D3に否定転送する。
各データレジスタはD0・D2を下位とする2ワード長として扱う。
※「否定転送」とは、ここでは各ビットの反転状態のことをいう。

2ワード長のデバイスを扱うため、32ビット実行形であるDCML命令を使用します。

GOTの動作イメージ

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

例題②_GOT

スイッチ(X0)が押されている間、データレジスタD0,D1の値をD2,D3に否定転送します。

ラダープログラム

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

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

32ビット連続実行形であるDCML命令を使用します。

例題①と同様に連続実行形を使用しているため、スイッチ(X0)が押されている状態でD0,D1の値を変えるとD2,D3の値も追従して変わります。

4. おわりに

否定転送命令について解説しました。

否定転送命令は各ビットの状態を反転させるため、符号を反転させる訳ではありません。符号を反転させるには「2の補数」命令を使用します。

2の補数命令については以下のページで解説しておりますので、宜しければご覧ください。

00_【三菱Qシリーズ】2の補数(NEG)命令の指令方法とラダープログラム例【三菱Qシリーズ】2の補数(NEG)命令の指令方法とラダープログラム例

以下の参考書は、シーケンス制御・ラダープログラムについて詳しく解説しているものです。

本書は私が通っていた短大のシーケンス制御の講義に教科書として使用していました。

シーケンス制御で必要なスキルはリレー回路やラダープログラムを組めることだけではなく、ソレノイドバルブやインダクションモータなどの機器を理解していなければなりません。本書では、それらの機器を実際の機構を交えて解説しています。

ラダープログラムは基礎部分から、一連動作を組むまで解説していますので中級者が読んでも意味がある内容です。

コメントを残す

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