Mitsubishi PLC Modbus Communication Setup (FX5U, Q Series)
Mitsubishi's Modbus story is split across two very different product lines: the newer iQ-F FX5U handles Modbus TCP natively through software configuration but only as a client, while the MELSEC-Q series needs a dedicated intelligent module to speak Modbus at all. This guide covers configuring both, plus adding Modbus RTU where the built-in ports don't support it, and validating your setup against a Modbus simulator before field devices arrive.
FX5U: Modbus TCP Client via Predefined Protocol Support
| Feature | FX5U Built-In Ethernet |
|---|---|
| Modbus TCP client (master) | Yes — via Predefined Protocol Support, up to 8 simultaneous connections |
| Modbus TCP server (slave) | Not supported — the FX5U cannot accept incoming Modbus TCP connections |
| Default port | 502 (configurable, 1–65535) |
| Configuration tool | GX Works3 → Parameter → FX5U CPU Module Parameter → Ethernet Port → Basic Settings → Modbus TCP Settings |
This client-only limitation is the single most important fact to know before designing an integration around an FX5U: if your architecture needs the PLC to respond to Modbus TCP polls from a SCADA system or another master, the FX5U's built-in port can't do it. You'd need a third-party gateway or a different Mitsubishi product for that role — the FX5U can only be the one initiating requests.
Configuring FX5U Modbus TCP in GX Works3
- Open your project's CPU parameters and navigate to the Ethernet Port → Basic Settings → Modbus TCP Settings section
- Enable Modbus TCP and set the port (502 by default)
- Add each target device's IP address and the specific Modbus function code / register range to poll — the FX5U treats each as a client request, similar to how the Predefined Protocol handles other Ethernet protocols
- Download the parameters and confirm the connection status in GX Works3's diagnostics before relying on the polled data in your program logic
Adding Modbus RTU: FX5-485ADP and FX3U-485ADP-MB
Neither the FX5U nor FX3U speaks Modbus RTU over their built-in ports out of the box. To add it:
- FX5U: add an FX5-485ADP adapter, which supports Modbus RTU/ASCII in both master and slave modes over RS-485
- FX3U: add an FX3U-485ADP-MB (RS-485) or FX3U-232ADP-MB (RS-232), both with the same master/slave Modbus RTU/ASCII support
This is the opposite trade-off from Delta's DVP series (see our Delta PLC Modbus RTU guide), where RTU is built into the CPU and TCP is the newer AS-series addition — for Mitsubishi's FX line, TCP is the CPU-native option and RTU is the add-on.
MELSEC-Q Series: QJ71MB91 Module
Q-series CPUs have no native Modbus support at all — communication requires the QJ71MB91 intelligent communication module, configured with GX Configurator-MB:
- Supports Modbus RTU and Modbus ASCII over RS-232 (CH1) and RS-422/485 (CH2)
- Can run as master, slave, or both simultaneously — the module's synchronization function lets CH1 poll downstream devices as a master while CH2 answers an upstream SCADA/DCS master on the same module
- Configuration (station numbers, baud rate, register mapping) is done through GX Configurator-MB's parameter screens, separate from the main GX Works2 ladder project
This module-based approach is closer in spirit to Allen-Bradley's MVI56(E)-MCM serial module for ControlLogix (covered in our Allen-Bradley Modbus setup guide) than to the CPU-native support found on Modicon or newer Mitsubishi FX5 hardware.
Testing Against a Simulator Before Field Devices Arrive
- For FX5U: since it's Modbus TCP client-only, run ModbusSimulator in Slave mode (TCP) on a PC, then point the FX5U's Predefined Protocol Modbus request at the simulator's IP and port 502
- For Q-series QJ71MB91 or FX3U/FX5 RTU adapters in master mode, run the simulator in Slave mode over RTU (virtual/USB COM port) instead
- Load the target device's real register map into the simulator so values line up with what the actual sensor, drive, or meter will return
- Force test values and check for scaling/byte-order issues — see our byte order guide for common word-swap pitfalls
- Stop the simulator mid-poll to confirm your program correctly detects a lost connection rather than continuing to use stale data
This follows the same validation pattern described in our PLC Modbus testing tool guide — confirm the client/master side of your logic against a simulated device first, which matters even more here given the FX5U's client-only constraint means the simulator must always play the slave role in that scenario.
Common Mitsubishi Modbus Issues
FX5U "communication timeout" on a Modbus TCP request
- Remember the FX5U can only be the client — confirm the target device (or simulator) is actually running in server/slave mode and listening on the configured port
- Check the polling interval isn't faster than the target device can respond
QJ71MB91 not responding on either channel
- Verify GX Configurator-MB's parameters were actually written to the module (a separate step from the main CPU program download) and that the module's mode switch/parameters match master or slave as intended
Values read back scaled wrong or byte-swapped
- As with every PLC brand, byte/word-order mismatches on 32-bit values are the most common cause — test with a known value like 0x0102/0x0304 in the simulator before trusting real hardware
Test Your Mitsubishi Modbus Program Without Field Hardware
ModbusSimulator runs as a Modbus TCP or RTU slave (or master) on your PC, so you can validate your FX5U client requests or Q-series QJ71MB91 master/slave logic before a single sensor or drive is wired up. Free 30-day trial.
Download Free tierRelated Articles
- Delta PLC Modbus RTU Configuration Guide (DVP Series & AS Series)
- Schneider Modicon Modbus TCP Configuration Guide
- Allen-Bradley PLC Modbus Setup Guide
- Siemens S7-1200/S7-1500 Modbus TCP Setup Guide
- WinCC SCADA Modbus Integration and Testing Guide
- Ignition SCADA Modbus Driver Testing Guide
- PLC Modbus Testing Tool: Test Communication Without Field Devices
- Modbus Byte Order Explained: Big-Endian vs Little-Endian