「データ論理積」命令とは、三菱電機製シーケンサQシリーズにおける指定した2ヶのデバイス値の論理積を求めるラダープログラム命令です。
論理積とは、入力条件がすべて”1”の場合のみ、出力が”1”になる論理演算です。論理積はANDと表現することがよくあります。
この記事では、三菱電機製シーケンサQシリーズにおけるデータ論理積命令の指令方法とラダープログラム例について解説します。
三菱電機製シーケンサQシリーズにおいて、データ論理積命令は以下のCPUで使用することが可能です。
Basic | :ベーシックモデルQCPU |
High performance | :ハイパフォーマンスモデルQCPU |
Process | :プロセスCPU |
Redundant | :二重化CPU |
Universal | :ユニバーサルモデルQCPU |
LCPU | :LCPU |
※MELSEC-Lシリーズも含まれていますがご了承ください。
三菱電機製Qシリーズにおけるデータ論理和(WOR)命令については以下のページで解説しておりますので、宜しければご覧ください。
【三菱Qシリーズ】データ論理和(WOR)命令の指令方法とラダープログラム例目次
1. データ論理積命令の指令方法
データ論理積命令には、4種類の指令方法があります。
WAND | :16ビット連続実行形 |
WANDP | :16ビットパルス実行形 |
DAND | :32ビット連続実行形 |
DANDP | :32ビットパルス実行形 |
ANDは、論理積の通称であるANDに由来します。
WAND:16ビット連続実行形(基本の形)
16ビット連続実行形のデータ論理積命令は”WAND”と指令します。
こちらが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のデバイス一括モニタは以下のようになります。
D0とD1の各ビットのうち、どちらも”1”のビットのみD10のビットが”1”になります。
WAND命令は「連続実行形」であるため、X0がON中は毎スキャン命令が実行されます。つまり、X0がON中に論理積の対象デバイス(↑ではD0とD1)が変化すると論理積の結果であるデバイス(↑ではD10)の値も追従して変化します。
先ほどのラダープログラムはGX Works2の回路上で WAND D0 D1 D10 と入力してEnterキーを押すと命令が挿入されます。
WANDP:16ビットパルス実行形
16ビットパルス実行形のデータ論理積命令は”WANDP”と指令します。
こちらがWANDP命令を使用したラダープログラム例です。
連続実行形(WANDP命令)との違いは、入力条件であるX0がOFF→ONになった瞬間に1回だけデータ論理積命令が実行されることです。(すぐに変換先のデータレジスタの値が0に戻る訳ではありません。)
つまり、X0がON中に論理積の対象デバイス(↑ではD0とD1)が変化しても論理積の結果であるデバイス(↑ではD10)の値は追従して変化しません。
つまり、入力リレーX0がONし続けている状態で変換元のデバイス(↑のラダープログラムではD0・D1)の値が変わっても、変換先のD10~D12の値は追従しません。X0がOFF→ONになったときに変換した値が保持されます。
DAND・DANDP:32ビット実行形
32ビット連続実行形の論理積命令は”DAND”と指令します。
32ビットパルス実行形の論理積命令は”DANDP”と指令します。
こちらがDAND・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(論理積) |
2.【例題①】1ワード長のデータ論理積を求める
下記仕様のラダープログラムをデータ論理積命令を用いて解説します。
先ほど解説したWAND命令では論理積の結果をD10にしていましたが、今回はD2としています。
GOTの動作イメージ
GOTの動作イメージは以下のようになります。
※使用していないデバイスがありますがご了承ください。
スイッチ(X0)を押している間、データレジスタD0とD1の論理積をD2に格納します。
スイッチ(X0)が押されている間に、D0またはD1の値が変化するとD2の値も追従して変化します。
ラダープログラム
ラダープログラムは以下のようになります。
データレジスタの論理積を求めるため、16ビット連続実行形のWAND命令を使用します。
このラダープログラムでは、入力条件であるX0がONしている間、データレジスタD0とD1のデバイス値の論理積をD2に格納します。
連続実行形を用いることにより、スイッチ(X0)が押されている間に、D0またはD1の値が変化するとD2の値も追従して変化します。
3.【例題②】2ワード長の論理積を求める
下記仕様のラダープログラムをデータ論理積命令を用いて解説します。
各データレジスタはD0・D2・D4を下位側とする2ワード(32ビット)長として扱う。
今回は各データレジスタを2ワード(32ビット)長として扱うため、DAND命令を使用します。
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シリーズにおけるデータ論理積命令について解説しました。
以下の参考書は、シーケンス制御・ラダープログラムについて詳しく解説しているものです。
本書は私が通っていた短大のシーケンス制御の講義に教科書として使用していました。
シーケンス制御で必要なスキルはリレー回路やラダープログラムを組めることだけではなく、ソレノイドバルブやインダクションモータなどの機器を理解していなければなりません。本書では、それらの機器を実際の機構を交えて解説しています。
ラダープログラムは基礎部分から、一連動作を組むまで解説していますので中級者が読んでも意味がある内容です。