三菱電機製シーケンサiQ-Fシリーズにおける「BIN除算」命令とは、BINデータの2ヶの定数またはデバイス値を除算して商と剰余(余り)を求めるラダープログラム命令です。(A÷B=C 余り D)
この記事では、三菱電機製シーケンサiQ-FシリーズにおけるBIN除算命令の指令方法とラダープログラム例について解説します。
三菱電機製シーケンサiQ-Fシリーズにおいて、BIN除算命令は以下のCPUで使用することが可能です。
FX5UJ | :使用可 |
FX5U | :使用可 |
FX5UC | :使用可 |
三菱電機製シーケンサiQ-Fシリーズでは、他のBINデータ四則演算(加算・減算・乗算)命令が用意されています。他のBINデータ四則演算命令については以下のページで解説しております。



目次
1. BIN除算命令の指令方法
BIN除算命令には、/命令とDIV命令があります。本記事では/命令を解説します。
/命令は8種類の指令方法があります。
/ | :符号付き16ビット連続実行形 |
/P | :符号付き16ビットパルス実行形 |
/_U | :符号なし16ビット連続実行形 |
/P_U | :符号なし16ビットパルス実行形 |
D/ | :符号付き32ビット連続実行形 |
D/P | :符号付き32ビットパルス実行形 |
D/_U | :符号なし32ビット連続実行形 |
D/P_U | :符号なし32ビットパルス実行形 |
パルス実行形は、入力条件がONしたときの1スキャンのみ実行される命令です。
各データ型の表現範囲は以下のようになります。
符号付き16ビット形 | :-32768~+32767 |
符号なし16ビット形 | :0~65535 |
符号付き32ビット形 | :-2147483648~+2147483647 |
符号なし32ビット形 | :0~4294967295 |
/(_U):16ビット連続実行形(基本の形)
符号付き16ビット連続実行形のBIN除算命令は / と指令します。
こちらが/命令を使用したラダープログラム例です。

このラダープログラムでは、入力条件であるX0がONしている間、データレジスタD0からD1のデバイス値を除算した商をD2、剰余(余り)をD3に格納します。
BIN加算・減算命令と異なり、16ビット実行形の演算先は2ワード(32ビット)を占有します。
[/ D0 D1 D2]の動作は以下のようになります。
/命令は連続実行形であるため、X0がON中にD0またはD1の値が変わるとD2・D3の値も追従して変わります。
符号なし16ビット連続実行形のBIN除算命令は /_U と指令します。
こちらが/_U命令を使用したラダープログラム例です。

先ほどのラダープログラムはGX Works3の回路上で / D0 D1 D2 と入力してEnterキーを押すと挿入されます。(小文字でもOKです。)

/P(_U):16ビットパルス実行形
符号付き16ビットパルス実行形のBIN除算命令は /P と指令します。
こちらが/P命令を使用したラダープログラム例です。

連続実行形(/命令)との違いは、入力条件である入力リレーX0がON中にD0またはD1の値が変化してもD2・D3の値は追従して変化しないことです。
X0がONした瞬間、D0からD1のデバイス値を除算した商をD2、剰余(余り)をD3に格納します。
符号なし16ビットパルス実行形のBIN除算命令は /P_U と指令します。
こちらが/P_U命令を使用したラダープログラム例です。

D/(_U)・D/P(_U):32ビット実行形
符号付き32ビット連続実行形のBIN除算命令は D/ と指令します。
符号付き32ビットパルス実行形のBIN除算命令は D/P と指令します。
符号なし32ビット連続実行形のBIN除算命令は D/_U と指令します。
符号なし32ビットパルス実行形のBIN除算命令は D/P_U と指令します。
こちらがD/・D/P・D/_U・D/P_U命令を使用したラダープログラム例です。




32ビット実行形の場合、演算元のデバイスは指定されたデータレジスタを若番とする2ワード(32ビット)長として扱われます。演算先は指定されたデータレジスタを若番とする2ワードを商とし、指定されたデータレジスタ+2,+3を剰余(余り)として扱われます。
↑のラダープログラムの場合、D0・D1からD2・D3のデバイス値を除算した商をD4・D5、剰余(余り)をD6・D7に格納します。

