三菱電機製シーケンサFXシリーズにおける「論理積」命令とは、2ヶのデバイスデータの論理積を求めるラダープログラム命令です。
論理積とは入力条件のすべてが”1”の場合のみ出力が”1”になる論理演算です。論理積はANDと表現することがよくあります。
この記事では、三菱電機製シーケンサFXシリーズにおける論理積命令の指令方法とラダープログラム例について解説します。
三菱電機製シーケンサFXシリーズにおいて、論理積命令は以下のシーケンサ・バージョンで使用することが可能です。
FX3S | :Ver1.00以降 |
FX3G | :Ver1.00以降 |
FX3GC | :Ver1.40以降 |
FX3U | :Ver2.20以降 |
FX3UC | :Ver1.00以降 |
論理積命令は、代数的な乗算結果である”積”を求めるものではありません。三菱電機製シーケンサFXシリーズでは乗算(MUL)命令が別に用意されています。
乗算(MUL)命令は以下のページで解説しておりますので、宜しければご覧ください。
【三菱FXシリーズ】乗算(MUL)命令の指令方法とラダープログラム例よく似た論理演算で論理和というものが存在します。論理和(WOR)命令は以下のページで解説しておりますので、宜しければご覧ください。
【三菱FXシリーズ】論理和(WOR)命令の指令方法とラダープログラム例目次
1. 論理積命令の指令方法
論理積命令には、4種類の指令方法があります。
WAND | :16ビット連続実行形 |
WANDP | :16ビットパルス実行形 |
DAND | :32ビット連続実行形 |
DANDP | :32ビットパルス実行形 |
WANDは論理積の通称であるANDからきています。
パルス実行形は、入力条件がONしたときの1スキャンのみ実行される命令です。
WAND:16ビット連続実行形(基本の形)
16ビット連続実行形の論理積命令は”WAND”と指令します。
こちらがWAND命令を使用したラダープログラム例です。
このラダープログラムは、入力条件であるX0がONしている間、データレジスタD0とD1の論理積をD2に格納するものです。
仮にD0が”0111 0000 0100 0101”、D1が”0001 1111 1010 0100”の場合、D2は
”0001 0000 0000 0100”になります。
その時のデバイス一括モニタは以下のようになります。
D0とD1の各ビットのうち、どちらも”1”のビットのみD2のビットが”1”になります。
WAND命令は連続実行形であるため、X0がON中にD0またはD1の値が変わるとD2の値も追従して変わります。
先ほどのラダープログラムはGX Works2の回路上で WAND D0 D1 D2 と入力してEnterキーを押すと命令が挿入されます。(小文字でもOKです。)
WANDP:16ビットパルス実行形
16ビットパルス実行形の論理積命令は”WANDP”と指令します。
こちらがWANDP命令を使用したラダープログラム例です。
連続実行形(WAND命令)との違いは、入力条件X0がON中にD0またはD1の値が変わってもD2の値は追従して変化しないことです。
X0がONした瞬間のD0とD1の論理積をD2に格納します。
DAND・DANDP:32ビット実行形
32ビット連続実行形の論理積命令は”DAND”と指令します。
32ビットパルス実行形の論理積命令は”DANDP”と指令します。
こちらがDAND・DANDP命令のラダープログラム例です。
32ビット実行形の場合、2ワード(32ビット)長の論理積を求めます。
↑のラダープログラムでは、データレジスタD0・D1とD2・D3の各2ワード長の論理積をD4・D5に格納します。この時、D0・D2・D4が下位側のデバイスになります。
2.【例題①】1ワード長の論理積を求める
下記仕様のラダープログラムを論理積命令を用いて解説します。
論理積を求めるデータレジスタは1ワード(16ビット)長であるため、16ビット実行形の論理積命令を使用します。
GOTの動作イメージ
GOTの動作イメージは以下のようになります。
スイッチ(X0)が押されている間、データレジスタD0とD1の論理積をD2に格納します。
スイッチ(X0)が押されている間にD0またはD1の値が変化するとD2の値も追従して変化します。
ラダープログラム
ラダープログラムは以下のようになります。
論理積を求めるため、入力条件をX0とする16ビット連続実行形のWAND命令を使用します。
X0がONしている間、D0とD1の論理積演算の結果をD2に格納します。
連続実行形を用いることによりスイッチ(X0)が押されている間にD0またはD1の値が変化するとD2の値も追従して変化します。
3.【例題②】2ワード長の論理積を求める
下記仕様のラダープログラムを論理積命令を用いて解説します。
各データレジスタはD0・D2・D4を下位とする2ワード長として扱う。
【例題①】では扱うデータレジスタが1ワード(16ビット)長のため16ビット実行形であるWAND命令を使用しました。今回は扱うデータレジスタが2ワード(32ビット)長であるため32ビット実行形であるDAND命令を使用します。
GOTの動作イメージ
GOTの動作イメージは以下のようになります。
スイッチ(X0)が押されている間、データレジスタD0・D1とD2・D3の論理積をD4・D5に格納します。
【例題①】と同様、スイッチ(X0)が押されている間に演算元(D0~D3)の値が変化すると演算先(D4,D5)の値も追従して変化します。
ラダープログラム
ラダープログラムは以下のようになります。
2ワード(32ビット)長の論理積を求める場合、32ビット連続実行形のDAND命令を使用します。 (パルス実行形の場合はDAND命令)
X0がONしている間、D0・D1とD2・D3の論理積演算の結果をD4・D5に格納します。 DAND命令は、指令したデバイスを下位とする2ワード長として扱われます。
4. おわりに
三菱電機製シーケンサFXシリーズにおける論理積命令について解説しました。
論理積命令はワードデバイスに対して各ビットの論理積を求めるラダープログラム命令のため、ビットデバイスの論理積を求める場合は用いることが出来ません。
ビットデバイスの論理積については以下のページで解説しておりますので、宜しければご覧ください。
【ラダープログラム回路】AND(論理積)回路のラダープログラム例【三菱FX】以下の参考書はラダープログラムの色々な「定石」が記載されており、実務で使用できるノウハウが多く解説されています。私がラダープログラムの参考書として自信をもってオススメできるものです。
ただし、ラダープログラムやPLCといった電気・制御設計は参考書やWebサイトのみでの学習には必ずどこかで限界が来ます。
各メーカが販売しているPLCやプログラム作成のアプリケーションを揃えるには安くても十万円以上の大きな費用が掛かり、独学は現実的ではありません。
ラダープログラムの一番現実的な学習方法は「実務で経験を積む」ことです。電気・制御設計者はこれから更に必要な人材になり続けますので、思い切って転職する選択肢もあります。
『doda』といった大手求人(転職)サイトには電気・制御設計の求人が数多く紹介されています。※登録は無料です。
「スキルこそ今後のキャリアを安定させる最も大切な材料」と考える私にとって電気・制御設計はとても良い職業だと思います。キャリアの参考になれば幸いです。