Step 1

Getting Started

System Requirements

Operating System

Windows 10 or Windows 11 (64-bit)

Memory

4 GB RAM minimum

Disk Space

200 MB free space

Installation

1
Download the installer

Get the latest version from the download page. Choose between the Setup installer or Portable ZIP.

2
Run the installer

Double-click ModbusBB_Setup.exe and follow the on-screen instructions. The installer will set up both GUI and CLI tools.

3
Launch ModbusBB

Open ModbusBB from the Start menu or desktop shortcut. The GUI will open with default settings ready to connect.

4
Enter your license (optional)

If you purchased a license, go to Help > Enter License Key and paste your key. The free trial works for 30 days with 15-minute sessions.

Portable Version

Extract ModbusBB_Portable.zip to any folder and run ModbusBB.exe directly. No installation needed - perfect for USB drives and machines where you don't have admin rights.

Step 2

Connecting to Devices

Modbus TCP/IP Connection

1
Select TCP mode

In the connection panel, select "Modbus TCP/IP" as the protocol.

2
Enter device IP and port

Type the IP address of your Modbus device (e.g., 192.168.1.100) and port (default: 502).

3
Set the Slave ID

Enter the Slave ID (Unit ID) of the device (1-247). Check your device documentation if unsure.

4
Click Connect

The status bar will show "Connected" when the connection is established.

Modbus RTU (Serial) Connection

1
Select RTU mode

In the connection panel, select "Modbus RTU" as the protocol.

2
Choose COM port

Select the serial port your RS-485 adapter is connected to (e.g., COM3). Available ports are auto-detected.

3
Configure serial settings

Set the baud rate, data bits, parity, and stop bits to match your device. The most common setting is 9600, 8, N, 1 (9600 baud, 8 data bits, No parity, 1 stop bit).

4
Set Slave ID and Connect

Enter the Slave ID and click Connect. Check the communication log if the connection fails.

Common Serial Settings

Most devices: 9600, 8N1
Fast devices: 19200 or 38400, 8N1
With parity: 9600, 8E1 (Even parity)
High speed: 115200, 8N1
Step 3

Reading & Writing Data

Reading Registers

1
Select the function code

Choose the appropriate read function: FC 01 (Coils), FC 02 (Discrete Inputs), FC 03 (Holding Registers), or FC 04 (Input Registers).

2
Enter the start address

Type the register address to start reading from. You can enter decimal (100) or hex (0x0064).

3
Set the quantity

Enter how many registers to read (1-125 for registers, 1-2000 for coils).

4
Click Read

The results will appear in the data table. Change the display format (Decimal, Hex, Float32, etc.) to interpret values correctly.

Writing Values

1
Select write function

Choose FC 05 (Write Single Coil), FC 06 (Write Single Register), FC 15 (Write Multiple Coils), or FC 16 (Write Multiple Registers).

2
Enter the target address and value

Specify the register address and the value to write. Values can be entered as decimal, hex (0xFF), or binary (0b1010).

3
Click Write

The communication log will show the request and response. A successful write is confirmed by the slave echoing the request.

Writing Safety

Writing to Modbus registers can directly control industrial equipment. Always verify the target address and value before writing, especially on production systems. Refer to your device documentation for safe register ranges.

Monitoring

Auto Polling & Data Logging

Setting Up Auto Polling

Auto polling continuously reads registers at a set interval, allowing you to monitor values in real-time.

1
Configure your read request

Set the function code, start address, and quantity as you would for a single read.

2
Set the polling interval

Choose the interval between reads: 100ms, 250ms, 500ms, 1s, 2s, 5s, or 10s.

3
Start polling

Click the Start Polling button. The data table will update automatically with each poll cycle.

Exporting to CSV

Log all polled data to a CSV file for analysis in Excel or other data tools.

1
Enable data logging

Click the Log to CSV button before or during polling.

2
Choose filename

Select a location and filename, or use the auto-generated name with date/time.

3
Stop and review

Stop polling when done. Open the CSV in Excel to create charts and analyze trends.

Timestamp,Addr_0,Addr_1,Addr_2,Addr_3
2026-03-02 14:30:01,245,1023,8750,42
2026-03-02 14:30:02,246,1024,8751,42
2026-03-02 14:30:03,247,1025,8749,43
2026-03-02 14:30:04,248,1025,8752,43
Productivity

Connection Profiles

Save your device configurations as profiles to quickly switch between different devices.

Creating a Profile

1
Configure your connection

Set up all connection settings (protocol, IP/COM port, slave ID, serial parameters).

2
Save as profile

Click Save Profile and give it a descriptive name (e.g., "PLC Floor 1" or "Inverter Lab Bench").

