この記事では、ラダープログラムの四則演算を用いた練習問題を3ヶ出題します。
この記事中の問題を解くことができれば、
・データレジスタの基本が理解できている。
・基本的な四則演算命令を使うことができる。
と言えます。
ラダープログラムで四則演算の指令方法がわからない。という方は、下記の記事でそれぞれ解説しているので、宜しければご覧ください。
※対象のPLCは三菱電機製FXシリーズです。
この記事中のPLCは三菱電機製シーケンサ:FX3G-60MT/ESS、ラダープログラムはソフトウェア:GX Works2を使用しています。
別のプログラムでも動作が同じであれば問題ありません。
目次
1. 【1問目】四則演算の練習問題1(Dレジの加算・減算)
下記仕様を満たすラダープログラムを作成してください。
スイッチ(X1)を押すと、データレジスタ(D0)に定数4を転送する。
スイッチ(X2)を押すと、データレジスタ(D0)に定数8を転送する。
下記演算処理を常時行う。
D2 = D0 + 定数6
D3 = D2 – 定数3
※1)補助リレーM0は常時ONとする。
※2)データレジスタは1ワード長(16ビット)として扱う。
各スイッチを押したとき、転送命令(MOV命令)を用いて定数をデータレジスタ(D0)に転送します。
D2の値を求めるため、加算命令(ADD命令)を使用します。
D3の値を求めるため、減算命令(SUB命令)を使用します。
デバイス値の一覧
デバイス値は以下のようになります。
D2には「D0 + 定数6」を、D3には「D2 – 定数3」の演算結果が転送されます。
GOTの動作イメージ
GOTの動作イメージは以下のようになります。
各スイッチを押すと、定数をD0に転送します。
D2には「D0 + 定数6」を、D3には「D2 – 定数3」の演算結果を転送します。
解答ラダープログラム
解答のラダープログラムは以下のようになります。
【解説】
データレジスタ(D0)に定数を転送するため、転送命令(MOV命令)を使用します。
D2には加算命令(ADD命令)を用いて、D0と定数6を足した演算結果を転送しています。
D3には減算命令(SUB命令)を用いて、D2から定数3を引いた演算結果を転送しています。
どちらも16ビット形の命令になります。
転送命令がよくわからない…という方は、下記の記事で解説しているので、宜しければご覧ください。
【三菱FXシリーズ】転送(MOV)命令の指令方法とラダープログラム例2. 【2問目】四則演算の練習問題2(Dレジの乗算・除算)
下記仕様を満たすラダープログラムを作成してください。
スイッチ(X1)を押すと、データレジスタ(D0)に定数10を転送する。
スイッチ(X2)を押すと、データレジスタ(D0)に定数20を転送する。
下記演算処理を常時行う。
D2 = D0 × 定数10
D4 = D2 ÷ 定数2
※1)補助リレーM0は常時ONとする。
※2)データレジスタはD4を1ワード長(16ビット)、それ以外は2ワード長(32ビット)として扱う。
D2の値を求めるため、乗算命令(MUL命令)を使用します。
D4の値を求めるため、除算命令(DIV命令)を使用します。
デバイス値の一覧
デバイス値は以下のようになります。
D2には「D0 × 定数10」を、D4には「D2 ÷ 定数2」の演算結果が転送されます。
GOTの動作イメージ
GOTの動作イメージは以下のようになります。
各スイッチを押すと、定数をD0に転送します。
D2には「D0 × 定数10」を、D4には「D2 ÷ 定数2」の演算結果を転送します。
解答ラダープログラム
解答のラダープログラムは以下のようになります。
【解説】
D0に2ワード長の定数を転送するために、DMOV命令を使用します。
※厳密にはD0を下位とするD0,D1を2ワード長として扱います。
D2には、乗算(MUL)命令を用いてD0と定数10を掛けた演算結果を転送しています。 MUL命令は16ビット形の命令ですが、転送先は32ビットを占有します。
D4には、除算(DIV)命令を用いてD2から定数3を引いた演算結果を転送しています。
3. 【3問目】四則演算の練習問題3(タイマの加算)
下記仕様を満たすラダープログラムを作成してください。
スイッチ(X1)を押している間、タイマ(T1)がカウントアップする。
下記演算処理を常時行う。
D0 = T0 + T1
※1)補助リレーM0は常時ONとする。
※2)データレジスタは1ワード長(16ビット)として扱う。
※3)タイマは100msタイマを使用し、設定値は100(10秒)とする。
加算命令(ADD命令)をはじめ、【1問目】と【2問目】で登場した四則演算命令にはデータレジスタ以外にもタイマなどのデバイスが使用できます。
GOTの動作イメージ
GOTの動作イメージは以下のようになります。
スイッチ(X0)を押している間、タイマ(T0)がカウントアップします。
スイッチ(X1)を押している間、タイマ(T1)がカウントアップします。
データレジスタ(D0)に、タイマ(T0)とタイマ(T1)の加算結果を転送します。
解答ラダープログラム
解答のラダープログラムは以下のようになります。
【解答】
加算命令(ADD命令)をはじめとする四則演算命令には、データレジスタ以外にも色々なデバイスを指定することができます。
上のラダープログラムでは、X0がONしている時間とX1がONしている時間の加算結果をD0に転送しています。加算命令(ADD命令)は常時実行されるので、X0とX1をOFFすればD0も追従して0になります。
4. おわりに
基礎的な四則演算の練習問題を3ヶ出題しました。
転送命令や比較命令に比べると使用する頻度は低いかと思いますが、使用できるようになっておくと、ラダープログラム上でデバイスを代数的に扱うことができます。
因みに、四則演算を直訳すると下記のようになります。
加算:Addition
減算:Subtraction
乗算:Multiplication
除算:Division