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

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

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

【PLCのインデックスレジスタ】


初心者の頃に知っておきたかった ~ラダーをまとめる基本

【インデックスレジスタの基本的な記述】

基本の書式は下記。
三菱電機 Q / Lシリーズでは「Z0〜Z19」の20個、一部機種は「Z15」まで16個が割り当てられている。

①ワードデバイスでの使用

のように、データレジスタ「D0」「D1」…の末尾にインデックスレジスタ「Z0」「Z1」…を付記する。
「D0Z0」「D1Z0」…といったレジスタの参照先は、「Z0」の数値に合わせ、下のようになる。

Z001510
D0Z0の参照先D0D1D5D10
D1Z0の参照先D1D2D6D11
D5Z0の参照先D5D6D10D15

②ビットデバイスでの使用

のように、ビットデバイス「Y0」「Y1」の末尾にインデックスレジスタを付記する。
「Z0」の数値に合わせ、下のようになる。

Z001510
Y0Z0の参照先Y0Y1Y5Y10 
Y1Z0の参照先Y1Y2Y6Y11
Y5Z0の参照先Y5Y6Y10Y15

【インデックスレジスタがおすすめの理由】

・デバイス番号だけ違う処理を1つにまとめることができ、修正も1箇所で済む。

・繰返しやBMOV命令との組合せで、デバイス番号をずらしながら繰返し、転送できる。

【インデックスレジスタでMOV命令をまとめる】

下のラダーを参照。インデックスレジスタを使用して命令文を短縮する。

③④とも、「5つのDレジスタの数値をD100へ転送する処理」だが、インデックスレジスタ「Z0」の有無で「縦の長さ」、つまりステップ数が大きく異なる。

③インデックスレジスタ未使用

DレジスタごとMOV命令が必要。

MOV D0 D100
MOV D5 D100
MOV D10 D100
MOV D15 D100
MOV D20 D100

④インデックスレジスタ使用

5行のMOV命令を2行に書き換えられる。

----+-[ * D50 K5 Z0]
      |
      +--  MOV D0Z0 D100

参照先をD0、D5、D10、D15、D20と5番ずつずらすため、D50を5倍してZ0へ格納する。
したがって、各デバイスの数値は、例えば「D50:2なら、Z0:10、D0Z0の参照先:D10」になる。

同様に、各デバイスは下記の通り。

D5001234
Z005101520
D0Z0の
参照先
D0D5D10D15D20

【ビットデバイスへの適用例】

各デバイスは下記の通りに変化

⑤インデックスレジスタ未使用

デバイスごと命令が必要。

[ M0 ]----+----[ D60 = K0 ]----( Y0 )
              |
              +----[ D60 = K1 ]-----( Y1 )
              |
              +----[ D60 = K2 ]-----( Y2 )
              |
              +----[ D60 = K3 ]-----( Y3 )
              |
              +----[ D60 = K4 ]-----( Y4 )

⑥文字色反転がインデックスレジスタ部

各デバイスの数値は、例えば「D60:2なら、Z0:2、Y0Z0の参照先:Y2」になる。

----[ MOV  D60  Z0 ]-
| 
|----[ M0 ]----( Y020 )

各デバイスは下記の通り

D6001234
Z001234
Y0Z0の参照先Y0Y1Y2Y3Y4

【インデックスレジスタの豆知識】

・マイナス数値でも使用は可能。
・パナソニックの「DTレジスタ」のように、冒頭に付記するPLCもあり。
・「インデックス修飾」とも呼ばれる。