3
Load anytime

Select the profile from the dropdown to instantly load all settings. One click to switch devices.

Sharing Profiles

Profiles are stored as JSON files and can be exported/imported. Share profiles with your team so everyone uses the same device settings.

Alerts

Watchdog Alerts

Set up automatic notifications when monitored values change or exceed thresholds.

Alert Types

Change Detection

Trigger an alert whenever a register value changes from its previous reading. Useful for monitoring status registers.

High Alarm

Alert when a value exceeds a maximum threshold. Example: temperature > 80 degrees.

Low Alarm

Alert when a value drops below a minimum threshold. Example: pressure < 2.0 bar.

Range Monitor

Alert when a value goes outside a defined range. Combines high and low alarms into a single rule.

Setting Up a Watchdog Rule

1
Open Watchdog settings

Navigate to the Watchdog panel and click Add Rule.

2
Select the register

Choose the register address to monitor from the current read configuration.

3
Set the condition

Choose the alert type and set threshold values. Optionally set a cooldown period to prevent repeated alerts.

4
Start polling

Watchdog rules are evaluated on each poll cycle. Start auto-polling to begin monitoring.

Discovery

Device Scanner

Find Modbus devices on your network or serial bus without knowing their Slave IDs in advance.

Slave ID Scanner

Scans all possible Slave IDs (1-247) to find responsive devices on the bus.

1
Connect to the bus

Establish a TCP or RTU connection (use any Slave ID initially).

2
Open Scanner

Go to Tools > Slave Scanner. Set the scan range (default: 1-247).

3
Start scan

Click Scan. The tool will try each Slave ID and report which ones respond.

Register Scanner

Discover which register addresses contain valid data on a specific device.

1
Connect to the target device

Connect with the correct Slave ID of the device you want to scan.

2
Open Register Scanner

Go to Tools > Register Scanner. Choose the function code and address range to scan.

3
Review results

The scanner shows which addresses returned valid data vs. errors, helping you map out the device's register layout.

Advanced

CLI Reference

ModbusBB includes a command-line interface for scripting and automation. The CLI supports all the same operations as the GUI.

Basic Usage

ModbusBB-CLI.exe --host 192.168.1.100 --port 502 --slave 1 --fc 3 --addr 0 --count 10

Command Options

--host
IP Address

Target device IP for TCP connections (e.g., 192.168.1.100)

--port
TCP Port

Target port number (default: 502)

--com
Serial Port

COM port for RTU connections (e.g., COM3)

--baud
Baud Rate

Serial baud rate (default: 9600)

--slave
Slave ID

Target device Slave ID (1-247)

--fc
Function Code

Modbus function code (1, 2, 3, 4, 5, 6, 15, 16)

--addr
Start Address

Register start address (decimal or hex with 0x prefix)

--count
Quantity

Number of registers/coils to read

--value
Write Value

Value to write (for FC 05, 06). Supports decimal, hex (0xFF), binary (0b1010)

--format
Output Format

Display format: decimal, hex, binary, float32, int32, uint32

Examples

# Read 10 holding registers via TCP

ModbusBB-CLI.exe --host 192.168.1.100 --slave 1 --fc 3 --addr 0 --count 10

# Write value 100 to register 40 via RTU

ModbusBB-CLI.exe --com COM3 --baud 9600 --slave 1 --fc 6 --addr 40 --value 100

# Read coils as binary via TCP

ModbusBB-CLI.exe --host 192.168.1.100 --slave 1 --fc 1 --addr 0 --count 16 --format binary

# Read Float32 values (2 registers per value)

ModbusBB-CLI.exe --host 192.168.1.100 --slave 1 --fc 3 --addr 0 --count 4 --format float32
Configuration

Register Maps & Aliases

Import your device's register documentation and assign meaningful names to addresses.

Register Aliases

Instead of remembering that register 0 is "Temperature" and register 1 is "Pressure", assign aliases that appear in the data table.

1
Right-click a register

In the data table, right-click any register address.

2
Set alias

Enter a descriptive name like "Room Temperature" or "Motor Speed".

3
Set per-address format

You can also set individual data format (Float32, Int32, etc.) and byte order per register.

Importing Register Maps

Import a CSV file containing your device's register definitions. The CSV should have columns for address, name, data format, scale factor, and units.

Address,Name,Format,Scale,Unit,Min,Max
0,Room Temperature,float32,1.0,C,0,100
2,Humidity,uint16,0.1,%,0,100
3,Pressure,float32,1.0,bar,0,10
5,Fan Speed,uint16,1,RPM,0,3000
License

Licensing

Trial vs Licensed

Free Trial

30 days, 15-minute sessions, 1 device. All features included so you can fully evaluate ModbusBB.

