このサイトでは三菱電機シーケンサの
四則演算と増減について説明します。

ON/OFF制御だけのシーケンス制御ではなく
数値制御はPLC,シーケンサを使う価値の
一つです。

その中でも、四則演算は基本ですので
ぜひ、このサイトで概要をつかんでください。

シーケンサについてはコチラをクリック⇒
PLCとは、シーケンサとは何?が83%解消する初心者サイト
シーケンス制御についてはコチラをクリック⇒シーケンス制御とは

1.加算、ADD命令について

加算をしたい場合はADD命令を使います。

シーケンサのラダー図例-ADD命令

このラダー図はADD命令の一例になります。

ADD K25 K30 D1

と記述していますが、これは
X0のa接点が導通した場合
25+30を計算し、その計算結果を
D1のデータレジスタへ格納する

といった命令になります。

この例のように
定数Kを指定し10進数で記述すると
自動的にBIN変換されます。

ラダー図についてはコチラをクリック⇒ラダー図とは

2.減算、SUB命令について

減算をしたい場合はSUB命令を使います。

シーケンサのラダー図例-SUB命令

このラダー図はSUB命令の一例です。

SUB K40 K3 D1

と記述しています。

どう見るかはADD命令の加算が減算に
変わるだけです。

X2のa接点が導通すると
40-3の計算結果をD1の
データレジスタへ格納します。

計算する数字も定数Kで10進数で
記述します。

3.乗算、MUL命令について

乗算をしたい場合はMUL命令を使います。

シーケンサのラダー図例-MUL命令

このラダー図はMUL命令の一例です。

MUL K10 K11 D4

と記述しています。

見方はADD命令、SUB命令と同じで
10×11の計算をするのですが
データレジスタへの格納が違います。

乗算の場合は32ビットデータになります。

ですので、D*とD*+1のデータレジスタへ
計算結果を格納します。

この例ならD4とD5になります。

4.除算、DIV命令について

除算をしたい場合は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.四則演算のパルス実行について

シーケンサの四則演算のパルス実行1

このラダー図は

X0が導通するとD1と30を足すわけですが

このプログラムだとX0が導通している限り
毎スキャン足し算をするわけですから
D1の数値は増加し続けます。

D1に元々1が格納されているとすると
1+30=31
次のスキャンで31+30=61
次のスキャンで61+30=91
・・・
といったようにですね。

それを狙って実行しているならいいのですが
X0が導通した一回だけ加算したい場合は
このプログラムではなくPLS命令(パルス命令)を使います。

シーケンサの四則演算のパルス実行2

このようなラダー図にすることで
X0が導通した1スキャンだけ加算を
させることができます。

他には、四則演算の命令で
パルス実行することもできます。

この例なら

シーケンサの四則演算のパルス実行3

ADDP D1 K30 D1

とします。

加算以外では

減算・・・SUBP
乗算・・・DIVP
除算・・・MULP

となります。

PLS命令、スキャンについて
分からなかった場合は以下のサイトを
参考にしてください。

→シーケンサのPLS命令,PLF命令とは

→シーケンサのプログラム処理とスキャンタイムについて

6.増減、INC命令、DEC命令について

ADD命令、SUB命令は任意の値を
増減できました。

この項では1ずつ増減するINC命令、DEC命令
について説明します。

まずはINC命令です。

シーケンサのラダー図例-INC命令

このラダー図はINC命令の一例です。

INC D1

と記述しています。

これはD1のデータレジスタへ
1を加える命令です。

D1に1を加えてD3とか別のデータレジスタへ
格納するのではなく、そのまま1加えて値を
D1へ格納します。

次はDEC命令です。

シーケンサのラダー図例-DEC命令

このラダー図はDEC命令の一例です。

DEC D1

と記述していますがこれは
INCとは逆で
D1のデータレジスタから1減らす命令です。

そして、D1から減らして別のデータレジスタへ
格納するのではなく、そのまま1を減らして
D1へ格納します。

上のラダー図では、四則演算でもありましたが
X0が導通している間は毎スキャン増減します。

X0が導通した1度(1スキャン)だけ
増減させたい場合はPLS命令を使うか

増やしたい場合は INCP命令
減らしたい場合は DECP命令

を使ってください。

まとめ

ON/OFF以外に
数値データを扱えることは、
シーケンサを使う価値の一つです。

その中で四則演算は基本中の基本です。

ぜひ、知っておいてください。

もし、そもそもシーケンス制御やシーケンサが
分からないという場合は、このサイトでは
講座もありますのでご参考ください。

→シーケンス制御とは

あなたが、シーケンサについて0から独学で
勉強したい場合は、キット付教材もありますので
以下をクリックしてご確認ください。

→初心者が手頃に手際よくシーケンサ技術を習得する方法とは