シーケンス制御講座

インデックス修飾

シーケンス制御講座 上級編 インデックス修飾

インデックス修飾は名前は難しいですが、使い方をおぼえるととても便利な機能です。

作成日:2016年05月10日
更新日:2022年10月10日


インデックス修飾とは

インデックス修飾について簡単に説明します。マニュアルには「インデックス修飾は,インデックスレジスタを使用した間接設定です。」と記載されています。難しく書いていますが、実際に使ってみれば簡単に使用できます。データを扱うことが多い場合に使用するといいでしょう。

データレジスタの値を変更することは簡単です。ではデータレジスタのデバイス番号(アドレス)を変更することは可能でしょうか?例えばプログラム上では「D0」と指定していますが、この「D0」を「D3」や「D100」のように色々なアドレスに変更することができるのです。これを可能にするのがインデックス修飾で、これに使うものがインデックスレジスタとなります。

インデックス修飾の使い方

データレジスタは「D」ですが、インデックスレジスタは「Z」を使用します。値はデータレジスタのように使用でき、MOVで書込みが出来ます。使い方も簡単で、まず[MOVP K3 Z1]として「Z1」のインデックスレジスタに3を書き込みます。そして「D0Z1」の用に対象のデータレジスタの後ろに続けてインデックスレジスタを書けば、「D0Z1」=「D3」のことになります。

[MOVP K1 D0Z1]と書き、「Z1」の値をあらかじめ設定して、書き込めば条件によっていろいろなアドレスに変更すれば、書込み先のデータレジスタのアドレスを変更できます。

またデータレジスタだけでなく、内部リレーに対しても使用可能です。「M0Z1」等のように書けばいいのです。「Z1」の値が100なら「M100」を指定したことと同じになります。

「M1Z0」=「M1」のアドレス部分、つまり1+「Z0」の値となります。「Z0」の値が10であれば「M11」となります。「Z」も0~始まってCPUによって上限がありますが、複数あります。機種によっては「V」も使用できます。

サンプル回路

これだけの説明では実際必要ないように見えます。単純なプログラムではまず使うことはありません。しかしデータ処理などを行う場合は使用しないと、とんでもなく長いプログラムになってしまいます。簡単な使用例を載せておきます。

上の回路図はネジ締め機を操作する回路の一部です。制御するネジ締め機は、シーケンサーからスタート信号を入れると10箇所ネジを順番に締めていくとします。現在何番目のネジを締めているかという情報は「D0」に入ってくるとします。BCDで変換するなどして、とにかく「D0」に番号が入ります。そしてネジ締め機が動作している間は「X10」が入ります。各ポイントのネジを締め終わったら、ネジ締めが正常に完了した場合「X11」に信号が、ネジ締め不良となった場合「X12」に信号が0.5秒程度入ってくるとします。

「D0」と「X11」と「X12」の情報で、現在何番目のネジを締めて、そのネジが正常に締め付けられたがどうかが分かります。これをデータレジスタに保存してみましょう。

まず、現在のネジ締めポイントは常に「Z0」に書き込みます。そしてネジ締めOKのときは1を、NGのときは2を書き込みます。上記の回路のようにしてください。すると、1番目のネジ締め情報は「D11」にはいり、2番目のネジ締め情報は「D12」にはいります。インデックスレジスタをつけているため、順番に振り分けてくれます。

これがインデックスレジスタの簡単な使用方法です。

次の項目のデータテーブルを扱うでは、もう少し詳細に説明してみます。



図解入門 よくわかる最新 シーケンス制御と回路図の基本はKindle版(電子書籍)です。単行本ご希望の方は、フォーマットで単行本を選択してください。または、トップページよりご購入ください。

Copyright (C) 2010 シーケンス制御講座, All rights reserved.