【三菱Qシリーズ】データ論理積(WAND)命令の指令方法とラダープログラム例

00_【三菱Qシリーズ】データ論理積(WAND)命令の指令方法とラダープログラム例

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

論理積とは、入力条件がすべて”1”の場合のみ、出力が”1”になる論理演算です。論理積はANDと表現することがよくあります。

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

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

三菱電機製シーケンサQシリーズにおいて、データ論理積命令は以下のCPUで使用することが可能です。

Basic:ベーシックモデルQCPU
High performance:ハイパフォーマンスモデルQCPU
Process:プロセスCPU
Redundant:二重化CPU
Universal:ユニバーサルモデルQCPU
LCPU:LCPU

※MELSEC-Lシリーズも含まれていますがご了承ください。

三菱電機製Qシリーズにおけるデータ論理和(WOR)命令については以下のページで解説しておりますので、宜しければご覧ください。

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

1. データ論理積命令の指令方法

データ論理積命令には、4種類の指令方法があります。

WAND:16ビット連続実行形
WANDP:16ビットパルス実行形
DAND:32ビット連続実行形
DANDP:32ビットパルス実行形

ANDは、論理積の通称であるANDに由来します。

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

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

16ビット連続実行形のデータ論理積命令は”WAND”と指令します。

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

10_WAND命令

このラダープログラムでは、入力条件であるX0がONしている間、データレジスタD0とD1のデバイス値の論理積をD10に格納するものです。

例えば、D0とD1のデバイス値が下記の状態でX0をONした場合、D10にはこのような論理積の結果が格納されます。

0111 0000 0100 0101:D0
0001 1111 1010 0100:D1
0001 0000 0000 0100:D10(D0とD1の論理積)

D0とD1、双方のどちらも”1”のビットのみ、D10のビットが”1”になります。

GX Works2のデバイス一括モニタは以下のようになります。

10デバイスモニタ

D0とD1の各ビットのうち、どちらも”1”のビットのみD10のビットが”1”になります。

WAND命令は「連続実行形」であるため、X0がON中は毎スキャン命令が実行されます。つまり、X0がON中に論理積の対象デバイス(↑ではD0とD1)が変化すると論理積の結果であるデバイス(↑ではD10)の値も追従して変化します。


先ほどのラダープログラムはGX Works2の回路上で WAND D0 D1 D10 と入力してEnterキーを押すと命令が挿入されます。

10_命令挿入

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

16ビットパルス実行形のデータ論理積命令は”WANDP”と指令します。

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

11_WANDP命令

連続実行形(WANDP命令)との違いは、入力条件であるX0がOFF→ONになった瞬間に1回だけデータ論理積命令が実行されることです。(すぐに変換先のデータレジスタの値が0に戻る訳ではありません。)

つまり、X0がON中に論理積の対象デバイス(↑ではD0とD1)が変化しても論理積の結果であるデバイス(↑ではD10)の値は追従して変化しません。

つまり、入力リレーX0がONし続けている状態で変換元のデバイス(↑のラダープログラムではD0・D1)の値が変わっても、変換先のD10~D12の値は追従しません。X0がOFF→ONになったときに変換した値が保持されます。

メモ
入力条件がOFF→ONしたときにデータ論理積命令を1スキャンだけ実行します。

DAND・DANDP:32ビット実行形

32ビット連続実行形の論理積命令は”DAND”と指令します。

32ビットパルス実行形の論理積命令は”DANDP”と指令します。

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

12_DAND命令
12_DANDP命令

32ビット実行形の場合、2ワード(32ビット)長の論理積を求めます。

例えば、D0~D3のデバイス値が下記の状態でX0をONした場合、D10・D11にはこのような論理積の結果が格納されます。

0111 0000 0100 0101 1111 1001 1100 0110:D0/D1
1111 0101 1100 0000 0011 0011 0111 1110:D2/D3
0111 0000 0100 0000 0011 0001 0100 0110:D10/D11(論理積)
メモ
データレジスタは1点が1ワード(16ビット)のデバイスのため、32ビット実行形の命令で指定された場合は指定した側(↑ではD0,D2,D10)を下位とする2ワード(32ビット)長が1ヶのデバイスとして扱われます。

2.【例題①】1ワード長のデータ論理積を求める

下記仕様のラダープログラムをデータ論理積命令を用いて解説します。

仕様
スイッチ(X0)を押している間、データレジスタD0とD1の論理積をD2に格納する。

先ほど解説したWAND命令では論理積の結果をD10にしていましたが、今回はD2としています。

GOTの動作イメージ

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

例題①_GOT

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

スイッチ(X0)を押している間、データレジスタD0とD1の論理積をD2に格納します。

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

ラダープログラム

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

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

データレジスタの論理積を求めるため、16ビット連続実行形のWAND命令を使用します。

このラダープログラムでは、入力条件であるX0がONしている間、データレジスタD0とD1のデバイス値の論理積をD2に格納します。

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

3.【例題②】2ワード長の論理積を求める

下記仕様のラダープログラムをデータ論理積命令を用いて解説します。

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

今回は各データレジスタを2ワード(32ビット)長として扱うため、DAND命令を使用します。

GOTの動作イメージ

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

例題②_GOT

スイッチ(X0)を押している間、データレジスタD0/D1とD2/D3の論理積をD4/D5に格納します。

【例題①】と同様、スイッチ(X0)が押されている間に、論理積の演算対象(D0~D3)の値が変化すると論理積の結果(D4/D5)の値も追従して変化します。

ラダープログラム

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

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

2ワード(32ビット)長の論理積を求めるため、32ビット連続実行形のDAND命令を使用します。

連続実行形を用いることにより、スイッチ(X0)が押されている間に、D0~D3の値が変化するとD4/D5の値も追従して変化します。

4. おわりに

三菱Qシリーズにおけるデータ論理積命令について解説しました。

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

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

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

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

コメントを残す

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