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

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

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

この記事中の問題を解くことができれば、
・データレジスタの基本が理解できている。
・基本的な転送命令を使うことができる。
・インクリメント命令・デクリメント命令を使うことができる。
と言えます。

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

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

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

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

1. 【1問目】データレジスタに定数を転送

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

仕様
スイッチ(X0)を押すと、データレジスタ(D0)に定数4を転送する。
スイッチ(X0)を離すと、データレジスタ(D0)に定数0を転送する。

データレジスタに定数を転送するために、転送命令(MOV命令)を使用します。

タイムチャート

タイムチャートは以下のようになります。

練習問題1問目_タイムチャート

X0がONしている間、D0に定数4を転送します。X0がOFFするとD0に定数0を転送します。

GOTの動作イメージ

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

練習問題1問目_GOT

解答ラダープログラム

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

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

【解説】
データレジスタに定数を転送するために、転送命令(MOV命令)を使用します。

X0がONすると、転送命令にてD0に定数4を転送します。

その後、X0がOFFしてもD0には定数4が保持されます。X0がOFFの状態で定数0を転送する必要があります。

転送命令がよくわからない…という方は、下記の記事で転送命令について解説しているので、宜しければご覧ください。

00_【三菱FXシリーズ】転送(MOV)命令の指令方法とラダープログラム例【三菱FXシリーズ】転送(MOV)命令の指令方法とラダープログラム例

2. 【2問目】インクリメント命令とデクリメント命令

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

仕様
スイッチ(X0)を押すたび、データレジスタ(D0)を1ずつ加算する。
スイッチ(X1)を押すたび、データレジスタ(D0)を1ずつ減算する。

1ずつ加算することを「インクリメント」といい、1ずつ減算することを「デクリメント」といいます。

インクリメントするためには、インクリメント命令(INC命令)を用います。

デクリメントするためには、デクリメント命令(DEC命令)を用います。

タイムチャート

タイムチャートは以下のようになります。

練習問題2問目_タイムチャート

X0がONするたびにD0を1ずつ加算します。

D0の値が「3以上かつ5以下」の場合、Y0がONします。

GOTの動作イメージ

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

練習問題2問目_GOT

スイッチ(X0)を押すたびに、データレジスタ(D0)を1ずつ加算します。

スイッチ(X1)を押すたびに、データレジスタ(D0)を1ずつ減算します。

解答ラダープログラム

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

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

【解説】
データレジスタD0を加算させるため、インクリメント命令を使用します。
入力条件であるX0がONするたびに1ずつ加算させるので、INCP:パルス実行形を用います。

データレジスタD0を減算させるため、デクリメント命令を使用します。
入力条件であるX1がONするたびに1ずつ減算させるので、DECP:パルス実行形を用います。

インクリメント命令・デクリメント命令がよくわからない…という方は、下記の記事で解説しているので、宜しければご覧ください。

00_【三菱FXシリーズ】インクリメント(INC)・デクリメント(DEC)命令の指令方法とラダープログラム例【三菱FXシリーズ】インクリメント(INC)・デクリメント(DEC)命令の指令方法とラダープログラム例

3. 【3問目】データレジスタの値を転送

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

仕様
スイッチ(X0)を押すたび、データレジスタ(D0)を1ずつ加算する。
スイッチ(X1)を押すたび、データレジスタ(D0)を1ずつ減算する。
スイッチ(X2)を押すと、その時のデータレジスタ(D0)の値をデータレジスタ(D1)に転送する。

【2問目】に対して、仕様が追加されました。

データレジスタ(D0)の値をデータレジスタ(D1)に転送するためには、転送命令(MOV命令)を使用します。

タイムチャート

タイムチャートは以下のようになります。

練習問題3問目_タイムチャート

X0がONするとD0は加算、X1がONするとD0は減算する仕様は【2問目】と同様です。

X2がONすると、その時のD0の値をD1に転送します。

GOTの動作イメージ

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

練習問題3問目_GOT

スイッチ(X0)を押すたびに、データレジスタ(D0)を1ずつ加算します。

スイッチ(X1)を押すたびに、データレジスタ(D0)を1ずつ減算します。

スイッチ(X2)を押すと、その時のデータレジスタ(D0)の値をデータレジスタ(D1)に転送します。

解答ラダープログラム

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

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

【解答】
インクリメント命令とデクリメント命令のラダープログラムは【2問目】と同様です。

X2がONしたとき、D0の値をD1に転送するために転送命令(MOV命令)を使用します。[MOV D0 D1]はD0の値をD1に転送する命令になります。


4. おわりに

基礎的なデータレジスタの練習問題を3ヶ出題しました。転送命令・インクリメント命令・デクリメント命令はいずれも使用する頻度が多い命令になるので、理解しておくと色々な場面で使用できるかと思います。

コメントを残す

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