1. 概要
三菱 FX3U/FX3G/FX3S シリーズ PLC は、通信アダプタ FX3U-485ADP-MB または FX3U-232ADP-MB を介して Modbus RTU のマスターまたはスレーブ機能を実現できます。本記事は三菱公式『FX ユーザーズマニュアル - 通信編』に基づき、FX3U シリーズ PLC の Modbus アドレスマッピングルールを詳しく説明します。
FX3U シリーズ PLC は2つの Modbus 動作モードをサポートします。
- Modbus RTU マスター(Master):スレーブ機器(インバータ、計器など)を能動的に読み書きする
- Modbus RTU スレーブ(Slave):上位機からの読み書き要求に受動的に応答する
2. Modbus アドレスタイプの説明
Modbus プロトコルは4つのデータ領域を定義しており、各領域には固定のアドレス範囲と機能コードがあります。
| Modbus アドレス領域 | 機能コード | 読み書き属性 | データ型 | 対応する FX3U デバイス |
|---|---|---|---|---|
| 0xxxx(コイル) | 01(コイル読み出し)/ 05(単一コイル書き込み)/ 15(複数コイル書き込み) | 読み/書き | ビット(1 bit) | Y/M/S などのビットデバイス |
| 1xxxx(離散入力) | 02(離散入力読み出し) | 読み取り専用 | ビット(1 bit) | X 入力リレー |
| 3xxxx(入力レジスタ) | 04(入力レジスタ読み出し) | 読み取り専用 | ワード(16 bit) | 特殊レジスタ / 固定マッピング |
| 4xxxx(保持レジスタ) | 03(保持レジスタ読み出し)/ 06(単一レジスタ書き込み)/ 16(複数レジスタ書き込み) | 読み/書き | ワード(16 bit) | D/R データレジスタ |
重要な説明:Modbus アドレスには2種類の表記があります——領域プレフィックス付き(例:40001)と純粋なオフセット(例:00000)です。実際の通信で使われるのは 0 始まり(0-based)のオフセットアドレスです。
3. FX3U デフォルト Modbus アドレスマッピング表
3.1 離散入力領域(X 入力リレー)→ 1xxxx
FX3U の入力リレー X は Modbus の 1xxxx 離散入力領域に固定マッピングされ、読み取り専用です。
| Modbus アドレス | FX3U デバイス | 説明 |
|---|---|---|
| 10001 | X000 | 入力リレー第0ビット |
| 10002 | X001 | 入力リレー第1ビット |
| 10003 | X002 | 入力リレー第2ビット |
| 10004 | X003 | 入力リレー第3ビット |
| 10005 | X004 | 入力リレー第4ビット |
| 10006 | X005 | 入力リレー第5ビット |
| 10007 | X006 | 入力リレー第6ビット |
| 10008 | X007 | 入力リレー第7ビット |
| 10009 | X010 | 入力リレー第8ビット(8進数) |
| 10010 | X011 | 入力リレー第9ビット(8進数) |
| ... | ... | 以下同様。X は8進数アドレッシング |
| 10256 | X337 | 最大アドレス(I/O 点数による) |
注意:FX シリーズ PLC の X/Y 入出力は8進数アドレッシングで、10進数ではありません! X0-X7 が先頭の8ビット、X10-X17 が次の8ビットで、以下同様です。
3.2 コイル領域(Y/M/S など)→ 0xxxx
FX3U の出力リレー Y、補助リレー M、状態 S などのビットデバイスは Modbus の 0xxxx コイル領域にマッピングでき、読み書き可能です。
デフォルトマッピング(例):
| Modbus アドレス範囲 | FX3U デバイス | 数量 | 説明 |
|---|---|---|---|
| 0x0000 - 0x001F (00001-00032) | Y000-Y017 | 32点 | 出力リレー Y(8進数) |
| 0x0020 - 0x005F (00033-00096) | M0-M63 | 64点 | 補助リレー M |
| 0x0060 - 0x007F (00097-00128) | S0-S31 | 32点 | 状態 S |
説明:
- コイル領域のマッピングはパラメータでカスタマイズ可能
- デフォルトでは、出力リレー Y が先頭にマッピングされる
- 補助リレー M はその次の領域にマッピングされる
- 各 PLC デバイス領域は1ビットを占有する
3.3 保持レジスタ領域(D/R データレジスタ)→ 4xxxx
FX3U のデータレジスタ D は Modbus の 4xxxx 保持レジスタ領域にマッピングされ、読み書き可能です。
| Modbus アドレス | FX3U デバイス | 説明 |
|---|---|---|
| 40001 | D0 | データレジスタ第0個 |
| 40002 | D1 | データレジスタ第1個 |
| 40003 | D2 | データレジスタ第2個 |
| 40004 | D3 | データレジスタ第3個 |
| ... | ... | 以下同様 |
| 40200 | D199 | データレジスタ第199個 |
| 40201 | D200 | データレジスタ第200個(保持型) |
| ... | ... | 以下同様 |
| 48000+ | D7999+ | データレジスタ最大アドレス |
計算式:Modbus アドレス = 40000 + D レジスタ番号 + 1
例:D100 にアクセスする場合、Modbus アドレス = 40000 + 100 + 1 = 40101
D レジスタの区分説明:
| D レジスタ範囲 | 点数 | 説明 |
|---|---|---|
| D0-D199 | 200点 | 汎用型、保持型に変更可能 |
| D200-D511 | 312点 | 保持型、非保持に変更可能 |
| D512-D7999 | 7488点 | 保持型、D1000以降はファイルレジスタに設定可能 |
3.4 入力レジスタ領域 → 3xxxx
FX3U の 3xxxx 入力レジスタ領域は通常、読み取り専用データに使用され、マッピングは比較的固定です。
- 入力レジスタは読み取り専用
- 通常はアナログ入力モジュールのデータレジスタにマッピングされる
- 具体的なアドレスは、装着するアナログモジュールの機種と台数に依存する
4. ユーザー定義デバイス割り当て
FX3U の Modbus アドレスマッピングは設定可能です。ユーザー定義デバイス割り当て機能により、異なる PLC デバイスを Modbus アドレス空間にマッピングできます。
設定ルール:
- コイル(0xxxx)と保持レジスタ(4xxxx)は設定可能
- 離散入力(1xxxx)と入力レジスタ(3xxxx)のマッピングは固定
- 最大8つの PLC デバイス領域を Modbus アドレス空間にマッピング可能
- 各グループの設定情報は2個のレジスタを占有する
設定手順:
- GX Works2 プログラミングソフトで PLC パラメータ設定を開く
- 「Modbus シリアル通信」設定項目を探す
- マッピングするデバイスタイプと開始アドレスを設定する
- マッピングするデバイス数を設定する
- パラメータを PLC にダウンロードする
5. PLC スレーブ設定手順
5.1 通信アダプタの取り付け
- 通信アダプタ FX3U-485ADP-MB を PLC の左側に取り付ける
- アダプタ機種が Modbus RTU をサポートすることを確認する(-MB サフィックス付き)
- 配線:A+ を RS485 の A 線に、B- を RS485 の B 線に接続する
5.2 通信パラメータの設定
特殊データレジスタ D8120 で通信フォーマットを設定します。
| D8120 設定値(H) | ボーレート | データビット | パリティ | ストップビット |
|---|---|---|---|---|
| H0000 | - | 8ビット | なし | 1ビット |
| H0080 | 600bps | 8ビット | なし | 1ビット |
| H0081 | 600bps | 8ビット | 奇数 | 1ビット |
| H0082 | 600bps | 8ビット | 偶数 | 1ビット |
| H00B0 | 19200bps | 8ビット | なし | 1ビット |
| H00B1 | 19200bps | 8ビット | 奇数 | 1ビット |
| H00B2 | 19200bps | 8ビット | 偶数 | 1ビット |
よく使う設定:9600bps、8データビット、偶数パリティ、1ストップビット → D8120 = H00A2
5.3 スレーブアドレスの設定
特殊データレジスタ D8121 で Modbus スレーブアドレスを設定します。
- D8121 = スレーブアドレス(1-247)
- 例:D8121 = 1 はスレーブアドレスが1であることを示す
5.4 Modbus 命令の呼び出し
専用の Modbus 通信命令を使用します。
- マスターモード:専用の Modbus 読み書き命令 ADPRW(FNC276)を使用します。ADPRW は1本の命令で、機能コード(S1)により読み/書きを区別します:H01 コイル読出、H02 離散入力読出、H03 保持レジスタ読出、H04 入力レジスタ読出、H05 単一コイル書込、H06 単一レジスタ書込、H0F 複数コイル書込、H10 複数レジスタ書込、H17 複数レジスタ読書。形式 ADPRW S S1 S2 S3 S4 D:S=スレーブ局番(0はブロードキャスト)、S1=機能コード、S2/S3/S4=先頭アドレス・個数などの指令パラメータ、D=データ/応答の先頭デバイス。FX3U に ADPU/REPU という2本の命令は存在せず、読み書きは ADPRW と機能コードで統一して行います
- スレーブモード:パラメータでスレーブモードを有効化すると、PLC が自動的に応答
6. PLC マスターがインバータを読み取る例
FX3U がマスターとして、三菱インバータの運転周波数を読み取る場合を想定します。
| モニタ項目 | インバータ命令コード | Modbus アドレス | 説明 |
|---|---|---|---|
| 運転モード | H7B | 40010 | 運転状態 |
| 出力周波数(速度) | H6F | 40201 | 実際の出力周波数 |
| 出力電流 | H70 | 40202 | モータ電流 |
| 出力電圧 | H71 | 40203 | 出力電圧 |
通信手順:
- マスターの通信パラメータを設定する(ボーレート、パリティなど)
- スレーブアドレスを指定する(インバータの局番)
- 読み取る Modbus アドレスを指定する
- 指定した D レジスタにデータを読み取る
- データ処理後に表示または制御する
7. よくある問題とトラブルシューティングガイド
7.1 通信が無応答
- 配線確認:RS485 の A+ と B- が逆接続されていないか
- D8120 設定確認:通信フォーマットが正しいか
- D8121 設定確認:スレーブアドレスが正しいか
- アダプタ機種確認:-MB サフィックス付きの Modbus 専用アダプタである必要がある
- バス電圧の測定:A 線は B 線より約200mV 高い必要がある
7.2 データを読み取れない
- デバイスマッピング確認:アクセスするデバイスがマッピング範囲内か確認
- アドレスオフセット確認:1始まりと0始まりの違いに注意
- 8進数アドレッシング確認:X/Y デバイスは8進数で、10進数ではない
- アドレス範囲確認:マッピングされたデバイス数を超えていないか
7.3 データが正しくない、または文字化けする
- データ形式確認:16ビット整数か32ビット浮動小数点数か
- バイトオーダー確認:ビッグエンディアンかリトルエンディアンか、一致しているか
- ワード順確認:32ビットデータの上位/下位ワードの順序
- スケーリング確認:倍率を掛ける必要があるか
7.4 偶発的な通信失敗
- シールド線確認:シールド付きツイストペアケーブルを使っているか
- バス長確認:距離が仕様を超えていないか
- 干渉確認:通信線が動力線と平行に配線されていないか
- 終端抵抗確認:バス両端に120Ωの終端抵抗を付けたか
8. シーメンス S7-200 SMART との違い
| 比較項目 | 三菱 FX3U | シーメンス S7-200 SMART |
|---|---|---|
| X/Y アドレッシング | 8進数 | 10進数 |
| 保持レジスタマッピング | デフォルトは D0 から、設定可能 | HoldStart と MaxHold で設定 |
| 通信アダプタ | 外付け FX3U-485ADP-MB が必要 | オンボード RS485 |
| プログラミング命令 | ADPRW(FNC276)専用命令(機能コードで読み/書き) | MBUS_CTRL/MBUS_MSG ライブラリ命令 |
| 設定方法 | PLC パラメータ+特殊レジスタ | ライブラリ命令の呼び出しで設定 |
9. まとめ
三菱 FX3U シリーズ PLC の Modbus アドレスマッピングルール:
- 0xxxx コイル → Y/M/S などのビットデバイス、設定可能
- 1xxxx 離散入力 → X 入力リレー、固定マッピング
- 3xxxx 入力レジスタ → 読み取り専用、アナログ入力
- 4xxxx 保持レジスタ → D データレジスタ、設定可能
実際の運用では、X/Y デバイスの8進数アドレッシングに特に注意が必要で、これが三菱 PLC とシーメンス PLC の最大の違いです。まず Modbus Poll などのデバッグソフトでテストし、アドレスマッピングが正しいことを確認してから PLC プログラムを作成することをおすすめします。
10. 関連リンク
- Modbus RTU 通信基礎チュートリアル
- 三菱 FX3U Modbus 通信設定実例
- 三菱インバータ Modbus 制御ガイド
- RS485 バス配線規格
发表回复