三菱電機製シーケンサiQ-Fシリーズにおける「nビットデータ転送」命令とは、指定したビットデバイス(転送元)から、他のビットデバイス(転送先)へ、指定した点数(n点)のビットデータを一括で転送するラダープログラム命令です。
通常、複数のビットを転送するには「MOV K4M100 K4Y0」のように「桁指定」を用いることが一般的ですが、BLKMOVB命令を使用すれば、桁の制限(4点・16点単位など)を意識せずに任意の点数を一度に転送できるのが大きなメリットです。
この記事では、三菱電機製シーケンサiQ-Fシリーズにおけるnビットデータ転送命令の指令方法とラダープログラム例について解説します。
三菱電機製シーケンサiQ-Fシリーズにおいて、nビットデータ転送命令は以下のCPUで使用することが可能です。
| FX5UJ | :使用可 |
| FX5U | :使用可 |
| FX5UC | :使用可 |
目次
1. nビットデータ転送命令の指令方法
nビットデータ転送命令には、2種類の指令方法があります。
| BLKMOVB | :連続実行形 |
| BLKMOVBP | :パルス実行形 |
パルス実行形は、入力条件がONしたときの1スキャンのみ実行される命令です。
BLKMOVB:連続実行形(基本の形)
連続実行形のnビットデータ転送命令は BLKMOVB と指令します。
こちらがBLKMOVB命令を使用したラダープログラム例です。

このラダープログラムでは、入力条件であるX0がONしている間、Y0~Y5(6ビット)をM0~M5(6ビット)にまとめて転送します。桁指定(K1~K8)を使用するMOV命令とは異なり、4ビット単位の制約を受けません。
nビットデータ転送命令は、転送元と転送先のデバイス範囲が重複していても転送が可能です。 内部で転送順序が自動的に調整されるため「M100から10点をM101へ1ビットずらして転送する」といった処理(↓のラダープログラム)が行えます。

このラダープログラムでは、X0がONするたび、M100~M109(10ビット)をM101~M110(10ビット)にまとめて転送してM100をOFFします。
このようなビットデータをまとめてずらす(シフト)処理は「機械のワーク在荷処理(トラッキング)」や「異常診断の履歴管理」に有効です。
先ほどのラダープログラムはGX Works3の回路上で BLKMOVB Y0 M0 K6 と入力してEnterキーを押すと挿入されます。(小文字でもOKです。)

BLKMOVBP:パルス実行形
パルス実行形のnビットデータ転送命令は BLKMOVBP と指令します。
こちらがBLKMOVBP命令を使用したラダープログラム例です。

連続実行形(BLKMOVB命令)との違いは、入力条件であるX0がON中にY0~Y5の値が変わってもM0~M5の値は追従して変化しないことです。
X0がONした瞬間、Y0~Y5(6ビット)の状態をM0~M5(6ビット)にまとめて転送します。
2.【例題】ランプの状態を内部リレーに転送する
下記仕様のラダープログラムをnビットデータ転送命令を用いて解説します。
例:スイッチ緑を押下→ランプ緑が点灯
ランプ6ヶの状態を内部リレーM0~M5に常時転送する。
ランプ6ヶの状態を内部リレーにまとめて転送する処理にnビットデータ転送(BLKMOVB)命令を使用します。
GOTの動作イメージ
GOTの動作イメージは以下のようになります。

スイッチを押している間、同色のランプが点灯します。例:スイッチ緑を押下→ランプ緑が点灯
ランプ6ヶの状態を内部リレーM0~M5に常時転送します。
ラダープログラム
ラダープログラムは以下のようになります。

スイッチ(X0~X5)がONしている間、対応するランプ(Y0~Y5)がOUT命令によって点灯します。
nビットデータ転送(BLKMOVB)命令の入力条件にSM400、転送元にランプの若番であるY0、転送先の内部リレーの若番であるM0、転送数にK6を指令することで、ランプY0~Y5の状態をM0~M5に常に転送します。
3. おわりに
三菱電機製シーケンサiQ-Fシリーズにおけるnビットデータ転送命令について解説しました。


