インデックスレジスタ(Z)の使用方法とラダープログラム例

00_インデックスレジスタ(Z)の使用方法とラダープログラム例

インデックスレジスタとは、接点・コイル・MOV命令などの応用命令で指定するデバイスと組み合わせて使用する特殊なレジスタです。

組み合わされたデバイスは、直接指定したデバイス番号にインデックスレジスタの値を加算したデバイスとして扱われます。

三菱電機製シーケンサでは”Z”や”V”と表記します。

この記事では、三菱電機製シーケンサ:FX3Uシリーズ、ラダープログラムはGX Works2を使用しています。

注意
同じ三菱電機製シーケンサFXシリーズでも、PCタイプによってはこの記事に書かれていることができないものがあります。ご使用のシーケンサの取説を参照してください。

1. インデックスレジスタの使い方

インデックスレジスタの使い方について解説します。

1-1. ビットデバイスに修飾

以下のラダープログラムはビットデバイス(Y0)にインデックスレジスタ(Z0)を組み合わせて使用しているものです。

ラダープログラム例①

このラダープログラムでは、出力リレーに”Y000Z0″と指定しています。

この状態を「Y0にZ0を修飾している」と表現します。

このラダープログラムは「入力リレー(X0)がONしている間、出力リレー(Y5)がONする」回路です。※Y0はONしません。

【上記のラダープログラムの解説】
ラダープログラム1行目は、転送命令(MOV)を用いて定数”5″をインデックスレジスタに転送します。※定数”5″とは厳密にいうと十進数の”5″のことです。

この転送命令(MOV)の入力条件であるM8000は三菱電機製シーケンサFXシリーズの特殊デバイスで「シーケンサがRUN中は常時ONする接点」です。

ラダープログラム例①(解説1)

転送命令については以下のページで解説しておりますので、宜しければご覧ください。

00_【三菱FXシリーズ】転送(MOV)命令の指令方法とラダープログラム例【三菱FXシリーズ】転送(MOV)命令の指令方法とラダープログラム例

ラダープログラム2行目のコイルには”Y000Z0″と指定してあります。

これは出力リレー(Y0)にインデックスレジスタ(Z0)を修飾している状態です。

インデックスレジスタが修飾されたデバイスは「直接指定したデバイス番号にインデックスレジスタの値」を加算したデバイス番号として扱われます。

解説で使用しているラダープログラムの場合、Z0には前述した通り定数”5″が格納されています。

“Y0Z0″はY(0 + Z0) = Y(0 + 5) = Y5 として扱われます。

ラダープログラム例①(解説2)

よって、(繰り返しですが)このラダープログラムは「入力リレー(X0)がONしている間、出力リレー(Y5)がONする」回路です。

メモ
インデックスレジスタが修飾されたデバイスは「直接指定したデバイス番号にインデックスレジスタの値」を加算したデバイス番号として扱われます。

1-2. ワードデバイスに修飾

インデックスレジスタは、入力リレー(X)や出力リレー(Y)といったビットデバイス以外にも、データレジスタ(D)やファイルレジスタといったワードデバイスにも使用することが可能です。

以下のラダープログラムはビットデバイス(Y0)にインデックスレジスタ(Z0)を組み合わせて使用しているものです。

ラダープログラム例②

このラダープログラムは「スイッチ(X0)がONすると、データレジスタ(D16)に定数”99″を転送する」回路です。

2. インデックスレジスタを使用したラダープログラム例

先ほどのラダープログラムの場合、インデックスレジスタを用いる利点は余りありません。ここまで読んでくださった方は「別にインデックスレジスタを使う意味ある?」と思われるでしょう。

インデックスレジスタを用いる利点の一つに「同じ処理を別々のデバイスで行う場合にラダープログラムを短縮することができる」ことがあります。

これらを踏まえて、以下の仕様のラダープログラムを考えます。

仕様
補助リレー(M100)がONしている間、補助リレー(M200)がONする。
これと同じようにM101~M199がONしている間、M201~M299がONする。

正直にラダープログラムを作成すると、入力条件がM100のa接点でコイルがM200の回路を100ヶ作ればこの仕様は作ることが可能です。

ただし、「ラダープログラムが長くなる」「打ち間違える可能性がある」といった欠点があります。

ラダープログラム例

インデックスレジスタを用いたラダープログラム

以下のようにインデックスレジスタを用いると、短くラダープログラムをまとめることが可能です。

ラダープログラム例題

【1行目】ラダープログラムの解説

【1行目】ラダープログラムの解説


入力条件である接点のM100と、出力条件であるコイルM200のどちらにもインデックスレジスタ(Z0)が修飾されています。

このインデックスレジスタ(Z0)は高速で0~99を行ったり来たりすることにより、上記仕様のラダープログラムを作成することが出来ています。

【2行目】ラダープログラムの解説

【2行目】ラダープログラムの解説

特殊デバイスM8000は常時ONする接点であり、この条件でインクリメント命令(INC)でインデックスレジスタ(Z0)を1ずつ加算しています。

このインクリメント命令(INC)は”連続実行形”であるので「入力条件がONしている間は毎スキャン実行される」ものです。

つまり、ラダープログラムがRUNになった瞬間から高速(毎スキャン)でインデックスレジスタ(Z0)が1ずつ増えていきます。

インクリメント命令については以下のページで解説しておりますので、宜しければご覧ください。

00_【三菱FXシリーズ】インクリメント(INC)・デクリメント(DEC)命令の指令方法とラダープログラム例【三菱FXシリーズ】インクリメント(INC)・デクリメント(DEC)命令の指令方法とラダープログラム例

【3行目】ラダープログラムの解説

【3行目】ラダープログラムの解説

そして、インデックスレジスタ(Z0)が”100″に到達すると、定数”0″を転送します。

インデックスレジスタ(Z0)と定数”100″を接点形比較命令を用いて比較しています。上のラダープログラムでは「Z0が100以上になったら転送命令を実行する」ものです。

接点形比較命令については以下のページで解説しておりますので、宜しければご覧ください。

00_【三菱FXシリーズ】接点形比較命令の指令方法とラダープログラム例【三菱FXシリーズ】接点形比較命令の指令方法とラダープログラム例

3. おわりに

インデックスレジスタの使用方法とラダープログラム例を解説しました。

ラダープログラム初学者にとっては少し敷居が高いデバイスかもしれませんが、使い方によっては大変便利なデバイスです。

ただし、使い方には色々な注意点がありますので今後は記事にしたいと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です