この記事では、データレジスタの練習問題を3ヶ出題します。
この記事中の問題を解くことができれば、
・データレジスタの基本が理解できている。
・論理演算命令が理解できている。
と言えます。
データレジスタとはなんだろう…?という方は、下記の記事でデータレジスタについて解説しているので、宜しければご覧ください。
データレジスタ(D)の概要と使用例この記事中のPLCは三菱電機製シーケンサ:FX3G-60MT/ESS、ラダープログラムはソフトウェア:GX Works2を使用しています。
別のプログラムでも動作が同じであれば問題ありません。
目次
1. 【1問目】論理積でデータレジスタをマスク処理
下記仕様を満たすラダープログラムを作成してください。
※)データレジスタは1ワード(16ビット)長として扱う。
※)H00FFとは、16進数の00FFの意味です。
論理積を求めるため、論理積命令(WAND)を使用します。
GOTの動作イメージ
GOTの動作イメージは以下のようになります。
スイッチ(X0)を押している間、データレジスタ(D0)と定数H00FFの論理積をデータレジスタ(D2)に転送します。
解答ラダープログラム
解答のラダープログラムは以下のようになります。
【解説】
データレジスタ(D0)と定数H00FFの論理積を求めるため論理積命令(WAND)を使用します。
論理積命令を用いた上のラダープログラムは「データレジスタ(D0)と定数H00FFの論理積演算の結果をデータレジスタ(D2)に格納する」ものです。
論理積命令(WAND)については以下のページで解説しておりますので、宜しければご覧ください。
【三菱FXシリーズ】論理積(WAND)命令の指令方法とラダープログラム例このラダープログラムについて少し掘り下げると、データレジスタ(D2)の上位8ビットは必ず”0”になります。
このような演算元(D0)のON/OFFの状態に関わらず演算先(D2)の結果をOFFにする処理を「マスク処理」と呼ぶことがあります。
上のラダープログラムの場合「データレジスタ(D2)の上位8ビットをマスクしている」と表現します。
2. 【2問目】データレジスタの論理和と論理積
下記仕様を満たすラダープログラムを作成してください。
スイッチ(X1)を押すと、データレジスタ(D0)と(D1)の論理和をデータレジスタ(D3)に転送する。
※)データレジスタは1ワード(16ビット)長として扱う。
論理積については【1問目】の論理積命令(WAND)を用いて、論理和については論理和命令(WOR)を使用します。
GOTの動作イメージ
GOTの動作イメージは以下のようになります。
スイッチ(X0)を押すと、データレジスタ(D0)と(D1)の論理積をデータレジスタ(D2)に転送します。
スイッチ(X1)を押すと、データレジスタ(D0)と(D1)の論理和をデータレジスタ(D3)に転送する。
解答ラダープログラム
解答のラダープログラムは以下のようになります。
【解説】
論理積の演算結果であるデータレジスタ(D2)には【1問目】と同様に論理積命令(WAND)を用います。
論理和の演算結果であるデータレジスタ(D3)には論理和命令(WOR)を用います。
論理和命令(WOR)については以下のページで解説しておりますので、宜しければご覧ください。
【三菱FXシリーズ】論理和(WOR)命令の指令方法とラダープログラム例3. 【3問目】データレジスタの論理和と論理積と排他的論理和
下記仕様を満たすラダープログラムを作成してください。
スイッチ(X1)を押すと、データレジスタ(D0)と(D1)の論理和をデータレジスタ(D2)に転送する。
スイッチ(X2)を押すと、データレジスタ(D0)と(D1)の排他的論理和をデータレジスタ(D2)に転送する。
同時にスイッチを押した場合、後に押した処理を優先する。
※)データレジスタは1ワード(16ビット)長として扱う。
新たに排他的論理和を求める必要があります。これには排他的論理和命令(WXOR)を使用します。
そして、各々の論理演算の結果はすべてデータレジスタ(D2)に転送します。
GOTの動作イメージ
GOTの動作イメージは以下のようになります。
スイッチ(X0)を押すと、データレジスタ(D0)と(D1)の論理積をデータレジスタ(D2)に転送します。
スイッチ(X1)を押すと、データレジスタ(D0)と(D1)の論理和をデータレジスタ(D2)に転送します。
スイッチ(X2)を押すと、データレジスタ(D0)と(D1)の排他的論理和をデータレジスタ(D2)に転送します。
同時にスイッチを押した場合、後に押した処理を優先します。
それぞれ論理演算を行った時のGOTは以下のようになります。
↓論理積
↓論理和
↓排他的論理和
解答ラダープログラム
解答のラダープログラムは以下のようになります。
【解説】
排他的論理和を求める場合は、排他的論理和命令(WXOR)を用います。
今回は「同時にスイッチを押した場合、後に押した処理を優先する」仕様のため、入力条件がONした瞬間のみ命令が実行する”パルス実行形”を用います。
パルス実行形の命令の場合、命令の語尾に”P”が付くことがほとんどです。パルス実行形の論理演算命令は以下のようになります。
パルス実行形の論理積:WANDP
パルス実行形の論理和:WORP
パルス実行形の排他的論理和:WXORP
排他的論理和命令(WXOR)については以下のページで解説しておりますので、宜しければご覧ください。
【三菱FXシリーズ】排他的論理和(WXOR)命令の指令方法とラダープログラム例4. おわりに
論理演算命令を用いたデータレジスタの練習問題を3ヶ出題しました。論理演算は様々な回路で活用することが出来るので、使用できるようになって頂ければと思います。