ラダープログラムにおけるインデックスレジスタとは、接点やコイル・応用命令(MOV命令や四則演算命令など)で指定する他のデバイスと組み合わせて使用する特殊なレジスタです。
組み合わされたデバイスは、直接指定したデバイス番号にインデックスレジスタの値を加算したデバイスとして扱われます。
インデックスレジスタを用いることで「ラダープログラム内で使用するデバイス番号をプログラム上で変更」することができます。
三菱電機製のPLCであるFXシリーズでは、インデックスレジスタは Z や V と表記します。
この記事では、三菱電機製シーケンサFXシリーズにおけるインデックスレジスタの基本的な使い方とラダープログラム例について解説します。
目次
1. インデックスレジスタの使い方
インデックスレジスタの基本的な使い方を解説します。
ビットデバイスに修飾
ビットデバイスとは、入力リレー(X)や出力リレー(Y)、補助リレー(M)といったデバイス1点が1ビットで構成されるデバイスです。
↓のラダープログラムは、出力リレー(Y0)にインデックスレジスタ(Z0)を組み合わせて使用しているものです。
ラダープログラムの2行目のコイルは”Y000Z0”と指定しています。この状態を『Y0にZ0を修飾している』と表現します。
このラダープログラムは、入力リレー(X0)がONしている間、出力リレー(Y5)がONするものです。※Y0はONしません。
↑のラダープログラムの解説をします。ラダープログラム1行目は、転送(MOV)命令を用いて定数”5”をインデックスレジスタ(Z0)に転送します。
三菱電機製シーケンサFXシリーズにおける補助リレーM8000は「シーケンサがRUN中は常時ONする」特殊なデバイスです。
転送(MOV)命令は定数やデバイス値を他のデバイスに転送する命令です。以下のページで解説しておりますので、宜しければご覧ください。
【三菱FXシリーズ】転送(MOV)命令の指令方法とラダープログラム例ラダープログラム2行目のコイルは出力リレー(Y0)にインデックスレジスタ(Z0)を装飾して”Y000Z0”と指定しています。
インデックスレジスタが修飾されたデバイスは、直接指定したデバイス番号にインデックスレジスタの値を加算したデバイス番号として扱われます。
↑のラダープログラムの場合、Z0には前述した通り定数”5”が格納されています。
”Y000Z0”は、Y(0 + Z0) = Y(0 + 5) = Y5 となります。
つまりコイルはY5として扱われ、↑のラダープログラムは入力リレー(X0)がONしている間、出力リレー(Y5)がONする動作になります。
ワードデバイスに修飾
インデックスレジスタは、ビットデバイスの他にも、データレジスタ(D)やファイルレジスタといったワードデバイスにも使用することができます。
ワードデバイスとは、デバイス1点が16ビットで構成される数値データを格納することができるデバイスです。
データレジスタ(D)については以下のページで解説しております。
【三菱FXシリーズ】データレジスタ(D)の機能と動作例 【三菱FXシリーズ】データレジスタ(D)の使い方↓のラダープログラムはデータレジスタ(D0)にインデックスレジスタ(Z0)を組み合わせて使用しているものです。
このラダープログラムは、入力リレー(X0)がONすると、データレジスタ(D16)に定数”99”を転送するものです。
2. インデックスレジスタを使用したラダープログラム例
先ほどのラダープログラムの場合、インデックスレジスタを用いる利点はありません。ここまで読んでくださった方は「インデックスレジスタを使う意味あるの?」と感じたかと思います。
インデックスレジスタを用いる利点の一つに『同じ処理を別々のデバイスで行う場合にラダープログラムを短縮することができる』ことがあります。
これらを踏まえて、以下の仕様のラダープログラムを考えます。
これと同じようにM101~M199がONしている間、M201~M299がONする。
そのまま正直にラダープログラムを作成すると、入力条件がM100~M199のa接点でコイルがM200~M299の回路を『100行分』打ち込む必要があります。
これでは「ラダープログラムが長くなる」「打ち間違える可能性がある」といった欠点があります。
インデックスレジスタを用いることで、このラダープログラムを劇的に短くすることができます。
インデックスレジスタを用いたラダープログラム
それではインデックスレジスタを用いて先ほどと同じ動作をするラダープログラムを作成します。
↓のようにインデックスレジスタを用いると、短くラダープログラムをまとめることが可能です。
このラダープログラムは、補助リレーM100がONしている間、補助リレーM200がONします。同様にM101~M199がONしている間、M201~M299がONします。
ラダープログラムの解説です。
【1行目】入力条件である接点のM100と、出力条件であるコイルM200のどちらにもインデックスレジスタ(Z0)が修飾されています。
このインデックスレジスタ(Z0)のデバイス値が高速で0~99を行ったり来たりすることにより、上記仕様の動作を実現しています。
特殊デバイスM8000は常時ONする接点であり、この条件でインクリメント(INC)命令でインデックスレジスタ(Z0)を1ずつ加算しています。
このインクリメント(INC)命令は”連続実行形”であるので「入力条件がONしている間は毎スキャン実行される」ものです。
つまり、ラダープログラムがRUNになった瞬間から高速(毎スキャン)でインデックスレジスタ(Z0)が1ずつ増えていきます。
インクリメント命令については以下のページで解説しておりますので、宜しければご覧ください。
【三菱FXシリーズ】インクリメント(INC)・デクリメント(DEC)命令の指令方法とラダープログラム例そして、インデックスレジスタ(Z0)が”100”に到達すると、定数”0”を転送します。
インデックスレジスタ(Z0)と定数”100”を接点形比較命令を用いて比較しています。↑のラダープログラムでは「Z0が100以上になったら転送命令を実行する」ものです。
接点形比較命令については以下のページで解説しておりますので、宜しければご覧ください。
【三菱FXシリーズ】接点形比較命令の指令方法とラダープログラム例3. おわりに
インデックスレジスタの使用方法とラダープログラム例を解説しました。
ラダープログラム初学者にとっては少し敷居が高いデバイスかもしれませんが、使い方によっては大変便利なデバイスです。
ただし、使い方には色々な注意点がありますので今後は記事にしたいと思います。
以下の参考書はラダープログラムの色々な「定石」が記載されており、実務で使用できるノウハウが多く解説されています。私がラダープログラムの参考書として自信をもってオススメできるものです。
ただし、ラダープログラムやPLCといった電気・制御設計は参考書やWebサイトのみでの学習には必ずどこかで限界が来ます。
各メーカが販売しているPLCやプログラム作成のアプリケーションを揃えるには安くても十万円以上の大きな費用が掛かり、独学は現実的ではありません。
ラダープログラムの一番現実的な学習方法は「実務で経験を積む」ことです。電気・制御設計者はこれから更に必要な人材になり続けますので、思い切って転職する選択肢もあります。
『doda』といった大手求人(転職)サイトには電気・制御設計の求人が数多く紹介されています。※登録は無料です。
「スキルこそ今後のキャリアを安定させる最も大切な材料」と考える私にとって電気・制御設計はとても良い職業だと思います。キャリアの参考になれば幸いです。