【ラダープログラム】データレジスタ 練習問題④【3問】

00_データレジスタ 練習問題④【3問】

この記事では、データレジスタの練習問題を3ヶ出題します。

この記事中の問題を解くことができれば、
・データレジスタの基本が理解できている。
・論理演算命令が理解できている。
と言えます。

データレジスタとはなんだろう…?という方は、下記の記事でデータレジスタについて解説しているので、宜しければご覧ください。

00_データレジスタ(D)の概要と使用例データレジスタ(D)の概要と使用例

この記事中のPLCは三菱電機製シーケンサ:FX3G-60MT/ESS、ラダープログラムはソフトウェア:GX Works2を使用しています。

注意
解答のラダープログラムはあくまで一例です。
別のプログラムでも動作が同じであれば問題ありません。

1. 【1問目】論理積でデータレジスタをマスク処理

下記仕様を満たすラダープログラムを作成してください。

仕様
スイッチ(X0)を押すと、データレジスタ(D0)と定数H00FFの論理積をデータレジスタ(D2)に転送する。
※)データレジスタは1ワード(16ビット)長として扱う。
※)H00FFとは、16進数の00FFの意味です。

論理積を求めるため、論理積命令(WAND)を使用します。

GOTの動作イメージ

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

練習問題1問目_GOT

スイッチ(X0)を押している間、データレジスタ(D0)と定数H00FFの論理積をデータレジスタ(D2)に転送します。

解答ラダープログラム

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

練習問題1問目_ラダープログラム

【解説】
データレジスタ(D0)と定数H00FFの論理積を求めるため論理積命令(WAND)を使用します。

論理積命令を用いた上のラダープログラムは「データレジスタ(D0)と定数H00FFの論理積演算の結果をデータレジスタ(D2)に格納する」ものです。

論理積命令(WAND)については以下のページで解説しておりますので、宜しければご覧ください。

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

このラダープログラムについて少し掘り下げると、データレジスタ(D2)の上位8ビットは必ず”0”になります。

このような演算元(D0)のON/OFFの状態に関わらず演算先(D2)の結果をOFFにする処理を「マスク処理」と呼ぶことがあります。

上のラダープログラムの場合「データレジスタ(D2)の上位8ビットをマスクしている」と表現します。


2. 【2問目】データレジスタの論理和と論理積

下記仕様を満たすラダープログラムを作成してください。

仕様
スイッチ(X0)を押すと、データレジスタ(D0)と(D1)の論理積をデータレジスタ(D2)に転送する。
スイッチ(X1)を押すと、データレジスタ(D0)と(D1)の論理和をデータレジスタ(D3)に転送する。
※)データレジスタは1ワード(16ビット)長として扱う。

論理積については【1問目】の論理積命令(WAND)を用いて、論理和については論理和命令(WOR)を使用します。

GOTの動作イメージ

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

練習問題2問目_GOT

スイッチ(X0)を押すと、データレジスタ(D0)と(D1)の論理積をデータレジスタ(D2)に転送します。

スイッチ(X1)を押すと、データレジスタ(D0)と(D1)の論理和をデータレジスタ(D3)に転送する。

解答ラダープログラム

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

練習問題2問目_ラダープログラム

【解説】
論理積の演算結果であるデータレジスタ(D2)には【1問目】と同様に論理積命令(WAND)を用います。

論理和の演算結果であるデータレジスタ(D3)には論理和命令(WOR)を用います。

論理和命令(WOR)については以下のページで解説しておりますので、宜しければご覧ください。

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

3. 【3問目】データレジスタの論理和と論理積と排他的論理和

下記仕様を満たすラダープログラムを作成してください。

仕様
スイッチ(X0)を押すと、データレジスタ(D0)と(D1)の論理積をデータレジスタ(D2)に転送する。
スイッチ(X1)を押すと、データレジスタ(D0)と(D1)の論理和をデータレジスタ(D2)に転送する。
スイッチ(X2)を押すと、データレジスタ(D0)と(D1)の排他的論理和をデータレジスタ(D2)に転送する。
同時にスイッチを押した場合、後に押した処理を優先する。
※)データレジスタは1ワード(16ビット)長として扱う。

新たに排他的論理和を求める必要があります。これには排他的論理和命令(WXOR)を使用します。

そして、各々の論理演算の結果はすべてデータレジスタ(D2)に転送します。

GOTの動作イメージ

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

練習問題3問目_GOT

スイッチ(X0)を押すと、データレジスタ(D0)と(D1)の論理積をデータレジスタ(D2)に転送します。

スイッチ(X1)を押すと、データレジスタ(D0)と(D1)の論理和をデータレジスタ(D2)に転送します。

スイッチ(X2)を押すと、データレジスタ(D0)と(D1)の排他的論理和をデータレジスタ(D2)に転送します。

同時にスイッチを押した場合、後に押した処理を優先します。

それぞれ論理演算を行った時のGOTは以下のようになります。

↓論理積

練習問題3問目_GOT(AND)

↓論理和

練習問題3問目_GOT(OR)

↓排他的論理和

練習問題3問目_GOT(XOR)

解答ラダープログラム

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

練習問題3問目_ラダープログラム

【解説】
排他的論理和を求める場合は、排他的論理和命令(WXOR)を用います。

今回は「同時にスイッチを押した場合、後に押した処理を優先する」仕様のため、入力条件がONした瞬間のみ命令が実行する”パルス実行形”を用います。

パルス実行形の命令の場合、命令の語尾に”P”が付くことがほとんどです。パルス実行形の論理演算命令は以下のようになります。

パルス実行形の論理積:WANDP
パルス実行形の論理和:WORP
パルス実行形の排他的論理和:WXORP

排他的論理和命令(WXOR)については以下のページで解説しておりますので、宜しければご覧ください。

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

4. おわりに

論理演算命令を用いたデータレジスタの練習問題を3ヶ出題しました。論理演算は様々な回路で活用することが出来るので、使用できるようになって頂ければと思います。

コメントを残す

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