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