1. Overview
Mitsubishi FX3U/FX3G/FX3S series PLCs can implement Modbus RTU master or slave functions through the FX3U-485ADP-MB or FX3U-232ADP-MB communication adapter. Based on Mitsubishi's official "FX User's Manual - Communication", this article explains the Modbus address mapping rules of the FX3U series PLC in detail.
The FX3U series PLC supports two Modbus operating modes:
- Modbus RTU Master: actively reads from and writes to slave devices (such as VFDs and meters)
- Modbus RTU Slave: passively responds to the read/write requests of the host computer
2. Modbus Address Type Description
The Modbus protocol defines four data areas, each with a fixed address range and function codes:
| Modbus Address Area | Function Code | Read/Write | Data Type | Corresponding FX3U Device |
|---|---|---|---|---|
| 0xxxx (Coils) | 01 (Read Coils) / 05 (Write Single Coil) / 15 (Write Multiple Coils) | Read/Write | Bit (1 bit) | Bit devices such as Y/M/S |
| 1xxxx (Discrete Inputs) | 02 (Read Discrete Inputs) | Read-only | Bit (1 bit) | X input relays |
| 3xxxx (Input Registers) | 04 (Read Input Registers) | Read-only | Word (16 bit) | Special registers / fixed mapping |
| 4xxxx (Holding Registers) | 03 (Read Holding Registers) / 06 (Write Single Register) / 16 (Write Multiple Registers) | Read/Write | Word (16 bit) | D/R data registers |
Important note: Modbus addresses have two representations — with an area prefix (e.g. 40001) and as a pure offset (e.g. 00000). The address actually used in communication is the 0-based offset address.
3. FX3U Default Modbus Address Mapping Table
3.1 Discrete Input Area (X Input Relays) → 1xxxx
The input relays X of the FX3U are fixedly mapped to the Modbus 1xxxx discrete input area and are read-only.
| Modbus Address | FX3U Device | Description |
|---|---|---|
| 10001 | X000 | Input relay bit 0 |
| 10002 | X001 | Input relay bit 1 |
| 10003 | X002 | Input relay bit 2 |
| 10004 | X003 | Input relay bit 3 |
| 10005 | X004 | Input relay bit 4 |
| 10006 | X005 | Input relay bit 5 |
| 10007 | X006 | Input relay bit 6 |
| 10008 | X007 | Input relay bit 7 |
| 10009 | X010 | Input relay bit 8 (octal) |
| 10010 | X011 | Input relay bit 9 (octal) |
| ... | ... | And so on; X uses octal addressing |
| 10256 | X337 | Maximum address (depending on the number of I/O points) |
Note: The X/Y inputs and outputs of FX series PLCs use octal addressing, not decimal! X0-X7 are the first 8 bits, X10-X17 are the next 8 bits, and so on.
3.2 Coil Area (Y/M/S, etc.) → 0xxxx
Bit devices of the FX3U such as output relays Y, auxiliary relays M and state S can be mapped to the Modbus 0xxxx coil area and are read/write.
Default mapping (example):
| Modbus Address Range | FX3U Device | Quantity | Description |
|---|---|---|---|
| 0x0000 - 0x001F (00001-00032) | Y000-Y017 | 32 points | Output relays Y (octal) |
| 0x0020 - 0x005F (00033-00096) | M0-M63 | 64 points | Auxiliary relays M |
| 0x0060 - 0x007F (00097-00128) | S0-S31 | 32 points | State S |
Description:
- The coil area mapping can be customized through parameters
- By default, the output relays Y are mapped at the very front
- The auxiliary relays M are mapped to the following area
- Each PLC device area occupies 1 bit
3.3 Holding Register Area (D/R Data Registers) → 4xxxx
The data registers D of the FX3U are mapped to the Modbus 4xxxx holding register area and are read/write.
| Modbus Address | FX3U Device | Description |
|---|---|---|
| 40001 | D0 | 0th data register |
| 40002 | D1 | 1st data register |
| 40003 | D2 | 2nd data register |
| 40004 | D3 | 3rd data register |
| ... | ... | And so on |
| 40200 | D199 | 199th data register |
| 40201 | D200 | 200th data register (retentive) |
| ... | ... | And so on |
| 48000+ | D7999+ | Maximum data register address |
Calculation formula: Modbus address = 40000 + D register number + 1
Example: to access D100, Modbus address = 40000 + 100 + 1 = 40101
D register partition description:
| D Register Range | Points | Description |
|---|---|---|
| D0-D199 | 200 points | General-purpose, can be changed to retentive |
| D200-D511 | 312 points | Retentive, can be changed to non-retentive |
| D512-D7999 | 7488 points | Retentive; after D1000 it can be set as file registers |
3.4 Input Register Area → 3xxxx
The 3xxxx input register area of the FX3U is usually used for read-only data, and its mapping is relatively fixed.
- Input registers are read-only
- They are usually mapped to the data registers of analog input modules
- The specific address depends on the model and quantity of the analog modules installed
4. User-Defined Device Allocation
The Modbus address mapping of the FX3U is configurable. Through the user-defined device allocation function, different PLC devices can be mapped into the Modbus address space.
Configuration rules:
- Coils (0xxxx) and holding registers (4xxxx) are configurable
- The mapping of discrete inputs (1xxxx) and input registers (3xxxx) is fixed
- Up to 8 PLC device areas can be mapped into the Modbus address space
- Each group of configuration information occupies 2 registers
Configuration steps:
- Open the PLC parameter settings in the GX Works2 programming software
- Locate the "Modbus serial communication" setting item
- Configure the device type and starting address to be mapped
- Set the number of devices to be mapped
- Download the parameters to the PLC
5. PLC Slave Configuration Steps
5.1 Install the Communication Adapter
- Install the FX3U-485ADP-MB communication adapter on the left side of the PLC
- Confirm that the adapter model supports Modbus RTU (with the -MB suffix)
- Wiring: connect A+ to the A line of RS485 and B- to the B line of RS485
5.2 Set the Communication Parameters
Set the communication format through the special data register D8120:
| D8120 Setting (H) | Baud Rate | Data Bits | Parity | Stop Bits |
|---|---|---|---|---|
| H0000 | - | 8 bits | No parity | 1 bit |
| H0080 | 600 bps | 8 bits | No parity | 1 bit |
| H0081 | 600 bps | 8 bits | Odd parity | 1 bit |
| H0082 | 600 bps | 8 bits | Even parity | 1 bit |
| H00B0 | 19200 bps | 8 bits | No parity | 1 bit |
| H00B1 | 19200 bps | 8 bits | Odd parity | 1 bit |
| H00B2 | 19200 bps | 8 bits | Even parity | 1 bit |
Common configuration: 9600 bps, 8 data bits, even parity, 1 stop bit → D8120 = H00A2
5.3 Set the Slave Address
Set the Modbus slave address through the special data register D8121:
- D8121 = slave address (1-247)
- For example: D8121 = 1 means the slave address is 1
5.4 Call the Modbus Instructions
Use the dedicated Modbus communication instructions:
- Master mode: use the dedicated ADPRW (FNC276) Modbus read/write instruction. ADPRW is a single instruction that selects read or write by the function code (S1): H01 read coils, H02 read discrete inputs, H03 read holding registers, H04 read input registers, H05 write single coil, H06 write single register, H0F write multiple coils, H10 write multiple registers, H17 read/write multiple registers. Format ADPRW S S1 S2 S3 S4 D: S = slave node address (0 = broadcast), S1 = function code, S2/S3/S4 = command parameters (start address, quantity, etc.), D = start device for the response/data. There are no separate ADPU and REPU instructions on the FX3U; both reading and writing are performed by ADPRW with the corresponding function code
- Slave mode: enable the slave mode in the parameters, and the PLC responds automatically
6. Example: PLC Master Reading a VFD
Suppose the FX3U acts as a master and reads the running frequency of a Mitsubishi VFD:
| Monitoring Item | VFD Instruction Code | Modbus Address | Description |
|---|---|---|---|
| Operation mode | H7B | 40010 | Running status |
| Output frequency (speed) | H6F | 40201 | Actual output frequency |
| Output current | H70 | 40202 | Motor current |
| Output voltage | H71 | 40203 | Output voltage |
Communication steps:
- Set the master communication parameters (baud rate, parity, etc.)
- Specify the slave address (the VFD station number)
- Specify the Modbus address to read
- Read the data into the specified D register
- Display or control after processing the data
7. FAQ and Troubleshooting Guide
7.1 No Communication Response
- Check the wiring: whether the RS485 A+ and B- are reversed
- Check the D8120 setting: whether the communication format is correct
- Check the D8121 setting: whether the slave address is correct
- Check the adapter model: it must be a dedicated Modbus adapter with the -MB suffix
- Measure the bus voltage: the A line should be about 200 mV above the B line
7.2 Data Cannot Be Read
- Check the device mapping: confirm whether the device to access is within the mapping range
- Check the address offset: note the difference between 1-based and 0-based
- Check octal addressing: X/Y devices are octal, not decimal
- Check the address range: whether the number of mapped devices is exceeded
7.3 Incorrect or Garbled Data
- Check the data format: 16-bit integer or 32-bit floating-point number
- Check the byte order: big-endian or little-endian, and whether they are consistent
- Check the word order: the high/low word order of 32-bit data
- Check the scaling: whether a multiplier is needed
7.4 Intermittent Communication Failures
- Check the shielded cable: whether shielded twisted-pair cable is used
- Check the bus length: whether the distance exceeds the specification
- Check interference: whether the communication cable runs parallel to power cables
- Check the termination resistor: whether 120 Ω termination resistors are fitted at both bus ends
8. Differences from the Siemens S7-200 SMART
| Comparison Item | Mitsubishi FX3U | Siemens S7-200 SMART |
|---|---|---|
| X/Y addressing | Octal | Decimal |
| Holding register mapping | Starts from D0 by default, configurable | Configured through HoldStart and MaxHold |
| Communication adapter | Requires an external FX3U-485ADP-MB | Onboard RS485 |
| Programming instructions | ADPRW (FNC276) dedicated instruction; read/write selected by function code | MBUS_CTRL/MBUS_MSG library instructions |
| Configuration method | PLC parameters + special registers | Configured by calling library instructions |
9. Summary
Modbus address mapping rules of the Mitsubishi FX3U series PLC:
- 0xxxx Coils → bit devices such as Y/M/S, configurable
- 1xxxx Discrete Inputs → X input relays, fixed mapping
- 3xxxx Input Registers → read-only, analog inputs
- 4xxxx Holding Registers → D data registers, configurable
In practice, pay special attention to the octal addressing of X/Y devices, which is the biggest difference between Mitsubishi and Siemens PLCs. It is recommended to first test with debugging software such as Modbus Poll, and write the PLC program only after confirming that the address mapping is correct.
10. Related Links
- Modbus RTU communication basics tutorial
- Mitsubishi FX3U Modbus communication configuration example
- Mitsubishi VFD Modbus control guide
- RS485 bus wiring specification
Leave a Reply