設計通りなのに、装置が動かない。
なんで、こんなことになったのか…

『徒然草 第五十二段 仁和寺にある法師』より

FA装置の『少しのこと』 / 心にうつりゆくよしなし事 / プロフィール / X

【PLCのBMOV命令】


初心者の頃に知っておきたかった ~続き番号のレジスタを一括転送

【BMOV命令とは?】

「block move」の略。基本の書式は下記。

BMOV D0 D100 K5

転送元から転送先のレジスタに、転送レジスタ数だけ、続き番号のレジスタを一括転送する。
例えば「転送元:D0、転送先:D100、転送レジスタ数:5」なら「D0、D1、D2、D3、D4の数値をD100、D101、D102、D103、D104に転送」する。

【BMOV命令の使用例】

続き番号の複数デバイスの一括転送に使う。

下記の例では、D0~D4の5ワードを、D100~D104へ転送する。
「BMOV」命令の使用有無で、「縦の長さ」、つまりステップ数が大きく異なる。

①MOV命令

同じ処理をレジスタごとに書く必要がある。

MOV D0 D100
MOV D1 D101
MOV D2 D102
MOV D3 D103
MOV D4 D104

②BMOV命令

続き番号のレジスタであれば、一括転送できる。

BMOV D0 D100 K5

下記のリンク先で説明しているが、 インデックスレジスタと組合せることで、さらに柔軟なレジスタ転送が可能になる。

【BMOV命令の使用上の注意】

転送元と転送先のデバイス領域が重ならないように注意する。
※PLCの機種によって自動で考慮される場合とデータが上書き破壊される場合がある。
下記の例は、D2~D5が重なっている。

BMOV D0 D2 K5
転送元D0D1D2D3D4D5
転送先D2D3D4D5D6D7