Licensed ($10)

Lifetime license, unlimited sessions, 3 devices. Free updates and email support included.

Activating Your License

1
Purchase a license

Buy from the purchase page. Your license key will be sent to your email.

2
Open ModbusBB

Launch the application and go to Help > Enter License Key.

3
Paste your key

Copy the license key from your email and paste it into the dialog. Click Activate.

Managing Devices

Your license supports up to 3 device activations. Manage them through the self-service portal.

  • View active devices - See which computers are using your license
  • Deactivate devices - Free up a slot by deactivating an old device
  • Offline support - Works offline with a 30-day grace period between verifications
  • Hardware tolerance - Minor hardware changes won't invalidate your activation
Help

Frequently Asked Questions

What operating systems does ModbusBB support? +

ModbusBB runs on Windows 10 and Windows 11 (64-bit). Both the installer and portable versions are available.

Can I use ModbusBB as a Modbus slave/server? +

No. ModbusBB is a Modbus Master/Client application only. It sends requests to slave devices and displays their responses. It does not emulate a slave device.

Do I need special hardware for Modbus RTU? +

Yes. For Modbus RTU, you need an RS-485 USB adapter (or RS-232 for point-to-point). These are inexpensive and widely available. ModbusBB will detect the COM port automatically.

Can I connect to multiple devices at the same time? +

You can communicate with multiple slave devices on the same bus or network by changing the Slave ID. For simultaneous connections to different networks, you can open multiple instances of ModbusBB.

What is the difference between 0-based and 1-based addressing? +

Some device documentation uses 1-based addressing (register 40001) while the actual Modbus protocol uses 0-based addressing (register 0). ModbusBB uses 0-based addressing as per the Modbus specification. If your device manual says register 40001, enter address 0 in ModbusBB.

Can I transfer my license to another computer? +

Yes. Deactivate the device from the self-service portal, then activate on the new computer. You can have up to 3 active devices at any time.

Does ModbusBB work offline? +

Yes. After initial activation, ModbusBB works offline with a 30-day grace period. It only needs to verify the license online once every 30 days.

How do I read Float32 values that span two registers? +

Read 2 consecutive registers and set the display format to Float32. If the value looks wrong, try changing the byte order (ABCD, DCBA, BADC, or CDAB) - different manufacturers use different byte orders.

Is my Modbus data sent to the internet? +

No. ModbusBB communicates directly with your devices over your local network or serial connection. No device data, register values, or communication logs are ever sent to our servers. See our Privacy Policy for details.

Support

Troubleshooting

Common issues and how to resolve them.

Connection Timeout

Symptoms: "Timeout" error in communication log, no response from device.

Solutions:

  • Verify the device IP address and port (TCP) or COM port and serial settings (RTU)
  • Check that the Slave ID is correct
  • Ensure the device is powered on and connected to the network
  • Try pinging the device IP from command prompt: ping 192.168.1.100
  • Check firewall settings - port 502 must be open for TCP
  • For RTU: verify baud rate, parity, and data bits match the device configuration

Illegal Function (Exception 0x01)

Symptoms: Device responds with exception code 0x01.

Solutions:

  • The function code is not supported by this device
  • Check your device documentation for supported function codes
  • Try a different function code (e.g., use FC 04 instead of FC 03)

Illegal Data Address (Exception 0x02)

Symptoms: Device responds with exception code 0x02.

Solutions:

  • The register address does not exist on this device
  • Check for 0-based vs 1-based addressing (subtract 1 or 40001 from the address in your manual)
  • Reduce the quantity - you may be reading past the end of the device's register range
  • Use the Register Scanner to discover valid address ranges

Wrong / Garbled Values

Symptoms: Values are received but look incorrect or nonsensical.

Solutions:

  • Check the data format - try switching between Unsigned, Signed, Hex, Float32
  • For Float32/Int32 values, try different byte orders (ABCD, DCBA, BADC, CDAB)
  • Verify you're reading the correct register address
  • For RTU: check that serial settings (baud, parity, stop bits) match exactly
  • Check if the device uses a scale factor (e.g., raw value / 10 = actual value)

COM Port Not Found

Symptoms: Serial port dropdown is empty or the port doesn't appear.

Solutions:

  • Ensure the USB-to-RS485 adapter is plugged in
  • Install the adapter's driver (check the manufacturer's website)
  • Open Device Manager to verify the port is recognized by Windows
  • Try a different USB port
  • Close other applications that may be using the COM port

Still Need Help?

Contact us at support@maxenergic.com with details about your issue, including screenshots of the communication log. Licensed users get priority email support.

Ready to Get Started?

Download ModbusBB and start testing your Modbus devices today.