2.【例題①】1ワード長の除算値を求める(商と剰余)
下記仕様のラダープログラムをBIN除算命令を用いて解説します。
スイッチ(X1)を押すと、データレジスタD1に定数4を転送する。
スイッチ(X2)を押すと、データレジスタD0をD1で除算した商をD2、剰余をD3に転送する。
ただし、D1の値が「0」の場合は除算処理を行わない。
スイッチ(X5)を押すと、D0とD1に定数0を転送する。
※スイッチが同時に複数ONすることはないとする。
データレジスタに定数を転送するため、今回は転送(MOV)命令を使用します。三菱電機製シーケンサiQ-Fシリーズの転送(MOV)命令については以下のページで解説しております。

データレジスタD1の値が「0」であるか判定するため、接点形比較(<>)命令を使用します。接点形比較(<>)命令は指定した2ヶのデバイスの値が等しくない場合にONする命令です。
GOTの動作イメージ
GOTの動作イメージは以下のようになります。

スイッチ(X0)を押すとデータレジスタD0に定数9を、スイッチ(X1)を押すとデータレジスタD1に定数4を転送します。
スイッチ(X2)を押すと、データレジスタD0をD1で除算した商をD2、剰余(余り)をD3に転送します。
スイッチ(X5)を押すとデータレジスタD0とD1に定数0を転送します。
ラダープログラム
ラダープログラムは以下のようになります。

D0に定数9、D1に定数4を転送するために転送(MOV)命令を使用します。
X2がONすると、BIN除算(/)命令が実行されてデータレジスタD0をD1で除算した商をD2、剰余(余り)をD3に転送します。
BIN除算命令は除算データ(↑のラダープログラムではD1)が「0」の状態で実行すると演算エラーとなります。今回はD1が「0」の場合はBIN除算命令を実行しないように接点形比較(<>)命令を用いて回避しています。
3.【例題②】2ワード長の除算値を求める(商と剰余)
下記仕様のラダープログラムをBIN除算命令を用いて解説します。
スイッチ(X1)を押すと、データレジスタD2,D3に定数20,000を転送する。
スイッチ(X2)を押すと、データレジスタD0,D1をD2,D3で除算した商をD4,D5、剰余をD6,D7に転送する。
ただし、D2,D3の値が「0」の場合は除算処理を行わない。
スイッチ(X5)を押すと、D0~D3に定数0を転送する。
※スイッチが同時に複数ONすることはないとする。
【例題①】と考え方は同じですが、扱う定数の値が大きいのでデータレジスタは2ワード(32ビット)長で使用します。
GOTの動作イメージ
GOTの動作イメージは以下のようになります。

スイッチ(X0)を押すとデータレジスタD0・D1に定数70,000を、スイッチ(X1)を押すとデータレジスタD2・D3に定数20,000を転送します。
スイッチ(X2)を押すとデータレジスタD0・D1をD2・D3で除算した商をD4・D5、剰余(余り)をD6・D7に転送します。
スイッチ(X5)を押すとデータレジスタD0~D3に定数0を転送します。
ラダープログラム
ラダープログラムは以下のようになります。

D0・D1に定数70,000、D2・D3に定数20,000を転送するために32ビット実行形の転送(DMOV)命令を使用します。
X2がONすると、32ビット実行形のBIN除算(D/)命令が実行されてデータレジスタD0・D1をD2・D3で除算した商をD4・D5、剰余(余り)をD6・D7に転送します。
4. おわりに
三菱電機製シーケンサiQ-FシリーズにおけるBIN除算命令について解説しました。
電気ハード設計、PLC/TPソフト設計、ロボットティーチング、制御盤製作の外注業務は、ぜひ永工舎にご相談ください。

当サイトを運営している電気設計人は、個人で永工舎として外注業務をお請けしております。
以下の参考書はラダープログラムの色々な「定石」が記載されており、実務で使用できるノウハウが多く解説されています。私がラダープログラムの参考書として自信をもってオススメできるものです。