Introduction
All Maple Systems HMIs programmed with EBPro (EasyBuilder Pro), including every cMT X Series and cMT Series model, are compatible with Modbus RTU (Zero-based Addressing). Configure your Controller and HMI/cMT with the following parameters to establish reliable communication.
Applies to: EBPro (EasyBuilder Pro), EBPro
Overview
EBPro (EasyBuilder Pro) supports Modbus RTU zero-based addressing. This feature enables address range limits and data conversion for Modbus devices that use zero-based register addressing.
HMI Settings
| Parameters | Recommended | Options | Notes |
| PLC type | MODBUS RTU (Zero-based Addressing) | ||
| PLC I/F | RS485 | RS232/RS485/USB | |
| Baud rate | 9600 | 9600~115200 | |
| Data bits | 8 | 7, 8 | |
| Parity | Even | Even, Odd, None | |
| Stop bits | 1 | 1, 2 | |
| PLC sta. no. | 1 | 0~255 | |
| Online simulator | Yes | ||
| Broadcast command | Yes | ||
| Extended address mode | Yes |

Address Range Limit
The address range for device types 0x, 1x, and 0x_multi_coils can be configured. This option should be used then the controller’s bit register address range is not a multiple of 16.
For example, if the range is 0x1 ~ 0x6 or 0x9 ~ 0x14, communication will not be possible. To ensure effective communication between the HMI and the controller, please follow the configuration instructions below.
Address Range Limit: 0x-1~6

Address Range Limit: 0x_1-9~14

Conversion
The 3x_Double and 4x_Double address types are added. If [ABCD ->CDAB] check box is selected, please select 3x_Double and 4x_Double address types.
PLC Settings:
Communication Mode: Modbus RTU protocol
| Bit/Word | Device Type | Format | Range | Memo |
| B | 0x | DDDDD | 0~65535 | Output bit |
| B | 0x_multi_coils | DDDDD | 0~65535 | Write multiple coils |
| B | 0x_single_bit | DDDDD | 0~65535 | Note 4 |
| B | 1x | DDDDD | 0~65535 | Input bit (read only) |
| B | 1x_single_bit | DDDDD | 0~65535 | Note 4 |
| B | 3x_Bit | DDDDDdd | 0~6553515 | Input Register bit |
| B | 4x_Bit | DDDDDdd | 0~6553515 | Output Register bit |
| B | 6x_Bit | DDDDDdd | 0~6553515 | Output Register bit |
| B | 0x_1 | DDDDD | 0~65535 | |
| B | 0x_2 | DDDDD | 0~65535 | |
| B | 0x_3 | DDDDD | 0~65535 | |
| B | 0x_4 | DDDDD | 0~65535 | |
| B | 0x_5 | DDDDD | 0~65535 | |
| B | 0x_6 | DDDDD | 0~65535 | |
| B | 0x_7 | DDDDD | 0~65535 | |
| B | 0x_8 | DDDDD | 0~65535 | |
| B | 0x_9 | DDDDD | 0~65535 | |
| B | 1x_1 | DDDDD | 0~65535 | |
| B | 1x_2 | DDDDD | 0~65535 | |
| B | 1x_3 | DDDDD | 0~65535 | |
| B | 1x_4 | DDDDD | 0~65535 | |
| B | 1x_5 | DDDDD | 0~65535 | |
| B | 1x_6 | DDDDD | 0~65535 | |
| B | 1x_7 | DDDDD | 0~65535 | |
| B | 1x_8 | DDDDD | 0~65535 | |
| B | 1x_9 | DDDDD | 0~65535 | |
| W | 3x | DDDDD | 0~65535 | Input Register (read only) |
| W | 3x_MAX1W | DDDDD | 0~65535 | Display 32 bits Note 1 |
| DW | 3x_MAX2W | DDDDD | 0~65535 | Note 1 |
| W | 3x_Double | DDDDD | 0~65535 | Note 2 |
| QW | 3x_QWord | DDDDD | 0~65535 | 64-bit |
| W | 4x | DDDDD | 0~65535 | Output Register |
| W | 4x_MAX1W | DDDDD | 0~65535 | Display 32 bits Note 1 |
| DW | 4x_MAX2W | DDDDD | 0~65535 | Note 1 |
| W | 4x_Double | DDDDD | 0~65535 | Note 2 |
| W | 4x_32Bit | DDDDD | 0~65535 | Output Register Note 1 |
| QW | 4x_QWord | DDDDD | 0~65535 | 64-bit |
| W | 0x_songle_coil | DDDDD | 0~65535 | Note 3 |
| DW | 5x | DDDDD | 0~65535 | 4x double word swap |
| W | 6x | DDDDD | 0~65535 | 4x single word write |
Note 1: MAX1W and 4X_32Bit reads/writes 1 word for each packet and displays a 32-bit value, whereas MAX2W reads/writes 2 words for each packet.
Note 2: Go the [System Parameter Settings] -> [Device Properties] and click [Conversion] to set the data format of device types 3x, 4x, 6x, 3x_double, 4x double

