この記事では、データレジスタの練習問題を3ヶ出題します。
この記事中の問題を解くことができれば、
・データレジスタの基本が理解できている。
・基本的な転送命令を使うことができる。
・インクリメント命令・デクリメント命令を使うことができる。
と言えます。
データレジスタとはなんだろう…?という方は、下記の記事でデータレジスタについて解説しているので、宜しければご覧ください。
データレジスタ(D)の概要と使用例この記事中のPLCは三菱電機製シーケンサ:FX3G-60MT/ESS、ラダープログラムはソフトウェア:GX Works2を使用しています。
別のプログラムでも動作が同じであれば問題ありません。
目次
1. 【1問目】データレジスタに定数を転送
下記仕様を満たすラダープログラムを作成してください。
スイッチ(X0)を離すと、データレジスタ(D0)に定数0を転送する。
データレジスタに定数を転送するために、転送命令(MOV命令)を使用します。
タイムチャート
タイムチャートは以下のようになります。
X0がONしている間、D0に定数4を転送します。X0がOFFするとD0に定数0を転送します。
GOTの動作イメージ
GOTの動作イメージは以下のようになります。
解答ラダープログラム
解答のラダープログラムは以下のようになります。
【解説】
データレジスタに定数を転送するために、転送命令(MOV命令)を使用します。
X0がONすると、転送命令にてD0に定数4を転送します。
その後、X0がOFFしてもD0には定数4が保持されます。X0がOFFの状態で定数0を転送する必要があります。
転送命令がよくわからない…という方は、下記の記事で転送命令について解説しているので、宜しければご覧ください。
【三菱FXシリーズ】転送(MOV)命令の指令方法とラダープログラム例2. 【2問目】インクリメント命令とデクリメント命令
下記仕様を満たすラダープログラムを作成してください。
スイッチ(X1)を押すたび、データレジスタ(D0)を1ずつ減算する。
1ずつ加算することを「インクリメント」といい、1ずつ減算することを「デクリメント」といいます。
インクリメントするためには、インクリメント命令(INC命令)を用います。
デクリメントするためには、デクリメント命令(DEC命令)を用います。
タイムチャート
タイムチャートは以下のようになります。
X0がONするたびにD0を1ずつ加算します。
D0の値が「3以上かつ5以下」の場合、Y0がONします。
GOTの動作イメージ
GOTの動作イメージは以下のようになります。
スイッチ(X0)を押すたびに、データレジスタ(D0)を1ずつ加算します。
スイッチ(X1)を押すたびに、データレジスタ(D0)を1ずつ減算します。
解答ラダープログラム
解答のラダープログラムは以下のようになります。
【解説】
データレジスタD0を加算させるため、インクリメント命令を使用します。
入力条件であるX0がONするたびに1ずつ加算させるので、INCP:パルス実行形を用います。
データレジスタD0を減算させるため、デクリメント命令を使用します。
入力条件であるX1がONするたびに1ずつ減算させるので、DECP:パルス実行形を用います。
インクリメント命令・デクリメント命令がよくわからない…という方は、下記の記事で解説しているので、宜しければご覧ください。
【三菱FXシリーズ】インクリメント(INC)・デクリメント(DEC)命令の指令方法とラダープログラム例3. 【3問目】データレジスタの値を転送
下記仕様を満たすラダープログラムを作成してください。
スイッチ(X1)を押すたび、データレジスタ(D0)を1ずつ減算する。
スイッチ(X2)を押すと、その時のデータレジスタ(D0)の値をデータレジスタ(D1)に転送する。
【2問目】に対して、仕様が追加されました。
データレジスタ(D0)の値をデータレジスタ(D1)に転送するためには、転送命令(MOV命令)を使用します。
タイムチャート
タイムチャートは以下のようになります。
X0がONするとD0は加算、X1がONするとD0は減算する仕様は【2問目】と同様です。
X2がONすると、その時のD0の値をD1に転送します。
GOTの動作イメージ
GOTの動作イメージは以下のようになります。
スイッチ(X0)を押すたびに、データレジスタ(D0)を1ずつ加算します。
スイッチ(X1)を押すたびに、データレジスタ(D0)を1ずつ減算します。
スイッチ(X2)を押すと、その時のデータレジスタ(D0)の値をデータレジスタ(D1)に転送します。
解答ラダープログラム
解答のラダープログラムは以下のようになります。
【解答】
インクリメント命令とデクリメント命令のラダープログラムは【2問目】と同様です。
X2がONしたとき、D0の値をD1に転送するために転送命令(MOV命令)を使用します。[MOV D0 D1]はD0の値をD1に転送する命令になります。
4. おわりに
基礎的なデータレジスタの練習問題を3ヶ出題しました。転送命令・インクリメント命令・デクリメント命令はいずれも使用する頻度が多い命令になるので、理解しておくと色々な場面で使用できるかと思います。