このサイトでは三菱電機シーケンサの
四則演算と増減について説明します。
ON/OFF制御だけのシーケンス制御ではなく
数値制御はPLC,シーケンサを使う価値の
一つです。
その中でも、四則演算は基本ですので
ぜひ、このサイトで概要をつかんでください。
シーケンサについてはコチラをクリック⇒
PLCとは、シーケンサとは何?が83%解消する初心者サイト
シーケンス制御についてはコチラをクリック⇒シーケンス制御とは
1.加算、ADD命令について
加算をしたい場合はADD命令を使います。
![シーケンサのラダー図例-ADD命令](https://elec-tech.info/wp-content/uploads/2017/05/plc-asmd1-300x55.png)
このラダー図はADD命令の一例になります。
ADD K25 K30 D1
と記述していますが、これは
X0のa接点が導通した場合
25+30を計算し、その計算結果を
D1のデータレジスタへ格納する
といった命令になります。
この例のように
定数Kを指定し10進数で記述すると
自動的にBIN変換されます。
ラダー図についてはコチラをクリック⇒ラダー図とは
2.減算、SUB命令について
減算をしたい場合はSUB命令を使います。
![シーケンサのラダー図例-SUB命令](https://elec-tech.info/wp-content/uploads/2017/05/plc-asmd2-300x53.png)
このラダー図はSUB命令の一例です。
SUB K40 K3 D1
と記述しています。
どう見るかはADD命令の加算が減算に
変わるだけです。
X2のa接点が導通すると
40-3の計算結果をD1の
データレジスタへ格納します。
計算する数字も定数Kで10進数で
記述します。
3.乗算、MUL命令について
乗算をしたい場合はMUL命令を使います。
![シーケンサのラダー図例-MUL命令](https://elec-tech.info/wp-content/uploads/2017/05/plc-asmd3-300x50.png)
このラダー図はMUL命令の一例です。
MUL K10 K11 D4
と記述しています。
見方はADD命令、SUB命令と同じで
10×11の計算をするのですが
データレジスタへの格納が違います。
乗算の場合は32ビットデータになります。
ですので、D*とD*+1のデータレジスタへ
計算結果を格納します。
この例ならD4とD5になります。
4.除算、DIV命令について
除算をしたい場合はDIV命令を使います。
![シーケンサのラダー図例-DIV命令](https://elec-tech.info/wp-content/uploads/2017/05/plc-asmd4-300x51.png)
このラダー図はDIV命令の一例です。
DIV K20 K3 D7
と記述しています。
見方はADD命令などと同じで
20÷3の計算をします。
ただ、データレジスタへの格納が違います。
D*へは商をD*+1へは余りを格納します。
この例なら
D7へ商の6をD8へ余りの2を格納します。
5.データレジスタで四則演算する
1項~4項ではK10など指定した定数で
計算しましたが、データレジスタで計算
することもできます。
どういったことかというと、このラダー図では
まずは
ADD K5 K30 D1
で、5+30の結果をD1のデータレジスタへ
格納します。
次の
SUB D1 K11 D4
ですが、D1とありますが
これはD1に現在格納されているデータを
使うということです。
ですので、今は35です。
35-11の計算結果をD4へ格納します。
次の
MUL D1 D4 D6
はD1とD4に現在格納されたデータをかけて
D6とD7に格納します。
ここでは、35×24になります。
このように定数だけではなく
データレジスタへ格納された数値も
使えます。
あと、
ADD D1 K30 D1
のように
計算に使ったデータレジスタに
計算結果を格納することもできます。
この例なら、D1のデータと30を足して
D1へ格納します。
6.四則演算のパルス実行について
![シーケンサの四則演算のパルス実行1](https://elec-tech.info/wp-content/uploads/2017/05/plc-asmd6-300x53.png)
このラダー図は
X0が導通するとD1と30を足すわけですが
このプログラムだとX0が導通している限り
毎スキャン足し算をするわけですから
D1の数値は増加し続けます。
D1に元々1が格納されているとすると
1+30=31
次のスキャンで31+30=61
次のスキャンで61+30=91
・・・
といったようにですね。
それを狙って実行しているならいいのですが
X0が導通した一回だけ加算したい場合は
このプログラムではなくPLS命令(パルス命令)を使います。
![シーケンサの四則演算のパルス実行2](https://elec-tech.info/wp-content/uploads/2017/05/plc-asmd7-300x50.png)
このようなラダー図にすることで
X0が導通した1スキャンだけ加算を
させることができます。
他には、四則演算の命令で
パルス実行することもできます。
この例なら
![シーケンサの四則演算のパルス実行3](https://elec-tech.info/wp-content/uploads/2017/05/plc-asmd8-300x50.png)
ADDP D1 K30 D1
とします。
加算以外では
減算・・・SUBP
乗算・・・DIVP
除算・・・MULP
となります。
PLS命令、スキャンについて
分からなかった場合は以下のサイトを
参考にしてください。
6.増減、INC命令、DEC命令について
ADD命令、SUB命令は任意の値を
増減できました。
この項では1ずつ増減するINC命令、DEC命令
について説明します。
まずはINC命令です。
![シーケンサのラダー図例-INC命令](https://elec-tech.info/wp-content/uploads/2017/05/plc-asmd9-300x63.png)
このラダー図はINC命令の一例です。
INC D1
と記述しています。
これはD1のデータレジスタへ
1を加える命令です。
D1に1を加えてD3とか別のデータレジスタへ
格納するのではなく、そのまま1加えて値を
D1へ格納します。
次はDEC命令です。
![シーケンサのラダー図例-DEC命令](https://elec-tech.info/wp-content/uploads/2017/05/plc-asmd10-300x63.png)
このラダー図はDEC命令の一例です。
DEC D1
と記述していますがこれは
INCとは逆で
D1のデータレジスタから1減らす命令です。
そして、D1から減らして別のデータレジスタへ
格納するのではなく、そのまま1を減らして
D1へ格納します。
上のラダー図では、四則演算でもありましたが
X0が導通している間は毎スキャン増減します。
X0が導通した1度(1スキャン)だけ
増減させたい場合はPLS命令を使うか
増やしたい場合は INCP命令
減らしたい場合は DECP命令
を使ってください。
まとめ
ON/OFF以外に
数値データを扱えることは、
シーケンサを使う価値の一つです。
その中で四則演算は基本中の基本です。
ぜひ、知っておいてください。
もし、そもそもシーケンス制御やシーケンサが
分からないという場合は、このサイトでは
講座もありますのでご参考ください。
あなたが、シーケンサについて0から独学で
勉強したい場合は、キット付教材もありますので
以下をクリックしてご確認ください。