三菱電機製シーケンサFXシリーズにおける「グレイコード変換」命令とは、BIN値をグレイコードに変換して転送するラダープログラム命令です。(BIN値⇒グレイコード)
この記事では、三菱電機製シーケンサFXシリーズにおけるグレイコード変換命令の指令方法とラダープログラム例について解説します。
三菱電機製シーケンサFXシリーズにおいて、グレイコード変換命令は以下のシーケンサ・バージョンで使用することが可能です。
| FX3S | :Ver1.00以降 |
| FX3G | :Ver1.00以降 |
| FX3GC | :Ver1.40以降 |
| FX3U | :Ver2.20以降 |
| FX3UC | :Ver1.00以降 |
逆に、グレイコードをBIN値に変換する「グレイコード逆変換」命令が用意されています。グレイコード逆変換命令については以下のページで解説しておりますので、宜しければご覧ください。
目次
1. グレイコード変換命令の指令方法
グレイコード変換命令には、4種類の指令方法があります。
| GRY | :16ビット連続実行形 |
| GRYP | :16ビットパルス実行形 |
| DGRY | :32ビット連続実行形 |
| DGRYP | :32ビットパルス実行形 |
GRYは、グレイコード(Gray code)の略です。
パルス実行形は、入力条件がONしたときの1スキャンのみ実行される命令です。
GRY:16ビット連続実行形(基本の形)
16ビット連続実行形のグレイコード変換命令は”GRY”と指令します。
こちらがGRY命令を使用したラダープログラム例です。

このラダープログラムは、入力条件であるX0がONしている間、10進数の定数5をグレイコードに変換してD0に転送しています。
X0がONしたときのD0のデバイス値は以下のようになります。

10進数の5はグレイコードにすると「111」となります。

16ビット実行形の場合、転送元は0~32,767の数値が使用可能です。
先ほどのラダープログラムはGX Works2の回路上で GRY K5 D0 と入力してEnterキーを押すと命令が挿入されます。

GRYP:16ビットパルス実行形
16ビットパルス実行形のグレイコード変換命令は”GRYP”と指令します。
こちらがGRYP命令を使用したラダープログラム例です。

連続実行形(GRY命令)との違いは、入力条件であるX0がON中に転送元の値が変わっても転送先の値は追従して変化しない。ことです。
DGRY・DGRYP:32ビット実行形
32ビット連続実行形のグレイコード変換命令は”DGRY”と指令します。
32ビットパルス実行形のグレイコード変換命令は”DGRYP”と指令します。
こちらがDGRY・DGRYP命令を使用したラダープログラム例です。


32ビット実行形の場合、転送元・転送先のデバイスは指定されたデータレジスタを下位とする2ワード(32ビット)として扱われます。
32ビット実行形の場合、転送元は0~2,147,483,647の数値が使用可能です。
↑のラダープログラムの場合、転送先はD0・D1になります。
2.【例題①】グレイコード変換(定数)
下記仕様のラダープログラムをグレイコード変換命令を用いて解説します。

データレジスタD0~D7に定数をグレイコード形式で格納します。
GOTの動作イメージ
GOTの動作イメージは以下のようになります。

スイッチ(X0)を押すと、データレジスタD0~D7にグレイコード形式で0~7を転送します。
ラダープログラム
ラダープログラムは以下のようになります。

X0を入力条件とするGRY命令をデータレジスタD0~D7に使用します。
X0がONしたとき、定数0~7をデータレジスタD0~D7にグレイコード形式で転送します。
3.【例題②】グレイコード変換(デバイス値)
下記仕様のラダープログラムをグレイコード変換命令を用いて解説します。
グレイコード変換命令を用いて、データレジスタD0の値をグレイコード形式でD1に転送します。
GOTの動作イメージ
GOTの動作イメージは以下のようになります。

スイッチ(X0)を押すと、10進数表示のデータレジスタD0の値をD1にグレイコード形式で転送します。
データレジスタD0は10進数で表示されていますが、ラダープログラム上ではBIN値をして扱われています。
ラダープログラム
ラダープログラムは以下のようになります。

GRY命令を用いてデータレジスタD0の値をD1にグレイコード形式で格納します。
4. おわりに
三菱電機製シーケンサFXシリーズにおけるグレイコード変換命令について解説しました。


