【三菱Qシリーズ】データ否定排他的論理和(WXNR)命令の指令方法とラダープログラム例

00_【三菱Qシリーズ】データ否定排他的論理和(WXNR)命令の指令方法とラダープログラム例

「否定排他的論理和」命令とは、三菱電機製シーケンサQシリーズにおける2ヶのデバイスデータの否定排他的論理和を求めるラダープログラム命令です。

「排他的論理和の…否定…ん?なに?」という方もいるかと思いますので簡単に解説します。

まず排他的論理和とは入力条件のどちらか一方がONすると出力がONする論理演算です。言い換えると、2ヶの入力条件の状態が不一致の場合に出力がONする論理演算です。(入力条件が2ヶの場合)

否定排他的論理和とはその逆で、2ヶの入力条件の状態が一致したときに出力がONする論理回路です。

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

注意
この記事中のラダープログラムはGX Works2で作成しており、PCタイプはQ03UDEに設定してあります。
注意
同じ三菱電機製シーケンサFXシリーズでは「否定排他的論理和」命令は指令することができませんでした。

1. 否定排他的論理和命令の指令方法

否定排他的論理和命令には、4種類の指令方法があります。

  • WXNR:16ビット連続実行形
  • WXNRP:16ビットパルス実行形
  • DXNR:32ビット連続実行形
  • DXNRP:32ビットパルス実行形

WXNRは何の略でしょうか…。排他的論理和(Exclusive or)の否定(Not)で、Exclusive not orの略とかですかね。わかりません…

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

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

16ビット連続実行形の否定排他的論理和命令は”WXNR”と指令します。

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

10_WXNR命令

このラダープログラムでは、入力条件であるX0がONしている間、データレジスタD0とD1の否定排他的論理和をD2に転送します。

仮にD0が”0111 0000 0100 0101”、D1が”0001 1111 1010 0100”の場合、D2は”1001 0000 0001 1110”になります。

その時のデバイスモニタは以下のようになります。

10_デバイスモニタ

D0とD1の各ビットの状態が一致したときにD2のビットが”1”になります。

WXNR命令は「連続実行形」であるため、X0がONしている間にD0の値が変わるとD10の値も追従して変わります。
メモ
GX Works2では、回路上で WXNR D0 D1 D2 と入力してEnterキーを押すと、上の命令文が挿入されます。

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

16ビットパルス実行形の否定排他的論理和命令は”WXNRP”と指令します。

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

11_WXNRP命令

連続実行形(WXNR命令)との違いは、入力条件X0がONした瞬間のみ命令が実行されることです。つまりX0した瞬間にD0とD1の否定排他的論理和の論理演算結果をD2に転送します。

DXNR・DXNRP:32ビット実行形

32ビット連続実行形の否定排他的論理和命令は”DXNR”と指令します。

32ビットパルス実行形の否定排他的論理和命令は”DXNRP”と指令します。

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

12_DXNR命令
13_DXNRP命令

32ビット実行形の場合、2ワード(32ビット)長のデータを対象としています。

上のラダープログラムでは、データレジスタD0・D1とD2・D3の各2ワード長の否定排他的論理和をD4・D5に転送します。この時、D0・D2・D4が下位側のデバイスになります。

2. 【例題①】1ワード長の否定排他的論理和を求める

下記仕様の否定排他的論理和を求めるラダープログラム例について解説します。

仕様
スイッチ(X0)を押している間、データレジスタD0とD1の値を比較して、D2に一致しているビットに”1”を立てる。

「各ビットが一致しているか?」判断するために否定排他的論理和命令を使用します。

GOTの動作イメージ

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

例題①_GOT

スイッチ(X0)が押されている間、データレジスタD0とD1の否定排他的論理和をD2に格納します。つまり、一致したビットのみ”1”になります。

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

ラダープログラム

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

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

否定排他的論理和を求めるため、16ビット連続実行形のWXNR命令を使用します。

このラダープログラムではD0とD1の否定排他的論理和の結果をD2に格納します。

連続実行形を用いることによりスイッチ(X0)が押されている間にD0またはD1の値が変化するとD2の値も追従して変化します。

3. 【例題②】2ワード長の否定排他的論理和を求める

下記仕様の否定排他的論理和を求めるラダープログラム例について解説します。

仕様
スイッチ(X0)を押している間、データレジスタD0・D1とD2・D3の否定排他的論理和をD4・D5に格納する。
各データレジスタはD0・D2・D4を下位とする2ワード長として扱う。

【例題①】とは敢えて言い回しを変えましたが、否定排他的論理和を求める点で行うことは同じです。

GOTの動作イメージ

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

例題②_GOT

スイッチ(X0)が押されている間、データレジスタD0・D1とD2・D3の否定排他的論理和をD4・D5に格納します。

ラダープログラム

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

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

2ワード長の否定排他的論理和を求める場合、32ビット連続実行形のDXNR命令を使用します。

このラダープログラムではD0・D1とD2・D3の否定排他的論理和の演算結果をD4・D5に格納します。DXNR命令は、指令したデバイスを下位とする2ワード長として扱われます。

4. おわりに

否定排他的論理和命令について解説しました。

「そんな訳のわからん命令どこで使うねん」と思うかもしれませんが、各ビットの状態が一致しているかどうか?判断するには便利な命令です。

正直、私がこの記事を書いている段階では実務で使ったことはありません…

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

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

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

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

コメントを残す

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