Note 3: Read/write a Bit at a time. Value 0 and 1 are used to represent ON or OFF status where 0 means set OFF and 1 means set ON.
Note 4: The number of bits to read can be set in Macro; therefore, it is recommended to use 0x address type for functions such as GetData() and SetData(), in order to increase reading speed.
To read/write multiple 0x address type in macro, use 0x_multi_coils to increase write speed.
Note 5: Please assign all the addresses to Even addresses, or all to Odd addresses, in order to prevent communication failure.
Note 6: EBPro V6.03.02 or later supports 64 bits data type (cMT Series only), but please note that the address limit range is 48 bits in maximum
NOTE: Address type “5x” is mapped to Holding Register. The communication protocol of 5x is almost the same as “4x” except that “5x” swaps double word.
If 4x contains the following information:
| Address | 1 | 2 | 3 | 4 | 5 | 6 |
| Data in word | 0x1 | 0x2 | 0x3 | 0x4 | 0x5 | 0x6 |
| Data | 0x0201 | 0x0201 | 0x0403 | 0x0403 | 0x0605 | 0x0605 |
For 5x, it will be:
| Address | 1 | 2 | 3 | 4 | 5 | 6 |
| Data in word | 0x1 | 0x2 | 0x3 | 0x4 | 0x5 | 0x6 |
| Data | 0x0102 | 0x0102 | 0x0304 | 0x0304 | 0x0506 | 0x0506 |
Modbus RTU Function Code
| Device Type | Read | Write |
| 0x | 0x01 Read coil | 0x05 write single coil |
| 0x_multi_coils | 0x01 Read coil | 0x0f write multiple coils |
| 1x | 0x02 Read discrete input | X |
| 3x / 3x_Bit | 0x04 Read input register | X |
| 4x / 4x_Bit | 0x03 Read holding register | 0x10 write multiple registers |
| 5x | 0x03 Read holding register | 0x10 write multiple registers |
| 6x | 0x03 Read holding register | 0x06 write single register |
| 0x_single_coil | 0x01 Read coil | 0x05 write single coil |
Wiring Diagram
NOTE: The serial port pin assignments may vary between HMI models.
Diagram 1
RS-232
| HMI | Direction | PLC |
|---|---|---|
| Pin assignments | RS232 | |
| Rx | ↔ (bidirectional) | TXD |
| Tx | ↔ (bidirectional) | RXD |
| GND | ↔ (bidirectional) | GND |
| ↕︎ (tie) | RTS CTS |
Diagram 2
RS-485 4W
| HMI | Direction | PLC |
|---|---|---|
| Pin assignments | RS485 4W | |
| Rx- | ↔ (bidirectional) | Tx- |
| RX+ | ↔ (bidirectional) | Tx+ |
| Tx- | ↔ (bidirectional) | Rx- |
| Tx+ | ↔ (bidirectional) | Rx+ |
| GND | ↔ (bidirectional) | GND |
Diagram 3
RS-485 2W
| HMI | Direction | PLC |
|---|---|---|
| Pin assignments | RS485 2W | |
| Data- | ↔ (bidirectional) | D- |
| Data+ | ↔ (bidirectional) | D+ |
| GND | ↔ (bidirectional) | GND |
