Everything you need to get started and make the most of ModbusBB
Windows 10 or Windows 11 (64-bit)
4 GB RAM minimum
200 MB free space
Get the latest version from the download page. Choose between the Setup installer or Portable ZIP.
Double-click ModbusBB_Setup.exe and follow the on-screen instructions. The installer will set up both GUI and CLI tools.
Open ModbusBB from the Start menu or desktop shortcut. The GUI will open with default settings ready to connect.
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.
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.
In the connection panel, select "Modbus TCP/IP" as the protocol.
Type the IP address of your Modbus device (e.g., 192.168.1.100) and port (default: 502).
Enter the Slave ID (Unit ID) of the device (1-247). Check your device documentation if unsure.
The status bar will show "Connected" when the connection is established.
In the connection panel, select "Modbus RTU" as the protocol.
Select the serial port your RS-485 adapter is connected to (e.g., COM3). Available ports are auto-detected.
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).
Enter the Slave ID and click Connect. Check the communication log if the connection fails.
Choose the appropriate read function: FC 01 (Coils), FC 02 (Discrete Inputs), FC 03 (Holding Registers), or FC 04 (Input Registers).
Type the register address to start reading from. You can enter decimal (100) or hex (0x0064).
Enter how many registers to read (1-125 for registers, 1-2000 for coils).
The results will appear in the data table. Change the display format (Decimal, Hex, Float32, etc.) to interpret values correctly.
Choose FC 05 (Write Single Coil), FC 06 (Write Single Register), FC 15 (Write Multiple Coils), or FC 16 (Write Multiple Registers).
Specify the register address and the value to write. Values can be entered as decimal, hex (0xFF), or binary (0b1010).
The communication log will show the request and response. A successful write is confirmed by the slave echoing the request.
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.
Auto polling continuously reads registers at a set interval, allowing you to monitor values in real-time.
Set the function code, start address, and quantity as you would for a single read.
Choose the interval between reads: 100ms, 250ms, 500ms, 1s, 2s, 5s, or 10s.
Click the Start Polling button. The data table will update automatically with each poll cycle.
Log all polled data to a CSV file for analysis in Excel or other data tools.
Click the Log to CSV button before or during polling.
Select a location and filename, or use the auto-generated name with date/time.
Stop polling when done. Open the CSV in Excel to create charts and analyze trends.
Save your device configurations as profiles to quickly switch between different devices.
Set up all connection settings (protocol, IP/COM port, slave ID, serial parameters).
Click Save Profile and give it a descriptive name (e.g., "PLC Floor 1" or "Inverter Lab Bench").
Select the profile from the dropdown to instantly load all settings. One click to switch devices.
Profiles are stored as JSON files and can be exported/imported. Share profiles with your team so everyone uses the same device settings.
Set up automatic notifications when monitored values change or exceed thresholds.
Trigger an alert whenever a register value changes from its previous reading. Useful for monitoring status registers.
Alert when a value exceeds a maximum threshold. Example: temperature > 80 degrees.
Alert when a value drops below a minimum threshold. Example: pressure < 2.0 bar.
Alert when a value goes outside a defined range. Combines high and low alarms into a single rule.
Navigate to the Watchdog panel and click Add Rule.
Choose the register address to monitor from the current read configuration.
Choose the alert type and set threshold values. Optionally set a cooldown period to prevent repeated alerts.
Watchdog rules are evaluated on each poll cycle. Start auto-polling to begin monitoring.
Find Modbus devices on your network or serial bus without knowing their Slave IDs in advance.
Scans all possible Slave IDs (1-247) to find responsive devices on the bus.
Establish a TCP or RTU connection (use any Slave ID initially).
Go to Tools > Slave Scanner. Set the scan range (default: 1-247).
Click Scan. The tool will try each Slave ID and report which ones respond.
Discover which register addresses contain valid data on a specific device.
Connect with the correct Slave ID of the device you want to scan.
Go to Tools > Register Scanner. Choose the function code and address range to scan.
The scanner shows which addresses returned valid data vs. errors, helping you map out the device's register layout.
ModbusBB includes a command-line interface for scripting and automation. The CLI supports all the same operations as the GUI.
ModbusBB-CLI.exe --host 192.168.1.100 --port 502 --slave 1 --fc 3 --addr 0 --count 10
Target device IP for TCP connections (e.g., 192.168.1.100)
Target port number (default: 502)
COM port for RTU connections (e.g., COM3)
Serial baud rate (default: 9600)
Target device Slave ID (1-247)
Modbus function code (1, 2, 3, 4, 5, 6, 15, 16)
Register start address (decimal or hex with 0x prefix)
Number of registers/coils to read
Value to write (for FC 05, 06). Supports decimal, hex (0xFF), binary (0b1010)
Display format: decimal, hex, binary, float32, int32, uint32
# 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
Import your device's register documentation and assign meaningful names to addresses.
Instead of remembering that register 0 is "Temperature" and register 1 is "Pressure", assign aliases that appear in the data table.
In the data table, right-click any register address.
Enter a descriptive name like "Room Temperature" or "Motor Speed".
You can also set individual data format (Float32, Int32, etc.) and byte order per register.
Import a CSV file containing your device's register definitions. The CSV should have columns for address, name, data format, scale factor, and units.
30 days, 15-minute sessions, 1 device. All features included so you can fully evaluate ModbusBB.
Lifetime license, unlimited sessions, 3 devices. Free updates and email support included.
Buy from the purchase page. Your license key will be sent to your email.
Launch the application and go to Help > Enter License Key.
Copy the license key from your email and paste it into the dialog. Click Activate.
Your license supports up to 3 device activations. Manage them through the self-service portal.
ModbusBB runs on Windows 10 and Windows 11 (64-bit). Both the installer and portable versions are available.
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.
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.
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.
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.
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.
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.
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.
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.
Common issues and how to resolve them.
Symptoms: "Timeout" error in communication log, no response from device.
Solutions:
ping 192.168.1.100Symptoms: Device responds with exception code 0x01.
Solutions:
Symptoms: Device responds with exception code 0x02.
Solutions:
Symptoms: Values are received but look incorrect or nonsensical.
Solutions:
Symptoms: Serial port dropdown is empty or the port doesn't appear.
Solutions:
Contact us at support@maxenergic.com with details about your issue, including screenshots of the communication log. Licensed users get priority email support.
Download ModbusBB and start testing your Modbus devices today.