「インクリメント」命令とは、三菱電機製シーケンサFXシリーズにおける指定したデバイスの値を1ずつ加算するラダープログラム命令です。
対して「デクリメント」命令とは、指定したデバイスの値を1ずつ減算するラダープログラム命令です。
インクリメント命令は「BIN増加」、デクリメント命令は「BIN減少」とも呼ばれます。※本記事ではインクリメント・デクリメントと表記します。
インクリメント・デクリメント命令を用いることにより、データレジスタ等のデバイス値を簡易に増減することができます。
この記事では、三菱電機製シーケンサFXシリーズにおけるインクリメント命令とデクリメント命令の指令方法とラダープログラム例について解説します。
三菱電機製シーケンサFXシリーズにおいて、インクリメント・デクリメント命令は以下のシーケンサ・バージョンで使用することが可能です。
FX3S | :Ver1.00以降 |
FX3G | :Ver1.00以降 |
FX3GC | :Ver1.40以降 |
FX3U | :Ver2.20以降 |
FX3UC | :Ver1.00以降 |
インクリメント・デクリメント命令は2ヶのデバイス値の代数的な加算・減算結果を求める命令ではありません。三菱電機製シーケンサFXシリーズでは加算(ADD)命令、減算(SUB)命令が別に用意されています。
加算(ADD)命令と減算(SUB)命令は以下のページで解説しておりますので、宜しければご覧ください。
【三菱FXシリーズ】加算(ADD)命令の指令方法とラダープログラム例 【三菱FXシリーズ】減算(SUB)命令の指令方法とラダープログラム例目次
1. インクリメント命令の指令方法
インクリメント命令には、4種類の指令方法があります。
INC | :16ビット連続実行形 |
INCP | :16ビットパルス実行形 |
DINC | :32ビット連続実行形 |
DINCP | :32ビットパルス実行形 |
INCは、増加・増量(Increment)の略です。
パルス実行形は、入力条件がONしたときの1スキャンのみ実行される命令です。
INC:16ビット連続実行形(基本の形)
16ビット連続実行形のインクリメント命令は”INC”と指令します。
こちらがINC命令を使用したラダープログラム例です。
このラダープログラムは、入力条件であるX0がONしている間データレジスタD0が毎スキャン1ずつ加算するものです。
毎スキャン1ずつ加算されるため、X0がON中はD0の値は高速で増加していきます。(以下のような動作になります。)
入力条件がONしたら1だけ加算させる場合、入力条件をパルス化するか後述するパルス実行形を使用します。
INCP:16ビットパルス実行形
16ビットパルス実行形のインクリメント命令は”INCP”と指令します。
こちらがINCP命令を使用したラダープログラム例です。
このラダープログラムは、入力条件であるX0がONしたときにデータレジスタD0が1だけ加算するものです。
X0がONしている時間に関係なく、X0がOFF→ONになった瞬間に1だけ加算されます。(以下のような動作になります。)
DINC・DINCP:32ビット実行形
32ビット連続実行形のインクリメント命令は”DINC”と指令します。
32ビットパルス実行形のインクリメント命令は”DINCP”と指令します。
こちらがDINC・DINCP命令を使用したラダープログラム例です。
32ビット実行形の場合、指定されたデバイス(↑だとD0)を下位とする2点を使用します。つまり、D0・D1を32ビットの1ヶのデバイスとして扱われます。
2. デクリメント命令の指令方法
デクリメント命令には、4種類の指令方法があります。
DEC | :16ビット連続実行形 |
DECP | :16ビットパルス実行形 |
DDEC | :32ビット連続実行形 |
DDECP | :32ビットパルス実行形 |
DECは、減少(Decrement)の略です。
パルス実行形は、入力条件がONしたときの1スキャンのみ実行される命令です。
DEC:16ビット連続実行形(基本の形)
16ビット連続実行形のデクリメント命令は”DEC”と指令します。
こちらがDEC命令を使用したラダープログラム例です。
このラダープログラムは、入力条件であるX0がONしている間データレジスタD0が毎スキャン1ずつ減算するものです。
毎スキャン1ずつ減算されるため、X0がON中はD0の値は高速で減少していきます。 (以下のような動作になります。)
入力条件がONしたら1だけ減算させる場合、入力条件をパルス化するか後述するパルス実行形を使用します。
DECP:16ビットパルス実行形
16ビットパルス実行形のデクリメント命令は”DECP”と指令します。
こちらがDECP命令を使用したラダープログラム例です。
このラダープログラムは、入力条件であるX0がONしたときにデータレジスタD0が1だけ減算するものです。
X0がONしている時間に関係なく、X0がOFF→ONになった瞬間に1だけ減算されます。(以下のような動作になります。)
DDEC・DDECP:32ビット実行形
32ビット連続実行形のデクリメント命令は”DDEC”と指令します。
32ビットパルス実行形のデクリメント命令は”DDECP”と指令します。
こちらがDDEC・DDECP命令を使用したラダープログラム例です。
32ビット実行形の場合、指定されたデバイス(↑だとD0)を下位とする2点を使用します。つまり、D0・D1を32ビットの1ヶのデバイスとして扱われます。
3.【例題①】インクリメント・デクリメント(連続実行形)
下記仕様のラダープログラム例について解説します。
スイッチ(X1)を押している間、「毎スキャン」データレジスタ(D0,D1)を1ずつ減算する。
※)データレジスタはD0を下位とする32ビットとして扱う。
毎スキャンデータレジスタを加算/減算するため、連続実行形のインクリメント・デクリメント命令を使用します。
データレジスタは32ビットとして扱うため、32ビット実行形を使用します。
GOTの動作イメージ
GOTの動作イメージは以下のようになります。
スイッチ(X0)を押している間、「毎スキャン」データレジスタ(D0,D1)を1ずつ加算します。
スイッチ(X1)を押している間、「毎スキャン」データレジスタ(D0,D1)を1ずつ減算します。
ラダープログラム
ラダープログラムは以下のようになります。
インクリメント・デクリメントともに「32ビット連続実行形」であるDINC・DDEC命令を使用します。
4.【例題②】インクリメント・デクリメント(パルス実行形)
下記仕様のラダープログラム例について解説します。
スイッチ(X1)を押すたび、データレジスタ(D0)を1ずつ減算する。
※)データレジスタは16ビットとして扱う。
スイッチを押すたびに1ずつ加算/減算するため、パルス実行形のインクリメント・デクリメント命令を使用します。
データレジスタは16ビットとして扱うため、16ビット実行形を使用します。
GOTの動作イメージ
GOTの動作イメージは以下のようになります。
スイッチ(X0)を押すたび、データレジスタ(D0)を1ずつ加算します。
スイッチ(X1)を押すたび、データレジスタ(D0)を1ずつ減算します。
ラダープログラム
ラダープログラムは以下のようになります。
スイッチを押すたび、D0を1ずつ加算・減算するために16ビットパルス実行形を使用します。
5. おわりに
三菱電機製シーケンサFXシリーズにおけるインクリメント・デクリメント命令について解説しました。
覚えておくと、色々な場面で使用することができる便利な命令かと思います。
以下の参考書はラダープログラムの色々な「定石」が記載されており、実務で使用できるノウハウが多く解説されています。私がラダープログラムの参考書として自信をもってオススメできるものです。
ただし、ラダープログラムやPLCといった電気・制御設計は参考書やWebサイトのみでの学習には必ずどこかで限界が来ます。
各メーカが販売しているPLCやプログラム作成のアプリケーションを揃えるには安くても十万円以上の大きな費用が掛かり、独学は現実的ではありません。
ラダープログラムの一番現実的な学習方法は「実務で経験を積む」ことです。電気・制御設計者はこれから更に必要な人材になり続けますので、思い切って転職する選択肢もあります。
『doda』といった大手求人(転職)サイトには電気・制御設計の求人が数多く紹介されています。※登録は無料です。
「スキルこそ今後のキャリアを安定させる最も大切な材料」と考える私にとって電気・制御設計はとても良い職業だと思います。キャリアの参考になれば幸いです。