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

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

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

【PLCのインデックスレジスタとBMOV命令の組合せ】


初心者の頃に知っておきたかった ~複数デバイスを一括で読出、保存する

【インデックスレジスタとBMOVでの読出、保存】

品種ごとの数値パラメータが下記とする。

品種No.各品種の
パラメータ
品種0D0~D4
品種1D5~D9
品種2D10~D14
品種3D15~D19
品種4D20~D24

【読出と保存の処理】

読出の処理

下記の2行となる。

-| X0|--+--[ *     D50    K5     Z0 ]
            +--[ BMOV  D0Z0   D100   K5 ]

1行目の説明

-| X0|--+--[ *     D50    K5     Z0 ]

D50に、読み出したい品種番号0~4を格納する。
1品種あたり5ワードを使用するため、D50を5倍した値をZ0へ格納する。例えば、「D50=2ならZ0=10」になる。

D5001234
Z005101520

2行目の説明

--[ BMOV  D0Z0   D100   K5 ]

Z0=10のとき、「D0Z0の参照先はD0+10=D10」となる。そのため、BMOV命令が、「D10~D14をD100~D104へ一括転送」となる。

Z005101520
D0Z0の
参照先
D0D5D10D15D20
BMOV
転送元
D0
~D4
D5
~D9
D10
~D14
D15
~D19
D20
~D24
BMOV
転送先
D100~D104

保存処理

BMOVの転送元と転送先を読出の処理とは逆にする。要は、2行目の「D0Z0」と「D100」の並びを入れ替える。

-| X1|--+--[ *     D50    K5     Z0 ]
            +--[ BMOV  D100 D0Z0 K5 ]

【実務上の注意】

・パラメータを追加する可能性がある場合、続き番号を空きデバイスとして確保しておく。

【インデックスレジスタとBMOV】

・説明に使用したインデックスレジスタとBMOVの使い方はこちら↓