### Modbus (RTU)

#### Modbus (RTU)対応IEC機器変数アドレス範囲

IEC61131シンタックスをチェックした場合の機器変数アドレス範囲を次の表に示します。

変数 | ビットアドレス | ワードアドレス | 詳細
--- | --- | --- | ---
入力
%Ii | i = 0-255 | -- | 読出しのみ。入力を表します。範囲：0～255 入力アドレスは%Ii.i.i、%IWi.i.i、%IWi.i.i:Xjのように2～6セグメントで構成されます。各セグメントは関連I/Oに対する物理ラック、モジュール、チャネル、その他必要なデバイスを示します。 ワードアドレス内のビット定義については、jはビットインデックスであり、0は最下位ビット、15は最上位ビットを表します。
%IWi:Xj | i = 0-255 j = 0-15 | --
%IWi | -- | i = 0-255
定数
%KWi:Xj | i = 0から65535 j = 0-15 | -- | 読出しのみ。定数を表します。 jはビットインデックスであり、0は最下位ビット、15は最上位ビットを表します。
%KWi | -- | i = 0から65535 | 読出しのみ。定数を表します。
メモリ
%MDi | -- | i=0から65534 | 読出し/書込みアクセス。 機器変数コーディングを行う場合は、ソフトウェアにより最上位バイトが選択される可能性あり。
%MFi | -- | i=0から65534
%Mi | i = 0から65535 | -- | 読出し/書込みアクセス。
%MWi:Xj | i = 0から65535 j=0から15 | -- | 読出し/書込みアクセス。 jはビットインデックスであり、0は最下位ビット、15は最上位ビットを表します。
%MWi | -- | i=0から65535 | 読出し/書込みアクセス。
出力
%Qi | i = 0-255 | -- | 読出しのみ。出力を表します。範囲：0～ 255 出力アドレスは%Qi.i.i、%QWi.i.i、%QWi.i.i:Xjのように2～6セグメントで構成されます。各セグメントは関連I/Oに対する物理ラック、モジュール、チャネル、その他必要なデバイスを示します。 ワードアドレス内のビット定義については、jはビットインデックスであり、0は最下位ビット、15は最上位ビットを表します。
%QWi:Xj | i = 0-255 j = 0-15 | --
%QWi | -- | i = 0-255
System
%Si | i=0-999 | -- | 読出し/書込み（ビット/ワード番号による）。 jはビットインデックスであり、0は最下位ビット、15は最上位ビットを表します。
%SWi:Xj | i=0-999 j = 0-15 | --
%SWi | -- | i=0-999

MEMO

- %IWi:Xj変数または%QWi:Xj変数への書込みを行うと、表示器がワード全体を読み出し、定義されたビットを設定し、新しいワード値を接続機器

- %I、%K、%Q、%Sの各変数（およびそれぞれのWバリアント）は、XBT G表示器マシンでサポートされていません。

- 8ビットデータタイプ配列や構造体で[ベースアドレス]チェックボックスを選択し、デバイスアドレスとして%MWまたは%KWアドレスを指定した場合、各要素には連続したアドレスの下位バイトと上位バイトが割り当てられます。
  例: BYTEタイプの配列Var1
  Var1[0]...%MW1:X0
  Var1[1]...%MW1:X8
  Var1[2]...%MW2:X0

#### IEC61131シンタックスのアドレスマッピング

BLUEのアドレスマッピングは以下のとおりです。%MDと%MFは、指定したアドレスの2つの連続するワードを使用します。%KW、%KD、%KFは同様にマップされます。

#### Modbus (RTU)対応非IEC機器変数アドレス範囲

IEC61131シンタックスをチェックしなかった場合の機器変数アドレス範囲を次の表に示します。

変数 | ビットアドレス | ワードアドレス | 備考
--- | --- | --- | ---
コイル(C) | 00001-65536 | -- | 読出し/書込みアクセス。
ディスクリート入力 | 10001-165536 | -- | 読出しのみ
シングルワード入力レジスタ | 30001,0-365536,15 | 30001-365536 | 読出しのみ
シングルワード保持レジスタ | 40001,0-465536,15 | 40001-465536 | 読出し/書込みアクセス。これらビットアドレスの1つに書込みを行うと、表示器がワードアドレス全体を読み出し、定義されたビットを設定し、新しいワードアドレスを接続機器に戻します。表示器がデータを読込んで返す間に、そのワードアドレスへラダープログラムで書込み処理を行うと、正しいデータが書込めない場合があります。
ダブルワード入力レジスタ | 30001,0-365536,15 | 30001-365535 | 読出しのみ 機器変数コーディングを行う場合は、ソフトウェアにより最上位バイトが選択される可能性あり。
ダブルワード保持レジスタ | 40001,0-465536,15 | 40001-465535 | 読出し/書込みアクセス。 機器変数コーディングを行う場合は、ソフトウェアにより最上位バイトが選択される可能性あり。

#### サポートしているファンクションコード

サポートしているファンクションコード一覧を以下に示します。

ファンクションコード(Hex) | 説明
--- | ---
FC01(0x01) | スレーブのコイル(0X)のON/OFFの状態を読み出します。
FC02(0x02) | スレーブのディスクリート入力(1X)のON/OFFの状態を読み出します。
FC03(0x03) | スレーブの保持レジスタ(4X)の内容を読み出します。
FC04(0x04) | スレーブの入力レジスタ(3X)の内容を読み出します。
FC05(0x05) | スレーブのコイル(0X)の状態をON/OFFのいずれかに変更(書込み)します。
FC06(0x06) | スレーブの保持レジスタ(4X)の内容を変更(書込み)します。
FC15(0x0F) | スレーブの連続した複数のコイル(0X)の状態をON/OFFのいずれかに変更(書込み)します。
FC16(0x10) | スレーブの連続した複数の保持レジスタ(4X)の内容を変更(書込み)します。

MEMO

- 書き込みはFC15/FC16を使用して行います。左記ファンクションコードをサポートしていない接続機器に対してはFC05/FC06を使用します。